diff --git a/.github/README.md b/.github/README.md
index bd0c4448..e2e13f4 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -3,6 +3,12 @@
 This directory provides instructions and prompts for integrating GitHub Copilot
 with the chromium codebase.
 
+This directory is currently in a prototyping state and may be removed in the
+future. As we add support for multiple coding IDE/agents, we will likely pull
+common prompts and instructions into a central directory with stubs for bespoke
+IDE/agent integration. Please check with your organization before using GitHub
+Copilot.
+
 ## Where is copilot-instructions.md?
 [`copilot-intructions.md`](../copilot-instructions.md) is typically a single
 instruction file that contains default instructions for a workspace. These
diff --git a/.gitignore b/.gitignore
index 46957252..d69c2f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -213,6 +213,8 @@
 /content/test/data/gpu/gpu_reference/
 /content/test/data/gpu/mediapipe/
 /content/test/data/gpu/mediapipe_zip/mediapipe_chromium_tests.zip
+/content/test/data/gpu/meet_effects/
+/content/test/data/gpu/meet_effects_videos/
 /content/test/data/layout_tests/
 /content/test/data/plugin/
 /content/test/gpu/.webgpu_typescript/
diff --git a/DEPS b/DEPS
index 59a73bf..e5ec714 100644
--- a/DEPS
+++ b/DEPS
@@ -295,19 +295,19 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'src_internal_revision': '7f5643fbc0ba35c2cd91a418ce5e11567efa5dda',
+  'src_internal_revision': '8a98ad20d83fe0520dc3b280e272b34aa17e2177',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '0fae585fa05766247a4916e53838f662417c0ecc',
+  'skia_revision': '8e79825beaa25971588d6d40652d2c48f431aef1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'bd836a5ff68ddc86387c45b6af93a141f7c25657',
+  'v8_revision': '7d3a5cd5ba0fd37ddb72af29a540b50a8a07067b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'dc43c3bac829fe07fc16a1990a7e4163e8a8c159',
+  'angle_revision': '3f012a43ee2c101543785720eedfeaa80708479d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -371,7 +371,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '41104509db3116fd5a5e3af4f8242b59de7adc67',
+  'catapult_revision': '938fc9953b4159851a52022b4f2a90cddedba2fc',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling CrossBench
   # and whatever else without interference from each other.
@@ -391,7 +391,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': 'e0085ef42c590c69f77a70b55c3a83f9ce5bbe2c',
+  'devtools_frontend_revision': '819a04615d636bf83fd2bc1b1f6b5d3673b4bdc1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -1058,6 +1058,28 @@
     'dep_type': 'cipd',
   },
 
+  'src/content/test/data/gpu/meet_effects_videos': {
+    'packages': [
+      {
+        'package': 'chromium/testing/meet-effects-videos',
+        'version': 'version:1.0',
+      }
+    ],
+    'dep_type': 'cipd',
+  },
+  'src/content/test/data/gpu/meet_effects': {
+    'dep_type': 'gcs',
+    'bucket': 'chromium-telemetry',
+    'objects': [
+      {
+        'object_name': 'meet-gpu-tests/750908933.tar.gz',
+        'sha256sum': '687f07f3963ca30339aae16bd053357a1d632db67dc744539f43bf9c83b137e5',
+        'size_bytes': 192267405,
+        'generation': 1747334995545331,
+      },
+    ],
+  },
+
   # We don't know target_cpu at deps time. At least until there's a universal
   # binary of httpd-php, pull both intel and arm versions in DEPS and then pick
   # the right one at runtime.
@@ -1486,7 +1508,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    'c838b66f21f8a43e135544953c74e0f84cbff0b4',
+    'd9ce8c8ec347c883ca2eaa2b3a62a0d9ad02a1e7',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -2526,7 +2548,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + 'b4fbf1b9302d8e1fcc869098c54453a659c61211',
+    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + 'c10f213cb474e756222a165a75e8fa008e3c769b',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -4465,7 +4487,7 @@
 
   'src/chrome/browser/platform_experience/win': {
       'url': Var('chrome_git') + '/chrome/browser/platform_experience/win.git' + '@' +
-        '42835bc60cda464decb0c403e38b355d1882951a',
+        'b2e0904e77cba3289ee6e5c6e1842159620743a2',
       'condition': 'checkout_src_internal',
   },
 
@@ -4619,7 +4641,7 @@
 
   'src/components/optimization_guide/internal': {
       'url': Var('chrome_git') + '/chrome/components/optimization_guide.git' + '@' +
-        'e3a04a219778f8c35eef841cab715b5afd032e2f',
+        'e2ed217bee579af1305ddc5e2f37819d288c7a1c',
       'condition': 'checkout_src_internal',
   },
 
@@ -4685,7 +4707,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        'e0b6f45ac8a50f8d5ab53cf937d488b25fd4db8c',
+        'a9cfe99eaefefc198a0f3dc27d3eb6a0980ac237',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 570a0b1..4d416d1d 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -7603,7 +7603,6 @@
                     r'.*Test.*\.java',
                     r'^android_webview/.*',  # Temporary, crbug.com/389129271
                     r'^build/.*',
-                    r'^chrome/android/.*',  # Temporary, crbug.com/389129271
                     r'^chromecast/.*',
                     r'^components/cronet/.*',
                     r'^tools/.*',
diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc
index 94dade9..375b6d0a 100644
--- a/android_webview/browser/aw_field_trials.cc
+++ b/android_webview/browser/aw_field_trials.cc
@@ -147,7 +147,6 @@
   // kVulkan in case it becomes enabled by default.
   aw_feature_overrides.DisableFeature(::features::kVulkan);
 
-  aw_feature_overrides.DisableFeature(::features::kWebPayments);
   aw_feature_overrides.DisableFeature(::features::kServiceWorkerPaymentApps);
 
   // WebView does not support overlay fullscreen yet for video overlays.
diff --git a/android_webview/test/data/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/android_webview/test/data/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
index a5603fa..c9b14cb 100644
--- a/android_webview/test/data/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
+++ b/android_webview/test/data/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -3793,6 +3793,7 @@
     getter align
     getter allow
     getter allowFullscreen
+    getter allowPaymentRequest
     getter contentDocument
     getter contentWindow
     getter credentialless
@@ -3818,6 +3819,7 @@
     setter align
     setter allow
     setter allowFullscreen
+    setter allowPaymentRequest
     setter credentialless
     setter csp
     setter frameBorder
@@ -6332,6 +6334,62 @@
     method quadraticCurveTo
     method rect
     method roundRect
+interface PaymentAddress
+    attribute @@toStringTag
+    getter addressLine
+    getter city
+    getter country
+    getter dependentLocality
+    getter organization
+    getter phone
+    getter postalCode
+    getter recipient
+    getter region
+    getter sortingCode
+    method constructor
+    method toJSON
+interface PaymentMethodChangeEvent : PaymentRequestUpdateEvent
+    attribute @@toStringTag
+    getter methodDetails
+    getter methodName
+    method constructor
+interface PaymentRequest : EventTarget
+    attribute @@toStringTag
+    getter id
+    getter onpaymentmethodchange
+    getter onshippingaddresschange
+    getter onshippingoptionchange
+    getter shippingAddress
+    getter shippingOption
+    getter shippingType
+    method abort
+    method canMakePayment
+    method constructor
+    method hasEnrolledInstrument
+    method show
+    setter onpaymentmethodchange
+    setter onshippingaddresschange
+    setter onshippingoptionchange
+interface PaymentRequestUpdateEvent : Event
+    attribute @@toStringTag
+    method constructor
+    method updateWith
+interface PaymentResponse : EventTarget
+    attribute @@toStringTag
+    getter details
+    getter methodName
+    getter onpayerdetailchange
+    getter payerEmail
+    getter payerName
+    getter payerPhone
+    getter requestId
+    getter shippingAddress
+    getter shippingOption
+    method complete
+    method constructor
+    method retry
+    method toJSON
+    setter onpayerdetailchange
 interface Performance : EventTarget
     attribute @@toStringTag
     getter eventCounts
diff --git a/ash/wm/layer_tree_synchronizer.cc b/ash/wm/layer_tree_synchronizer.cc
index 4c02832..b44c2e72 100644
--- a/ash/wm/layer_tree_synchronizer.cc
+++ b/ash/wm/layer_tree_synchronizer.cc
@@ -302,10 +302,12 @@
 }
 
 // Determine whether the corner radius of `rect` should be overridden to match
-// the corner radius of `containing_rect`.
+// the corner radius of `containing_rect`.  If `consider_curvature` is true,
+// the curvature of `rect` is taken into account.
 bool ShouldOverrideCornerRadius(const gfx::RRectF& rect,
                                 const gfx::RRectF& containing_rect,
-                                Corner corner) {
+                                Corner corner,
+                                bool consider_curvature) {
   const gfx::Vector2dF rect_corner_radii = rect.GetCornerRadii(corner);
   const gfx::Vector2dF containing_rect_corner_radii =
       containing_rect.GetCornerRadii(corner);
@@ -333,6 +335,13 @@
     return !CheckCornerContainment(rect_corner_coordinates, containing_rect);
   }
 
+  if (!consider_curvature) {
+    const gfx::PointF containing_rect_corner_coordinates =
+        GetCornerCoordinates(containing_rect.rect(), corner);
+    return rect_corner_coordinates.IsWithinDistance(
+        containing_rect_corner_coordinates, 0.01);
+  }
+
   const CircularArc arc = GetArcForCorner(rect, corner);
   const CircularArc other_arc = GetArcForCorner(containing_rect, corner);
 
@@ -350,7 +359,8 @@
 // Returns the set of corners of rect that need to have their radius match the
 // corner radius of containing_rect.
 Corners FindCornersToOverrideRadius(const gfx::RRectF& rect,
-                                    const gfx::RRectF& containing_rect) {
+                                    const gfx::RRectF& containing_rect,
+                                    bool consider_curvature) {
   static constexpr uint8_t kNumberOfCorners = 4;
   static constexpr std::array<Corner, kNumberOfCorners> kCorners{
       Corner::kUpperLeft, Corner::kUpperRight, Corner::kLowerRight,
@@ -365,7 +375,8 @@
 
   corners.reserve(kNumberOfCorners);
   for (auto corner : kCorners) {
-    if (ShouldOverrideCornerRadius(rect, containing_rect, corner)) {
+    if (ShouldOverrideCornerRadius(rect, containing_rect, corner,
+                                   consider_curvature)) {
       corners.insert(corner);
     }
   }
@@ -412,7 +423,8 @@
 bool LayerTreeSynchronizerBase::SynchronizeLayerTreeRoundedCorners(
     ui::Layer* layer,
     const ui::Layer* root_layer,
-    const gfx::RRectF& reference_bounds) {
+    const gfx::RRectF& reference_bounds,
+    bool consider_curvature) {
   CHECK(root_layer);
   CHECK(root_layer->Contains(layer));
   if (reference_bounds.IsEmpty()) {
@@ -424,13 +436,14 @@
   layer->GetTargetTransformRelativeTo(root_layer, &transform);
 
   return SynchronizeLayerTreeRoundedCornersImpl(layer, reference_bounds,
-                                                transform);
+                                                transform, consider_curvature);
 }
 
 bool LayerTreeSynchronizerBase::SynchronizeLayerTreeRoundedCornersImpl(
     ui::Layer* layer,
     const gfx::RRectF& reference_bounds,
-    const gfx::Transform& transform) {
+    const gfx::Transform& transform,
+    bool consider_curvature) {
   CHECK(layer);
 
   bool layer_altered = false;
@@ -452,8 +465,8 @@
     // of the `reference_bounds` or are drawn outside the curvature (if any) of
     // the reference_bounds rounded corners. The function considers the
     // curvature (if any) of the layer corners as well.
-    const Corners corners_to_update =
-        FindCornersToOverrideRadius(layer_bounds_in_root, reference_bounds);
+    const Corners corners_to_update = FindCornersToOverrideRadius(
+        layer_bounds_in_root, reference_bounds, consider_curvature);
 
     if (!corners_to_update.empty()) {
       // The inverse transform coverts from the coordinate space of
@@ -499,7 +512,8 @@
   bool subtree_altered = false;
   for (ui::Layer* child : layer->children()) {
     subtree_altered |= SynchronizeLayerTreeRoundedCornersImpl(
-        child, reference_bounds, AccumulateTargetTransform(child, transform));
+        child, reference_bounds, AccumulateTargetTransform(child, transform),
+        consider_curvature);
   }
 
   return subtree_altered || layer_altered;
@@ -539,10 +553,11 @@
 
 void LayerTreeSynchronizer::SynchronizeRoundedCorners(
     ui::Layer* layer,
+
     const ui::Layer* root_layer,
     const gfx::RRectF& reference_bounds) {
-  const bool altered =
-      SynchronizeLayerTreeRoundedCorners(layer, root_layer, reference_bounds);
+  const bool altered = SynchronizeLayerTreeRoundedCorners(
+      layer, root_layer, reference_bounds, /*consider_curvature=*/true);
   if (altered && !altered_layer_observation_.IsObservingSource(layer)) {
     altered_layer_observation_.Observe(layer);
   }
@@ -573,11 +588,13 @@
     aura::Window* window,
     const aura::Window* root_window,
     const gfx::RRectF& reference_bounds,
+    bool consider_curvature,
     TransientTreeIgnorePredicate ignore_predicate) {
   CHECK(root_window->Contains(window));
   for (auto* window_iter : GetTransientTreeIterator(window, ignore_predicate)) {
     const bool altered = SynchronizeLayerTreeRoundedCorners(
-        window_iter->layer(), root_window->layer(), reference_bounds);
+        window_iter->layer(), root_window->layer(), reference_bounds,
+        consider_curvature);
     if (altered &&
         !altered_window_observations_.IsObservingSource(window_iter)) {
       altered_window_observations_.AddObservation(window_iter);
diff --git a/ash/wm/layer_tree_synchronizer.h b/ash/wm/layer_tree_synchronizer.h
index 4d865c8..c42f2fd 100644
--- a/ash/wm/layer_tree_synchronizer.h
+++ b/ash/wm/layer_tree_synchronizer.h
@@ -52,7 +52,8 @@
   // Note: `reference_bounds` are in target space of `root_layer`;
   bool SynchronizeLayerTreeRoundedCorners(ui::Layer* layer,
                                           const ui::Layer* root_layer,
-                                          const gfx::RRectF& reference_bounds);
+                                          const gfx::RRectF& reference_bounds,
+                                          bool consider_curvature);
 
   // Traverses through the layer subtree rooted at `layer`. Restores the radii
   // of layer if it was updated by in `SynchronizeLayerTreeRoundedCorners()`.
@@ -67,7 +68,8 @@
   bool SynchronizeLayerTreeRoundedCornersImpl(
       ui::Layer* layer,
       const gfx::RRectF& reference_bounds,
-      const gfx::Transform& transform);
+      const gfx::Transform& transform,
+      bool consider_curvature);
 
   void RestoreLayerTreeImpl(ui::Layer* layer);
 
@@ -134,6 +136,7 @@
   void SynchronizeRoundedCorners(aura::Window* window,
                                  const aura::Window* root_window,
                                  const gfx::RRectF& reference_bounds,
+                                 bool consider_curvature,
                                  TransientTreeIgnorePredicate ignore_predicate);
 
   // LayerTreeSynchronizerBase:
diff --git a/ash/wm/layer_tree_synchronizer_unittest.cc b/ash/wm/layer_tree_synchronizer_unittest.cc
index 0b8a42df..d0a86d3 100644
--- a/ash/wm/layer_tree_synchronizer_unittest.cc
+++ b/ash/wm/layer_tree_synchronizer_unittest.cc
@@ -340,7 +340,7 @@
                                gfx::RoundedCornersF(10));
   window_tree_synchronizer->SynchronizeRoundedCorners(
       transient_parent.get(), /*root_window=*/root.get(), reference_bounds,
-      base::NullCallback());
+      /*consider_curvature=*/true, base::NullCallback());
 
   // All the windows rooted at `transient_parent`(including transient windows)
   // should be synchronized again `reference_bounds`.
@@ -357,7 +357,8 @@
                                        gfx::RoundedCornersF(15));
   window_tree_synchronizer->SynchronizeRoundedCorners(
       transient_parent.get(), /*root_window=*/root.get(),
-      updated_reference_bounds, base::NullCallback());
+      updated_reference_bounds, /*consider_curvature=*/true,
+      base::NullCallback());
 
   // All the windows rooted at `transient_parent` should now have new rounded
   // corners based on `updated_reference_bounds`.
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc
index c6c0e12..3482e3d 100644
--- a/ash/wm/overview/scoped_overview_transform_window.cc
+++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -585,10 +585,10 @@
     return;
   }
 
+  const bool is_being_dragged = !!window_tree_synchronizer_during_drag_;
   auto window_tree_synchronizer([&]() {
-    return window_tree_synchronizer_during_drag_
-               ? window_tree_synchronizer_during_drag_.get()
-               : window_tree_synchronizer_.get();
+    return is_being_dragged ? window_tree_synchronizer_during_drag_.get()
+                            : window_tree_synchronizer_.get();
   });
 
   // Synchronizing the rounded corners of a window and its transient hierarchy
@@ -597,9 +597,17 @@
   //   surface.
   // * It ensures that the transient windows' corners are correctly rounded,
   //   ensuring that all four corners of the WindowMiniView appear rounded.
-  //   See b/325635179.
+  //   See b:325635179.
+  //
+  // Note: Disable layer curvature considerations during window dragging to
+  // prevent synchronization issues with reference bounds. This problem arises
+  // in edge cases where extreme downscaling (at the top edges of display) leads
+  // to exaggerated rounded corners, causing excessive layer curvature and
+  // hindering proper syncing, ultimately resulting in visual artifacts. See
+  // b:419292910.
   window_tree_synchronizer()->SynchronizeRoundedCorners(
       window(), window()->GetRootWindow(), rounded_contents_bounds,
+      /*consider_curvature=*/!is_being_dragged,
       /*ignore_predicate=*/base::BindRepeating([](aura::Window* window) {
         return window->GetProperty(kHideInOverviewKey) ||
                window->GetProperty(kExcludeFromTransientTreeTransformKey);
diff --git a/ash/wm/resize_shadow.h b/ash/wm/resize_shadow.h
index 2c5b83a6..ca57ad0 100644
--- a/ash/wm/resize_shadow.h
+++ b/ash/wm/resize_shadow.h
@@ -54,9 +54,9 @@
     // Controls whether the resize shadow shall respond to hit testing or not.
     bool hit_test_enabled = true;
     int hide_duration_ms = 100;
-    // True if the resize shadow is configured for a window with rounded
+    // True if the resize shadow is configured for a window with large rounded
     // corners.
-    bool is_for_rounded_window = false;
+    bool is_for_large_rounded_corners = false;
   };
 
   ResizeShadow(aura::Window* window,
@@ -67,7 +67,9 @@
   ~ResizeShadow() override;
 
   bool visible() const { return visible_; }
-  bool is_for_rounded_window() const { return params_.is_for_rounded_window; }
+  bool is_for_large_rounded_corners() const {
+    return params_.is_for_large_rounded_corners;
+  }
 
   int GetLastHitTestForTest() const { return last_hit_test_; }
   const ui::Layer* GetLayerForTest() const { return layer_.get(); }
diff --git a/ash/wm/resize_shadow_and_cursor_unittest.cc b/ash/wm/resize_shadow_and_cursor_unittest.cc
index 7e3dbff2..cb32dab 100644
--- a/ash/wm/resize_shadow_and_cursor_unittest.cc
+++ b/ash/wm/resize_shadow_and_cursor_unittest.cc
@@ -533,7 +533,7 @@
   Shell::Get()->resize_shadow_controller()->ShowShadow(window());
 
   // For normal window state, top-level windows have rounded window.
-  EXPECT_TRUE(GetShadow()->is_for_rounded_window());
+  EXPECT_TRUE(GetShadow()->is_for_large_rounded_corners());
   VerifyResizeShadow(true);
 
   // Window in snapped state does not have rounded corners, therefore the resize
@@ -542,13 +542,13 @@
   window_state->OnWMEvent(&snap_event);
 
   ASSERT_TRUE(window_state->IsSnapped());
-  EXPECT_FALSE(GetShadow()->is_for_rounded_window());
+  EXPECT_FALSE(GetShadow()->is_for_large_rounded_corners());
   VerifyResizeShadow(true);
 
   window_state->Restore();
 
   ASSERT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(GetShadow()->is_for_rounded_window());
+  EXPECT_TRUE(GetShadow()->is_for_large_rounded_corners());
   VerifyResizeShadow(true);
 
   // Ensure that shadow variant is correct after restoring from a state that has
@@ -558,7 +558,7 @@
 
   window_state->Restore();
   ASSERT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(GetShadow()->is_for_rounded_window());
+  EXPECT_TRUE(GetShadow()->is_for_large_rounded_corners());
 }
 
 // Tests that shadow gets updated when the window's state changed.
diff --git a/ash/wm/resize_shadow_controller.cc b/ash/wm/resize_shadow_controller.cc
index 10f5129f..7909816 100644
--- a/ash/wm/resize_shadow_controller.cc
+++ b/ash/wm/resize_shadow_controller.cc
@@ -11,13 +11,19 @@
 #include "ash/wm/overview/overview_controller.h"
 #include "ash/wm/resize_shadow.h"
 #include "ash/wm/window_properties.h"
-#include "chromeos/constants/chromeos_features.h"
 #include "chromeos/ui/base/window_state_type.h"
 #include "chromeos/ui/frame/frame_utils.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/base/mojom/window_show_state.mojom.h"
 
 namespace ash {
+namespace {
+
+// If window rounded corners are larger than the threshold, use resize shadow
+// designed for larger rounded corners.
+constexpr int kLargeRoundedCornerThreshold = 2;
+
+}  // namespace
 
 ResizeShadowController::ResizeShadowController() = default;
 
@@ -152,13 +158,13 @@
       window->GetProperty(ash::kResizeShadowTypeKey);
   const int window_corner_radius =
       window->GetProperty(aura::client::kWindowCornerRadiusKey);
-  const bool has_rounded_window =
-      chromeos::features::IsRoundedWindowsEnabled() && window_corner_radius > 0;
+  const bool has_large_rounded_corners =
+      window_corner_radius > kLargeRoundedCornerThreshold;
 
   // If the `window` has a resize shadow with the requested type and the shadow
-  // is configured for a rounded window, no need to recreate it.
+  // is configured for small/large rounded corners, no need to recreate it.
   if (shadow && shadow->type_ == type &&
-      shadow->is_for_rounded_window() == has_rounded_window) {
+      shadow->is_for_large_rounded_corners() == has_large_rounded_corners) {
     return;
   }
 
@@ -171,16 +177,16 @@
     params.color = gfx::kGoogleGrey900;
     params.hit_test_enabled = false;
     params.hide_duration_ms = 0;
-    params.is_for_rounded_window = false;
+    params.is_for_large_rounded_corners = false;
   }
 
   // Configure window and shadow corner radius when `window` has rounded
   // corners.
-  if (has_rounded_window) {
+  if (has_large_rounded_corners) {
     params.thickness = 6;
     params.window_corner_radius = window_corner_radius;
     params.shadow_corner_radius = 16;
-    params.is_for_rounded_window = true;
+    params.is_for_large_rounded_corners = true;
   }
 
   auto new_shadow = std::make_unique<ResizeShadow>(window, params, type);
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 275f4e0..ab40c926 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -5608,6 +5608,7 @@
       "android/junit/src/org/chromium/base/MutableBooleanParamWithSafeDefaultUnitTest.java",
       "android/junit/src/org/chromium/base/MutableFlagWithSafeDefaultUnitTest.java",
       "android/junit/src/org/chromium/base/MutableIntParamWithSafeDefaultUnitTest.java",
+      "android/junit/src/org/chromium/base/PackageUtilsUnitTest.java",
       "android/junit/src/org/chromium/base/PathUtilsTest.java",
       "android/junit/src/org/chromium/base/PiiEliderTest.java",
       "android/junit/src/org/chromium/base/PostNativeFlagUnitTest.java",
diff --git a/base/android/android_info.cc b/base/android/android_info.cc
index f2f0bbc4..3ee42d3e 100644
--- a/base/android/android_info.cc
+++ b/base/android/android_info.cc
@@ -25,6 +25,41 @@
 
 namespace {
 
+struct AndroidInfo {
+  const std::string device;
+
+  const std::string manufacturer;
+
+  const std::string model;
+
+  const std::string brand;
+
+  const std::string android_build_id;
+
+  const std::string build_type;
+
+  const std::string board;
+
+  const std::string android_build_fp;
+
+  int sdk_int;
+
+  bool is_debug_android;
+
+  const std::string version_incremental;
+
+  const std::string hardware;
+
+  const std::string codename;
+
+  // Available only on android S+. For S-, this method returns empty string.
+  const std::string soc_manufacturer;
+
+  const std::string abi_name;
+
+  const std::string security_patch;
+};
+
 static std::optional<AndroidInfo>& get_holder() {
   static base::NoDestructor<std::optional<AndroidInfo>> holder;
   return *holder;
@@ -40,47 +75,6 @@
 
 }  // namespace
 
-AndroidInfo::AndroidInfo(const std::string& device,
-                         const std::string& manufacturer,
-                         const std::string& model,
-                         const std::string& brand,
-                         const std::string& android_build_id,
-                         const std::string& build_type,
-                         const std::string& board,
-                         const std::string& android_build_fp,
-                         int sdk_int,
-                         bool is_debug_android,
-                         const std::string& version_incremental,
-                         const std::string& hardware,
-                         const std::string& codename,
-                         const std::string& soc_manufacturer,
-                         const std::string& abi_name,
-                         const std::string& security_patch)
-    : device(device),
-      manufacturer(manufacturer),
-      model(model),
-      brand(brand),
-      android_build_id(android_build_id),
-      build_type(build_type),
-      board(board),
-      android_build_fp(android_build_fp),
-      sdk_int(sdk_int),
-      is_debug_android(is_debug_android),
-      version_incremental(version_incremental),
-      hardware(hardware),
-      codename(codename),
-      soc_manufacturer(soc_manufacturer),
-      abi_name(abi_name),
-      security_patch(security_patch) {}
-
-AndroidInfo::AndroidInfo(const AndroidInfo& android_info) = default;
-AndroidInfo::~AndroidInfo() = default;
-
-void SetAndroidInfoForTesting(const AndroidInfo& android_info) {
-  std::optional<AndroidInfo>& holder = get_holder();
-  holder.emplace(android_info);
-}
-
 static void JNI_AndroidInfo_FillFields(JNIEnv* env,
                                        std::string& brand,
                                        std::string& device,
@@ -100,11 +94,23 @@
                                        std::string& securityPatch) {
   std::optional<AndroidInfo>& holder = get_holder();
   DCHECK(!holder.has_value());
-  holder.emplace(AndroidInfo(device, manufacturer, model, brand, buildId, type,
-                             board, androidBuildFingerprint, sdkInt,
-                             static_cast<bool>(isDebugAndroid),
-                             versionIncremental, hardware, codeName,
-                             socManufacturer, supportedAbis, securityPatch));
+  holder.emplace(
+      AndroidInfo{.device = device,
+                  .manufacturer = manufacturer,
+                  .model = model,
+                  .brand = brand,
+                  .android_build_id = buildId,
+                  .build_type = type,
+                  .board = board,
+                  .android_build_fp = androidBuildFingerprint,
+                  .sdk_int = sdkInt,
+                  .is_debug_android = static_cast<bool>(isDebugAndroid),
+                  .version_incremental = versionIncremental,
+                  .hardware = hardware,
+                  .codename = codeName,
+                  .soc_manufacturer = socManufacturer,
+                  .abi_name = supportedAbis,
+                  .security_patch = securityPatch});
 }
 
 const std::string& device() {
diff --git a/base/android/android_info.h b/base/android/android_info.h
index c122860..4a9e51c 100644
--- a/base/android/android_info.h
+++ b/base/android/android_info.h
@@ -11,62 +11,6 @@
 
 namespace base::android::android_info {
 
-struct BASE_EXPORT AndroidInfo {
-  AndroidInfo(const std::string& device,
-              const std::string& manufacturer,
-              const std::string& model,
-              const std::string& brand,
-              const std::string& android_build_id,
-              const std::string& build_type,
-              const std::string& board,
-              const std::string& android_build_fp,
-              int sdk_int,
-              bool is_debug_android,
-              const std::string& version_incremental,
-              const std::string& hardware,
-              const std::string& codename,
-              const std::string& soc_manufacturer,
-              const std::string& abi_name,
-              const std::string& security_patch);
-  AndroidInfo(const AndroidInfo& android_info);
-  ~AndroidInfo();
-
-  const std::string device;
-
-  const std::string manufacturer;
-
-  const std::string model;
-
-  const std::string brand;
-
-  const std::string android_build_id;
-
-  const std::string build_type;
-
-  const std::string board;
-
-  const std::string android_build_fp;
-
-  int sdk_int;
-
-  bool is_debug_android;
-
-  const std::string version_incremental;
-
-  const std::string hardware;
-
-  const std::string codename;
-
-  // Available only on android S+. For S-, this method returns empty string.
-  const std::string soc_manufacturer;
-
-  const std::string abi_name;
-
-  const std::string security_patch;
-};
-
-BASE_EXPORT void SetAndroidInfoForTesting(const AndroidInfo& android_info);
-
 // This enumeration maps to the values returned by AndroidInfo::sdk_int(),
 // indicating the Android release associated with a given SDK version.
 enum SdkVersion {
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
index eb13adc..8be637d 100644
--- a/base/android/java/src/org/chromium/base/PackageUtils.java
+++ b/base/android/java/src/org/chromium/base/PackageUtils.java
@@ -5,10 +5,12 @@
 package org.chromium.base;
 
 import android.annotation.SuppressLint;
+import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.Signature;
 import android.os.Build;
+import android.provider.Settings;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -32,6 +34,8 @@
     private static final String TAG = "PackageUtils";
     private static final char[] HEX_CHAR_LOOKUP = "0123456789ABCDEF".toCharArray();
 
+    private static final String DEFAULT_ASSISTANT_SETTING = "assistant";
+
     /** Retrieves the PackageInfo for the given package, or null if it is not installed. */
     public static @Nullable PackageInfo getPackageInfo(String packageName, int flags) {
         PackageManager pm = ContextUtils.getApplicationContext().getPackageManager();
@@ -155,7 +159,29 @@
     }
 
     /**
+     * Gets the package name of the default assistant app (e.g. com.example.app).
+     *
+     * @param context Context used to get settings.
+     * @return Package name of assistant app, or null if unable to get.
+     */
+    public static @Nullable String getDefaultAssistantPackageName(Context context) {
+        @Nullable String defaultAssistantSetting =
+                Settings.Secure.getString(context.getContentResolver(), DEFAULT_ASSISTANT_SETTING);
+        if (defaultAssistantSetting == null || defaultAssistantSetting.isBlank()) {
+            return null;
+        }
+
+        var splitSetting = defaultAssistantSetting.split("/");
+        if (splitSetting.length > 1 && !splitSetting[0].isBlank()) {
+            return splitSetting[0];
+        }
+
+        return null;
+    }
+
+    /**
      * Converts a byte array to hex string with : inserted between each element.
+     *
      * @param byteArray The array to be converted.
      * @return A string with two letters representing each byte and : in between.
      */
diff --git a/base/android/junit/src/org/chromium/base/PackageUtilsUnitTest.java b/base/android/junit/src/org/chromium/base/PackageUtilsUnitTest.java
new file mode 100644
index 0000000..e96d3cb
--- /dev/null
+++ b/base/android/junit/src/org/chromium/base/PackageUtilsUnitTest.java
@@ -0,0 +1,47 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+
+/** Robolectric Unit Tests for {@link PackageUtils}. */
+@RunWith(BaseRobolectricTestRunner.class)
+public class PackageUtilsUnitTest {
+
+    @Test
+    public void testGetDefaultAssistantPackageName() {
+        var context = mock(Context.class);
+        var contentResolver = mock(ContentResolver.class);
+        when(context.getContentResolver()).thenReturn(contentResolver);
+        Settings.Secure.putString(
+                contentResolver, "assistant", "com.example.app/com.example.app.Assistant");
+
+        var result = PackageUtils.getDefaultAssistantPackageName(context);
+        assertEquals("com.example.app", result);
+    }
+
+    @Test
+    public void testGetDefaultAssistantPackageName_wrongFormat() {
+        var context = mock(Context.class);
+        var contentResolver = mock(ContentResolver.class);
+        when(context.getContentResolver()).thenReturn(contentResolver);
+        Settings.Secure.putString(contentResolver, "assistant", "String with invalid format");
+
+        var result = PackageUtils.getDefaultAssistantPackageName(context);
+        assertNull(result);
+    }
+}
diff --git a/build/android/gyp/util/dep_utils.py b/build/android/gyp/util/dep_utils.py
index 4fff9c5..a85e51e6 100644
--- a/build/android/gyp/util/dep_utils.py
+++ b/build/android/gyp/util/dep_utils.py
@@ -124,8 +124,7 @@
     """Create the class to target index."""
     logging.debug('Running list_java_targets.py...')
     list_java_targets_command = [
-        'build/android/list_java_targets.py', '--gn-labels',
-        '--print-params-paths',
+        'build/android/list_java_targets.py', '--print-params-paths',
         f'--output-directory={self._abs_build_output_dir}'
     ]
     if self._should_build:
@@ -152,7 +151,7 @@
 
       target_line_parts = target_line.split(': ')
       assert len(target_line_parts) == 2, target_line_parts
-      target_name, params_path = target_line_parts
+      _, params_path = target_line_parts
 
       if not os.path.exists(params_path):
         assert not self._should_build
@@ -174,7 +173,7 @@
       full_class_names = self._compute_full_class_names_for_build_config(
           params_json)
       build_config = BuildConfig(relpath=relpath,
-                                 target_name=target_name,
+                                 target_name=params_json['gn_target'],
                                  is_group=is_group,
                                  preferred_dep=preferred_dep,
                                  dependent_config_paths=dependent_config_paths,
diff --git a/build/config/linux/cached_results.scope b/build/config/linux/cached_results.scope
index 360984b0..07544f8 100644
--- a/build/config/linux/cached_results.scope
+++ b/build/config/linux/cached_results.scope
@@ -9,15 +9,15 @@
     entries = [
       {
         args = ["atk", "atk-bridge-2.0"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0"], [], ["atk-1.0", "gobject-2.0", "glib-2.0", "atk-bridge-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["atk-1.0", "atk-bridge-2.0", "glib-2.0", "gobject-2.0"], []]
       },
       {
         args = ["atspi-2"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["atspi", "dbus-1", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["atspi", "dbus-1", "glib-2.0"], []]
       },
       {
         args = ["dbus-1"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include" ], [], [ "dbus-1" ], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include"], [], ["dbus-1"], []]
       },
       {
         args = ["dri"]
@@ -33,7 +33,7 @@
       },
       {
         args = ["gio-2.0", "gio-unix-2.0"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0" ], [], [ "gio-2.0", "gobject-2.0", "glib-2.0", ], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["gio-2.0", "glib-2.0", "gobject-2.0"], []]
       },
       {
         args = ["gl"]
@@ -41,23 +41,23 @@
       },
       {
         args = ["gmodule-2.0", "gthread-2.0", "gtk+-3.0"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0"], [], ["gmodule-2.0", "glib-2.0", "gthread-2.0", "glib-2.0", "gtk-3", "gdk-3", "pangocairo-1.0", "pango-1.0", "harfbuzz", "atk-1.0", "cairo-gobject", "cairo", "gdk_pixbuf-2.0", "gio-2.0", "gobject-2.0", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["atk-1.0", "cairo", "cairo-gobject", "gdk-3", "gdk_pixbuf-2.0", "gio-2.0", "glib-2.0", "glib-2.0", "glib-2.0", "gmodule-2.0", "gobject-2.0", "gthread-2.0", "gtk-3", "harfbuzz", "pango-1.0", "pangocairo-1.0"], []]
       },
       {
         args = ["gmodule-2.0", "gthread-2.0", "gtk+-3.0", "gtk+-unix-print-3.0"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0/unix-print"], [], ["gmodule-2.0", "glib-2.0", "gthread-2.0", "glib-2.0", "gtk-3", "gdk-3", "pangocairo-1.0", "pango-1.0", "harfbuzz", "atk-1.0", "cairo-gobject", "cairo", "gdk_pixbuf-2.0", "gio-2.0", "gobject-2.0", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/at-spi2-atk/2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/atk-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/dbus-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gio-unix-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-3.0/unix-print", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/dbus-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["atk-1.0", "cairo", "cairo-gobject", "gdk-3", "gdk_pixbuf-2.0", "gio-2.0", "glib-2.0", "glib-2.0", "glib-2.0", "gmodule-2.0", "gobject-2.0", "gthread-2.0", "gtk-3", "harfbuzz", "pango-1.0", "pangocairo-1.0"], []]
       },
       {
         args = ["gmodule-2.0", "gthread-2.0", "gtk4"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/graphene-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/graphene-1.0/include"], ["-mfpmath=sse", "-msse", "-msse2"], ["gmodule-2.0", "glib-2.0", "gthread-2.0", "glib-2.0", "gtk-4", "pangocairo-1.0", "pango-1.0", "harfbuzz", "gdk_pixbuf-2.0", "cairo-gobject", "cairo", "graphene-1.0", "gio-2.0", "gobject-2.0", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/graphene-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/graphene-1.0/include"], ["-mfpmath=sse", "-msse", "-msse2"], ["cairo", "cairo-gobject", "gdk_pixbuf-2.0", "gio-2.0", "glib-2.0", "glib-2.0", "glib-2.0", "gmodule-2.0", "gobject-2.0", "graphene-1.0", "gthread-2.0", "gtk-4", "harfbuzz", "pango-1.0", "pangocairo-1.0"], []]
       },
       {
         args = ["gmodule-2.0", "gthread-2.0", "gtk4", "gtk4-unix-print"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/graphene-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/graphene-1.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0/unix-print"], ["-mfpmath=sse", "-msse", "-msse2"], ["gmodule-2.0", "glib-2.0", "gthread-2.0", "glib-2.0", "gtk-4", "pangocairo-1.0", "pango-1.0", "harfbuzz", "gdk_pixbuf-2.0", "cairo-gobject", "cairo", "graphene-1.0", "gio-2.0", "gobject-2.0", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/freetype2", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gdk-pixbuf-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/graphene-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/gtk-4.0/unix-print", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/graphene-1.0/include"], ["-mfpmath=sse", "-msse", "-msse2"], ["cairo", "cairo-gobject", "gdk_pixbuf-2.0", "gio-2.0", "glib-2.0", "glib-2.0", "glib-2.0", "gmodule-2.0", "gobject-2.0", "graphene-1.0", "gthread-2.0", "gtk-4", "harfbuzz", "pango-1.0", "pangocairo-1.0"], []]
       },
       {
         args = ["glib-2.0", "gmodule-2.0", "gobject-2.0", "gthread-2.0"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["gmodule-2.0", "glib-2.0", "gobject-2.0", "gthread-2.0", "glib-2.0"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["glib-2.0", "glib-2.0", "gmodule-2.0", "gobject-2.0", "gthread-2.0"], []]
       },
       {
         args = ["libdrm"]
@@ -69,7 +69,7 @@
       },
       {
         args = ["libpipewire-0.3"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pipewire-0.3", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/spa-0.2" ], [ "-D_REENTRANT" ], [ "pipewire-0.3" ], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pipewire-0.3", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/spa-0.2"], ["-D_REENTRANT"], ["pipewire-0.3"], []]
       },
       {
         args = ["libudev"]
@@ -81,19 +81,19 @@
       },
       {
         args = ["nss", "-v", "-lssl3"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/nss", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/nspr" ], [], [ "nss3", "nssutil3", "smime3", "plds4", "plc4", "nspr4" ], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/nspr", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/nss"], [], ["nspr4", "nss3", "nssutil3", "plc4", "plds4", "smime3"], []]
       },
       {
         args = ["pangocairo", "-v", "freetype"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1"], [], ["pangocairo-1.0", "pango-1.0", "gobject-2.0", "glib-2.0", "harfbuzz", "cairo"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/blkid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/cairo", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/fribidi", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/glib-2.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/harfbuzz", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libmount", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/libpng16", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pango-1.0", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/pixman-1", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/uuid", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include"], [], ["cairo", "glib-2.0", "gobject-2.0", "harfbuzz", "pango-1.0", "pangocairo-1.0"], []]
       },
       {
         args = ["Qt5Core", "Qt5Widgets"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtCore", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtWidgets", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtGui"], ["-DQT_WIDGETS_LIB", "-DQT_GUI_LIB", "-DQT_CORE_LIB"], ["Qt5Widgets", "Qt5Gui", "Qt5Core"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtCore", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtGui", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt5/QtWidgets"], ["-DQT_CORE_LIB", "-DQT_GUI_LIB", "-DQT_WIDGETS_LIB"], ["Qt5Core", "Qt5Gui", "Qt5Widgets"], []]
       },
       {
         args = ["Qt6Core", "Qt6Widgets"]
-        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtCore", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtWidgets", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtGui"], ["-DQT_WIDGETS_LIB", "-DQT_GUI_LIB", "-DQT_CORE_LIB"], ["Qt6Widgets", "Qt6Gui", "Qt6Core"], []]
+        pkgresult = [["../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtCore", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtGui", "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/qt6/QtWidgets", "../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++"], ["-DQT_CORE_LIB", "-DQT_GUI_LIB", "-DQT_WIDGETS_LIB"], ["Qt6Core", "Qt6Gui", "Qt6Widgets"], []]
       },
       {
         args = ["xkbcommon"]
diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py
index 4f67c16..f4d31de 100755
--- a/build/config/linux/pkg-config.py
+++ b/build/config/linux/pkg-config.py
@@ -216,7 +216,7 @@
 
   for flag in all_flags[:]:
     if len(flag) == 0 or MatchesAnyRegexp(flag, strip_out):
-      continue;
+      continue
 
     if flag[:2] == '-l':
       libs.append(RewritePath(flag[2:], prefix, sysroot))
@@ -239,7 +239,12 @@
   # Output a GN array, the first one is the cflags, the second are the libs. The
   # JSON formatter prints GN compatible lists when everything is a list of
   # strings.
-  print(json.dumps([includes, cflags, libs, lib_dirs]))
+  print(
+      json.dumps(
+          [sorted(includes),
+           sorted(cflags),
+           sorted(libs),
+           sorted(lib_dirs)]))
   return 0
 
 
diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc
index 107f1ec..05770c7c 100644
--- a/cc/mojo_embedder/viz_layer_context.cc
+++ b/cc/mojo_embedder/viz_layer_context.cc
@@ -1169,6 +1169,7 @@
       SerializeLayer(*layer, resource_provider, context_provider, *update);
     }
   }
+  tree.ClearLayersThatShouldPushProperties();
 
   // TODO(rockot): Granular change tracking for property trees, so we aren't
   // diffing every time.
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 103f148..d88b8ed 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -3015,7 +3015,6 @@
 }
 
 void LayerTreeImpl::ResetAllChangeTracking() {
-  layers_that_should_push_properties_.clear();
   // Iterate over all layers, including masks.
   for (auto* layer : *this)
     layer->ResetChangeTracking();
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn
index ce56834..521358a 100644
--- a/chrome/android/features/tab_ui/BUILD.gn
+++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -164,6 +164,7 @@
     "//components/browser_ui/styles/android:java",
     "//components/browser_ui/styles/android:java_resources",
     "//components/browser_ui/util/android:java",
+    "//components/browser_ui/util/android:test_support_java",
     "//components/browser_ui/widget/android:java",
     "//components/collaboration/public:core_java",
     "//components/commerce/core:proto_java",
@@ -218,6 +219,7 @@
     "//chrome/browser/ui/android/layouts:java",
     "//chrome/browser/ui/android/layouts/test:java",
     "//chrome/test/android:chrome_java_integration_test_support",
+    "//components/browser_ui/util/android:test_support_java",
     "//components/browser_ui/widget/android:test_support_java",
     "//content/public/android:content_full_java",
     "//content/public/android:content_main_dex_java",
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContextMenuCoordinatorUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContextMenuCoordinatorUnitTest.java
index 7ea1b6c7f..e153043 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContextMenuCoordinatorUnitTest.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContextMenuCoordinatorUnitTest.java
@@ -54,7 +54,7 @@
 import org.chromium.chrome.browser.tabmodel.TabRemover;
 import org.chromium.chrome.browser.tasks.tab_management.TabGridContextMenuCoordinator.ShowTabListEditor;
 import org.chromium.chrome.browser.tasks.tab_management.TabListEditorCoordinator.TabListEditorController;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
 import org.chromium.components.collaboration.CollaborationService;
@@ -301,13 +301,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testGetMenuItemClickedCallback_closeTab(listViewTouchTracker, /* shouldAllowUndo= */ true);
     }
@@ -317,13 +314,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testGetMenuItemClickedCallback_closeTab(listViewTouchTracker, /* shouldAllowUndo= */ false);
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
index 7f558c5..1762f77b 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -39,8 +39,8 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionListener;
 import org.chromium.chrome.browser.tasks.tab_management.TabProperties.TabActionState;
 import org.chromium.chrome.tab_ui.R;
-import org.chromium.components.browser_ui.util.OnPeripheralClickListener;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.OnPeripheralClickListener;
 import org.chromium.ui.modelutil.PropertyKey;
 import org.chromium.ui.modelutil.PropertyModel;
 import org.chromium.ui.widget.ChromeImageView;
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAction.java
index c29f0073..ac7d663 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAction.java
@@ -25,6 +25,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorExitMetricGroups;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
 import org.chromium.ui.modelutil.PropertyModel;
 
@@ -220,15 +221,30 @@
     public abstract void onSelectionStateChange(List<TabListEditorItemSelectionId> itemIds);
 
     /**
+     * Processes the selected tabs from the selection list.
+     *
+     * @see #performAction(List, List, MotionEventInfo)
+     */
+    public final boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+        return performAction(tabs, tabGroupSyncIds, /* triggeringMotion= */ null);
+    }
+
+    /**
      * Processes the selected tabs from the selection list this includes related tabs if {@link
      * #editorSupportsActionOnRelatedTabs()} is true.
      *
      * @param tabs A list of tabs from getTabsFromSelection().
      * @param tabGroupSyncIds A list of tab group sync ids representing {@link SavedTabGroups} that
      *     are selected as indicated in the {@link SelectionDelegate}.
+     * @param triggeringMotion the {@link MotionEventInfo} that triggered the action; it is {@code
+     *     null} if {@link android.view.MotionEvent} wasn't available when the action was triggered,
+     *     such as in {@link android.view.View.OnClickListener}.
      * @return Whether an action was performed without an error.
      */
-    public abstract boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds);
+    public abstract boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion);
 
     /**
      * @return Whether to hide the editor after tabking the action.
@@ -238,9 +254,19 @@
     /**
      * Processes the selected tabs from the selection list.
      *
+     * @see #perform(MotionEventInfo)
+     */
+    public final boolean perform() {
+        return perform(/* triggeringMotion= */ null);
+    }
+
+    /**
+     * Processes the selected tabs from the selection list.
+     *
+     * @param triggeringMotion see {@link #performAction(List, List, MotionEventInfo)}.
      * @return whether an action was taken.
      */
-    public boolean perform() {
+    public boolean perform(@Nullable MotionEventInfo triggeringMotion) {
         assert mActionDelegate != null;
         assert mCurrentTabGroupModelFilterSupplier != null;
         assert mSelectionDelegate != null;
@@ -259,7 +285,7 @@
         if (shouldHideEditorAfterAction()) {
             mActionDelegate.syncRecyclerViewPosition();
         }
-        if (!performAction(tabs, tabGroupSyncIds)) {
+        if (!performAction(tabs, tabGroupSyncIds, triggeringMotion)) {
             return false;
         }
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorActionProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorActionProperties.java
index cf7c862..a5675ec 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorActionProperties.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorActionProperties.java
@@ -46,8 +46,8 @@
     public static final WritableObjectPropertyKey<ColorStateList> ICON_TINT =
             new WritableObjectPropertyKey<>();
 
-    public static final WritableObjectPropertyKey<Runnable> ON_CLICK_LISTENER =
-            new WritableObjectPropertyKey<>();
+    public static final WritableObjectPropertyKey<TabListEditorMenuItem.OnClickRunnable>
+            ON_CLICK_LISTENER = new WritableObjectPropertyKey<>();
     public static final WritableBooleanPropertyKey SHOULD_DISMISS_MENU =
             new WritableBooleanPropertyKey();
     public static final WritableObjectPropertyKey<Callback<List<TabListEditorItemSelectionId>>>
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAddToGroupAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAddToGroupAction.java
index bcaa802..469f35e 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAddToGroupAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorAddToGroupAction.java
@@ -28,6 +28,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabGroupListBottomSheetCoordinator.TabGroupCreationCallback;
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
 
 import java.util.ArrayList;
@@ -142,7 +143,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !tabs.isEmpty() : "Add tab to group action should not be enabled for no tabs.";
         BottomSheetController controller = getActionDelegate().getBottomSheetController();
         TabGroupModelFilter filter = getTabGroupModelFilter();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorArchiveSettingsAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorArchiveSettingsAction.java
index 94e3664..6e494e3 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorArchiveSettingsAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorArchiveSettingsAction.java
@@ -6,9 +6,11 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.ArchivedTabsDialogCoordinator.ArchiveDelegate;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -45,7 +47,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         mArchiveDelegate.openArchiveSettings();
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorBookmarkAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorBookmarkAction.java
index 0ede339..d2c351ac 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorBookmarkAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorBookmarkAction.java
@@ -10,6 +10,7 @@
 import androidx.appcompat.content.res.AppCompatResources;
 
 import org.chromium.base.ResettersForTesting;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
 import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
@@ -18,6 +19,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorActionMetricGroups;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -107,7 +109,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !tabs.isEmpty() : "Bookmark action should not be enabled for no tabs.";
         SnackbarManager snackbarManager = getActionDelegate().getSnackbarManager();
         snackbarManager.dismissAllSnackbars();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseAction.java
index 88e29dc..300a7d7 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseAction.java
@@ -9,10 +9,12 @@
 
 import androidx.appcompat.content.res.AppCompatResources;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabClosureParams;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorActionMetricGroups;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -60,7 +62,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !tabs.isEmpty() : "Close action should not be enabled for no tabs.";
 
         getTabGroupModelFilter()
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseArchivedTabsAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseArchivedTabsAction.java
index 7af5a14..fd70b7d 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseArchivedTabsAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCloseArchivedTabsAction.java
@@ -6,9 +6,11 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.ArchivedTabsDialogCoordinator.ArchiveDelegate;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -49,7 +51,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         mArchiveDelegate.closeArchivedTabs(tabs, tabGroupSyncIds);
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorLegacyGroupAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorLegacyGroupAction.java
index 87fc55ce..16160169 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorLegacyGroupAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorLegacyGroupAction.java
@@ -18,6 +18,7 @@
 import org.chromium.chrome.browser.tabmodel.TabModelUtils;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorActionMetricGroups;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.tab_group_sync.TabGroupSyncService;
 
 import java.util.ArrayList;
@@ -101,7 +102,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         TabGroupModelFilter tabGroupModelFilter = getTabGroupModelFilter();
 
         if (tabs.size() == 1) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenu.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenu.java
index 44f164a5..70e88c07 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenu.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenu.java
@@ -169,7 +169,8 @@
                         ((ListItem) mAdapter.getItem(position))
                                 .model.get(TabListEditorActionProperties.MENU_ITEM_ID));
 
-        if (!item.onClick()) return;
+        // TODO(crbug.com/419085605): Use TouchTrackingListView to pass triggeringMotion.
+        if (!item.onClick(/* triggeringMotion= */ null)) return;
 
         if (item.shouldDismissMenu()) mActionViewLayout.dismissMenu();
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuItem.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuItem.java
index 80199c0..c3abb60e 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuItem.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuItem.java
@@ -25,6 +25,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabListEditorAction.IconPosition;
 import org.chromium.chrome.browser.tasks.tab_management.TabListEditorAction.ShowMode;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils;
 import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
 
@@ -35,6 +36,20 @@
  */
 @NullMarked
 public class TabListEditorMenuItem {
+
+    /** Runs when a menu item is clicked. */
+    public interface OnClickRunnable {
+
+        /**
+         * Called when a menu item is clicked.
+         *
+         * @param triggeringMotion the {@link MotionEventInfo} that triggered the click; it is
+         *     {@code null} if {@link android.view.MotionEvent} wasn't available when the click was
+         *     detected, such as in {@link android.view.View.OnClickListener}.
+         */
+        void run(@Nullable MotionEventInfo triggeringMotion);
+    }
+
     private final Context mContext;
 
     private final ListItem mListItem;
@@ -46,7 +61,7 @@
     private boolean mActionViewShowing;
     private @Nullable ColorStateList mIconTint;
 
-    private @MonotonicNonNull Runnable mOnClickRunnable;
+    private @MonotonicNonNull OnClickRunnable mOnClickRunnable;
     private @Nullable Callback<List<TabListEditorItemSelectionId>> mOnSelectionStateChange;
 
     /**
@@ -190,10 +205,12 @@
         }
     }
 
-    public void setOnClickListener(Runnable runnable) {
+    public void setOnClickListener(OnClickRunnable runnable) {
         mOnClickRunnable = runnable;
         if (mActionView != null) {
-            mActionView.setOnClickListener(v -> onClick());
+            // TODO(crbug.com/419085605): Also attach an OnPeripheralClickListener and use it to
+            // pass triggeringMotion.
+            mActionView.setOnClickListener(v -> onClick(/* triggeringMotion= */ null));
         }
     }
 
@@ -209,11 +226,15 @@
         mOnSelectionStateChange = callback;
     }
 
-    /** Handler for click events on the menu item or action view. */
-    public boolean onClick() {
+    /**
+     * Handler for click events on the menu item or action view.
+     *
+     * @param triggeringMotion see {@link OnClickRunnable#run(MotionEventInfo)}.
+     */
+    public boolean onClick(@Nullable MotionEventInfo triggeringMotion) {
         if (!mEnabled) return false;
 
-        assumeNonNull(mOnClickRunnable).run();
+        assumeNonNull(mOnClickRunnable).run(triggeringMotion);
 
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreAllArchivedTabsAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreAllArchivedTabsAction.java
index a2b5738..61d6fbe 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreAllArchivedTabsAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreAllArchivedTabsAction.java
@@ -6,9 +6,11 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.ArchivedTabsDialogCoordinator.ArchiveDelegate;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -49,7 +51,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         mArchiveDelegate.restoreAllArchivedTabs();
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreArchivedTabsAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreArchivedTabsAction.java
index 8b51d97..fbea816 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreArchivedTabsAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorRestoreArchivedTabsAction.java
@@ -6,9 +6,11 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.ArchivedTabsDialogCoordinator.ArchiveDelegate;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -49,7 +51,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         mArchiveDelegate.restoreArchivedTabs(tabs, tabGroupSyncIds);
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectArchivedTabsAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectArchivedTabsAction.java
index 8e4b8b9..8a5913d9 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectArchivedTabsAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectArchivedTabsAction.java
@@ -6,9 +6,11 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.ArchivedTabsDialogCoordinator.ArchiveDelegate;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -49,7 +51,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         mArchiveDelegate.startTabSelection();
         return true;
     }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectionAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectionAction.java
index b9e6be2..19d98985 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectionAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorSelectionAction.java
@@ -10,9 +10,11 @@
 import androidx.annotation.IntDef;
 import androidx.appcompat.content.res.AppCompatResources;
 
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorActionMetricGroups;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -90,7 +92,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         if (mActionState == ActionState.SELECT_ALL) {
             getActionDelegate().selectAll();
             TabUiMetricsHelper.recordSelectionEditorActionMetrics(
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorShareAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorShareAction.java
index 9888c9bc..3d42d8a 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorShareAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorShareAction.java
@@ -23,12 +23,14 @@
 import org.chromium.base.ResettersForTesting;
 import org.chromium.base.task.PostTask;
 import org.chromium.base.task.TaskTraits;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabList;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiMetricsHelper.TabListEditorActionMetricGroups;
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.components.browser_ui.share.ShareImageFileUtils;
 import org.chromium.components.browser_ui.share.ShareParams;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.embedder_support.util.UrlConstants;
 import org.chromium.content_public.common.ContentUrlConstants;
 import org.chromium.url.GURL;
@@ -131,7 +133,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !tabs.isEmpty() : "Share action should not be enabled for no tabs.";
 
         TabList tabList = getTabGroupModelFilter().getTabModel();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorTinkerTankAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorTinkerTankAction.java
index b8b7392af..8de62de 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorTinkerTankAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorTinkerTankAction.java
@@ -10,10 +10,12 @@
 import androidx.appcompat.content.res.AppCompatResources;
 
 import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tinker_tank.TinkerTankDelegate;
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -70,7 +72,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabs,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !tabs.isEmpty() : "Tinker Tank action should not be enabled for no tabs.";
         BottomSheetController bottomSheetController =
                 getActionDelegate().getBottomSheetController();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorUngroupAction.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorUngroupAction.java
index 4cd121a..cbfd641 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorUngroupAction.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorUngroupAction.java
@@ -10,9 +10,11 @@
 import androidx.appcompat.content.res.AppCompatResources;
 
 import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.tab_ui.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 
 import java.util.List;
 
@@ -57,7 +59,10 @@
     }
 
     @Override
-    public boolean performAction(List<Tab> tabsToUngroup, List<String> tabGroupSyncIds) {
+    public boolean performAction(
+            List<Tab> tabsToUngroup,
+            List<String> tabGroupSyncIds,
+            @Nullable MotionEventInfo triggeringMotion) {
         assert !editorSupportsActionOnRelatedTabs()
                 : "Ungrouping is not supported when actions apply to related tabs.";
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
index aaac00bf..52acac9 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java
@@ -35,6 +35,7 @@
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
 import org.chromium.chrome.browser.theme.ThemeColorProvider;
 import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -126,6 +127,7 @@
      * @param tabGroupCreationUiDelegate Orchestrates the tab group creation UI flow.
      * @param undoBarThrottle The controller to throttle the undo bar.
      * @param hubManagerSupplier Supplier ultimately used to get the pane manager to switch panes.
+     * @param archivedTabsAutoDeletePromoManager Manager class for Archived Tabs Auto Delete Promo.
      * @param tabGroupUiActionHandlerSupplier Supplier for the controller used to open hidden
      *     groups.
      */
@@ -157,7 +159,7 @@
             TabGroupCreationUiDelegate tabGroupCreationUiDelegate,
             UndoBarThrottle undoBarThrottle,
             LazyOneshotSupplier<HubManager> hubManagerSupplier,
-            ObservableSupplier<Integer> archivedTabCountSupplier,
+            @Nullable ArchivedTabsAutoDeletePromoManager archivedTabsAutoDeletePromoManager,
             Supplier<TabGroupUiActionHandler> tabGroupUiActionHandlerSupplier);
 
     /**
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
index 4bf4097..97b45f5 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl.java
@@ -42,6 +42,7 @@
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
 import org.chromium.chrome.browser.theme.ThemeColorProvider;
 import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -123,7 +124,7 @@
             @NonNull TabGroupCreationUiDelegate tabGroupCreationUiDelegate,
             UndoBarThrottle undoBarThrottle,
             @NonNull LazyOneshotSupplier<HubManager> hubManagerSupplier,
-            @NonNull ObservableSupplier<Integer> archivedTabCountSupplier,
+            @Nullable ArchivedTabsAutoDeletePromoManager archivedTabsAutoDeletePromoManager,
             @NonNull Supplier<TabGroupUiActionHandler> tabGroupUiActionHandlerSupplier) {
         // TODO(crbug.com/40946413): Consider making this an activity scoped singleton and possibly
         // hosting it in CTA/HubProvider.
@@ -191,8 +192,7 @@
                                 edgeToEdgeSupplier,
                                 compositorViewHolderSupplier,
                                 tabGroupCreationUiDelegate,
-                                bottomSheetController,
-                                archivedTabCountSupplier);
+                                archivedTabsAutoDeletePromoManager);
         return Pair.create(pane, pane);
     }
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPane.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPane.java
index 04134ed..dca0e20 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPane.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPane.java
@@ -36,13 +36,11 @@
 import org.chromium.chrome.browser.hub.PaneId;
 import org.chromium.chrome.browser.hub.ResourceButtonData;
 import org.chromium.chrome.browser.hub.TabSwitcherDrawableButtonData;
-import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
 import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileProvider;
 import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.tab.TabArchiveSettings;
 import org.chromium.chrome.browser.tab.TabSelectionType;
 import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
 import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory;
@@ -52,14 +50,13 @@
 import org.chromium.chrome.browser.tabmodel.TabModelObserver;
 import org.chromium.chrome.browser.tabmodel.TabModelUtils;
 import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode;
-import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoCoordinator;
+import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
 import org.chromium.chrome.browser.toolbar.TabSwitcherDrawable;
 import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
 import org.chromium.chrome.browser.user_education.IphCommand;
 import org.chromium.chrome.browser.user_education.IphCommandBuilder;
 import org.chromium.chrome.browser.user_education.UserEducationHelper;
 import org.chromium.chrome.tab_ui.R;
-import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.components.feature_engagement.FeatureConstants;
 import org.chromium.components.sensitive_content.SensitiveContentFeatures;
 import org.chromium.components.tab_group_sync.TabGroupSyncService;
@@ -100,7 +97,6 @@
                 }
             };
 
-    private final @NonNull Context mContext;
     private final Callback<Boolean> mScrollingObserver = this::onScrollingChanged;
     private final Callback<Boolean> mVisibilityObserver = this::onVisibilityChanged;
     private final @NonNull SharedPreferences mSharedPreferences;
@@ -108,11 +104,10 @@
     private final @NonNull TabSwitcherPaneDrawableCoordinator mTabSwitcherPaneDrawableCoordinator;
     private final ObservableSupplierImpl<Boolean> mHubSearchEnabledStateSupplier =
             new ObservableSupplierImpl<>();
-    private final @NonNull BottomSheetController mBottomSheetController;
-    private final @NonNull ObservableSupplier<Integer> mArchivedTabCountSupplier;
     private @Nullable OnSharedPreferenceChangeListener mPriceAnnotationsPrefListener;
     private @Nullable TabGroupSyncService mTabGroupSyncService;
     private final TabSwitcherDrawable mTabSwitcherDrawable;
+    private final @Nullable ArchivedTabsAutoDeletePromoManager mArchivedTabsAutoDeletePromoManager;
 
     /**
      * @param context The activity context.
@@ -127,9 +122,7 @@
      * @param edgeToEdgeSupplier Supplier to the {@link EdgeToEdgeController} instance.
      * @param compositorViewHolderSupplier Supplier to the {@link CompositorViewHolder} instance.
      * @param tabGroupCreationUiDelegate Orchestrates the tab group creation UI flow.
-     * @param bottomSheetController BottomSheetController required by {@link
-     *     ArchivedTabsAutoDeletePromoCoordinator}.
-     * @param archivedTabCountSupplier Supplier
+     * @param archivedTabsAutoDeletePromoManager Manager for Archived Tabs Auto Delete Promo.
      */
     TabSwitcherPane(
             @NonNull Context context,
@@ -144,8 +137,7 @@
             @NonNull ObservableSupplier<EdgeToEdgeController> edgeToEdgeSupplier,
             @NonNull ObservableSupplier<CompositorViewHolder> compositorViewHolderSupplier,
             @NonNull TabGroupCreationUiDelegate tabGroupCreationUiDelegate,
-            @NonNull BottomSheetController bottomSheetController,
-            @NonNull ObservableSupplier<Integer> archivedTabCountSupplier) {
+            @Nullable ArchivedTabsAutoDeletePromoManager archivedTabsAutoDeletePromoManager) {
         super(
                 context,
                 factory,
@@ -155,15 +147,13 @@
                 edgeToEdgeSupplier,
                 compositorViewHolderSupplier,
                 tabGroupCreationUiDelegate);
-        mContext = context;
         mSharedPreferences = sharedPreferences;
         mTabGroupModelFilterSupplier = tabGroupModelFilterSupplier;
         mTabSwitcherPaneDrawableCoordinator = tabSwitcherDrawableCoordinator;
 
         mTabSwitcherDrawable = tabSwitcherDrawableCoordinator.getTabSwitcherDrawable();
-        mBottomSheetController = bottomSheetController;
-        mArchivedTabCountSupplier = archivedTabCountSupplier;
         mTabSwitcherDrawable.addTabSwitcherDrawableObserver(this);
+        mArchivedTabsAutoDeletePromoManager = archivedTabsAutoDeletePromoManager;
         // Set the TabSwitcherDrawable state on an initial run through.
         onDrawableStateChanged();
 
@@ -276,40 +266,12 @@
         // The IPH system will ensure we don't show all three.
         tryToTriggerTabGroupSurfaceIph();
         tryToTriggerRemoteGroupIph();
-        if (ChromeFeatureList.sAndroidTabDeclutterAutoDelete.isEnabled()) {
-            tryToShowArchivedTabsAutoDeleteDecisionPromo();
+        // Attempts to show the Auto Delete Decision Promo
+        if (mArchivedTabsAutoDeletePromoManager != null) {
+            mArchivedTabsAutoDeletePromoManager.tryToShowArchivedTabsAutoDeleteDecisionPromo();
         }
     }
 
-    /** Attempts to show the Auto Delete Decision Promo if the conditions are met. */
-    private void tryToShowArchivedTabsAutoDeleteDecisionPromo() {
-
-        @NonNull
-        TabArchiveSettings mTabArchiveSettings =
-                new TabArchiveSettings(ChromeSharedPreferences.getInstance());
-        /*
-         * Condition 1: User has not made a choice through this specific promo flow yet.
-         * Condition 2: The auto-delete feature is currently effectively disabled according to
-         *              settings.
-         * Condition 3: The archive feature is enabled
-         * Condition 4: At least 1 tab in archive
-         * Condition 5: Check kill switch
-         */
-        if (mTabArchiveSettings.getAutoDeleteDecisionMade()
-                || mTabArchiveSettings.isAutoDeleteEnabled()
-                || !mTabArchiveSettings.getArchiveEnabled()
-                || mArchivedTabCountSupplier.get() < 1
-                || !ChromeFeatureList.sAndroidTabDeclutterAutoDeleteKillSwitch.isEnabled()) {
-            return;
-        }
-        // All conditions met to consider showing the promo.
-        @NonNull
-        ArchivedTabsAutoDeletePromoCoordinator mArchivedTabsAutoDeletePromoCoordinator =
-                new ArchivedTabsAutoDeletePromoCoordinator(
-                        mContext, mBottomSheetController, mTabArchiveSettings);
-        mArchivedTabsAutoDeletePromoCoordinator.showPromo();
-    }
-
     private void onTabSwitcherPaneCoordinatorChanged(
             @Nullable TabSwitcherPaneCoordinator newValue,
             @Nullable TabSwitcherPaneCoordinator oldValue) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneUnitTest.java
index e9e6b8dd..5092aa3 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneUnitTest.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneUnitTest.java
@@ -49,7 +49,6 @@
 import org.chromium.base.Callback;
 import org.chromium.base.CallbackUtils;
 import org.chromium.base.Token;
-import org.chromium.base.shared_preferences.SharedPreferencesManager;
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.supplier.OneshotSupplierImpl;
@@ -71,12 +70,12 @@
 import org.chromium.chrome.browser.hub.PaneHubController;
 import org.chromium.chrome.browser.hub.PaneId;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
-import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
 import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileProvider;
 import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabArchiveSettings;
 import org.chromium.chrome.browser.tab.TabSelectionType;
 import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory;
 import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition;
@@ -85,6 +84,7 @@
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterObserver;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterObserver.DidRemoveTabGroupReason;
 import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode;
+import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
 import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoSheetContent;
 import org.chromium.chrome.browser.toolbar.TabSwitcherDrawable;
 import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
@@ -164,6 +164,7 @@
     @Mock private TabGroupCreationUiDelegate mUiFlow;
     @Mock private Tracker mTracker;
     @Mock private BottomSheetController mMockBottomSheetController;
+    @Mock private TabArchiveSettings mMockTabArchiveSettings;
 
     @Captor private ArgumentCaptor<ObservableSupplier<Boolean>> mIsAnimatingSupplierCaptor;
 
@@ -191,6 +192,7 @@
             new ObservableSupplierImpl<>();
     private final ObservableSupplierImpl<Integer> mMockArchivedTabCountSupplier =
             new ObservableSupplierImpl<>();
+    private ArchivedTabsAutoDeletePromoManager mMockArchivedTabsAutoDeletePromoManager;
     private TabSwitcherPane mTabSwitcherPane;
     private MockTabModel mTabModel;
     private List<Tab> mTabList;
@@ -267,6 +269,14 @@
         when(mTabSwitcherPaneCoordinator.getIsScrollingSupplier())
                 .thenReturn(mIsScrollingSupplierSupplier);
 
+        mMockArchivedTabsAutoDeletePromoManager =
+                new ArchivedTabsAutoDeletePromoManager(
+                        mContext,
+                        mMockBottomSheetController,
+                        mMockTabArchiveSettings,
+                        mMockArchivedTabCountSupplier,
+                        mTabModel);
+
         mTabSwitcherPane =
                 new TabSwitcherPane(
                         mContext,
@@ -281,8 +291,7 @@
                         mEdgeToEdgeSupplier,
                         mCompositorViewHolderSupplier,
                         mUiFlow,
-                        mMockBottomSheetController,
-                        mMockArchivedTabCountSupplier);
+                        mMockArchivedTabsAutoDeletePromoManager);
         ShadowLooper.runUiThreadTasks();
         verify(mSharedPreferences)
                 .registerOnSharedPreferenceChangeListener(
@@ -1287,28 +1296,12 @@
             boolean autoDeleteEnabled,
             boolean archivingFeatureEnabled,
             int archivedTabCount) {
-        SharedPreferencesManager mSharedPreferenceManager = ChromeSharedPreferences.getInstance();
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_AUTO_DELETE_DECISION_MADE, promoChoiceMade);
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_AUTO_DELETE_ENABLED, autoDeleteEnabled);
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, archivingFeatureEnabled);
+        when(mMockTabArchiveSettings.getAutoDeleteDecisionMade()).thenReturn(promoChoiceMade);
+        when(mMockTabArchiveSettings.isAutoDeleteEnabled()).thenReturn(autoDeleteEnabled);
+        when(mMockTabArchiveSettings.getArchiveEnabled()).thenReturn(archivingFeatureEnabled);
         mMockArchivedTabCountSupplier.set(archivedTabCount);
     }
 
-    /** Helper function to reset ChromePreferenceKeys for promo eligibility conditions. */
-    private void resetPromoEligibilityConditions() {
-        SharedPreferencesManager mSharedPreferenceManager = ChromeSharedPreferences.getInstance();
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_AUTO_DELETE_DECISION_MADE, false);
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_AUTO_DELETE_ENABLED, false);
-        mSharedPreferenceManager.writeBoolean(
-                ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, true);
-        mMockArchivedTabCountSupplier.set(0);
-    }
-
     /** Tests that the AutoDeleteDecisionPromo is shown when all conditions are met */
     @Test
     @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
@@ -1324,7 +1317,6 @@
 
         verify(mMockBottomSheetController)
                 .requestShowContent(any(ArchivedTabsAutoDeletePromoSheetContent.class), eq(true));
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the AutoDeleteDecisionPromo is not shown when the promo flag is off */
@@ -1343,7 +1335,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the AutoDeleteDecisionPromo is not shown when the promo kill switch is off */
@@ -1363,7 +1354,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the promo is NOT shown if the user has already made a choice. */
@@ -1382,7 +1372,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the promo is NOT shown if auto-delete is already effectively enabled. */
@@ -1401,7 +1390,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the promo is NOT shown if the main archiving feature is disabled. */
@@ -1420,7 +1408,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     /** Tests that the promo is NOT shown if there are no archived tabs. */
@@ -1439,7 +1426,6 @@
         verify(mMockBottomSheetController, never())
                 .requestShowContent(
                         any(ArchivedTabsAutoDeletePromoSheetContent.class), anyBoolean());
-        resetPromoEligibilityConditions();
     }
 
     private void createSelectedTab() {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinator.java
index 55b6d7e..5b49b66 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinator.java
@@ -101,11 +101,6 @@
         }
     }
 
-    private void onPromoChoice(@UserChoice int choice) {
-        mUserChoiceThisInstance = choice;
-        initiateSheetDismissal(StateChangeReason.INTERACTION_COMPLETE);
-    }
-
     /** Shows the promo. The caller is responsible for all eligibility checks. */
     public void showPromo() {
         if (mIsSheetCurrentlyManagedByController) {
@@ -147,6 +142,11 @@
         }
     }
 
+    private void onPromoChoice(@UserChoice int choice) {
+        mUserChoiceThisInstance = choice;
+        initiateSheetDismissal(StateChangeReason.INTERACTION_COMPLETE);
+    }
+
     /**
      * Initiates the dismissal of the bottom sheet.
      *
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManager.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManager.java
new file mode 100644
index 0000000..93d5e8b
--- /dev/null
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManager.java
@@ -0,0 +1,123 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo;
+
+import android.content.Context;
+
+import org.chromium.base.lifetime.Destroyable;
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabArchiveSettings;
+import org.chromium.chrome.browser.tab.TabSelectionType;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelObserver;
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.components.embedder_support.util.UrlUtilities;
+
+/**
+ * Helper class to manage the conditions for showing the Auto Delete Archived Tabs Decision Promo
+ * and triggering it.
+ */
+@NullMarked
+public class ArchivedTabsAutoDeletePromoManager implements Destroyable {
+    private final Context mContext;
+    private final BottomSheetController mBottomSheetController;
+    private final TabArchiveSettings mTabArchiveSettings;
+    private final ObservableSupplier<Integer> mArchivedTabCountSupplier;
+    private final TabModel mTabModel;
+    private final TabModelObserver mTabModelObserver =
+            new TabModelObserver() {
+                @Override
+                public void didSelectTab(Tab tab, @TabSelectionType int type, int lastId) {
+                    onDidSelectTab(tab);
+                }
+            };
+    private @Nullable ArchivedTabsAutoDeletePromoCoordinator
+            mArchivedTabsAutoDeletePromoCoordinator;
+
+    /**
+     * Constructor.
+     *
+     * @param context The Android Context.
+     * @param bottomSheetController The BottomSheetController for showing the promo.
+     * @param tabArchiveSettings The TabArchiveSettings instance.
+     * @param archivedTabCountSupplier Supplier for the count of archived tabs.
+     * @param tabModel Regular tab model.
+     */
+    public ArchivedTabsAutoDeletePromoManager(
+            Context context,
+            BottomSheetController bottomSheetController,
+            TabArchiveSettings tabArchiveSettings,
+            ObservableSupplier<Integer> archivedTabCountSupplier,
+            TabModel tabModel) {
+        mContext = context;
+        mBottomSheetController = bottomSheetController;
+        mTabArchiveSettings = tabArchiveSettings;
+        mArchivedTabCountSupplier = archivedTabCountSupplier;
+        mTabModel = tabModel;
+        if (checkConditions()) {
+            mTabModel.addObserver(mTabModelObserver);
+        }
+    }
+
+    /**
+     * Attempts to show the Auto Delete Archived Tabs Decision Promo. This method will first verify
+     * a set of eligibility conditions (e.g., feature flags, user preferences, archived tab state)
+     * by calling an internal check. If all conditions are met, it will attempt to instantiate and
+     * display the promo bottom sheet to the user.
+     */
+    public void tryToShowArchivedTabsAutoDeleteDecisionPromo() {
+        if (checkConditions()) {
+            // All conditions met to consider showing the promo.
+            if (mArchivedTabsAutoDeletePromoCoordinator == null) {
+                mArchivedTabsAutoDeletePromoCoordinator =
+                        new ArchivedTabsAutoDeletePromoCoordinator(
+                                mContext, mBottomSheetController, mTabArchiveSettings);
+            }
+            mArchivedTabsAutoDeletePromoCoordinator.showPromo();
+        } else {
+            destroy();
+        }
+    }
+
+    @Override
+    public void destroy() {
+        mTabModel.removeObserver(mTabModelObserver);
+        if (mArchivedTabsAutoDeletePromoCoordinator != null) {
+            mArchivedTabsAutoDeletePromoCoordinator.destroy();
+            mArchivedTabsAutoDeletePromoCoordinator = null;
+        }
+    }
+
+    /* Observer logic. */
+    private void onDidSelectTab(Tab tab) {
+        if (tab != null
+                && !tab.isIncognitoBranded()
+                && UrlUtilities.isNtpUrl(tab.getUrl())
+                && !tab.isClosing()
+                && !tab.isHidden()) tryToShowArchivedTabsAutoDeleteDecisionPromo();
+    }
+
+    /*
+     * Conditions required for the promo to be shown:
+     * 1. The auto delete promo is available to the user.
+     * 2. The relevant kill switch for this promo is ON.
+     * 3. User has not already made a choice via this specific promo.
+     * 4. The main archiving feature is enabled.
+     * 5. The auto-delete feature (user's choice/default) is currently disabled.
+     * 6. There is at least one tab in the archive.
+     */
+    private boolean checkConditions() {
+        return ChromeFeatureList.sAndroidTabDeclutterAutoDelete.isEnabled()
+                && ChromeFeatureList.sAndroidTabDeclutterAutoDeleteKillSwitch.isEnabled()
+                && !mTabArchiveSettings.getAutoDeleteDecisionMade()
+                && mTabArchiveSettings.getArchiveEnabled()
+                && !mTabArchiveSettings.isAutoDeleteEnabled()
+                && mArchivedTabCountSupplier.get() >= 1;
+    }
+}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManagerTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManagerTest.java
new file mode 100644
index 0000000..06b679e
--- /dev/null
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManagerTest.java
@@ -0,0 +1,230 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.annotation.Config;
+
+import org.chromium.base.supplier.ObservableSupplierImpl;
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.Features.DisableFeatures;
+import org.chromium.base.test.util.Features.EnableFeatures;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabArchiveSettings;
+import org.chromium.chrome.browser.tab.TabSelectionType;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelObserver;
+import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
+import org.chromium.url.JUnitTestGURLs;
+
+/** Unit tests for {@link ArchivedTabsAutoDeletePromoManager}. */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+public class ArchivedTabsAutoDeletePromoManagerTest {
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Mock private BottomSheetController mMockBottomSheetController;
+    @Mock private TabArchiveSettings mMockTabArchiveSettings;
+    @Mock private TabModel mMockRegularTabModel;
+    @Mock private Tab mMockNtpTab;
+    @Mock private Tab mMockOtherTab;
+    @Captor private ArgumentCaptor<TabModelObserver> mTabModelObserverCaptor;
+    private ObservableSupplierImpl<Integer> mArchivedTabCountSupplier;
+    private ArchivedTabsAutoDeletePromoManager mManager;
+
+    @Before
+    public void setUp() {
+        mArchivedTabCountSupplier = new ObservableSupplierImpl<>();
+
+        when(mMockNtpTab.isIncognitoBranded()).thenReturn(false);
+        when(mMockNtpTab.getUrl()).thenReturn(JUnitTestGURLs.NTP_URL);
+        when(mMockNtpTab.isClosing()).thenReturn(false);
+        when(mMockNtpTab.isHidden()).thenReturn(false);
+
+        when(mMockOtherTab.isIncognitoBranded()).thenReturn(false);
+        when(mMockOtherTab.getUrl()).thenReturn(JUnitTestGURLs.URL_1);
+        when(mMockOtherTab.isClosing()).thenReturn(false);
+        when(mMockOtherTab.isHidden()).thenReturn(false);
+    }
+
+    /** Sets up all conditions for the promo. */
+    private void setupAllConditionsForPromo(
+            boolean decisionMade,
+            boolean archiveEnabled,
+            boolean autoDeleteEnabled,
+            int archiveCount) {
+        when(mMockTabArchiveSettings.getAutoDeleteDecisionMade()).thenReturn(decisionMade);
+        when(mMockTabArchiveSettings.getArchiveEnabled()).thenReturn(archiveEnabled);
+        when(mMockTabArchiveSettings.isAutoDeleteEnabled()).thenReturn(autoDeleteEnabled);
+        mArchivedTabCountSupplier.set(archiveCount);
+    }
+
+    /** Helper to create the manager with common default mock setups for conditions. */
+    private void createManager(
+            boolean decisionMade,
+            boolean archiveEnabled,
+            boolean autoDeleteEnabled,
+            int archiveCount) {
+        setupAllConditionsForPromo(decisionMade, archiveEnabled, autoDeleteEnabled, archiveCount);
+        mManager =
+                new ArchivedTabsAutoDeletePromoManager(
+                        ApplicationProvider.getApplicationContext(),
+                        mMockBottomSheetController,
+                        mMockTabArchiveSettings,
+                        mArchivedTabCountSupplier,
+                        mMockRegularTabModel);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE) // Main feature ON
+    public void testConstructor_ConditionsMet_AddsObserverToReadyModel() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @DisableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE) // Main feature OFF
+    public void testConstructor_MainFeatureDisabled_NoObserverAdded() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    @DisableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE_KILL_SWITCH)
+    public void testConstructor_KillSwitchDisabled_NoObserverAdded() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testConstructor_DecisionAlreadyMade_NoObserverAdded() {
+        createManager(true, true, false, 1);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testConstructor_ArchivingDisabled_NoObserverAdded() {
+        createManager(false, false, false, 1);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testConstructor_AutoDeleteAlreadyEnabled_NoObserverAdded() {
+        createManager(false, true, true, 1);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testConstructor_NoArchivedTabs_NoObserverAdded() {
+        createManager(false, true, false, 0);
+        verify(mMockRegularTabModel, never()).addObserver(any(TabModelObserver.class));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE) // Main feature ON
+    public void testOnNtpSelected_AllConditionsMet_ShowsPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(false, true, false, 1);
+
+        observer.didSelectTab(mMockNtpTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+
+        verify(mMockBottomSheetController)
+                .requestShowContent(any(ArchivedTabsAutoDeletePromoSheetContent.class), eq(true));
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testOnNtpSelected_DecisionMadeElseWhere_NoPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(true, true, false, 1);
+
+        observer.didSelectTab(mMockNtpTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+        verify(mMockBottomSheetController, never()).requestShowContent(any(), anyBoolean());
+        verify(mMockRegularTabModel).removeObserver(observer);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testOnNtpSelected_ArchivingDisabled_NoPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(false, false, false, 1);
+
+        observer.didSelectTab(mMockNtpTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+        verify(mMockBottomSheetController, never()).requestShowContent(any(), anyBoolean());
+        verify(mMockRegularTabModel).removeObserver(observer);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testOnNtpSelected_AutoDeleteEnabled_NoPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(false, true, true, 1);
+
+        observer.didSelectTab(mMockNtpTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+        verify(mMockBottomSheetController, never()).requestShowContent(any(), anyBoolean());
+        verify(mMockRegularTabModel).removeObserver(observer);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testOnNtpSelected_NoArchivedTabs_NoPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(false, true, false, 0);
+
+        observer.didSelectTab(mMockNtpTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+        verify(mMockBottomSheetController, never()).requestShowContent(any(), anyBoolean());
+        verify(mMockRegularTabModel).removeObserver(observer);
+    }
+
+    @Test
+    @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_AUTO_DELETE)
+    public void testOnNonNtpSelected_NoPromo() {
+        createManager(false, true, false, 1);
+        verify(mMockRegularTabModel).addObserver(mTabModelObserverCaptor.capture());
+        TabModelObserver observer = mTabModelObserverCaptor.getValue();
+
+        setupAllConditionsForPromo(false, true, false, 1);
+
+        observer.didSelectTab(mMockOtherTab, TabSelectionType.FROM_USER, Tab.INVALID_TAB_ID);
+        verify(mMockBottomSheetController, never()).requestShowContent(any(), anyBoolean());
+    }
+}
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialogTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialogTest.java
index db6deac..d81c04f 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialogTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialogTest.java
@@ -18,10 +18,7 @@
 import static org.chromium.ui.test.util.ViewUtils.onViewWaiting;
 
 import android.os.SystemClock;
-import android.view.InputDevice;
 import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
 
 import androidx.test.espresso.matcher.ViewMatchers;
 import androidx.test.filters.LargeTest;
@@ -51,6 +48,7 @@
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.R;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.ui.base.DeviceFormFactor;
 
 import java.util.Arrays;
@@ -183,31 +181,8 @@
      */
     private static MotionEventInfo createClickTriggeringMotionFromMouse() {
         long downTime = SystemClock.uptimeMillis();
-
-        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = MotionEvent.TOOL_TYPE_MOUSE;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = 0;
-        pointerCoords.y = 0;
-
-        return MotionEventInfo.fromMotionEvent(
-                MotionEvent.obtain(
-                        downTime,
-                        downTime + 50,
-                        MotionEvent.ACTION_UP,
-                        /* pointerCount= */ 1,
-                        new PointerProperties[] {pointerProperties},
-                        new PointerCoords[] {pointerCoords},
-                        /* metaState= */ 0,
-                        /* buttonState= */ 0,
-                        /* xPrecision= */ 1.0f,
-                        /* yPrecision= */ 1.0f,
-                        /* deviceId= */ 0,
-                        /* edgeFlags= */ 0,
-                        InputDevice.SOURCE_MOUSE,
-                        /* flags= */ 0));
+        return MotionEventTestUtils.createMouseMotionInfo(
+                downTime, /* eventTime= */ downTime + 50, MotionEvent.ACTION_UP);
     }
 
     /**
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java
index 3ab15af8..4806f3c 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogTest.java
@@ -1826,8 +1826,8 @@
                                 .getEmbeddedTestServerRule()
                                 .getServer()
                                 .getURL("/chrome/test/data/android/google.html"));
-        when(mHomepagePolicyManager.isHomepageLocationPolicyEnabled()).thenReturn(true);
-        when(mHomepagePolicyManager.getHomepagePreference()).thenReturn(url);
+        when(mHomepagePolicyManager.isHomepageLocationPolicyManaged()).thenReturn(true);
+        when(mHomepagePolicyManager.getHomepageLocationPolicyUrl()).thenReturn(url);
 
         HomepagePolicyManager.setInstanceForTests(mHomepagePolicyManager);
         ChromeTabbedActivity cta = sActivityTestRule.getActivity();
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuTest.java
index ee4aa46..0cfdbd38 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorMenuTest.java
@@ -49,6 +49,7 @@
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.Feature;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabmodel.TabModel;
@@ -59,6 +60,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabListEditorAction.ShowMode;
 import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
 import org.chromium.chrome.test.R;
+import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
 import org.chromium.components.browser_ui.widget.NumberRollView;
 import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
 import org.chromium.ui.UiUtils;
@@ -145,7 +147,10 @@
         }
 
         @Override
-        public boolean performAction(List<Tab> tabs, List<String> tabGroupSyncIds) {
+        public boolean performAction(
+                List<Tab> tabs,
+                List<String> tabGroupSyncIds,
+                @Nullable MotionEventInfo triggeringMotion) {
             return true;
         }
 
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
index 1ad20987..43f05af 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
@@ -96,6 +96,7 @@
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
 import org.chromium.components.commerce.PriceTracking.BuyableProduct;
 import org.chromium.components.commerce.PriceTracking.PriceTrackingData;
@@ -674,19 +675,13 @@
         // MotionEvents to simulate a click.
         long motionDownTime = SystemClock.uptimeMillis();
         gridActionButton.dispatchTouchEvent(
-                TabUiTestHelper.createMouseMotionEvent(
-                        motionDownTime,
-                        /* eventTime= */ motionDownTime,
-                        MotionEvent.ACTION_DOWN,
-                        /* x= */ 0.0f,
-                        /* y= */ 0.0f));
+                MotionEventTestUtils.createMouseMotionEvent(
+                        motionDownTime, /* eventTime= */ motionDownTime, MotionEvent.ACTION_DOWN));
         gridActionButton.dispatchTouchEvent(
-                TabUiTestHelper.createMouseMotionEvent(
+                MotionEventTestUtils.createMouseMotionEvent(
                         motionDownTime,
                         /* eventTime= */ motionDownTime + 200,
-                        MotionEvent.ACTION_UP,
-                        /* x= */ 0.0f,
-                        /* y= */ 0.0f));
+                        MotionEvent.ACTION_UP));
 
         // Assert
         Assert.assertTrue(mCloseClicked.get());
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabUiTestHelper.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabUiTestHelper.java
index 998e366..3bf2ad85 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabUiTestHelper.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabUiTestHelper.java
@@ -34,10 +34,7 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.os.SystemClock;
 import android.provider.Settings;
-import android.view.InputDevice;
 import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -86,6 +83,7 @@
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.ChromeTabUtils;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.content_public.browser.LoadUrlParams;
 import org.chromium.content_public.common.ContentUrlConstants;
 
@@ -338,90 +336,20 @@
 
                                 long motionDownTime = SystemClock.uptimeMillis();
                                 actionButton.dispatchTouchEvent(
-                                        createMouseMotionEvent(
+                                        MotionEventTestUtils.createMouseMotionEvent(
                                                 motionDownTime,
                                                 /* eventTime= */ motionDownTime,
-                                                MotionEvent.ACTION_DOWN,
-                                                /* x= */ 0.0f,
-                                                /* y= */ 0.0f));
+                                                MotionEvent.ACTION_DOWN));
                                 actionButton.dispatchTouchEvent(
-                                        createMouseMotionEvent(
+                                        MotionEventTestUtils.createMouseMotionEvent(
                                                 motionDownTime,
                                                 /* eventTime= */ motionDownTime + 200,
-                                                MotionEvent.ACTION_UP,
-                                                /* x= */ 0.0f,
-                                                /* y= */ 0.0f));
+                                                MotionEvent.ACTION_UP));
                             }
                         });
     }
 
     /**
-     * Creates a {@link MotionEvent} that matches one from a touch screen.
-     *
-     * @see #createMotionEvent(long, long, int, float, float, int, int)
-     */
-    public static MotionEvent createTouchMotionEvent(
-            long downTime, long eventTime, int action, float x, float y) {
-        return createMotionEvent(
-                downTime,
-                eventTime,
-                action,
-                x,
-                y,
-                InputDevice.SOURCE_TOUCHSCREEN,
-                MotionEvent.TOOL_TYPE_FINGER);
-    }
-
-    /**
-     * Creates a {@link MotionEvent} that matches one from a mouse.
-     *
-     * @see #createMotionEvent(long, long, int, float, float, int, int)
-     */
-    public static MotionEvent createMouseMotionEvent(
-            long downTime, long eventTime, int action, float x, float y) {
-        return createMotionEvent(
-                downTime,
-                eventTime,
-                action,
-                x,
-                y,
-                InputDevice.SOURCE_MOUSE,
-                MotionEvent.TOOL_TYPE_MOUSE);
-    }
-
-    /**
-     * Creates a {@link MotionEvent}.
-     *
-     * <p>All parameters are for {@link MotionEvent#obtain}.
-     */
-    private static MotionEvent createMotionEvent(
-            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
-        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = toolType;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = x;
-        pointerCoords.y = y;
-
-        return MotionEvent.obtain(
-                downTime,
-                eventTime,
-                action,
-                /* pointerCount= */ 1,
-                new PointerProperties[] {pointerProperties},
-                new PointerCoords[] {pointerCoords},
-                /* metaState= */ 0,
-                /* buttonState= */ 0,
-                /* xPrecision= */ 1.0f,
-                /* yPrecision= */ 1.0f,
-                /* deviceId= */ 0,
-                /* edgeFlags= */ 0,
-                source,
-                /* flags= */ 0);
-    }
-
-    /**
      * Check whether the tab list in {@link android.widget.PopupWindow} is completely showing. This
      * can be used for tab grid dialog and tab group popup UI.
      *
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java
index 2a6c315..6a4692d6 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediatorUnitTest.java
@@ -120,7 +120,7 @@
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetObserver;
 import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
 import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
 import org.chromium.components.collaboration.CollaborationService;
@@ -1511,13 +1511,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testDialogToolbarMenu_CloseOrDeleteGroup(
                 R.id.close_tab_group,
@@ -1532,13 +1529,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testDialogToolbarMenu_CloseOrDeleteGroup(
                 R.id.close_tab_group,
@@ -1563,13 +1557,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testDialogToolbarMenu_CloseOrDeleteGroup(
                 R.id.delete_tab_group,
@@ -1584,13 +1575,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testDialogToolbarMenu_CloseOrDeleteGroup(
                 R.id.delete_tab_group,
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinderUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinderUnitTest.java
index 82aae74..60382fa 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinderUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinderUnitTest.java
@@ -67,8 +67,8 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionButtonData.TabActionButtonType;
 import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionListener;
 import org.chromium.chrome.browser.tasks.tab_management.TabProperties.TabActionState;
-import org.chromium.components.browser_ui.util.OnPeripheralClickListener;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.OnPeripheralClickListener;
 import org.chromium.ui.modelutil.PropertyModel;
 
 /** Junit Tests for {@link TabGridViewBinder}. */
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
index 43a20079..efc8063c 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediatorUnitTest.java
@@ -153,7 +153,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionButtonData.TabActionButtonType;
 import org.chromium.chrome.browser.tasks.tab_management.TabProperties.TabActionState;
 import org.chromium.chrome.browser.tasks.tab_management.TabProperties.UiType;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.ActionConfirmationResult;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
@@ -1076,13 +1076,10 @@
                 .run(
                         mItemView2,
                         mModelList.get(1).model.get(TabProperties.TAB_ID),
-                        MotionEventInfo.fromMotionEvent(
-                                TabUiTestHelper.createMouseMotionEvent(
-                                        /* downTime= */ SystemClock.uptimeMillis(),
-                                        /* eventTime= */ SystemClock.uptimeMillis() + 200,
-                                        MotionEvent.ACTION_UP,
-                                        /* x= */ 0,
-                                        /* y= */ 0)));
+                        MotionEventTestUtils.createMouseMotionInfo(
+                                /* downTime= */ SystemClock.uptimeMillis(),
+                                /* eventTime= */ SystemClock.uptimeMillis() + 200,
+                                MotionEvent.ACTION_UP));
 
         verify(mTabRemover)
                 .closeTabs(
@@ -4320,13 +4317,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testOnMenuItemClickedCallback_CloseOrDeleteGroupInTabSwitcher(
                 R.id.close_tab_group,
@@ -4340,13 +4334,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testOnMenuItemClickedCallback_CloseOrDeleteGroupInTabSwitcher(
                 R.id.close_tab_group,
@@ -4369,13 +4360,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testOnMenuItemClickedCallback_CloseOrDeleteGroupInTabSwitcher(
                 R.id.delete_tab_group,
@@ -4389,13 +4377,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testOnMenuItemClickedCallback_CloseOrDeleteGroupInTabSwitcher(
                 R.id.delete_tab_group,
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni
index 51806fb..9360502e 100644
--- a/chrome/android/features/tab_ui/tab_management_java_sources.gni
+++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
@@ -207,6 +207,7 @@
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ThumbnailFetcher.java",
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TransitiveSharedGroupObserver.java",
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinator.java",
+  "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManager.java",
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoProperties.java",
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoSheetContent.java",
   "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoViewBinder.java",
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
index ba94485..108fe046 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
@@ -1022,17 +1022,18 @@
         }
 
         if (mSectionHeaderModel != null) {
-            if (mTabToStreamMap.isEmpty()) return;
-
-            mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).clear();
-            for (Stream s : mTabToStreamMap.values()) {
-                s.removeOnContentChangedListener(mStreamContentChangedListener);
-                s.destroy();
+            if (!mTabToStreamMap.isEmpty()) {
+                mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).clear();
+                for (Stream s : mTabToStreamMap.values()) {
+                    s.removeOnContentChangedListener(mStreamContentChangedListener);
+                    s.destroy();
+                }
+                mTabToStreamMap.clear();
             }
-            mTabToStreamMap.clear();
         } else {
-            if (mCurrentStream == null) return;
-            mCurrentStream.removeOnContentChangedListener(mStreamContentChangedListener);
+            if (mCurrentStream != null) {
+                mCurrentStream.removeOnContentChangedListener(mStreamContentChangedListener);
+            }
         }
         mStreamContentChangedListener = null;
         unbindStream();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index 195499d2..9f754da 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -208,6 +208,7 @@
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper;
 import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabArchiveSettings;
 import org.chromium.chrome.browser.tab.TabAssociatedApp;
 import org.chromium.chrome.browser.tab.TabCreationState;
 import org.chromium.chrome.browser.tab.TabDelegateFactory;
@@ -256,6 +257,7 @@
 import org.chromium.chrome.browser.tasks.tab_management.TabModelNotificationDotManager;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiUtils;
 import org.chromium.chrome.browser.tasks.tab_management.TabsSettings;
+import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
 import org.chromium.chrome.browser.theme.ThemeModuleUtils;
 import org.chromium.chrome.browser.toolbar.ToolbarIntentMetadata;
 import org.chromium.chrome.browser.toolbar.ToolbarManager;
@@ -556,6 +558,7 @@
 
     private SuggestionEventObserver mSuggestionEventObserver;
     private GroupSuggestionsPromotionCoordinator mGroupSuggestionsPromotionCoordinator;
+    private @Nullable ArchivedTabsAutoDeletePromoManager mArchivedTabsAutoDeletePromoManager;
 
     @Nullable private ExtensionKeybindingRegistry mExtensionKeybindingRegistry;
 
@@ -1038,8 +1041,7 @@
                         tabGroupCreationUiDelegate,
                         mUndoBarPopupController,
                         mHubProvider.getHubManagerSupplier(),
-                        ArchivedTabModelOrchestrator.getForProfile(mTabModelProfileSupplier.get())
-                                .getTabCountSupplier(),
+                        mArchivedTabsAutoDeletePromoManager,
                         () ->
                                 ((TabbedRootUiCoordinator) mRootUiCoordinator)
                                         .getTabGroupSyncController());
@@ -1351,6 +1353,8 @@
             mExtensionKeybindingRegistry =
                     ExtensionKeybindingRegistry.maybeCreate(
                             getProfileProviderSupplier().get().getOriginalProfile());
+
+            initiateArchivedTabsAutoDeletePromoManager();
         }
     }
 
@@ -4271,4 +4275,23 @@
     public UndoBarController getUndoBarControllerForTesting() {
         return mUndoBarPopupController;
     }
+
+    private void initiateArchivedTabsAutoDeletePromoManager() {
+        if (ChromeFeatureList.sAndroidTabDeclutterAutoDelete.isEnabled()
+                && ChromeFeatureList.sAndroidTabDeclutterAutoDeleteKillSwitch.isEnabled()
+                && !ChromeSharedPreferences.getInstance()
+                        .readBoolean(
+                                ChromePreferenceKeys.TAB_DECLUTTER_AUTO_DELETE_DECISION_MADE,
+                                false)) {
+            mArchivedTabsAutoDeletePromoManager =
+                    new ArchivedTabsAutoDeletePromoManager(
+                            ChromeTabbedActivity.this,
+                            mRootUiCoordinator.getBottomSheetController(),
+                            new TabArchiveSettings(ChromeSharedPreferences.getInstance()),
+                            ArchivedTabModelOrchestrator.getForProfile(
+                                            mTabModelSelector.getCurrentModel().getProfile())
+                                    .getTabCountSupplier(),
+                            mTabModelSelector.getModel(false));
+        }
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
index 2882fac..8cca82c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
@@ -66,9 +66,6 @@
  */
 public class ArchivedTabModelOrchestrator extends TabModelOrchestrator implements Destroyable {
     public static final String ARCHIVED_TAB_SELECTOR_UNIQUE_TAG = "archived";
-    // Time delay on running declutter passes to allow the local sync db and remote sync service to
-    // synchronize, ensuring local {@link SavedTabGroup}s have the most up-to-date information.
-    public static final long LOCAL_SYNC_DB_SYNCHRONIZATION_DELAY = 5000;
 
     /** Observer for the ArchivedTabModelOrchestrator class. */
     public interface Observer {
@@ -276,19 +273,15 @@
     public void registerTabModelOrchestrator(TabbedModeTabModelOrchestrator orchestrator) {
         mActivityTabModelOrchestrators.add(orchestrator);
         if (mTabArchiveSettings.getArchiveEnabled()) {
-            // To account for the local tab group sync database synchronizing with the sync service
-            // on startup, a delay must be included when initiating a declutter pass that involves
-            // archiving tab groups. Unfortunately, there is no particular synchronization step that
-            // can be waited on, so the indicated delay is the best that can be done.
-            if (ChromeFeatureList.sAndroidTabDeclutterArchiveTabGroups.isEnabled()) {
-                // TODO(crbug.com/410035913): Find a better step to wait on rather than a set delay.
-                PostTask.postDelayedTask(
-                        TaskTraits.UI_DEFAULT,
-                        () -> doDeclutterPassAndScheduleNext(new WeakReference<>(orchestrator)),
-                        LOCAL_SYNC_DB_SYNCHRONIZATION_DELAY);
-            } else {
-                doDeclutterPassAndScheduleNext(new WeakReference<>(orchestrator));
-            }
+            // There is some delay while the local tab group sync databases synchronizes with the
+            // sync service on startup. Archiving is done on startup, although it's loaded as a
+            // deferred task which is only started after the regular tab model is already
+            // initialized. This is done to prevent any noticeable lag when archiving tabs. There
+            // is the chance that tab groups are archived while in the midst of being deleted. This
+            // is much more of an edge case than adding a set delay at startup, and is already
+            // handled by observer events in the relevant UI which mirror the behavior in the tab
+            // groups pane.
+            doDeclutterPassAndScheduleNext(new WeakReference<>(orchestrator));
         } else {
             rescueArchivedTabs(orchestrator);
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AndroidPaymentAppsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AndroidPaymentAppsFragment.java
index 6d94a379..3f4adee4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AndroidPaymentAppsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AndroidPaymentAppsFragment.java
@@ -24,6 +24,7 @@
 import org.chromium.chrome.browser.payments.ServiceWorkerPaymentAppBridge;
 import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
 import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.components.browser_ui.settings.TextMessagePreference;
 import org.chromium.components.payments.AndroidPaymentAppFactory;
 
@@ -58,8 +59,8 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         rebuildPaymentAppsList();
     }
 
@@ -110,4 +111,9 @@
     private Context getStyledContext() {
         return getPreferenceManager().getContext();
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCardBenefitsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCardBenefitsFragment.java
index 31218f3..d816be3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCardBenefitsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillCardBenefitsFragment.java
@@ -41,6 +41,7 @@
 import org.chromium.components.autofill.ImageSize;
 import org.chromium.components.browser_ui.settings.ChromeBasePreference;
 import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.components.browser_ui.settings.TextMessagePreference;
 import org.chromium.ui.text.SpanApplier;
 import org.chromium.url.GURL;
@@ -93,8 +94,8 @@
 
     // ChromeBaseSettingsFragment override.
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         // Rebuild the preference list in case any of the underlying data has been updated and if
         // any preferences need to be added/removed based on that.
         rebuildPage();
@@ -277,4 +278,9 @@
             mDivider.draw(canvas);
         }
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
index d09dfc20..66a2da2e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalCardEditor.java
@@ -46,6 +46,7 @@
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.settings.SettingsActivity;
 import org.chromium.components.autofill.AutofillProfile;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.ui.accessibility.AccessibilityState;
 import org.chromium.ui.text.EmptyTextWatcher;
 
@@ -635,4 +636,9 @@
                         cardNumber, /* emptyIfInvalid= */ false)
                 .equals(AMEX_NETWORK_NAME);
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalIbanEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalIbanEditor.java
index 0b528ae4..1a89fec 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalIbanEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillLocalIbanEditor.java
@@ -39,6 +39,7 @@
 import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.settings.ProfileDependentSetting;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.ui.modaldialog.DialogDismissalCause;
 import org.chromium.ui.modaldialog.ModalDialogManager;
 
@@ -278,4 +279,9 @@
                         /* titleResId= */ R.string.autofill_iban_delete_confirmation_title);
         dialog.show();
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
index 25be3ea..df3703f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
@@ -56,6 +56,7 @@
 import org.chromium.components.browser_ui.settings.CardWithButtonPreference;
 import org.chromium.components.browser_ui.settings.ChromeBasePreference;
 import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.components.browser_ui.settings.SettingsNavigation;
 import org.chromium.components.browser_ui.styles.SemanticColorUtils;
 import org.chromium.components.payments.AndroidPaymentAppFactory;
@@ -137,8 +138,8 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         // Always rebuild our list of credit cards.  Although we could detect if credit cards are
         // added or deleted, the credit card summary (number) might be different.  To be safe, we
         // update all.
@@ -684,4 +685,9 @@
             mReauthenticatorBridge = null;
         }
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
index dca5039..ad94c8d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
@@ -46,6 +46,7 @@
 import org.chromium.components.autofill.FieldType;
 import org.chromium.components.autofill.RecordType;
 import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.components.browser_ui.styles.SemanticColorUtils;
 import org.chromium.components.plus_addresses.PlusAddressesUserActions;
 import org.chromium.components.signin.identitymanager.ConsentLevel;
@@ -152,8 +153,8 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         // Always rebuild our list of profiles.  Although we could detect if profiles are added or
         // deleted (GUID list changes), the profile summary (name+addr) might be different.  To be
         // safe, we update all.
@@ -368,4 +369,9 @@
                 return R.drawable.location_on_logo;
         }
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
index f20ad2c..08857d61 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillServerCardEditor.java
@@ -35,6 +35,7 @@
 import org.chromium.components.autofill.VirtualCardEnrollmentLinkType;
 import org.chromium.components.autofill.VirtualCardEnrollmentState;
 import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.ui.modaldialog.DialogDismissalCause;
 import org.chromium.ui.modaldialog.ModalDialogManager;
 import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
@@ -359,4 +360,9 @@
     public void setServerCardEditLinkOpenerCallbackForTesting(Callback<String> callback) {
         mServerCardEditLinkOpenerCallback = callback;
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/FinancialAccountsManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/FinancialAccountsManagementFragment.java
index a674dfa..d15e559e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/FinancialAccountsManagementFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/FinancialAccountsManagementFragment.java
@@ -35,6 +35,7 @@
 import org.chromium.components.autofill.payments.BankAccount;
 import org.chromium.components.autofill.payments.Ewallet;
 import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 
 /** Fragment showing management options for financial accounts like Pix, e-Wallets etc. */
 @NullMarked
@@ -98,8 +99,8 @@
 
     // ChromeBaseSettingsFragment override.
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         // Rebuild the preference list in case any of the underlying data has been updated and if
         // any preferences need to be added/removed based on that.
         rebuildPage();
@@ -292,4 +293,9 @@
     static void setObserverForTest(Callback<Fragment> observerForTest) {
         sObserverForTest = observerForTest;
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
index dc1142c..dea7164 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
@@ -966,4 +966,9 @@
     private boolean isInMultiWindowMode() {
         return MultiWindowUtils.getInstanceCount() > 1;
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
index bd3d48b..d69549b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
@@ -208,7 +208,15 @@
 
     @Override
     public void getAnchorRect(Rect out) {
-        getPaddedBoundsPx(out);
+        // For the context menu, we should use the unpadded height (so that the anchor rect will
+        // stretch to the bottom of the toolbar), but we should use the padded width (so that the
+        // left edge of the context menu will visually align with the tab group indicator oval).
+        float dpToPx = getDpToPx();
+        out.set(
+                Math.round(getPaddedX() * dpToPx),
+                Math.round(getDrawY() * dpToPx),
+                Math.round((getPaddedX() + getPaddedWidth()) * dpToPx),
+                Math.round((getDrawY() + getHeight()) * dpToPx));
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
index 46a021be..0f3ffe8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -351,9 +351,7 @@
 
         if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) {
             ModelList pageGroup = new ModelList();
-            // TODO(crbug.com/405842034): investigate supporting downloads in incognito mode.
-            if (!mItemDelegate.isIncognito()
-                    && UrlUtilities.isDownloadableScheme(mParams.getPageUrl())) {
+            if (UrlUtilities.isDownloadableScheme(mParams.getPageUrl())) {
                 pageGroup.add(
                         createListItem(Item.SAVE_PAGE, false, !mIsDownloadRestrictedByPolicy));
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java
index 93e7687..e006e12 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java
@@ -33,6 +33,8 @@
 import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
+import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
 import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHandler;
 import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHandler.MinimizeAppAndCloseTabType;
 import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider;
@@ -44,6 +46,8 @@
 import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver;
+import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
+import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
 import org.chromium.chrome.browser.preloading.PreloadingDataBridge;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
@@ -299,6 +303,25 @@
         mIsHandlingUserNavigation = false;
     }
 
+    // TODO (crbug.com/417460143): Bring new tab to foreground when applicable.
+    /** Opens a URL in an adjacent Activity. */
+    private void openInAdjacentActivity(Tab tab, Activity adjacentActivity) {
+        Intent newIntent = new Intent();
+        int windowId = TabWindowManagerSingleton.getInstance().getIdForWindow(adjacentActivity);
+        newIntent.setClassName(
+                ContextUtils.getApplicationContext(), adjacentActivity.getClass().getName());
+        newIntent.putExtra(IntentHandler.EXTRA_WINDOW_ID, windowId);
+        newIntent.putExtra(IntentHandler.EXTRA_FROM_OPEN_IN_BROWSER, true);
+        IntentUtils.addTrustedIntentExtras(newIntent);
+        MultiWindowUtils.setOpenInOtherWindowIntentExtras(
+                newIntent, mActivity, adjacentActivity.getClass());
+        MultiInstanceManager.onMultiInstanceModeStarted();
+        ReparentingTask.from(tab).setupIntent(newIntent, null);
+        MultiWindowUtils.launchIntentInInstance(newIntent, windowId);
+        finish(REPARENTING);
+        mTabProvider.removeTab();
+    }
+
     /**
      * Opens the URL currently being displayed in the Custom Tab in the regular browser.
      *
@@ -358,15 +381,19 @@
                     ContextUtils.getApplicationContext().getPackageName());
             intent.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, true);
             IntentUtils.addTrustedIntentExtras(intent);
-
             mActivity.startActivity(intent, startActivityOptions);
             finish(FinishReason.OPEN_IN_BROWSER);
         } else if (canFinishActivity && willChromeHandleIntent) {
-            // Remove observer to not trigger finishing in onAllTabsClosed() callback - we'll use
-            // reparenting finish callback instead.
-            mTabProvider.removeObserver(mTabObserver);
-            mTabController.detachAndStartReparenting(
-                    intent, startActivityOptions, () -> finish(FinishReason.REPARENTING));
+            Activity adjacentActivity = MultiWindowUtils.getAdjacentWindowActivity(mActivity);
+            if (adjacentActivity != null) {
+                openInAdjacentActivity(tab, adjacentActivity);
+            } else {
+                // Remove observer to not trigger finishing in onAllTabsClosed() callback - we'll
+                // use reparenting finish callback instead.
+                mTabProvider.removeObserver(mTabObserver);
+                mTabController.detachAndStartReparenting(
+                        intent, startActivityOptions, () -> finish(REPARENTING));
+            }
         } else {
             if (mIntentDataProvider.isInfoPage()) {
                 IntentHandler.startChromeLauncherActivityForTrustedIntent(intent);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/BackActionDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/BackActionDelegate.java
index f848ecf..220eb91 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/BackActionDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/BackActionDelegate.java
@@ -6,12 +6,14 @@
 
 import androidx.annotation.IntDef;
 
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.tab.Tab;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
 /** Delegates actions when back navigation gesture is made. */
+@NullMarked
 public interface BackActionDelegate {
     /** Type of actions triggered by back navigation gesture. */
     @Retention(RetentionPolicy.SOURCE)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavMetrics.java
index 5aff1b8..8583ad2f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavMetrics.java
@@ -8,11 +8,13 @@
 
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.build.annotations.NullMarked;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
 /** Metrics util class. */
+@NullMarked
 class GestureNavMetrics {
     // Used to record the UMA histogram GestureNavigation. This definition should be
     // in sync with the enum "GestureNavigationDirection" in tools/metrics/histograms/enums.xml.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java
index adc3168..90dfd456 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java
@@ -4,12 +4,14 @@
 
 package org.chromium.chrome.browser.gesturenav;
 
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.ui.modelutil.PropertyKey;
 import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
 import org.chromium.ui.modelutil.PropertyModel.WritableFloatPropertyKey;
 import org.chromium.ui.modelutil.PropertyModel.WritableIntPropertyKey;
 
 /** Properties used for gesture navigation view model. */
+@NullMarked
 class GestureNavigationProperties {
     /** Gesture navigation action as defined in {@link NavigationHandler.GestureAction}. */
     static final WritableIntPropertyKey ACTION = new WritableIntPropertyKey();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationUtils.java
index 2df5de0..2714cbf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationUtils.java
@@ -4,12 +4,14 @@
 
 package org.chromium.chrome.browser.gesturenav;
 
+import static org.chromium.build.NullUtil.assumeNonNull;
+
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
 
-import androidx.annotation.Nullable;
-
 import org.chromium.base.SysUtils;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.ui.native_page.NativePage;
@@ -19,6 +21,7 @@
 import org.chromium.ui.UiUtils;
 
 /** A set of helper functions related to gesture navigation. */
+@NullMarked
 public class GestureNavigationUtils {
 
     /**
@@ -71,6 +74,7 @@
         if (webContents == null) return false;
         NavigationHistory navigationHistory =
                 webContents.getNavigationController().getNavigationHistory();
+        assumeNonNull(navigationHistory);
         NavigationEntry entry =
                 navigationHistory.getEntryAtIndex(
                         navigationHistory.getCurrentEntryIndex() + (forward ? 1 : -1));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationViewBinder.java
index 05c81c0..f7ca3b9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationViewBinder.java
@@ -13,11 +13,13 @@
 
 import android.view.View;
 
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.gesturenav.NavigationHandler.GestureAction;
 import org.chromium.ui.modelutil.PropertyKey;
 import org.chromium.ui.modelutil.PropertyModel;
 
 /** This class responsible for pushing updates to gesture navigation view. */
+@NullMarked
 class GestureNavigationViewBinder {
     /**
      * view binder that associates a view with a model.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java
index e2c782d..2e2312a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java
@@ -4,33 +4,39 @@
 
 package org.chromium.chrome.browser.gesturenav;
 
+import static org.chromium.build.NullUtil.assumeNonNull;
+
 import android.content.Context;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
-import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.Callback;
+import org.chromium.build.annotations.EnsuresNonNull;
+import org.chromium.build.annotations.MonotonicNonNull;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.gesturenav.NavigationBubble.CloseTarget;
 import org.chromium.ui.base.BackGestureEventSwipeEdge;
 
 /** FrameLayout that supports side-wise slide gesture for history navigation. */
+@NullMarked
 class HistoryNavigationLayout extends FrameLayout implements ViewGroup.OnHierarchyChangeListener {
     // Callback that performs navigation action in response to UI.,
     private final Callback<Boolean> mNavigateCallback;
 
     // Frame layout hosting the arrow puck UI.
-    @Nullable private SideSlideLayout mSideSlideLayout;
+    private @MonotonicNonNull SideSlideLayout mSideSlideLayout;
 
     // Async runnable for ending the refresh animation after the page first
     // loads a frame. This is used to provide a reasonable minimum animation time.
-    private Runnable mStopNavigatingRunnable;
+    private @Nullable Runnable mStopNavigatingRunnable;
 
     // Handles removing the layout from the view hierarchy.  This is posted to ensure
     // it does not conflict with pending Android draws.
-    private Runnable mDetachLayoutRunnable;
+    private @Nullable Runnable mDetachLayoutRunnable;
 
     public HistoryNavigationLayout(Context context, Callback<Boolean> navigateCallback) {
         super(context);
@@ -54,6 +60,7 @@
      * Creates a view hosting the gesture navigation UI.
      * @return The created view.
      */
+    @EnsuresNonNull("mSideSlideLayout")
     private SideSlideLayout createLayout() {
         mSideSlideLayout = new SideSlideLayout(getContext());
         mSideSlideLayout.setLayoutParams(
@@ -133,12 +140,13 @@
     /** Cancel navigation operation by removing the runnable in the queue. */
     void cancelStopNavigatingRunnable() {
         if (mStopNavigatingRunnable != null) {
+            assumeNonNull(mSideSlideLayout);
             mSideSlideLayout.removeCallbacks(mStopNavigatingRunnable);
             mStopNavigatingRunnable = null;
         }
     }
 
-    Runnable getDetachLayoutRunnable() {
+    @Nullable Runnable getDetachLayoutRunnable() {
         return mDetachLayoutRunnable;
     }
 
@@ -154,6 +162,7 @@
     /** Cancel the operation detaching the layout from view hierarchy. */
     void cancelDetachLayoutRunnable() {
         if (mDetachLayoutRunnable != null) {
+            assumeNonNull(mSideSlideLayout);
             mSideSlideLayout.removeCallbacks(mDetachLayoutRunnable);
             mDetachLayoutRunnable = null;
         }
@@ -161,6 +170,7 @@
 
     Runnable getStopNavigatingRunnable() {
         if (mStopNavigatingRunnable == null) {
+            assumeNonNull(mSideSlideLayout);
             mStopNavigatingRunnable = () -> mSideSlideLayout.stopNavigating();
         }
         return mStopNavigatingRunnable;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationBubble.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationBubble.java
index 13b35ee..1571c571 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationBubble.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationBubble.java
@@ -19,6 +19,8 @@
 import androidx.annotation.IntDef;
 import androidx.core.widget.ImageViewCompat;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.R;
 import org.chromium.components.browser_ui.styles.SemanticColorUtils;
 import org.chromium.ui.util.ColorUtils;
@@ -30,6 +32,7 @@
  * View class for a bubble used in gesture navigation UI that consists of an icon
  * and an optional text.
  */
+@NullMarked
 public class NavigationBubble extends LinearLayout {
     /**
      * Target to close when gesture navigation takes place on the beginning
@@ -78,7 +81,7 @@
 
     private TextView mText;
     private ImageView mIcon;
-    private AnimationListener mListener;
+    private @Nullable AnimationListener mListener;
 
     // True if arrow bubble is faded out.
     private boolean mArrowFaded;
@@ -90,7 +93,7 @@
         this(context, null);
     }
 
-    public NavigationBubble(Context context, AttributeSet attrs) {
+    public NavigationBubble(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
 
         mBlack = getContext().getColor(R.color.navigation_bubble_arrow);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationGlow.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationGlow.java
index a9bf9d3..573f911f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationGlow.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationGlow.java
@@ -6,7 +6,10 @@
 
 import android.view.ViewGroup;
 
+import org.chromium.build.annotations.NullMarked;
+
 /** Shows overscroll-like glow on the right edge when forward navigation reaches the end. */
+@NullMarked
 abstract class NavigationGlow {
     protected final ViewGroup mParentView;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationSheetView.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationSheetView.java
index 9e45e0f..61b2805 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationSheetView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/NavigationSheetView.java
@@ -10,12 +10,15 @@
 import android.widget.ListView;
 import android.widget.RelativeLayout;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.R;
 
 /**
  * {@link View} class for navigation sheet. Provided as content view for
  * {@link BottomSheet}.
  */
+@NullMarked
 public class NavigationSheetView extends RelativeLayout {
     private ListView mListView;
 
@@ -23,7 +26,7 @@
         this(context, null);
     }
 
-    public NavigationSheetView(Context context, AttributeSet attrs) {
+    public NavigationSheetView(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowCoordinator.java
index 617dce5..9d0b2147 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowCoordinator.java
@@ -6,10 +6,12 @@
 
 import android.view.ViewGroup;
 
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.layouts.LayoutManager;
 import org.chromium.ui.base.WindowAndroid;
 
 /** Coordinator of controlling overscroll glow effect. */
+@NullMarked
 public class OverscrollGlowCoordinator {
 
     // {@link NavigationGlow} object for rendered pages.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay.java
index 537f0321..02a91b2b5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay.java
@@ -7,6 +7,8 @@
 import android.graphics.RectF;
 import android.view.ViewGroup;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.layouts.EventFilter;
 import org.chromium.chrome.browser.layouts.SceneOverlay;
 import org.chromium.chrome.browser.layouts.components.VirtualView;
@@ -20,6 +22,7 @@
  * Handles overscroll glow effect when gesture navigation can't go forward any more. Renders the
  * effect on a compositor layer in scene overlay layer tree.
  */
+@NullMarked
 class OverscrollGlowOverlay extends NavigationGlow implements SceneOverlay {
     private final OverscrollSceneLayer mSceneLayer;
     private final Runnable mRequestLayerUpdate;
@@ -94,7 +97,7 @@
     }
 
     @Override
-    public EventFilter getEventFilter() {
+    public @Nullable EventFilter getEventFilter() {
         return null;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollSceneLayer.java
index b755f18..8e501ed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/OverscrollSceneLayer.java
@@ -9,6 +9,8 @@
 import org.jni_zero.JNINamespace;
 import org.jni_zero.NativeMethods;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.layouts.scene_layer.SceneLayer;
 import org.chromium.chrome.browser.layouts.scene_layer.SceneOverlayLayer;
 import org.chromium.ui.base.WindowAndroid;
@@ -16,6 +18,7 @@
 
 /** {@link SceneOverlayLayer} implementation for gesture navigation overscroll effect. */
 @JNINamespace("android")
+@NullMarked
 class OverscrollSceneLayer extends SceneOverlayLayer {
     private final View mParentView;
 
@@ -116,7 +119,7 @@
         boolean update(
                 long nativeOverscrollSceneLayer,
                 OverscrollSceneLayer caller,
-                ResourceManager resourceManager,
+                @Nullable ResourceManager resourceManager,
                 float accumulatedScroll,
                 float delta);
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphController.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphController.java
index 10f948a7..86771bd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphController.java
@@ -4,13 +4,16 @@
 
 package org.chromium.chrome.browser.gesturenav;
 
+import static org.chromium.build.NullUtil.assumeNonNull;
+
 import android.view.ViewGroup;
 
-import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.lifetime.Destroyable;
 import org.chromium.base.supplier.Supplier;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
@@ -21,6 +24,7 @@
 import org.chromium.components.feature_engagement.FeatureConstants;
 import org.chromium.components.feature_engagement.Tracker;
 import org.chromium.content_public.browser.NavigationHandle;
+import org.chromium.ui.modaldialog.ModalDialogManager;
 
 /**
  * A controller triggering the Iph Dialog when conditions are satisfied.
@@ -30,6 +34,7 @@
  * <p>Second arm: when user tries to navigate back/forward but there is nothing in the corresponding
  * history stack; i.e. fail to navigate back/forward because of empty stack.
  */
+@NullMarked
 public class RtlGestureNavIphController implements Destroyable {
 
     private class RtlGestureNavTabObserver extends ActivityTabTabObserver {
@@ -103,6 +108,7 @@
             Tracker tracker = TrackerFactory.getTrackerForProfile(tab.getProfile());
             if (tracker.shouldTriggerHelpUi(FeatureConstants.IPH_RTL_GESTURE_NAVIGATION)) {
                 show();
+                assumeNonNull(mRtlGestureNavTabObserver);
                 mRtlGestureNavTabObserver.destroy();
                 mRtlGestureNavTabObserver = null;
             }
@@ -111,10 +117,13 @@
 
     private void show() {
         Tab tab = mActivityTabProvider.get();
+        assumeNonNull(tab);
+        ModalDialogManager modalDialogManager = tab.getWindowAndroid().getModalDialogManager();
+        assumeNonNull(modalDialogManager);
         RtlGestureNavIphDialog dialog =
                 new RtlGestureNavIphDialog(
                         tab.getContext(),
-                        tab.getWindowAndroid().getModalDialogManager(),
+                        modalDialogManager,
                         () -> {
                             Tracker tracker =
                                     TrackerFactory.getTrackerForProfile(mProfileSupplier.get());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphDialog.java
index dfd8302..89d475f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/RtlGestureNavIphDialog.java
@@ -11,10 +11,10 @@
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.content.res.AppCompatResources;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.R;
 import org.chromium.components.browser_ui.widget.IphDialogView;
 import org.chromium.ui.modaldialog.DialogDismissalCause;
@@ -24,6 +24,7 @@
 import org.chromium.ui.modelutil.PropertyModel;
 
 /** Dialog of educating users on how to navigate by gesture in RTL mode. */
+@NullMarked
 public class RtlGestureNavIphDialog {
 
     private final IphDialogView mIphDialogView;
@@ -101,13 +102,13 @@
         mIphDialogView.addOnAttachStateChangeListener(
                 new OnAttachStateChangeListener() {
                     @Override
-                    public void onViewAttachedToWindow(@NonNull View v) {
+                    public void onViewAttachedToWindow(View v) {
                         mIphDialogView.startIphAnimation();
                         mIphDialogView.removeOnAttachStateChangeListener(this);
                     }
 
                     @Override
-                    public void onViewDetachedFromWindow(@NonNull View v) {}
+                    public void onViewDetachedFromWindow(View v) {}
                 });
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java
index f324ba2..8b3fbe1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java
@@ -17,6 +17,8 @@
 import android.view.animation.ScaleAnimation;
 import android.view.animation.Transformation;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.gesturenav.NavigationBubble.CloseTarget;
 import org.chromium.ui.animation.EmptyAnimationListener;
@@ -31,6 +33,7 @@
  * org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout} and modified accordingly to
  * support horizontal gesture.
  */
+@NullMarked
 public class SideSlideLayout extends ViewGroup {
     /**
      * Classes that wish to be notified when the swipe gesture correctly triggers navigation should
@@ -82,8 +85,8 @@
     // overscroll is bigger than a certain threshold.
     private float mMaxOverscroll;
 
-    private OnNavigateListener mListener;
-    private OnResetListener mResetListener;
+    private @Nullable OnNavigateListener mListener;
+    private @Nullable OnResetListener mResetListener;
 
     // Flag indicating that the navigation will be activated.
     private boolean mNavigating;
@@ -101,7 +104,7 @@
     private int mFrom;
     private int mOriginalOffset;
 
-    private AnimationSet mHidingAnimation;
+    private @Nullable AnimationSet mHidingAnimation;
     private int mAnimationViewWidth;
 
     private boolean mIsForward;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
index 9baf67c..d29e8ef 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -102,9 +102,9 @@
      */
     public boolean isHomepageEnabled() {
         if (HomepagePolicyManager.isShowHomeButtonManaged()) {
-            return HomepagePolicyManager.getShowHomeButtonValueOfPolicy();
+            return HomepagePolicyManager.getShowHomeButtonValue();
         }
-        return HomepagePolicyManager.isHomepageManagedByPolicy() || getPrefHomepageEnabled();
+        return HomepagePolicyManager.isHomepageLocationManaged() || getPrefHomepageEnabled();
     }
 
     /**
@@ -128,7 +128,7 @@
      * <p><b>isManagedByPolicy > useChromeNtp > useDefaultGurl > useCustomGurl</b>
      *
      * @return A non-empty GURL, if homepage is enabled. An empty GURL otherwise.
-     * @see HomepagePolicyManager#isHomepageManagedByPolicy()
+     * @see HomepagePolicyManager#isHomepageLocationManaged()
      * @see #getPrefHomepageUseChromeNtp()
      * @see #getPrefHomepageUseDefaultUri()
      */
@@ -203,10 +203,11 @@
 
     /**
      * Get homepage URI without checking if the homepage is enabled.
+     *
      * @return Homepage GURL based on policy and shared preference settings.
      */
     private @NonNull GURL getHomepageGurlIgnoringEnabledState() {
-        if (HomepagePolicyManager.isHomepageManagedByPolicy()) {
+        if (HomepagePolicyManager.isHomepageLocationManaged()) {
             return HomepagePolicyManager.getHomepageUrl();
         }
         if (getPrefHomepageUseChromeNtp()) {
@@ -262,9 +263,9 @@
     }
 
     /**
-     * True if the homepage URL is the default value. False means the homepage URL is using
-     * the user customized URL. Note that this method does not take enterprise policy into account.
-     * Use {@link HomepagePolicyManager#isHomepageManagedByPolicy} if policy information is needed.
+     * True if the homepage URL is the default value. False means the homepage URL is using the user
+     * customized URL. Note that this method does not take enterprise policy into account. Use
+     * {@link HomepagePolicyManager#isHomepageLocationManaged} if policy information is needed.
      *
      * @return Whether if the homepage URL is the default value.
      */
@@ -342,7 +343,7 @@
      */
     @VisibleForTesting
     public @HomepageLocationType int getHomepageLocationType() {
-        if (HomepagePolicyManager.isHomepageManagedByPolicy()) {
+        if (HomepagePolicyManager.isHomepageLocationManaged()) {
             return UrlUtilities.isNtpUrl(HomepagePolicyManager.getHomepageUrl())
                     ? HomepageLocationType.POLICY_NTP
                     : HomepageLocationType.POLICY_OTHER;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepagePolicyManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepagePolicyManager.java
index af27795..1a38309 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepagePolicyManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepagePolicyManager.java
@@ -42,11 +42,11 @@
 
     private static PrefService sPrefServiceForTesting;
 
-    private boolean mIsHomepageLocationPolicyEnabled;
-    @NonNull private GURL mHomepage;
+    private boolean mIsHomepageLocationManaged;
+    @NonNull private GURL mHomepageUrl;
 
-    private boolean mIsShowHomeButtonPolicyEnabled;
-    private boolean mShowHomeButtonPolicyValue;
+    private boolean mIsHomeButtonManaged;
+    private boolean mHomeButtonPolicyValue;
 
     private boolean mIsInitializedWithNative;
     private PrefChangeRegistrar mPrefChangeRegistrar;
@@ -67,31 +67,32 @@
     /**
      * If policies such as HomepageLocation are enabled on this device, the home page will be marked
      * as managed.
+     *
      * @return True if the current home page is managed by enterprise policy.
      */
-    public static boolean isHomepageManagedByPolicy() {
-        return getInstance().isHomepageLocationPolicyEnabled();
+    public static boolean isHomepageLocationManaged() {
+        return getInstance().isHomepageLocationPolicyManaged();
     }
 
     /**
      * @return The homepage URL from the homepage preference.
      */
     public static @NonNull GURL getHomepageUrl() {
-        return getInstance().getHomepagePreference();
+        return getInstance().getHomepageLocationPolicyUrl();
     }
 
     /**
      * @return True if ShowHomeButton policy is managed/enabled by enterprise.
      */
     public static boolean isShowHomeButtonManaged() {
-        return getInstance().isShowHomeButtonPolicyEnabled();
+        return getInstance().isShowHomeButtonPolicyManaged();
     }
 
     /**
      * Returns the value of the ShowHomeButton policy, if it is enabled. Else throws an
      * AssertionError.
      */
-    public static boolean getShowHomeButtonValueOfPolicy() {
+    public static boolean getShowHomeButtonValue() {
         return getInstance().getShowHomeButtonPolicyValue();
     }
 
@@ -138,7 +139,7 @@
                 mSharedPreferenceManager.readString(
                         ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL, null);
         if (homepageLocationPolicyGurlSerialized != null) {
-            mHomepage = GURL.deserialize(homepageLocationPolicyGurlSerialized);
+            mHomepageUrl = GURL.deserialize(homepageLocationPolicyGurlSerialized);
         } else {
             String homepageLocationPolicy;
             homepageLocationPolicy =
@@ -147,20 +148,20 @@
             if (homepageLocationPolicy != null) {
                 // This url comes from a native gurl that is written into PrefService as a string,
                 // so we shouldn't need to call fixupUrl.
-                mHomepage = new GURL(homepageLocationPolicy);
+                mHomepageUrl = new GURL(homepageLocationPolicy);
             } else {
-                mHomepage = GURL.emptyGURL();
+                mHomepageUrl = GURL.emptyGURL();
             }
         }
 
-        mIsHomepageLocationPolicyEnabled = !mHomepage.isEmpty();
+        mIsHomepageLocationManaged = !mHomepageUrl.isEmpty();
 
         if (ChromeFeatureList.sShowHomeButtonPolicyAndroid.isEnabled()) {
-            mIsShowHomeButtonPolicyEnabled =
+            mIsHomeButtonManaged =
                     mSharedPreferenceManager.readBoolean(
                             ChromePreferenceKeys.SHOW_HOME_BUTTON_POLICY_MANAGED, false);
-            if (mIsShowHomeButtonPolicyEnabled) {
-                mShowHomeButtonPolicyValue =
+            if (mIsHomeButtonManaged) {
+                mHomeButtonPolicyValue =
                         mSharedPreferenceManager.readBoolean(
                                 ChromePreferenceKeys.SHOW_HOME_BUTTON_POLICY_VALUE, true);
             }
@@ -227,7 +228,7 @@
         }
 
         boolean isHomeButtonManaged = false;
-        boolean homeButtonPolicyVal = mShowHomeButtonPolicyValue;
+        boolean homeButtonPolicyVal = mHomeButtonPolicyValue;
         if (ChromeFeatureList.sShowHomeButtonPolicyAndroid.isEnabled()) {
             isHomeButtonManaged = prefService.isManagedPreference(Pref.SHOW_HOME_BUTTON);
             if (isHomeButtonManaged) {
@@ -236,22 +237,22 @@
         }
 
         // Early return when nothing changes
-        if (isHomepageLocationManaged == mIsHomepageLocationPolicyEnabled
-                && isHomeButtonManaged == mIsShowHomeButtonPolicyEnabled
-                && homeButtonPolicyVal == mShowHomeButtonPolicyValue
-                && homepage.equals(mHomepage)) {
+        if (isHomepageLocationManaged == mIsHomepageLocationManaged
+                && isHomeButtonManaged == mIsHomeButtonManaged
+                && homeButtonPolicyVal == mHomeButtonPolicyValue
+                && homepage.equals(mHomepageUrl)) {
             return;
         }
 
-        mIsHomepageLocationPolicyEnabled = isHomepageLocationManaged;
-        mHomepage = homepage;
+        mIsHomepageLocationManaged = isHomepageLocationManaged;
+        mHomepageUrl = homepage;
 
-        mIsShowHomeButtonPolicyEnabled = isHomeButtonManaged;
-        mShowHomeButtonPolicyValue = homeButtonPolicyVal;
+        mIsHomeButtonManaged = isHomeButtonManaged;
+        mHomeButtonPolicyValue = homeButtonPolicyVal;
 
         // Update shared preference
         mSharedPreferenceManager.writeString(
-                ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL, mHomepage.serialize());
+                ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL, mHomepageUrl.serialize());
         if (ChromeFeatureList.sShowHomeButtonPolicyAndroid.isEnabled()) {
             mSharedPreferenceManager.writeBoolean(
                     ChromePreferenceKeys.SHOW_HOME_BUTTON_POLICY_MANAGED, isHomeButtonManaged);
@@ -288,25 +289,25 @@
     }
 
     @VisibleForTesting
-    public boolean isHomepageLocationPolicyEnabled() {
-        return mIsHomepageLocationPolicyEnabled;
+    public boolean isHomepageLocationPolicyManaged() {
+        return mIsHomepageLocationManaged;
     }
 
     @VisibleForTesting
-    public @NonNull GURL getHomepagePreference() {
-        assert mIsHomepageLocationPolicyEnabled;
-        return mHomepage;
+    public @NonNull GURL getHomepageLocationPolicyUrl() {
+        assert mIsHomepageLocationManaged;
+        return mHomepageUrl;
     }
 
     @VisibleForTesting
-    public boolean isShowHomeButtonPolicyEnabled() {
-        return mIsShowHomeButtonPolicyEnabled;
+    public boolean isShowHomeButtonPolicyManaged() {
+        return mIsHomeButtonManaged;
     }
 
     @VisibleForTesting
     public boolean getShowHomeButtonPolicyValue() {
-        assert mIsShowHomeButtonPolicyEnabled;
-        return mShowHomeButtonPolicyValue;
+        assert mIsHomeButtonManaged;
+        return mHomeButtonPolicyValue;
     }
 
     @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
index 1a4d1dc2..c932b6b9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
@@ -51,7 +51,7 @@
                 new ChromeManagedPreferenceDelegate(getProfile()) {
                     @Override
                     public boolean isPreferenceControlledByPolicy(Preference preference) {
-                        return HomepagePolicyManager.isHomepageManagedByPolicy()
+                        return HomepagePolicyManager.isHomepageLocationManaged()
                                 || HomepagePolicyManager.isShowHomeButtonManaged();
                     }
                 });
@@ -78,8 +78,8 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         // If view created, update the state for pref values or policy state changes.
         if (mRadioButtons != null) {
             mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
@@ -114,7 +114,7 @@
     private void updateHomepageFromRadioGroupPreference(PreferenceValues newValue) {
         // When the preference is changed by code during initialization due to policy, ignore the
         // changes of the preference.
-        if (HomepagePolicyManager.isHomepageManagedByPolicy()) return;
+        if (HomepagePolicyManager.isHomepageLocationManaged()) return;
 
         boolean setToUseNtp = newValue.getCheckedOption() == HomepageOption.ENTRY_CHROME_NTP;
         GURL newHomepage = UrlFormatter.fixupUrl(newValue.getCustomURI());
@@ -130,7 +130,7 @@
      * @return The user customized homepage setting.
      */
     private GURL getHomepageForEditText() {
-        if (HomepagePolicyManager.isHomepageManagedByPolicy()) {
+        if (HomepagePolicyManager.isHomepageLocationManaged()) {
             return HomepagePolicyManager.getHomepageUrl();
         }
 
@@ -148,7 +148,7 @@
     }
 
     private PreferenceValues createPreferenceValuesForRadioGroup() {
-        boolean isPolicyEnabled = HomepagePolicyManager.isHomepageManagedByPolicy();
+        boolean isPolicyEnabled = HomepagePolicyManager.isHomepageLocationManaged();
 
         // Check if the NTP button should be checked.
         // Note it is not always checked when homepage is NTP. When user customized homepage is NTP
@@ -184,4 +184,9 @@
                 isNtpOptionVisible,
                 isCustomizedOptionVisible);
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerApi31.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerApi31.java
index 2fcd59f..73ed351 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerApi31.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerApi31.java
@@ -752,6 +752,9 @@
 
     @VisibleForTesting
     static Activity getActivityById(int id) {
+        if (sActivitySupplierForTesting != null) {
+            return sActivitySupplierForTesting.get();
+        }
         TabWindowManager windowManager = TabWindowManagerSingleton.getInstance();
         for (Activity activity : getAllRunningActivities()) {
             if (id == windowManager.getIdForWindow(activity)) return activity;
@@ -983,7 +986,9 @@
         // alive.
         ((ChromeTabbedActivity) activity).onNewIntent(intent);
         var activityManager = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
-        activityManager.moveTaskToFront(taskId, 0);
+        if (activityManager != null) {
+            activityManager.moveTaskToFront(taskId, 0);
+        }
         return true;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerImpl.java
index 9f697d252..ffcba4ca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceManagerImpl.java
@@ -24,6 +24,7 @@
 import org.chromium.base.ResettersForTesting;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.Supplier;
 import org.chromium.build.BuildConfig;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
@@ -83,6 +84,7 @@
     private final MenuOrKeyboardActionController mMenuOrKeyboardActionController;
 
     protected TabModelSelectorTabModelObserver mTabModelObserver;
+    protected static Supplier<ChromeTabbedActivity> sActivitySupplierForTesting;
 
     private int mActivityTaskId;
     private boolean mNativeInitialized;
@@ -513,4 +515,10 @@
         TabGroupSyncService tabGroupSyncService = TabGroupSyncServiceFactory.getForProfile(profile);
         TabGroupSyncUtils.unmapLocalIdsNotInTabGroupModelFilter(tabGroupSyncService, filter);
     }
+
+    public static void setAdjacentWindowActivitySupplierForTesting(
+            Supplier<ChromeTabbedActivity> supplier) {
+        sActivitySupplierForTesting = supplier;
+        ResettersForTesting.register(() -> sActivitySupplierForTesting = null);
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
index feaa381..b7e05575 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
@@ -37,6 +37,7 @@
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.shared_preferences.SharedPreferencesManager;
+import org.chromium.base.supplier.Supplier;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity2;
 import org.chromium.chrome.browser.IntentHandler;
@@ -81,12 +82,12 @@
             ".ExistingInstance";
 
     private static MultiWindowUtils sInstance = new MultiWindowUtils();
+    protected static Supplier<Activity> sActivitySupplierForTesting;
 
     private static Integer sMaxInstancesForTesting;
     private static Integer sInstanceCountForTesting;
-
-    private final boolean mMultiInstanceApi31Enabled;
     private static Boolean sMultiInstanceApi31EnabledForTesting;
+    private final boolean mMultiInstanceApi31Enabled;
     private static Boolean sIsMultiInstanceApi31Enabled;
 
     // Used to keep track of whether ChromeTabbedActivity2 is running. A tri-state Boolean is
@@ -453,9 +454,12 @@
     /**
      * @param current Current activity trying to find its adjacent one.
      * @return ChromeTabbedActivity instance of the task running adjacently to the current one.
-     *         {@code null} if there is no such task.
+     *     {@code null} if there is no such task.
      */
     public static Activity getAdjacentWindowActivity(Activity current) {
+        if (sActivitySupplierForTesting != null) {
+            return sActivitySupplierForTesting.get();
+        }
         List<Activity> runningActivities = ApplicationStatus.getRunningActivities();
         int currentTaskId = current.getTaskId();
         for (Activity activity : runningActivities) {
@@ -481,6 +485,7 @@
 
     /**
      * Determines if multiple instances of Chrome are running.
+     *
      * @param context The current Context, used to retrieve the ActivityManager system service.
      * @return True if multiple instances of Chrome are running.
      */
@@ -980,4 +985,9 @@
         sMultiInstanceApi31EnabledForTesting = value;
         ResettersForTesting.register(() -> sMultiInstanceApi31EnabledForTesting = null);
     }
+
+    public static void setActivitySupplierForTesting(Supplier<Activity> supplier) {
+        sActivitySupplierForTesting = supplier;
+        ResettersForTesting.register(() -> sActivitySupplierForTesting = null);
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
index 1e9251d..a21fee3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
@@ -8,8 +8,6 @@
 import android.content.ContentValues;
 import android.content.Intent;
 import android.content.UriMatcher;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.net.Uri;
@@ -24,7 +22,7 @@
 import org.json.JSONObject;
 
 import org.chromium.base.ContextUtils;
-import org.chromium.base.PackageManagerUtils;
+import org.chromium.base.PackageUtils;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.TimeUtils;
 import org.chromium.base.TraceEvent;
@@ -36,7 +34,6 @@
 import org.chromium.chrome.browser.base.SplitCompatContentProvider;
 import org.chromium.chrome.browser.content_extraction.InnerTextBridge;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.gsa.GSAUtils;
 import org.chromium.chrome.browser.provider.PageContentProviderMetrics.PageContentProviderEvent;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.content_public.browser.RenderFrameHost;
@@ -60,8 +57,6 @@
 
     private static final int INVALIDATE_URI_DELAY_MS = 60_000;
     private static final int PAGE_EXTRACTION_TIMEOUT_MS = 30_000;
-    private static final String[] AUTHORIZED_PACKAGE_NAMES =
-            new String[] {GSAUtils.GSA_PACKAGE_NAME};
 
     static final class PageContentInvocationState {
 
@@ -357,22 +352,18 @@
     }
 
     private static void grantAccessToUri(Uri uri) {
-
-        for (String packageName : AUTHORIZED_PACKAGE_NAMES) {
-            ContextUtils.getApplicationContext()
-                    .grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        var assistantPackageName =
+                PackageUtils.getDefaultAssistantPackageName(ContextUtils.getApplicationContext());
+        RecordHistogram.recordBooleanHistogram(
+                "Android.AssistContent.WebPageContentProvider.GetAssistantPackageResult",
+                assistantPackageName != null);
+        if (assistantPackageName == null) {
+            return;
         }
 
-        var intent = new Intent(Intent.ACTION_VOICE_COMMAND);
-        var intentActivities =
-                PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_ALL);
-        for (ResolveInfo packageInfo : intentActivities) {
-            ContextUtils.getApplicationContext()
-                    .grantUriPermission(
-                            packageInfo.activityInfo.packageName,
-                            uri,
-                            Intent.FLAG_GRANT_READ_URI_PERMISSION);
-        }
+        ContextUtils.getApplicationContext()
+                .grantUriPermission(
+                        assistantPackageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
     }
 
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
index 92fd701..c1eeabc1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
@@ -197,6 +197,7 @@
             mShouldShowSnackbar = false;
             PostTask.postTask(TaskTraits.UI_DEFAULT, this::showSignoutSnackbar);
         }
+        updatePreferences();
     }
 
     @Override
@@ -209,12 +210,6 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        updatePreferences();
-    }
-
-    @Override
     public void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
         // Ensure the preference disabled state is reflected when device is folded or unfolded.
@@ -729,4 +724,9 @@
         return !ChromeFeatureList.isEnabled(
                 AutofillFeatures.AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID);
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
index 37072ae..afa6baaf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java
@@ -7,8 +7,10 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.util.AttributeSet;
+import android.widget.HorizontalScrollView;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.Px;
 
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.suggestions.SiteSuggestion;
@@ -19,11 +21,12 @@
 public class MostVisitedTilesLayout extends TilesLinearLayout {
 
     private final boolean mIsTablet;
-    private final int mTileViewWidth;
+    private final @Px int mTileViewWidthPx;
     private Integer mInitialTileCount;
     private Integer mInitialChildCount;
     private final int mIntervalPaddingsTablet;
     private final int mEdgePaddingsTablet;
+    private @Nullable Integer mTileToMoveInViewIdx;
 
     /** Constructor for inflating from XML. */
     public MostVisitedTilesLayout(Context context, AttributeSet attrs) {
@@ -31,7 +34,7 @@
         mIsTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(context);
 
         Resources resources = getResources();
-        mTileViewWidth = resources.getDimensionPixelOffset(R.dimen.tile_view_width);
+        mTileViewWidthPx = resources.getDimensionPixelOffset(R.dimen.tile_view_width);
         mIntervalPaddingsTablet =
                 resources.getDimensionPixelSize(R.dimen.tile_view_padding_interval_tablet);
         mEdgePaddingsTablet =
@@ -70,7 +73,7 @@
     void updateEdgeMarginTablet(int totalWidth) {
         boolean isFullFilled =
                 totalWidth
-                                - mTileViewWidth * mInitialTileCount
+                                - mTileViewWidthPx * mInitialTileCount
                                 - getNonTileViewsTotalWidthPx()
                                 - mIntervalPaddingsTablet * (mInitialChildCount - 1)
                                 - 2 * mEdgePaddingsTablet
@@ -87,13 +90,22 @@
         int childCount = getChildCount();
         int edgeMargin =
                 (totalWidth
-                                - mTileViewWidth * tileCount
+                                - mTileViewWidthPx * tileCount
                                 - getNonTileViewsTotalWidthPx()
                                 - mIntervalPaddingsTablet * (childCount - 1))
                         / 2;
         setEdgeMargins(edgeMargin);
     }
 
+    /**
+     * Tags the {@link TileView} at {@param tileIdx} so that on next Layout, minimal scroll is
+     * performed to ensure it's in-view.
+     */
+    void ensureTileIsInViewOnNextLayout(int tileIdx) {
+        // If a value exists, simply overwrite it since the old value is likely new irrelevant.
+        mTileToMoveInViewIdx = tileIdx;
+    }
+
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         if (mInitialTileCount == null) {
@@ -107,4 +119,40 @@
         }
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     }
+
+    @Override
+    public void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        super.onLayout(changed, left, top, right, bottom);
+        if (mTileToMoveInViewIdx != null) {
+            Integer scrollXPx = getScrollXToMakeTileVisible(mTileToMoveInViewIdx);
+            if (scrollXPx != null) {
+                HorizontalScrollView parent = (HorizontalScrollView) getParent();
+                parent.smoothScrollTo(scrollXPx.intValue(), 0);
+            }
+            mTileToMoveInViewIdx = null;
+        }
+    }
+
+    private @Nullable Integer getScrollXToMakeTileVisible(int tileIdx) {
+        if (tileIdx >= getTileCount()) {
+            return null;
+        }
+        HorizontalScrollView parent = (HorizontalScrollView) getParent();
+        @Px float tileXPx = getTileAt(tileIdx).getX();
+        @Px int scrollXPx = parent.getScrollX();
+        // If scroll position is too high so that the tile is out-of-view / truncated, scroll right
+        // so that the tile appears on the left edge (RTL doesn't matter).
+        @Px int scrollXHiPx = (int) tileXPx;
+        if (scrollXPx > scrollXHiPx) {
+            return scrollXHiPx;
+        }
+        // If scroll position is too low so that the tile is out-of-view / truncated, scroll left
+        // so that the tile appears on the right edge (RTL doesn't matter).
+        @Px int scrollXLoPx = (int) (tileXPx + mTileViewWidthPx - parent.getWidth());
+        if (scrollXPx < scrollXLoPx) {
+            return scrollXLoPx;
+        }
+        // Entire tile is in-view; no scroll is needed.
+        return null;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
index f36fd70..303f0ee 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
@@ -164,6 +164,11 @@
         if (mSnapshotTileGridChangedRunnable != null) mSnapshotTileGridChangedRunnable.run();
     }
 
+    @Override
+    public void onCustomTileCreation(Tile tile) {
+        mMvTilesLayout.ensureTileIsInViewOnNextLayout(tile.getIndex());
+    }
+
     public void onConfigurationChanged() {
         maybeSetPortraitIntervalPaddings();
         updateTilesView();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileGroup.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileGroup.java
index 652f518..56930096 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileGroup.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileGroup.java
@@ -29,6 +29,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.LinkedList;
 import java.util.List;
 
 /** The model and controller for a group of site suggestion tiles. */
@@ -69,6 +70,9 @@
 
         /** Flag to indicate that Custom Tiles are being changed. */
         public boolean customTilesIndicator;
+
+        /** List of tasks to run after tiles are reloaded and re-rendered. */
+        public final LinkedList<Runnable> taskToRunAfterTileReload = new LinkedList<Runnable>();
     }
 
     /**
@@ -139,15 +143,24 @@
 
         /**
          * Called when a tile icon has changed.
+         *
          * @param tile The tile for which the icon has changed.
          */
         void onTileIconChanged(Tile tile);
 
         /**
          * Called when the visibility of a tile's offline badge has changed.
+         *
          * @param tile The tile for which the visibility of the offline badge has changed.
          */
         void onTileOfflineBadgeVisibilityChanged(Tile tile);
+
+        /**
+         * Called when a Custom Tile is created.
+         *
+         * @param tile The Custom Tile that was created.
+         */
+        void onCustomTileCreation(Tile tile);
     }
 
     /**
@@ -449,6 +462,10 @@
 
         if (!mHasReceivedData || !mUiDelegate.isVisible() || expectedChangeCompleted) {
             loadTiles(forceUpdate);
+            for (Runnable task : mPendingChanges.taskToRunAfterTileReload) {
+                task.run();
+            }
+            mPendingChanges.taskToRunAfterTileReload.clear();
         }
     }
 
@@ -595,7 +612,19 @@
         return null;
     }
 
-    /** @return All tiles matching the provided URL, or an empty list if none is found. */
+    /**
+     * @param url The URL to search for within PERSONALIZED tiles.
+     * @return A tile matching the provided URL and section, or {@code null} if none is found.
+     */
+    private @Nullable Tile findPersonalTileByUrl(GURL url) {
+        List<Tile> personalTiles = mTileSections.get(TileSectionType.PERSONALIZED);
+        assert personalTiles != null;
+        return findTileByUrl(url, personalTiles);
+    }
+
+    /**
+     * @return All tiles matching the provided URL, or an empty list if none is found.
+     */
     private List<Tile> findTilesForUrl(GURL url) {
         List<Tile> tiles = new ArrayList<>();
         for (int i = 0; i < mTileSections.size(); ++i) {
@@ -729,6 +758,13 @@
             return mCustomTileCountIsUnderLimit;
         }
 
+        private void handleCustomTileAdd(GURL url) {
+            @Nullable Tile tile = findPersonalTileByUrl(url);
+            if (tile != null) {
+                mObserver.onCustomTileCreation(tile);
+            }
+        }
+
         private boolean addCustomLinkAndUpdateOnSuccess(
                 String name, GURL url, @Nullable Integer pos) {
             if (!TileUtils.isValidCustomTileName(name) || !TileUtils.isValidCustomTileUrl(url)) {
@@ -737,8 +773,11 @@
 
             // On success, onSiteSuggestionsAvailable() triggers.
             mPendingChanges.customTilesIndicator = true;
+            Runnable onSuccessCallback = () -> handleCustomTileAdd(url);
+            mPendingChanges.taskToRunAfterTileReload.add(onSuccessCallback);
             boolean success = mTileGroupDelegate.addCustomLink(name, url, pos);
             if (!success) {
+                mPendingChanges.taskToRunAfterTileReload.removeLastOccurrence(onSuccessCallback);
                 mPendingChanges.customTilesIndicator = false;
             }
             return success;
@@ -753,8 +792,11 @@
 
             // On success, onSiteSuggestionsAvailable() triggers.
             mPendingChanges.customTilesIndicator = true;
+            Runnable onSuccessCallback = () -> handleCustomTileAdd(url);
+            mPendingChanges.taskToRunAfterTileReload.add(onSuccessCallback);
             boolean success = mTileGroupDelegate.assignCustomLink(keyUrl, name, url);
             if (!success) {
+                mPendingChanges.taskToRunAfterTileReload.removeLastOccurrence(onSuccessCallback);
                 mPendingChanges.customTilesIndicator = false;
             }
             return success;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java
index 9f43c30..3fde95a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java
@@ -570,4 +570,9 @@
             df.dismiss();
         }
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
index b9442c6..b1ee9724 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.tab;
 
-import static org.chromium.chrome.browser.app.tabmodel.ArchivedTabModelOrchestrator.LOCAL_SYNC_DB_SYNCHRONIZATION_DELAY;
 import static org.chromium.chrome.browser.tab.Tab.INVALID_TIMESTAMP;
 import static org.chromium.chrome.browser.tabmodel.TabList.INVALID_TAB_INDEX;
 
@@ -596,17 +595,13 @@
         long lastActiveTabTimestamp = 0L;
         for (int i = 0; i < model.getCount(); i++) {
             Tab tab = model.getTabAt(i);
-            // Skip the active tab or any tab navigated to during the sync db synchronization delay
-            // when making last active determinations for user inactivity.
-            // TODO(crbug.com/410035913): Update this logic when the delay dependency is removed.
-            long preSyncDelayBaseline =
-                    mClock.currentTimeMillis() - LOCAL_SYNC_DB_SYNCHRONIZATION_DELAY;
-            long tabLastNavigationTimestamp = tab.getLastNavigationCommittedTimestampMillis();
-            if (TabModelUtils.getCurrentTabId(model) == tab.getId()
-                    || tabLastNavigationTimestamp > preSyncDelayBaseline) {
+            if (TabModelUtils.getCurrentTabId(model) == tab.getId()) {
                 continue;
             }
-            lastActiveTabTimestamp = Math.max(lastActiveTabTimestamp, tabLastNavigationTimestamp);
+            lastActiveTabTimestamp =
+                    Math.max(
+                            lastActiveTabTimestamp,
+                            tab.getLastNavigationCommittedTimestampMillis());
         }
 
         // If the last active tab's navigation timestamp is within the target hours (they exceed
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
index ffdebc9d..8fc7e71 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
@@ -286,6 +286,9 @@
         return false;
     }
 
+    @Override
+    protected void openTabProgrammatically(GURL url, int index) {}
+
     // TabGroupModelFilter overrides.
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
index f59c318..d46e4e432 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
@@ -1093,6 +1093,19 @@
         getTabCreator(false).launchNtp();
     }
 
+    @Override
+    public void openTabProgrammatically(GURL url, int index) {
+        LoadUrlParams loadParams = new LoadUrlParams(url);
+
+        // TODO(crbug.com/415351293): Change tab launch type to allow the specified insertion index.
+        getTabCreator()
+                .createNewTab(
+                        loadParams,
+                        TabLaunchType.FROM_LONGPRESS_BACKGROUND,
+                        /* parent= */ null,
+                        index);
+    }
+
     @VisibleForTesting
     List<Tab> getTabsNavigatedInTimeWindow(long beginTimeMs, long endTimeMs) {
         List<Tab> tabList = new ArrayList<>();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
index 6e447f2..dc74b67 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
@@ -215,6 +215,15 @@
     @CalledByNative
     protected abstract boolean isSessionRestoreInProgress();
 
+    /**
+     * Opens a tab programmatically
+     *
+     * @param url URL to show.
+     * @param index Index for the tab, it will ignore if it is invalid.
+     */
+    @CalledByNative
+    protected abstract void openTabProgrammatically(GURL url, int index);
+
     @NativeMethods
     @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
     public interface Natives {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
index 7c3eec8..4d69b0e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -1006,7 +1006,7 @@
                                 }
                             },
                             this::onHomeButtonMenuClick,
-                            HomepagePolicyManager::isHomepageManagedByPolicy);
+                            HomepagePolicyManager::isHomepageLocationManaged);
         }
 
         ChromeImageButton backButton = mControlContainer.findViewById(R.id.back_button);
diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
index 2673c590..cf313ac 100644
--- a/chrome/android/javatests/BUILD.gn
+++ b/chrome/android/javatests/BUILD.gn
@@ -269,6 +269,7 @@
     "//components/browser_ui/sms/android:java",
     "//components/browser_ui/styles/android:java",
     "//components/browser_ui/util/android:java",
+    "//components/browser_ui/util/android:test_support_java",
     "//components/browser_ui/widget/android:java",
     "//components/browser_ui/widget/android:test_support_java",
     "//components/browsing_data/content/android:java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTest.java
index 59c3b52..31bbd9f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTest.java
@@ -91,7 +91,7 @@
     private static final String TEST_PAGE = "/chrome/test/data/dom_distiller/simple_article.html";
     // Suffix added to page titles, string is defined as IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX in
     // dom_distiller_strings.grdp.
-    private static final String TITLE_SUFFIX = " - Simplified View";
+    private static final String TITLE_SUFFIX = " - Reading Mode";
     private static final String PAGE_TITLE = "Test Page Title" + TITLE_SUFFIX;
     private static final String CONTENT = "Lorem ipsum";
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
index 26a37c3..2bf219e 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/homepage/HomepagePolicyIntegrationTest.java
@@ -97,7 +97,7 @@
                 () ->
                         Assert.assertTrue(
                                 "HomepageLocation Policy should be enforced",
-                                HomepagePolicyManager.isHomepageManagedByPolicy()));
+                                HomepagePolicyManager.isHomepageLocationManaged()));
 
         // The first time when the page starts, the homepage is fetched from shared preference
         // So the homepage policy is not enforced yet at this point.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelImplTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelImplTest.java
index 25f3c40..02ebe25 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelImplTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelImplTest.java
@@ -36,6 +36,7 @@
 import org.chromium.chrome.test.util.ChromeTabUtils;
 import org.chromium.net.test.EmbeddedTestServer;
 import org.chromium.net.test.EmbeddedTestServerRule;
+import org.chromium.url.GURL;
 
 /** Tests for {@link TabModelImpl}. */
 @RunWith(ChromeJUnit4ClassRunner.class)
@@ -201,4 +202,27 @@
                     assertTrue(tab1.isDestroyed());
                 });
     }
+
+    @Test
+    @SmallTest
+    public void testOpenTabProgrammatically() {
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    TabModelImpl tabModel =
+                            (TabModelImpl)
+                                    sActivityTestRule
+                                            .getActivity()
+                                            .getTabModelSelector()
+                                            .getModel(false);
+                    assertEquals(1, tabModel.getCount());
+
+                    GURL url = new GURL("https://www.chromium.org");
+                    tabModel.openTabProgrammatically(url, 0);
+                    assertEquals(2, tabModel.getCount());
+
+                    Tab tab1 = tabModel.getTabAt(1);
+                    assertNotNull(tab1);
+                    assertEquals(url, tab1.getUrl());
+                });
+    }
 }
diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn
index 7e31d3e..c147c528 100644
--- a/chrome/android/junit/BUILD.gn
+++ b/chrome/android/junit/BUILD.gn
@@ -251,6 +251,7 @@
       "//components/browser_ui/styles/android:java",
       "//components/browser_ui/test/android:test_support_java",
       "//components/browser_ui/util/android:java",
+      "//components/browser_ui/util/android:test_support_java",
       "//components/browser_ui/widget/android:java",
       "//components/browser_ui/widget/android:test_support_java",
       "//components/browsing_data/core:java",
@@ -1118,6 +1119,7 @@
       "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ThumbnailFetcherUnitTest.java",
       "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TransitiveSharedGroupObserverUnitTest.java",
       "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoCoordinatorTest.java",
+      "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/archived_tabs_auto_delete_promo/ArchivedTabsAutoDeletePromoManagerTest.java",
       "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsCardViewBinderUnitTest.java",
       "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinatorUnitTest.java",
       "//chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsMessageServiceUnitTest.java",
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
index 02d02dd..3525c92 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
@@ -2306,6 +2306,8 @@
         StripLayoutTab[] tabs = getMockedStripLayoutTabs(TAB_WIDTH_1);
         mStripLayoutHelper.setStripLayoutTabsForTesting(tabs);
         // NTB is after group indicator and tabs.
+        mStripLayoutHelper.onSizeChanged(
+                SCREEN_WIDTH, SCREEN_HEIGHT, false, TIMESTAMP, PADDING_LEFT, PADDING_RIGHT, 0f);
         mStripLayoutHelper.getNewTabButton().setDrawX(TAB_WIDTH_1 + tabs.length * TAB_WIDTH_1);
         setupForGroupContextMenu();
 
@@ -2323,8 +2325,12 @@
         StripLayoutView view = mStripLayoutHelper.getViewAtPositionX(10f, true);
         assertTrue(view instanceof StripLayoutGroupTitle);
         StripLayoutGroupTitle titleView = (StripLayoutGroupTitle) view;
-        Rect expectedRect = new Rect();
-        titleView.getPaddedBoundsPx(expectedRect);
+        Rect expectedRect =
+                new Rect(
+                        Math.round(titleView.getPaddedX()),
+                        Math.round(titleView.getDrawY()),
+                        Math.round(titleView.getPaddedX() + titleView.getPaddedWidth()),
+                        Math.round(titleView.getDrawY() + titleView.getHeight()));
         Rect actualRect = rectProviderArgumentCaptor.getValue().getRect();
         assertEquals("Anchor view for menu is positioned incorrectly", expectedRect, actualRect);
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabContextMenuCoordinatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabContextMenuCoordinatorUnitTest.java
index 44536352..220a428 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabContextMenuCoordinatorUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabContextMenuCoordinatorUnitTest.java
@@ -51,9 +51,8 @@
 import org.chromium.chrome.browser.tabmodel.TabUngrouper;
 import org.chromium.chrome.browser.tasks.tab_management.TabGroupListBottomSheetCoordinator;
 import org.chromium.chrome.browser.tasks.tab_management.TabOverflowMenuCoordinator.OnItemClickedCallback;
-import org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper;
 import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
 import org.chromium.components.collaboration.CollaborationService;
@@ -462,13 +461,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testCloseTab(listViewTouchTracker, /* shouldAllowUndo= */ true);
     }
@@ -479,13 +475,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testCloseTab(listViewTouchTracker, /* shouldAllowUndo= */ false);
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinatorUnitTest.java
index b64adf3..c6f2b3fa 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinatorUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinatorUnitTest.java
@@ -58,9 +58,8 @@
 import org.chromium.chrome.browser.tabmodel.TabUngrouper;
 import org.chromium.chrome.browser.tasks.tab_management.ColorPickerCoordinator;
 import org.chromium.chrome.browser.tasks.tab_management.TabOverflowMenuCoordinator.OnItemClickedCallback;
-import org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper;
 import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
 import org.chromium.components.collaboration.CollaborationService;
@@ -358,13 +357,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testItemClicked_CloseOrDeleteGroup(
                 R.id.close_tab_group,
@@ -379,13 +375,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testItemClicked_CloseOrDeleteGroup(
                 R.id.close_tab_group,
@@ -410,13 +403,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createTouchMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testItemClicked_CloseOrDeleteGroup(
                 R.id.delete_tab_group,
@@ -431,13 +421,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker listViewTouchTracker = new FakeListViewTouchTracker();
         listViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        TabUiTestHelper.createMouseMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0,
-                                /* y= */ 0)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         testItemClicked_CloseOrDeleteGroup(
                 R.id.delete_tab_group,
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationControllerTest.java
index 9c7e90c..4dec234 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationControllerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationControllerTest.java
@@ -4,6 +4,7 @@
 
 package org.chromium.chrome.browser.customtabs.content;
 
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -11,6 +12,7 @@
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -42,6 +44,7 @@
 import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.base.test.util.PackageManagerWrapper;
+import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.back_press.BackPressManager;
 import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHandler;
 import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHandler.MinimizeAppAndCloseTabType;
@@ -50,6 +53,8 @@
 import org.chromium.chrome.browser.customtabs.shadows.ShadowExternalNavigationDelegateImpl;
 import org.chromium.chrome.browser.flags.ActivityType;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.multiwindow.MultiInstanceManagerImpl;
+import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.url.GURL;
 
@@ -79,6 +84,7 @@
     @Mock OnBackInvokedDispatcher mDispatcher;
     @Mock private PackageManager mPackageManager;
     @Mock private ResolveInfo mResolveInfo;
+    @Mock private ChromeTabbedActivity mAdjacentActivity;
 
     class TestContext extends ContextWrapper {
         public TestContext(Context base) {
@@ -135,7 +141,7 @@
         mNavigationController
                 .getTabObserverForTesting()
                 .onInitialTabCreated(env.prepareTab(), TabCreationMode.DEFAULT);
-        Assert.assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
+        assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
 
         mNavigationController.navigateOnBack(FinishReason.USER_NAVIGATION);
         histogramWatcher.assertExpected();
@@ -168,7 +174,7 @@
         mNavigationController
                 .getTabObserverForTesting()
                 .onInitialTabCreated(env.prepareTab(), TabCreationMode.DEFAULT);
-        Assert.assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
+        assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
 
         mNavigationController.navigateOnBack(FinishReason.USER_NAVIGATION);
         histogramWatcher.assertExpected();
@@ -194,7 +200,7 @@
                                 })
                 .when(mTabController)
                 .closeTab();
-        Assert.assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
+        assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
 
         mNavigationController.navigateOnBack(FinishReason.USER_NAVIGATION);
         histogramWatcher.assertExpected();
@@ -240,6 +246,19 @@
     }
 
     @Test
+    public void finishes_whenDoneReparentingToAdjacentActivity() {
+        ShadowExternalNavigationDelegateImpl.setWillChromeHandleIntent(true);
+        MultiInstanceManagerImpl.setAdjacentWindowActivitySupplierForTesting(
+                () -> mAdjacentActivity);
+        MultiWindowUtils.setActivitySupplierForTesting(() -> mAdjacentActivity);
+
+        mNavigationController.openCurrentUrlInBrowser();
+
+        verify(mAdjacentActivity, times(1)).onNewIntent(any());
+        verify(mFinishHandler).onFinish(FinishReason.REPARENTING, false);
+    }
+
+    @Test
     public void startsNewActivity_WhenOpenInBrowserCalled_AndChromeCanNotHandleIntent() {
         ShadowExternalNavigationDelegateImpl.setWillChromeHandleIntent(false);
         mNavigationController.openCurrentUrlInBrowser();
@@ -265,7 +284,7 @@
         when(mTabController.onlyOneTabRemaining()).thenReturn(false);
         when(mTabController.dispatchBeforeUnloadIfNeeded()).thenReturn(false);
         mNavigationController.getTabObserverForTesting().onTabSwapped(env.prepareTab());
-        Assert.assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
+        assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
 
         mNavigationController.navigateOnBack(FinishReason.HANDLED_BY_OS);
         when(mTabController.onlyOneTabRemaining()).thenReturn(true);
@@ -283,7 +302,7 @@
         mNavigationController
                 .getTabObserverForTesting()
                 .onInitialTabCreated(env.prepareTab(), TabCreationMode.DEFAULT);
-        Assert.assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
+        assertTrue(mNavigationController.getHandleBackPressChangedSupplier().get());
     }
 
     @Test
@@ -294,7 +313,7 @@
         // Sets the Android version to Baklava.
         CustomTabActivityNavigationController.enablePredictiveBackGestureForTesting();
 
-        Assert.assertTrue(CustomTabActivityNavigationController.supportsPredictiveBackGesture());
+        assertTrue(CustomTabActivityNavigationController.supportsPredictiveBackGesture());
     }
 
     @Test
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceMediatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceMediatorTest.java
index 80c31f7b..9e3a7e2 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceMediatorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/feed/FeedSurfaceMediatorTest.java
@@ -580,6 +580,26 @@
     }
 
     @Test
+    public void testshowOrHideFeed_afterDestroy() {
+        PropertyModel model = SectionHeaderListProperties.create(TOOLBAR_HEIGHT);
+        mFeedSurfaceMediator = createMediator(FeedSurfaceCoordinator.StreamTabId.FOR_YOU, model);
+        when(mPrefService.getBoolean(Pref.ENABLE_SNIPPETS)).thenReturn(true);
+        when(mPrefService.getBoolean(Pref.ENABLE_SNIPPETS_BY_DSE)).thenReturn(true);
+
+        mFeedSurfaceMediator.updateContent();
+        when(mFeedServiceBridgeJniMock.isSignedIn()).thenReturn(true);
+        when(mUrlService.isDefaultSearchEngineGoogle()).thenReturn(false);
+        when(mPrefService.getBoolean(Pref.ARTICLES_LIST_VISIBLE)).thenReturn(true);
+        when(mPrefService.getBoolean(Pref.ENABLE_SNIPPETS_BY_DSE)).thenReturn(true);
+
+        mFeedSurfaceMediator.showOrHideFeed();
+
+        // Calling showOrHideFeed after destroy should not cause any crash.
+        mFeedSurfaceMediator.destroy();
+        mFeedSurfaceMediator.showOrHideFeed();
+    }
+
+    @Test
     public void testOnHeaderSelected_selectedWithOptions() {
         PropertyModel model = SectionHeaderListProperties.create(TOOLBAR_HEIGHT);
         PropertyModel forYou = SectionHeaderProperties.createSectionHeader("For you");
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepageManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepageManagerTest.java
index f28d79b6..9d15907 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepageManagerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepageManagerTest.java
@@ -41,7 +41,7 @@
         static GURL sHomepageUrl;
 
         @Implementation
-        public static boolean isHomepageManagedByPolicy() {
+        public static boolean isHomepageLocationManaged() {
             return true;
         }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepagePolicyManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepagePolicyManagerTest.java
index 3d4a21f..98de65a 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepagePolicyManagerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/HomepagePolicyManagerTest.java
@@ -72,10 +72,10 @@
         // Verify setup
         Assert.assertFalse(
                 "#isHomepageManagedByPolicy == true without homepage pref setup",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
         Assert.assertFalse(
                 "#isShowHomeButtonPolicyEnabled == true without pref setup",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
     }
 
     private void setupNewHomepagePolicyManagerForTests(
@@ -113,10 +113,10 @@
                 "HomepagePolicyManager should be not initialized yet", manager.isInitialized());
         Assert.assertFalse(
                 "#isHomepageManagedByPolicy not consistent with test setting",
-                manager.isHomepageLocationPolicyEnabled());
+                manager.isHomepageLocationPolicyManaged());
         Assert.assertFalse(
                 "#isShowHomeButtonPolicyEnabled not consistent with test setting",
-                manager.isShowHomeButtonPolicyEnabled());
+                manager.isShowHomeButtonPolicyManaged());
     }
 
     @Test
@@ -131,11 +131,11 @@
                 "HomepagePolicyManager should be not initialized yet", manager.isInitialized());
         Assert.assertTrue(
                 "#isHomepageManagedByPolicy not consistent with test setting",
-                manager.isHomepageLocationPolicyEnabled());
+                manager.isHomepageLocationPolicyManaged());
         Assert.assertEquals(
                 "#getHomepageUrl not consistent with test setting",
                 CHROME_NTP,
-                manager.getHomepagePreference().getSpec());
+                manager.getHomepageLocationPolicyUrl().getSpec());
     }
 
     @Test
@@ -163,7 +163,7 @@
 
         Assert.assertTrue(
                 "#isHomepageManagedByPolicy not consistent with test setting",
-                HomepagePolicyManager.isHomepageManagedByPolicy());
+                HomepagePolicyManager.isHomepageLocationManaged());
         Assert.assertEquals(
                 "#getHomepageUrl not consistent with test setting",
                 TEST_URL,
@@ -183,7 +183,7 @@
                 HomepagePolicyManager.isShowHomeButtonManaged());
         Assert.assertFalse(
                 "#ShowHomeButton policy has wrong value in test",
-                HomepagePolicyManager.getShowHomeButtonValueOfPolicy());
+                HomepagePolicyManager.getShowHomeButtonValue());
     }
 
     @Test
@@ -198,7 +198,7 @@
 
         Assert.assertTrue(
                 "#isHomepageManagedByPolicy not consistent with test setting",
-                HomepagePolicyManager.isHomepageManagedByPolicy());
+                HomepagePolicyManager.isHomepageLocationManaged());
         Assert.assertEquals(
                 "#getHomepageUrl not consistent with test setting",
                 CHROME_NTP,
@@ -229,7 +229,7 @@
     public void testPrefRefreshToEnablePolicy() {
         Assert.assertFalse(
                 "Policy should be disabled after set up",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
 
         // Add listener
         mHomepagePolicyManager.addListener(mListener);
@@ -245,17 +245,17 @@
         // The homepage retrieved from homepage manager should be in sync with pref setting
         Assert.assertTrue(
                 "Policy should be enabled after refresh",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
         Assert.assertEquals(
                 "#getHomepageUrl not consistent with test setting",
                 newUrl,
-                mHomepagePolicyManager.getHomepagePreference().getSpec());
+                mHomepagePolicyManager.getHomepageLocationPolicyUrl().getSpec());
         Mockito.verify(mListener, Mockito.times(1)).onHomepagePolicyUpdate();
 
         // Change ShowHomeButton policy same as above.
         Assert.assertFalse(
                 "Policy should be disabled after set up",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
 
         Mockito.when(mMockPrefService.isManagedPreference(Pref.SHOW_HOME_BUTTON)).thenReturn(true);
         Mockito.when(mMockPrefService.getBoolean(Pref.SHOW_HOME_BUTTON)).thenReturn(true);
@@ -264,7 +264,7 @@
 
         Assert.assertTrue(
                 "#ShowHomeButton policy is disabled but should be enabled",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
         Assert.assertTrue(
                 "#ShowHomeButton policy has wrong value in test",
                 mHomepagePolicyManager.getShowHomeButtonPolicyValue());
@@ -286,7 +286,7 @@
         // The verify policyEnabled
         Assert.assertTrue(
                 "Policy should be enabled after set up",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
 
         // Update the preference, so that the policy will be disabled.
         Mockito.when(mMockPrefService.isManagedPreference(Pref.HOME_PAGE)).thenReturn(false);
@@ -296,18 +296,18 @@
         // The homepage retrieved from homepage manager should be in sync with pref setting.
         Assert.assertFalse(
                 "Policy should be disabled after refresh",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
         Mockito.verify(mListener, Mockito.times(1)).onHomepagePolicyUpdate();
 
         // Same as above for ShowHomeButton policy.
         Assert.assertTrue(
                 "#ShowHomeButton policy is disabled but should be enabled",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
         Mockito.when(mMockPrefService.isManagedPreference(Pref.SHOW_HOME_BUTTON)).thenReturn(false);
         mHomepagePolicyManager.onPreferenceChange();
         Assert.assertFalse(
                 "#ShowHomeButton policy is enabled but should be disabled",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
         Mockito.verify(mListener, Mockito.times(2)).onHomepagePolicyUpdate();
     }
 
@@ -325,10 +325,10 @@
         // The verify policyEnabled
         Assert.assertTrue(
                 "Policy should be enabled after set up",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
         Assert.assertTrue(
                 "#ShowHomeButton policy is disabled but should be enabled",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
 
         // Perform an debounce - creating a new homepage manager with same setting, and add the
         // listener.
@@ -342,14 +342,14 @@
         // Verify listeners should not receive updates.
         Assert.assertTrue(
                 "Policy should be enabled after refresh",
-                mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+                mHomepagePolicyManager.isHomepageLocationPolicyManaged());
         Assert.assertEquals(
                 "#getHomepageUrl not consistent with test setting",
                 TEST_URL,
-                mHomepagePolicyManager.getHomepagePreference().getSpec());
+                mHomepagePolicyManager.getHomepageLocationPolicyUrl().getSpec());
         Assert.assertTrue(
                 "#ShowHomeButton policy is disabled but should be enabled",
-                mHomepagePolicyManager.isShowHomeButtonPolicyEnabled());
+                mHomepagePolicyManager.isShowHomeButtonPolicyManaged());
         Assert.assertTrue(
                 "#ShowHomeButton policy has wrong value in test",
                 mHomepagePolicyManager.getShowHomeButtonPolicyValue());
@@ -379,7 +379,7 @@
         ChromeSharedPreferences.getInstance()
                 .writeString(ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL, null);
         mHomepagePolicyManager = new HomepagePolicyManager();
-        Assert.assertFalse(mHomepagePolicyManager.isHomepageLocationPolicyEnabled());
+        Assert.assertFalse(mHomepagePolicyManager.isHomepageLocationPolicyManaged());
 
         final String url1 = JUnitTestGURLs.URL_1.getSpec();
         final String url2 = JUnitTestGURLs.URL_2.getSpec();
@@ -388,7 +388,7 @@
         ChromeSharedPreferences.getInstance()
                 .writeString(ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL, null);
         mHomepagePolicyManager = new HomepagePolicyManager();
-        Assert.assertEquals(url1, mHomepagePolicyManager.getHomepagePreference().getSpec());
+        Assert.assertEquals(url1, mHomepagePolicyManager.getHomepageLocationPolicyUrl().getSpec());
 
         ChromeSharedPreferences.getInstance()
                 .writeString(ChromePreferenceKeys.DEPRECATED_HOMEPAGE_LOCATION_POLICY, null);
@@ -397,7 +397,7 @@
                         ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL,
                         new GURL(url1).serialize());
         mHomepagePolicyManager = new HomepagePolicyManager();
-        Assert.assertEquals(url1, mHomepagePolicyManager.getHomepagePreference().getSpec());
+        Assert.assertEquals(url1, mHomepagePolicyManager.getHomepageLocationPolicyUrl().getSpec());
 
         ChromeSharedPreferences.getInstance()
                 .writeString(ChromePreferenceKeys.DEPRECATED_HOMEPAGE_LOCATION_POLICY, url1);
@@ -406,6 +406,6 @@
                         ChromePreferenceKeys.HOMEPAGE_LOCATION_POLICY_GURL,
                         new GURL(url2).serialize());
         mHomepagePolicyManager = new HomepagePolicyManager();
-        Assert.assertEquals(url2, mHomepagePolicyManager.getHomepagePreference().getSpec());
+        Assert.assertEquals(url2, mHomepagePolicyManager.getHomepageLocationPolicyUrl().getSpec());
     }
 }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/settings/HomepageSettingsUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/settings/HomepageSettingsUnitTest.java
index 2a12c3dc..1d7e80d 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/homepage/settings/HomepageSettingsUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/homepage/settings/HomepageSettingsUnitTest.java
@@ -698,14 +698,16 @@
     }
 
     private void setHomepagePolicy(GURL homepagePolicy) {
-        Mockito.doReturn(true).when(mMockHomepagePolicyManager).isHomepageLocationPolicyEnabled();
-        Mockito.doReturn(homepagePolicy).when(mMockHomepagePolicyManager).getHomepagePreference();
+        Mockito.doReturn(true).when(mMockHomepagePolicyManager).isHomepageLocationPolicyManaged();
+        Mockito.doReturn(homepagePolicy)
+                .when(mMockHomepagePolicyManager)
+                .getHomepageLocationPolicyUrl();
     }
 
     private void setShowHomeButtonPolicy(Boolean val) {
         Mockito.doReturn(val != null)
                 .when(mMockHomepagePolicyManager)
-                .isShowHomeButtonPolicyEnabled();
+                .isShowHomeButtonPolicyManaged();
         Mockito.doReturn(Boolean.TRUE.equals(val))
                 .when(mMockHomepagePolicyManager)
                 .getShowHomeButtonPolicyValue();
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 635352c..c55c2ee7 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -18186,6 +18186,9 @@
     <message name="IDS_ACCOUNT_SELECTION_USE_OTHER_ACCOUNT_MULTI_IDP" desc="Title of the button that lets the user log in to a different account of a given origin.">
       Use your <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE">$1<ex>idp.com</ex></ph> account
     </message>
+    <message name="IDS_ACCOUNT_SELECTION_OPENS_IN_NEW_TAB" desc="Accessibility suffix string to tell the user that this button opens in a new tab." is_accessibility_with_no_ui="true">
+      Opens in a new tab
+    </message>
     <message name="IDS_ACCOUNT_SELECTION_BACK" desc="Title of the button that lets the user go back to a previous sheet.">
       Back
     </message>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index c80e309..1df27257 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1312,10 +1312,6 @@
     "profiles/force_youtube_safety_mode_policy_handler.h",
     "profiles/incognito_mode_policy_handler.cc",
     "profiles/incognito_mode_policy_handler.h",
-    "profiles/keep_alive/profile_keep_alive_types.cc",
-    "profiles/keep_alive/profile_keep_alive_types.h",
-    "profiles/keep_alive/scoped_profile_keep_alive.cc",
-    "profiles/keep_alive/scoped_profile_keep_alive.h",
     "profiles/off_the_record_profile_impl.cc",
     "profiles/off_the_record_profile_impl.h",
     "profiles/profile_avatar_downloader.cc",
@@ -1829,6 +1825,9 @@
     # TODO(crbug.com/40110173): Eliminate usages of browser.h from Media Router.
     "//chrome/browser/media/router",
 
+    # TODO(crbug.com/419304389): Remove once c/b/profile get fully modularized.
+    "//chrome/browser/profiles/keep_alive:impl",
+
     # TODO(crbug.com/344921703): Remove circular dependencies.
     "//chrome/browser/sync",
 
@@ -1980,6 +1979,8 @@
     "//chrome/browser/profiles:profiles",
     "//chrome/browser/profiles:profiles_extra_parts",
     "//chrome/browser/profiles:profiles_extra_parts_impl",
+    "//chrome/browser/profiles/keep_alive",
+    "//chrome/browser/profiles/keep_alive:impl",
     "//chrome/browser/profiling_host",
     "//chrome/browser/promos:utils",
     "//chrome/browser/reading_list",
@@ -4385,6 +4386,8 @@
       "//chrome/browser/ui/webui/access_code_cast",
       "//chrome/browser/ui/webui/access_code_cast:impl",
       "//chrome/browser/ui/webui/app_service_internals",
+      "//chrome/browser/ui/webui/infobar_internals",
+      "//chrome/browser/ui/webui/infobar_internals:impl",
 
       # TODO(413315837): Remove this dependency when chrome/browser/privacy_sandbox
       # gets modularized.
@@ -6782,8 +6785,8 @@
       "enterprise/connectors/analysis/content_analysis_delegate.cc",
       "enterprise/connectors/analysis/content_analysis_delegate.h",
       "enterprise/connectors/analysis/content_analysis_delegate_base.h",
-      "enterprise/connectors/analysis/content_analysis_dialog.cc",
-      "enterprise/connectors/analysis/content_analysis_dialog.h",
+      "enterprise/connectors/analysis/content_analysis_dialog_controller.cc",
+      "enterprise/connectors/analysis/content_analysis_dialog_controller.h",
       "enterprise/connectors/analysis/content_analysis_downloads_delegate.cc",
       "enterprise/connectors/analysis/content_analysis_downloads_delegate.h",
       "enterprise/connectors/analysis/content_analysis_info.cc",
@@ -8643,6 +8646,7 @@
       "//chrome/browser/ui/webui/customize_buttons:mojo_bindings",
       "//chrome/browser/ui/webui/data_sharing:mojo_bindings",
       "//chrome/browser/ui/webui/downloads:mojo_bindings",
+      "//chrome/browser/ui/webui/infobar_internals:mojo_bindings",
       "//chrome/browser/ui/webui/new_tab_footer:mojo_bindings",
       "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
       "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index b2567679..dd2a84af 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5855,6 +5855,9 @@
          chrome::android::kEdgeToEdgeSafeAreaConstraint,
          kEdgeToEdgeSafeAreaConstraintVariations,
          "EdgeToEdgeSafeAreaConstraint")},
+    {"edge-to-edge-tablet", flag_descriptions::kEdgeToEdgeTabletName,
+     flag_descriptions::kEdgeToEdgeTabletDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(chrome::android::kEdgeToEdgeTablet)},
     {"edge-to-edge-web-opt-in", flag_descriptions::kEdgeToEdgeWebOptInName,
      flag_descriptions::kEdgeToEdgeWebOptInDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kEdgeToEdgeWebOptIn)},
@@ -11693,9 +11696,6 @@
 #if BUILDFLAG(ENABLE_GLIC)
     {"glic", flag_descriptions::kGlicName, flag_descriptions::kGlicDescription,
      kOsMac | kOsWin | kOsLinux, FEATURE_VALUE_TYPE(features::kGlic)},
-    {"glic-user-resize", flag_descriptions::kGlicUserResizeName,
-     flag_descriptions::kGlicUserResizeDescription, kOsMac | kOsWin | kOsLinux,
-     FEATURE_VALUE_TYPE(features::kGlicUserResize)},
     {"glic-z-order-changes", flag_descriptions::kGlicZOrderChangesName,
      flag_descriptions::kGlicZOrderChangesDescription,
      kOsMac | kOsWin | kOsLinux,
diff --git a/chrome/browser/actor/actor_task.cc b/chrome/browser/actor/actor_task.cc
index 877b99f..db80c47b 100644
--- a/chrome/browser/actor/actor_task.cc
+++ b/chrome/browser/actor/actor_task.cc
@@ -4,13 +4,25 @@
 
 #include "chrome/browser/actor/actor_task.h"
 
+#include "chrome/browser/actor/actor_coordinator.h"
+
 namespace actor {
 
 ActorTask::ActorTask() = default;
+ActorTask::ActorTask(std::unique_ptr<ActorCoordinator> actor_coordinator)
+    : actor_coordinator_(std::move(actor_coordinator)) {}
 ActorTask::~ActorTask() = default;
 
+ActorCoordinator* ActorTask::GetActorCoordinator() const {
+  return actor_coordinator_.get();
+}
+
 ActorTask::State ActorTask::GetState() const {
   return state_;
 }
 
+void ActorTask::SetState(State state) {
+  state_ = state;
+}
+
 }  // namespace actor
diff --git a/chrome/browser/actor/actor_task.h b/chrome/browser/actor/actor_task.h
index b848a33c..a52ed48d 100644
--- a/chrome/browser/actor/actor_task.h
+++ b/chrome/browser/actor/actor_task.h
@@ -5,12 +5,17 @@
 #ifndef CHROME_BROWSER_ACTOR_ACTOR_TASK_H_
 #define CHROME_BROWSER_ACTOR_ACTOR_TASK_H_
 
+#include <memory>
+
 namespace actor {
 
+class ActorCoordinator;
+
 // Represents a task that Chrome is executing on behalf of the user.
 class ActorTask {
  public:
   ActorTask();
+  explicit ActorTask(std::unique_ptr<ActorCoordinator> actor_coordinator);
   ActorTask(const ActorTask&) = delete;
   ActorTask& operator=(const ActorTask&) = delete;
   ~ActorTask();
@@ -21,9 +26,16 @@
   enum class State { kCreated, kActing, kReflecting, kFinished };
 
   State GetState() const;
+  void SetState(State state);
+
+  ActorCoordinator* GetActorCoordinator() const;
 
  private:
   State state_ = State::kCreated;
+
+  // There are multiple possible execution engines. For now we only support
+  // ActorCoordinator.
+  std::unique_ptr<ActorCoordinator> actor_coordinator_;
 };
 
 }  // namespace actor
diff --git a/chrome/browser/actor/tools/page_tool.cc b/chrome/browser/actor/tools/page_tool.cc
index f0fae21..fb8f307 100644
--- a/chrome/browser/actor/tools/page_tool.cc
+++ b/chrome/browser/actor/tools/page_tool.cc
@@ -199,7 +199,7 @@
       auto click = mojom::ClickAction::New();
       if (!SetClickToolArgs(click, action_info)) {
         std::move(callback).Run(
-            MakeResult(mojom::ActionResultCode::kClickInvalidArguments));
+            MakeResult(mojom::ActionResultCode::kArgumentsInvalid));
         return;
       }
       request->action = mojom::ToolAction::NewClick(std::move(click));
@@ -209,7 +209,7 @@
       auto type = mojom::TypeAction::New();
       if (!SetTypeToolArgs(type, action_info)) {
         std::move(callback).Run(
-            MakeResult(mojom::ActionResultCode::kTypeInvalidArguments));
+            MakeResult(mojom::ActionResultCode::kArgumentsInvalid));
         return;
       }
       request->action = mojom::ToolAction::NewType(std::move(type));
@@ -219,7 +219,7 @@
       auto scroll = mojom::ScrollAction::New();
       if (!SetScrollToolArgs(scroll, action_info)) {
         std::move(callback).Run(
-            MakeResult(mojom::ActionResultCode::kScrollInvalidArguments));
+            MakeResult(mojom::ActionResultCode::kArgumentsInvalid));
         return;
       }
       request->action = mojom::ToolAction::NewScroll(std::move(scroll));
diff --git a/chrome/browser/actor/tools/tools_browsertest.cc b/chrome/browser/actor/tools/tools_browsertest.cc
index c23c6029..ad47ff9f 100644
--- a/chrome/browser/actor/tools/tools_browsertest.cc
+++ b/chrome/browser/actor/tools/tools_browsertest.cc
@@ -18,6 +18,7 @@
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h"
+#include "chrome/common/actor.mojom-data-view.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/common/actor/action_result.h"
 #include "chrome/common/chrome_features.h"
@@ -233,7 +234,7 @@
   TestFuture<mojom::ActionResultPtr> result_fail;
   actor_coordinator().Act(action, result_fail.GetCallback());
   // The node id doesn't exist so the tool will return false.
-  ExpectErrorResult(result_fail, mojom::ActionResultCode::kClickInvalidPoint);
+  ExpectErrorResult(result_fail, mojom::ActionResultCode::kInvalidDomNodeId);
 
   // The page should not have received any events.
   EXPECT_EQ("", EvalJs(web_contents(), "mouse_event_log.join(',')"));
@@ -251,7 +252,7 @@
   BrowserAction action = MakeClick(button_id.value());
   TestFuture<mojom::ActionResultPtr> result_fail;
   actor_coordinator().Act(action, result_fail.GetCallback());
-  ExpectErrorResult(result_fail, mojom::ActionResultCode::kClickInvalidPoint);
+  ExpectErrorResult(result_fail, mojom::ActionResultCode::kElementDisabled);
 
   // The page should not have received any events.
   EXPECT_EQ("", EvalJs(web_contents(), "mouse_event_log.join(',')"));
@@ -271,7 +272,7 @@
   BrowserAction action = MakeClick(button_id.value());
   TestFuture<mojom::ActionResultPtr> result_fail;
   actor_coordinator().Act(action, result_fail.GetCallback());
-  ExpectErrorResult(result_fail, mojom::ActionResultCode::kClickInvalidPoint);
+  ExpectErrorResult(result_fail, mojom::ActionResultCode::kElementOffscreen);
 
   // The page should not have received any events.
   EXPECT_EQ("", EvalJs(web_contents(), "mouse_event_log.join(',')"));
@@ -352,7 +353,8 @@
     BrowserAction action = MakeClick(negative_offscreen);
     TestFuture<mojom::ActionResultPtr> result_fail;
     actor_coordinator().Act(action, result_fail.GetCallback());
-    ExpectErrorResult(result_fail, mojom::ActionResultCode::kClickInvalidPoint);
+    ExpectErrorResult(result_fail,
+                      mojom::ActionResultCode::kCoordinatesOutOfBounds);
 
     // The page should not have received any events.
     EXPECT_EQ("", EvalJs(web_contents(), "mouse_event_log.join(',')"));
@@ -365,7 +367,8 @@
     BrowserAction action = MakeClick(positive_offscreen);
     TestFuture<mojom::ActionResultPtr> result_fail;
     actor_coordinator().Act(action, result_fail.GetCallback());
-    ExpectErrorResult(result_fail, mojom::ActionResultCode::kClickInvalidPoint);
+    ExpectErrorResult(result_fail,
+                      mojom::ActionResultCode::kCoordinatesOutOfBounds);
     // The page should not have received any events.
     EXPECT_EQ("", EvalJs(web_contents(), "mouse_event_log.join(',')"));
   }
@@ -777,7 +780,7 @@
 
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(action, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kClickInvalidPoint);
+  ExpectErrorResult(result, mojom::ActionResultCode::kCoordinatesOutOfBounds);
 
   EXPECT_EQ("", EvalJs(web_contents(), "input_event_log.join(',')"));
 }
@@ -799,7 +802,7 @@
 
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(action, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kInvalidDomNodeId);
 }
 
 // Test basic movements using MouseMove tool generates the expected events.
@@ -855,7 +858,7 @@
 
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(action, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result, mojom::ActionResultCode::kElementOffscreen);
   }
 
   // The action should fail without generating any events.
@@ -920,7 +923,7 @@
 
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(action, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result, mojom::ActionResultCode::kCoordinatesOutOfBounds);
   }
 
   // The action should fail without generating any events.
@@ -943,7 +946,7 @@
 
   TestFuture<mojom::ActionResultPtr> result_fail;
   actor_coordinator().Act(action, result_fail.GetCallback());
-  ExpectErrorResult(result_fail, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result_fail, mojom::ActionResultCode::kInvalidDomNodeId);
 
   EXPECT_EQ(0, EvalJs(web_contents(), "window.scrollY"));
 }
@@ -1055,7 +1058,8 @@
                                       /*scroll_offset_x=*/0, scroll_offset_y);
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(action, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result,
+                      mojom::ActionResultCode::kScrollTargetNotUserScrollable);
     EXPECT_EQ(0, EvalJs(web_contents(),
                         "document.getElementById('nonscroll').scrollTop"));
     EXPECT_EQ(0, EvalJs(web_contents(), "window.scrollY"));
@@ -1080,7 +1084,8 @@
                                       /*scroll_offset_x=*/0, scroll_offset);
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(action, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result,
+                      mojom::ActionResultCode::kScrollTargetNotUserScrollable);
     EXPECT_EQ(
         0, EvalJs(web_contents(),
                   "document.getElementById('horizontalscroller').scrollTop"));
@@ -1304,7 +1309,8 @@
     BrowserAction action = MakeDragAndRelease(start, end);
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(action, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result,
+                      mojom::ActionResultCode::kDragAndReleaseFromOffscreen);
   }
 
   // Scroll the range into the viewport.
@@ -1703,7 +1709,7 @@
       MakeSelect(plain_select_dom_node_id, "nonexistentValue");
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(select, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kSelectNoSuchOption);
 
   EXPECT_EQ(GetSelectElementCurrentValue(plain_select_id), initial_value);
 }
@@ -1728,7 +1734,7 @@
     BrowserAction select = MakeSelect(non_options_select_dom_node_id, "beta");
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(select, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result, mojom::ActionResultCode::kSelectNoSuchOption);
   }
 
   // Expect the value to remain unchanged
@@ -1740,7 +1746,7 @@
     BrowserAction select = MakeSelect(non_options_select_dom_node_id, "gamma");
     TestFuture<mojom::ActionResultPtr> result;
     actor_coordinator().Act(select, result.GetCallback());
-    ExpectErrorResult(result, mojom::ActionResultCode::kError);
+    ExpectErrorResult(result, mojom::ActionResultCode::kSelectNoSuchOption);
   }
 
   // Expect the value to remain unchanged
@@ -1777,7 +1783,7 @@
   BrowserAction select = MakeSelect(plain_select_dom_node_id, "BETA");
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(select, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kSelectNoSuchOption);
 
   // The select value should be unchanged.
   EXPECT_EQ(GetSelectElementCurrentValue(plain_select_id), initial_value);
@@ -1801,7 +1807,7 @@
   BrowserAction select = MakeSelect(plain_select_dom_node_id, "disabledOption");
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(select, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kSelectOptionDisabled);
   EXPECT_EQ(GetSelectElementCurrentValue(plain_select_id), initial_value);
 }
 
@@ -1824,7 +1830,7 @@
   BrowserAction select = MakeSelect(plain_select_dom_node_id, "foobar");
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(select, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kSelectOptionDisabled);
   EXPECT_EQ(GetSelectElementCurrentValue(group_select_id), initial_value);
 }
 
@@ -1847,7 +1853,7 @@
   BrowserAction select = MakeSelect(disabled_select_dom_node_id, "beta");
   TestFuture<mojom::ActionResultPtr> result;
   actor_coordinator().Act(select, result.GetCallback());
-  ExpectErrorResult(result, mojom::ActionResultCode::kError);
+  ExpectErrorResult(result, mojom::ActionResultCode::kElementDisabled);
   EXPECT_EQ(GetSelectElementCurrentValue(disabled_select_id), initial_value);
 }
 
diff --git a/chrome/browser/android/autocomplete/tab_matcher_android.cc b/chrome/browser/android/autocomplete/tab_matcher_android.cc
index 87f81e6..905adbd 100644
--- a/chrome/browser/android/autocomplete/tab_matcher_android.cc
+++ b/chrome/browser/android/autocomplete/tab_matcher_android.cc
@@ -121,7 +121,8 @@
 }
 
 std::vector<TabMatcher::TabWrapper> TabMatcherAndroid::GetOpenTabs(
-    const AutocompleteInput* input) const {
+    const AutocompleteInput* input,
+    bool unused_exclude_active_tab) const {
   std::vector<TabMatcher::TabWrapper> open_tabs;
   for (auto& open_tab : GetOpenAndroidTabs(input)) {
     open_tabs.emplace_back(open_tab->GetTitle(), open_tab->GetURL(),
diff --git a/chrome/browser/android/autocomplete/tab_matcher_android.h b/chrome/browser/android/autocomplete/tab_matcher_android.h
index 4025695..55a77456 100644
--- a/chrome/browser/android/autocomplete/tab_matcher_android.h
+++ b/chrome/browser/android/autocomplete/tab_matcher_android.h
@@ -28,7 +28,8 @@
   void FindMatchingTabs(GURLToTabInfoMap* map,
                         const AutocompleteInput* input) const override;
   std::vector<TabMatcher::TabWrapper> GetOpenTabs(
-      const AutocompleteInput* input) const override;
+      const AutocompleteInput* input,
+      bool unused_exclude_active_tab = true) const override;
 
  private:
   std::vector<raw_ptr<TabAndroid, VectorExperimental>> GetOpenAndroidTabs(
diff --git a/chrome/browser/autocomplete/tab_matcher_desktop.cc b/chrome/browser/autocomplete/tab_matcher_desktop.cc
index 563dcffe..3dd51f0 100644
--- a/chrome/browser/autocomplete/tab_matcher_desktop.cc
+++ b/chrome/browser/autocomplete/tab_matcher_desktop.cc
@@ -108,9 +108,10 @@
 }
 
 std::vector<TabMatcher::TabWrapper> TabMatcherDesktop::GetOpenTabs(
-    const AutocompleteInput* input) const {
+    const AutocompleteInput* input,
+    bool exclude_active_tab) const {
   std::vector<TabMatcher::TabWrapper> open_tabs;
-  for (auto* web_contents : GetOpenWebContents()) {
+  for (auto* web_contents : GetOpenWebContents(exclude_active_tab)) {
     open_tabs.emplace_back(web_contents->GetTitle(),
                            web_contents->GetLastCommittedURL(),
                            web_contents->GetLastActiveTime());
diff --git a/chrome/browser/autocomplete/tab_matcher_desktop.h b/chrome/browser/autocomplete/tab_matcher_desktop.h
index 93cb8f0..d1175db 100644
--- a/chrome/browser/autocomplete/tab_matcher_desktop.h
+++ b/chrome/browser/autocomplete/tab_matcher_desktop.h
@@ -28,7 +28,8 @@
       const GURL::Replacements& replacements,
       bool exclude_active_tab) const override;
   std::vector<TabMatcher::TabWrapper> GetOpenTabs(
-      const AutocompleteInput* input) const override;
+      const AutocompleteInput* input,
+      bool exclude_active_tab = true) const override;
 
  private:
   std::vector<content::WebContents*> GetOpenWebContents(
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
index b6285d8e..c4d74ee9 100644
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
@@ -17,6 +17,7 @@
 import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.autofill.R;
 import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
+import org.chromium.components.browser_ui.settings.SettingsFragment;
 import org.chromium.components.browser_ui.settings.SettingsUtils;
 import org.chromium.components.browser_ui.settings.TextMessagePreference;
 
@@ -141,4 +142,9 @@
                 : "missing autofill-options-referrer fragment";
         return extras.getInt(AUTOFILL_OPTIONS_REFERRER);
     }
+
+    @Override
+    public @SettingsFragment.AnimationType int getAnimationType() {
+        return SettingsFragment.AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/auxiliary_search/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBackgroundTask.java b/chrome/browser/auxiliary_search/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBackgroundTask.java
index 5df77a2..95a2cd0 100644
--- a/chrome/browser/auxiliary_search/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBackgroundTask.java
+++ b/chrome/browser/auxiliary_search/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBackgroundTask.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.auxiliary_search;
 
-import static org.chromium.build.NullUtil.assumeNonNull;
 import static org.chromium.chrome.browser.flags.ChromeFeatureList.sAndroidAppIntegrationWithFaviconUseLargeFavicon;
 
 import android.content.Context;
@@ -120,7 +119,7 @@
                                     startTimeMs,
                                     taskFinishedCallback,
                                     mFaviconHelper,
-                                    assumeNonNull(mAuxiliarySearchController),
+                                    mAuxiliarySearchController,
                                     tabs));
         }
     }
@@ -200,9 +199,9 @@
             long startTimeMs,
             TaskFinishedCallback taskFinishedCallback,
             FaviconHelper faviconHelper,
-            AuxiliarySearchController auxiliarySearchController,
+            @Nullable AuxiliarySearchController auxiliarySearchController,
             @Nullable List<T> entries) {
-        if (entries == null || entries.isEmpty()) {
+        if (entries == null || entries.isEmpty() || auxiliarySearchController == null) {
             onTaskFinished(taskFinishedCallback);
             return;
         }
diff --git a/chrome/browser/background/extensions/BUILD.gn b/chrome/browser/background/extensions/BUILD.gn
index 5bc6639..39ad0db 100644
--- a/chrome/browser/background/extensions/BUILD.gn
+++ b/chrome/browser/background/extensions/BUILD.gn
@@ -59,6 +59,7 @@
     "//chrome/browser/background",
     "//chrome/browser/extensions:extensions",
     "//chrome/browser/lifetime:termination_notification",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/status_icons:status_icons",
     "//chrome/browser/ui:ui",
     "//components/crx_file:crx_file",
diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc
index 88115ef..52795b7 100644
--- a/chrome/browser/chrome_browser_interface_binders_webui.cc
+++ b/chrome/browser/chrome_browser_interface_binders_webui.cc
@@ -96,6 +96,8 @@
 #include "chrome/browser/ui/webui/downloads/downloads.mojom.h"
 #include "chrome/browser/ui/webui/downloads/downloads_ui.h"
 #include "chrome/browser/ui/webui/history/history_ui.h"
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom.h"
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h"
 #include "chrome/browser/ui/webui/metrics_reporter/metrics_reporter_service.h"
 #include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer.mojom.h"
 #include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer_ui.h"
@@ -550,6 +552,9 @@
                                            HistoryUI>(map);
   }
 
+  RegisterWebUIControllerInterfaceBinder<
+      infobar_internals::mojom::PageHandlerFactory, InfoBarInternalsUI>(map);
+
   auto* history_clusters_service =
       HistoryClustersServiceFactory::GetForBrowserContext(
           render_frame_host->GetProcess()->GetBrowserContext());
diff --git a/chrome/browser/collaboration/android/java/src/org/chromium/chrome/browser/collaboration/CollaborationControllerDelegateImpl.java b/chrome/browser/collaboration/android/java/src/org/chromium/chrome/browser/collaboration/CollaborationControllerDelegateImpl.java
index 9e66743..882f9ec 100644
--- a/chrome/browser/collaboration/android/java/src/org/chromium/chrome/browser/collaboration/CollaborationControllerDelegateImpl.java
+++ b/chrome/browser/collaboration/android/java/src/org/chromium/chrome/browser/collaboration/CollaborationControllerDelegateImpl.java
@@ -15,6 +15,7 @@
 import org.jni_zero.NativeMethods;
 
 import org.chromium.base.Callback;
+import org.chromium.base.ThreadUtils;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.data_sharing.DataSharingMetrics;
@@ -63,6 +64,7 @@
 @NullMarked
 @JNINamespace("collaboration")
 public class CollaborationControllerDelegateImpl implements CollaborationControllerDelegate {
+    private final ThreadUtils.ThreadChecker mThreadChecker = new ThreadUtils.ThreadChecker();
     private final @FlowType int mFlowType;
     private Activity mActivity;
     private DataSharingTabManager mDataSharingTabManager;
@@ -101,6 +103,7 @@
             @Nullable Callback<Runnable> switchToTabSwitcherCallback,
             Callback<Callback<Boolean>> startAccountRefreshCallback) {
         mNativePtr = CollaborationControllerDelegateImplJni.get().createNativeObject(this);
+        mThreadChecker.assertOnValidThread();
 
         mActivity = activity;
         mFlowType = type;
@@ -119,6 +122,7 @@
 
     @Override
     public long getNativePtr() {
+        mThreadChecker.assertOnValidThread();
         return mNativePtr;
     }
 
@@ -129,6 +133,7 @@
      */
     @CalledByNative
     void prepareFlowUI(long exitCallback, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         mExitCallback = exitCallback;
 
         // Acquire lock to prevent IPH from being shown in a collaboration flow.
@@ -137,6 +142,7 @@
 
         Runnable onTabSwitcherShownRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     CollaborationControllerDelegateImplJni.get()
                             .runResultCallback(Outcome.SUCCESS, resultCallback);
                 };
@@ -160,8 +166,8 @@
      */
     @CalledByNative
     void showError(String titleText, String messageParagraphText, long resultCallback) {
-        @Nullable
-        ModalDialogManager modalDialogManager =
+        mThreadChecker.assertOnValidThread();
+        @Nullable ModalDialogManager modalDialogManager =
                 mDataSharingTabManager.getWindowAndroid().getModalDialogManager();
         assert modalDialogManager != null;
 
@@ -169,6 +175,7 @@
                 new ModalDialogProperties.Controller() {
                     @Override
                     public void onClick(PropertyModel model, @ButtonType int buttonType) {
+                        mThreadChecker.assertOnValidThread();
                         modalDialogManager.dismissDialog(
                                 model, DialogDismissalCause.POSITIVE_BUTTON_CLICKED);
                     }
@@ -176,6 +183,7 @@
                     @Override
                     public void onDismiss(
                             PropertyModel model, @DialogDismissalCause int dismissalCause) {
+                        mThreadChecker.assertOnValidThread();
                         CollaborationControllerDelegateImplJni.get()
                                 .runResultCallback(Outcome.SUCCESS, resultCallback);
                     }
@@ -201,6 +209,7 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     modalDialogManager.dismissDialog(model, DialogDismissalCause.NAVIGATE);
                 };
     }
@@ -212,6 +221,7 @@
      */
     @CalledByNative
     void cancel(long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         CollaborationControllerDelegateImplJni.get()
                 .runResultCallback(Outcome.FAILURE, resultCallback);
     }
@@ -223,6 +233,7 @@
      */
     @CalledByNative
     void showAuthenticationUi(long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         Profile profile = mDataSharingTabManager.getProfile();
         assert profile != null;
 
@@ -242,6 +253,7 @@
             // Need to redirect to verify account activity.
             Callback<Boolean> successCallback =
                     (success) -> {
+                        mThreadChecker.assertOnValidThread();
                         @Outcome int outcome = success ? Outcome.SUCCESS : Outcome.CANCEL;
 
                         CollaborationControllerDelegateImplJni.get()
@@ -283,11 +295,13 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     mDataSharingTabManager.getWindowAndroid().cancelIntent(requestCode);
                 };
     }
 
     private void openSigninSettingsModel(long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         SettingsNavigation settingsNavigation =
                 SettingsNavigationFactory.createSettingsNavigation();
 
@@ -300,6 +314,7 @@
                 new ModalDialogProperties.Controller() {
                     @Override
                     public void onClick(PropertyModel model, @ButtonType int buttonType) {
+                        mThreadChecker.assertOnValidThread();
                         switch (buttonType) {
                             case ModalDialogProperties.ButtonType.POSITIVE:
                                 settingsNavigation.startSettings(
@@ -317,6 +332,7 @@
                     @Override
                     public void onDismiss(
                             PropertyModel model, @DialogDismissalCause int dismissalCause) {
+                        mThreadChecker.assertOnValidThread();
                         CollaborationControllerDelegateImplJni.get()
                                 .runResultCallback(Outcome.CANCEL, resultCallback);
                     }
@@ -348,11 +364,13 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     modalDialogManager.dismissDialog(model, DialogDismissalCause.NAVIGATE);
                 };
     }
 
     private @Nullable Intent createBottomSheetSigninIntent() {
+        mThreadChecker.assertOnValidThread();
         AccountPickerBottomSheetStrings strings =
                 new AccountPickerBottomSheetStrings.Builder(
                                 R.string.collaboration_signin_bottom_sheet_title)
@@ -382,6 +400,7 @@
     }
 
     private @Nullable Intent createFullscreenSigninIntent() {
+        mThreadChecker.assertOnValidThread();
         FullscreenSigninAndHistorySyncConfig fullscreenConfig =
                 new FullscreenSigninAndHistorySyncConfig.Builder()
                         .historyOptInMode(HistorySyncConfig.OptInMode.REQUIRED)
@@ -401,6 +420,7 @@
     }
 
     private void onSigninResult(int resultCode, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         mCloseScreenRunnable = null;
         if (resultCode == Activity.RESULT_OK) {
             CollaborationControllerDelegateImplJni.get()
@@ -424,6 +444,7 @@
      */
     @CalledByNative
     void showJoinDialog(GroupToken token, SharedTabGroupPreview previewData, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         if (previewData == null) {
             CollaborationControllerDelegateImplJni.get()
                     .runResultCallback(Outcome.FAILURE, resultCallback);
@@ -432,6 +453,7 @@
 
         DataSharingJoinUiConfig.JoinCallback joinCallback =
                 new DataSharingJoinUiConfig.JoinCallback() {
+                    // mThreadChecker is an instance variable of the outer class.
                     private long mResultCallback;
 
                     {
@@ -442,12 +464,14 @@
                     public void onGroupJoinedWithWait(
                             org.chromium.components.sync.protocol.GroupData groupData,
                             Callback<Boolean> onJoinFinished) {
+                        mThreadChecker.assertOnValidThread();
                         DataSharingMetrics.recordJoinActionFlowState(
                                 DataSharingMetrics.JoinActionStateAndroid.ADD_MEMBER_SUCCESS);
                         assert groupData.getGroupId().equals(token.collaborationId);
                         mCloseScreenRunnable =
                                 () -> {
                                     onJoinFinished.onResult(true);
+                                    mThreadChecker.assertOnValidThread();
                                 };
                         long callback = mResultCallback;
                         mResultCallback = 0;
@@ -457,6 +481,7 @@
 
                     @Override
                     public void onSessionFinished() {
+                        mThreadChecker.assertOnValidThread();
                         mCloseScreenRunnable = null;
                         if (mResultCallback != 0) {
                             CollaborationControllerDelegateImplJni.get()
@@ -472,6 +497,7 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     assumeNonNull(mDataSharingTabManager.getUiDelegate()).destroyFlow(sessionId);
                 };
     }
@@ -486,8 +512,10 @@
     @CalledByNative
     void showShareDialog(
             String syncId, LocalTabGroupId localId, long resultWithGroupTokenCallback) {
+        mThreadChecker.assertOnValidThread();
         DataSharingCreateUiConfig.CreateCallback createCallback =
                 new DataSharingCreateUiConfig.CreateCallback() {
+                    // mThreadChecker is an instance variable of the outer class.
                     private long mResultCallback;
 
                     {
@@ -498,10 +526,12 @@
                     public void onGroupCreatedWithWait(
                             org.chromium.components.sync.protocol.GroupData result,
                             Callback<Boolean> onCreateFinished) {
+                        mThreadChecker.assertOnValidThread();
                         DataSharingMetrics.recordShareActionFlowState(
                                 DataSharingMetrics.ShareActionStateAndroid.GROUP_CREATE_SUCCESS);
                         mCloseScreenRunnable =
                                 () -> {
+                                    mThreadChecker.assertOnValidThread();
                                     onCreateFinished.onResult(true);
                                 };
 
@@ -516,12 +546,14 @@
 
                     @Override
                     public void onCancelClicked() {
+                        mThreadChecker.assertOnValidThread();
                         DataSharingMetrics.recordShareActionFlowState(
                                 DataSharingMetrics.ShareActionStateAndroid.BOTTOM_SHEET_DISMISSED);
                     }
 
                     @Override
                     public void onSessionFinished() {
+                        mThreadChecker.assertOnValidThread();
                         mCloseScreenRunnable = null;
                         if (mResultCallback != 0) {
                             CollaborationControllerDelegateImplJni.get()
@@ -541,6 +573,7 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     assumeNonNull(mDataSharingTabManager.getUiDelegate()).destroyFlow(sessionId);
                 };
     }
@@ -552,10 +585,12 @@
      */
     @CalledByNative
     void onUrlReadyToShare(String groupId, GURL url, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         if (mCloseScreenRunnable == null) return;
         Callback<Boolean> onFinishCallback =
                 (result) -> {
                     // Close the share dialog that is waiting to finish.
+                    mThreadChecker.assertOnValidThread();
                     closeScreenIfNeeded();
                     if (!result) {
                         CollaborationControllerDelegateImplJni.get()
@@ -576,6 +611,7 @@
      */
     @CalledByNative
     void showManageDialog(String syncId, LocalTabGroupId localId, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         SavedTabGroup existingGroup =
                 mDataSharingTabManager.getSavedTabGroupForEitherId(syncId, localId);
 
@@ -584,6 +620,7 @@
                         mActivity,
                         assumeNonNull(existingGroup.collaborationId),
                         (outcome) -> {
+                            mThreadChecker.assertOnValidThread();
                             CollaborationControllerDelegateImplJni.get()
                                     .runResultCallback(outcome, resultCallback);
                         });
@@ -591,12 +628,15 @@
 
         mCloseScreenRunnable =
                 () -> {
+                    mThreadChecker.assertOnValidThread();
                     assumeNonNull(mDataSharingTabManager.getUiDelegate()).destroyFlow(sessionId);
                 };
     }
 
     private Callback<MaybeBlockingResult> getActionConfirmationCallback(long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         return (MaybeBlockingResult maybeBlockingResult) -> {
+            mThreadChecker.assertOnValidThread();
             boolean accept =
                     maybeBlockingResult.result != ActionConfirmationResult.CONFIRMATION_NEGATIVE;
 
@@ -615,6 +655,7 @@
     }
 
     private ActionConfirmationManager getActionConfirmationManager() {
+        mThreadChecker.assertOnValidThread();
         return new ActionConfirmationManager(
                 assumeNonNull(mDataSharingTabManager.getProfile()),
                 mActivity,
@@ -630,6 +671,7 @@
      */
     @CalledByNative
     void showLeaveDialog(String syncId, LocalTabGroupId localId, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         SavedTabGroup existingGroup =
                 mDataSharingTabManager.getSavedTabGroupForEitherId(syncId, localId);
 
@@ -648,6 +690,7 @@
      */
     @CalledByNative
     void showDeleteDialog(String syncId, LocalTabGroupId localId, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         SavedTabGroup existingGroup =
                 mDataSharingTabManager.getSavedTabGroupForEitherId(syncId, localId);
 
@@ -658,6 +701,7 @@
     }
 
     private String getSavedTabGroupTitle(SavedTabGroup tabGroup) {
+        mThreadChecker.assertOnValidThread();
         return TextUtils.isEmpty(tabGroup.title)
                 ? TabGroupTitleUtils.getDefaultTitle(mActivity, tabGroup.savedTabs.size())
                 : tabGroup.title;
@@ -671,6 +715,7 @@
      */
     @CalledByNative
     void promoteTabGroup(String collaborationId, long resultCallback) {
+        mThreadChecker.assertOnValidThread();
         closeScreenIfNeeded();
         boolean success =
                 mDataSharingTabManager.displayTabGroupAnywhere(
@@ -687,6 +732,7 @@
     /** Called when the flow is finished. */
     @CalledByNative
     void onFlowFinished() {
+        mThreadChecker.assertOnValidThread();
         // Destroy currently showing UI if any.
         closeLoadingIfNeeded();
         closeScreenIfNeeded();
@@ -704,6 +750,7 @@
     /** It is guaranteed that onFlowFinished() is called before this function. */
     @CalledByNative
     void clearNativePtr() {
+        mThreadChecker.assertOnValidThread();
         mNativePtr = 0;
         assert mActivity == null;
     }
@@ -711,6 +758,7 @@
     /** Cleans up any outstanding resources. */
     @Override
     public void destroy() {
+        mThreadChecker.assertOnValidThread();
         long tempCallback = mExitCallback;
         mExitCallback = 0;
         CollaborationControllerDelegateImplJni.get().runExitCallback(tempCallback);
@@ -718,6 +766,7 @@
 
     @SuppressWarnings("NullAway")
     private void cleanUpPointers() {
+        mThreadChecker.assertOnValidThread();
         mActivity = null;
         mDataSharingTabManager = null;
         mSigninAndHistorySyncActivityLauncher = null;
@@ -725,6 +774,7 @@
     }
 
     private void closeScreenIfNeeded() {
+        mThreadChecker.assertOnValidThread();
         if (mCloseScreenRunnable != null) {
             mCloseScreenRunnable.run();
             mCloseScreenRunnable = null;
@@ -732,6 +782,7 @@
     }
 
     private void closeLoadingIfNeeded() {
+        mThreadChecker.assertOnValidThread();
         if (mLoadingFullscreenCoordinator != null) {
             mLoadingFullscreenCoordinator.closeLoadingScreen();
         }
diff --git a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationSettingsFragment.java b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationSettingsFragment.java
index d1b6d100..579736a 100644
--- a/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationSettingsFragment.java
+++ b/chrome/browser/commerce/android/java/src/org/chromium/chrome/browser/commerce/PriceNotificationSettingsFragment.java
@@ -198,4 +198,9 @@
     void setPrefServiceForTesting(PrefService prefs) {
         mPrefService = prefs;
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn
index 7eae2de7..26d18dc 100644
--- a/chrome/browser/devtools/BUILD.gn
+++ b/chrome/browser/devtools/BUILD.gn
@@ -128,6 +128,7 @@
     # //chrome/browser:browser, we include indirect dependencies here.
     ":protocol_generated_sources",
     "//chrome/browser/autofill:autofill",
+    "//chrome/browser/profiles/keep_alive",
     "//components/autofill/content/browser:browser",
     "//components/autofill/core/browser:browser",
     "//components/enterprise/buildflags",
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/settings/DownloadSettings.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/settings/DownloadSettings.java
index 6f5e507..b35417e 100644
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/settings/DownloadSettings.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/settings/DownloadSettings.java
@@ -101,8 +101,8 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         updateDownloadSettings();
     }
 
@@ -152,4 +152,9 @@
     public ManagedPreferenceDelegate getLocationPromptEnabledPrefDelegateForTesting() {
         return mLocationPromptEnabledPrefDelegate;
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
index 77df1b61..fc213e0 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.cc
@@ -26,7 +26,7 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/enterprise/connectors/analysis/clipboard_analysis_request.h"
 #include "chrome/browser/enterprise/connectors/analysis/clipboard_request_handler.h"
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 #include "chrome/browser/enterprise/connectors/analysis/content_analysis_features.h"
 #include "chrome/browser/enterprise/connectors/analysis/files_request_handler.h"
 #include "chrome/browser/enterprise/connectors/analysis/page_print_analysis_request.h"
@@ -428,7 +428,7 @@
 #endif
 
     // This dialog is owned by the constrained_window code.
-    delegate_ptr->dialog_ = new ContentAnalysisDialog(
+    delegate_ptr->dialog_ = new ContentAnalysisDialogController(
         std::move(delegate),
         delegate_ptr->data_.settings.cloud_or_local_settings
             .is_cloud_analysis(),
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
index bc27753..4c0767a 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h
@@ -36,7 +36,7 @@
 
 namespace enterprise_connectors {
 
-class ContentAnalysisDialog;
+class ContentAnalysisDialogController;
 class FilesRequestHandler;
 class PagePrintRequestHandler;
 class ClipboardRequestHandler;
@@ -446,7 +446,7 @@
   CompletionCallback callback_;
 
   // Pointer to UI when enabled.
-  raw_ptr<ContentAnalysisDialog> dialog_ = nullptr;
+  raw_ptr<ContentAnalysisDialogController> dialog_ = nullptr;
 
   // Access point to use to record UMA metrics.
   safe_browsing::DeepScanAccessPoint access_point_;
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
index bf579e3..dd485f259 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_browsertest.cc
@@ -18,7 +18,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 #include "chrome/browser/enterprise/connectors/analysis/content_analysis_features.h"
 #include "chrome/browser/enterprise/connectors/common.h"
 #include "chrome/browser/enterprise/connectors/connectors_service.h"
@@ -300,11 +300,11 @@
 // Only responses obtained via the BinaryUploadService are faked.
 class ContentAnalysisDelegateBrowserTestBase
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver {
+      public ContentAnalysisDialogController::TestObserver {
  public:
   explicit ContentAnalysisDelegateBrowserTestBase(bool machine_scope)
       : machine_scope_(machine_scope) {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
   }
 
   void EnableUploadsScanningAndReporting() {
@@ -371,7 +371,7 @@
             identity_test_environment_->identity_manager());
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     // The test is over once the views are destroyed.
     CallQuitClosure();
   }
@@ -2260,22 +2260,22 @@
   // The dialog should appear on blocking scans for both paste and files upload,
   // because CBUS retries authorizarion check first and then update the scan
   // result.
-  void ConstructorCalled(ContentAnalysisDialog* dialog,
+  void ConstructorCalled(ContentAnalysisDialogController* dialog,
                          base::TimeTicks timestamp) override {
     ASSERT_TRUE(blocking_scan());
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     ASSERT_TRUE(blocking_scan());
   }
 
-  void DialogUpdated(ContentAnalysisDialog* dialog,
+  void DialogUpdated(ContentAnalysisDialogController* dialog,
                      FinalContentAnalysisResult result) override {
     ASSERT_TRUE(blocking_scan());
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     ASSERT_TRUE(blocking_scan());
     CallQuitClosure();
   }
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
deleted file mode 100644
index e221f36..0000000
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
+++ /dev/null
@@ -1,1248 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
-
-#include <cstddef>
-#include <memory>
-
-#include "base/functional/bind.h"
-#include "base/memory/raw_ptr.h"
-#include "base/strings/string_number_conversions.h"
-#include "cc/paint/paint_flags.h"
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_features.h"
-#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
-#include "chrome/common/buildflags.h"
-#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/theme_resources.h"
-#include "components/constrained_window/constrained_window_views.h"
-#include "components/guest_view/browser/guest_view_base.h"
-#include "components/strings/grit/components_strings.h"
-#include "components/vector_icons/vector_icons.h"
-#include "components/web_modal/web_contents_modal_dialog_manager.h"
-#include "content/public/browser/browser_task_traits.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/web_contents.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/base/mojom/dialog_button.mojom.h"
-#include "ui/base/mojom/ui_base_types.mojom-shared.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/base/ui_base_types.h"
-#include "ui/color/color_id.h"
-#include "ui/color/color_provider.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/color_palette.h"
-#include "ui/gfx/color_utils.h"
-#include "ui/gfx/image/image_skia.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/gfx/text_constants.h"
-#include "ui/views/accessibility/view_accessibility.h"
-#include "ui/views/background.h"
-#include "ui/views/border.h"
-#include "ui/views/bubble/bubble_frame_view.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/link.h"
-#include "ui/views/controls/textarea/textarea.h"
-#include "ui/views/controls/throbber.h"
-#include "ui/views/layout/box_layout_view.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/layout/layout_provider.h"
-#include "ui/views/layout/table_layout_view.h"
-
-#include "base/win/windows_h_disallowed.h"
-
-#if BUILDFLAG(ENABLE_GLIC)
-#include "base/metrics/histogram_functions.h"
-#include "chrome/browser/glic/host/guest_util.h"
-#include "chrome/browser/glic/widget/glic_widget.h"
-#include "components/guest_view/browser/guest_view_base.h"
-#endif
-
-namespace enterprise_connectors {
-
-namespace {
-
-constexpr base::TimeDelta kResizeAnimationDuration = base::Milliseconds(100);
-
-constexpr int kSideImageSize = 24;
-constexpr int kLineHeight = 20;
-
-constexpr gfx::Insets kSideImageInsets(8);
-constexpr int kMessageAndIconRowLeadingPadding = 32;
-constexpr int kMessageAndIconRowTrailingPadding = 48;
-constexpr int kSideIconBetweenChildSpacing = 16;
-constexpr int kPaddingBeforeBypassJustification = 16;
-
-constexpr size_t kMaxBypassJustificationLength = 280;
-
-// These time values are non-const in order to be overridden in test so they
-// complete faster.
-base::TimeDelta minimum_pending_dialog_time_ = base::Seconds(2);
-base::TimeDelta success_dialog_timeout_ = base::Seconds(1);
-base::TimeDelta show_dialog_delay_ = base::Seconds(1);
-
-// A simple background class to show a colored circle behind the side icon once
-// the scanning is done.
-// TODO(pkasting): This is copy and pasted from ThemedSolidBackground.  Merge.
-class CircleBackground : public views::Background {
- public:
-  explicit CircleBackground(ui::ColorId color) { SetColor(color); }
-
-  CircleBackground(const CircleBackground&) = delete;
-  CircleBackground& operator=(const CircleBackground&) = delete;
-
-  ~CircleBackground() override = default;
-
-  // views::Background:
-  void Paint(gfx::Canvas* canvas, views::View* view) const override {
-    int radius = view->bounds().width() / 2;
-    gfx::PointF center(radius, radius);
-    cc::PaintFlags flags;
-    flags.setAntiAlias(true);
-    flags.setStyle(cc::PaintFlags::kFill_Style);
-    flags.setColor(color().ResolveToSkColor(view->GetColorProvider()));
-    canvas->DrawCircle(center, radius, flags);
-  }
-
-  void OnViewThemeChanged(views::View* view) override {
-    view->SchedulePaint();
-  }
-
-};
-
-gfx::Rect GetDialogBounds(content::WebContents* contents,
-                          const gfx::Rect& current_widget_bounds) {
-  gfx::Rect rect = contents->GetContainerBounds();
-
-  // This will show the dialog right above the top of the contents.
-  rect.set_y(rect.y() - 40);
-#if BUILDFLAG(ENABLE_GLIC)
-  if (glic::IsGlicWebUI(contents)) {
-    // This will show the dialog right below the "header" part of Glic.
-    rect.set_y(rect.y() + 80);
-  }
-#endif  // BUILDFLAG(ENABLE_GLIC)
-
-  rect.set_x(rect.x() + (rect.width() / 2) -
-             (current_widget_bounds.width() / 2));
-
-  return rect;
-}
-
-ContentAnalysisDialog::TestObserver* observer_for_testing = nullptr;
-
-}  // namespace
-
-// View classes used to override OnThemeChanged and update the sub-views to the
-// new theme.
-
-class DeepScanningBaseView {
- public:
-  explicit DeepScanningBaseView(ContentAnalysisDialog* dialog)
-      : dialog_(dialog) {}
-  ContentAnalysisDialog* dialog() { return dialog_; }
-
- protected:
-  raw_ptr<ContentAnalysisDialog, DanglingUntriaged> dialog_;
-};
-
-class DeepScanningTopImageView : public DeepScanningBaseView,
-                                 public views::ImageView {
-  METADATA_HEADER(DeepScanningTopImageView, views::ImageView)
-
- public:
-  using DeepScanningBaseView::DeepScanningBaseView;
-
-  void Update() {
-    if (!GetWidget())
-      return;
-    SetImage(dialog()->GetTopImage());
-  }
-
- protected:
-  void OnThemeChanged() override {
-    views::ImageView::OnThemeChanged();
-    Update();
-  }
-};
-
-BEGIN_METADATA(DeepScanningTopImageView)
-END_METADATA
-
-class DeepScanningSideIconImageView : public DeepScanningBaseView,
-                                      public views::ImageView {
-  METADATA_HEADER(DeepScanningSideIconImageView, views::ImageView)
-
- public:
-  using DeepScanningBaseView::DeepScanningBaseView;
-
-  void Update() {
-    if (!GetWidget())
-      return;
-    SetImage(ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon,
-                                            dialog()->GetSideImageLogoColor(),
-                                            kSideImageSize));
-    if (dialog()->is_result()) {
-      SetBackground(std::make_unique<CircleBackground>(
-          dialog()->GetSideImageBackgroundColor()));
-    }
-  }
-
- protected:
-  void OnThemeChanged() override {
-    views::ImageView::OnThemeChanged();
-    Update();
-  }
-};
-
-BEGIN_METADATA(DeepScanningSideIconImageView)
-END_METADATA
-
-class DeepScanningSideIconSpinnerView : public DeepScanningBaseView,
-                                        public views::Throbber {
-  METADATA_HEADER(DeepScanningSideIconSpinnerView, views::Throbber)
-
- public:
-  using DeepScanningBaseView::DeepScanningBaseView;
-
-  void Update() {
-    if (dialog()->is_result()) {
-      parent()->RemoveChildView(this);
-      delete this;
-    }
-  }
-
- protected:
-  void OnThemeChanged() override {
-    views::Throbber::OnThemeChanged();
-    Update();
-  }
-};
-
-BEGIN_METADATA(DeepScanningSideIconSpinnerView)
-END_METADATA
-
-// static
-base::TimeDelta ContentAnalysisDialog::GetMinimumPendingDialogTime() {
-  return minimum_pending_dialog_time_;
-}
-
-// static
-base::TimeDelta ContentAnalysisDialog::GetSuccessDialogTimeout() {
-  return success_dialog_timeout_;
-}
-
-// static
-base::TimeDelta ContentAnalysisDialog::ShowDialogDelay() {
-  return show_dialog_delay_;
-}
-
-ContentAnalysisDialog::ContentAnalysisDialog(
-    std::unique_ptr<ContentAnalysisDelegateBase> delegate,
-    bool is_cloud,
-    content::WebContents* contents,
-    safe_browsing::DeepScanAccessPoint access_point,
-    int files_count,
-    FinalContentAnalysisResult final_result,
-    download::DownloadItem* download_item)
-    : content::WebContentsObserver(contents),
-      delegate_(std::move(delegate)),
-      final_result_(final_result),
-      access_point_(std::move(access_point)),
-      files_count_(files_count),
-      download_item_(download_item),
-      is_cloud_(is_cloud) {
-  DVLOG(1) << __func__;
-  DCHECK(delegate_);
-  SetOwnedByWidget(OwnedByWidgetPassKey());
-  set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric(
-      views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH));
-
-  if (observer_for_testing)
-    observer_for_testing->ConstructorCalled(this, base::TimeTicks::Now());
-
-  if (final_result_ != FinalContentAnalysisResult::SUCCESS)
-    UpdateStateFromFinalResult(final_result_);
-
-  SetupButtons();
-
-  if (download_item_)
-    download_item_->AddObserver(this);
-
-  // Because the display of the dialog is delayed, it won't block UI
-  // interaction with the top level web contents until it is visible.  To block
-  // interaction as of now, ignore input events manually.
-  top_level_contents_ =
-      constrained_window::GetTopLevelWebContents(web_contents())->GetWeakPtr();
-
-  top_level_contents_->StoreFocus();
-  scoped_ignore_input_events_ =
-      top_level_contents_->IgnoreInputEvents(std::nullopt);
-
-  if (ShowDialogDelay().is_zero() || !is_pending()) {
-    DVLOG(1) << __func__ << ": Showing in ctor";
-    ShowDialogNow();
-  } else {
-    content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE,
-        base::BindOnce(&ContentAnalysisDialog::ShowDialogNow,
-                       weak_ptr_factory_.GetWeakPtr()),
-        ShowDialogDelay());
-  }
-
-  if (is_warning() && bypass_requires_justification()) {
-    bypass_justification_text_length_->SetEnabledColor(
-        bypass_justification_text_length_->GetColorProvider()->GetColor(
-            ui::kColorAlertHighSeverity));
-  }
-}
-
-void ContentAnalysisDialog::ShowDialogNow() {
-  if (will_be_deleted_soon_) {
-    DVLOG(1) << __func__ << ": aborting since dialog will be deleted soon";
-    return;
-  }
-
-// Glic port enabled for Mac only at the moment until fixed on Windows.
-// TODO(416748209): Follow up with full port of ContentAnalysisDialog to use
-// non web modals on both Mac and Windows for all sources.
-#if BUILDFLAG(ENABLE_GLIC) && BUILDFLAG(IS_MAC)
-  if (glic::IsGlicWebUI(top_level_contents_.get())) {
-    // make sure only one dialog is displayed at a time. If a dialog exists we
-    // just update the view.
-    if (contents_view_) {
-      return;
-    }
-    ShowNonTabDialogNow();
-    base::UmaHistogramEnumeration("Glic.Modal.DeepScan", access_point_);
-    return;
-  }
-#endif
-
-  auto* manager =
-      web_modal::WebContentsModalDialogManager::FromWebContents(web_contents());
-  if (!manager) {
-    // `manager` being null indicates that `web_contents()` doesn't correspond
-    // to a browser tab (ex: an extension background page reading the
-    // clipboard). In such a case, we don't show a dialog and instead simply
-    // accept/cancel the result immediately. See crbug.com/374120523 and
-    // crbug.com/388049470 for more context.
-    if (!is_pending()) {
-      CancelButtonCallback();
-    }
-    return;
-  }
-
-  // If the web contents is still valid when the delay timer goes off and the
-  // dialog has not yet been shown, show it now.
-  if (web_contents() && !contents_view_) {
-    DVLOG(1) << __func__ << ": first time";
-    first_shown_timestamp_ = base::TimeTicks::Now();
-    constrained_window::ShowWebModalDialogViews(this, web_contents());
-    if (observer_for_testing)
-      observer_for_testing->ViewsFirstShown(this, first_shown_timestamp_);
-  }
-}
-
-void ContentAnalysisDialog::ShowNonTabDialogNow() {
-  content::WebContents* top_web_contents =
-      guest_view::GuestViewBase::GetTopLevelWebContents(web_contents());
-  raw_ptr<views::Widget> dialog_widget =
-      views::DialogDelegate::CreateDialogWidget(
-          weak_ptr_factory_.GetWeakPtr().get(), gfx::NativeWindow(),
-          top_web_contents->GetNativeView());
-
-  dialog_widget->SetBounds(GetDialogBounds(
-      top_web_contents, dialog_widget->GetWindowBoundsInScreen()));
-
-  dialog_widget->Show();
-  if (observer_for_testing) {
-    observer_for_testing->ViewsFirstShown(this, first_shown_timestamp_);
-  }
-}
-
-std::u16string ContentAnalysisDialog::GetWindowTitle() const {
-  return std::u16string();
-}
-
-void ContentAnalysisDialog::AcceptButtonCallback() {
-  DCHECK(delegate_);
-  DCHECK(is_warning());
-  accepted_or_cancelled_ = true;
-  std::optional<std::u16string> justification = std::nullopt;
-  if (delegate_->BypassRequiresJustification() && bypass_justification_)
-    justification = bypass_justification_->GetText();
-  delegate_->BypassWarnings(justification);
-}
-
-void ContentAnalysisDialog::CancelButtonCallback() {
-  accepted_or_cancelled_ = true;
-  if (delegate_)
-    delegate_->Cancel(is_warning());
-}
-
-void ContentAnalysisDialog::LearnMoreLinkClickedCallback(
-    const ui::Event& event) {
-  DCHECK(has_learn_more_url());
-  web_contents()->OpenURL(
-      content::OpenURLParams((*delegate_->GetCustomLearnMoreUrl()),
-                             content::Referrer(),
-                             WindowOpenDisposition::NEW_FOREGROUND_TAB,
-                             ui::PAGE_TRANSITION_LINK, false),
-      /*navigation_handle_callback=*/{});
-}
-
-void ContentAnalysisDialog::SuccessCallback() {
-#if defined(USE_AURA)
-  if (web_contents()) {
-    // It's possible focus has been lost and gained back incorrectly if the user
-    // clicked on the page between the time the scan started and the time the
-    // dialog closes. This results in the behaviour detailed in
-    // crbug.com/1139050. The fix is to preemptively take back focus when this
-    // dialog closes on its own.
-    scoped_ignore_input_events_.reset();
-    web_contents()->Focus();
-  }
-#endif
-}
-
-void ContentAnalysisDialog::ContentsChanged(
-    views::Textfield* sender,
-    const std::u16string& new_contents) {
-  if (bypass_justification_text_length_) {
-    bypass_justification_text_length_->SetText(l10n_util::GetStringFUTF16(
-        IDS_DEEP_SCANNING_DIALOG_BYPASS_JUSTIFICATION_TEXT_LIMIT_LABEL,
-        base::NumberToString16(new_contents.size()),
-        base::NumberToString16(kMaxBypassJustificationLength)));
-  }
-
-  if (new_contents.size() == 0 ||
-      new_contents.size() > kMaxBypassJustificationLength) {
-    DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, false);
-    if (bypass_justification_text_length_) {
-      bypass_justification_text_length_->SetEnabledColor(
-          bypass_justification_text_length_->GetColorProvider()->GetColor(
-              ui::kColorAlertHighSeverity));
-    }
-  } else {
-    DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, true);
-    if (bypass_justification_text_length_ && justification_text_label_) {
-      bypass_justification_text_length_->SetEnabledColor(
-          justification_text_label_->GetEnabledColor());
-    }
-  }
-}
-
-bool ContentAnalysisDialog::ShouldShowCloseButton() const {
-  return false;
-}
-
-views::View* ContentAnalysisDialog::GetContentsView() {
-  if (!contents_view_) {
-    DVLOG(1) << __func__ << ": first time";
-    contents_view_ = new views::BoxLayoutView();  // Owned by caller.
-    contents_view_->SetOrientation(views::BoxLayout::Orientation::kVertical);
-    // Padding to distance the top image from the icon and message.
-    contents_view_->SetBetweenChildSpacing(16);
-
-    // padding to distance the message from the button(s).  When doing a cloud
-    // based analysis, a top image is added to the view and the top padding
-    // looks fine.  When not doing a cloud-based analysis set the top padding
-    // to make things look nice.
-    contents_view_->SetInsideBorderInsets(
-        gfx::Insets::TLBR(is_cloud_ ? 0 : 24, 0, 10, 0));
-
-    // Add the top image for cloud-based analysis.
-    if (is_cloud_) {
-      image_ = contents_view_->AddChildView(
-          std::make_unique<DeepScanningTopImageView>(this));
-    }
-
-    // Create message area layout.
-    contents_layout_ = contents_view_->AddChildView(
-        std::make_unique<views::TableLayoutView>());
-    contents_layout_
-        ->AddPaddingColumn(views::TableLayout::kFixedSize,
-                           kMessageAndIconRowLeadingPadding)
-        .AddColumn(views::LayoutAlignment::kStart,
-                   views::LayoutAlignment::kStart,
-                   views::TableLayout::kFixedSize,
-                   views::TableLayout::ColumnSize::kUsePreferred, 0, 0)
-        .AddPaddingColumn(views::TableLayout::kFixedSize,
-                          kSideIconBetweenChildSpacing)
-        .AddColumn(views::LayoutAlignment::kStretch,
-                   views::LayoutAlignment::kStretch, 1.0f,
-                   views::TableLayout::ColumnSize::kUsePreferred, 0, 0)
-        .AddPaddingColumn(views::TableLayout::kFixedSize,
-                          kMessageAndIconRowTrailingPadding)
-        // There is initially only 1 row in the table for the side icon and
-        // message. Rows are added later when other elements are needed.
-        .AddRows(1, views::TableLayout::kFixedSize);
-
-    // Add the side icon.
-    contents_layout_->AddChildView(CreateSideIcon());
-
-    // Add the message.
-    message_ =
-        contents_layout_->AddChildView(std::make_unique<views::StyledLabel>());
-    message_->SetText(GetDialogMessage());
-    message_->SetLineHeight(kLineHeight);
-
-    // Calculate the width of the side icon column with insets and padding.
-    int side_icon_column_width = kMessageAndIconRowLeadingPadding +
-                                 kSideImageInsets.width() + kSideImageSize +
-                                 kSideIconBetweenChildSpacing;
-    message_->SizeToFit(fixed_width() - side_icon_column_width -
-                        kMessageAndIconRowTrailingPadding);
-    message_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-
-    if (!is_pending())
-      UpdateDialog();
-  }
-
-  return contents_view_;
-}
-
-views::Widget* ContentAnalysisDialog::GetWidget() {
-  return contents_view_->GetWidget();
-}
-
-const views::Widget* ContentAnalysisDialog::GetWidget() const {
-  return contents_view_->GetWidget();
-}
-
-ui::mojom::ModalType ContentAnalysisDialog::GetModalType() const {
-  return ui::mojom::ModalType::kChild;
-}
-
-void ContentAnalysisDialog::WebContentsDestroyed() {
-  // If WebContents are destroyed, then the scan results don't matter so the
-  // delegate can be destroyed as well.
-  CancelDialogWithoutCallback();
-}
-
-void ContentAnalysisDialog::PrimaryPageChanged(content::Page& page) {
-  // If the primary page is changed, the scan results would be stale. So the
-  // delegate should be reset and dialog should be cancelled.
-  CancelDialogWithoutCallback();
-}
-
-void ContentAnalysisDialog::ShowResult(FinalContentAnalysisResult result) {
-  DCHECK(is_pending());
-
-  UpdateStateFromFinalResult(result);
-
-  // Update the pending dialog only after it has been shown for a minimum amount
-  // of time.
-  base::TimeDelta time_shown = base::TimeTicks::Now() - first_shown_timestamp_;
-  if (time_shown >= GetMinimumPendingDialogTime()) {
-    UpdateDialog();
-  } else {
-    content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE,
-        base::BindOnce(&ContentAnalysisDialog::UpdateDialog,
-                       weak_ptr_factory_.GetWeakPtr()),
-        GetMinimumPendingDialogTime() - time_shown);
-  }
-}
-
-ContentAnalysisDialog::~ContentAnalysisDialog() {
-  DVLOG(1) << __func__;
-
-  if (bypass_justification_) {
-    bypass_justification_->SetController(nullptr);
-  }
-
-  if (top_level_contents_) {
-    scoped_ignore_input_events_.reset();
-    top_level_contents_->RestoreFocus();
-  }
-  if (download_item_)
-    download_item_->RemoveObserver(this);
-  if (observer_for_testing)
-    observer_for_testing->DestructorCalled(this);
-}
-
-void ContentAnalysisDialog::UpdateStateFromFinalResult(
-    FinalContentAnalysisResult final_result) {
-  final_result_ = final_result;
-  switch (final_result_) {
-    case FinalContentAnalysisResult::ENCRYPTED_FILES:
-    case FinalContentAnalysisResult::LARGE_FILES:
-    case FinalContentAnalysisResult::FAIL_CLOSED:
-    case FinalContentAnalysisResult::FAILURE:
-      dialog_state_ = State::FAILURE;
-      break;
-    case FinalContentAnalysisResult::SUCCESS:
-      dialog_state_ = State::SUCCESS;
-      break;
-    case FinalContentAnalysisResult::WARNING:
-      dialog_state_ = State::WARNING;
-      break;
-  }
-}
-
-void ContentAnalysisDialog::UpdateViews() {
-  DCHECK(contents_view_);
-
-  // Update the style of the dialog to reflect the new state.
-  if (image_)
-    image_->Update();
-
-  side_icon_image_->Update();
-
-  // There isn't always a spinner, for instance when the dialog is started in a
-  // state other than the "pending" state.
-  if (side_icon_spinner_) {
-    // Calling `Update` leads to the deletion of the spinner.
-    side_icon_spinner_.ExtractAsDangling()->Update();
-  }
-
-  // Update the buttons.
-  SetupButtons();
-
-  // Update the message's text, and send an alert for screen readers since the
-  // text changed.
-  std::u16string new_message = GetDialogMessage();
-  UpdateDialogMessage(std::move(new_message));
-
-  // Add bypass justification views when required on warning verdicts. The order
-  // of the helper functions needs to be preserved for them to appear in the
-  // correct order.
-  if (is_warning() && bypass_requires_justification()) {
-    AddJustificationTextLabelToDialog();
-    AddJustificationTextAreaToDialog();
-    AddJustificationTextLengthToDialog();
-  }
-}
-
-bool ContentAnalysisDialog::ShouldShowDialogNow() {
-  DCHECK(!is_pending());
-  // If the final result is fail closed, display ui regardless of cloud or local
-  // analysis.
-  if (final_result_ == FinalContentAnalysisResult::FAIL_CLOSED) {
-    DVLOG(1) << __func__ << ": show fail-closed ui.";
-    return true;
-  }
-  // Otherwise, show dialog now only if it is cloud analysis and the verdict is
-  // not success.
-  return is_cloud_ && !is_success();
-}
-
-void ContentAnalysisDialog::UpdateDialog() {
-  if (!contents_view_ && !is_pending()) {
-    // If the dialog is no longer pending, a final verdict was received before
-    // the dialog was displayed.  Show the verdict right away only if
-    // ShouldShowDialogNow() returns true.
-    ShouldShowDialogNow() ? ShowDialogNow() : CancelDialogAndDelete();
-    return;
-  }
-
-  DCHECK(is_result());
-
-  int height_before = contents_view_->GetPreferredSize().height();
-
-  UpdateViews();
-
-  // Resize the dialog's height. This is needed since the text might take more
-  // lines after changing.
-  int height_after = contents_view_->GetHeightForWidth(contents_view_->width());
-
-  int height_to_add = std::max(height_after - height_before, 0);
-  if (height_to_add > 0 && GetWidget())
-    Resize(height_to_add);
-
-  // Update the dialog.
-  DialogDelegate::DialogModelChanged();
-  contents_view_->InvalidateLayout();
-
-  // Schedule the dialog to close itself in the success case.
-  if (is_success()) {
-    content::GetUIThreadTaskRunner({})->PostDelayedTask(
-        FROM_HERE,
-        base::BindOnce(&DialogDelegate::CancelDialog,
-                       weak_ptr_factory_.GetWeakPtr()),
-        GetSuccessDialogTimeout());
-  }
-
-  if (observer_for_testing)
-    observer_for_testing->DialogUpdated(this, final_result_);
-
-  // Cancel the dialog as it is updated in tests in the failure dialog case.
-  // This is necessary to terminate tests that end when the dialog is closed.
-  if (observer_for_testing && is_failure())
-    CancelDialog();
-}
-
-void ContentAnalysisDialog::Resize(int height_to_add) {
-  // Only resize if the dialog is updated to show a result.
-  DCHECK(is_result());
-  views::Widget* widget = GetWidget();
-  DCHECK(widget);
-
-  gfx::Rect dialog_rect = widget->GetContentsView()->GetContentsBounds();
-  int new_height = dialog_rect.height();
-
-  // Remove the button row's height if it's removed in the success case.
-  if (is_success()) {
-    DCHECK(contents_view_->parent());
-    DCHECK_EQ(contents_view_->parent()->children().size(), 2ul);
-    DCHECK_EQ(contents_view_->parent()->children()[0], contents_view_);
-
-    views::View* button_row_view = contents_view_->parent()->children()[1];
-    new_height -= button_row_view->GetContentsBounds().height();
-  }
-
-  // Apply the message lines delta.
-  new_height += height_to_add;
-  dialog_rect.set_height(new_height);
-
-  // Setup the animation.
-  bounds_animator_ =
-      std::make_unique<views::BoundsAnimator>(widget->GetRootView());
-  bounds_animator_->SetAnimationDuration(kResizeAnimationDuration);
-
-  DCHECK(widget->GetRootView());
-  views::View* view_to_resize = widget->GetRootView()->children()[0];
-
-  // Start the animation.
-  bounds_animator_->AnimateViewTo(view_to_resize, dialog_rect);
-
-  // Change the widget's size.
-  gfx::Size new_size = view_to_resize->size();
-  new_size.set_height(new_height);
-  widget->SetSize(new_size);
-}
-
-void ContentAnalysisDialog::SetupButtons() {
-  if (is_warning()) {
-    // Include the Ok and Cancel buttons if there is a bypassable warning.
-    DialogDelegate::SetButtons(
-        static_cast<int>(ui::mojom::DialogButton::kCancel) |
-        static_cast<int>(ui::mojom::DialogButton::kOk));
-    DialogDelegate::SetDefaultButton(
-        static_cast<int>(ui::mojom::DialogButton::kCancel));
-
-    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kCancel,
-                                   GetCancelButtonText());
-    DialogDelegate::SetCancelCallback(
-        base::BindOnce(&ContentAnalysisDialog::CancelButtonCallback,
-                       weak_ptr_factory_.GetWeakPtr()));
-
-    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kOk,
-                                   GetBypassWarningButtonText());
-    DialogDelegate::SetAcceptCallback(
-        base::BindOnce(&ContentAnalysisDialog::AcceptButtonCallback,
-                       weak_ptr_factory_.GetWeakPtr()));
-
-    if (delegate_->BypassRequiresJustification())
-      DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, false);
-  } else if (is_failure() || is_pending()) {
-    // Include the Cancel button when the scan is pending or failing.
-    DialogDelegate::SetButtons(
-        static_cast<int>(ui::mojom::DialogButton::kCancel));
-    DialogDelegate::SetDefaultButton(
-        static_cast<int>(ui::mojom::DialogButton::kNone));
-
-    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kCancel,
-                                   GetCancelButtonText());
-    DialogDelegate::SetCancelCallback(
-        base::BindOnce(&ContentAnalysisDialog::CancelButtonCallback,
-                       weak_ptr_factory_.GetWeakPtr()));
-  } else {
-    // Include no buttons otherwise.
-    DialogDelegate::SetButtons(
-        static_cast<int>(ui::mojom::DialogButton::kNone));
-    DialogDelegate::SetCancelCallback(
-        base::BindOnce(&ContentAnalysisDialog::SuccessCallback,
-                       weak_ptr_factory_.GetWeakPtr()));
-  }
-}
-
-std::u16string ContentAnalysisDialog::GetDialogMessage() const {
-  switch (dialog_state_) {
-    case State::PENDING:
-      return GetPendingMessage();
-    case State::FAILURE:
-      return GetFailureMessage();
-    case State::SUCCESS:
-      return GetSuccessMessage();
-    case State::WARNING:
-      return GetWarningMessage();
-  }
-}
-
-std::u16string ContentAnalysisDialog::GetCancelButtonText() const {
-  int text_id;
-  auto overriden_text = delegate_->OverrideCancelButtonText();
-  if (overriden_text) {
-    return overriden_text.value();
-  }
-
-  switch (dialog_state_) {
-    case State::SUCCESS:
-      NOTREACHED();
-    case State::PENDING:
-      text_id = IDS_DEEP_SCANNING_DIALOG_CANCEL_UPLOAD_BUTTON;
-      break;
-    case State::FAILURE:
-      text_id = IDS_CLOSE;
-      break;
-    case State::WARNING:
-      text_id = IDS_DEEP_SCANNING_DIALOG_CANCEL_WARNING_BUTTON;
-      break;
-  }
-  return l10n_util::GetStringUTF16(text_id);
-}
-
-std::u16string ContentAnalysisDialog::GetBypassWarningButtonText() const {
-  DCHECK(is_warning());
-  return l10n_util::GetStringUTF16(IDS_DEEP_SCANNING_DIALOG_PROCEED_BUTTON);
-}
-
-std::unique_ptr<views::View> ContentAnalysisDialog::CreateSideIcon() {
-  // The icon left of the text has the appearance of a blue "Enterprise" logo
-  // with a spinner when the scan is pending.
-  auto icon = std::make_unique<views::View>();
-  icon->SetLayoutManager(std::make_unique<views::FillLayout>());
-
-  auto side_image = std::make_unique<DeepScanningSideIconImageView>(this);
-  side_image->SetImage(ui::ImageModel::FromVectorIcon(
-      vector_icons::kBusinessIcon, gfx::kPlaceholderColor, kSideImageSize));
-  side_image->SetBorder(views::CreateEmptyBorder(kSideImageInsets));
-  side_icon_image_ = icon->AddChildView(std::move(side_image));
-
-  // Add a spinner if the scan result is pending.
-  if (is_pending()) {
-    auto spinner = std::make_unique<DeepScanningSideIconSpinnerView>(this);
-    spinner->Start();
-    side_icon_spinner_ = icon->AddChildView(std::move(spinner));
-  }
-
-  return icon;
-}
-
-ui::ColorId ContentAnalysisDialog::GetSideImageBackgroundColor() const {
-  DCHECK(is_result());
-  DCHECK(contents_view_);
-
-  switch (dialog_state_) {
-    case State::PENDING:
-      NOTREACHED();
-    case State::SUCCESS:
-      return ui::kColorAccent;
-    case State::FAILURE:
-      return ui::kColorAlertHighSeverity;
-    case State::WARNING:
-      return ui::kColorAlertMediumSeverityIcon;
-  }
-}
-
-int ContentAnalysisDialog::GetTopImageId(bool use_dark) const {
-  if (use_dark) {
-    switch (dialog_state_) {
-      case State::PENDING:
-        return IDR_UPLOAD_SCANNING_DARK;
-      case State::SUCCESS:
-        return IDR_UPLOAD_SUCCESS_DARK;
-      case State::FAILURE:
-        return IDR_UPLOAD_VIOLATION_DARK;
-      case State::WARNING:
-        return IDR_UPLOAD_WARNING_DARK;
-    }
-  } else {
-    switch (dialog_state_) {
-      case State::PENDING:
-        return IDR_UPLOAD_SCANNING;
-      case State::SUCCESS:
-        return IDR_UPLOAD_SUCCESS;
-      case State::FAILURE:
-        return IDR_UPLOAD_VIOLATION;
-      case State::WARNING:
-        return IDR_UPLOAD_WARNING;
-    }
-  }
-}
-
-std::u16string ContentAnalysisDialog::GetPendingMessage() const {
-  DCHECK(is_pending());
-  if (is_print_scan()) {
-    return l10n_util::GetStringUTF16(
-        IDS_DEEP_SCANNING_DIALOG_PRINT_PENDING_MESSAGE);
-  }
-
-  return l10n_util::GetPluralStringFUTF16(
-      IDS_DEEP_SCANNING_DIALOG_UPLOAD_PENDING_MESSAGE, files_count_);
-}
-
-std::u16string ContentAnalysisDialog::GetFailureMessage() const {
-  DCHECK(is_failure());
-
-  // If the admin has specified a custom message for this failure, it takes
-  // precedence over the generic ones.
-  if (has_custom_message())
-    return GetCustomMessage();
-
-  if (final_result_ == FinalContentAnalysisResult::FAIL_CLOSED) {
-    DVLOG(1) << __func__ << ": display fail-closed message.";
-    return l10n_util::GetStringUTF16(
-        IDS_DEEP_SCANNING_DIALOG_UPLOAD_FAIL_CLOSED_MESSAGE);
-  }
-
-  if (final_result_ == FinalContentAnalysisResult::LARGE_FILES) {
-    if (is_print_scan()) {
-      return l10n_util::GetStringUTF16(
-          IDS_DEEP_SCANNING_DIALOG_LARGE_PRINT_FAILURE_MESSAGE);
-    }
-    return l10n_util::GetPluralStringFUTF16(
-        IDS_DEEP_SCANNING_DIALOG_LARGE_FILE_FAILURE_MESSAGE, files_count_);
-  }
-
-  if (final_result_ == FinalContentAnalysisResult::ENCRYPTED_FILES) {
-    return l10n_util::GetPluralStringFUTF16(
-        IDS_DEEP_SCANNING_DIALOG_ENCRYPTED_FILE_FAILURE_MESSAGE, files_count_);
-  }
-
-  if (is_print_scan()) {
-    return l10n_util::GetStringUTF16(
-        IDS_DEEP_SCANNING_DIALOG_PRINT_WARNING_MESSAGE);
-  }
-
-  return l10n_util::GetPluralStringFUTF16(
-      IDS_DEEP_SCANNING_DIALOG_UPLOAD_FAILURE_MESSAGE, files_count_);
-}
-
-std::u16string ContentAnalysisDialog::GetWarningMessage() const {
-  DCHECK(is_warning());
-
-  // If the admin has specified a custom message for this warning, it takes
-  // precedence over the generic one.
-  if (has_custom_message())
-    return GetCustomMessage();
-
-  if (is_print_scan()) {
-    return l10n_util::GetStringUTF16(
-        IDS_DEEP_SCANNING_DIALOG_PRINT_WARNING_MESSAGE);
-  }
-
-  return l10n_util::GetPluralStringFUTF16(
-      IDS_DEEP_SCANNING_DIALOG_UPLOAD_WARNING_MESSAGE, files_count_);
-}
-
-std::u16string ContentAnalysisDialog::GetSuccessMessage() const {
-  DCHECK(is_success());
-  if (is_print_scan()) {
-    return l10n_util::GetStringUTF16(
-        IDS_DEEP_SCANNING_DIALOG_PRINT_SUCCESS_MESSAGE);
-  }
-  return l10n_util::GetPluralStringFUTF16(
-      IDS_DEEP_SCANNING_DIALOG_SUCCESS_MESSAGE, files_count_);
-}
-
-std::u16string ContentAnalysisDialog::GetCustomMessage() const {
-  DCHECK(is_warning() || is_failure());
-  DCHECK(has_custom_message());
-  return *(delegate_->GetCustomMessage());
-}
-
-void ContentAnalysisDialog::AddLearnMoreLinkToDialog() {
-  DCHECK(contents_view_);
-  DCHECK(contents_layout_);
-  DCHECK(is_warning() || is_failure());
-
-  // There is only ever up to one link in the dialog, so return early instead of
-  // adding another one.
-  if (learn_more_link_)
-    return;
-
-  // Add a row for the new element, and add an empty view to skip the first
-  // column.
-  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
-  contents_layout_->AddChildView(std::make_unique<views::View>());
-
-  // Since `learn_more_link_` is not as wide as the column it's a part of,
-  // instead of being added directly to it, it has a parent with a BoxLayout so
-  // that its width corresponds to its own text size instead of the full column
-  // width.
-  views::View* learn_more_column =
-      contents_layout_->AddChildView(std::make_unique<views::View>());
-  learn_more_column->SetLayoutManager(std::make_unique<views::BoxLayout>());
-
-  learn_more_link_ = learn_more_column->AddChildView(
-      std::make_unique<views::Link>(l10n_util::GetStringUTF16(
-          IDS_DEEP_SCANNING_DIALOG_CUSTOM_MESSAGE_LEARN_MORE_LINK)));
-  learn_more_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-  learn_more_link_->SetCallback(
-      base::BindRepeating(&ContentAnalysisDialog::LearnMoreLinkClickedCallback,
-                          base::Unretained(this)));
-}
-
-void ContentAnalysisDialog::AddJustificationTextLabelToDialog() {
-  DCHECK(contents_view_);
-  DCHECK(contents_layout_);
-  DCHECK(is_warning());
-
-  // There is only ever up to one justification section in the dialog, so return
-  // early instead of adding another one.
-  if (justification_text_label_)
-    return;
-
-  // Add a row for the new element, and add an empty view to skip the first
-  // column.
-  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
-  contents_layout_->AddChildView(std::make_unique<views::View>());
-
-  justification_text_label_ =
-      contents_layout_->AddChildView(std::make_unique<views::Label>());
-  justification_text_label_->SetText(delegate_->GetBypassJustificationLabel());
-  justification_text_label_->SetBorder(views::CreateEmptyBorder(
-      gfx::Insets::TLBR(kPaddingBeforeBypassJustification, 0, 0, 0)));
-  justification_text_label_->SetLineHeight(kLineHeight);
-  justification_text_label_->SetMultiLine(true);
-  justification_text_label_->SetVerticalAlignment(gfx::ALIGN_MIDDLE);
-  justification_text_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-}
-
-void ContentAnalysisDialog::AddJustificationTextAreaToDialog() {
-  DCHECK(contents_view_);
-  DCHECK(contents_layout_);
-  DCHECK(justification_text_label_);
-  DCHECK(is_warning());
-
-  // There is only ever up to one justification text box in the dialog, so
-  // return early instead of adding another one.
-  if (bypass_justification_)
-    return;
-
-  // Add a row for the new element, and add an empty view to skip the first
-  // column.
-  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
-  contents_layout_->AddChildView(std::make_unique<views::View>());
-
-  bypass_justification_ =
-      contents_layout_->AddChildView(std::make_unique<views::Textarea>());
-  bypass_justification_->GetViewAccessibility().SetName(
-      *justification_text_label_);
-  bypass_justification_->SetController(this);
-}
-
-void ContentAnalysisDialog::AddJustificationTextLengthToDialog() {
-  DCHECK(contents_view_);
-  DCHECK(contents_layout_);
-  DCHECK(is_warning());
-
-  // There is only ever up to one justification text length indicator in the
-  // dialog, so return early instead of adding another one.
-  if (bypass_justification_text_length_)
-    return;
-
-  // Add a row for the new element, and add an empty view to skip the first
-  // column.
-  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
-  contents_layout_->AddChildView(std::make_unique<views::View>());
-
-  bypass_justification_text_length_ =
-      contents_layout_->AddChildView(std::make_unique<views::Label>());
-  bypass_justification_text_length_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-  bypass_justification_text_length_->SetText(l10n_util::GetStringFUTF16(
-      IDS_DEEP_SCANNING_DIALOG_BYPASS_JUSTIFICATION_TEXT_LIMIT_LABEL,
-      base::NumberToString16(0),
-      base::NumberToString16(kMaxBypassJustificationLength)));
-
-  // Set the color to red initially because a 0 length message is invalid. Skip
-  // this if the color provider is unavailable.
-  if (bypass_justification_text_length_->GetColorProvider()) {
-    bypass_justification_text_length_->SetEnabledColor(
-        bypass_justification_text_length_->GetColorProvider()->GetColor(
-            ui::kColorAlertHighSeverity));
-  }
-}
-
-void ContentAnalysisDialog::AddLinksToDialogMessage() {
-  if (!has_custom_message_ranges()) {
-    return;
-  }
-
-  std::vector<std::pair<gfx::Range, GURL>> ranges =
-      *(delegate_->GetCustomRuleMessageRanges());
-  for (const auto& range : ranges) {
-    if (!range.second.is_valid()) {
-      continue;
-    }
-    message_->AddStyleRange(
-        gfx::Range(range.first.start(), range.first.end()),
-        views::StyledLabel::RangeStyleInfo::CreateForLink(base::BindRepeating(
-            [](base::WeakPtr<content::WebContents> web_contents, GURL url,
-               const ui::Event& event) {
-              if (!web_contents) {
-                return;
-              }
-              web_contents->OpenURL(
-                  content::OpenURLParams(
-                      url, content::Referrer(),
-                      WindowOpenDisposition::NEW_FOREGROUND_TAB,
-                      ui::PAGE_TRANSITION_LINK,
-                      /*is_renderer_initiated=*/false),
-                  /*navigation_handle_callback=*/{});
-            },
-            web_contents()->GetWeakPtr(), range.second)));
-  }
-}
-
-void ContentAnalysisDialog::UpdateDialogMessage(std::u16string new_message) {
-  if ((is_failure() || is_warning()) && has_custom_message()) {
-    message_->SetText(new_message);
-    AddLinksToDialogMessage();
-    message_->GetViewAccessibility().AnnounceText(std::move(new_message));
-    if (has_learn_more_url()) {
-      AddLearnMoreLinkToDialog();
-    }
-  } else {
-    message_->SetText(new_message);
-    message_->GetViewAccessibility().AnnounceText(std::move(new_message));
-
-    // Add a "Learn More" link for warnings/failures when one is provided.
-    if ((is_failure() || is_warning()) && has_learn_more_url()) {
-      AddLearnMoreLinkToDialog();
-    }
-  }
-}
-
-bool ContentAnalysisDialog::ShouldUseDarkTopImage() const {
-  return color_utils::IsDark(
-      contents_view_->GetColorProvider()->GetColor(ui::kColorDialogBackground));
-}
-
-ui::ImageModel ContentAnalysisDialog::GetTopImage() const {
-  return ui::ImageModel::FromResourceId(GetTopImageId(ShouldUseDarkTopImage()));
-}
-
-bool ContentAnalysisDialog::is_print_scan() const {
-  return access_point_ == safe_browsing::DeepScanAccessPoint::PRINT;
-}
-
-void ContentAnalysisDialog::CancelDialogAndDelete() {
-  if (observer_for_testing) {
-    observer_for_testing->CancelDialogAndDeleteCalled(this, final_result_);
-  }
-
-  if (contents_view_) {
-    DVLOG(1) << __func__ << ": dialog will be canceled";
-    CancelDialog();
-  } else {
-    DVLOG(1) << __func__ << ": dialog will be deleted soon";
-    will_be_deleted_soon_ = true;
-    content::GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this);
-  }
-}
-
-ui::ColorId ContentAnalysisDialog::GetSideImageLogoColor() const {
-  DCHECK(contents_view_);
-
-  switch (dialog_state_) {
-    case State::PENDING:
-      // In the dialog's pending state, the side image is just an enterprise
-      // logo surrounded by a throbber, so we use the throbber color for it.
-      return ui::kColorThrobber;
-    case State::SUCCESS:
-    case State::FAILURE:
-    case State::WARNING:
-      // In a result state, the side image is a circle colored with the result's
-      // color and an enterprise logo in front of it, so the logo should have
-      // the same color as the dialog's overall background.
-      return ui::kColorDialogBackground;
-  }
-}
-
-// static
-void ContentAnalysisDialog::SetMinimumPendingDialogTimeForTesting(
-    base::TimeDelta delta) {
-  minimum_pending_dialog_time_ = delta;
-}
-
-// static
-void ContentAnalysisDialog::SetSuccessDialogTimeoutForTesting(
-    base::TimeDelta delta) {
-  success_dialog_timeout_ = delta;
-}
-
-// static
-void ContentAnalysisDialog::SetShowDialogDelayForTesting(
-    base::TimeDelta delta) {
-  show_dialog_delay_ = delta;
-}
-
-// static
-void ContentAnalysisDialog::SetObserverForTesting(TestObserver* observer) {
-  observer_for_testing = observer;
-}
-
-views::ImageView* ContentAnalysisDialog::GetTopImageForTesting() const {
-  return image_;
-}
-
-views::Throbber* ContentAnalysisDialog::GetSideIconSpinnerForTesting() const {
-  return side_icon_spinner_;
-}
-
-views::StyledLabel* ContentAnalysisDialog::GetMessageForTesting() const {
-  return message_;
-}
-
-views::Link* ContentAnalysisDialog::GetLearnMoreLinkForTesting() const {
-  return learn_more_link_;
-}
-
-views::Label* ContentAnalysisDialog::GetBypassJustificationLabelForTesting()
-    const {
-  return justification_text_label_;
-}
-
-views::Textarea*
-ContentAnalysisDialog::GetBypassJustificationTextareaForTesting() const {
-  return bypass_justification_;
-}
-
-views::Label* ContentAnalysisDialog::GetJustificationTextLengthForTesting()
-    const {
-  return bypass_justification_text_length_;
-}
-
-void ContentAnalysisDialog::OnDownloadUpdated(
-    download::DownloadItem* download) {
-  if (download->GetDangerType() ==
-          download::DOWNLOAD_DANGER_TYPE_USER_VALIDATED &&
-      !accepted_or_cancelled_) {
-    // The user validated the verdict in another instance of
-    // `ContentAnalysisDialog`, so this one is now pointless and can go away.
-    CancelDialogWithoutCallback();
-  }
-}
-
-void ContentAnalysisDialog::OnDownloadOpened(download::DownloadItem* download) {
-  if (!accepted_or_cancelled_)
-    CancelDialogWithoutCallback();
-}
-
-void ContentAnalysisDialog::OnDownloadDestroyed(
-    download::DownloadItem* download) {
-  if (!accepted_or_cancelled_)
-    CancelDialogWithoutCallback();
-  download_item_ = nullptr;
-}
-
-void ContentAnalysisDialog::CancelDialogWithoutCallback() {
-  // Reset `delegate` so no logic runs when the dialog is cancelled.
-  delegate_.reset(nullptr);
-
-  // view may be null if the dialog was delayed and never shown before the
-  // verdict is known.
-  if (contents_view_)
-    CancelDialog();
-}
-
-}  // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
deleted file mode 100644
index 58649d5d..0000000
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
+++ /dev/null
@@ -1,378 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_H_
-#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_H_
-
-#include <cstddef>
-#include <memory>
-
-#include "base/memory/raw_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/time/time.h"
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h"
-#include "chrome/browser/enterprise/connectors/common.h"
-#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
-#include "components/download/public/common/download_item.h"
-#include "content/public/browser/web_contents_observer.h"
-#include "ui/base/mojom/ui_base_types.mojom-shared.h"
-#include "ui/views/animation/bounds_animator.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/controls/textfield/textfield_controller.h"
-#include "ui/views/window/dialog_delegate.h"
-
-namespace content {
-class WebContents;
-}  // namespace content
-
-namespace views {
-class BoxLayoutView;
-class ImageView;
-class Label;
-class Link;
-class TableLayoutView;
-class Textarea;
-class Throbber;
-class Widget;
-}  // namespace views
-
-namespace enterprise_connectors {
-class DeepScanningTopImageView;
-class DeepScanningSideIconImageView;
-class DeepScanningSideIconSpinnerView;
-
-// Dialog shown for Deep Scanning to offer the possibility of cancelling the
-// upload to the user.
-class ContentAnalysisDialog : public views::DialogDelegate,
-                              public content::WebContentsObserver,
-                              public views::TextfieldController,
-                              public download::DownloadItem::Observer {
- public:
-  // TestObserver should be implemented by tests that need to track when certain
-  // ContentAnalysisDialog functions are called. The test can add itself as an
-  // observer by using SetObserverForTesting.
-  class TestObserver {
-   public:
-    virtual ~TestObserver() = default;
-
-    // Called at the start of ContentAnalysisDialog's constructor. `dialog` is
-    // a pointer to the newly constructed ContentAnalysisDialog and should be
-    // kept in memory by the test in order to validate its state.
-    virtual void ConstructorCalled(ContentAnalysisDialog* dialog,
-                                   base::TimeTicks timestamp) {}
-
-    // Called at the end of ContentAnalysisDialog::Show. `timestamp` is the
-    // time used by ContentAnalysisDialog to decide whether the pending state
-    // has been shown for long enough. The test can keep this time in memory and
-    // validate the pending time was sufficient in DialogUpdated.
-    virtual void ViewsFirstShown(ContentAnalysisDialog* dialog,
-                                 base::TimeTicks timestamp) {}
-
-    // Called at the end of ContentAnalysisDialog::UpdateDialog. `result` is
-    // the value that UpdatedDialog used to transition from the pending state to
-    // the success/failure/warning state.
-    virtual void DialogUpdated(ContentAnalysisDialog* dialog,
-                               FinalContentAnalysisResult result) {}
-
-    // Called at the start of CancelDialogAndDelete(). `dialog` is a pointer
-    // that will soon be destructed. Along with `result`, it is used by the test
-    // to validate the dialog should be canceled or deleted.
-    virtual void CancelDialogAndDeleteCalled(
-        ContentAnalysisDialog* dialog,
-        FinalContentAnalysisResult result) {}
-
-    // Called at the end of ContentAnalysisDialog's destructor. `dialog` is a
-    // pointer to the ContentAnalysisDialog being destructed. It can be used
-    // to compare it to the pointer obtained from ConstructorCalled to ensure
-    // which view is being destroyed.
-    virtual void DestructorCalled(ContentAnalysisDialog* dialog) {}
-  };
-
-  static void SetObserverForTesting(TestObserver* observer);
-
-  static void SetMinimumPendingDialogTimeForTesting(base::TimeDelta delta);
-  static void SetSuccessDialogTimeoutForTesting(base::TimeDelta delta);
-  static void SetShowDialogDelayForTesting(base::TimeDelta delta);
-
-  static base::TimeDelta GetMinimumPendingDialogTime();
-  static base::TimeDelta GetSuccessDialogTimeout();
-  static base::TimeDelta ShowDialogDelay();
-
-  ContentAnalysisDialog(std::unique_ptr<ContentAnalysisDelegateBase> delegate,
-                        bool is_cloud,
-                        content::WebContents* web_contents,
-                        safe_browsing::DeepScanAccessPoint access_point,
-                        int files_count,
-                        FinalContentAnalysisResult final_result =
-                            FinalContentAnalysisResult::SUCCESS,
-                        download::DownloadItem* download_item = nullptr);
-
-  // views::DialogDelegate:
-  std::u16string GetWindowTitle() const override;
-  bool ShouldShowCloseButton() const override;
-  views::View* GetContentsView() override;
-  views::Widget* GetWidget() override;
-  const views::Widget* GetWidget() const override;
-  ui::mojom::ModalType GetModalType() const override;
-
-  // content::WebContentsObserver:
-  void WebContentsDestroyed() override;
-  void PrimaryPageChanged(content::Page& page) override;
-
-  // Updates the dialog with the result, and simply delete it from memory if
-  // nothing should be shown.
-  void ShowResult(FinalContentAnalysisResult result);
-
-  // Accessors to simplify `dialog_state_` checking.
-  inline bool is_success() const { return dialog_state_ == State::SUCCESS; }
-
-  inline bool is_failure() const { return dialog_state_ == State::FAILURE; }
-
-  inline bool is_warning() const { return dialog_state_ == State::WARNING; }
-
-  inline bool is_result() const { return !is_pending(); }
-
-  inline bool is_pending() const { return dialog_state_ == State::PENDING; }
-
-  inline bool is_cloud() const { return is_cloud_; }
-
-  bool has_custom_message() const {
-    return delegate_->GetCustomMessage().has_value();
-  }
-
-  bool has_learn_more_url() const {
-    return delegate_->GetCustomLearnMoreUrl().has_value();
-  }
-
-  bool has_custom_message_ranges() const {
-    return delegate_->GetCustomRuleMessageRanges().has_value();
-  }
-
-  bool bypass_requires_justification() const {
-    return delegate_->BypassRequiresJustification();
-  }
-
-  // Cancels the dialog an schedules it for deletion if visible, otherwise
-  // simply deletes it soon.
-  void CancelDialogAndDelete();
-
-  // Returns the side image's logo color depending on `dialog_state_`.
-  ui::ColorId GetSideImageLogoColor() const;
-
-  // Returns the side image's background circle color depending on
-  // `dialog_state_`.
-  ui::ColorId GetSideImageBackgroundColor() const;
-
-  // Returns true if should use dark version of top image.
-  bool ShouldUseDarkTopImage() const;
-
-  // Returns the appropriate top image depending on `dialog_state_`.
-  ui::ImageModel GetTopImage() const;
-
-  // Accessors used to validate the views in tests.
-  views::ImageView* GetTopImageForTesting() const;
-  views::Throbber* GetSideIconSpinnerForTesting() const;
-  views::StyledLabel* GetMessageForTesting() const;
-  views::Link* GetLearnMoreLinkForTesting() const;
-  views::Label* GetBypassJustificationLabelForTesting() const;
-  views::Textarea* GetBypassJustificationTextareaForTesting() const;
-  views::Label* GetJustificationTextLengthForTesting() const;
-
- private:
-  // Friend the unit test class for this so it can call the private dtor.
-  friend class ContentAnalysisDialogPlainTest;
-
-  // Friend to allow use of TaskRunner::DeleteSoon().
-  friend class base::DeleteHelper<ContentAnalysisDialog>;
-
-  // Enum used to represent what the dialog is currently showing.
-  enum class State {
-    // The dialog is shown with an explanation that the scan is being performed
-    // and that the result is pending.
-    PENDING,
-
-    // The dialog is shown with a short message indicating that the scan was a
-    // success and that the user may proceed with their upload, drag-and-drop or
-    // paste.
-    SUCCESS,
-
-    // The dialog is shown with a message indicating that the scan was a failure
-    // and that the user may not proceed with their upload, drag-and-drop or
-    // paste.
-    FAILURE,
-
-    // The dialog is shown with a message indicating that the scan was a
-    // failure, but that the user may proceed with their upload, drag-and-drop
-    // or paste if they want to.
-    WARNING,
-  };
-
-  ~ContentAnalysisDialog() override;
-
-  // Callback function of delayed timer to make the dialog visible.
-  void ShowDialogNow();
-  void ShowNonTabDialogNow();
-
-  void UpdateStateFromFinalResult(FinalContentAnalysisResult final_result);
-
-  // Updates the views in the dialog to put them in the correct state for
-  // `dialog_state_`. This doesn't trigger the same events/resizes as
-  // UpdateDialog(), and doesn't require the presence of a widget. This is safe
-  // to use in the first GetContentsView() call, before the dialog is shown.
-  void UpdateViews();
-
-  // Update the UI depending on `dialog_state_`. This also triggers resizes and
-  // fires some events. It's meant to be called to update the entire dialog when
-  // it's already showing.
-  // This function can only be called after the dialog widget is initialized.
-  void UpdateDialog();
-
-  // Helper function to determine whether dialog should be shown immediately.
-  bool ShouldShowDialogNow();
-
-  // Resizes the already shown dialog to accommodate changes in its content.
-  void Resize(int height_to_add);
-
-  // Setup the appropriate buttons depending on `dialog_state_`.
-  void SetupButtons();
-
-  // Returns a newly created side icon.
-  std::unique_ptr<views::View> CreateSideIcon();
-
-  // Returns the appropriate dialog message depending on `dialog_state_`.
-  std::u16string GetDialogMessage() const;
-
-  // Returns the text for the Cancel button depending on `dialog_state_`.
-  std::u16string GetCancelButtonText() const;
-
-  // Returns the text for the Ok button for the warning case.
-  std::u16string GetBypassWarningButtonText() const;
-
-  // Returns the appropriate top image ID depending on `dialog_state_`.
-  int GetTopImageId(bool use_dark) const;
-
-  // Returns the appropriate pending message depending on `files_count_`.
-  std::u16string GetPendingMessage() const;
-
-  // Returns the appropriate failure message depending on `final_result_` and
-  // `files_count_`.
-  std::u16string GetFailureMessage() const;
-
-  // Returns the appropriate warning message depending on `files_count_`.
-  std::u16string GetWarningMessage() const;
-
-  // Returns the appropriate success message depending on `files_count_`.
-  std::u16string GetSuccessMessage() const;
-
-  std::u16string GetCustomMessage() const;
-
-  // Helper methods to add views to `contents_view_` and `contents_layout_` that
-  // are not used for every state of the dialog.
-  void AddLearnMoreLinkToDialog();
-  void AddJustificationTextLabelToDialog();
-  void AddJustificationTextAreaToDialog();
-  void AddJustificationTextLengthToDialog();
-
-  // Helper that indicates if the dialog corresponds to a print scan.
-  bool is_print_scan() const;
-
-  // Helper methods to get the admin message shown in dialog.
-  void AddLinksToDialogMessage();
-  void UpdateDialogMessage(std::u16string new_message);
-
-  void AcceptButtonCallback();
-  void CancelButtonCallback();
-  void LearnMoreLinkClickedCallback(const ui::Event& event);
-
-  // This callback used by DialogDelegate::SetCancelCallback and is used to
-  // ensure the auto-closing success dialog handles focus correctly.
-  void SuccessCallback();
-
-  // views::TextfieldController:
-  void ContentsChanged(views::Textfield* sender,
-                       const std::u16string& new_contents) override;
-
-  // download::DownloadItem::Observer:
-  void OnDownloadUpdated(download::DownloadItem* download) override;
-  void OnDownloadOpened(download::DownloadItem* download) override;
-  void OnDownloadDestroyed(download::DownloadItem* download) override;
-
-  // Several conditions can lead to the dialog being no longer useful, so this
-  // method is shared for those different conditions to close the dialog.
-  void CancelDialogWithoutCallback();
-
-  std::unique_ptr<ContentAnalysisDelegateBase> delegate_;
-
-  // Views above the buttons. `contents_view_` owns every other view.
-  raw_ptr<views::BoxLayoutView> contents_view_ = nullptr;
-  raw_ptr<DeepScanningTopImageView> image_ = nullptr;
-  raw_ptr<DeepScanningSideIconImageView> side_icon_image_ = nullptr;
-  raw_ptr<DeepScanningSideIconSpinnerView> side_icon_spinner_ = nullptr;
-  raw_ptr<views::StyledLabel> message_ = nullptr;
-
-  // The following views are also owned by `contents_view_`, but remain nullptr
-  // if they aren't required to be initialized.
-  raw_ptr<views::Link> learn_more_link_ = nullptr;
-  raw_ptr<views::Label> justification_text_label_ = nullptr;
-  raw_ptr<views::Textarea> bypass_justification_ = nullptr;
-  raw_ptr<views::Label> bypass_justification_text_length_ = nullptr;
-
-  // Table layout owned by `contents_view_`.
-  raw_ptr<views::TableLayoutView> contents_layout_ = nullptr;
-
-  base::TimeTicks first_shown_timestamp_;
-
-  // Used to show the appropriate dialog depending on the scan's status.
-  State dialog_state_ = State::PENDING;
-
-  // Used to show the appropriate message.
-  FinalContentAnalysisResult final_result_;
-
-  // Used to animate dialog height changes.
-  std::unique_ptr<views::BoundsAnimator> bounds_animator_;
-
-  // The access point that caused this dialog to open. This changes what text
-  // and top image are shown to the user.
-  safe_browsing::DeepScanAccessPoint access_point_;
-
-  // Indicates whether the scan being done is for files (files_count_>0) or for
-  // text (files_count_==0). This changes what text and top image are shown to
-  // the user.
-  int files_count_;
-
-  // `DownloadItem` for dialogs corresponding to a download with a reviewable
-  // verdict. nullptr otherwise.
-  raw_ptr<download::DownloadItem> download_item_ = nullptr;
-
-  // Set to true once the dialog is either accepted or cancelled by the user.
-  // This is used to decide whether the dialog should go away without user input
-  // or not.
-  bool accepted_or_cancelled_ = false;
-
-  // True when performing a cloud-based content analysis, false when performing
-  // a locally based content analysis.
-  bool is_cloud_ = true;
-
-  // Set to true once `DeleteSoon()` is called in `CancelDialogAndDelete()`.
-  // This is used by other pending tasks, such as `ShowDialogNow()` to do
-  // nothing if the dialog has been scheduled for deletion.
-  bool will_be_deleted_soon_ = false;
-
-  // If input events for our `WebContents` have been ignored, then this is the
-  // closure to re-enable them.
-  std::optional<content::WebContents::ScopedIgnoreInputEvents>
-      scoped_ignore_input_events_;
-
-  // A reference to the top level web contents of the tab whose content is
-  // being analyzed.  Input events of this contents are ignored for the life
-  // time of the dialog.
-  base::WeakPtr<content::WebContents> top_level_contents_;
-
-  base::WeakPtrFactory<ContentAnalysisDialog> weak_ptr_factory_{this};
-};
-
-}  // namespace enterprise_connectors
-
-#endif  // CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_H_
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
index d35af11..ef4698a 100644
--- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_browsertest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 
 #include "base/memory/raw_ptr.h"
 #include "base/run_loop.h"
@@ -59,18 +59,18 @@
 // - It sends accessibility events correctly.
 class ContentAnalysisDialogBehaviorBrowserTest
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver,
+      public ContentAnalysisDialogController::TestObserver,
       public testing::WithParamInterface<
           std::tuple<bool, bool, base::TimeDelta>> {
  public:
   ContentAnalysisDialogBehaviorBrowserTest()
       : ax_event_counter_(views::AXUpdateNotifier::Get()) {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
 
     expected_scan_result_ = dlp_success() && malware_success();
   }
 
-  void ConstructorCalled(ContentAnalysisDialog* dialog,
+  void ConstructorCalled(ContentAnalysisDialogController* dialog,
                          base::TimeTicks timestamp) override {
     ctor_called_timestamp_ = timestamp;
     dialog_ = dialog;
@@ -83,7 +83,7 @@
     ctor_called_ = true;
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     DCHECK_EQ(dialog, dialog_);
     first_shown_timestamp_ = timestamp;
@@ -126,7 +126,7 @@
     dialog_first_shown_ = true;
   }
 
-  void DialogUpdated(ContentAnalysisDialog* dialog,
+  void DialogUpdated(ContentAnalysisDialogController* dialog,
                      FinalContentAnalysisResult result) override {
     DCHECK_EQ(dialog, dialog_);
     dialog_updated_timestamp_ = base::TimeTicks::Now();
@@ -136,7 +136,8 @@
 
     // The dialog should only be updated after an initial delay.
     base::TimeDelta delay = dialog_updated_timestamp_ - first_shown_timestamp_;
-    EXPECT_GE(delay, ContentAnalysisDialog::GetMinimumPendingDialogTime());
+    EXPECT_GE(delay,
+              ContentAnalysisDialogController::GetMinimumPendingDialogTime());
 
     // The dialog can only be updated to the success or failure case.
     EXPECT_TRUE(dialog_->is_result());
@@ -178,7 +179,7 @@
     dialog_updated_ = true;
   }
 
-  void CancelDialogAndDeleteCalled(ContentAnalysisDialog* dialog,
+  void CancelDialogAndDeleteCalled(ContentAnalysisDialogController* dialog,
                                    FinalContentAnalysisResult result) override {
     EXPECT_EQ(dialog_, dialog);
     EXPECT_NE(result, FinalContentAnalysisResult::FAIL_CLOSED);
@@ -189,7 +190,7 @@
     }
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     dtor_called_timestamp_ = base::TimeTicks::Now();
 
     EXPECT_TRUE(dialog);
@@ -206,7 +207,8 @@
         // The success dialog should stay open for some time.
         base::TimeDelta delay =
             dtor_called_timestamp_ - dialog_updated_timestamp_;
-        EXPECT_GE(delay, ContentAnalysisDialog::GetSuccessDialogTimeout());
+        EXPECT_GE(delay,
+                  ContentAnalysisDialogController::GetSuccessDialogTimeout());
 
         EXPECT_EQ(static_cast<int>(ui::mojom::DialogButton::kNone),
                   dialog_->buttons());
@@ -260,7 +262,7 @@
   raw_ptr<views::WebDialogView, DisableDanglingPtrDetection> view_ = nullptr;
   bool web_dialog_delegate_destroyed_ = false;
 
-  raw_ptr<ContentAnalysisDialog, DanglingUntriaged> dialog_;
+  raw_ptr<ContentAnalysisDialogController, DanglingUntriaged> dialog_;
 
   base::TimeTicks ctor_called_timestamp_;
   base::TimeTicks first_shown_timestamp_;
@@ -335,19 +337,19 @@
 // - The "CancelledByUser" metrics are recorded.
 class ContentAnalysisDialogCancelPendingScanBrowserTest
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver {
+      public ContentAnalysisDialogController::TestObserver {
  public:
   ContentAnalysisDialogCancelPendingScanBrowserTest() {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     // Simulate the user clicking "Cancel" after the dialog is first shown.
     dialog->CancelDialog();
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     // The test is over once the dialog is destroyed.
     CallQuitClosure();
   }
@@ -377,14 +379,14 @@
 //   warning.
 class ContentAnalysisDialogWarningBrowserTest
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver,
+      public ContentAnalysisDialogController::TestObserver,
       public testing::WithParamInterface<bool> {
  public:
   ContentAnalysisDialogWarningBrowserTest() {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     // The dialog is first shown in the pending state.
     ASSERT_TRUE(dialog->is_pending());
@@ -393,7 +395,7 @@
               static_cast<int>(ui::mojom::DialogButton::kCancel));
   }
 
-  void DialogUpdated(ContentAnalysisDialog* dialog,
+  void DialogUpdated(ContentAnalysisDialogController* dialog,
                      FinalContentAnalysisResult result) override {
     ASSERT_TRUE(dialog->is_warning());
 
@@ -405,7 +407,7 @@
     SimulateClickAndEndTest(dialog);
   }
 
-  void SimulateClickAndEndTest(ContentAnalysisDialog* dialog) {
+  void SimulateClickAndEndTest(ContentAnalysisDialogController* dialog) {
     if (user_bypasses_warning())
       dialog->AcceptDialog();
     else
@@ -425,18 +427,15 @@
 // - It shows the appropriate spinner depending on its state.
 class ContentAnalysisDialogAppearanceBrowserTest
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver,
+      public ContentAnalysisDialogController::TestObserver,
       public testing::WithParamInterface<
-          std::tuple<bool,
-                     bool,
-                     safe_browsing::DeepScanAccessPoint,
-                     bool>> {
+          std::tuple<bool, bool, safe_browsing::DeepScanAccessPoint, bool>> {
  public:
   ContentAnalysisDialogAppearanceBrowserTest() {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     // The dialog initially shows the pending message for the appropriate access
     // point and scan type.
@@ -466,7 +465,7 @@
     ASSERT_TRUE(dialog->GetSideIconSpinnerForTesting());
   }
 
-  void DialogUpdated(ContentAnalysisDialog* dialog,
+  void DialogUpdated(ContentAnalysisDialogController* dialog,
                      FinalContentAnalysisResult result) override {
     // The dialog shows the failure or success message for the appropriate
     // access point and scan type.
@@ -510,7 +509,7 @@
                      files_count);
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     // End the test once the dialog gets destroyed.
     CallQuitClosure();
   }
@@ -532,7 +531,7 @@
 class ContentAnalysisDialogCustomMessageBrowserTest
     : public ContentAnalysisDialogAppearanceBrowserTest {
  private:
-  void DialogUpdated(ContentAnalysisDialog* dialog,
+  void DialogUpdated(ContentAnalysisDialogController* dialog,
                      FinalContentAnalysisResult result) override {
     // The dialog shows the failure or success message for the appropriate
     // access point and scan type.
@@ -914,7 +913,7 @@
 class ContentAnalysisDialogPlainTests : public InProcessBrowserTest {
  public:
   ContentAnalysisDialogPlainTests() {
-    ContentAnalysisDialog::SetShowDialogDelayForTesting(kNoDelay);
+    ContentAnalysisDialogController::SetShowDialogDelayForTesting(kNoDelay);
   }
 
   void OpenCallback() { ++times_open_called_; }
@@ -1005,15 +1004,15 @@
     std::vector<std::pair<gfx::Range, GURL>> custom_rule_message_ranges_;
   };
 
-  ContentAnalysisDialog* dialog() { return dialog_; }
+  ContentAnalysisDialogController* dialog() { return dialog_; }
 
-  ContentAnalysisDialog* CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* CreateContentAnalysisDialog(
       std::unique_ptr<ContentAnalysisDelegateBase> delegate,
       FinalContentAnalysisResult result = FinalContentAnalysisResult::SUCCESS) {
     // This ctor ends up calling into constrained_window to show itself, in a
     // way that relinquishes its ownership. Because of this, new it here and
     // let it be deleted by the constrained_window code.
-    dialog_ = new ContentAnalysisDialog(
+    dialog_ = new ContentAnalysisDialogController(
         std::move(delegate), true,
         browser()->tab_strip_model()->GetActiveWebContents(),
         safe_browsing::DeepScanAccessPoint::DOWNLOAD, 0, result);
@@ -1025,17 +1024,17 @@
   int times_discard_called_ = 0;
 
  private:
-  raw_ptr<ContentAnalysisDialog, DanglingUntriaged> dialog_;
+  raw_ptr<ContentAnalysisDialogController, DanglingUntriaged> dialog_;
 };
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests, TestCustomMessage) {
-  enterprise_connectors::ContentAnalysisDialog::
+  enterprise_connectors::ContentAnalysisDialogController::
       SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
 
   std::unique_ptr<MockCustomMessageDelegate> delegate =
       std::make_unique<MockCustomMessageDelegate>(
           u"Test", GURL("https://www.example.com"));
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::move(delegate), FinalContentAnalysisResult::SUCCESS);
   dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
@@ -1044,14 +1043,14 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests, TestCustomRuleMessage) {
-  enterprise_connectors::ContentAnalysisDialog::
+  enterprise_connectors::ContentAnalysisDialogController::
       SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
 
   std::unique_ptr<MockCustomMessageDelegate> delegate =
       std::make_unique<MockCustomMessageDelegate>(
           u"Test", std::vector{std::pair{gfx::Range(0, 3),
                                          GURL("https://www.example.com")}});
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::move(delegate), FinalContentAnalysisResult::SUCCESS);
   dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
@@ -1061,12 +1060,12 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestBypassJustification) {
-  enterprise_connectors::ContentAnalysisDialog::
+  enterprise_connectors::ContentAnalysisDialogController::
       SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
 
   std::unique_ptr<MockDelegate> delegate = std::make_unique<MockDelegate>();
   delegate->SetBypassRequiresJustification(true);
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::move(delegate), FinalContentAnalysisResult::SUCCESS);
   dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
@@ -1078,12 +1077,12 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestBypassJustificationTooLongDisablesBypassButton) {
-  enterprise_connectors::ContentAnalysisDialog::
+  enterprise_connectors::ContentAnalysisDialogController::
       SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
 
   std::unique_ptr<MockDelegate> delegate = std::make_unique<MockDelegate>();
   delegate->SetBypassRequiresJustification(true);
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::move(delegate), FinalContentAnalysisResult::SUCCESS);
   dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
@@ -1099,7 +1098,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInDefaultPendingState) {
-  ContentAnalysisDialog* dialog =
+  ContentAnalysisDialogController* dialog =
       CreateContentAnalysisDialog(std::make_unique<MockDelegate>());
   EXPECT_TRUE(dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(
@@ -1109,7 +1108,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInWarningState) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::make_unique<MockDelegate>(), FinalContentAnalysisResult::WARNING);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
@@ -1119,7 +1118,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests, TestOpenInBlockState) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::make_unique<MockDelegate>(), FinalContentAnalysisResult::FAILURE);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
   EXPECT_EQ(dialog->GetMessageForTesting()->GetText(),
@@ -1130,7 +1129,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInFailClosedState) {
-  ContentAnalysisDialog* dialog =
+  ContentAnalysisDialogController* dialog =
       CreateContentAnalysisDialog(std::make_unique<MockDelegate>(),
                                   FinalContentAnalysisResult::FAIL_CLOSED);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
@@ -1140,7 +1139,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInLargeFilesState) {
-  ContentAnalysisDialog* dialog =
+  ContentAnalysisDialogController* dialog =
       CreateContentAnalysisDialog(std::make_unique<MockDelegate>(),
                                   FinalContentAnalysisResult::LARGE_FILES);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
@@ -1151,7 +1150,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestOpenInEncryptedFilesState) {
-  ContentAnalysisDialog* dialog =
+  ContentAnalysisDialogController* dialog =
       CreateContentAnalysisDialog(std::make_unique<MockDelegate>(),
                                   FinalContentAnalysisResult::ENCRYPTED_FILES);
   EXPECT_EQ(nullptr, dialog->GetSideIconSpinnerForTesting());
@@ -1162,7 +1161,7 @@
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestWithDownloadsDelegateBypassWarning) {
   download::MockDownloadItem mock_download_item;
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), true,
           base::BindOnce(&ContentAnalysisDialogPlainTests::OpenCallback,
@@ -1192,7 +1191,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestWithDownloadsDelegateDiscardWarning) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), false,
           base::BindOnce(&ContentAnalysisDialogPlainTests::OpenCallback,
@@ -1213,7 +1212,7 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        TestWithDownloadsDelegateDiscardBlock) {
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), false,
           base::BindOnce(&ContentAnalysisDialogPlainTests::OpenCallback,
@@ -1234,11 +1233,11 @@
 
 IN_PROC_BROWSER_TEST_F(ContentAnalysisDialogPlainTests,
                        BypassJustificationLabelAndTextareaAccessibility) {
-  enterprise_connectors::ContentAnalysisDialog::
+  enterprise_connectors::ContentAnalysisDialogController::
       SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
   std::unique_ptr<MockDelegate> delegate = std::make_unique<MockDelegate>();
   delegate->SetBypassRequiresJustification(true);
-  ContentAnalysisDialog* dialog = CreateContentAnalysisDialog(
+  ContentAnalysisDialogController* dialog = CreateContentAnalysisDialog(
       std::move(delegate), FinalContentAnalysisResult::SUCCESS);
   dialog->ShowResult(FinalContentAnalysisResult::WARNING);
 
@@ -1275,7 +1274,7 @@
       public testing::WithParamInterface<std::tuple<bool, bool, bool>> {
  public:
   ContentAnalysisDialogUiTest() {
-    ContentAnalysisDialog::SetShowDialogDelayForTesting(kNoDelay);
+    ContentAnalysisDialogController::SetShowDialogDelayForTesting(kNoDelay);
   }
 
   ContentAnalysisDialogUiTest(const ContentAnalysisDialogUiTest&) = delete;
@@ -1306,7 +1305,7 @@
     // This ctor ends up calling into constrained_window to show itself, in a
     // way that relinquishes its ownership. Because of this, new it here and
     // let it be deleted by the constrained_window code.
-    new ContentAnalysisDialog(
+    new ContentAnalysisDialogController(
         std::move(delegate), true,
         browser()->tab_strip_model()->GetActiveWebContents(),
         safe_browsing::DeepScanAccessPoint::DOWNLOAD, 1,
@@ -1329,7 +1328,7 @@
     : public ContentAnalysisDialogUiTest {
  public:
   ContentAnalysisDialogCustomRuleMessageUiTest() {
-    ContentAnalysisDialog::SetShowDialogDelayForTesting(kNoDelay);
+    ContentAnalysisDialogController::SetShowDialogDelayForTesting(kNoDelay);
   }
 
   // DialogBrowserTest:
@@ -1345,7 +1344,7 @@
     // This ctor ends up calling into constrained_window to show itself, in a
     // way that relinquishes its ownership. Because of this, new it here and
     // let it be deleted by the constrained_window code.
-    new ContentAnalysisDialog(
+    new ContentAnalysisDialogController(
         std::move(delegate), true,
         browser()->tab_strip_model()->GetActiveWebContents(),
         safe_browsing::DeepScanAccessPoint::DOWNLOAD, 1,
@@ -1370,23 +1369,23 @@
 
 class ContentAnalysisDialogDownloadObserverTest
     : public test::DeepScanningBrowserTestBase,
-      public ContentAnalysisDialog::TestObserver {
+      public ContentAnalysisDialogController::TestObserver {
  public:
   ContentAnalysisDialogDownloadObserverTest() {
-    ContentAnalysisDialog::SetObserverForTesting(this);
+    ContentAnalysisDialogController::SetObserverForTesting(this);
   }
 
-  void ConstructorCalled(ContentAnalysisDialog* dialog,
+  void ConstructorCalled(ContentAnalysisDialogController* dialog,
                          base::TimeTicks timestamp) override {
     ctor_called_ = true;
   }
 
-  void ViewsFirstShown(ContentAnalysisDialog* dialog,
+  void ViewsFirstShown(ContentAnalysisDialogController* dialog,
                        base::TimeTicks timestamp) override {
     std::move(views_first_shown_closure_).Run();
   }
 
-  void DestructorCalled(ContentAnalysisDialog* dialog) override {
+  void DestructorCalled(ContentAnalysisDialogController* dialog) override {
     std::move(dtor_called_closure_).Run();
   }
 
@@ -1402,7 +1401,7 @@
   base::RunLoop show_run_loop;
   views_first_shown_closure_ = show_run_loop.QuitClosure();
 
-  new ContentAnalysisDialog(
+  new ContentAnalysisDialogController(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), true,
           /* open_file_callback */ base::DoNothing(),
@@ -1429,7 +1428,7 @@
   base::RunLoop show_run_loop;
   views_first_shown_closure_ = show_run_loop.QuitClosure();
 
-  new ContentAnalysisDialog(
+  new ContentAnalysisDialogController(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), true,
           /* open_file_callback */ base::DoNothing(),
@@ -1465,7 +1464,7 @@
   base::RunLoop show_run_loop;
   views_first_shown_closure_ = show_run_loop.QuitClosure();
 
-  new ContentAnalysisDialog(
+  new ContentAnalysisDialogController(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           u"", u"", GURL(), true,
           /* open_file_callback */ base::DoNothing(),
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.cc
new file mode 100644
index 0000000..0ffaf2a9
--- /dev/null
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.cc
@@ -0,0 +1,1284 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
+
+#include <cstddef>
+#include <memory>
+
+#include "base/functional/bind.h"
+#include "base/memory/raw_ptr.h"
+#include "base/strings/string_number_conversions.h"
+#include "cc/paint/paint_flags.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_features.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
+#include "chrome/common/buildflags.h"
+#include "chrome/grit/generated_resources.h"
+#include "chrome/grit/theme_resources.h"
+#include "components/constrained_window/constrained_window_views.h"
+#include "components/guest_view/browser/guest_view_base.h"
+#include "components/strings/grit/components_strings.h"
+#include "components/vector_icons/vector_icons.h"
+#include "components/web_modal/web_contents_modal_dialog_manager.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/web_contents.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/metadata/metadata_header_macros.h"
+#include "ui/base/metadata/metadata_impl_macros.h"
+#include "ui/base/mojom/dialog_button.mojom.h"
+#include "ui/base/mojom/ui_base_types.mojom-shared.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/color/color_id.h"
+#include "ui/color/color_provider.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/color_palette.h"
+#include "ui/gfx/color_utils.h"
+#include "ui/gfx/image/image_skia.h"
+#include "ui/gfx/paint_vector_icon.h"
+#include "ui/gfx/text_constants.h"
+#include "ui/views/accessibility/view_accessibility.h"
+#include "ui/views/background.h"
+#include "ui/views/border.h"
+#include "ui/views/bubble/bubble_frame_view.h"
+#include "ui/views/controls/image_view.h"
+#include "ui/views/controls/link.h"
+#include "ui/views/controls/textarea/textarea.h"
+#include "ui/views/controls/throbber.h"
+#include "ui/views/layout/box_layout_view.h"
+#include "ui/views/layout/fill_layout.h"
+#include "ui/views/layout/layout_provider.h"
+#include "ui/views/layout/table_layout_view.h"
+
+#include "base/win/windows_h_disallowed.h"
+
+#if BUILDFLAG(ENABLE_GLIC)
+#include "base/metrics/histogram_functions.h"
+#include "chrome/browser/glic/host/guest_util.h"
+#include "chrome/browser/glic/widget/glic_widget.h"
+#include "components/guest_view/browser/guest_view_base.h"
+#endif
+
+namespace enterprise_connectors {
+
+namespace {
+
+constexpr base::TimeDelta kResizeAnimationDuration = base::Milliseconds(100);
+
+constexpr int kSideImageSize = 24;
+constexpr int kLineHeight = 20;
+
+constexpr gfx::Insets kSideImageInsets(8);
+constexpr int kMessageAndIconRowLeadingPadding = 32;
+constexpr int kMessageAndIconRowTrailingPadding = 48;
+constexpr int kSideIconBetweenChildSpacing = 16;
+constexpr int kPaddingBeforeBypassJustification = 16;
+
+constexpr size_t kMaxBypassJustificationLength = 280;
+
+// These time values are non-const in order to be overridden in test so they
+// complete faster.
+base::TimeDelta minimum_pending_dialog_time_ = base::Seconds(2);
+base::TimeDelta success_dialog_timeout_ = base::Seconds(1);
+base::TimeDelta show_dialog_delay_ = base::Seconds(1);
+
+// A simple background class to show a colored circle behind the side icon once
+// the scanning is done.
+// TODO(pkasting): This is copy and pasted from ThemedSolidBackground.  Merge.
+class CircleBackground : public views::Background {
+ public:
+  explicit CircleBackground(ui::ColorId color) { SetColor(color); }
+
+  CircleBackground(const CircleBackground&) = delete;
+  CircleBackground& operator=(const CircleBackground&) = delete;
+
+  ~CircleBackground() override = default;
+
+  // views::Background:
+  void Paint(gfx::Canvas* canvas, views::View* view) const override {
+    int radius = view->bounds().width() / 2;
+    gfx::PointF center(radius, radius);
+    cc::PaintFlags flags;
+    flags.setAntiAlias(true);
+    flags.setStyle(cc::PaintFlags::kFill_Style);
+    flags.setColor(color().ResolveToSkColor(view->GetColorProvider()));
+    canvas->DrawCircle(center, radius, flags);
+  }
+
+  void OnViewThemeChanged(views::View* view) override { view->SchedulePaint(); }
+};
+
+gfx::Rect GetDialogBounds(content::WebContents* contents,
+                          const gfx::Rect& current_widget_bounds) {
+  gfx::Rect rect = contents->GetContainerBounds();
+
+  // This will show the dialog right above the top of the contents.
+  rect.set_y(rect.y() - 40);
+#if BUILDFLAG(ENABLE_GLIC)
+  if (glic::IsGlicWebUI(contents)) {
+    // This will show the dialog right below the "header" part of Glic.
+    rect.set_y(rect.y() + 80);
+  }
+#endif  // BUILDFLAG(ENABLE_GLIC)
+
+  rect.set_x(rect.x() + (rect.width() / 2) -
+             (current_widget_bounds.width() / 2));
+
+  return rect;
+}
+
+ContentAnalysisDialogController::TestObserver* observer_for_testing = nullptr;
+
+}  // namespace
+
+// View classes used to override OnThemeChanged and update the sub-views to the
+// new theme.
+
+class DeepScanningBaseView {
+ public:
+  explicit DeepScanningBaseView(ContentAnalysisDialogController* dialog)
+      : dialog_(dialog) {}
+  ContentAnalysisDialogController* dialog() { return dialog_; }
+
+ protected:
+  raw_ptr<ContentAnalysisDialogController, DanglingUntriaged> dialog_;
+};
+
+class DeepScanningTopImageView : public DeepScanningBaseView,
+                                 public views::ImageView {
+  METADATA_HEADER(DeepScanningTopImageView, views::ImageView)
+
+ public:
+  using DeepScanningBaseView::DeepScanningBaseView;
+
+  void Update() {
+    if (!GetWidget()) {
+      return;
+    }
+    SetImage(dialog()->GetTopImage());
+  }
+
+ protected:
+  void OnThemeChanged() override {
+    views::ImageView::OnThemeChanged();
+    Update();
+  }
+};
+
+BEGIN_METADATA(DeepScanningTopImageView)
+END_METADATA
+
+class DeepScanningSideIconImageView : public DeepScanningBaseView,
+                                      public views::ImageView {
+  METADATA_HEADER(DeepScanningSideIconImageView, views::ImageView)
+
+ public:
+  using DeepScanningBaseView::DeepScanningBaseView;
+
+  void Update() {
+    if (!GetWidget()) {
+      return;
+    }
+    SetImage(ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon,
+                                            dialog()->GetSideImageLogoColor(),
+                                            kSideImageSize));
+    if (dialog()->is_result()) {
+      SetBackground(std::make_unique<CircleBackground>(
+          dialog()->GetSideImageBackgroundColor()));
+    }
+  }
+
+ protected:
+  void OnThemeChanged() override {
+    views::ImageView::OnThemeChanged();
+    Update();
+  }
+};
+
+BEGIN_METADATA(DeepScanningSideIconImageView)
+END_METADATA
+
+class DeepScanningSideIconSpinnerView : public DeepScanningBaseView,
+                                        public views::Throbber {
+  METADATA_HEADER(DeepScanningSideIconSpinnerView, views::Throbber)
+
+ public:
+  using DeepScanningBaseView::DeepScanningBaseView;
+
+  void Update() {
+    if (dialog()->is_result()) {
+      parent()->RemoveChildView(this);
+      delete this;
+    }
+  }
+
+ protected:
+  void OnThemeChanged() override {
+    views::Throbber::OnThemeChanged();
+    Update();
+  }
+};
+
+BEGIN_METADATA(DeepScanningSideIconSpinnerView)
+END_METADATA
+
+// static
+base::TimeDelta ContentAnalysisDialogController::GetMinimumPendingDialogTime() {
+  return minimum_pending_dialog_time_;
+}
+
+// static
+base::TimeDelta ContentAnalysisDialogController::GetSuccessDialogTimeout() {
+  return success_dialog_timeout_;
+}
+
+// static
+base::TimeDelta ContentAnalysisDialogController::ShowDialogDelay() {
+  return show_dialog_delay_;
+}
+
+ContentAnalysisDialogController::ContentAnalysisDialogController(
+    std::unique_ptr<ContentAnalysisDelegateBase> delegate,
+    bool is_cloud,
+    content::WebContents* contents,
+    safe_browsing::DeepScanAccessPoint access_point,
+    int files_count,
+    FinalContentAnalysisResult final_result,
+    download::DownloadItem* download_item)
+    : content::WebContentsObserver(contents),
+      delegate_base_(std::move(delegate)),
+      final_result_(final_result),
+      access_point_(std::move(access_point)),
+      files_count_(files_count),
+      download_item_(download_item),
+      is_cloud_(is_cloud) {
+  DVLOG(1) << __func__;
+  DCHECK(delegate_base_);
+  SetOwnedByWidget(OwnedByWidgetPassKey());
+  set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric(
+      views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH));
+
+  if (observer_for_testing) {
+    observer_for_testing->ConstructorCalled(this, base::TimeTicks::Now());
+  }
+
+  if (final_result_ != FinalContentAnalysisResult::SUCCESS) {
+    UpdateStateFromFinalResult(final_result_);
+  }
+
+  SetupButtons();
+
+  if (download_item_) {
+    download_item_->AddObserver(this);
+  }
+
+  // Because the display of the dialog is delayed, it won't block UI
+  // interaction with the top level web contents until it is visible.  To block
+  // interaction as of now, ignore input events manually.
+  top_level_contents_ =
+      constrained_window::GetTopLevelWebContents(web_contents())->GetWeakPtr();
+
+  top_level_contents_->StoreFocus();
+  scoped_ignore_input_events_ =
+      top_level_contents_->IgnoreInputEvents(std::nullopt);
+
+  if (ShowDialogDelay().is_zero() || !is_pending()) {
+    DVLOG(1) << __func__ << ": Showing in ctor";
+    ShowDialogNow();
+  } else {
+    content::GetUIThreadTaskRunner({})->PostDelayedTask(
+        FROM_HERE,
+        base::BindOnce(&ContentAnalysisDialogController::ShowDialogNow,
+                       weak_ptr_factory_.GetWeakPtr()),
+        ShowDialogDelay());
+  }
+
+  if (is_warning() && bypass_requires_justification()) {
+    bypass_justification_text_length_->SetEnabledColor(
+        bypass_justification_text_length_->GetColorProvider()->GetColor(
+            ui::kColorAlertHighSeverity));
+  }
+}
+
+void ContentAnalysisDialogController::ShowDialogNow() {
+  if (will_be_deleted_soon_) {
+    DVLOG(1) << __func__ << ": aborting since dialog will be deleted soon";
+    return;
+  }
+
+// Glic port enabled for Mac only at the moment until fixed on Windows.
+// TODO(416748209): Follow up with full port of ContentAnalysisDialog to use
+// non web modals on both Mac and Windows for all sources.
+#if BUILDFLAG(ENABLE_GLIC) && BUILDFLAG(IS_MAC)
+  if (glic::IsGlicWebUI(top_level_contents_.get())) {
+    // make sure only one dialog is displayed at a time. If a dialog exists we
+    // just update the view.
+    if (contents_view_) {
+      return;
+    }
+    ShowNonTabDialogNow();
+    base::UmaHistogramEnumeration("Glic.Modal.DeepScan", access_point_);
+    return;
+  }
+#endif
+
+  auto* manager =
+      web_modal::WebContentsModalDialogManager::FromWebContents(web_contents());
+  if (!manager) {
+    // `manager` being null indicates that `web_contents()` doesn't correspond
+    // to a browser tab (ex: an extension background page reading the
+    // clipboard). In such a case, we don't show a dialog and instead simply
+    // accept/cancel the result immediately. See crbug.com/374120523 and
+    // crbug.com/388049470 for more context.
+    if (!is_pending()) {
+      CancelButtonCallback();
+    }
+    return;
+  }
+
+  // If the web contents is still valid when the delay timer goes off and the
+  // dialog has not yet been shown, show it now.
+  if (web_contents() && !contents_view_) {
+    DVLOG(1) << __func__ << ": first time";
+    first_shown_timestamp_ = base::TimeTicks::Now();
+    constrained_window::ShowWebModalDialogViews(this, web_contents());
+    if (observer_for_testing) {
+      observer_for_testing->ViewsFirstShown(this, first_shown_timestamp_);
+    }
+  }
+}
+
+void ContentAnalysisDialogController::ShowNonTabDialogNow() {
+  content::WebContents* top_web_contents =
+      guest_view::GuestViewBase::GetTopLevelWebContents(web_contents());
+  raw_ptr<views::Widget> dialog_widget =
+      views::DialogDelegate::CreateDialogWidget(
+          weak_ptr_factory_.GetWeakPtr().get(), gfx::NativeWindow(),
+          top_web_contents->GetNativeView());
+
+  dialog_widget->SetBounds(GetDialogBounds(
+      top_web_contents, dialog_widget->GetWindowBoundsInScreen()));
+
+  dialog_widget->Show();
+  if (observer_for_testing) {
+    observer_for_testing->ViewsFirstShown(this, first_shown_timestamp_);
+  }
+}
+
+std::u16string ContentAnalysisDialogController::GetWindowTitle() const {
+  return std::u16string();
+}
+
+void ContentAnalysisDialogController::AcceptButtonCallback() {
+  DCHECK(delegate_base_);
+  DCHECK(is_warning());
+  accepted_or_cancelled_ = true;
+  std::optional<std::u16string> justification = std::nullopt;
+  if (delegate_base_->BypassRequiresJustification() && bypass_justification_) {
+    justification = bypass_justification_->GetText();
+  }
+  delegate_base_->BypassWarnings(justification);
+}
+
+void ContentAnalysisDialogController::CancelButtonCallback() {
+  accepted_or_cancelled_ = true;
+  if (delegate_base_) {
+    delegate_base_->Cancel(is_warning());
+  }
+}
+
+void ContentAnalysisDialogController::LearnMoreLinkClickedCallback(
+    const ui::Event& event) {
+  DCHECK(has_learn_more_url());
+  web_contents()->OpenURL(
+      content::OpenURLParams((*delegate_base_->GetCustomLearnMoreUrl()),
+                             content::Referrer(),
+                             WindowOpenDisposition::NEW_FOREGROUND_TAB,
+                             ui::PAGE_TRANSITION_LINK, false),
+      /*navigation_handle_callback=*/{});
+}
+
+void ContentAnalysisDialogController::SuccessCallback() {
+#if defined(USE_AURA)
+  if (web_contents()) {
+    // It's possible focus has been lost and gained back incorrectly if the user
+    // clicked on the page between the time the scan started and the time the
+    // dialog closes. This results in the behaviour detailed in
+    // crbug.com/1139050. The fix is to preemptively take back focus when this
+    // dialog closes on its own.
+    scoped_ignore_input_events_.reset();
+    web_contents()->Focus();
+  }
+#endif
+}
+
+void ContentAnalysisDialogController::ContentsChanged(
+    views::Textfield* sender,
+    const std::u16string& new_contents) {
+  if (bypass_justification_text_length_) {
+    bypass_justification_text_length_->SetText(l10n_util::GetStringFUTF16(
+        IDS_DEEP_SCANNING_DIALOG_BYPASS_JUSTIFICATION_TEXT_LIMIT_LABEL,
+        base::NumberToString16(new_contents.size()),
+        base::NumberToString16(kMaxBypassJustificationLength)));
+  }
+
+  if (new_contents.size() == 0 ||
+      new_contents.size() > kMaxBypassJustificationLength) {
+    DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, false);
+    if (bypass_justification_text_length_) {
+      bypass_justification_text_length_->SetEnabledColor(
+          bypass_justification_text_length_->GetColorProvider()->GetColor(
+              ui::kColorAlertHighSeverity));
+    }
+  } else {
+    DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, true);
+    if (bypass_justification_text_length_ && justification_text_label_) {
+      bypass_justification_text_length_->SetEnabledColor(
+          justification_text_label_->GetEnabledColor());
+    }
+  }
+}
+
+bool ContentAnalysisDialogController::ShouldShowCloseButton() const {
+  return false;
+}
+
+views::View* ContentAnalysisDialogController::GetContentsView() {
+  if (!contents_view_) {
+    DVLOG(1) << __func__ << ": first time";
+    contents_view_ = new views::BoxLayoutView();  // Owned by caller.
+    contents_view_->SetOrientation(views::BoxLayout::Orientation::kVertical);
+    // Padding to distance the top image from the icon and message.
+    contents_view_->SetBetweenChildSpacing(16);
+
+    // padding to distance the message from the button(s).  When doing a cloud
+    // based analysis, a top image is added to the view and the top padding
+    // looks fine.  When not doing a cloud-based analysis set the top padding
+    // to make things look nice.
+    contents_view_->SetInsideBorderInsets(
+        gfx::Insets::TLBR(is_cloud_ ? 0 : 24, 0, 10, 0));
+
+    // Add the top image for cloud-based analysis.
+    if (is_cloud_) {
+      image_ = contents_view_->AddChildView(
+          std::make_unique<DeepScanningTopImageView>(this));
+    }
+
+    // Create message area layout.
+    contents_layout_ = contents_view_->AddChildView(
+        std::make_unique<views::TableLayoutView>());
+    contents_layout_
+        ->AddPaddingColumn(views::TableLayout::kFixedSize,
+                           kMessageAndIconRowLeadingPadding)
+        .AddColumn(views::LayoutAlignment::kStart,
+                   views::LayoutAlignment::kStart,
+                   views::TableLayout::kFixedSize,
+                   views::TableLayout::ColumnSize::kUsePreferred, 0, 0)
+        .AddPaddingColumn(views::TableLayout::kFixedSize,
+                          kSideIconBetweenChildSpacing)
+        .AddColumn(views::LayoutAlignment::kStretch,
+                   views::LayoutAlignment::kStretch, 1.0f,
+                   views::TableLayout::ColumnSize::kUsePreferred, 0, 0)
+        .AddPaddingColumn(views::TableLayout::kFixedSize,
+                          kMessageAndIconRowTrailingPadding)
+        // There is initially only 1 row in the table for the side icon and
+        // message. Rows are added later when other elements are needed.
+        .AddRows(1, views::TableLayout::kFixedSize);
+
+    // Add the side icon.
+    contents_layout_->AddChildView(CreateSideIcon());
+
+    // Add the message.
+    message_ =
+        contents_layout_->AddChildView(std::make_unique<views::StyledLabel>());
+    message_->SetText(GetDialogMessage());
+    message_->SetLineHeight(kLineHeight);
+
+    // Calculate the width of the side icon column with insets and padding.
+    int side_icon_column_width = kMessageAndIconRowLeadingPadding +
+                                 kSideImageInsets.width() + kSideImageSize +
+                                 kSideIconBetweenChildSpacing;
+    message_->SizeToFit(fixed_width() - side_icon_column_width -
+                        kMessageAndIconRowTrailingPadding);
+    message_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+
+    if (!is_pending()) {
+      UpdateDialog();
+    }
+  }
+
+  return contents_view_;
+}
+
+views::Widget* ContentAnalysisDialogController::GetWidget() {
+  return contents_view_->GetWidget();
+}
+
+const views::Widget* ContentAnalysisDialogController::GetWidget() const {
+  return contents_view_->GetWidget();
+}
+
+ui::mojom::ModalType ContentAnalysisDialogController::GetModalType() const {
+  return ui::mojom::ModalType::kChild;
+}
+
+void ContentAnalysisDialogController::WebContentsDestroyed() {
+  // If WebContents are destroyed, then the scan results don't matter so the
+  // delegate can be destroyed as well.
+  CancelDialogWithoutCallback();
+}
+
+void ContentAnalysisDialogController::PrimaryPageChanged(content::Page& page) {
+  // If the primary page is changed, the scan results would be stale. So the
+  // delegate should be reset and dialog should be cancelled.
+  CancelDialogWithoutCallback();
+}
+
+void ContentAnalysisDialogController::ShowResult(
+    FinalContentAnalysisResult result) {
+  DCHECK(is_pending());
+
+  UpdateStateFromFinalResult(result);
+
+  // Update the pending dialog only after it has been shown for a minimum amount
+  // of time.
+  base::TimeDelta time_shown = base::TimeTicks::Now() - first_shown_timestamp_;
+  if (time_shown >= GetMinimumPendingDialogTime()) {
+    UpdateDialog();
+  } else {
+    content::GetUIThreadTaskRunner({})->PostDelayedTask(
+        FROM_HERE,
+        base::BindOnce(&ContentAnalysisDialogController::UpdateDialog,
+                       weak_ptr_factory_.GetWeakPtr()),
+        GetMinimumPendingDialogTime() - time_shown);
+  }
+}
+
+ContentAnalysisDialogController::~ContentAnalysisDialogController() {
+  DVLOG(1) << __func__;
+
+  if (bypass_justification_) {
+    bypass_justification_->SetController(nullptr);
+  }
+
+  if (top_level_contents_) {
+    scoped_ignore_input_events_.reset();
+    top_level_contents_->RestoreFocus();
+  }
+  if (download_item_) {
+    download_item_->RemoveObserver(this);
+  }
+  if (observer_for_testing) {
+    observer_for_testing->DestructorCalled(this);
+  }
+}
+
+void ContentAnalysisDialogController::UpdateStateFromFinalResult(
+    FinalContentAnalysisResult final_result) {
+  final_result_ = final_result;
+  switch (final_result_) {
+    case FinalContentAnalysisResult::ENCRYPTED_FILES:
+    case FinalContentAnalysisResult::LARGE_FILES:
+    case FinalContentAnalysisResult::FAIL_CLOSED:
+    case FinalContentAnalysisResult::FAILURE:
+      dialog_state_ = State::FAILURE;
+      break;
+    case FinalContentAnalysisResult::SUCCESS:
+      dialog_state_ = State::SUCCESS;
+      break;
+    case FinalContentAnalysisResult::WARNING:
+      dialog_state_ = State::WARNING;
+      break;
+  }
+}
+
+void ContentAnalysisDialogController::UpdateViews() {
+  DCHECK(contents_view_);
+
+  // Update the style of the dialog to reflect the new state.
+  if (image_) {
+    image_->Update();
+  }
+
+  side_icon_image_->Update();
+
+  // There isn't always a spinner, for instance when the dialog is started in a
+  // state other than the "pending" state.
+  if (side_icon_spinner_) {
+    // Calling `Update` leads to the deletion of the spinner.
+    side_icon_spinner_.ExtractAsDangling()->Update();
+  }
+
+  // Update the buttons.
+  SetupButtons();
+
+  // Update the message's text, and send an alert for screen readers since the
+  // text changed.
+  std::u16string new_message = GetDialogMessage();
+  UpdateDialogMessage(std::move(new_message));
+
+  // Add bypass justification views when required on warning verdicts. The order
+  // of the helper functions needs to be preserved for them to appear in the
+  // correct order.
+  if (is_warning() && bypass_requires_justification()) {
+    AddJustificationTextLabelToDialog();
+    AddJustificationTextAreaToDialog();
+    AddJustificationTextLengthToDialog();
+  }
+}
+
+bool ContentAnalysisDialogController::ShouldShowDialogNow() {
+  DCHECK(!is_pending());
+  // If the final result is fail closed, display ui regardless of cloud or local
+  // analysis.
+  if (final_result_ == FinalContentAnalysisResult::FAIL_CLOSED) {
+    DVLOG(1) << __func__ << ": show fail-closed ui.";
+    return true;
+  }
+  // Otherwise, show dialog now only if it is cloud analysis and the verdict is
+  // not success.
+  return is_cloud_ && !is_success();
+}
+
+void ContentAnalysisDialogController::UpdateDialog() {
+  if (!contents_view_ && !is_pending()) {
+    // If the dialog is no longer pending, a final verdict was received before
+    // the dialog was displayed.  Show the verdict right away only if
+    // ShouldShowDialogNow() returns true.
+    ShouldShowDialogNow() ? ShowDialogNow() : CancelDialogAndDelete();
+    return;
+  }
+
+  DCHECK(is_result());
+
+  int height_before = contents_view_->GetPreferredSize().height();
+
+  UpdateViews();
+
+  // Resize the dialog's height. This is needed since the text might take more
+  // lines after changing.
+  int height_after = contents_view_->GetHeightForWidth(contents_view_->width());
+
+  int height_to_add = std::max(height_after - height_before, 0);
+  if (height_to_add > 0 && GetWidget()) {
+    Resize(height_to_add);
+  }
+
+  // Update the dialog.
+  DialogDelegate::DialogModelChanged();
+  contents_view_->InvalidateLayout();
+
+  // Schedule the dialog to close itself in the success case.
+  if (is_success()) {
+    content::GetUIThreadTaskRunner({})->PostDelayedTask(
+        FROM_HERE,
+        base::BindOnce(&DialogDelegate::CancelDialog,
+                       weak_ptr_factory_.GetWeakPtr()),
+        GetSuccessDialogTimeout());
+  }
+
+  if (observer_for_testing) {
+    observer_for_testing->DialogUpdated(this, final_result_);
+  }
+
+  // Cancel the dialog as it is updated in tests in the failure dialog case.
+  // This is necessary to terminate tests that end when the dialog is closed.
+  if (observer_for_testing && is_failure()) {
+    CancelDialog();
+  }
+}
+
+void ContentAnalysisDialogController::Resize(int height_to_add) {
+  // Only resize if the dialog is updated to show a result.
+  DCHECK(is_result());
+  views::Widget* widget = GetWidget();
+  DCHECK(widget);
+
+  gfx::Rect dialog_rect = widget->GetContentsView()->GetContentsBounds();
+  int new_height = dialog_rect.height();
+
+  // Remove the button row's height if it's removed in the success case.
+  if (is_success()) {
+    DCHECK(contents_view_->parent());
+    DCHECK_EQ(contents_view_->parent()->children().size(), 2ul);
+    DCHECK_EQ(contents_view_->parent()->children()[0], contents_view_);
+
+    views::View* button_row_view = contents_view_->parent()->children()[1];
+    new_height -= button_row_view->GetContentsBounds().height();
+  }
+
+  // Apply the message lines delta.
+  new_height += height_to_add;
+  dialog_rect.set_height(new_height);
+
+  // Setup the animation.
+  bounds_animator_ =
+      std::make_unique<views::BoundsAnimator>(widget->GetRootView());
+  bounds_animator_->SetAnimationDuration(kResizeAnimationDuration);
+
+  DCHECK(widget->GetRootView());
+  views::View* view_to_resize = widget->GetRootView()->children()[0];
+
+  // Start the animation.
+  bounds_animator_->AnimateViewTo(view_to_resize, dialog_rect);
+
+  // Change the widget's size.
+  gfx::Size new_size = view_to_resize->size();
+  new_size.set_height(new_height);
+  widget->SetSize(new_size);
+}
+
+void ContentAnalysisDialogController::SetupButtons() {
+  if (is_warning()) {
+    // Include the Ok and Cancel buttons if there is a bypassable warning.
+    DialogDelegate::SetButtons(
+        static_cast<int>(ui::mojom::DialogButton::kCancel) |
+        static_cast<int>(ui::mojom::DialogButton::kOk));
+    DialogDelegate::SetDefaultButton(
+        static_cast<int>(ui::mojom::DialogButton::kCancel));
+
+    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kCancel,
+                                   GetCancelButtonText());
+    DialogDelegate::SetCancelCallback(
+        base::BindOnce(&ContentAnalysisDialogController::CancelButtonCallback,
+                       weak_ptr_factory_.GetWeakPtr()));
+
+    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kOk,
+                                   GetBypassWarningButtonText());
+    DialogDelegate::SetAcceptCallback(
+        base::BindOnce(&ContentAnalysisDialogController::AcceptButtonCallback,
+                       weak_ptr_factory_.GetWeakPtr()));
+
+    if (delegate_base_->BypassRequiresJustification()) {
+      DialogDelegate::SetButtonEnabled(ui::mojom::DialogButton::kOk, false);
+    }
+  } else if (is_failure() || is_pending()) {
+    // Include the Cancel button when the scan is pending or failing.
+    DialogDelegate::SetButtons(
+        static_cast<int>(ui::mojom::DialogButton::kCancel));
+    DialogDelegate::SetDefaultButton(
+        static_cast<int>(ui::mojom::DialogButton::kNone));
+
+    DialogDelegate::SetButtonLabel(ui::mojom::DialogButton::kCancel,
+                                   GetCancelButtonText());
+    DialogDelegate::SetCancelCallback(
+        base::BindOnce(&ContentAnalysisDialogController::CancelButtonCallback,
+                       weak_ptr_factory_.GetWeakPtr()));
+  } else {
+    // Include no buttons otherwise.
+    DialogDelegate::SetButtons(
+        static_cast<int>(ui::mojom::DialogButton::kNone));
+    DialogDelegate::SetCancelCallback(
+        base::BindOnce(&ContentAnalysisDialogController::SuccessCallback,
+                       weak_ptr_factory_.GetWeakPtr()));
+  }
+}
+
+std::u16string ContentAnalysisDialogController::GetDialogMessage() const {
+  switch (dialog_state_) {
+    case State::PENDING:
+      return GetPendingMessage();
+    case State::FAILURE:
+      return GetFailureMessage();
+    case State::SUCCESS:
+      return GetSuccessMessage();
+    case State::WARNING:
+      return GetWarningMessage();
+  }
+}
+
+std::u16string ContentAnalysisDialogController::GetCancelButtonText() const {
+  int text_id;
+  auto overriden_text = delegate_base_->OverrideCancelButtonText();
+  if (overriden_text) {
+    return overriden_text.value();
+  }
+
+  switch (dialog_state_) {
+    case State::SUCCESS:
+      NOTREACHED();
+    case State::PENDING:
+      text_id = IDS_DEEP_SCANNING_DIALOG_CANCEL_UPLOAD_BUTTON;
+      break;
+    case State::FAILURE:
+      text_id = IDS_CLOSE;
+      break;
+    case State::WARNING:
+      text_id = IDS_DEEP_SCANNING_DIALOG_CANCEL_WARNING_BUTTON;
+      break;
+  }
+  return l10n_util::GetStringUTF16(text_id);
+}
+
+std::u16string ContentAnalysisDialogController::GetBypassWarningButtonText()
+    const {
+  DCHECK(is_warning());
+  return l10n_util::GetStringUTF16(IDS_DEEP_SCANNING_DIALOG_PROCEED_BUTTON);
+}
+
+std::unique_ptr<views::View> ContentAnalysisDialogController::CreateSideIcon() {
+  // The icon left of the text has the appearance of a blue "Enterprise" logo
+  // with a spinner when the scan is pending.
+  auto icon = std::make_unique<views::View>();
+  icon->SetLayoutManager(std::make_unique<views::FillLayout>());
+
+  auto side_image = std::make_unique<DeepScanningSideIconImageView>(this);
+  side_image->SetImage(ui::ImageModel::FromVectorIcon(
+      vector_icons::kBusinessIcon, gfx::kPlaceholderColor, kSideImageSize));
+  side_image->SetBorder(views::CreateEmptyBorder(kSideImageInsets));
+  side_icon_image_ = icon->AddChildView(std::move(side_image));
+
+  // Add a spinner if the scan result is pending.
+  if (is_pending()) {
+    auto spinner = std::make_unique<DeepScanningSideIconSpinnerView>(this);
+    spinner->Start();
+    side_icon_spinner_ = icon->AddChildView(std::move(spinner));
+  }
+
+  return icon;
+}
+
+ui::ColorId ContentAnalysisDialogController::GetSideImageBackgroundColor()
+    const {
+  DCHECK(is_result());
+  DCHECK(contents_view_);
+
+  switch (dialog_state_) {
+    case State::PENDING:
+      NOTREACHED();
+    case State::SUCCESS:
+      return ui::kColorAccent;
+    case State::FAILURE:
+      return ui::kColorAlertHighSeverity;
+    case State::WARNING:
+      return ui::kColorAlertMediumSeverityIcon;
+  }
+}
+
+int ContentAnalysisDialogController::GetTopImageId(bool use_dark) const {
+  if (use_dark) {
+    switch (dialog_state_) {
+      case State::PENDING:
+        return IDR_UPLOAD_SCANNING_DARK;
+      case State::SUCCESS:
+        return IDR_UPLOAD_SUCCESS_DARK;
+      case State::FAILURE:
+        return IDR_UPLOAD_VIOLATION_DARK;
+      case State::WARNING:
+        return IDR_UPLOAD_WARNING_DARK;
+    }
+  } else {
+    switch (dialog_state_) {
+      case State::PENDING:
+        return IDR_UPLOAD_SCANNING;
+      case State::SUCCESS:
+        return IDR_UPLOAD_SUCCESS;
+      case State::FAILURE:
+        return IDR_UPLOAD_VIOLATION;
+      case State::WARNING:
+        return IDR_UPLOAD_WARNING;
+    }
+  }
+}
+
+std::u16string ContentAnalysisDialogController::GetPendingMessage() const {
+  DCHECK(is_pending());
+  if (is_print_scan()) {
+    return l10n_util::GetStringUTF16(
+        IDS_DEEP_SCANNING_DIALOG_PRINT_PENDING_MESSAGE);
+  }
+
+  return l10n_util::GetPluralStringFUTF16(
+      IDS_DEEP_SCANNING_DIALOG_UPLOAD_PENDING_MESSAGE, files_count_);
+}
+
+std::u16string ContentAnalysisDialogController::GetFailureMessage() const {
+  DCHECK(is_failure());
+
+  // If the admin has specified a custom message for this failure, it takes
+  // precedence over the generic ones.
+  if (has_custom_message()) {
+    return GetCustomMessage();
+  }
+
+  if (final_result_ == FinalContentAnalysisResult::FAIL_CLOSED) {
+    DVLOG(1) << __func__ << ": display fail-closed message.";
+    return l10n_util::GetStringUTF16(
+        IDS_DEEP_SCANNING_DIALOG_UPLOAD_FAIL_CLOSED_MESSAGE);
+  }
+
+  if (final_result_ == FinalContentAnalysisResult::LARGE_FILES) {
+    if (is_print_scan()) {
+      return l10n_util::GetStringUTF16(
+          IDS_DEEP_SCANNING_DIALOG_LARGE_PRINT_FAILURE_MESSAGE);
+    }
+    return l10n_util::GetPluralStringFUTF16(
+        IDS_DEEP_SCANNING_DIALOG_LARGE_FILE_FAILURE_MESSAGE, files_count_);
+  }
+
+  if (final_result_ == FinalContentAnalysisResult::ENCRYPTED_FILES) {
+    return l10n_util::GetPluralStringFUTF16(
+        IDS_DEEP_SCANNING_DIALOG_ENCRYPTED_FILE_FAILURE_MESSAGE, files_count_);
+  }
+
+  if (is_print_scan()) {
+    return l10n_util::GetStringUTF16(
+        IDS_DEEP_SCANNING_DIALOG_PRINT_WARNING_MESSAGE);
+  }
+
+  return l10n_util::GetPluralStringFUTF16(
+      IDS_DEEP_SCANNING_DIALOG_UPLOAD_FAILURE_MESSAGE, files_count_);
+}
+
+std::u16string ContentAnalysisDialogController::GetWarningMessage() const {
+  DCHECK(is_warning());
+
+  // If the admin has specified a custom message for this warning, it takes
+  // precedence over the generic one.
+  if (has_custom_message()) {
+    return GetCustomMessage();
+  }
+
+  if (is_print_scan()) {
+    return l10n_util::GetStringUTF16(
+        IDS_DEEP_SCANNING_DIALOG_PRINT_WARNING_MESSAGE);
+  }
+
+  return l10n_util::GetPluralStringFUTF16(
+      IDS_DEEP_SCANNING_DIALOG_UPLOAD_WARNING_MESSAGE, files_count_);
+}
+
+std::u16string ContentAnalysisDialogController::GetSuccessMessage() const {
+  DCHECK(is_success());
+  if (is_print_scan()) {
+    return l10n_util::GetStringUTF16(
+        IDS_DEEP_SCANNING_DIALOG_PRINT_SUCCESS_MESSAGE);
+  }
+  return l10n_util::GetPluralStringFUTF16(
+      IDS_DEEP_SCANNING_DIALOG_SUCCESS_MESSAGE, files_count_);
+}
+
+std::u16string ContentAnalysisDialogController::GetCustomMessage() const {
+  DCHECK(is_warning() || is_failure());
+  DCHECK(has_custom_message());
+  return *(delegate_base_->GetCustomMessage());
+}
+
+void ContentAnalysisDialogController::AddLearnMoreLinkToDialog() {
+  DCHECK(contents_view_);
+  DCHECK(contents_layout_);
+  DCHECK(is_warning() || is_failure());
+
+  // There is only ever up to one link in the dialog, so return early instead of
+  // adding another one.
+  if (learn_more_link_) {
+    return;
+  }
+
+  // Add a row for the new element, and add an empty view to skip the first
+  // column.
+  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
+  contents_layout_->AddChildView(std::make_unique<views::View>());
+
+  // Since `learn_more_link_` is not as wide as the column it's a part of,
+  // instead of being added directly to it, it has a parent with a BoxLayout so
+  // that its width corresponds to its own text size instead of the full column
+  // width.
+  views::View* learn_more_column =
+      contents_layout_->AddChildView(std::make_unique<views::View>());
+  learn_more_column->SetLayoutManager(std::make_unique<views::BoxLayout>());
+
+  learn_more_link_ = learn_more_column->AddChildView(
+      std::make_unique<views::Link>(l10n_util::GetStringUTF16(
+          IDS_DEEP_SCANNING_DIALOG_CUSTOM_MESSAGE_LEARN_MORE_LINK)));
+  learn_more_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  learn_more_link_->SetCallback(base::BindRepeating(
+      &ContentAnalysisDialogController::LearnMoreLinkClickedCallback,
+      base::Unretained(this)));
+}
+
+void ContentAnalysisDialogController::AddJustificationTextLabelToDialog() {
+  DCHECK(contents_view_);
+  DCHECK(contents_layout_);
+  DCHECK(is_warning());
+
+  // There is only ever up to one justification section in the dialog, so return
+  // early instead of adding another one.
+  if (justification_text_label_) {
+    return;
+  }
+
+  // Add a row for the new element, and add an empty view to skip the first
+  // column.
+  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
+  contents_layout_->AddChildView(std::make_unique<views::View>());
+
+  justification_text_label_ =
+      contents_layout_->AddChildView(std::make_unique<views::Label>());
+  justification_text_label_->SetText(
+      delegate_base_->GetBypassJustificationLabel());
+  justification_text_label_->SetBorder(views::CreateEmptyBorder(
+      gfx::Insets::TLBR(kPaddingBeforeBypassJustification, 0, 0, 0)));
+  justification_text_label_->SetLineHeight(kLineHeight);
+  justification_text_label_->SetMultiLine(true);
+  justification_text_label_->SetVerticalAlignment(gfx::ALIGN_MIDDLE);
+  justification_text_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+}
+
+void ContentAnalysisDialogController::AddJustificationTextAreaToDialog() {
+  DCHECK(contents_view_);
+  DCHECK(contents_layout_);
+  DCHECK(justification_text_label_);
+  DCHECK(is_warning());
+
+  // There is only ever up to one justification text box in the dialog, so
+  // return early instead of adding another one.
+  if (bypass_justification_) {
+    return;
+  }
+
+  // Add a row for the new element, and add an empty view to skip the first
+  // column.
+  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
+  contents_layout_->AddChildView(std::make_unique<views::View>());
+
+  bypass_justification_ =
+      contents_layout_->AddChildView(std::make_unique<views::Textarea>());
+  bypass_justification_->GetViewAccessibility().SetName(
+      *justification_text_label_);
+  bypass_justification_->SetController(this);
+}
+
+void ContentAnalysisDialogController::AddJustificationTextLengthToDialog() {
+  DCHECK(contents_view_);
+  DCHECK(contents_layout_);
+  DCHECK(is_warning());
+
+  // There is only ever up to one justification text length indicator in the
+  // dialog, so return early instead of adding another one.
+  if (bypass_justification_text_length_) {
+    return;
+  }
+
+  // Add a row for the new element, and add an empty view to skip the first
+  // column.
+  contents_layout_->AddRows(1, views::TableLayout::kFixedSize);
+  contents_layout_->AddChildView(std::make_unique<views::View>());
+
+  bypass_justification_text_length_ =
+      contents_layout_->AddChildView(std::make_unique<views::Label>());
+  bypass_justification_text_length_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  bypass_justification_text_length_->SetText(l10n_util::GetStringFUTF16(
+      IDS_DEEP_SCANNING_DIALOG_BYPASS_JUSTIFICATION_TEXT_LIMIT_LABEL,
+      base::NumberToString16(0),
+      base::NumberToString16(kMaxBypassJustificationLength)));
+
+  // Set the color to red initially because a 0 length message is invalid. Skip
+  // this if the color provider is unavailable.
+  if (bypass_justification_text_length_->GetColorProvider()) {
+    bypass_justification_text_length_->SetEnabledColor(
+        bypass_justification_text_length_->GetColorProvider()->GetColor(
+            ui::kColorAlertHighSeverity));
+  }
+}
+
+void ContentAnalysisDialogController::AddLinksToDialogMessage() {
+  if (!has_custom_message_ranges()) {
+    return;
+  }
+
+  std::vector<std::pair<gfx::Range, GURL>> ranges =
+      *(delegate_base_->GetCustomRuleMessageRanges());
+  for (const auto& range : ranges) {
+    if (!range.second.is_valid()) {
+      continue;
+    }
+    message_->AddStyleRange(
+        gfx::Range(range.first.start(), range.first.end()),
+        views::StyledLabel::RangeStyleInfo::CreateForLink(base::BindRepeating(
+            [](base::WeakPtr<content::WebContents> web_contents, GURL url,
+               const ui::Event& event) {
+              if (!web_contents) {
+                return;
+              }
+              web_contents->OpenURL(
+                  content::OpenURLParams(
+                      url, content::Referrer(),
+                      WindowOpenDisposition::NEW_FOREGROUND_TAB,
+                      ui::PAGE_TRANSITION_LINK,
+                      /*is_renderer_initiated=*/false),
+                  /*navigation_handle_callback=*/{});
+            },
+            web_contents()->GetWeakPtr(), range.second)));
+  }
+}
+
+void ContentAnalysisDialogController::UpdateDialogMessage(
+    std::u16string new_message) {
+  if ((is_failure() || is_warning()) && has_custom_message()) {
+    message_->SetText(new_message);
+    AddLinksToDialogMessage();
+    message_->GetViewAccessibility().AnnounceText(std::move(new_message));
+    if (has_learn_more_url()) {
+      AddLearnMoreLinkToDialog();
+    }
+  } else {
+    message_->SetText(new_message);
+    message_->GetViewAccessibility().AnnounceText(std::move(new_message));
+
+    // Add a "Learn More" link for warnings/failures when one is provided.
+    if ((is_failure() || is_warning()) && has_learn_more_url()) {
+      AddLearnMoreLinkToDialog();
+    }
+  }
+}
+
+bool ContentAnalysisDialogController::ShouldUseDarkTopImage() const {
+  return color_utils::IsDark(
+      contents_view_->GetColorProvider()->GetColor(ui::kColorDialogBackground));
+}
+
+ui::ImageModel ContentAnalysisDialogController::GetTopImage() const {
+  return ui::ImageModel::FromResourceId(GetTopImageId(ShouldUseDarkTopImage()));
+}
+
+bool ContentAnalysisDialogController::is_print_scan() const {
+  return access_point_ == safe_browsing::DeepScanAccessPoint::PRINT;
+}
+
+void ContentAnalysisDialogController::CancelDialogAndDelete() {
+  if (observer_for_testing) {
+    observer_for_testing->CancelDialogAndDeleteCalled(this, final_result_);
+  }
+
+  if (contents_view_) {
+    DVLOG(1) << __func__ << ": dialog will be canceled";
+    CancelDialog();
+  } else {
+    DVLOG(1) << __func__ << ": dialog will be deleted soon";
+    will_be_deleted_soon_ = true;
+    content::GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this);
+  }
+}
+
+ui::ColorId ContentAnalysisDialogController::GetSideImageLogoColor() const {
+  DCHECK(contents_view_);
+
+  switch (dialog_state_) {
+    case State::PENDING:
+      // In the dialog's pending state, the side image is just an enterprise
+      // logo surrounded by a throbber, so we use the throbber color for it.
+      return ui::kColorThrobber;
+    case State::SUCCESS:
+    case State::FAILURE:
+    case State::WARNING:
+      // In a result state, the side image is a circle colored with the result's
+      // color and an enterprise logo in front of it, so the logo should have
+      // the same color as the dialog's overall background.
+      return ui::kColorDialogBackground;
+  }
+}
+
+// static
+void ContentAnalysisDialogController::SetMinimumPendingDialogTimeForTesting(
+    base::TimeDelta delta) {
+  minimum_pending_dialog_time_ = delta;
+}
+
+// static
+void ContentAnalysisDialogController::SetSuccessDialogTimeoutForTesting(
+    base::TimeDelta delta) {
+  success_dialog_timeout_ = delta;
+}
+
+// static
+void ContentAnalysisDialogController::SetShowDialogDelayForTesting(
+    base::TimeDelta delta) {
+  show_dialog_delay_ = delta;
+}
+
+// static
+void ContentAnalysisDialogController::SetObserverForTesting(
+    TestObserver* observer) {
+  observer_for_testing = observer;
+}
+
+views::ImageView* ContentAnalysisDialogController::GetTopImageForTesting()
+    const {
+  return image_;
+}
+
+views::Throbber* ContentAnalysisDialogController::GetSideIconSpinnerForTesting()
+    const {
+  return side_icon_spinner_;
+}
+
+views::StyledLabel* ContentAnalysisDialogController::GetMessageForTesting()
+    const {
+  return message_;
+}
+
+views::Link* ContentAnalysisDialogController::GetLearnMoreLinkForTesting()
+    const {
+  return learn_more_link_;
+}
+
+views::Label*
+ContentAnalysisDialogController::GetBypassJustificationLabelForTesting() const {
+  return justification_text_label_;
+}
+
+views::Textarea*
+ContentAnalysisDialogController::GetBypassJustificationTextareaForTesting()
+    const {
+  return bypass_justification_;
+}
+
+views::Label*
+ContentAnalysisDialogController::GetJustificationTextLengthForTesting() const {
+  return bypass_justification_text_length_;
+}
+
+void ContentAnalysisDialogController::OnDownloadUpdated(
+    download::DownloadItem* download) {
+  if (download->GetDangerType() ==
+          download::DOWNLOAD_DANGER_TYPE_USER_VALIDATED &&
+      !accepted_or_cancelled_) {
+    // The user validated the verdict in another instance of
+    // `ContentAnalysisDialogController`, so this one is now pointless and can
+    // go away.
+    CancelDialogWithoutCallback();
+  }
+}
+
+void ContentAnalysisDialogController::OnDownloadOpened(
+    download::DownloadItem* download) {
+  if (!accepted_or_cancelled_) {
+    CancelDialogWithoutCallback();
+  }
+}
+
+void ContentAnalysisDialogController::OnDownloadDestroyed(
+    download::DownloadItem* download) {
+  if (!accepted_or_cancelled_) {
+    CancelDialogWithoutCallback();
+  }
+  download_item_ = nullptr;
+}
+
+void ContentAnalysisDialogController::CancelDialogWithoutCallback() {
+  // Reset `delegate` so no logic runs when the dialog is cancelled.
+  delegate_base_.reset(nullptr);
+
+  // view may be null if the dialog was delayed and never shown before the
+  // verdict is known.
+  if (contents_view_) {
+    CancelDialog();
+  }
+}
+
+}  // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h
new file mode 100644
index 0000000..1e9d344ba
--- /dev/null
+++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h
@@ -0,0 +1,381 @@
+// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_CONTROLLER_H_
+#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_CONTROLLER_H_
+
+#include <cstddef>
+#include <memory>
+
+#include "base/memory/raw_ptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/time/time.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate_base.h"
+#include "chrome/browser/enterprise/connectors/common.h"
+#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
+#include "components/download/public/common/download_item.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "ui/base/mojom/ui_base_types.mojom-shared.h"
+#include "ui/views/animation/bounds_animator.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/controls/styled_label.h"
+#include "ui/views/controls/textfield/textfield_controller.h"
+#include "ui/views/window/dialog_delegate.h"
+
+namespace content {
+class WebContents;
+}  // namespace content
+
+namespace views {
+class BoxLayoutView;
+class ImageView;
+class Label;
+class Link;
+class TableLayoutView;
+class Textarea;
+class Throbber;
+class Widget;
+}  // namespace views
+
+namespace enterprise_connectors {
+class DeepScanningTopImageView;
+class DeepScanningSideIconImageView;
+class DeepScanningSideIconSpinnerView;
+
+// Dialog shown for Deep Scanning to offer the possibility of cancelling the
+// upload to the user.
+class ContentAnalysisDialogController
+    : public views::DialogDelegate,
+      public content::WebContentsObserver,
+      public views::TextfieldController,
+      public download::DownloadItem::Observer {
+ public:
+  // TestObserver should be implemented by tests that need to track when certain
+  // ContentAnalysisDialogController functions are called. The test can add
+  // itself as an observer by using SetObserverForTesting.
+  class TestObserver {
+   public:
+    virtual ~TestObserver() = default;
+
+    // Called at the start of ContentAnalysisDialogController's constructor.
+    // `dialog` is a pointer to the newly constructed
+    // ContentAnalysisDialogController and should be kept in memory by the test
+    // in order to validate its state.
+    virtual void ConstructorCalled(ContentAnalysisDialogController* dialog,
+                                   base::TimeTicks timestamp) {}
+
+    // Called at the end of ContentAnalysisDialogController::Show. `timestamp`
+    // is the time used by ContentAnalysisDialogController to decide whether the
+    // pending state has been shown for long enough. The test can keep this time
+    // in memory and validate the pending time was sufficient in DialogUpdated.
+    virtual void ViewsFirstShown(ContentAnalysisDialogController* dialog,
+                                 base::TimeTicks timestamp) {}
+
+    // Called at the end of ContentAnalysisDialogController::UpdateDialog.
+    // `result` is the value that UpdatedDialog used to transition from the
+    // pending state to the success/failure/warning state.
+    virtual void DialogUpdated(ContentAnalysisDialogController* dialog,
+                               FinalContentAnalysisResult result) {}
+
+    // Called at the start of CancelDialogAndDelete(). `dialog` is a pointer
+    // that will soon be destructed. Along with `result`, it is used by the test
+    // to validate the dialog should be canceled or deleted.
+    virtual void CancelDialogAndDeleteCalled(
+        ContentAnalysisDialogController* dialog,
+        FinalContentAnalysisResult result) {}
+
+    // Called at the end of ContentAnalysisDialogController's destructor.
+    // `dialog` is a pointer to the ContentAnalysisDialogController being
+    // destructed. It can be used to compare it to the pointer obtained from
+    // ConstructorCalled to ensure which view is being destroyed.
+    virtual void DestructorCalled(ContentAnalysisDialogController* dialog) {}
+  };
+
+  static void SetObserverForTesting(TestObserver* observer);
+
+  static void SetMinimumPendingDialogTimeForTesting(base::TimeDelta delta);
+  static void SetSuccessDialogTimeoutForTesting(base::TimeDelta delta);
+  static void SetShowDialogDelayForTesting(base::TimeDelta delta);
+
+  static base::TimeDelta GetMinimumPendingDialogTime();
+  static base::TimeDelta GetSuccessDialogTimeout();
+  static base::TimeDelta ShowDialogDelay();
+
+  ContentAnalysisDialogController(
+      std::unique_ptr<ContentAnalysisDelegateBase> delegate,
+      bool is_cloud,
+      content::WebContents* web_contents,
+      safe_browsing::DeepScanAccessPoint access_point,
+      int files_count,
+      FinalContentAnalysisResult final_result =
+          FinalContentAnalysisResult::SUCCESS,
+      download::DownloadItem* download_item = nullptr);
+
+  // views::DialogDelegate:
+  std::u16string GetWindowTitle() const override;
+  bool ShouldShowCloseButton() const override;
+  views::View* GetContentsView() override;
+  views::Widget* GetWidget() override;
+  const views::Widget* GetWidget() const override;
+  ui::mojom::ModalType GetModalType() const override;
+
+  // content::WebContentsObserver:
+  void WebContentsDestroyed() override;
+  void PrimaryPageChanged(content::Page& page) override;
+
+  // Updates the dialog with the result, and simply delete it from memory if
+  // nothing should be shown.
+  void ShowResult(FinalContentAnalysisResult result);
+
+  // Accessors to simplify `dialog_state_` checking.
+  inline bool is_success() const { return dialog_state_ == State::SUCCESS; }
+
+  inline bool is_failure() const { return dialog_state_ == State::FAILURE; }
+
+  inline bool is_warning() const { return dialog_state_ == State::WARNING; }
+
+  inline bool is_result() const { return !is_pending(); }
+
+  inline bool is_pending() const { return dialog_state_ == State::PENDING; }
+
+  inline bool is_cloud() const { return is_cloud_; }
+
+  bool has_custom_message() const {
+    return delegate_base_->GetCustomMessage().has_value();
+  }
+
+  bool has_learn_more_url() const {
+    return delegate_base_->GetCustomLearnMoreUrl().has_value();
+  }
+
+  bool has_custom_message_ranges() const {
+    return delegate_base_->GetCustomRuleMessageRanges().has_value();
+  }
+
+  bool bypass_requires_justification() const {
+    return delegate_base_->BypassRequiresJustification();
+  }
+
+  // Cancels the dialog an schedules it for deletion if visible, otherwise
+  // simply deletes it soon.
+  void CancelDialogAndDelete();
+
+  // Returns the side image's logo color depending on `dialog_state_`.
+  ui::ColorId GetSideImageLogoColor() const;
+
+  // Returns the side image's background circle color depending on
+  // `dialog_state_`.
+  ui::ColorId GetSideImageBackgroundColor() const;
+
+  // Returns true if should use dark version of top image.
+  bool ShouldUseDarkTopImage() const;
+
+  // Returns the appropriate top image depending on `dialog_state_`.
+  ui::ImageModel GetTopImage() const;
+
+  // Accessors used to validate the views in tests.
+  views::ImageView* GetTopImageForTesting() const;
+  views::Throbber* GetSideIconSpinnerForTesting() const;
+  views::StyledLabel* GetMessageForTesting() const;
+  views::Link* GetLearnMoreLinkForTesting() const;
+  views::Label* GetBypassJustificationLabelForTesting() const;
+  views::Textarea* GetBypassJustificationTextareaForTesting() const;
+  views::Label* GetJustificationTextLengthForTesting() const;
+
+ private:
+  // Friend the unit test class for this so it can call the private dtor.
+  friend class ContentAnalysisDialogPlainTest;
+
+  // Friend to allow use of TaskRunner::DeleteSoon().
+  friend class base::DeleteHelper<ContentAnalysisDialogController>;
+
+  // Enum used to represent what the dialog is currently showing.
+  enum class State {
+    // The dialog is shown with an explanation that the scan is being performed
+    // and that the result is pending.
+    PENDING,
+
+    // The dialog is shown with a short message indicating that the scan was a
+    // success and that the user may proceed with their upload, drag-and-drop or
+    // paste.
+    SUCCESS,
+
+    // The dialog is shown with a message indicating that the scan was a failure
+    // and that the user may not proceed with their upload, drag-and-drop or
+    // paste.
+    FAILURE,
+
+    // The dialog is shown with a message indicating that the scan was a
+    // failure, but that the user may proceed with their upload, drag-and-drop
+    // or paste if they want to.
+    WARNING,
+  };
+
+  ~ContentAnalysisDialogController() override;
+
+  // Callback function of delayed timer to make the dialog visible.
+  void ShowDialogNow();
+  void ShowNonTabDialogNow();
+
+  void UpdateStateFromFinalResult(FinalContentAnalysisResult final_result);
+
+  // Updates the views in the dialog to put them in the correct state for
+  // `dialog_state_`. This doesn't trigger the same events/resizes as
+  // UpdateDialog(), and doesn't require the presence of a widget. This is safe
+  // to use in the first GetContentsView() call, before the dialog is shown.
+  void UpdateViews();
+
+  // Update the UI depending on `dialog_state_`. This also triggers resizes and
+  // fires some events. It's meant to be called to update the entire dialog when
+  // it's already showing.
+  // This function can only be called after the dialog widget is initialized.
+  void UpdateDialog();
+
+  // Helper function to determine whether dialog should be shown immediately.
+  bool ShouldShowDialogNow();
+
+  // Resizes the already shown dialog to accommodate changes in its content.
+  void Resize(int height_to_add);
+
+  // Setup the appropriate buttons depending on `dialog_state_`.
+  void SetupButtons();
+
+  // Returns a newly created side icon.
+  std::unique_ptr<views::View> CreateSideIcon();
+
+  // Returns the appropriate dialog message depending on `dialog_state_`.
+  std::u16string GetDialogMessage() const;
+
+  // Returns the text for the Cancel button depending on `dialog_state_`.
+  std::u16string GetCancelButtonText() const;
+
+  // Returns the text for the Ok button for the warning case.
+  std::u16string GetBypassWarningButtonText() const;
+
+  // Returns the appropriate top image ID depending on `dialog_state_`.
+  int GetTopImageId(bool use_dark) const;
+
+  // Returns the appropriate pending message depending on `files_count_`.
+  std::u16string GetPendingMessage() const;
+
+  // Returns the appropriate failure message depending on `final_result_` and
+  // `files_count_`.
+  std::u16string GetFailureMessage() const;
+
+  // Returns the appropriate warning message depending on `files_count_`.
+  std::u16string GetWarningMessage() const;
+
+  // Returns the appropriate success message depending on `files_count_`.
+  std::u16string GetSuccessMessage() const;
+
+  std::u16string GetCustomMessage() const;
+
+  // Helper methods to add views to `contents_view_` and `contents_layout_` that
+  // are not used for every state of the dialog.
+  void AddLearnMoreLinkToDialog();
+  void AddJustificationTextLabelToDialog();
+  void AddJustificationTextAreaToDialog();
+  void AddJustificationTextLengthToDialog();
+
+  // Helper that indicates if the dialog corresponds to a print scan.
+  bool is_print_scan() const;
+
+  // Helper methods to get the admin message shown in dialog.
+  void AddLinksToDialogMessage();
+  void UpdateDialogMessage(std::u16string new_message);
+
+  void AcceptButtonCallback();
+  void CancelButtonCallback();
+  void LearnMoreLinkClickedCallback(const ui::Event& event);
+
+  // This callback used by DialogDelegate::SetCancelCallback and is used to
+  // ensure the auto-closing success dialog handles focus correctly.
+  void SuccessCallback();
+
+  // views::TextfieldController:
+  void ContentsChanged(views::Textfield* sender,
+                       const std::u16string& new_contents) override;
+
+  // download::DownloadItem::Observer:
+  void OnDownloadUpdated(download::DownloadItem* download) override;
+  void OnDownloadOpened(download::DownloadItem* download) override;
+  void OnDownloadDestroyed(download::DownloadItem* download) override;
+
+  // Several conditions can lead to the dialog being no longer useful, so this
+  // method is shared for those different conditions to close the dialog.
+  void CancelDialogWithoutCallback();
+
+  std::unique_ptr<ContentAnalysisDelegateBase> delegate_base_;
+
+  // Views above the buttons. `contents_view_` owns every other view.
+  raw_ptr<views::BoxLayoutView> contents_view_ = nullptr;
+  raw_ptr<DeepScanningTopImageView> image_ = nullptr;
+  raw_ptr<DeepScanningSideIconImageView> side_icon_image_ = nullptr;
+  raw_ptr<DeepScanningSideIconSpinnerView> side_icon_spinner_ = nullptr;
+  raw_ptr<views::StyledLabel> message_ = nullptr;
+
+  // The following views are also owned by `contents_view_`, but remain nullptr
+  // if they aren't required to be initialized.
+  raw_ptr<views::Link> learn_more_link_ = nullptr;
+  raw_ptr<views::Label> justification_text_label_ = nullptr;
+  raw_ptr<views::Textarea> bypass_justification_ = nullptr;
+  raw_ptr<views::Label> bypass_justification_text_length_ = nullptr;
+
+  // Table layout owned by `contents_view_`.
+  raw_ptr<views::TableLayoutView> contents_layout_ = nullptr;
+
+  base::TimeTicks first_shown_timestamp_;
+
+  // Used to show the appropriate dialog depending on the scan's status.
+  State dialog_state_ = State::PENDING;
+
+  // Used to show the appropriate message.
+  FinalContentAnalysisResult final_result_;
+
+  // Used to animate dialog height changes.
+  std::unique_ptr<views::BoundsAnimator> bounds_animator_;
+
+  // The access point that caused this dialog to open. This changes what text
+  // and top image are shown to the user.
+  safe_browsing::DeepScanAccessPoint access_point_;
+
+  // Indicates whether the scan being done is for files (files_count_>0) or for
+  // text (files_count_==0). This changes what text and top image are shown to
+  // the user.
+  int files_count_;
+
+  // `DownloadItem` for dialogs corresponding to a download with a reviewable
+  // verdict. nullptr otherwise.
+  raw_ptr<download::DownloadItem> download_item_ = nullptr;
+
+  // Set to true once the dialog is either accepted or cancelled by the user.
+  // This is used to decide whether the dialog should go away without user input
+  // or not.
+  bool accepted_or_cancelled_ = false;
+
+  // True when performing a cloud-based content analysis, false when performing
+  // a locally based content analysis.
+  bool is_cloud_ = true;
+
+  // Set to true once `DeleteSoon()` is called in `CancelDialogAndDelete()`.
+  // This is used by other pending tasks, such as `ShowDialogNow()` to do
+  // nothing if the dialog has been scheduled for deletion.
+  bool will_be_deleted_soon_ = false;
+
+  // If input events for our `WebContents` have been ignored, then this is the
+  // closure to re-enable them.
+  std::optional<content::WebContents::ScopedIgnoreInputEvents>
+      scoped_ignore_input_events_;
+
+  // A reference to the top level web contents of the tab whose content is
+  // being analyzed.  Input events of this contents are ignored for the life
+  // time of the dialog.
+  base::WeakPtr<content::WebContents> top_level_contents_;
+
+  base::WeakPtrFactory<ContentAnalysisDialogController> weak_ptr_factory_{this};
+};
+
+}  // namespace enterprise_connectors
+
+#endif  // CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_CONTENT_ANALYSIS_DIALOG_CONTROLLER_H_
diff --git a/chrome/browser/enterprise/connectors/common.cc b/chrome/browser/enterprise/connectors/common.cc
index b62c744c..700b3e2 100644
--- a/chrome/browser/enterprise/connectors/common.cc
+++ b/chrome/browser/enterprise/connectors/common.cc
@@ -29,7 +29,7 @@
 #endif  // BUILDFLAG(SAFE_BROWSING_AVAILABLE)
 
 #if BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 #endif  // BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -353,7 +353,7 @@
 
   // This dialog opens itself, and is thereafter owned by constrained window
   // code.
-  new ContentAnalysisDialog(
+  new ContentAnalysisDialogController(
       std::make_unique<ContentAnalysisDownloadsDelegate>(
           filename, custom_message, learn_more_url,
           bypass_justification_required, std::move(keep_closure),
diff --git a/chrome/browser/enterprise/connectors/test/deep_scanning_browsertest_base.cc b/chrome/browser/enterprise/connectors/test/deep_scanning_browsertest_base.cc
index 1377de8..cb7ae924 100644
--- a/chrome/browser/enterprise/connectors/test/deep_scanning_browsertest_base.cc
+++ b/chrome/browser/enterprise/connectors/test/deep_scanning_browsertest_base.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/enterprise/connectors/analysis/clipboard_analysis_request.h"
 #include "chrome/browser/enterprise/connectors/analysis/clipboard_request_handler.h"
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 #include "chrome/browser/enterprise/connectors/analysis/files_request_handler.h"
 #include "chrome/browser/enterprise/connectors/connectors_service.h"
 #include "chrome/browser/enterprise/connectors/test/deep_scanning_test_utils.h"
@@ -106,10 +106,12 @@
 DeepScanningBrowserTestBase::DeepScanningBrowserTestBase() {
   // Change the time values of the upload UI to smaller ones to make tests
   // showing it run faster.
-  ContentAnalysisDialog::SetMinimumPendingDialogTimeForTesting(
+  ContentAnalysisDialogController::SetMinimumPendingDialogTimeForTesting(
       kMinimumPendingDelay);
-  ContentAnalysisDialog::SetSuccessDialogTimeoutForTesting(kSuccessTimeout);
-  ContentAnalysisDialog::SetShowDialogDelayForTesting(kShowDialogDelay);
+  ContentAnalysisDialogController::SetSuccessDialogTimeoutForTesting(
+      kSuccessTimeout);
+  ContentAnalysisDialogController::SetShowDialogDelayForTesting(
+      kShowDialogDelay);
 }
 
 DeepScanningBrowserTestBase::~DeepScanningBrowserTestBase() = default;
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 0a1d916..b86e87b 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -235,6 +235,8 @@
     "event_router_forwarder.h",
     "extension_action_dispatcher.cc",
     "extension_action_dispatcher.h",
+    "extension_action_runner.cc",
+    "extension_action_runner.h",
     "extension_action_storage_manager.cc",
     "extension_action_storage_manager.h",
     "extension_allowlist.cc",
@@ -451,6 +453,7 @@
     "//chrome/browser/preloading:prefs",
     "//chrome/browser/profiles",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/resources:component_extension_resources",
     "//chrome/browser/safe_browsing",
     "//chrome/browser/safe_browsing:metrics_collector",
@@ -705,8 +708,6 @@
       "context_menu_matcher.h",
       "device_permissions_dialog_controller.cc",
       "device_permissions_dialog_controller.h",
-      "extension_action_runner.cc",
-      "extension_action_runner.h",
       "extension_browser_window_helper.cc",
       "extension_browser_window_helper.h",
       "extension_commands_global_registry.cc",
@@ -1655,6 +1656,7 @@
     "//chrome/browser/extensions",
     "//chrome/browser/media/webrtc",
     "//chrome/browser/prefetch",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/safe_browsing",
     "//chrome/browser/task_manager",
     "//chrome/browser/ui",
diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client.cc b/chrome/browser/extensions/api/chrome_extensions_api_client.cc
index 48243ec..7101a6c 100644
--- a/chrome/browser/extensions/api/chrome_extensions_api_client.cc
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client.cc
@@ -23,6 +23,9 @@
 #include "chrome/browser/extensions/api/metrics_private/chrome_metrics_private_delegate.h"
 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
 #include "chrome/browser/extensions/api/storage/sync_value_store_cache.h"
+#include "chrome/browser/extensions/extension_action_dispatcher.h"
+#include "chrome/browser/extensions/extension_action_runner.h"
+#include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/favicon/favicon_utils.h"
 #include "chrome/browser/ui/webui/devtools/devtools_ui.h"
 #include "chrome/common/buildflags.h"
@@ -39,6 +42,8 @@
 #include "extensions/browser/api/messaging/native_message_port.h"
 #include "extensions/browser/api/virtual_keyboard_private/virtual_keyboard_delegate.h"
 #include "extensions/browser/api/web_request/web_request_info.h"
+#include "extensions/browser/extension_action.h"
+#include "extensions/browser/extension_action_manager.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/supervised_user_extensions_delegate.h"
 #include "google_apis/gaia/gaia_urls.h"
@@ -165,6 +170,114 @@
   return is_sensitive_request;
 }
 
+void ChromeExtensionsAPIClient::NotifyWebRequestWithheld(
+    int render_process_id,
+    int render_frame_id,
+    const ExtensionId& extension_id) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  // Track down the ExtensionActionRunner and the extension. Since this is
+  // asynchronous, we could hit a null anywhere along the path.
+  content::RenderFrameHost* render_frame_host =
+      content::RenderFrameHost::FromID(render_process_id, render_frame_id);
+  if (!render_frame_host) {
+    return;
+  }
+  // We don't count subframes and prerendering blocked actions as yet, since
+  // there's no way to surface this to the user. Ignore these (which is also
+  // what we do for content scripts).
+  if (!render_frame_host->IsInPrimaryMainFrame()) {
+    return;
+  }
+  content::WebContents* web_contents =
+      content::WebContents::FromRenderFrameHost(render_frame_host);
+  if (!web_contents) {
+    return;
+  }
+  extensions::ExtensionActionRunner* runner =
+      extensions::ExtensionActionRunner::GetForWebContents(web_contents);
+  if (!runner) {
+    return;
+  }
+
+  const extensions::Extension* extension =
+      extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext())
+          ->enabled_extensions()
+          .GetByID(extension_id);
+  if (!extension) {
+    return;
+  }
+
+  // If the extension doesn't request access to the tab, return. The user
+  // invoking the extension on a site grants access to the tab's origin if
+  // and only if the extension requested it; without requesting the tab,
+  // clicking on the extension won't grant access to the resource.
+  // https://crbug.com/891586.
+  // TODO(crbug.com/40076508): We can remove this if extensions require host
+  // permissions to the initiator, since then we'll never get into this type
+  // of circumstance (the request would be blocked, rather than withheld).
+  if (!extension->permissions_data()
+           ->withheld_permissions()
+           .explicit_hosts()
+           .MatchesURL(render_frame_host->GetLastCommittedURL())) {
+    return;
+  }
+
+  runner->OnWebRequestBlocked(extension);
+}
+
+void ChromeExtensionsAPIClient::UpdateActionCount(
+    content::BrowserContext* context,
+    const ExtensionId& extension_id,
+    int tab_id,
+    int action_count,
+    bool clear_badge_text) {
+  const Extension* extension =
+      ExtensionRegistry::Get(context)->enabled_extensions().GetByID(
+          extension_id);
+  DCHECK(extension);
+
+  ExtensionAction* action =
+      ExtensionActionManager::Get(context)->GetExtensionAction(*extension);
+  DCHECK(action);
+
+  action->SetDNRActionCount(tab_id, action_count);
+
+  // The badge text should be cleared if |action| contains explicitly set badge
+  // text for the |tab_id| when the preference is then toggled on. In this case,
+  // the matched action count should take precedence over the badge text.
+  if (clear_badge_text) {
+    action->ClearBadgeText(tab_id);
+  }
+
+  content::WebContents* tab_contents = nullptr;
+  if (ExtensionTabUtil::GetTabById(tab_id, context, /*include_incognito=*/true,
+                                   &tab_contents) &&
+      tab_contents) {
+    ExtensionActionDispatcher::Get(context)->NotifyChange(action, tab_contents,
+                                                          context);
+  }
+}
+
+void ChromeExtensionsAPIClient::ClearActionCount(
+    content::BrowserContext* context,
+    const Extension& extension) {
+  ExtensionAction* action =
+      ExtensionActionManager::Get(context)->GetExtensionAction(extension);
+  DCHECK(action);
+
+  action->ClearDNRActionCountForAllTabs();
+
+  std::vector<content::WebContents*> contents_to_notify =
+      ExtensionTabUtil::GetAllActiveWebContentsForContext(
+          context, /*include_incognito=*/true);
+
+  for (auto* active_contents : contents_to_notify) {
+    ExtensionActionDispatcher::Get(context)->NotifyChange(
+        action, active_contents, context);
+  }
+}
+
 #if BUILDFLAG(ENABLE_GUEST_VIEW)
 std::unique_ptr<AppViewGuestDelegate>
 ChromeExtensionsAPIClient::CreateAppViewGuestDelegate() const {
diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc b/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
index 1848d6c..163e532 100644
--- a/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
@@ -19,34 +19,6 @@
 
 namespace extensions {
 
-void ChromeExtensionsAPIClient::NotifyWebRequestWithheld(
-    int render_process_id,
-    int render_frame_id,
-    const ExtensionId& extension_id) {
-  // TODO(crbug.com/393179880): Port ExtensionActionRunner to desktop Android
-  // then delete this stub.
-  NOTIMPLEMENTED();
-}
-
-void ChromeExtensionsAPIClient::UpdateActionCount(
-    content::BrowserContext* context,
-    const ExtensionId& extension_id,
-    int tab_id,
-    int action_count,
-    bool clear_badge_text) {
-  // TODO(crbug.com/393179880): Port ExtensionActionDispatcher to desktop
-  // Android then delete this stub.
-  NOTIMPLEMENTED();
-}
-
-void ChromeExtensionsAPIClient::ClearActionCount(
-    content::BrowserContext* context,
-    const Extension& extension) {
-  // TODO(crbug.com/393179880): Port ExtensionActionDispatcher to desktop
-  // Android then delete this stub.
-  NOTIMPLEMENTED();
-}
-
 void ChromeExtensionsAPIClient::OpenFileUrl(
     const GURL& file_url,
     content::BrowserContext* browser_context) {
diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client_non_android.cc b/chrome/browser/extensions/api/chrome_extensions_api_client_non_android.cc
index 986cdd6..7699295 100644
--- a/chrome/browser/extensions/api/chrome_extensions_api_client_non_android.cc
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client_non_android.cc
@@ -9,9 +9,6 @@
 #include "chrome/browser/extensions/api/chrome_extensions_api_client.h"
 #include "chrome/browser/extensions/api/messaging/chrome_messaging_delegate.h"
 #include "chrome/browser/extensions/api/messaging/chrome_native_message_port_dispatcher.h"
-#include "chrome/browser/extensions/extension_action_dispatcher.h"
-#include "chrome/browser/extensions/extension_action_runner.h"
-#include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/extensions/system_display/display_info_provider.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/search/instant_service_factory.h"
@@ -20,11 +17,8 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_navigator.h"
 #include "chrome/browser/ui/browser_navigator_params.h"
-#include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "extensions/browser/api/system_display/display_info_provider.h"
-#include "extensions/browser/extension_action.h"
-#include "extensions/browser/extension_action_manager.h"
 #include "extensions/buildflags/buildflags.h"
 
 // TODO(crbug.com/417770773): This file contains the parts of
@@ -36,114 +30,6 @@
 
 namespace extensions {
 
-void ChromeExtensionsAPIClient::NotifyWebRequestWithheld(
-    int render_process_id,
-    int render_frame_id,
-    const ExtensionId& extension_id) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-
-  // Track down the ExtensionActionRunner and the extension. Since this is
-  // asynchronous, we could hit a null anywhere along the path.
-  content::RenderFrameHost* render_frame_host =
-      content::RenderFrameHost::FromID(render_process_id, render_frame_id);
-  if (!render_frame_host) {
-    return;
-  }
-  // We don't count subframes and prerendering blocked actions as yet, since
-  // there's no way to surface this to the user. Ignore these (which is also
-  // what we do for content scripts).
-  if (!render_frame_host->IsInPrimaryMainFrame()) {
-    return;
-  }
-  content::WebContents* web_contents =
-      content::WebContents::FromRenderFrameHost(render_frame_host);
-  if (!web_contents) {
-    return;
-  }
-  extensions::ExtensionActionRunner* runner =
-      extensions::ExtensionActionRunner::GetForWebContents(web_contents);
-  if (!runner) {
-    return;
-  }
-
-  const extensions::Extension* extension =
-      extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext())
-          ->enabled_extensions()
-          .GetByID(extension_id);
-  if (!extension) {
-    return;
-  }
-
-  // If the extension doesn't request access to the tab, return. The user
-  // invoking the extension on a site grants access to the tab's origin if
-  // and only if the extension requested it; without requesting the tab,
-  // clicking on the extension won't grant access to the resource.
-  // https://crbug.com/891586.
-  // TODO(crbug.com/40076508): We can remove this if extensions require host
-  // permissions to the initiator, since then we'll never get into this type
-  // of circumstance (the request would be blocked, rather than withheld).
-  if (!extension->permissions_data()
-           ->withheld_permissions()
-           .explicit_hosts()
-           .MatchesURL(render_frame_host->GetLastCommittedURL())) {
-    return;
-  }
-
-  runner->OnWebRequestBlocked(extension);
-}
-
-void ChromeExtensionsAPIClient::UpdateActionCount(
-    content::BrowserContext* context,
-    const ExtensionId& extension_id,
-    int tab_id,
-    int action_count,
-    bool clear_badge_text) {
-  const Extension* extension =
-      ExtensionRegistry::Get(context)->enabled_extensions().GetByID(
-          extension_id);
-  DCHECK(extension);
-
-  ExtensionAction* action =
-      ExtensionActionManager::Get(context)->GetExtensionAction(*extension);
-  DCHECK(action);
-
-  action->SetDNRActionCount(tab_id, action_count);
-
-  // The badge text should be cleared if |action| contains explicitly set badge
-  // text for the |tab_id| when the preference is then toggled on. In this case,
-  // the matched action count should take precedence over the badge text.
-  if (clear_badge_text) {
-    action->ClearBadgeText(tab_id);
-  }
-
-  content::WebContents* tab_contents = nullptr;
-  if (ExtensionTabUtil::GetTabById(tab_id, context, /*include_incognito=*/true,
-                                   &tab_contents) &&
-      tab_contents) {
-    ExtensionActionDispatcher::Get(context)->NotifyChange(action, tab_contents,
-                                                          context);
-  }
-}
-
-void ChromeExtensionsAPIClient::ClearActionCount(
-    content::BrowserContext* context,
-    const Extension& extension) {
-  ExtensionAction* action =
-      ExtensionActionManager::Get(context)->GetExtensionAction(extension);
-  DCHECK(action);
-
-  action->ClearDNRActionCountForAllTabs();
-
-  std::vector<content::WebContents*> contents_to_notify =
-      ExtensionTabUtil::GetAllActiveWebContentsForContext(
-          context, /*include_incognito=*/true);
-
-  for (auto* active_contents : contents_to_notify) {
-    ExtensionActionDispatcher::Get(context)->NotifyChange(
-        action, active_contents, context);
-  }
-}
-
 void ChromeExtensionsAPIClient::OpenFileUrl(
     const GURL& file_url,
     content::BrowserContext* browser_context) {
diff --git a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
index 7b19f07..292b999 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
@@ -1778,7 +1778,7 @@
                                           /*foreground=*/true);
   }
   GetTabStripModel()->ActivateTabAt(0);
-  GetTabStripModel()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  GetTabStripModel()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   // Run extension to highlight tabs
   auto extension = CreateTabsExtension();
diff --git a/chrome/browser/extensions/api/web_request/web_request_apitest.cc b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
index 63a1c491..c1d925a 100644
--- a/chrome/browser/extensions/api/web_request/web_request_apitest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
@@ -44,6 +44,7 @@
 #include "chrome/browser/extensions/extension_browser_test_util.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/extensions/extension_with_management_policy_apitest.h"
+#include "chrome/browser/extensions/permissions/scripting_permissions_modifier.h"
 #include "chrome/browser/net/profile_network_context_service.h"
 #include "chrome/browser/net/profile_network_context_service_factory.h"
 #include "chrome/browser/net/system_network_context_manager.h"
@@ -145,8 +146,6 @@
 #include "chrome/browser/extensions/extension_action_runner.h"
 #include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/extensions/permissions/active_tab_permission_granter.h"
-#include "chrome/browser/extensions/permissions/scripting_permissions_modifier.h"
-#include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/extensions/test_extension_action_dispatcher_observer.h"
 #include "chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader.h"
 #include "chrome/browser/new_tab_page/one_google_bar/one_google_bar_service.h"
@@ -344,7 +343,6 @@
   return value.GetInt();
 }
 
-#if !BUILDFLAG(IS_ANDROID)
 // Returns the current count of webRequests received by the |extension| in
 // the background script, either background page or service worker. Assumes the
 // extension stores a value on the `self` object. Returns -1 if something goes
@@ -354,7 +352,6 @@
   return GetCountFromBackgroundScript(extension, context,
                                       "self.webRequestCount");
 }
-#endif  // !BUILDFLAG(IS_ANDROID)
 
 // Returns true if the |extension|'s background script saw an event for a
 // request with the given |hostname| (|hostname| should exclude port).
@@ -3369,14 +3366,9 @@
   // The server saw a request for the remote Javascript file.
   EXPECT_TRUE(BrowsedTo(example2_com));
 
-#if !BUILDFLAG(IS_ANDROID)
   // The request was hidden from the extension.
-  // TODO(crbug.com/371324825): Enable this check on desktop Android. This will
-  // require enabling PermissionsUpdater, the permissions API, and more
-  // extensions management code.
   EXPECT_EQ(1, GetCountFromBackgroundScript(extension, profile(),
                                             request_counter_name));
-#endif
 }
 
 // Tests that the webRequest events aren't dispatched when the URL of the
@@ -3411,13 +3403,8 @@
   // The server saw a request for the protected site.
   EXPECT_TRUE(BrowsedTo(protected_domain));
 
-#if !BUILDFLAG(IS_ANDROID)
   // The request was hidden from the extension.
-  // TODO(crbug.com/371324825): Enable this check on desktop Android. This will
-  // require enabling PermissionsUpdater, the permissions API, and more
-  // extensions management code.
   EXPECT_FALSE(before_request_listener.was_satisfied());
-#endif
 
   // Host not protected by policy.
   const std::string unprotected_domain = "notblockedexample.com";
@@ -3437,7 +3424,6 @@
   EXPECT_TRUE(before_request_listener.was_satisfied());
 }
 
-#if !BUILDFLAG(IS_ANDROID)
 // Test that no webRequest events are seen for a protected host during normal
 // navigation. This replicates most of the tests from
 // WebRequestWithWithheldPermissions with a protected host. Granting a tab
@@ -3463,18 +3449,16 @@
   EXPECT_TRUE(listener.WaitUntilSatisfied());
 
   // Navigate the browser to a page in a new tab.
-  GURL url = embedded_test_server()->GetURL(protected_domain, "/empty.html");
-  NavigateParams params(browser(), url, ui::PAGE_TRANSITION_LINK);
-  params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
-  ui_test_utils::NavigateToURL(&params);
+  NavigateToURLInNewTab(
+      embedded_test_server()->GetURL(protected_domain, "/empty.html"));
 
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  content::WebContents* web_contents = GetActiveWebContents();
   ASSERT_TRUE(web_contents);
+#if !BUILDFLAG(IS_ANDROID)
   ExtensionActionRunner* runner =
       ExtensionActionRunner::GetForWebContents(web_contents);
   ASSERT_TRUE(runner);
-
+#endif  // !BUILDFLAG(IS_ANDROID)
   int port = embedded_test_server()->port();
   const std::string kXhrPath = "simple.html";
 
@@ -3485,6 +3469,7 @@
                     kXhrPath);
   EXPECT_EQ(0, GetWebRequestCountFromBackgroundScript(extension, profile()));
 
+#if !BUILDFLAG(IS_ANDROID)
   // Grant activeTab permission, and perform another XHR. The extension should
   // still be blocked due to ExtensionSettings policy on example.com.
   // Only records ACCESS_WITHHELD, not ACCESS_DENIED, this is why it matches
@@ -3495,6 +3480,8 @@
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
   EXPECT_EQ(BLOCKED_ACTION_NONE, runner->GetBlockedActions(extension->id()));
+#endif  // !BUILDFLAG(IS_ANDROID)
+
   int xhr_count = GetWebRequestCountFromBackgroundScript(extension, profile());
   // ... which means that we should have a non-zero xhr count if the policy
   // didn't block the events.
@@ -3505,6 +3492,7 @@
   EXPECT_EQ(0, GetWebRequestCountFromBackgroundScript(extension, profile()));
 }
 
+#if !BUILDFLAG(IS_ANDROID)
 // A test fixture which mocks the Time::Now() function to ensure that the
 // default clock returns monotonically increasing time.
 class ExtensionWebRequestMockedClockTest
@@ -3899,7 +3887,6 @@
                             ResponseHeaderType::kNone, 1);
 }
 
-#if !BUILDFLAG(IS_ANDROID)
 struct SWTestParams {
   // This parameter is for opt_extraInfoSpec passed to addEventListener.
   // 'blocking' and 'requestHeaders' if it's false, and 'extraHeaders' in
@@ -3978,12 +3965,10 @@
                              const std::optional<std::string>& scope) {
     GURL url = embedded_test_server()->GetURL(
         "/service_worker/create_service_worker.html");
-    EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+    EXPECT_TRUE(NavigateToURL(url));
     std::string script = content::JsReplace("register($1, $2);", worker_path,
                                             scope ? *scope : std::string());
-    EXPECT_EQ(
-        "DONE",
-        EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), script));
+    EXPECT_EQ("DONE", EvalJs(GetActiveWebContents(), script));
   }
 
   // Ensures requests made by the |worker_script_name| service worker can be
@@ -3997,9 +3982,8 @@
 
     // Register a service worker and navigate to a page it controls.
     RegisterServiceWorker(worker_script_name, std::nullopt);
-    EXPECT_TRUE(ui_test_utils::NavigateToURL(
-        browser(), embedded_test_server()->GetURL(
-                       "/service_worker/fetch_from_page.html")));
+    EXPECT_TRUE(NavigateToURL(embedded_test_server()->GetURL(
+        "/service_worker/fetch_from_page.html")));
 
     // Make a fetch from the controlled page. Depending on the worker script,
     // the fetch might go to the service worker and be re-issued, or might
@@ -4007,9 +3991,8 @@
     // expects a network request to happen, and that the extension modify the
     // headers of the request before it goes to network. Verify that it was able
     // to inject a header of "foo=bar".
-    EXPECT_EQ("bar",
-              EvalJs(browser()->tab_strip_model()->GetActiveWebContents(),
-                     "fetch_from_page('/echoheader?foo');"));
+    EXPECT_EQ("bar", EvalJs(GetActiveWebContents(),
+                            "fetch_from_page('/echoheader?foo');"));
   }
 };
 
@@ -4058,17 +4041,15 @@
   RegisterServiceWorker("/fetch_event_passthrough.js", "/echoheader");
 
   // Make sure the request is intercepted with no redirect.
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(
-      browser(), embedded_test_server()->GetURL("/echoheader?foo")));
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_TRUE(NavigateToURL(embedded_test_server()->GetURL("/echoheader?foo")));
+  content::WebContents* web_contents = GetActiveWebContents();
   EXPECT_EQ("bar", EvalJs(web_contents, "document.body.textContent;"));
 
   // Make sure the request is intercepted with a redirect.
   GURL redirect_url = embedded_test_server()->GetURL(
       "/server-redirect?" +
       embedded_test_server()->GetURL("/echoheader?foo").spec());
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), redirect_url));
+  ASSERT_TRUE(NavigateToURL(redirect_url));
   EXPECT_EQ("bar", EvalJs(web_contents, "document.body.textContent;"));
 }
 
@@ -4111,11 +4092,10 @@
 
   InstallRequestHeaderModifyingExtension();
 
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  content::WebContents* web_contents = GetActiveWebContents();
   GURL url = embedded_test_server()->GetURL(
       "/service_worker/create_service_worker.html");
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
 
   // Register a service worker. The worker script should have "foo: bar" request
   // header added by the extension.
@@ -4130,7 +4110,7 @@
 
   // Update the worker. The worker should have "foo: bar" request header in the
   // request for update checking.
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
   EXPECT_EQ("DONE", EvalJs(web_contents, "update('./in-scope');"));
   {
     base::AutoLock auto_lock(lock);
@@ -4179,11 +4159,10 @@
 
   InstallRequestHeaderModifyingExtension();
 
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  content::WebContents* web_contents = GetActiveWebContents();
   GURL url = embedded_test_server()->GetURL(
       "/service_worker/create_service_worker.html");
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
 
   // Register a service worker. `EvalJs` is blocked until the request handler
   // serves the worker script. The worker script should have "foo: bar" request
@@ -4200,7 +4179,7 @@
   // Update the worker. `EvalJs` is blocked until the request handler serves the
   // worker script. The worker should have "foo: bar" request header in the
   // request for update checking.
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
   EXPECT_EQ("DONE", EvalJs(web_contents, "update('./in-scope');"));
   {
     base::AutoLock auto_lock(lock);
@@ -4262,11 +4241,10 @@
 
   InstallRequestHeaderModifyingExtension();
 
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  content::WebContents* web_contents = GetActiveWebContents();
   GURL url = embedded_test_server()->GetURL(
       "/service_worker/create_service_worker.html");
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
 
   // Register a service worker. The worker script should have "foo: bar" request
   // header added by the extension.
@@ -4281,7 +4259,7 @@
 
   // Update the worker. The worker should have "foo: bar" request header in the
   // request for update checking.
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  EXPECT_TRUE(NavigateToURL(url));
   EXPECT_EQ("DONE", EvalJs(web_contents, "update('./in-scope');"));
   {
     base::AutoLock auto_lock(lock);
@@ -4311,10 +4289,9 @@
   // the page.
   GURL url = embedded_test_server()->GetURL(
       "/echoheader?frameId&resourceType&service-worker-navigation-preload");
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+  ASSERT_TRUE(NavigateToURL(url));
 
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
+  content::WebContents* web_contents = GetActiveWebContents();
 
   // Since the request was to "/echoheader", the response describes the request
   // headers.
@@ -4357,6 +4334,7 @@
   EXPECT_EQ("ok", EvalJs(web_contents, content::JsReplace(kAddIframe, url)));
 }
 
+#if !BUILDFLAG(IS_ANDROID)
 // Ensure we don't strip off initiator incorrectly in web request events when
 // both the normal and incognito contexts are active. Regression test for
 // crbug.com/934398.
diff --git a/chrome/browser/extensions/chrome_extension_frame_host.cc b/chrome/browser/extensions/chrome_extension_frame_host.cc
index 7a6e602..2ebaa3a 100644
--- a/chrome/browser/extensions/chrome_extension_frame_host.cc
+++ b/chrome/browser/extensions/chrome_extension_frame_host.cc
@@ -6,6 +6,8 @@
 
 #include "chrome/browser/extensions/activity_log/activity_log.h"
 #include "chrome/browser/extensions/error_console/error_console.h"
+#include "chrome/browser/extensions/extension_action_runner.h"
+#include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/common/extensions/extension_constants.h"
 #include "components/crx_file/id_util.h"
 #include "content/public/browser/render_frame_host.h"
@@ -20,13 +22,6 @@
 #include "third_party/blink/public/common/logging/logging_utils.h"
 #include "url/gurl.h"
 
-// TODO(crbug.com/395160734): Port ExtensionActionRunner to desktop Android.
-// TODO(crbug.com/411737232): Port TabHelper to desktop Android.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_action_runner.h"
-#include "chrome/browser/extensions/tab_helper.h"
-#endif
-
 namespace extensions {
 
 ChromeExtensionFrameHost::ChromeExtensionFrameHost(
@@ -51,8 +46,6 @@
     return;
   }
 
-// TODO(crbug.com/395160734): Port ExtensionActionRunner to desktop Android.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   ExtensionActionRunner* runner =
       ExtensionActionRunner::GetForWebContents(web_contents_);
   if (!runner) {
@@ -61,10 +54,6 @@
   }
   runner->OnRequestScriptInjectionPermission(extension_id, script_type,
                                              run_location, std::move(callback));
-#else
-  NOTIMPLEMENTED();
-  std::move(callback).Run(false);
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 }
 
 void ChromeExtensionFrameHost::GetAppInstallState(
@@ -88,16 +77,10 @@
 
 void ChromeExtensionFrameHost::WatchedPageChange(
     const std::vector<std::string>& css_selectors) {
-// TODO(crbug.com/411737232): Support TabHelper on desktop Android. For now it
-// has too many UI dependencies.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   TabHelper* tab_helper = TabHelper::FromWebContents(web_contents_);
   if (!tab_helper)
     return;
   tab_helper->OnWatchedPageChanged(css_selectors);
-#else
-  NOTIMPLEMENTED();
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 }
 
 void ChromeExtensionFrameHost::DetailedConsoleMessageAdded(
diff --git a/chrome/browser/extensions/extension_action_dispatcher.cc b/chrome/browser/extensions/extension_action_dispatcher.cc
index 9e92da5..6cabb757 100644
--- a/chrome/browser/extensions/extension_action_dispatcher.cc
+++ b/chrome/browser/extensions/extension_action_dispatcher.cc
@@ -59,11 +59,11 @@
   }
 }
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
 void ExtensionActionDispatcher::DispatchExtensionActionClicked(
     const ExtensionAction& extension_action,
     content::WebContents* web_contents,
     const Extension* extension) {
+#if BUILDFLAG(ENABLE_EXTENSIONS)
   events::HistogramValue histogram_value = events::UNKNOWN;
   const char* event_name = nullptr;
   switch (extension_action.action_type()) {
@@ -99,8 +99,12 @@
                              extension_action.extension_id(), histogram_value,
                              event_name, std::move(args));
   }
-}
+#else
+  // TODO(crbug.com/393179880): Once we can create JS tab objects via
+  // ExtensionTabUtil::CreateTabObject() enable this method.
+  NOTIMPLEMENTED() << "Dispatching actions not yet supported on Android.";
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
+}
 
 void ExtensionActionDispatcher::ClearAllValuesForTab(
     content::WebContents* web_contents) {
diff --git a/chrome/browser/extensions/extension_action_dispatcher.h b/chrome/browser/extensions/extension_action_dispatcher.h
index 4ca4c83..410df4b0 100644
--- a/chrome/browser/extensions/extension_action_dispatcher.h
+++ b/chrome/browser/extensions/extension_action_dispatcher.h
@@ -74,12 +74,10 @@
                     content::WebContents* web_contents,
                     content::BrowserContext* browser_context);
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   // Dispatches the onClicked event for extension that owns the given action.
   void DispatchExtensionActionClicked(const ExtensionAction& extension_action,
                                       content::WebContents* web_contents,
                                       const Extension* extension);
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
   // Called when the action for the given extension is pinned or unpinned from
   // the toolbar. Dispatches the onUserSettingsChanged event for extension that
diff --git a/chrome/browser/extensions/extension_action_runner.cc b/chrome/browser/extensions/extension_action_runner.cc
index 3be3bb92..0b166811 100644
--- a/chrome/browser/extensions/extension_action_runner.cc
+++ b/chrome/browser/extensions/extension_action_runner.cc
@@ -16,7 +16,6 @@
 #include "base/location.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/task/single_thread_task_runner.h"
-#include "chrome/browser/extensions/api/side_panel/side_panel_service.h"
 #include "chrome/browser/extensions/extension_action_dispatcher.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/extensions/permissions/active_tab_permission_granter.h"
@@ -25,9 +24,6 @@
 #include "chrome/browser/extensions/permissions/site_permissions_helper.h"
 #include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/extensions/extensions_dialogs.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
 #include "components/crx_file/id_util.h"
 #include "components/sessions/content/session_tab_helper.h"
@@ -51,6 +47,13 @@
 #include "extensions/common/permissions/permissions_data.h"
 #include "url/origin.h"
 
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+#include "chrome/browser/extensions/api/side_panel/side_panel_service.h"
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/extensions_dialogs.h"
+#endif
+
 namespace {
 
 std::vector<extensions::ExtensionId> GetExtensionIds(
@@ -76,10 +79,7 @@
 
 ExtensionActionRunner::ExtensionActionRunner(content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents),
-      num_page_requests_(0),
-      browser_context_(web_contents->GetBrowserContext()),
-      was_used_on_page_(false),
-      ignore_active_tab_granted_(false) {
+      browser_context_(web_contents->GetBrowserContext()) {
   CHECK(web_contents);
   extension_registry_observation_.Observe(
       ExtensionRegistry::Get(browser_context_));
@@ -113,6 +113,7 @@
     return ExtensionAction::ShowAction::kNone;
   }
 
+#if BUILDFLAG(ENABLE_EXTENSIONS)
   // Anything that gets here should have a page or browser action, or toggle the
   // extension's side panel, and not blocked actions.
   // This method is only called to execute an action by the user, so we can
@@ -131,6 +132,7 @@
       side_panel_service->HasSidePanelActionForTab(*extension, tab_id)) {
     return ExtensionAction::ShowAction::kToggleSidePanel;
   }
+#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
   if (grant_tab_permissions) {
     GrantTabPermissions({extension});
@@ -417,6 +419,7 @@
     return;
   }
 
+#if BUILDFLAG(ENABLE_EXTENSIONS)
   // TODO(emiliapaz): Consider showing the dialog as a modal if container
   // doesn't exist. Currently we get the extension's icon via the action
   // controller from the container, so the container must exist.
@@ -431,6 +434,16 @@
       browser, extension_ids,
       base::BindOnce(&ExtensionActionRunner::OnReloadPageBubbleAccepted,
                      weak_factory_.GetWeakPtr()));
+#else
+  // TODO(crbug.com/371432155): Add the above code to desktop Android when we
+  // have a tab interface that works on Android. For now, just accept the
+  // dialog.
+  NOTIMPLEMENTED() << "Accepting reload page bubble";
+  base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+      FROM_HERE,
+      base::BindOnce(&ExtensionActionRunner::OnReloadPageBubbleAccepted,
+                     weak_factory_.GetWeakPtr()));
+#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 }
 
 void ExtensionActionRunner::OnReloadPageBubbleAccepted() {
diff --git a/chrome/browser/extensions/extension_action_runner.h b/chrome/browser/extensions/extension_action_runner.h
index af5641f..cdccb51 100644
--- a/chrome/browser/extensions/extension_action_runner.h
+++ b/chrome/browser/extensions/extension_action_runner.h
@@ -39,8 +39,6 @@
 
 // The provider for ExtensionActions corresponding to scripts which are actively
 // running or need permission.
-// TODO(crbug.com/393179880): Port this to desktop Android, then update
-// SitePermissionsHelperUnitTest and SitePermissionsHelperBrowserTest.
 class ExtensionActionRunner : public content::WebContentsObserver,
                               public ExtensionRegistryObserver {
  public:
@@ -211,14 +209,14 @@
   // The total number of requests from the renderer on the current page,
   // including any that are pending or were immediately granted.
   // Right now, used only in tests.
-  int num_page_requests_;
+  int num_page_requests_ = 0;
 
   // The associated browser context.
   raw_ptr<content::BrowserContext> browser_context_;
 
   // Whether or not the feature was used for any extensions. This may not be the
   // case if the user never enabled the scripts-require-action flag.
-  bool was_used_on_page_;
+  bool was_used_on_page_ = false;
 
   // The map of extension_id:pending_request of all pending script requests.
   PendingScriptMap pending_scripts_;
@@ -234,7 +232,7 @@
 
   // If true, ignore active tab being granted rather than running pending
   // actions.
-  bool ignore_active_tab_granted_;
+  bool ignore_active_tab_granted_ = false;
 
   // If true, immediately accept the blocked action dialog by running the
   // callback.
diff --git a/chrome/browser/extensions/extension_action_runner_browsertest.cc b/chrome/browser/extensions/extension_action_runner_browsertest.cc
index da68e313..b26da72 100644
--- a/chrome/browser/extensions/extension_action_runner_browsertest.cc
+++ b/chrome/browser/extensions/extension_action_runner_browsertest.cc
@@ -97,6 +97,7 @@
 
 using ContextType = extensions::browser_test_util::ContextType;
 
+// TODO(crbug.com/393179880): Port to desktop Android.
 class ExtensionActionRunnerBrowserTest : public ExtensionBrowserTest {
  public:
   explicit ExtensionActionRunnerBrowserTest(
diff --git a/chrome/browser/extensions/extension_action_runner_unittest.cc b/chrome/browser/extensions/extension_action_runner_unittest.cc
index db4f5d1..339ee31c 100644
--- a/chrome/browser/extensions/extension_action_runner_unittest.cc
+++ b/chrome/browser/extensions/extension_action_runner_unittest.cc
@@ -26,6 +26,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/navigation_simulator.h"
 #include "extensions/browser/extension_registry.h"
+#include "extensions/buildflags/buildflags.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_builder.h"
 #include "extensions/common/extension_features.h"
@@ -35,6 +36,8 @@
 #include "extensions/common/mojom/run_location.mojom-shared.h"
 #include "extensions/common/user_script.h"
 
+static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
+
 namespace extensions {
 
 namespace {
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
index 4c1797871..ae184fb 100644
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -380,8 +380,7 @@
     navigate_params.navigated_or_inserted_contents->SetInitialFocus();
 
   if (split) {
-    tab_strip->AddToNewSplit({new_index},
-                             split_tabs::SplitTabLayout::kVertical);
+    tab_strip->AddToNewSplit({new_index}, split_tabs::SplitTabVisualData());
   }
 
   ExtensionTabUtil::ScrubTabBehavior scrub_tab_behavior =
@@ -1004,6 +1003,7 @@
 
   NOTREACHED();
 }
+#endif  // !BUILDFLAG(IS_ANDROID)
 
 // static
 std::vector<content::WebContents*>
@@ -1017,6 +1017,18 @@
       include_incognito
           ? profile->GetPrimaryOTRProfile(/*create_if_needed=*/false)
           : nullptr;
+#if BUILDFLAG(IS_ANDROID)
+  for (TabModel* tab_model : TabModelList::models()) {
+    if (tab_model->GetProfile() == profile ||
+        tab_model->GetProfile() == incognito_profile) {
+      // On Android, not every tab has a WebContents, so check for null.
+      auto* web_contents = tab_model->GetActiveWebContents();
+      if (web_contents) {
+        active_contents.push_back(web_contents);
+      }
+    }
+  }
+#else
   for (Browser* target_browser : *BrowserList::GetInstance()) {
     if (target_browser->profile() == profile ||
         target_browser->profile() == incognito_profile) {
@@ -1025,10 +1037,12 @@
       active_contents.push_back(target_tab_strip->GetActiveWebContents());
     }
   }
+#endif  // BUILDFLAG(IS_ANDROID)
 
   return active_contents;
 }
 
+#if !BUILDFLAG(IS_ANDROID)
 // static
 bool ExtensionTabUtil::IsWebContentsInContext(
     content::WebContents* web_contents,
diff --git a/chrome/browser/extensions/extension_tab_util.h b/chrome/browser/extensions/extension_tab_util.h
index de83dd1..425b57d 100644
--- a/chrome/browser/extensions/extension_tab_util.h
+++ b/chrome/browser/extensions/extension_tab_util.h
@@ -12,6 +12,7 @@
 #include "base/functional/callback.h"
 #include "chrome/browser/extensions/window_controller.h"
 
+// TODO(jamescook): Switch most of these guards to ENABLE_EXTENSIONS.
 #if !BUILDFLAG(IS_ANDROID)
 // gn check doesn't understand this conditional, hence the nogncheck directives
 // below.
@@ -268,12 +269,14 @@
       const tab_groups::TabGroupColorId& color_id);
   static tab_groups::TabGroupColorId ColorToColorId(
       api::tab_groups::Color color);
+#endif  // !BUILDFLAG(IS_ANDROID)
 
   // Returns all active web contents for the given `browser_context`.
   static std::vector<content::WebContents*> GetAllActiveWebContentsForContext(
       content::BrowserContext* browser_context,
       bool include_incognito);
 
+#if !BUILDFLAG(IS_ANDROID)
   // Determines if the `web_contents` is in `browser_context` or it's OTR
   // BrowserContext if `include_incognito` is true.
   static bool IsWebContentsInContext(content::WebContents* web_contents,
diff --git a/chrome/browser/extensions/permissions/active_tab_permission_granter.cc b/chrome/browser/extensions/permissions/active_tab_permission_granter.cc
index 914ed56..d077b4143 100644
--- a/chrome/browser/extensions/permissions/active_tab_permission_granter.cc
+++ b/chrome/browser/extensions/permissions/active_tab_permission_granter.cc
@@ -11,6 +11,7 @@
 #include "base/feature_list.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback_helpers.h"
+#include "chrome/browser/extensions/extension_action_runner.h"
 #include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "content/public/browser/browser_context.h"
@@ -36,10 +37,6 @@
 #include "extensions/common/user_script.h"
 #include "url/gurl.h"
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_action_runner.h"
-#endif
-
 namespace extensions {
 
 namespace {
@@ -201,15 +198,11 @@
           process_manager->GetRenderFrameHostsForExtension(extension->id()),
           process, update_message);
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
       // It's important that this comes after the Mojo message is sent to the
       // renderer, so that any tasks executing in the renderer occur after it
       // has the updated permissions.
-      // TODO(crbug.com/393179880): Port ExtensionActionRunner to desktop
-      // Android.
       ExtensionActionRunner::GetForWebContents(web_contents())
           ->OnActiveTabPermissionGranted(extension);
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
       auto* permissions_manager =
           PermissionsManager::Get(web_contents()->GetBrowserContext());
diff --git a/chrome/browser/extensions/permissions/site_permissions_helper.cc b/chrome/browser/extensions/permissions/site_permissions_helper.cc
index e1b683a0..48e059c 100644
--- a/chrome/browser/extensions/permissions/site_permissions_helper.cc
+++ b/chrome/browser/extensions/permissions/site_permissions_helper.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/extensions/permissions/site_permissions_helper.h"
 
+#include "chrome/browser/extensions/extension_action_runner.h"
 #include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/extensions/permissions/active_tab_permission_granter.h"
 #include "chrome/browser/extensions/permissions/scripting_permissions_modifier.h"
@@ -18,10 +19,6 @@
 #include "extensions/common/permissions/permissions_data.h"
 #include "url/gurl.h"
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_action_runner.h"
-#endif
-
 namespace extensions {
 
 namespace {
@@ -35,7 +32,6 @@
 constexpr int kRefreshRequiredActionsMask =
     BLOCKED_ACTION_WEB_REQUEST | BLOCKED_ACTION_SCRIPT_AT_START;
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
 std::vector<ExtensionId> GetExtensionIds(
     const std::vector<const Extension*>& extensions) {
   std::vector<ExtensionId> extension_ids;
@@ -45,7 +41,6 @@
   }
   return extension_ids;
 }
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 }  // namespace
 
@@ -115,14 +110,9 @@
   auto current_url = web_contents->GetLastCommittedURL();
 
   auto* permissions_manager = PermissionsManager::Get(profile_);
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-  // TODO(crbug.com/393179880): Port ExtensionActionRunner to desktop Android.
   ExtensionActionRunner* action_runner =
       ExtensionActionRunner::GetForWebContents(web_contents);
   bool reload_required = false;
-#else
-  NOTIMPLEMENTED_LOG_ONCE();
-#endif
 
   for (auto const* extension : extensions) {
     auto current_access =
@@ -177,7 +167,6 @@
         break;
     }
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
     // Clear extension's tab permission when revoking user site permissions.
     bool revoking_current_site_permissions =
         new_access == PermissionsManager::UserSiteAccess::kOnClick;
@@ -207,17 +196,14 @@
     } else if (blocked_actions != BLOCKED_ACTION_NONE) {
       action_runner->RunBlockedActions(extension);
     }
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
   }
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   if (action_runner && reload_required) {
     // Show the reload bubble for all extensions, since it could be confusing to
     // the user why only some of them appear on the dialog.
     std::vector<ExtensionId> extension_ids = GetExtensionIds(extensions);
     action_runner->ShowReloadPageBubble(extension_ids);
   }
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 }
 
 bool SitePermissionsHelper::PageNeedsRefreshToRun(int blocked_actions) {
@@ -227,15 +213,9 @@
 bool SitePermissionsHelper::HasBeenBlocked(
     const Extension& extension,
     content::WebContents* web_contents) const {
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-  // TODO(crbug.com/393179880): Port ExtensionActionRunner to desktop Android.
   ExtensionActionRunner* action_runner =
       ExtensionActionRunner::GetForWebContents(web_contents);
   return action_runner && action_runner->WantsToRun(&extension);
-#else
-  NOTIMPLEMENTED_LOG_ONCE();
-  return false;
-#endif
 }
 
 bool SitePermissionsHelper::ShowAccessRequestsInToolbar(
diff --git a/chrome/browser/extensions/permissions/site_permissions_helper_browsertest.cc b/chrome/browser/extensions/permissions/site_permissions_helper_browsertest.cc
index 99491ebd..41f73a3 100644
--- a/chrome/browser/extensions/permissions/site_permissions_helper_browsertest.cc
+++ b/chrome/browser/extensions/permissions/site_permissions_helper_browsertest.cc
@@ -35,8 +35,7 @@
 
 }  // namespace
 
-// TODO(crbug.com/393179880): Port this to desktop Android after
-// ExtensionActionRunner is ported.
+// TODO(crbug.com/393179880): Port this to desktop Android.
 class SitePermissionsHelperBrowserTest : public ExtensionBrowserTest {
  public:
   SitePermissionsHelperBrowserTest() = default;
diff --git a/chrome/browser/extensions/permissions/site_permissions_helper_unittest.cc b/chrome/browser/extensions/permissions/site_permissions_helper_unittest.cc
index 449c407489..926a899 100644
--- a/chrome/browser/extensions/permissions/site_permissions_helper_unittest.cc
+++ b/chrome/browser/extensions/permissions/site_permissions_helper_unittest.cc
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/extensions/extension_action_runner.h"
 #include "chrome/browser/extensions/extension_service_test_with_install.h"
 #include "chrome/browser/extensions/permissions/permissions_updater.h"
 #include "chrome/browser/extensions/permissions/scripting_permissions_modifier.h"
@@ -25,10 +26,6 @@
 #include "extensions/common/permissions/permissions_data.h"
 #include "extensions/test/permissions_manager_waiter.h"
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/extension_action_runner.h"
-#endif
-
 static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
 
 namespace extensions {
@@ -273,9 +270,6 @@
             SiteInteraction::kNone);
 }
 
-// TODO(crbug.com/393179880): Port these tests to desktop Android after
-// ExtensionActionRunner is ported.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
 // Tests that updating site access only applies to the specified extensions for
 // the current site.
 TEST_F(SitePermissionsHelperUnitTest, UpdateSiteAccess_OnlySiteSelected) {
@@ -455,6 +449,5 @@
       extension->permissions_data()->GetPageAccess(
           non_user_permitted_site, extension_misc::kUnknownTabId, nullptr));
 }
-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc
index 5cd381ea..4dbf284 100644
--- a/chrome/browser/extensions/tab_helper.cc
+++ b/chrome/browser/extensions/tab_helper.cc
@@ -11,6 +11,7 @@
 #include "base/notreached.h"
 #include "build/build_config.h"
 #include "chrome/browser/extensions/activity_log/activity_log.h"
+#include "chrome/browser/extensions/extension_action_runner.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/extensions/permissions/active_tab_permission_granter.h"
 #include "chrome/browser/extensions/permissions/site_permissions_helper.h"
@@ -37,11 +38,6 @@
 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h"
 #endif
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/app_tab_helper.h"
-#include "chrome/browser/extensions/extension_action_runner.h"
-#endif
-
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 #include "chrome/browser/sessions/session_service.h"
 #include "chrome/browser/sessions/session_service_factory.h"
@@ -76,12 +72,8 @@
       content::WebContentsUserData<TabHelper>(*web_contents),
       profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())),
       script_executor_(std::make_unique<ScriptExecutor>(web_contents)),
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-      // TODO(crbug.com/393179880): Port ExtensionActionRunner to desktop
-      // Android.
       extension_action_runner_(
           std::make_unique<ExtensionActionRunner>(web_contents)),
-#endif
       declarative_net_request_helper_(web_contents) {
   // The ActiveTabPermissionManager requires a session ID; ensure this
   // WebContents has one.
@@ -94,10 +86,6 @@
   // tab id assignment can be done on desktop Android.
   ActiveTabPermissionGranter::CreateForWebContents(web_contents, tab_id,
                                                    profile_);
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-  // TODO(crbug.com/393179880): Pull this creation out of TabHelper.
-  AppTabHelper::CreateForWebContents(web_contents);
-#endif
 
   ActivityLog::GetInstance(profile_)->ObserveScripts(script_executor_.get());
 
diff --git a/chrome/browser/extensions/tab_helper.h b/chrome/browser/extensions/tab_helper.h
index 58fd605..78d38530 100644
--- a/chrome/browser/extensions/tab_helper.h
+++ b/chrome/browser/extensions/tab_helper.h
@@ -55,11 +55,9 @@
     return script_executor_.get();
   }
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   ExtensionActionRunner* extension_action_runner() {
     return extension_action_runner_.get();
   }
-#endif
 
   void OnWatchedPageChanged(const std::vector<std::string>& css_selectors);
 
@@ -100,9 +98,7 @@
 
   std::unique_ptr<ScriptExecutor> script_executor_;
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
   std::unique_ptr<ExtensionActionRunner> extension_action_runner_;
-#endif
 
   declarative_net_request::WebContentsHelper declarative_net_request_helper_;
 
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index dfe920d..340d8a52 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -560,7 +560,7 @@
   {
     "name": "ash-limit-shelf-items-to-active-desk",
     "owners": [ "dandersson@chromium.org", "janetmac@chromium.org" ],
-    "expiry_milestone": 135
+    "expiry_milestone": 200
   },
   {
     "name": "ash-modifier-split",
@@ -2452,6 +2452,11 @@
     "expiry_milestone": 145
   },
   {
+    "name": "edge-to-edge-tablet",
+    "owners": ["lazzzis@google.com", "wenyufu@chromium.org","twellington@chromium.org", "edge-to-edge@chromium.org"],
+    "expiry_milestone": 145
+  },
+  {
     "name": "edge-to-edge-web-opt-in",
     "owners": ["clhager@google.com", "wenyufu@chromium.org","twellington@chromium.org", "edge-to-edge@chromium.org"],
     "expiry_milestone": 142
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index b3e72af8..581594cb 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -4828,6 +4828,10 @@
     "Ensure web content is constrained to within the safe area if safe area "
     "constraint is presents on a given web page.";
 
+const char kEdgeToEdgeTabletName[] = "EdgeToEdgeTablet";
+const char kEdgeToEdgeTabletDescription[] =
+    "Enables the Android feature Edge-to-Edge on tablets";
+
 const char kEdgeToEdgeWebOptInName[] = "EdgeToEdgeWebOptIn";
 const char kEdgeToEdgeWebOptInDescription[] =
     "Enables Chrome to draw below the Nav Bar on websites that have explicitly "
@@ -8331,10 +8335,6 @@
 const char kGlicZOrderChangesName[] = "Glic Z Order Changes";
 const char kGlicZOrderChangesDescription[] = "Enables glic z order changing";
 
-const char kGlicUserResizeName[] = "Glic User Resize";
-const char kGlicUserResizeDescription[] =
-    "Enables resizing the glic panel by dragging";
-
 const char kDesktopPWAsUserLinkCapturingScopeExtensionsName[] =
     "Desktop PWA Link Capturing with Scope Extensions";
 const char kDesktopPWAsUserLinkCapturingScopeExtensionsDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 11e52f4..8e3b4a3d 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2849,6 +2849,9 @@
 extern const char kEdgeToEdgeSafeAreaConstraintName[];
 extern const char kEdgeToEdgeSafeAreaConstraintDescription[];
 
+extern const char kEdgeToEdgeTabletName[];
+extern const char kEdgeToEdgeTabletDescription[];
+
 extern const char kEdgeToEdgeWebOptInName[];
 extern const char kEdgeToEdgeWebOptInDescription[];
 
@@ -4931,9 +4934,6 @@
 extern const char kGlicZOrderChangesName[];
 extern const char kGlicZOrderChangesDescription[];
 
-extern const char kGlicUserResizeName[];
-extern const char kGlicUserResizeDescription[];
-
 extern const char kDesktopPWAsUserLinkCapturingScopeExtensionsName[];
 extern const char kDesktopPWAsUserLinkCapturingScopeExtensionsDescription[];
 
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index 6865c050..50eb9279 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -284,6 +284,7 @@
     &kEdgeToEdgeEverywhere,
     &kEdgeToEdgeMonitorConfigurations,
     &kEdgeToEdgeSafeAreaConstraint,
+    &kEdgeToEdgeTablet,
     &kEdgeToEdgeWebOptIn,
     &kEducationalTipDefaultBrowserPromoCard,
     &kEmptyTabListAnimationKillSwitch,
@@ -912,6 +913,10 @@
              "EdgeToEdgeSafeAreaConstraint",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
+BASE_FEATURE(kEdgeToEdgeTablet,
+             "EdgeToEdgeTablet",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 BASE_FEATURE(kEdgeToEdgeWebOptIn,
              "EdgeToEdgeWebOptIn",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
index d356ed3a..c4e218b4 100644
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -125,6 +125,7 @@
 BASE_DECLARE_FEATURE(kEdgeToEdgeMonitorConfigurations);
 BASE_DECLARE_FEATURE(kEdgeToEdgeWebOptIn);
 BASE_DECLARE_FEATURE(kEdgeToEdgeSafeAreaConstraint);
+BASE_DECLARE_FEATURE(kEdgeToEdgeTablet);
 BASE_DECLARE_FEATURE(kEducationalTipDefaultBrowserPromoCard);
 BASE_DECLARE_FEATURE(kEmptyTabListAnimationKillSwitch);
 BASE_DECLARE_FEATURE(kEnableXAxisActivityTransition);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index 9df27c4c..ba4ee7a 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -359,6 +359,7 @@
             "EdgeToEdgeMonitorConfigurations";
     public static final String EDGE_TO_EDGE_EVERYWHERE = "EdgeToEdgeEverywhere";
     public static final String EDGE_TO_EDGE_SAFE_AREA_CONSTRAINT = "EdgeToEdgeSafeAreaConstraint";
+    public static final String EDGE_TO_EDGE_TABLET = "EdgeToEdgeTablet";
     public static final String EDGE_TO_EDGE_WEB_OPT_IN = "EdgeToEdgeWebOptIn";
     public static final String EDUCATIONAL_TIP_DEFAULT_BROWSER_PROMO_CARD =
             "EducationalTipDefaultBrowserPromoCard";
@@ -754,6 +755,7 @@
                     EDGE_TO_EDGE_EVERYWHERE,
                     /* defaultValue= */ false,
                     /* defaultValueInTests= */ true);
+    public static final CachedFlag sEdgeToEdgeTablet = newCachedFlag(EDGE_TO_EDGE_TABLET, false);
     public static final CachedFlag sEdgeToEdgeWebOptIn =
             newCachedFlag(EDGE_TO_EDGE_WEB_OPT_IN, true);
     public static final CachedFlag sEducationalTipDefaultBrowserPromoCard =
@@ -949,6 +951,7 @@
                     sEdgeToEdgeBottomChin,
                     sEdgeToEdgeEverywhere,
                     sEdgeToEdgeMonitorConfigurations,
+                    sEdgeToEdgeTablet,
                     sEdgeToEdgeWebOptIn,
                     sEducationalTipDefaultBrowserPromoCard,
                     sEducationalTipModule,
diff --git a/chrome/browser/glic/BUILD.gn b/chrome/browser/glic/BUILD.gn
index 26b899c..48393094 100644
--- a/chrome/browser/glic/BUILD.gn
+++ b/chrome/browser/glic/BUILD.gn
@@ -152,6 +152,7 @@
     "//chrome/browser/media/webrtc",
     "//chrome/browser/optimization_guide",
     "//chrome/browser/profiles:profile_util",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/resources/glic:resources",
     "//chrome/browser/resources/glic/fre:resources",
     "//chrome/browser/themes:themes",
diff --git a/chrome/browser/glic/host/glic.mojom b/chrome/browser/glic/host/glic.mojom
index f61c880..303ea62 100644
--- a/chrome/browser/glic/host/glic.mojom
+++ b/chrome/browser/glic/host/glic.mojom
@@ -109,8 +109,7 @@
   ResizeWidget(gfx.mojom.Size size, mojo_base.mojom.TimeDelta duration) => ();
 
   // Set whether the panel can be manually resized, or if the panel hasn't been
-  // created yet, whether it should be resizable when created. No effect if the
-  // GlicUserResize feature flag is disabled.
+  // created yet, whether it should be resizable when created.
   EnableDragResize(bool enabled);
 
   // Notifies the PageHandler that the state of the WebUI has changed.
@@ -201,8 +200,6 @@
   bool enable_act_in_focused_tab;
   // Whether features::kGlicScrollTo is enabled.
   bool enable_scroll_to;
-  // Whether features::kGlicUserResize is enabled.
-  bool enable_drag_to_resize_panel;
   // Whether features::kGlicClosedCaptioning is enabled.
   bool enable_closed_captioning_feature;
   // Whether the glic closed captioning setting is enabled.
@@ -281,8 +278,10 @@
 };
 
 // Note: This must be kept in sync with the corresponding enum (same name) in
-// glic_api.ts
+// glic_api.ts. The enums are also recorded as histograms when they are
+// reported.
 // Next version: 7
+// LINT.IfChange(ScrollToErrorReason)
 [Stable, Extensible]
 enum ScrollToErrorReason {
   // Default error reason. Used when the browser doesn't support ScrollTo, the
@@ -315,6 +314,7 @@
   // Page context access is disabled.
   [MinVersion=6] kTabContextPermissionDisabled,
 };
+// LINT.ThenChange(//tools/metrics/histograms/metadata/glic/enums.xml:GlicScrollToErrorReason)
 
 // A single suggestion.
 struct SuggestionContent {
@@ -599,8 +599,7 @@
   gfx.mojom.Size? panelSize;
   // Resize animation duration.
   mojo_base.mojom.TimeDelta resizeDuration;
-  // Whether the panel should start out user-resizable. No effect if the GlicUserResize feature
-  // flag is disabled.
+  // Whether the panel should start out user-resizable.
   bool can_user_resize;
 };
 
diff --git a/chrome/browser/glic/host/glic_actor_controller.cc b/chrome/browser/glic/host/glic_actor_controller.cc
index 9cc1a43..53892dd 100644
--- a/chrome/browser/glic/host/glic_actor_controller.cc
+++ b/chrome/browser/glic/host/glic_actor_controller.cc
@@ -11,6 +11,8 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/task/sequenced_task_runner.h"
 #include "chrome/browser/actor/actor_coordinator.h"
+#include "chrome/browser/actor/actor_keyed_service.h"
+#include "chrome/browser/actor/actor_task.h"
 #include "chrome/browser/glic/host/context/glic_page_context_fetcher.h"
 #include "chrome/browser/glic/host/glic.mojom.h"
 #include "chrome/common/actor.mojom.h"
@@ -76,17 +78,21 @@
     const optimization_guide::proto::BrowserAction& action,
     const mojom::GetTabContextOptions& options,
     mojom::WebClientHandler::ActInFocusedTabCallback callback) {
-  if (!actor_coordinator_) {
-    actor_coordinator_ = std::make_unique<actor::ActorCoordinator>(profile_);
+  if (!actor_task_ ||
+      actor_task_->GetState() == actor::ActorTask::State::kFinished) {
+    auto task = std::make_unique<actor::ActorTask>(
+        std::make_unique<actor::ActorCoordinator>(profile_));
+    actor_task_ = task.get();
+    actor::ActorKeyedService::Get(profile_.get())->AddTask(std::move(task));
   }
 
-  if (!actor_coordinator_->HasTask()) {
+  if (!GetActorCoordinator() || !GetActorCoordinator()->HasTask()) {
     // Start of a new task, which must begin with a navigate action.
     // The OnTaskStarted callback will perform the action after the task is
     // setup by the coordinator.
     // TODO(https://crbug.com/407860715): Implement a separate host API to start
     // a task, and remove action handling here.
-    actor_coordinator_->StartTask(
+    GetActorCoordinator()->StartTask(
         action,
         base::BindOnce(&GlicActorController::OnTaskStarted, GetWeakPtr(),
                        action, options, std::move(callback)));
@@ -97,22 +103,26 @@
 }
 
 void GlicActorController::StopTask() {
-  if (!actor_coordinator_) {
+  if (!GetActorCoordinator()) {
     return;
   }
-  actor_coordinator_->StopTask();
+  GetActorCoordinator()->StopTask();
+  actor_task_->SetState(actor::ActorTask::State::kFinished);
 }
 
 bool GlicActorController::IsActorCoordinatorActingOnTab(
     const content::WebContents* tab) const {
-  return actor_coordinator_ && actor_coordinator_->HasTaskForTab(tab);
+  return GetActorCoordinator() && GetActorCoordinator()->HasTaskForTab(tab);
 }
 
 actor::ActorCoordinator& GlicActorController::GetActorCoordinatorForTesting() {
-  if (!actor_coordinator_) {
-    actor_coordinator_ = std::make_unique<actor::ActorCoordinator>(profile_);
+  if (!actor_task_) {
+    auto task = std::make_unique<actor::ActorTask>(
+        std::make_unique<actor::ActorCoordinator>(profile_));
+    actor_task_ = task.get();
+    actor::ActorKeyedService::Get(profile_.get())->AddTask(std::move(task));
   }
-  return *actor_coordinator_;
+  return *actor_task_->GetActorCoordinator();
 }
 
 void GlicActorController::OnTaskStarted(
@@ -137,7 +147,7 @@
     const optimization_guide::proto::BrowserAction& action,
     const mojom::GetTabContextOptions& options,
     mojom::WebClientHandler::ActInFocusedTabCallback callback) const {
-  actor_coordinator_->Act(
+  GetActorCoordinator()->Act(
       action,
       base::BindOnce(&GlicActorController::OnActionFinished, GetWeakPtr(),
                      focused_tab_data, options, std::move(callback)));
@@ -180,4 +190,11 @@
 base::WeakPtr<GlicActorController> GlicActorController::GetWeakPtr() {
   return weak_ptr_factory_.GetWeakPtr();
 }
+
+actor::ActorCoordinator* GlicActorController::GetActorCoordinator() const {
+  if (!actor_task_) {
+    return nullptr;
+  }
+  return actor_task_->GetActorCoordinator();
+}
 }  // namespace glic
diff --git a/chrome/browser/glic/host/glic_actor_controller.h b/chrome/browser/glic/host/glic_actor_controller.h
index 702d418..6d9e2506 100644
--- a/chrome/browser/glic/host/glic_actor_controller.h
+++ b/chrome/browser/glic/host/glic_actor_controller.h
@@ -5,21 +5,18 @@
 #ifndef CHROME_BROWSER_GLIC_HOST_GLIC_ACTOR_CONTROLLER_H_
 #define CHROME_BROWSER_GLIC_HOST_GLIC_ACTOR_CONTROLLER_H_
 
-#include <cstddef>
-#include <memory>
-#include <vector>
-
 #include "base/functional/callback_forward.h"
+#include "base/memory/weak_ptr.h"
 #include "chrome/browser/glic/host/context/glic_tab_data.h"
 #include "chrome/browser/glic/host/glic.mojom.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/common/actor.mojom-forward.h"
 #include "components/optimization_guide/proto/features/actions_data.pb.h"
 
-class Profile;
-
 namespace actor {
 class ActorCoordinator;
-}
+class ActorTask;
+}  // namespace actor
 
 namespace content {
 class WebContents;
@@ -43,7 +40,7 @@
   void Act(FocusedTabData focused_tab_data,
            const optimization_guide::proto::BrowserAction& action,
            const mojom::GetTabContextOptions& options,
-           glic::mojom::WebClientHandler::ActInFocusedTabCallback callback);
+           mojom::WebClientHandler::ActInFocusedTabCallback callback);
 
   void StopTask();
 
@@ -54,37 +51,38 @@
  private:
   // Handles a new task being started, and then performs the action that
   // initiated the task.
-  void OnTaskStarted(
-      const optimization_guide::proto::BrowserAction& action,
-      const mojom::GetTabContextOptions& options,
-      glic::mojom::WebClientHandler::ActInFocusedTabCallback callback,
-      base::WeakPtr<tabs::TabInterface> tab) const;
+  void OnTaskStarted(const optimization_guide::proto::BrowserAction& action,
+                     const mojom::GetTabContextOptions& options,
+                     mojom::WebClientHandler::ActInFocusedTabCallback callback,
+                     base::WeakPtr<tabs::TabInterface> tab) const;
 
   // Core logic to execute an action.
-  void ActImpl(
-      FocusedTabData focused_tab_data,
-      const optimization_guide::proto::BrowserAction& action,
-      const mojom::GetTabContextOptions& options,
-      glic::mojom::WebClientHandler::ActInFocusedTabCallback callback) const;
+  void ActImpl(FocusedTabData focused_tab_data,
+               const optimization_guide::proto::BrowserAction& action,
+               const mojom::GetTabContextOptions& options,
+               mojom::WebClientHandler::ActInFocusedTabCallback callback) const;
 
   // Handles the result of the action, returning new page context if necessary.
   void OnActionFinished(
       FocusedTabData focused_tab_data,
       const mojom::GetTabContextOptions& options,
-      glic::mojom::WebClientHandler::ActInFocusedTabCallback callback,
+      mojom::WebClientHandler::ActInFocusedTabCallback callback,
       actor::mojom::ActionResultPtr result) const;
 
   void GetContextFromFocusedTab(
       FocusedTabData focused_tab_data,
       const mojom::GetTabContextOptions& options,
-      glic::mojom::WebClientHandler::GetContextFromFocusedTabCallback callback)
-      const;
+      mojom::WebClientHandler::GetContextFromFocusedTabCallback callback) const;
+
+  actor::ActorCoordinator* GetActorCoordinator() const;
 
   base::WeakPtr<const GlicActorController> GetWeakPtr() const;
   base::WeakPtr<GlicActorController> GetWeakPtr();
 
   raw_ptr<Profile> profile_;
-  std::unique_ptr<actor::ActorCoordinator> actor_coordinator_;
+  // The most recently created task, or nullptr if no task has ever been
+  // created.
+  raw_ptr<actor::ActorTask> actor_task_ = nullptr;
   base::WeakPtrFactory<GlicActorController> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/browser/glic/host/glic_annotation_manager.cc b/chrome/browser/glic/host/glic_annotation_manager.cc
index 516c1a2..0b968b36 100644
--- a/chrome/browser/glic/host/glic_annotation_manager.cc
+++ b/chrome/browser/glic/host/glic_annotation_manager.cc
@@ -7,6 +7,7 @@
 #include <optional>
 
 #include "base/callback_list.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/state_transitions.h"
 #include "base/strings/escape.h"
 #include "chrome/browser/glic/glic_keyed_service.h"
@@ -24,6 +25,32 @@
 
 namespace glic {
 
+namespace {
+void RunScrollToCallback(mojom::WebClientHandler::ScrollToCallback callback,
+                         std::optional<mojom::ScrollToErrorReason> error) {
+  if (error) {
+    base::UmaHistogramEnumeration("Glic.ScrollTo.ErrorReason", *error);
+  }
+  std::move(callback).Run(error);
+}
+
+std::string AttachmentResultToString(blink::mojom::AttachmentResult result) {
+  std::string string;
+  switch (result) {
+    case blink::mojom::AttachmentResult::kSuccess:
+      string = "Success";
+      break;
+    case blink::mojom::AttachmentResult::kSelectorNotMatched:
+      string = "SelectorNotMatched";
+      break;
+    case blink::mojom::AttachmentResult::kRangeInvalid:
+      string = "RangeInvalid";
+      break;
+  }
+  return string;
+}
+}  // namespace
+
 GlicAnnotationManager::GlicAnnotationManager(GlicKeyedService* service)
     : service_(service) {}
 
@@ -38,6 +65,8 @@
   }
   annotation_task_.reset();
 
+  mojom::WebClientHandler::ScrollToCallback wrapped_callback =
+      base::BindOnce(&RunScrollToCallback, std::move(callback));
   mojom::ScrollToSelector* selector = params->selector.get();
   std::optional<shared_highlighting::TextFragment> text_fragment;
   std::optional<int> search_range_start_node_id = std::nullopt;
@@ -47,7 +76,8 @@
     auto* exact_text_selector = selector->get_exact_text_selector().get();
     const std::string& exact_text = exact_text_selector->text;
     if (exact_text.empty()) {
-      std::move(callback).Run(mojom::ScrollToErrorReason::kNotSupported);
+      std::move(wrapped_callback)
+          .Run(mojom::ScrollToErrorReason::kNotSupported);
       return;
     }
     if (exact_text_selector->search_range_start_node_id.has_value()) {
@@ -65,12 +95,14 @@
     auto* text_fragment_selector = selector->get_text_fragment_selector().get();
     const std::string& text_start = text_fragment_selector->text_start;
     if (text_start.empty()) {
-      std::move(callback).Run(mojom::ScrollToErrorReason::kNotSupported);
+      std::move(wrapped_callback)
+          .Run(mojom::ScrollToErrorReason::kNotSupported);
       return;
     }
     const std::string& text_end = text_fragment_selector->text_end;
     if (text_end.empty()) {
-      std::move(callback).Run(mojom::ScrollToErrorReason::kNotSupported);
+      std::move(wrapped_callback)
+          .Run(mojom::ScrollToErrorReason::kNotSupported);
       return;
     }
     if (text_fragment_selector->search_range_start_node_id.has_value()) {
@@ -106,8 +138,8 @@
 
   if (!service_->profile()->GetPrefs()->GetBoolean(
           prefs::kGlicTabContextEnabled)) {
-    std::move(callback).Run(
-        mojom::ScrollToErrorReason::kTabContextPermissionDisabled);
+    std::move(wrapped_callback)
+        .Run(mojom::ScrollToErrorReason::kTabContextPermissionDisabled);
     return;
   }
 
@@ -117,7 +149,7 @@
     focused_primary_page = &focused_tab_data.focus()->GetPrimaryPage();
   }
   if (!focused_primary_page) {
-    std::move(callback).Run(mojom::ScrollToErrorReason::kNoFocusedTab);
+    std::move(wrapped_callback).Run(mojom::ScrollToErrorReason::kNoFocusedTab);
     return;
   }
 
@@ -125,7 +157,7 @@
   // `focused_primary_page` will be non-null when `GlicWindowController` is
   // running the close animation.
   if (!service_->window_controller().IsShowing()) {
-    std::move(callback).Run(mojom::ScrollToErrorReason::kNoFocusedTab);
+    std::move(wrapped_callback).Run(mojom::ScrollToErrorReason::kNoFocusedTab);
     return;
   }
 
@@ -149,7 +181,7 @@
   const bool fail_without_document_id =
       features::kGlicScrollToEnforceDocumentId.Get();
   if (fail_without_document_id && !params->document_id) {
-    std::move(callback).Run(glic::mojom::ScrollToErrorReason::kNotSupported);
+    std::move(wrapped_callback).Run(mojom::ScrollToErrorReason::kNotSupported);
     return;
   }
 
@@ -164,8 +196,8 @@
     if (!document_identifier_user_data ||
         document_identifier_user_data->serialized_token() !=
             params->document_id) {
-      std::move(callback).Run(
-          glic::mojom::ScrollToErrorReason::kNoMatchingDocument);
+      std::move(wrapped_callback)
+          .Run(mojom::ScrollToErrorReason::kNoMatchingDocument);
       return;
     }
   }
@@ -189,7 +221,7 @@
       search_range_start_node_id);
   annotation_task_ = std::make_unique<AnnotationTask>(
       this, std::move(agent_remote), std::move(agent_host_receiver),
-      std::move(callback), *focused_primary_page);
+      std::move(wrapped_callback), *focused_primary_page);
 }
 
 GlicAnnotationManager::AnnotationTask::AnnotationTask(
@@ -204,7 +236,8 @@
       annotation_agent_host_receiver_(this,
                                       std::move(agent_host_pending_receiver)),
       scroll_to_callback_(std::move(callback)),
-      page_(page.GetWeakPtr()) {
+      page_(page.GetWeakPtr()),
+      start_time_(base::TimeTicks::Now()) {
   GlicKeyedService* service = annotation_manager_->service_;
   CHECK(service);
   // Using base::Unretained is safe here because `this` owns the subscription.
@@ -335,10 +368,10 @@
   switch (attachment_result) {
     case blink::mojom::AttachmentResult::kSelectorNotMatched:
       FailTask(mojom::ScrollToErrorReason::kNoMatchFound);
-      return;
+      break;
     case blink::mojom::AttachmentResult::kRangeInvalid:
       FailTask(mojom::ScrollToErrorReason::kSearchRangeInvalid);
-      return;
+      break;
     case blink::mojom::AttachmentResult::kSuccess:
       SetState(State::kActive);
       annotation_agent_->ScrollIntoView(/*applies_focus=*/true);
@@ -354,6 +387,10 @@
           content::WebContents::FromRenderFrameHost(&page_->GetMainDocument()));
       break;
   }
+  base::UmaHistogramTimes(
+      base::StringPrintf("Glic.ScrollTo.MatchDuration.%s",
+                         AttachmentResultToString(attachment_result)),
+      base::TimeTicks::Now() - start_time_);
 }
 
 // Note: We explicitly listen for `PrimaryPageChanged` to drop the highlight
diff --git a/chrome/browser/glic/host/glic_annotation_manager.h b/chrome/browser/glic/host/glic_annotation_manager.h
index 9f55f24..0249c8c 100644
--- a/chrome/browser/glic/host/glic_annotation_manager.h
+++ b/chrome/browser/glic/host/glic_annotation_manager.h
@@ -147,6 +147,9 @@
 
     // Current state of the task, see documentation for `State`.
     State state_ = State::kRunning;
+
+    // Used to record the match duration of `ScrollTo()`.
+    const base::TimeTicks start_time_;
   };
 
   // See documentation for `annotation_agent_container_` below.
diff --git a/chrome/browser/glic/host/glic_annotation_manager_interactive_uitest.cc b/chrome/browser/glic/host/glic_annotation_manager_interactive_uitest.cc
index 1c3d213..7ac4828 100644
--- a/chrome/browser/glic/host/glic_annotation_manager_interactive_uitest.cc
+++ b/chrome/browser/glic/host/glic_annotation_manager_interactive_uitest.cc
@@ -133,6 +133,7 @@
   ~GlicAnnotationManagerUiTest() override = default;
 
   void SetUpOnMainThread() override {
+    histogram_tester_ = std::make_unique<base::HistogramTester>();
     embedded_test_server()->ServeFilesFromSourceDirectory("content/test/data");
     InteractiveGlicTest::SetUpOnMainThread();
   }
@@ -172,13 +173,19 @@
   using NodeIdCallback = base::OnceCallback<int()>;
   using Selector = base::OnceCallback<base::Value::Dict()>;
   auto ScrollTo(Selector selector) {
-    return Steps(CheckJsResult(kGlicContentsElementId,
-                               content::JsReplace(R"js(
-                        () => {
-                          return client.browser.scrollTo({selector: $1});
-                        }
-                      )js",
-                                                  std::move(selector).Run())));
+    static constexpr char kScrollToJs[] =
+        R"js( () => { return client.browser.scrollTo({selector: $1}); } )js";
+    return Steps(
+        Do([&]() {
+          histogram_tester_ = std::make_unique<base::HistogramTester>();
+        }),
+        CheckJsResult(
+            kGlicContentsElementId,
+            content::JsReplace(kScrollToJs, std::move(selector).Run())),
+        Do([&]() {
+          histogram_tester_->ExpectTotalCount(
+              "Glic.ScrollTo.MatchDuration.Success", 1);
+        }));
   }
 
   // Similar to the above method, but also includes documentId in the params.
@@ -211,18 +218,21 @@
   // Note: This will fail the test if the promise succeeds.
   auto ScrollToExpectingError(Selector selector,
                               mojom::ScrollToErrorReason error_reason) {
-    return Steps(CheckJsResult(kGlicContentsElementId,
-                               content::JsReplace(R"js(
-                        async () => {
-                          try {
-                            await client.browser.scrollTo({selector: $1});
-                          } catch (err) {
-                            return err.reason;
-                          }
-                        }
-                      )js",
-                                                  std::move(selector).Run()),
-                               ::testing::Eq(static_cast<int>(error_reason))));
+    static constexpr char kScrollToJs[] =
+        R"js(
+          async () => {
+            try {
+              await client.browser.scrollTo({selector: $1});
+            } catch (err) {
+              return err.reason;
+            }
+          }
+        )js";
+    return Steps(CheckJsResult(
+                     kGlicContentsElementId,
+                     content::JsReplace(kScrollToJs, std::move(selector).Run()),
+                     ::testing::Eq(static_cast<int>(error_reason))),
+                 ExpectErrorRecorded(error_reason));
   }
 
   // Similar to the above method, but also includes documentId and domNodeId in
@@ -232,49 +242,51 @@
       Selector selector,
       mojom::ScrollToErrorReason error_reason,
       std::optional<std::string> document_id = std::nullopt) {
-    return Steps(InAnyContext(WithElement(
-        kGlicContentsElementId,
-        [&, selector = std::move(selector), error_reason,
-         document_id](ui::TrackedElement* el) mutable {
-          content::WebContents* glic_contents =
-              AsInstrumentedWebContents(el)->web_contents();
-          std::string script = content::JsReplace(
-              R"js(
-                (async () => {
-                  try {
-                    await client.browser.scrollTo({
-                      selector: $1,
-                      documentId: $2
-                    });
-                  } catch (err) {
-                    return err.reason;
-                  }
-                })();
-              )js",
-              std::move(selector).Run(),
-              document_id.value_or(GetDocumentIdFromAnnotatedPageContent()));
-          EXPECT_EQ(content::EvalJs(glic_contents, std::move(script)),
-                    static_cast<int>(error_reason));
-        })));
+    auto step_callback = [&, selector = std::move(selector), error_reason,
+                          document_id](ui::TrackedElement* el) mutable {
+      content::WebContents* glic_contents =
+          AsInstrumentedWebContents(el)->web_contents();
+      std::string script = content::JsReplace(
+          R"js(
+            (async () => {
+              try {
+                await client.browser.scrollTo({
+                  selector: $1,
+                  documentId: $2
+                });
+              } catch (err) {
+                return err.reason;
+              }
+            })();
+          )js",
+          std::move(selector).Run(),
+          document_id.value_or(GetDocumentIdFromAnnotatedPageContent()));
+      EXPECT_EQ(content::EvalJs(glic_contents, std::move(script)),
+                static_cast<int>(error_reason));
+    };
+    return Steps(InAnyContext(WithElement(kGlicContentsElementId,
+                                          std::move(step_callback))),
+                 ExpectErrorRecorded(error_reason));
   }
 
   // Calls scrollTo() and returns immediately.
   auto ScrollToAsync(Selector selector) {
+    static constexpr char kScrollToJs[] =
+        R"js(
+          () => {
+            window.scrollToPromise = client.browser.scrollTo({selector: $1});
+          }
+        )js";
     return Steps(
         ExecuteJs(kGlicContentsElementId,
-                  content::JsReplace(
-                      R"js(
-      () => {
-        window.scrollToPromise = client.browser.scrollTo({selector: $1});
-      }
-    )js",
-                      std::move(selector).Run()),
+                  content::JsReplace(kScrollToJs, std::move(selector).Run()),
                   InteractiveBrowserTestApi::ExecuteJsMode::kFireAndForget));
   }
 
   // Should be used in combination with ScrollToAsync() above.
   auto WaitForScrollToError(mojom::ScrollToErrorReason error_reason) {
-    return Steps(CheckJsResult(kGlicContentsElementId, R"js(
+    return Steps(
+        CheckJsResult(kGlicContentsElementId, R"js(
           () => {
             return new Promise(resolve => {
               window.scrollToPromise.catch(e => {
@@ -283,7 +295,8 @@
             });
           }
         )js",
-                               ::testing::Eq(static_cast<int>(error_reason))));
+                      ::testing::Eq(static_cast<int>(error_reason))),  //
+        ExpectErrorRecorded(error_reason));
   }
 
   // Creates a new FakeAnnotationAgentContainer, and updates the remote
@@ -345,6 +358,14 @@
     });
   }
 
+  InteractiveTestApi::MultiStep ExpectErrorRecorded(
+      mojom::ScrollToErrorReason reason) {
+    return Steps(Do([this, reason]() {
+      histogram_tester_->ExpectUniqueSample("Glic.ScrollTo.ErrorReason", reason,
+                                            1u);
+    }));
+  }
+
   Selector ExactTextSelector(
       std::string text,
       std::optional<NodeIdCallback> node_id_cb = std::nullopt) {
@@ -421,28 +442,29 @@
   base::CallbackListSubscription focused_tab_change_subscription_;
   std::unique_ptr<optimization_guide::proto::AnnotatedPageContent>
       annotated_page_content_;
+  std::unique_ptr<base::HistogramTester> histogram_tester_;
 };
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, ScrollToExactText) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      ScrollTo(ExactTextSelector("Some text")),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),              //
+                  ScrollTo(ExactTextSelector("Some text")),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, ScrollToTextFragment) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      ScrollTo(TextFragmentSelector("Some", "text")),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  ScrollTo(TextFragmentSelector("Some", "text")),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, NoMatchFound) {
@@ -451,7 +473,8 @@
       NavigateWebContents(
           kActiveTabId,
           embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
+      OpenGlicWindow(GlicWindowMode::kDetached),  //
+      SetTabContextPermission(true),
       ScrollToExpectingError(ExactTextSelector("Text does not exist"),
                              mojom::ScrollToErrorReason::kNoMatchFound));
 }
@@ -534,7 +557,8 @@
               });
             }
           )js",
-          static_cast<int>(mojom::ScrollToErrorReason::kNewerScrollToCall)));
+          static_cast<int>(mojom::ScrollToErrorReason::kNewerScrollToCall)),
+      ExpectErrorRecorded(mojom::ScrollToErrorReason::kNewerScrollToCall));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
@@ -548,7 +572,8 @@
       SetTabContextPermission(true),
       InsertFakeAnnotationService(),  //
       ScrollToAsync(ExactTextSelector("does not matter")),
-      WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived), Do([&]() {
+      WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived),  //
+      Do([&]() {
         fake_service()->NotifyAttachment(
             gfx::Rect(20, 20), blink::mojom::AttachmentResult::kSuccess);
       }),
@@ -573,7 +598,8 @@
       FocusWebContents(kGlicContentsElementId),  //
       InsertFakeAnnotationService(),             //
       ScrollToAsync(ExactTextSelector("does not matter")),
-      WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived), Do([&]() {
+      WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived),  //
+      Do([&]() {
         fake_service()->NotifyAttachment(
             gfx::Rect(20, 20), blink::mojom::AttachmentResult::kSuccess);
       }),
@@ -637,17 +663,17 @@
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
                        TwoSuccessfulScrollToCalls) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),  //
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      ScrollTo(ExactTextSelector("Some text")),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"),
-      ExecuteJs(kActiveTabId, "() => { did_scroll = false; }"),
-      ScrollTo(ExactTextSelector("Go Down")),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),  //
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),              //
+                  ScrollTo(ExactTextSelector("Some text")),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"),
+                  ExecuteJs(kActiveTabId, "() => { did_scroll = false; }"),
+                  ScrollTo(ExactTextSelector("Go Down")),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
@@ -657,7 +683,8 @@
       NavigateWebContents(
           kActiveTabId,
           embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
+      OpenGlicWindow(GlicWindowMode::kDetached),  //
+      SetTabContextPermission(true),
       InsertFakeAnnotationService(),  //
       ScrollToAsync(ExactTextSelector("does not matter")),
       WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived),  //
@@ -674,29 +701,29 @@
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, WithDocumentId) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentId(ExactTextSelector("Some text")),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentId(ExactTextSelector("Some text")),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, WithUnknownDocumentId) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentIdExpectingError(
-          ExactTextSelector("Some text"),
-          mojom::ScrollToErrorReason::kNoMatchingDocument,
-          base::UnguessableToken().Create().ToString()));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentIdExpectingError(
+                      ExactTextSelector("Some text"),
+                      mojom::ScrollToErrorReason::kNoMatchingDocument,
+                      base::UnguessableToken().Create().ToString()));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
@@ -706,7 +733,8 @@
       NavigateWebContents(
           kActiveTabId,
           embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
+      OpenGlicWindow(GlicWindowMode::kDetached),  //
+      SetTabContextPermission(true),
       GetPageContextFromFocusedTab(),  //
       NavigateWebContents(kActiveTabId,
                           embedded_test_server()->GetURL("/title1.html")),
@@ -721,7 +749,8 @@
       NavigateWebContents(
           kActiveTabId,
           embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
+      OpenGlicWindow(GlicWindowMode::kDetached),  //
+      SetTabContextPermission(true),
       ExecuteJs(kActiveTabId,
                 "() => { document.getElementById('text').tabIndex = 0; }"),
       ScrollTo(ExactTextSelector("Some text")),
@@ -737,16 +766,16 @@
   NodeIdCallback range_start_id_cb = base::BindOnce(
       &GlicAnnotationManagerUiTest::GetRootDomNodeIdFromAnnotatedPageContent,
       base::Unretained(this));
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentId(
-          ExactTextSelector("Some text", std::move(range_start_id_cb))),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentId(ExactTextSelector(
+                      "Some text", std::move(range_start_id_cb))),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 // Search the text fragment from the range with the start node id which is
@@ -756,16 +785,16 @@
   NodeIdCallback range_start_id_cb = base::BindOnce(
       &GlicAnnotationManagerUiTest::GetRootDomNodeIdFromAnnotatedPageContent,
       base::Unretained(this));
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentId(
-          TextFragmentSelector("Some", "text", std::move(range_start_id_cb))),
-      WaitForJsResult(kActiveTabId, "() => did_scroll"));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentId(TextFragmentSelector(
+                      "Some", "text", std::move(range_start_id_cb))),
+                  WaitForJsResult(kActiveTabId, "() => did_scroll"));
 }
 
 // If the start node id is not from `annotated_page_content_`, throw an invalid
@@ -775,16 +804,16 @@
   NodeIdCallback invalid_id_cb = base::BindOnce(
       &GlicAnnotationManagerUiTest::GetInvalidDomNodeIdFromAnnotatedPageContent,
       base::Unretained(this));
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentIdExpectingError(
-          ExactTextSelector("Some text", std::move(invalid_id_cb)),
-          mojom::ScrollToErrorReason::kSearchRangeInvalid));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentIdExpectingError(
+                      ExactTextSelector("Some text", std::move(invalid_id_cb)),
+                      mojom::ScrollToErrorReason::kSearchRangeInvalid));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest, NodeIdSelector) {
@@ -796,28 +825,28 @@
                                  "p#text")
         .value();
   });
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentId(NodeIdSelector(std::move(text_node))));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentId(NodeIdSelector(std::move(text_node))));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
                        NodeIdSelectorWithInvalidNode) {
-  RunTestSequence(
-      InstrumentTab(kActiveTabId),
-      NavigateWebContents(
-          kActiveTabId,
-          embedded_test_server()->GetURL("/scrollable_page_with_content.html")),
-      OpenGlicWindow(GlicWindowMode::kDetached), SetTabContextPermission(true),
-      GetPageContextFromFocusedTab(),  //
-      ScrollToWithDocumentIdExpectingError(
-          NodeIdSelector(base::BindOnce([]() { return -1; })),
-          mojom::ScrollToErrorReason::kNoMatchFound));
+  RunTestSequence(InstrumentTab(kActiveTabId),
+                  NavigateWebContents(
+                      kActiveTabId, embedded_test_server()->GetURL(
+                                        "/scrollable_page_with_content.html")),
+                  OpenGlicWindow(GlicWindowMode::kDetached),  //
+                  SetTabContextPermission(true),
+                  GetPageContextFromFocusedTab(),  //
+                  ScrollToWithDocumentIdExpectingError(
+                      NodeIdSelector(base::BindOnce([]() { return -1; })),
+                      mojom::ScrollToErrorReason::kNoMatchFound));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
@@ -873,7 +902,9 @@
                 .ExtractInt();
           },
           static_cast<int>(
-              mojom::ScrollToErrorReason::kFocusedTabChangedOrNavigated)));
+              mojom::ScrollToErrorReason::kFocusedTabChangedOrNavigated)),
+      ExpectErrorRecorded(
+          mojom::ScrollToErrorReason::kFocusedTabChangedOrNavigated));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
@@ -925,8 +956,7 @@
       WaitForEvent(kBrowserViewElementId, kScrollToRequestReceived),  //
       SetTabContextPermission(false),
       WaitForScrollToError(
-          mojom::ScrollToErrorReason::kTabContextPermissionDisabled)  //
-  );
+          mojom::ScrollToErrorReason::kTabContextPermissionDisabled));
 }
 
 IN_PROC_BROWSER_TEST_F(GlicAnnotationManagerUiTest,
diff --git a/chrome/browser/glic/host/glic_api_browsertest.cc b/chrome/browser/glic/host/glic_api_browsertest.cc
index d42d62d2..46960e1a 100644
--- a/chrome/browser/glic/host/glic_api_browsertest.cc
+++ b/chrome/browser/glic/host/glic_api_browsertest.cc
@@ -174,7 +174,6 @@
               {features::kGlicMinLoadingTimeMs.name, "40"},
           }},
          {features::kGlicScrollTo, {}},
-         {features::kGlicUserResize, {}},
          {features::kGlicClosedCaptioning, {}},
          {features::kGlicApiActivationGating, {}}},
         /*disabled_features=*/
diff --git a/chrome/browser/glic/host/glic_page_handler.cc b/chrome/browser/glic/host/glic_page_handler.cc
index 483e7d6..450e573 100644
--- a/chrome/browser/glic/host/glic_page_handler.cc
+++ b/chrome/browser/glic/host/glic_page_handler.cc
@@ -346,8 +346,6 @@
         base::FeatureList::IsEnabled(features::kGlicActor);
     state->enable_scroll_to =
         base::FeatureList::IsEnabled(features::kGlicScrollTo);
-    state->enable_drag_to_resize_panel =
-        base::FeatureList::IsEnabled(features::kGlicUserResize);
     state->enable_zero_state_suggestions = base::FeatureList::IsEnabled(
         contextual_cueing::kGlicZeroStateSuggestions);
 
@@ -426,9 +424,23 @@
     glic_service_->CloseUI();
   }
 
-  void AttachPanel() override { glic_service_->AttachPanel(); }
+  void AttachPanel() override {
+    if (GlicWindowController::AlwaysDetached()) {
+      receiver_.ReportBadMessage(
+          "AttachPanel cannot be called when always detached mode is enabled.");
+      return;
+    }
+    glic_service_->AttachPanel();
+  }
 
-  void DetachPanel() override { glic_service_->DetachPanel(); }
+  void DetachPanel() override {
+    if (GlicWindowController::AlwaysDetached()) {
+      receiver_.ReportBadMessage(
+          "DetachPanel cannot be called when always detached mode is enabled.");
+      return;
+    }
+    glic_service_->DetachPanel();
+  }
 
   void ShowProfilePicker() override {
     glic::GlicProfileManager::GetInstance()->ShowProfilePicker();
@@ -550,6 +562,12 @@
   void SetClosedCaptioningSetting(
       bool enabled,
       SetClosedCaptioningSettingCallback callback) override {
+    if (!base::FeatureList::IsEnabled(features::kGlicClosedCaptioning)) {
+      receiver_.ReportBadMessage(
+          "Client should not be able to call SetClosedCaptioningSetting "
+          "without the GlicClosedCaptioning feature enabled.");
+      return;
+    }
     pref_service_->SetBoolean(prefs::kGlicClosedCaptioningEnabled, enabled);
     if (enabled) {
       base::RecordAction(
@@ -641,7 +659,7 @@
   void ScrollTo(mojom::ScrollToParamsPtr params,
                 ScrollToCallback callback) override {
     if (!base::FeatureList::IsEnabled(features::kGlicScrollTo)) {
-      mojo::ReportBadMessage(
+      receiver_.ReportBadMessage(
           "Client should not be able to call ScrollTo without the GlicScrollTo "
           "feature enabled.");
       return;
@@ -664,7 +682,7 @@
     if (type != ContentSettingsType::MEDIASTREAM_MIC &&
         type != ContentSettingsType::GEOLOCATION) {
       // This will terminate the render process.
-      mojo::ReportBadMessage(
+      receiver_.ReportBadMessage(
           "OpenOsPermissionSettingsMenu received for unsupported "
           "OS permission.");
       return;
@@ -756,7 +774,7 @@
       GetZeroStateSuggestionsForFocusedTabCallback callback) override {
     if (!base::FeatureList::IsEnabled(
             contextual_cueing::kGlicZeroStateSuggestions)) {
-      mojo::ReportBadMessage(
+      receiver_.ReportBadMessage(
           "Client should not call "
           "GetZeroStateSuggestionsForFocusedTab "
           "without the GlicZeroStateSuggestions feature enabled.");
@@ -974,6 +992,8 @@
 }
 
 void GlicPageHandler::EnableDragResize(bool enabled) {
+  // features::kGlicUserResize is not checked here because the WebUI page
+  // invokes this method when it is disabled, too (when its state changes).
   GetGlicService()->window_controller().EnableDragResize(enabled);
 }
 
diff --git a/chrome/browser/glic/widget/glic_widget.cc b/chrome/browser/glic/widget/glic_widget.cc
index 7950a7f..4a78d00 100644
--- a/chrome/browser/glic/widget/glic_widget.cc
+++ b/chrome/browser/glic/widget/glic_widget.cc
@@ -34,10 +34,6 @@
 
 constexpr float kGlicWidgetCornerRadius = 12;
 
-bool UserResizeEnabled() {
-  return base::FeatureList::IsEnabled(features::kGlicUserResize);
-}
-
 // For resizeable windows, there may be an invisible border which affects the
 // widget size. Given a target rect, this method provides the outsets which
 // should be applied in order to calculate the correct widget bounds.
@@ -85,10 +81,8 @@
 
 GlicWidget::GlicWidget(ThemeService* theme_service, InitParams params)
     : views::Widget(std::move(params)) {
-  if (UserResizeEnabled()) {
-    minimum_widget_size_ = GetInitialSize();
-    OnSizeConstraintsChanged();
-  }
+  minimum_widget_size_ = GetInitialSize();
+  OnSizeConstraintsChanged();
   theme_service_observation_.Observe(theme_service);
 }
 
@@ -109,7 +103,7 @@
       views::Widget::InitParams::CLIENT_OWNS_WIDGET,
       views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
   params.bounds = initial_bounds;
-  if (UserResizeEnabled() && user_resizable) {
+  if (user_resizable) {
     params.bounds.Outset(GetTargetOutsets(initial_bounds));
   }
 #if BUILDFLAG(IS_WIN)
@@ -134,7 +128,7 @@
   params.animation_enabled = true;
 #endif
   auto delegate = std::make_unique<GlicWidgetDelegate>();
-  delegate->SetCanResize(UserResizeEnabled() && user_resizable);
+  delegate->SetCanResize(user_resizable);
   params.delegate = delegate.release();
 
   auto widget = base::WrapUnique(new GlicWidget(
@@ -178,18 +172,18 @@
 }
 
 gfx::Size GlicWidget::GetMinimumSize() const {
-  return UserResizeEnabled() ? minimum_widget_size_ : gfx::Size();
+  return minimum_widget_size_;
 }
 
 gfx::Rect GlicWidget::VisibleToWidgetBounds(gfx::Rect visible_bounds) {
-  if (UserResizeEnabled() && widget_delegate()->CanResize()) {
+  if (widget_delegate()->CanResize()) {
     visible_bounds.Outset(GetTargetOutsets(visible_bounds));
   }
   return visible_bounds;
 }
 
 gfx::Rect GlicWidget::WidgetToVisibleBounds(gfx::Rect widget_bounds) {
-  if (UserResizeEnabled() && widget_delegate()->CanResize()) {
+  if (widget_delegate()->CanResize()) {
     widget_bounds.Inset(-GetTargetOutsets(widget_bounds).ToInsets());
   }
   return widget_bounds;
diff --git a/chrome/browser/glic/widget/glic_window_controller_impl.cc b/chrome/browser/glic/widget/glic_window_controller_impl.cc
index 3630de4..f1df9fc 100644
--- a/chrome/browser/glic/widget/glic_window_controller_impl.cc
+++ b/chrome/browser/glic/widget/glic_window_controller_impl.cc
@@ -958,11 +958,9 @@
     SetGlicWindowToFloatingMode(!enabled);
   }
 
-  if (base::FeatureList::IsEnabled(features::kGlicUserResize)) {
-    GetGlicWidget()->widget_delegate()->SetCanResize(enabled);
-    GetGlicView()->UpdateBackgroundColor();
-    glic_window_animator_->MaybeAnimateToTargetSize();
-  }
+  GetGlicWidget()->widget_delegate()->SetCanResize(enabled);
+  GetGlicView()->UpdateBackgroundColor();
+  glic_window_animator_->MaybeAnimateToTargetSize();
 }
 
 gfx::Size GlicWindowControllerImpl::GetSize() {
diff --git a/chrome/browser/glic/widget/glic_window_resize_animation_interactive_uitest.cc b/chrome/browser/glic/widget/glic_window_resize_animation_interactive_uitest.cc
index 3aa316c6..b690619 100644
--- a/chrome/browser/glic/widget/glic_window_resize_animation_interactive_uitest.cc
+++ b/chrome/browser/glic/widget/glic_window_resize_animation_interactive_uitest.cc
@@ -30,16 +30,12 @@
   return base::BindOnce(&Append, a, b);
 }
 
+// Tests for size and position animations on the glic window. The results of
+// these animations can be affected by the widget's minimum size (the same as
+// the initial size at the time of writing) and by logic that repositions the
+// widget to be entirely on screen.
 class GlicWindowResizeAnimationTest : public test::InteractiveGlicTest {
  public:
-  GlicWindowResizeAnimationTest() {
-    features_.InitWithFeaturesAndParameters(
-        /*enabled_features=*/{},
-        // TODO(402795394): Update size expectations in tests so they work with
-        // the user-resize minimum size.
-        /*disabled_features=*/{features::kGlicUserResize});
-  }
-
   void SetUpOnMainThread() override {
     test::InteractiveGlicTest::SetUpOnMainThread();
     RunTestSequence(OpenGlicWindow(GlicWindowMode::kDetached));
@@ -87,7 +83,6 @@
   base::TimeTicks animation_creation_time() { return animation_creation_time_; }
 
  private:
-  base::test::ScopedFeatureList features_;
   const base::TimeTicks animation_creation_time_ = base::TimeTicks::Now();
 };
 }  // namespace
@@ -109,9 +104,16 @@
 }
 
 IN_PROC_BROWSER_TEST_F(GlicWindowResizeAnimationTest, ShrinksWidgetSize) {
-  gfx::Rect test_initial_bounds = GetWidgetBounds();
-  gfx::Rect test_new_bounds(test_initial_bounds.origin(), gfx::Size(1, 1));
+  // The widget may be starting at its minimum size, so in order to test
+  // shrinking, it must grow first.
+  gfx::Rect test_initial_bounds(GetWidgetBounds().origin(), {400, 400});
+  auto [_, test_api_0] = MakeAnimation(
+      test_initial_bounds, kTestAnimationDuration, base::DoNothing());
+  test_api_0->Step(animation_creation_time() + kTestAnimationDuration);
+  EXPECT_EQ(test_initial_bounds, GetWidgetBounds());
 
+  // Now test getting smaller.
+  gfx::Rect test_new_bounds(test_initial_bounds.origin(), {380, 380});
   auto [animation, test_api] =
       MakeAnimation(test_new_bounds, kTestAnimationDuration, base::DoNothing());
   test_api->Step(animation_creation_time() + kTestAnimationDuration -
@@ -126,8 +128,8 @@
                        MovesAndChangesWidgetSize) {
   gfx::Rect test_initial_bounds = GetWidgetBounds();
   gfx::Rect test_new_bounds(
-      gfx::Point(test_initial_bounds.x() + 10, test_initial_bounds.y() + 10),
-      gfx::Size(1, 80));
+      gfx::Point(test_initial_bounds.x() - 10, test_initial_bounds.y() + 10),
+      gfx::Size(400, 400));
 
   auto [animation, test_api] =
       MakeAnimation(test_new_bounds, kTestAnimationDuration, base::DoNothing());
@@ -135,13 +137,14 @@
                  base::Milliseconds(100));
   ExpectRectBetween(GetWidgetBounds(), test_initial_bounds, test_new_bounds);
 
-  test_api->Step(animation_creation_time() + kTestAnimationDuration);
+  test_api->Step(animation_creation_time() + kTestAnimationDuration +
+                 base::Milliseconds(100));
   EXPECT_EQ(test_new_bounds, GetWidgetBounds());
 }
 
 IN_PROC_BROWSER_TEST_F(GlicWindowResizeAnimationTest, UpdateTargetPosition) {
   gfx::Rect initial_bounds = GetWidgetBounds();
-  gfx::Rect target_bounds_1(10, 10, 20, 20);
+  gfx::Rect target_bounds_1(initial_bounds.origin(), {400, 400});
 
   // Start changing size and position
   auto [animation, test_api] =
@@ -163,7 +166,7 @@
 
 IN_PROC_BROWSER_TEST_F(GlicWindowResizeAnimationTest, UpdateTargetSize) {
   gfx::Rect initial_bounds = GetWidgetBounds();
-  gfx::Rect target_bounds_1(100, 100, 20, 20);
+  gfx::Rect target_bounds_1(100, 100, 400, 400);
 
   // Start changing size and position
   auto [animation, test_api] =
@@ -173,7 +176,7 @@
   ExpectRectBetween(GetWidgetBounds(), initial_bounds, target_bounds_1);
 
   // Update size, advance to the end
-  gfx::Size new_target_size(50, 50);
+  gfx::Size new_target_size(500, 500);
   gfx::Rect new_target(target_bounds_1.origin(), new_target_size);
   animation->UpdateTargetBounds(new_target, base::DoNothing());
   test_api->Step(animation_creation_time() + kTestAnimationDuration);
@@ -185,28 +188,31 @@
 
 IN_PROC_BROWSER_TEST_F(GlicWindowResizeAnimationTest, AllCallbacksRunInOrder) {
   gfx::Rect initial_bounds = GetWidgetBounds();
-  gfx::Rect target_bounds_1(10, 10, 20, 20);
+  gfx::Rect target_bounds_1(initial_bounds.origin(), {400, 400});
 
   std::string call_log;
 
-  // Start animating
+  // Start animating.
   auto [animation, test_api] = MakeAnimation(
       target_bounds_1, kTestAnimationDuration, BindAppend(&call_log, "1"));
   test_api->Step(animation_creation_time() + kTestAnimationDuration -
                  base::Milliseconds(100));
   ExpectRectBetween(GetWidgetBounds(), initial_bounds, target_bounds_1);
 
-  // Make some updates
-  gfx::Rect target_bounds_2(target_bounds_1.origin(), gfx::Size(50, 50));
+  // Make some updates, being careful to avoid reaching the right edge of the
+  // screen so the x position isn't clamped.
+  gfx::Rect target_bounds_2(target_bounds_1.origin() + gfx::Vector2d(-500, 10),
+                            gfx::Size(500, 500));
   animation->UpdateTargetBounds(target_bounds_2, BindAppend(&call_log, " 2"));
-  gfx::Rect target_bounds_3(target_bounds_2.origin(), gfx::Size(60, 60));
+  gfx::Rect target_bounds_3(target_bounds_2.origin(), gfx::Size(600, 600));
   animation->UpdateTargetBounds(target_bounds_3, BindAppend(&call_log, " 3"));
-  gfx::Rect target_bounds_4(gfx::Point(100, 100), target_bounds_3.size());
+  gfx::Rect target_bounds_4(target_bounds_3.origin() - gfx::Vector2d(10, 10),
+                            target_bounds_3.size());
   animation->UpdateTargetBounds(target_bounds_4, BindAppend(&call_log, " 4"));
 
   // Advance to the end. Widget should be at its final bounds.
   test_api->Step(animation_creation_time() + kTestAnimationDuration);
-  EXPECT_EQ(gfx::Rect(100, 100, 60, 60), GetWidgetBounds());
+  EXPECT_EQ(target_bounds_4, GetWidgetBounds());
 
   // Callbacks should run in the order in which they were added.
   test_api.reset();
diff --git a/chrome/browser/google/OWNERS b/chrome/browser/google/OWNERS
index 340c579..ec81839 100644
--- a/chrome/browser/google/OWNERS
+++ b/chrome/browser/google/OWNERS
@@ -1 +1,2 @@
-isherman@chromium.org
+sorin@chromium.org
+waffles@chromium.org
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java
index d57f927..8334619e 100644
--- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java
+++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java
@@ -92,19 +92,11 @@
             Context context, @HubColorScheme int colorScheme, boolean isGtsUpdateEnabled) {
         switch (colorScheme) {
             case HubColorScheme.DEFAULT:
-                if (isGtsUpdateEnabled) {
-                    return SemanticColorUtils.getDefaultIconColor(context);
-                } else {
-                    return SemanticColorUtils.getDefaultIconColorAccent1(context);
-                }
+                return SurfaceColorUpdateUtils.getHubPaneSwitcherSelectedIconColor(
+                        context, /* isIncognito= */ false, isGtsUpdateEnabled);
             case HubColorScheme.INCOGNITO:
-                if (isGtsUpdateEnabled) {
-                    return ContextCompat.getColor(context, R.color.default_icon_color_light);
-                } else {
-                    return ContextCompat.getColor(
-                            context, R.color.default_control_color_active_dark);
-                }
-
+                return SurfaceColorUpdateUtils.getHubPaneSwitcherSelectedIconColor(
+                        context, /* isIncognito= */ true, isGtsUpdateEnabled);
             default:
                 assert false;
                 return Color.TRANSPARENT;
@@ -116,10 +108,11 @@
             Context context, @HubColorScheme int colorScheme) {
         switch (colorScheme) {
             case HubColorScheme.DEFAULT:
-                return SemanticColorUtils.getColorSurfaceBright(context);
+                return SurfaceColorUpdateUtils.geTabItemSelectorColor(
+                        context, /* isIncognito= */ false);
             case HubColorScheme.INCOGNITO:
-                return ContextCompat.getColor(
-                        context, R.color.pane_switcher_selected_tab_incognito);
+                return SurfaceColorUpdateUtils.geTabItemSelectorColor(
+                        context, /* isIncognito= */ true);
             default:
                 assert false;
                 return Color.TRANSPARENT;
@@ -195,9 +188,11 @@
             Context context, @HubColorScheme int colorScheme) {
         switch (colorScheme) {
             case HubColorScheme.DEFAULT:
-                return SemanticColorUtils.getColorSurfaceContainer(context);
+                return SurfaceColorUpdateUtils.getPaneSwitcherBackgroundColor(
+                        context, /* isIncognito= */ false);
             case HubColorScheme.INCOGNITO:
-                return ContextCompat.getColor(context, R.color.pane_switcher_background_incognito);
+                return SurfaceColorUpdateUtils.getPaneSwitcherBackgroundColor(
+                        context, /* isIncognito= */ true);
             default:
                 assert false;
                 return Color.TRANSPARENT;
diff --git a/chrome/browser/hub/internal/android/res/values/colors.xml b/chrome/browser/hub/internal/android/res/values/colors.xml
index 8f04f6f..e6abbd32 100644
--- a/chrome/browser/hub/internal/android/res/values/colors.xml
+++ b/chrome/browser/hub/internal/android/res/values/colors.xml
@@ -5,7 +5,5 @@
 found in the LICENSE file.
 -->
 <resources>
-    <color name="pane_switcher_selected_tab_incognito">@color/gm3_baseline_surface_bright_dark</color>
-    <color name="pane_switcher_background_incognito">@color/gm3_baseline_surface_container_dark</color>
     <color name="pane_switcher_tab_item_hover_incognito">@color/baseline_neutral_90</color>
 </resources>
\ No newline at end of file
diff --git a/chrome/browser/image_descriptions/android/java/src/org/chromium/chrome/browser/image_descriptions/ImageDescriptionsSettings.java b/chrome/browser/image_descriptions/android/java/src/org/chromium/chrome/browser/image_descriptions/ImageDescriptionsSettings.java
index 394665f..d3863b3 100644
--- a/chrome/browser/image_descriptions/android/java/src/org/chromium/chrome/browser/image_descriptions/ImageDescriptionsSettings.java
+++ b/chrome/browser/image_descriptions/android/java/src/org/chromium/chrome/browser/image_descriptions/ImageDescriptionsSettings.java
@@ -117,4 +117,9 @@
     public void setProfile(Profile profile) {
         mProfile = profile;
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/os_crypt/app_bound_encryption_provider_win.cc b/chrome/browser/os_crypt/app_bound_encryption_provider_win.cc
index 8ebeebb..ff7b7e30 100644
--- a/chrome/browser/os_crypt/app_bound_encryption_provider_win.cc
+++ b/chrome/browser/os_crypt/app_bound_encryption_provider_win.cc
@@ -73,10 +73,6 @@
 }  // namespace
 
 namespace features {
-BASE_FEATURE(kAppBoundUserDataDirProtection,
-             "AppBoundUserDataDirProtection",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 BASE_FEATURE(kAppBoundEncryptionKeyV3,
              "AppBoundEncryptionKeyV3",
              base::FEATURE_DISABLED_BY_DEFAULT);
@@ -197,8 +193,7 @@
     return;
   }
 
-  if (base::FeatureList::IsEnabled(features::kAppBoundUserDataDirProtection) &&
-      support_level_ == os_crypt::SupportLevel::kNotUsingDefaultUserDataDir) {
+  if (support_level_ == os_crypt::SupportLevel::kNotUsingDefaultUserDataDir) {
     // Modified user data dir, signal temporarily unavailable. This means
     // decrypts will not work, but neither will new encrypts. Since the key is
     // temporarily unavailable, no data should be lost.
diff --git a/chrome/browser/os_crypt/app_bound_encryption_provider_win.h b/chrome/browser/os_crypt/app_bound_encryption_provider_win.h
index 548d22a1..ee8a97f 100644
--- a/chrome/browser/os_crypt/app_bound_encryption_provider_win.h
+++ b/chrome/browser/os_crypt/app_bound_encryption_provider_win.h
@@ -31,12 +31,6 @@
 namespace os_crypt_async {
 
 namespace features {
-// If enabled, App-Bound encryption will signal a temporary key failure if the
-// user data dir is not a standard user data dir. This causes both Encryption
-// and Decryption to be disabled. If this feature is disabled, then Decrypts on
-// previously encrypted data will function correctly but Encrypts do not use
-// app-bound.
-BASE_DECLARE_FEATURE(kAppBoundUserDataDirProtection);
 
 // If enabled, App-Bound encryption will request that the version 3 key be used
 // for data encryption by the elevated service.
diff --git a/chrome/browser/platform_experience/win b/chrome/browser/platform_experience/win
index 42835bc..b2e0904 160000
--- a/chrome/browser/platform_experience/win
+++ b/chrome/browser/platform_experience/win
@@ -1 +1 @@
-Subproject commit 42835bc60cda464decb0c403e38b355d1882951a
+Subproject commit b2e0904e77cba3289ee6e5c6e1842159620743a2
diff --git a/chrome/browser/policy/policy_network_browsertest.cc b/chrome/browser/policy/policy_network_browsertest.cc
index 234d503..b7208b4 100644
--- a/chrome/browser/policy/policy_network_browsertest.cc
+++ b/chrome/browser/policy/policy_network_browsertest.cc
@@ -433,8 +433,8 @@
             kEarlyDataNotAcceptedTitle);
 }
 
-// TODO(crbug.com/418717917): Flaky on Windows.
-#if BUILDFLAG(IS_WIN)
+// TODO(crbug.com/418717917, crbug.com/419211957): Flaky on Windows and Android.
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
 #define MAYBE_TLS13EarlyDataPolicyEnable DISABLED_TLS13EarlyDataPolicyEnable
 #else
 #define MAYBE_TLS13EarlyDataPolicyEnable TLS13EarlyDataPolicyEnable
diff --git a/chrome/browser/printing/system_access_process_print_browsertest.cc b/chrome/browser/printing/system_access_process_print_browsertest.cc
index 2f8a224b..2e5624d 100644
--- a/chrome/browser/printing/system_access_process_print_browsertest.cc
+++ b/chrome/browser/printing/system_access_process_print_browsertest.cc
@@ -60,7 +60,7 @@
 #endif
 
 #if BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
-#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h"
+#include "chrome/browser/enterprise/connectors/analysis/content_analysis_dialog_controller.h"
 #include "chrome/browser/enterprise/connectors/common.h"
 #include "chrome/browser/enterprise/connectors/test/deep_scanning_test_utils.h"  // nogncheck
 #include "chrome/browser/enterprise/connectors/test/fake_content_analysis_delegate.h"  // nogncheck
@@ -3453,11 +3453,11 @@
 
     // These overrides make the overall tests faster as the content analysis
     // dialog won't stay in each state for mandatory minimum times.
-    enterprise_connectors::ContentAnalysisDialog::
+    enterprise_connectors::ContentAnalysisDialogController::
         SetMinimumPendingDialogTimeForTesting(base::Milliseconds(0));
-    enterprise_connectors::ContentAnalysisDialog::SetShowDialogDelayForTesting(
-        base::Milliseconds(0));
-    enterprise_connectors::ContentAnalysisDialog::
+    enterprise_connectors::ContentAnalysisDialogController::
+        SetShowDialogDelayForTesting(base::Milliseconds(0));
+    enterprise_connectors::ContentAnalysisDialogController::
         SetSuccessDialogTimeoutForTesting(base::Milliseconds(0));
   }
 
diff --git a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsSettings.java b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsSettings.java
index a73e795..e67758e 100644
--- a/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsSettings.java
+++ b/chrome/browser/privacy/java/src/org/chromium/chrome/browser/privacy/secure_dns/SecureDnsSettings.java
@@ -164,8 +164,13 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         loadPreferenceState();
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/privacy_sandbox/notice/BUILD.gn b/chrome/browser/privacy_sandbox/notice/BUILD.gn
index 6251386..8766746 100644
--- a/chrome/browser/privacy_sandbox/notice/BUILD.gn
+++ b/chrome/browser/privacy_sandbox/notice/BUILD.gn
@@ -96,6 +96,7 @@
       "//chrome/common",
       "//components/privacy_sandbox:features",
       "//components/tabs:public",
+      "//components/web_modal:web_modal",
       "//content/public/browser",
     ]
   }
diff --git a/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers.cc b/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers.cc
index 6b349244..bd94f8e54 100644
--- a/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers.cc
+++ b/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers.cc
@@ -9,9 +9,13 @@
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/common/webui_url_constants.h"
 #include "components/tabs/public/tab_interface.h"
+#include "components/web_modal/web_contents_modal_dialog_host.h"
 #include "content/public/browser/navigation_handle.h"
 
 namespace privacy_sandbox {
+
+constexpr int kMinRequiredDialogHeight = 100;
+
 //-----------------------------------------------------------------------------
 // EntryPointHandler
 //-----------------------------------------------------------------------------
@@ -83,8 +87,25 @@
     return;
   }
 
-  // TODO(crbug.com/408016824):  Finish implementing checks needed before
-  // showing notice.
+  // Avoid showing the prompt on popups, pip, anything that isn't a normal
+  // browser.
+  if (browser_window_interface->GetType() !=
+      BrowserWindowInterface::TYPE_NORMAL) {
+    return;
+  }
+
+  // If the windows height is too small, it is difficult to read or interact
+  // with the dialog. The dialog is blocking modal, that is why we want to
+  // prevent it from showing if there isn't enough space. The PrivacySandbox
+  // prompt can always fit inside a normal tabbed window due to its minimum
+  // width, so checking the height is enough here.
+  auto* web_contents =
+      browser_window_interface->GetWebContentsModalDialogHostForWindow();
+  if (!web_contents || web_contents->GetMaximumDialogSize().height() <
+                           kMinRequiredDialogHeight) {
+    return;
+  }
+
   // TODO(crbug.com/408016824):  Add error-event histograms.
 
   HandleEntryPoint(browser_window_interface);
diff --git a/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers_browsertest.cc b/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers_browsertest.cc
index a2a20a9c..72375d1 100644
--- a/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers_browsertest.cc
+++ b/chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers_browsertest.cc
@@ -2,12 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/browser/privacy_sandbox/notice/desktop_entrypoint_handlers.h"
+
 #include "base/test/mock_callback.h"
 #include "chrome/browser/privacy_sandbox/notice/mocks/mock_desktop_view_manager.h"
 #include "chrome/browser/privacy_sandbox/notice/mocks/mock_notice_service.h"
 #include "chrome/browser/privacy_sandbox/notice/notice_service_factory.h"
 #include "chrome/browser/privacy_sandbox/notice/notice_service_interface.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_window.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/platform_browser_test.h"
 #include "chrome/test/base/testing_profile.h"
@@ -72,6 +75,41 @@
   Mock::VerifyAndClearExpectations(mock_view_manager_.get());
 }
 
+IN_PROC_BROWSER_TEST_F(PrivacySandboxNoticeEntryPointHandlersTest,
+                       NoPromptInNonNormalBrowser) {
+  EXPECT_CALL(*mock_view_manager_.get(), HandleChromeOwnedPageNavigation)
+      .Times(0);
+
+  NavigateParams params(browser(), GURL(chrome::kChromeUINewTabPageURL),
+                        ui::PAGE_TRANSITION_FIRST);
+  params.window_action = NavigateParams::SHOW_WINDOW;
+  params.disposition = WindowOpenDisposition::NEW_POPUP;
+
+  ui_test_utils::NavigateToURL(&params);
+
+  Mock::VerifyAndClearExpectations(mock_view_manager_.get());
+}
+
+IN_PROC_BROWSER_TEST_F(PrivacySandboxNoticeEntryPointHandlersTest,
+                       NoPromptInSmallBrowser) {
+  EXPECT_CALL(*mock_view_manager_.get(), HandleChromeOwnedPageNavigation)
+      .Times(0);
+
+  ui_test_utils::SetAndWaitForBounds(*browser(), gfx::Rect(0, 0, 50, 50));
+
+// Resizing does not work on Mac because of minimum window height. Ensure the
+// minimum height is still > 100, then skip test.
+#if BUILDFLAG(IS_MAC)
+  ASSERT_TRUE(browser()->window()->GetBounds().height() > 100);
+  GTEST_SKIP();
+#endif
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+                                           GURL(chrome::kChromeUISettingsURL)));
+
+  Mock::VerifyAndClearExpectations(mock_view_manager_.get());
+}
+
 class PrivacySandboxNoticeEntryPointHandlersTest_SuitableUrls
     : public PrivacySandboxNoticeEntryPointHandlersTest,
       public testing::WithParamInterface<GURL> {};
diff --git a/chrome/browser/profiles/keep_alive/BUILD.gn b/chrome/browser/profiles/keep_alive/BUILD.gn
new file mode 100644
index 0000000..c53b10e2
--- /dev/null
+++ b/chrome/browser/profiles/keep_alive/BUILD.gn
@@ -0,0 +1,25 @@
+# Copyright 2025 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("keep_alive") {
+  sources = [
+    "profile_keep_alive_types.h",
+    "scoped_profile_keep_alive.h",
+  ]
+
+  public_deps = [ "//base" ]
+}
+
+source_set("impl") {
+  sources = [
+    "profile_keep_alive_types.cc",
+    "scoped_profile_keep_alive.cc",
+  ]
+
+  deps = [
+    ":keep_alive",
+    "//chrome/browser:browser_process",
+    "//chrome/browser:browser_public_dependencies",
+  ]
+}
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index c2fcff7..24df7a3 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -4935,7 +4935,7 @@
         params_.link_url, active_index + 1, true,
         tab_strip_model->GetTabGroupForTab(active_index));
     tab_strip_model->AddToNewSplit({active_index},
-                                   split_tabs::SplitTabLayout::kVertical);
+                                   split_tabs::SplitTabVisualData());
   }
 }
 #endif  // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index bcf82c5..c4484a2 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -316,6 +316,7 @@
     ]
   } else {
     public_deps += [
+      "infobar_internals:resources",
       "media_router/internals:resources",
       "on_device_internals:resources",
       "user_education_internals:resources",
@@ -378,6 +379,7 @@
     ]
   } else {
     sources += [
+      "$root_gen_dir/chrome/infobar_internals_resources.pak",
       "$root_gen_dir/chrome/media_router_internals_resources.pak",
       "$root_gen_dir/chrome/on_device_internals_resources.pak",
       "$root_gen_dir/chrome/user_education_internals_resources.pak",
diff --git a/chrome/browser/resources/glic/glic_api/glic_api.ts b/chrome/browser/resources/glic/glic_api/glic_api.ts
index 103fcbe5..55d54d0 100644
--- a/chrome/browser/resources/glic/glic_api/glic_api.ts
+++ b/chrome/browser/resources/glic/glic_api/glic_api.ts
@@ -127,7 +127,7 @@
   /**
    * Set the state of the panel's user drag-to-resize capability, or if the
    * panel hasn't been created yet, set whether it will be user resizable when
-   * it is created. No effect if the GlicUserResize feature flag is disabled.
+   * it is created.
    */
   enableDragResize?(enabled: boolean): Promise<void>;
 
@@ -565,8 +565,7 @@
 
   /**
    * Whether the panel should start out resizable by the user. The panel is
-   * resizable if this field is not provided. No effect if the GlicUserResize
-   * feature flag is disabled.
+   * resizable if this field is not provided.
    */
   canUserResize?: boolean;
 }
diff --git a/chrome/browser/resources/glic/glic_api_impl/glic_api_client.ts b/chrome/browser/resources/glic/glic_api_impl/glic_api_client.ts
index 906c637d..ad4f01d 100644
--- a/chrome/browser/resources/glic/glic_api_impl/glic_api_client.ts
+++ b/chrome/browser/resources/glic/glic_api_impl/glic_api_client.ts
@@ -241,10 +241,6 @@
       this.stopActorTask = undefined;
     }
 
-    if (!state.enableDragToResizePanel) {
-      this.enableDragResize = undefined;
-    }
-
     if (state.alwaysDetachedMode) {
       this.attachPanel = undefined;
       this.detachPanel = undefined;
diff --git a/chrome/browser/resources/infobar_internals/BUILD.gn b/chrome/browser/resources/infobar_internals/BUILD.gn
new file mode 100644
index 0000000..b17a30f
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright 2025 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//ui/webui/resources/tools/build_webui.gni")
+
+build_webui("build") {
+  grd_prefix = "infobar_internals"
+
+  static_files = [
+    "infobar_internals.css",
+    "infobar_internals.html",
+  ]
+
+  ts_files = [
+    "app.ts",
+    "app.html.ts",
+    "browser_proxy.ts",
+  ]
+
+  mojo_files_deps = [
+    "//chrome/browser/ui/webui/infobar_internals:mojo_bindings_ts__generator",
+  ]
+
+  mojo_files = [ "$root_gen_dir/chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom-webui.ts" ]
+
+  ts_deps = [
+    "//third_party/lit/v3_0:build_ts",
+    "//ui/webui/resources/js:build_ts",
+    "//ui/webui/resources/mojo:build_ts",
+  ]
+
+  webui_context_type = "trusted"
+}
diff --git a/chrome/browser/resources/infobar_internals/DIR_METADATA b/chrome/browser/resources/infobar_internals/DIR_METADATA
new file mode 100644
index 0000000..aedaaed
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/DIR_METADATA
@@ -0,0 +1,6 @@
+monorail: {
+  component: "UI>Browser>Infobars"
+}
+buganizer_public: {
+  component_id: 1456657
+}
diff --git a/chrome/browser/resources/infobar_internals/OWNERS b/chrome/browser/resources/infobar_internals/OWNERS
new file mode 100644
index 0000000..c57d3d0
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/win/installer_downloader/OWNERS
diff --git a/chrome/browser/resources/infobar_internals/app.html.ts b/chrome/browser/resources/infobar_internals/app.html.ts
new file mode 100644
index 0000000..0acab231
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/app.html.ts
@@ -0,0 +1,21 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {html} from '//resources/lit/v3_0/lit.rollup.js';
+
+import type {InfobarInternalsAppElement} from './app.js';
+
+export function getHtml(this: InfobarInternalsAppElement) {
+  return html`<!--_html_template_start_-->
+    <h1>Infobar Internals</h1>
+    <ul>
+      ${this.infobars.map(infobar => html`
+            <li>
+              <button data-type=${infobar.type} @click=${this.onTrigger}>
+                ${infobar.name}
+              </button>
+            </li>`)}
+    </ul>
+    <!--_html_template_end_-->`;
+}
diff --git a/chrome/browser/resources/infobar_internals/app.ts b/chrome/browser/resources/infobar_internals/app.ts
new file mode 100644
index 0000000..99bfb81
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/app.ts
@@ -0,0 +1,64 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {assert} from 'chrome://resources/js/assert.js';
+import {CrLitElement} from 'chrome://resources/lit/v3_0/lit.rollup.js';
+
+import {getHtml} from './app.html.js';
+import {BrowserProxy} from './browser_proxy.js';
+import type {InfoBarType} from './infobar_internals.mojom-webui.js';
+
+
+export class InfobarInternalsAppElement extends CrLitElement {
+  static get is() {
+    return 'infobar-internals-app';
+  }
+
+  override render() {
+    return getHtml.bind(this)();
+  }
+
+  static override get properties() {
+    return {
+      infobars: {type: Array},
+    };
+  }
+
+  protected accessor infobars: Array<{type: InfoBarType, name: string}> = [];
+
+  override connectedCallback() {
+    super.connectedCallback();
+    BrowserProxy.getInstance().handler.getInfoBars().then(
+        ({infobars}) => this.infobars = infobars);
+  }
+
+  protected onTrigger(e: Event) {
+    const target = e.currentTarget as HTMLElement;
+    const typeStr = target.dataset['type'];
+    assert(typeStr);
+
+    const typeNum = Number(typeStr);
+    assert(!Number.isNaN(typeNum));
+
+    const type = typeNum as InfoBarType;
+    this.trigger(type);
+  }
+
+  private async trigger(id: InfoBarType) {
+    const {success} =
+        await BrowserProxy.getInstance().handler.triggerInfoBar(id);
+    if (!success) {
+      console.warn('Failed to trigger infobar', id);
+    }
+  }
+}
+
+declare global {
+  interface HTMLElementTagNameMap {
+    'infobar-internals-app': InfobarInternalsAppElement;
+  }
+}
+
+customElements.define(
+    InfobarInternalsAppElement.is, InfobarInternalsAppElement);
diff --git a/chrome/browser/resources/infobar_internals/browser_proxy.ts b/chrome/browser/resources/infobar_internals/browser_proxy.ts
new file mode 100644
index 0000000..d0cde37
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/browser_proxy.ts
@@ -0,0 +1,31 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {PageCallbackRouter, PageHandlerFactory, PageHandlerRemote} from './infobar_internals.mojom-webui.js';
+import type {PageHandlerInterface} from './infobar_internals.mojom-webui.js';
+
+export class BrowserProxy {
+  callbackRouter: PageCallbackRouter;
+  handler: PageHandlerInterface;
+
+  private constructor() {
+    this.callbackRouter = new PageCallbackRouter();
+
+    this.handler = new PageHandlerRemote();
+
+    PageHandlerFactory.getRemote().createPageHandler(
+        this.callbackRouter.$.bindNewPipeAndPassRemote(),
+        (this.handler as PageHandlerRemote).$.bindNewPipeAndPassReceiver());
+  }
+
+  static getInstance(): BrowserProxy {
+    return instance || (instance = new BrowserProxy());
+  }
+
+  static setInstance(proxy: BrowserProxy) {
+    instance = proxy;
+  }
+}
+
+let instance: BrowserProxy|null = null;
diff --git a/chrome/browser/resources/infobar_internals/infobar_internals.css b/chrome/browser/resources/infobar_internals/infobar_internals.css
new file mode 100644
index 0000000..ee492f3
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/infobar_internals.css
@@ -0,0 +1,7 @@
+/* Copyright 2025 The Chromium Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+body {
+  margin: 0;
+}
diff --git a/chrome/browser/resources/infobar_internals/infobar_internals.html b/chrome/browser/resources/infobar_internals/infobar_internals.html
new file mode 100644
index 0000000..29aa2c4
--- /dev/null
+++ b/chrome/browser/resources/infobar_internals/infobar_internals.html
@@ -0,0 +1,20 @@
+<!--
+Copyright 2025 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>InfoBar Internals</title>
+  <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+  <link rel="stylesheet" href="infobar_internals.css">
+</head>
+
+<body>
+  <infobar-internals-app></infobar-internals-app>
+  <script type="module" src="app.js"></script>
+</body>
+</html>
diff --git a/chrome/browser/resources/pdf/elements/ink_text_box.html.ts b/chrome/browser/resources/pdf/elements/ink_text_box.html.ts
index 23493ee..12af6f97 100644
--- a/chrome/browser/resources/pdf/elements/ink_text_box.html.ts
+++ b/chrome/browser/resources/pdf/elements/ink_text_box.html.ts
@@ -10,8 +10,7 @@
   return html`<!--_html_template_start_-->
     <!-- TODO(crbug.com/414858397): Add labels for screenreaders -->
     <textarea id="textbox" .value="${this.textValue_}" rows="1"
-        @input="${this.onTextValueInput_}"
-        @focus="${this.onTextareaFocus_}">
+        @input="${this.onTextValueInput_}">
     </textarea>
     <div class="handle top left" tabindex="0"></div>
     <div class="handle top center" tabindex="0"></div>
diff --git a/chrome/browser/resources/pdf/elements/ink_text_box.ts b/chrome/browser/resources/pdf/elements/ink_text_box.ts
index 2d1d3da..0595fa5a 100644
--- a/chrome/browser/resources/pdf/elements/ink_text_box.ts
+++ b/chrome/browser/resources/pdf/elements/ink_text_box.ts
@@ -115,6 +115,7 @@
   override firstUpdated(changedProperties: PropertyValues<this>) {
     super.firstUpdated(changedProperties);
     this.setAttribute('tabindex', '0');
+    this.addEventListener('focus', e => this.onFocus_(e));
   }
 
   override connectedCallback() {
@@ -208,10 +209,17 @@
   }
 
   private onBlurTextBox_() {
-    this.$.textbox.blur();
+    this.blur();
   }
 
-  protected onTextareaFocus_() {
+  protected onFocus_(e: FocusEvent) {
+    if (e.relatedTarget === this ||
+        e.currentTarget === this && e.relatedTarget === this.$.textbox) {
+      // Focus moved from the box to the textarea (or vice versa via the
+      // "Escape" shortcut), ignore.
+      return;
+    }
+
     Ink2Manager.getInstance().textBoxFocused({
       height: this.height_,
       locationX: this.locationX_,
diff --git a/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts b/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts
index 8fc4696..46aea6cf 100644
--- a/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts
+++ b/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts
@@ -19,6 +19,7 @@
   showUi(): void;
   getAllBookmarks(): Promise<{nodes: BookmarksTreeNode[]}>;
   getActiveUrl(): Promise<string|undefined>;
+  isActiveTabInSplit(): Promise<boolean>;
 
   // Side Panel display choices.
   setSortOrder(sortOrder: SortOrder): void;
@@ -165,6 +166,12 @@
     });
   }
 
+  // TODO(crbug.com/406794014): Use the extensions API for this once
+  // implemented.
+  isActiveTabInSplit() {
+    return chrome.bookmarkManagerPrivate.isActiveTabInSplit();
+  }
+
   openBookmark(
       id: string, depth: number, clickModifiers: ClickModifiers,
       source: ActionSource) {
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.html b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.html
index d0fb073..537cdf84 100644
--- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.html
+++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.html
@@ -12,7 +12,8 @@
 <cr-action-menu id="menu" on-mousedown="onMousedown_">
   <template is="dom-repeat"
       items="[[getMenuItemsForBookmarks_(
-                   bookmarks_, priceTracked_, priceTrackingEligible_)]]">
+                   bookmarks_, priceTracked_, priceTrackingEligible_,
+                   isInSplitView_)]]">
     <template is="dom-if" if="[[!showDivider_(item)]]" restamp>
       <button class="dropdown-item" on-click="onMenuItemClicked_"
           disabled="[[item.disabled]]">
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts
index 3a405ae8..1a05b40 100644
--- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts
+++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts
@@ -68,6 +68,7 @@
       },
       priceTracked_: Boolean,
       priceTrackingEligible_: Boolean,
+      isInSplitView_: Boolean,
     };
   }
 
@@ -78,14 +79,16 @@
   declare private bookmarks_: BookmarksTreeNode[];
   declare private priceTracked_: boolean;
   declare private priceTrackingEligible_: boolean;
+  declare private isInSplitView_: boolean;
 
   showAt(
-      event: MouseEvent, bookmarks: BookmarksTreeNode[], priceTracked: boolean,
-      priceTrackingEligible: boolean, onShown: Function = () => {}) {
+      target: HTMLElement, bookmarks: BookmarksTreeNode[],
+      priceTracked: boolean, priceTrackingEligible: boolean,
+      isInSplitView: boolean, onShown: Function = () => {}) {
     this.bookmarks_ = bookmarks;
     this.priceTracked_ = priceTracked;
     this.priceTrackingEligible_ = priceTrackingEligible;
-    const target = event.target as HTMLElement;
+    this.isInSplitView_ = isInSplitView;
     afterNextRender(this, () => {
       this.$.menu.showAt(target);
       onShown();
@@ -94,10 +97,12 @@
 
   showAtPosition(
       event: MouseEvent, bookmarks: BookmarksTreeNode[], priceTracked: boolean,
-      priceTrackingEligible: boolean, onShown: Function = () => {}) {
+      priceTrackingEligible: boolean, isInSplitView: boolean,
+      onShown: Function = () => {}) {
     this.bookmarks_ = bookmarks;
     this.priceTracked_ = priceTracked;
     this.priceTrackingEligible_ = priceTrackingEligible;
+    this.isInSplitView_ = isInSplitView;
     const menuMargin = 20;
     const doc = document.scrollingElement!;
     const minX = doc.scrollLeft + menuMargin;
@@ -163,6 +168,7 @@
       menuItems.push({
         id: MenuItemId.OPEN_SPLIT_VIEW,
         label: loadTimeData.getString('menuOpenSplitView'),
+        disabled: this.isInSplitView_,
       });
     }
 
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts
index 1f3c7e4..08c7101 100644
--- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts
+++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts
@@ -1057,14 +1057,19 @@
     const priceTrackingEligible =
         !!this.bookmarksService_.getAvailableProductInfo(event.detail.bookmark);
     const bookmark = event.detail.bookmark;
+    const target = event.detail.event.target as HTMLElement;
     if (event.detail.event.button === 0) {
-      this.$.contextMenu.showAt(
-          event.detail.event, [bookmark], priceTracked, priceTrackingEligible,
-          this.onContextMenuShown_.bind(this, bookmark));
+      this.bookmarksApi_.isActiveTabInSplit().then((isSplit: boolean) => {
+        this.$.contextMenu.showAt(
+            target, [bookmark], priceTracked, priceTrackingEligible, isSplit,
+            this.onContextMenuShown_.bind(this, bookmark));
+      });
     } else {
-      this.$.contextMenu.showAtPosition(
-          event.detail.event, [bookmark], priceTracked, priceTrackingEligible,
-          this.onContextMenuShown_.bind(this, bookmark));
+      this.bookmarksApi_.isActiveTabInSplit().then((isSplit: boolean) => {
+        this.$.contextMenu.showAtPosition(
+            event.detail.event, [bookmark], priceTracked, priceTrackingEligible,
+            isSplit, this.onContextMenuShown_.bind(this, bookmark));
+      });
     }
   }
 
@@ -1205,8 +1210,11 @@
   private onBulkEditMenuClicked_(event: MouseEvent) {
     event.preventDefault();
     event.stopPropagation();
-    this.$.contextMenu.showAt(
-        event, this.getSelectedBookmarksList_(), false, false);
+    const target = event.target as HTMLElement;
+    this.bookmarksApi_.isActiveTabInSplit().then((isSplit: boolean) => {
+      this.$.contextMenu.showAt(
+          target, this.getSelectedBookmarksList_(), false, false, isSplit);
+    });
   }
 
   private onSortTypeClicked_(event: DomRepeatEvent<SortOption>) {
diff --git a/chrome/browser/resources/side_panel/read_anything/read_aloud/speech_controller.ts b/chrome/browser/resources/side_panel/read_anything/read_aloud/speech_controller.ts
index 9bf5e82..167e14b 100644
--- a/chrome/browser/resources/side_panel/read_anything/read_aloud/speech_controller.ts
+++ b/chrome/browser/resources/side_panel/read_anything/read_aloud/speech_controller.ts
@@ -788,7 +788,6 @@
       isSpeechBeingRepositioned: false,
     };
     this.setState_(speechPlayingState);
-    this.setEngineState_(SpeechEngineState.NONE);
     this.setPreviewVoicePlaying_(null);
     this.model_.setFirstTextNode(null);
     this.model_.setResumeSpeechOnVoiceMenuClose(false);
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/file_analysis_request.cc b/chrome/browser/safe_browsing/cloud_content_scanning/file_analysis_request.cc
index 04b411462..bf227e0 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/file_analysis_request.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/file_analysis_request.cc
@@ -10,6 +10,7 @@
 #include "base/containers/span.h"
 #include "base/feature_list.h"
 #include "base/files/memory_mapped_file.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/task/thread_pool.h"
 #include "chrome/browser/file_util_service.h"
@@ -33,6 +34,7 @@
 namespace {
 
 constexpr size_t kReadFileChunkSize = 4096;
+constexpr size_t kMaxUploadSizeMetricsKB = 500 * 1024;
 
 std::string GetFileMimeType(const base::FilePath& path,
                             std::string_view first_bytes) {
@@ -139,6 +141,10 @@
     }
   }
 
+  // Create a histogram to track the size of files being scanned up to 500MB.
+  base::UmaHistogramCustomCounts(
+      "Enterprise.FileAnalysisRequest.FileSize", file_data.size / 1024, 1,
+      kMaxUploadSizeMetricsKB, 50);
   return {file_data.size <= BinaryUploadService::kMaxUploadSizeBytes
               ? BinaryUploadService::Result::SUCCESS
               : BinaryUploadService::Result::FILE_TOO_LARGE,
diff --git a/chrome/browser/search_engine_choice/BUILD.gn b/chrome/browser/search_engine_choice/BUILD.gn
index 2780d47..1990c5bd 100644
--- a/chrome/browser/search_engine_choice/BUILD.gn
+++ b/chrome/browser/search_engine_choice/BUILD.gn
@@ -96,6 +96,7 @@
         "//chrome/browser:browser_process",
         "//chrome/browser:test_support",
         "//chrome/browser/prefs:util",
+        "//chrome/browser/profiles/keep_alive",
         "//chrome/browser/search_engines",
         "//chrome/browser/ui",
         "//chrome/browser/web_applications",
diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/TestEmbeddableFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/TestEmbeddableFragment.java
index 5c7fcfa20..b5670da 100644
--- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/TestEmbeddableFragment.java
+++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/TestEmbeddableFragment.java
@@ -39,4 +39,9 @@
     public ObservableSupplier<String> getPageTitle() {
         return mPageTitle;
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/ssl/android/java/src/org/chromium/chrome/browser/ssl/HttpsFirstModeSettingsFragment.java b/chrome/browser/ssl/android/java/src/org/chromium/chrome/browser/ssl/HttpsFirstModeSettingsFragment.java
index 500def7..8013055 100644
--- a/chrome/browser/ssl/android/java/src/org/chromium/chrome/browser/ssl/HttpsFirstModeSettingsFragment.java
+++ b/chrome/browser/ssl/android/java/src/org/chromium/chrome/browser/ssl/HttpsFirstModeSettingsFragment.java
@@ -186,8 +186,13 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         loadPreferenceState();
     }
+
+    @Override
+    public @AnimationType int getAnimationType() {
+        return AnimationType.PROPERTY;
+    }
 }
diff --git a/chrome/browser/sync/test/integration/BUILD.gn b/chrome/browser/sync/test/integration/BUILD.gn
index eb7c1089..d719c81 100644
--- a/chrome/browser/sync/test/integration/BUILD.gn
+++ b/chrome/browser/sync/test/integration/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("sync_integration_tests.gni")
 if (is_android) {
   import("//build/config/android/rules.gni")
 } else {
@@ -42,33 +43,7 @@
     "//components/version_info",
   ]
 
-  sources = [
-    "single_client_autofill_profile_sync_test.cc",
-    "single_client_bookmarks_sync_test.cc",
-    "single_client_collaboration_group_sync_test.cc",
-    "single_client_contact_info_sync_test.cc",
-    "single_client_custom_passphrase_sync_test.cc",
-    "single_client_device_info_sync_test.cc",
-    "single_client_history_delete_directives_sync_test.cc",
-    "single_client_history_sync_test.cc",
-    "single_client_offer_sync_test.cc",
-    "single_client_plus_address_setting_sync_test.cc",
-    "single_client_plus_address_sync_test.cc",
-    "single_client_preferences_sync_test.cc",
-    "single_client_reading_list_sync_test.cc",
-    "single_client_shared_tab_group_data_sync_test.cc",
-    "single_client_standalone_transport_sync_test.cc",
-    "single_client_sync_invalidations_test.cc",
-    "sync_exponential_backoff_test.cc",
-
-    # TODO(crbug.com/393119606): After enough of the implementation is ready
-    # (CL #N), add integration tests. Careful, sync_integration_tests runs in CQ
-    # but android_sync_integration_tests do not.
-
-    # TODO(crbug.com/397767033): After enough of the implementation is ready
-    # (CL #N), add integration tests. Careful, sync_integration_tests runs in CQ
-    # but android_sync_integration_tests do not.
-  ]
+  sources = sync_integration_tests_sources
 
   data = [ "//chrome/test/data/sync/" ]
 
@@ -100,102 +75,6 @@
       "$root_gen_dir/components/dev_ui_components_resources.pak",
     ]
   } else {  # !is_android
-    sources += [
-      "apps_sync_test_base.cc",
-      "apps_sync_test_base.h",
-      "enable_disable_test.cc",
-      "local_sync_test.cc",
-      "migration_test.cc",
-      "password_manager_sync_test.cc",
-      "single_client_app_settings_sync_test.cc",
-      "single_client_common_sync_test.cc",
-      "single_client_dictionary_sync_test.cc",
-      "single_client_extension_apps_sync_test.cc",
-      "single_client_extensions_sync_test.cc",
-      "single_client_incoming_password_sharing_invitation_test.cc",
-      "single_client_nigori_sync_test.cc",
-      "single_client_outgoing_password_sharing_invitation_test.cc",
-      "single_client_password_sharing_policy_test.cc",
-      "single_client_passwords_sync_test.cc",
-      "single_client_polling_sync_test.cc",
-      "single_client_product_specifications_sync_test.cc",
-      "single_client_saved_tab_groups_sync_test.cc",
-      "single_client_search_engines_sync_test.cc",
-      "single_client_secondary_account_sync_test.cc",
-      "single_client_send_tab_to_self_sync_test.cc",
-      "single_client_sessions_sync_test.cc",
-      "single_client_sharing_message_sync_test.cc",
-      "single_client_themes_sync_test.cc",
-      "single_client_user_consents_sync_test.cc",
-      "single_client_user_events_sync_test.cc",
-      "single_client_valuables_sync_test.cc",
-      "single_client_wallet_credential_sync_test.cc",
-      "single_client_wallet_sync_test.cc",
-      "single_client_web_apps_sync_generated_icon_fix_sync_test.cc",
-      "single_client_web_apps_sync_test.cc",
-      "single_client_webauthn_credentials_sync_test.cc",
-      "sync_auth_test.cc",
-      "sync_errors_test.cc",
-      "web_apps_sync_test_base.cc",
-      "web_apps_sync_test_base.h",
-
-      # Tests with two clients can't run on Android.
-      "two_client_app_settings_sync_test.cc",
-      "two_client_autocomplete_sync_test.cc",
-      "two_client_autofill_sync_test.cc",
-      "two_client_bookmarks_sync_test.cc",
-      "two_client_contact_info_sync_test.cc",
-      "two_client_custom_passphrase_sync_test.cc",
-      "two_client_dictionary_sync_test.cc",
-      "two_client_extension_apps_sync_test.cc",
-      "two_client_extension_settings_sync_test.cc",
-      "two_client_extensions_sync_test.cc",
-      "two_client_history_sync_test.cc",
-      "two_client_passwords_sync_test.cc",
-      "two_client_power_bookmarks_sync_test.cc",
-      "two_client_preferences_sync_test.cc",
-      "two_client_search_engines_sync_test.cc",
-      "two_client_send_tab_to_self_sync_test.cc",
-      "two_client_sessions_sync_test.cc",
-      "two_client_shared_tab_group_data_sync_test.cc",
-      "two_client_themes_sync_test.cc",
-      "two_client_user_events_sync_test.cc",
-      "two_client_wallet_credential_sync_test.cc",
-      "two_client_wallet_sync_test.cc",
-      "two_client_web_apps_bmo_sync_test.cc",
-      "two_client_web_apps_generated_icon_fix_test.cc",
-      "two_client_web_apps_integration_test.cc",
-      "two_client_web_apps_integration_test_base.cc",
-      "two_client_web_apps_integration_test_base.h",
-      "two_client_web_apps_sync_test.cc",
-      "two_client_webauthn_credentials_sync_test.cc",
-    ]
-    if (is_win || is_mac || is_linux) {
-      sources += [ "two_client_web_apps_integration_test_mac_win_linux.cc" ]
-    }
-
-    if (is_win || is_linux) {
-      sources += [ "two_client_web_apps_integration_test_win_linux.cc" ]
-    }
-
-    if (is_mac) {
-      sources += [ "two_client_web_apps_integration_test_mac.cc" ]
-    }
-
-    if (is_win) {
-      sources += [ "two_client_web_apps_integration_test_win.cc" ]
-    }
-
-    if (is_chromeos) {
-      sources += [ "two_client_web_apps_integration_test_cros.cc" ]
-    }
-
-    if (!is_chromeos) {
-      sources += [
-        "select_type_and_migrate_local_data_items_when_active_sync_test.cc",
-      ]
-    }
-
     deps += [
       "//chrome:packed_resources",
       "//chrome:resources",
@@ -255,12 +134,6 @@
     }
 
     if (is_mac) {
-      # Dictionary sync is disabled on Mac.
-      sources -= [
-        "single_client_dictionary_sync_test.cc",
-        "two_client_dictionary_sync_test.cc",
-      ]
-
       data_deps += [
         "//chrome",
         "//chrome:chrome_framework",
diff --git a/chrome/browser/sync/test/integration/sync_integration_tests.gni b/chrome/browser/sync/test/integration/sync_integration_tests.gni
new file mode 100644
index 0000000..93b69a6
--- /dev/null
+++ b/chrome/browser/sync/test/integration/sync_integration_tests.gni
@@ -0,0 +1,124 @@
+# Copyright 2021 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+sync_integration_tests_sources = [
+  "//chrome/browser/sync/test/integration/single_client_autofill_profile_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_bookmarks_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_collaboration_group_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_contact_info_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_custom_passphrase_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_device_info_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_history_delete_directives_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_history_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_offer_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_plus_address_setting_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_plus_address_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_preferences_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_reading_list_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_shared_tab_group_data_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc",
+  "//chrome/browser/sync/test/integration/single_client_sync_invalidations_test.cc",
+  "//chrome/browser/sync/test/integration/sync_exponential_backoff_test.cc",
+
+  # TODO(crbug.com/393119606): After enough of the implementation is ready
+  # (CL #N), add integration tests. Careful, sync_integration_tests runs in CQ
+  # but android_sync_integration_tests do not.
+  # TODO(crbug.com/397767033): After enough of the implementation is ready
+  # (CL #N), add integration tests. Careful, sync_integration_tests runs in CQ
+  # but android_sync_integration_tests do not.
+]
+if (!is_android) {
+  sync_integration_tests_sources += [
+    "//chrome/browser/sync/test/integration/apps_sync_test_base.cc",
+    "//chrome/browser/sync/test/integration/apps_sync_test_base.h",
+    "//chrome/browser/sync/test/integration/enable_disable_test.cc",
+    "//chrome/browser/sync/test/integration/local_sync_test.cc",
+    "//chrome/browser/sync/test/integration/migration_test.cc",
+    "//chrome/browser/sync/test/integration/password_manager_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_app_settings_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_common_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_extension_apps_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_extensions_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_incoming_password_sharing_invitation_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_nigori_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_outgoing_password_sharing_invitation_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_password_sharing_policy_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_passwords_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_polling_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_product_specifications_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_saved_tab_groups_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_search_engines_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_secondary_account_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_send_tab_to_self_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_sharing_message_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_themes_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_user_consents_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_user_events_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_valuables_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_wallet_credential_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_web_apps_sync_generated_icon_fix_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_web_apps_sync_test.cc",
+    "//chrome/browser/sync/test/integration/single_client_webauthn_credentials_sync_test.cc",
+    "//chrome/browser/sync/test/integration/sync_auth_test.cc",
+    "//chrome/browser/sync/test/integration/sync_errors_test.cc",
+
+    # Tests with two clients can't run on Android.
+    "//chrome/browser/sync/test/integration/two_client_app_settings_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_autocomplete_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_autofill_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_bookmarks_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_contact_info_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_custom_passphrase_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_extension_apps_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_extension_settings_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_history_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_passwords_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_power_bookmarks_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_preferences_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_search_engines_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_send_tab_to_self_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_sessions_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_shared_tab_group_data_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_themes_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_user_events_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_wallet_credential_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_wallet_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_bmo_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_generated_icon_fix_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_base.cc",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_base.h",
+    "//chrome/browser/sync/test/integration/two_client_web_apps_sync_test.cc",
+    "//chrome/browser/sync/test/integration/two_client_webauthn_credentials_sync_test.cc",
+    "//chrome/browser/sync/test/integration/web_apps_sync_test_base.cc",
+    "//chrome/browser/sync/test/integration/web_apps_sync_test_base.h",
+  ]
+  if (!is_mac) {
+    # Dictionary sync is disabled on Mac.
+    sync_integration_tests_sources += [
+      "//chrome/browser/sync/test/integration/single_client_dictionary_sync_test.cc",
+      "//chrome/browser/sync/test/integration/two_client_dictionary_sync_test.cc",
+    ]
+  }
+}
+if (is_win || is_mac || is_linux) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_mac_win_linux.cc" ]
+}
+if (is_win || is_linux) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_win_linux.cc" ]
+}
+if (is_mac) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_mac.cc" ]
+}
+if (is_win) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_win.cc" ]
+}
+if (is_chromeos) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/two_client_web_apps_integration_test_cros.cc" ]
+}
+if (!is_chromeos && !is_android) {
+  sync_integration_tests_sources += [ "//chrome/browser/sync/test/integration/select_type_and_migrate_local_data_items_when_active_sync_test.cc" ]
+}
diff --git a/chrome/browser/tabmodel/BUILD.gn b/chrome/browser/tabmodel/BUILD.gn
index f297c8e1..0db0467a 100644
--- a/chrome/browser/tabmodel/BUILD.gn
+++ b/chrome/browser/tabmodel/BUILD.gn
@@ -141,6 +141,7 @@
     "//chrome/browser/tabwindow:java",
     "//chrome/test/android:chrome_java_unit_test_support",
     "//components/browser_ui/util/android:java",
+    "//components/browser_ui/util/android:test_support_java",
     "//components/browser_ui/widget/android:java",
     "//components/browser_ui/widget/android:test_support_java",
     "//components/saved_tab_groups/public:java",
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabClosureParamsUtilsUnitTest.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabClosureParamsUtilsUnitTest.java
index 5c0d635e..ae9bb77 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabClosureParamsUtilsUnitTest.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabClosureParamsUtilsUnitTest.java
@@ -8,16 +8,14 @@
 import static org.junit.Assert.assertTrue;
 
 import android.os.SystemClock;
-import android.view.InputDevice;
 import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.list_view.FakeListViewTouchTracker;
 import org.chromium.components.browser_ui.widget.list_view.ListViewTouchTracker;
 import org.chromium.ui.util.MotionEventUtils;
@@ -44,15 +42,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker fakeListViewTouchTracker = new FakeListViewTouchTracker();
         fakeListViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        createMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0.0f,
-                                /* y= */ 0.0f,
-                                InputDevice.SOURCE_TOUCHSCREEN,
-                                MotionEvent.TOOL_TYPE_FINGER)));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         assertTrue(TabClosureParamsUtils.shouldAllowUndo(fakeListViewTouchTracker));
     }
@@ -62,15 +55,10 @@
         long downMotionTime = SystemClock.uptimeMillis();
         FakeListViewTouchTracker fakeListViewTouchTracker = new FakeListViewTouchTracker();
         fakeListViewTouchTracker.setLastSingleTapUpInfo(
-                MotionEventInfo.fromMotionEvent(
-                        createMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0.0f,
-                                /* y= */ 0.0f,
-                                InputDevice.SOURCE_MOUSE,
-                                MotionEvent.TOOL_TYPE_MOUSE)));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP));
 
         assertFalse(TabClosureParamsUtils.shouldAllowUndo(fakeListViewTouchTracker));
     }
@@ -84,15 +72,10 @@
     public void shouldAllowUndo_forTriggeringMotion_touchScreenMotion_returnTrue() {
         long downMotionTime = SystemClock.uptimeMillis();
         MotionEventInfo triggeringMotion =
-                MotionEventInfo.fromMotionEvent(
-                        createMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0.0f,
-                                /* y= */ 0.0f,
-                                InputDevice.SOURCE_TOUCHSCREEN,
-                                MotionEvent.TOOL_TYPE_FINGER));
+                MotionEventTestUtils.createTouchMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP);
 
         assertTrue(TabClosureParamsUtils.shouldAllowUndo(triggeringMotion));
     }
@@ -101,15 +84,10 @@
     public void shouldAllowUndo_forTriggeringMotion_mouseMotion_returnFalse() {
         long downMotionTime = SystemClock.uptimeMillis();
         MotionEventInfo triggeringMotion =
-                MotionEventInfo.fromMotionEvent(
-                        createMotionEvent(
-                                downMotionTime,
-                                /* eventTime= */ downMotionTime + 50,
-                                MotionEvent.ACTION_UP,
-                                /* x= */ 0.0f,
-                                /* y= */ 0.0f,
-                                InputDevice.SOURCE_MOUSE,
-                                MotionEvent.TOOL_TYPE_MOUSE));
+                MotionEventTestUtils.createMouseMotionInfo(
+                        downMotionTime,
+                        /* eventTime= */ downMotionTime + 50,
+                        MotionEvent.ACTION_UP);
 
         assertFalse(TabClosureParamsUtils.shouldAllowUndo(triggeringMotion));
     }
@@ -124,36 +102,4 @@
     public void shouldAllowUndo_forDownMotionButtonState_buttonStatePresent_returnFalse() {
         assertFalse(TabClosureParamsUtils.shouldAllowUndo(MotionEvent.BUTTON_PRIMARY));
     }
-
-    /**
-     * Creates a {@link MotionEvent}.
-     *
-     * <p>All parameters are for {@link MotionEvent#obtain}.
-     */
-    private static MotionEvent createMotionEvent(
-            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
-        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = toolType;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = x;
-        pointerCoords.y = y;
-
-        return MotionEvent.obtain(
-                downTime,
-                eventTime,
-                action,
-                /* pointerCount= */ 1,
-                new PointerProperties[] {pointerProperties},
-                new PointerCoords[] {pointerCoords},
-                /* metaState= */ 0,
-                /* buttonState= */ 0,
-                /* xPrecision= */ 1.0f,
-                /* yPrecision= */ 1.0f,
-                /* deviceId= */ 0,
-                /* edgeFlags= */ 0,
-                source,
-                /* flags= */ 0);
-    }
 }
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl.java
index cd36b7a6..a969364 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl.java
@@ -44,11 +44,11 @@
         }
 
         // TODO(crbug.com/40877620): This is a bandaid fix to ensure tab groups are contiguous such
-        // that
-        // no tabs within a group are separate from one another and that no tab that is not part of
-        // a group can be added in-between members of a group. This doesn't address the issue of
-        // moving tabs to be between members of a group, however when a group is moved it is moved
-        // tab-by-tab so it is difficult to enforce anything there without significant refactoring.
+        // that no tabs within a group are separate from one another and that no tab that is not
+        // part of a group can be added in-between members of a group. This doesn't address the
+        // issue of moving tabs to be between members of a group, however when a group is moved it
+        // is moved tab-by-tab so it is difficult to enforce anything there without significant
+        // refactoring.
         position = getValidPositionConsideringRelatedTabs(newTab, position);
 
         return position;
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 7070dfd..cf4c8e2f 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1735,6 +1735,7 @@
       "//chrome/browser/ui/webui/cr_components/theme_color_picker",
       "//chrome/browser/ui/webui/customize_buttons",
       "//chrome/browser/ui/webui/customize_buttons:impl",
+      "//chrome/browser/ui/webui/infobar_internals",
       "//chrome/browser/ui/webui/new_tab_footer",
       "//chrome/browser/ui/webui/new_tab_footer:impl",
       "//chrome/browser/ui/webui/privacy_sandbox",
@@ -1882,6 +1883,7 @@
       "//chrome/browser/ui/content_settings:impl",
       "//chrome/browser/ui/exclusive_access",
       "//chrome/browser/ui/privacy_sandbox:impl",
+      "//chrome/browser/ui/tabs/alert:impl",
       "//chrome/browser/ui/toasts:impl",
       "//chrome/browser/ui/views/toolbar",
       "//chrome/browser/ui/views/page_action",
@@ -4965,6 +4967,7 @@
       "//chrome/browser:main_extra_parts",
       "//chrome/browser/accessibility:utils",
       "//chrome/browser/apps:icon_standardizer",
+      "//chrome/browser/profiles/keep_alive",
       "//chrome/browser/promos:utils",
       "//chrome/browser/ui/actions:actions",
       "//chrome/browser/ui/actions:actions_headers",
diff --git a/chrome/browser/ui/android/appmenu/internal/BUILD.gn b/chrome/browser/ui/android/appmenu/internal/BUILD.gn
index c707ae6..56b304b 100644
--- a/chrome/browser/ui/android/appmenu/internal/BUILD.gn
+++ b/chrome/browser/ui/android/appmenu/internal/BUILD.gn
@@ -83,6 +83,7 @@
     "//chrome/browser/ui/android/appmenu/test:test_support_java",
     "//chrome/test/android:chrome_java_integration_test_support",
     "//components/browser_ui/util/android:java",
+    "//components/browser_ui/util/android:test_support_java",
     "//components/browser_ui/widget/android:java",
     "//components/browser_ui/widget/android:test_support_java",
     "//content/public/test/android:content_java_test_support",
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinder.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinder.java
index 4e89029..f050028b 100644
--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinder.java
+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinder.java
@@ -20,7 +20,7 @@
 
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.ui.appmenu.internal.R;
-import org.chromium.components.browser_ui.util.OnPeripheralClickListener;
+import org.chromium.components.browser_ui.util.motion.OnPeripheralClickListener;
 import org.chromium.components.browser_ui.widget.highlight.ViewHighlighter;
 import org.chromium.components.browser_ui.widget.highlight.ViewHighlighter.HighlightParams;
 import org.chromium.components.browser_ui.widget.highlight.ViewHighlighter.HighlightShape;
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinderTest.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinderTest.java
index aa5f765..c259c32 100644
--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinderTest.java
+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinderTest.java
@@ -12,8 +12,6 @@
 import android.os.SystemClock;
 import android.view.InputDevice;
 import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageButton;
@@ -43,6 +41,7 @@
 import org.chromium.chrome.browser.ui.appmenu.test.R;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.ui.modelutil.LayoutViewBuilder;
 import org.chromium.ui.modelutil.ModelListAdapter;
 import org.chromium.ui.modelutil.PropertyKey;
@@ -437,7 +436,7 @@
             View view, int motionSource, int motionToolType) {
         long downTime = SystemClock.uptimeMillis();
         view.dispatchTouchEvent(
-                createMotionEvent(
+                MotionEventTestUtils.createMotionEvent(
                         downTime,
                         /* eventTime= */ downTime,
                         MotionEvent.ACTION_DOWN,
@@ -446,7 +445,7 @@
                         motionSource,
                         motionToolType));
         view.dispatchTouchEvent(
-                createMotionEvent(
+                MotionEventTestUtils.createMotionEvent(
                         downTime,
                         /* eventTime= */ downTime + 50,
                         MotionEvent.ACTION_UP,
@@ -456,38 +455,6 @@
                         motionToolType));
     }
 
-    /**
-     * Creates a {@link MotionEvent}.
-     *
-     * <p>All parameters are for {@link MotionEvent#obtain}.
-     */
-    private static MotionEvent createMotionEvent(
-            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
-        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = toolType;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = x;
-        pointerCoords.y = y;
-
-        return MotionEvent.obtain(
-                downTime,
-                eventTime,
-                action,
-                /* pointerCount= */ 1,
-                new PointerProperties[] {pointerProperties},
-                new PointerCoords[] {pointerCoords},
-                /* metaState= */ 0,
-                /* buttonState= */ 0,
-                /* xPrecision= */ 1.0f,
-                /* yPrecision= */ 1.0f,
-                /* deviceId= */ 0,
-                /* edgeFlags= */ 0,
-                source,
-                /* flags= */ 0);
-    }
-
     @Test
     @UiThreadTest
     @MediumTest
diff --git a/chrome/browser/ui/android/omnibox/java/res/values/dimens.xml b/chrome/browser/ui/android/omnibox/java/res/values/dimens.xml
index 5d46000..34433ab 100644
--- a/chrome/browser/ui/android/omnibox/java/res/values/dimens.xml
+++ b/chrome/browser/ui/android/omnibox/java/res/values/dimens.xml
@@ -10,7 +10,6 @@
     <!-- Toolbar dimensions -->
     <dimen name="toolbar_height_no_shadow">@dimen/default_action_bar_height</dimen>
     <dimen name="toolbar_url_focus_height_increase">8dp</dimen>
-    <dimen name="toolbar_progress_bar_height">2dp</dimen>
     <dimen name="toolbar_button_width">48dp</dimen>
     <dimen name="toolbar_identity_disc_size">24dp</dimen>
     <dimen name="toolbar_url_focus_translation_x">10dp</dimen>
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
index bdfd0c6c..151d671 100644
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
@@ -7,8 +7,6 @@
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.net.Uri;
 import android.os.SystemClock;
 import android.view.LayoutInflater;
@@ -26,10 +24,9 @@
 import org.json.JSONObject;
 
 import org.chromium.base.Log;
-import org.chromium.base.PackageManagerUtils;
+import org.chromium.base.PackageUtils;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
-import org.chromium.chrome.browser.gsa.GSAUtils;
 import org.chromium.chrome.browser.pdf.PdfUtils.PdfLoadResult;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.components.browser_ui.styles.ChromeColors;
@@ -286,16 +283,11 @@
         } catch (JSONException e) {
             return null;
         }
-        mActivity.grantUriPermission(
-                GSAUtils.GSA_PACKAGE_NAME, mUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
-        var intent = new Intent(Intent.ACTION_VOICE_COMMAND);
-        var intentActivities =
-                PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_ALL);
-        for (ResolveInfo packageInfo : intentActivities) {
+        var assistantPackageName = PackageUtils.getDefaultAssistantPackageName(mActivity);
+        PdfUtils.recordGetAssistantPackageResult(assistantPackageName != null);
+        if (assistantPackageName != null) {
             mActivity.grantUriPermission(
-                    packageInfo.activityInfo.packageName,
-                    mUri,
-                    Intent.FLAG_GRANT_READ_URI_PERMISSION);
+                    assistantPackageName, mUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
         }
         PdfUtils.recordIsWorkProfile(isWorkProfile);
         return structuredData;
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfUtils.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfUtils.java
index 6c29922..80ea64a 100644
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfUtils.java
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfUtils.java
@@ -364,6 +364,11 @@
                 "Android.Pdf.AssistContent.IsWorkProfile", isWorkProfile);
     }
 
+    static void recordGetAssistantPackageResult(boolean success) {
+        RecordHistogram.recordBooleanHistogram(
+                "Android.Pdf.AssistContent.GetAssistantPackageResult", success);
+    }
+
     private static void recordIsPdfDownloadUrlEncoded(boolean encodeResult) {
         RecordHistogram.recordBooleanHistogram("Android.Pdf.DownloadUrlEncoded", encodeResult);
     }
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index ea0e1ef..7278364 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4889,10 +4889,10 @@
         Open in browser
       </message>
       <message name="IDS_READER_VIEW_TEXT_ALT" desc='Message shown on the reader mode button bar, to invite the user to tap to open a reader mode. Reader mode extracts content and removes clutter from a web page and puts the result in a panel making it easier to read. This is used when "Reader Mode for Accessibility" is available.'>
-        Show simplified view
+        Show Reading Mode
       </message>
       <message name="IDS_READER_MODE_MESSAGE_TITLE" desc="Message shown on the reader mode prompt, to invite the user to tap to open a reader mode.">
-        View simplified page?
+        View Reading Mode?
       </message>
       <message name="IDS_READER_MODE_MESSAGE_BUTTON" desc="The label for the button to open the current page in reader mode.">
         View
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_MODE_MESSAGE_TITLE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_MODE_MESSAGE_TITLE.png.sha1
index f4dbdde..c5c0551 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_MODE_MESSAGE_TITLE.png.sha1
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_MODE_MESSAGE_TITLE.png.sha1
@@ -1 +1 @@
-5c83572ae1fdb6b24336b0f043e029341c15df0e
\ No newline at end of file
+8db2b9103171d2a8323a3d3348511e5a9dedbf48
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_VIEW_TEXT_ALT.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_VIEW_TEXT_ALT.png.sha1
new file mode 100644
index 0000000..bfeef3a
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_READER_VIEW_TEXT_ALT.png.sha1
@@ -0,0 +1 @@
+889f596827680c52ab6d8f9b989079bb6a643a17
\ No newline at end of file
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
index 52672230..2825fc0c2 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -238,8 +238,10 @@
 }
 
 void TabModelJniBridge::OpenTab(const GURL& url, int index) {
-  // TODO(crbug.com/415351293): Implement.
-  NOTIMPLEMENTED();
+  JNIEnv* env = AttachCurrentThread();
+  ScopedJavaLocalRef<jobject> jobj = java_object_.get(env);
+  ScopedJavaLocalRef<jobject> jurl = url::GURLAndroid::FromNativeGURL(env, url);
+  Java_TabModelJniBridge_openTabProgrammatically(env, jobj, jurl, index);
 }
 
 void TabModelJniBridge::DiscardTab(int index) {
diff --git a/chrome/browser/ui/android/theme/java/res/values/colors.xml b/chrome/browser/ui/android/theme/java/res/values/colors.xml
index b627635..d95f970 100644
--- a/chrome/browser/ui/android/theme/java/res/values/colors.xml
+++ b/chrome/browser/ui/android/theme/java/res/values/colors.xml
@@ -11,4 +11,11 @@
     <color name="toolbar_hairline_overlay">@color/baseline_neutral_0_alpha_10</color>
     <color name="toolbar_icon_unfocused_activity_incognito_color">@color/baseline_neutral_90_alpha_38</color>
 
+    <!-- Hub pane switcher colors -->
+    <color name="pane_switcher_background_incognito">@color/gm3_baseline_surface_container_dark</color>
+    <color name="pane_switcher_background_incognito_v2">@color/gm3_baseline_surface_dark</color>
+    <color name="pane_switcher_selected_tab_incognito">@color/gm3_baseline_surface_bright_dark</color>
+    <color name="pane_switcher_selected_tab_incognito_v2">@color/baseline_secondary_30</color>
+    <color name="pane_switcher_selected_tab_icon_color_incognito">@color/baseline_neutral_90</color>
+
 </resources>
diff --git a/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/theme/SurfaceColorUpdateUtils.java b/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/theme/SurfaceColorUpdateUtils.java
index f8ce98d..3ed7533 100644
--- a/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/theme/SurfaceColorUpdateUtils.java
+++ b/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/theme/SurfaceColorUpdateUtils.java
@@ -216,4 +216,78 @@
                         context, R.color.gm3_baseline_surface_container_highest_dark)
                 : defaultBackground;
     }
+
+    /**
+     * Returns the background color for the hub pane switcher based on the enabled flag and
+     * incognito.
+     *
+     * @param context {@link Context} used to retrieve colors.
+     * @param isIncognito Whether the color is used for incognito mode.
+     */
+    public static @ColorInt int getPaneSwitcherBackgroundColor(
+            Context context, boolean isIncognito) {
+        if (useNewGtsSurfaceColor()) {
+            return isIncognito
+                    ? ContextCompat.getColor(context, R.color.pane_switcher_background_incognito_v2)
+                    : SemanticColorUtils.getColorSurface(context);
+        }
+
+        return isIncognito
+                ? ContextCompat.getColor(context, R.color.pane_switcher_background_incognito)
+                : SemanticColorUtils.getColorSurfaceContainer(context);
+    }
+
+    /**
+     * Returns the color selected tab item selector should use, based on the enabled flag and
+     * incognito.
+     *
+     * @param context {@link Context} used to retrieve colors.
+     * @param isIncognito Whether the color is used for incognito mode.
+     */
+    public static @ColorInt int geTabItemSelectorColor(Context context, boolean isIncognito) {
+        if (useNewGtsSurfaceColor()) {
+            return isIncognito
+                    ? ContextCompat.getColor(
+                            context, R.color.pane_switcher_selected_tab_incognito_v2)
+                    : SemanticColorUtils.getColorSecondaryContainer(context);
+        }
+
+        return isIncognito
+                ? ContextCompat.getColor(context, R.color.pane_switcher_selected_tab_incognito)
+                : SemanticColorUtils.getColorSurfaceBright(context);
+    }
+
+    /**
+     * Returns the color selected icons in hub pane switcher, based on the enabled flag and
+     * incognito.
+     *
+     * @param context {@link Context} used to retrieve colors.
+     * @param isIncognito Whether the color is used for incognito mode.
+     * @param isGtsUpdateEnabled Whether GTS display update is enforced or not.
+     */
+    public static @ColorInt int getHubPaneSwitcherSelectedIconColor(
+            Context context, boolean isIncognito, boolean isGtsUpdateEnabled) {
+        if (isGtsUpdateEnabled) {
+            if (useNewGtsSurfaceColor()) {
+                @ColorInt
+                int defaultColor =
+                        ColorUtils.inNightMode(context)
+                                ? SemanticColorUtils.getColorOnSurface(context)
+                                : SemanticColorUtils.getColorOnSecondaryContainer(context);
+
+                return isIncognito
+                        ? ContextCompat.getColor(
+                                context, R.color.pane_switcher_selected_tab_icon_color_incognito)
+                        : defaultColor;
+            }
+
+            return isIncognito
+                    ? ContextCompat.getColor(context, R.color.default_icon_color_light)
+                    : SemanticColorUtils.getDefaultIconColor(context);
+        }
+
+        return isIncognito
+                ? ContextCompat.getColor(context, R.color.default_control_color_active_dark)
+                : SemanticColorUtils.getDefaultIconColorAccent1(context);
+    }
 }
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBar.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBar.java
index b3498fd0..e28be8f 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBar.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBar.java
@@ -91,9 +91,6 @@
     /** The indeterminate animating view for the progress bar. */
     private @Nullable ToolbarProgressBarAnimatingView mAnimatingView;
 
-    /** The progress bar's height. */
-    private final int mProgressBarHeight;
-
     /** The current running animator that controls the fade in/out of the progress bar. */
     private @Nullable Animator mFadeAnimator;
 
@@ -164,11 +161,6 @@
         super(context, attrs);
         setAlpha(0.0f);
         mAnimationLogic = new ProgressAnimationSmooth();
-        mProgressBarHeight =
-                getResources()
-                        .getDimensionPixelSize(
-                                org.chromium.chrome.browser.toolbar.R.dimen
-                                        .toolbar_progress_bar_height);
 
         setVisibility(View.VISIBLE);
 
diff --git a/chrome/browser/ui/apps/BUILD.gn b/chrome/browser/ui/apps/BUILD.gn
index 21a0af3f..0edc8778 100644
--- a/chrome/browser/ui/apps/BUILD.gn
+++ b/chrome/browser/ui/apps/BUILD.gn
@@ -40,6 +40,7 @@
     "//chrome/browser/media/webrtc",
     "//chrome/browser/picture_in_picture",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/ui:browser_navigator_params_headers",
     "//components/keep_alive_registry",
     "//components/version_info",
diff --git a/chrome/browser/ui/ash/desks/BUILD.gn b/chrome/browser/ui/ash/desks/BUILD.gn
index 463e3050..5041aec5 100644
--- a/chrome/browser/ui/ash/desks/BUILD.gn
+++ b/chrome/browser/ui/ash/desks/BUILD.gn
@@ -40,6 +40,7 @@
     "//chrome/browser/favicon",
     "//chrome/browser/profiles",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/sync",
     "//chrome/browser/ui/ash/multi_user",
     "//chrome/browser/ui/ash/shelf",
@@ -118,6 +119,7 @@
     "//chrome/browser/policy:test_support",
     "//chrome/browser/prefs:util",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/ui",
     "//chrome/browser/ui:browser_list",
     "//chrome/browser/ui/ash/login",
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
index e1e8bcfe..8c6140d4 100644
--- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
@@ -633,7 +633,8 @@
       return chrome::HasBookmarkURLs(selection_);
     case IDC_BOOKMARK_BAR_OPEN_SPLIT_VIEW:
       return chrome::HasBookmarkURLs(selection_) &&
-             base::FeatureList::IsEnabled(features::kSideBySide);
+             base::FeatureList::IsEnabled(features::kSideBySide) && browser_ &&
+             !browser_->GetActiveTabInterface()->IsSplit();
     case IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW:
       return chrome::HasBookmarkURLs(selection_) &&
              incognito_avail != policy::IncognitoModeAvailability::kForced;
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller_unittest.cc b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller_unittest.cc
index 3891d9b..747580d5 100644
--- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller_unittest.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller_unittest.cc
@@ -184,7 +184,7 @@
       controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW));
   EXPECT_TRUE(
       controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO));
-  EXPECT_TRUE(controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_OPEN_SPLIT_VIEW));
+  EXPECT_FALSE(controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_OPEN_SPLIT_VIEW));
   EXPECT_TRUE(controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_REMOVE));
   EXPECT_TRUE(controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK));
   EXPECT_TRUE(controller.IsCommandIdEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER));
diff --git a/chrome/browser/ui/bookmarks/bookmark_utils_desktop.cc b/chrome/browser/ui/bookmarks/bookmark_utils_desktop.cc
index bcb27b4..f4e3be6 100644
--- a/chrome/browser/ui/bookmarks/bookmark_utils_desktop.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_utils_desktop.cc
@@ -294,7 +294,7 @@
           const int opened_web_contents_index =
               model->GetIndexOfWebContents(single_web_contents);
           model->AddToNewSplit({opened_web_contents_index},
-                               split_tabs::SplitTabLayout::kVertical);
+                               split_tabs::SplitTabVisualData());
         } else if (folder_title.has_value()) {
           TabStripModel* model = browser->tab_strip_model();
 
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 0deaca9..5bcef58 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -104,7 +104,6 @@
 #include "chrome/browser/ui/browser_location_bar_model_delegate.h"
 #include "chrome/browser/ui/browser_navigator.h"
 #include "chrome/browser/ui/browser_navigator_params.h"
-#include "chrome/browser/ui/browser_tab_menu_model_delegate.h"
 #include "chrome/browser/ui/browser_tab_strip_model_delegate.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_ui_prefs.h"
@@ -635,8 +634,6 @@
           params.profile,
           params.are_tab_groups_enabled ? TabGroupModelFactory::GetInstance()
                                         : nullptr)),
-      tab_menu_model_delegate_(
-          std::make_unique<chrome::BrowserTabMenuModelDelegate>(this)),
       app_name_(params.app_name),
       is_trusted_source_(params.trusted_source),
       session_id_(SessionID::NewUnique()),
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 9dfba94..553762b 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -81,7 +81,6 @@
 class ScopedProfileKeepAlive;
 class StatusBubble;
 class TabStripModelDelegate;
-class TabMenuModelDelegate;
 
 namespace tabs {
 class TabInterface;
@@ -491,11 +490,6 @@
     return tab_strip_model_delegate_.get();
   }
 
-  // Never nullptr.
-  TabMenuModelDelegate* tab_menu_model_delegate() const {
-    return tab_menu_model_delegate_.get();
-  }
-
   BrowserActions* browser_actions() const { return browser_actions_.get(); }
 
   chrome::BrowserCommandController* command_controller() {
@@ -1376,8 +1370,6 @@
   std::unique_ptr<TabStripModelDelegate> const tab_strip_model_delegate_;
   std::unique_ptr<TabStripModel> const tab_strip_model_;
 
-  std::unique_ptr<TabMenuModelDelegate> const tab_menu_model_delegate_;
-
   // The application name that is also the name of the window to the shell.
   // This name should be set when:
   // 1) we launch an application via an application shortcut or extension API.
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index e22d342..093d5d9 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -96,6 +96,7 @@
 #include "chrome/browser/ui/tabs/organization/tab_organization_service_factory.h"
 #include "chrome/browser/ui/tabs/organization/tab_organization_session.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h"
+#include "chrome/browser/ui/tabs/split_tab_util.h"
 #include "chrome/browser/ui/tabs/tab_enums.h"
 #include "chrome/browser/ui/tabs/tab_group_model.h"
 #include "chrome/browser/ui/tabs/tab_strip_user_gesture_details.h"
@@ -155,6 +156,7 @@
 #include "components/sessions/core/tab_restore_service.h"
 #include "components/tab_groups/tab_group_id.h"
 #include "components/tab_groups/tab_group_visual_data.h"
+#include "components/tabs/public/split_tab_data.h"
 #include "components/tabs/public/split_tab_visual_data.h"
 #include "components/tabs/public/tab_group.h"
 #include "components/tabs/public/tab_interface.h"
@@ -335,6 +337,38 @@
   return true;
 }
 
+content::WebContents* DuplicateTabAt(Browser* browser,
+                                     int index,
+                                     int dst_index) {
+  content::WebContents* contents =
+      browser->tab_strip_model()->GetWebContentsAt(index);
+  CHECK(contents);
+  std::unique_ptr<content::WebContents> contents_dupe = contents->Clone();
+  content::WebContents* raw_contents_dupe = contents_dupe.get();
+
+  bool pinned = false;
+  if (browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) {
+    // If this is a tabbed browser, just create a duplicate tab inside the same
+    // window next to the tab being duplicated.
+    TabStripModel* tab_strip_model = browser->tab_strip_model();
+    pinned = tab_strip_model->IsTabPinned(index);
+    int add_types = AddTabTypes::ADD_ACTIVE | AddTabTypes::ADD_INHERIT_OPENER |
+                    (pinned ? AddTabTypes::ADD_PINNED : 0);
+    const auto old_group = tab_strip_model->GetTabGroupForTab(index);
+    tab_strip_model->InsertWebContentsAt(dst_index, std::move(contents_dupe),
+                                         add_types, old_group);
+  } else {
+    CreateAndShowNewWindowWithContents(std::move(contents_dupe), browser);
+  }
+
+  SessionServiceBase* session_service =
+      GetAppropriateSessionServiceIfExisting(browser);
+  if (session_service) {
+    session_service->TabRestored(raw_contents_dupe, pinned);
+  }
+  return raw_contents_dupe;
+}
+
 }  // namespace
 
 using base::UserMetricsAction;
@@ -1197,33 +1231,37 @@
 }
 
 WebContents* DuplicateTabAt(Browser* browser, int index) {
-  WebContents* contents = browser->tab_strip_model()->GetWebContentsAt(index);
-  CHECK(contents);
-  std::unique_ptr<WebContents> contents_dupe = contents->Clone();
-  WebContents* raw_contents_dupe = contents_dupe.get();
+  return ::DuplicateTabAt(browser, index, index + 1);
+}
 
-  bool pinned = false;
-  if (browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) {
-    // If this is a tabbed browser, just create a duplicate tab inside the same
-    // window next to the tab being duplicated.
-    TabStripModel* tab_strip_model = browser->tab_strip_model();
-    const int contents_index = tab_strip_model->GetIndexOfWebContents(contents);
-    pinned = tab_strip_model->IsTabPinned(contents_index);
-    int add_types = AddTabTypes::ADD_ACTIVE | AddTabTypes::ADD_INHERIT_OPENER |
-                    (pinned ? AddTabTypes::ADD_PINNED : 0);
-    const auto old_group = tab_strip_model->GetTabGroupForTab(contents_index);
-    tab_strip_model->InsertWebContentsAt(
-        contents_index + 1, std::move(contents_dupe), add_types, old_group);
-  } else {
-    CreateAndShowNewWindowWithContents(std::move(contents_dupe), browser);
+void DuplicateSplit(Browser* browser, split_tabs::SplitTabId split) {
+  CHECK(browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP));
+
+  TabStripModel* model = browser->tab_strip_model();
+  gfx::Range split_indices_range = model->GetIndexRangeOfSplit(split);
+  std::vector<int> duplicated_tab_indices;
+  for (size_t split_index = split_indices_range.GetMin();
+       split_index < split_indices_range.GetMax(); split_index++) {
+    size_t dst_index = split_index + split_indices_range.length();
+    ::DuplicateTabAt(browser, split_index, dst_index);
+    duplicated_tab_indices.push_back(dst_index);
   }
 
-  SessionServiceBase* session_service =
-      GetAppropriateSessionServiceIfExisting(browser);
-  if (session_service) {
-    session_service->TabRestored(raw_contents_dupe, pinned);
-  }
-  return raw_contents_dupe;
+  // Activate the tab that was last active in the old split, and then
+  // create the new split with the same visual data.
+  // TODO(418015278): Revisit if we should store last active tab in the visual
+  // data, to make copying it easier.
+  int active_index = split_tabs::GetIndexOfLastActiveTab(model, split) +
+                     split_indices_range.length();
+  model->ActivateTabAt(active_index);
+  // AddToNewSplit always creates a split with the active index so remove it
+  // from the passed in indices.
+  duplicated_tab_indices.erase(std::find(duplicated_tab_indices.begin(),
+                                         duplicated_tab_indices.end(),
+                                         active_index));
+  model->AddToNewSplit(duplicated_tab_indices,
+                       split_tabs::SplitTabVisualData(
+                           *(model->GetSplitData(split)->visual_data())));
 }
 
 bool CanDuplicateTabAt(const Browser* browser, int index) {
@@ -1286,7 +1324,7 @@
       GURL(chrome::kChromeUISplitViewNewTabPageURL), active_index + 1, true,
       tab_strip_model->GetTabGroupForTab(active_index));
   tab_strip_model->AddToNewSplit({active_index},
-                                 split_tabs::SplitTabLayout::kVertical);
+                                 split_tabs::SplitTabVisualData());
 }
 
 void AddNewTabToGroup(Browser* browser) {
diff --git a/chrome/browser/ui/browser_commands.h b/chrome/browser/ui/browser_commands.h
index 7f6248f4..6b262b5 100644
--- a/chrome/browser/ui/browser_commands.h
+++ b/chrome/browser/ui/browser_commands.h
@@ -17,6 +17,7 @@
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h"
 #include "chrome/browser/ui/tabs/tab_strip_user_gesture_details.h"
+#include "components/tabs/public/split_tab_id.h"
 #include "content/public/common/page_zoom.h"
 #include "printing/buildflags/buildflags.h"
 #include "ui/base/window_open_disposition.h"
@@ -140,6 +141,7 @@
 bool CanCloseTabsToRight(const Browser* browser);
 bool CanCloseOtherTabs(const Browser* browser);
 content::WebContents* DuplicateTabAt(Browser* browser, int index);
+void DuplicateSplit(Browser* browser, split_tabs::SplitTabId split);
 bool CanDuplicateTabAt(const Browser* browser, int index);
 void MoveTabsToExistingWindow(Browser* source,
                               Browser* target,
diff --git a/chrome/browser/ui/browser_tab_menu_model_delegate.cc b/chrome/browser/ui/browser_tab_menu_model_delegate.cc
index 7b8b3845..456ad59 100644
--- a/chrome/browser/ui/browser_tab_menu_model_delegate.cc
+++ b/chrome/browser/ui/browser_tab_menu_model_delegate.cc
@@ -11,8 +11,13 @@
 
 namespace chrome {
 
-BrowserTabMenuModelDelegate::BrowserTabMenuModelDelegate(Browser* browser)
-    : browser_(browser) {}
+BrowserTabMenuModelDelegate::BrowserTabMenuModelDelegate(
+    SessionID session_id,
+    const Profile* profile,
+    const web_app::AppBrowserController* app_controller)
+    : session_id_(session_id),
+      profile_(profile),
+      app_controller_(app_controller) {}
 
 BrowserTabMenuModelDelegate::~BrowserTabMenuModelDelegate() = default;
 
@@ -23,10 +28,10 @@
   for (Browser* browser : BrowserList::GetInstance()->OrderedByActivation()) {
     // We can only move into a tabbed view of the same profile, and not the same
     // window we're currently in.
-    if (browser != browser_ && browser->profile() == browser_->profile()) {
+    if (browser->GetSessionID() != session_id_ &&
+        browser->profile() == profile_) {
       if (is_app && browser->is_type_app() &&
-          browser->app_controller()->app_id() ==
-              browser_->app_controller()->app_id()) {
+          browser->app_controller()->app_id() == app_controller_->app_id()) {
         browsers.push_back(browser);
       } else if (!is_app && browser->is_type_normal()) {
         browsers.push_back(browser);
diff --git a/chrome/browser/ui/browser_tab_menu_model_delegate.h b/chrome/browser/ui/browser_tab_menu_model_delegate.h
index 35695fbc..98a24bd8 100644
--- a/chrome/browser/ui/browser_tab_menu_model_delegate.h
+++ b/chrome/browser/ui/browser_tab_menu_model_delegate.h
@@ -9,8 +9,14 @@
 
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/ui/tabs/tab_menu_model_delegate.h"
+#include "components/sessions/core/session_id.h"
 
 class Browser;
+class Profile;
+
+namespace web_app {
+class AppBrowserController;
+}
 
 namespace chrome {
 
@@ -18,14 +24,23 @@
 // fulfill its duties.
 class BrowserTabMenuModelDelegate : public TabMenuModelDelegate {
  public:
-  explicit BrowserTabMenuModelDelegate(Browser* browser);
+  BrowserTabMenuModelDelegate(
+      SessionID session_id,
+      const Profile* profile,
+      const web_app::AppBrowserController* app_controller);
   ~BrowserTabMenuModelDelegate() override;
 
+  BrowserTabMenuModelDelegate(const BrowserTabMenuModelDelegate&) = delete;
+  BrowserTabMenuModelDelegate& operator=(const BrowserTabMenuModelDelegate&) =
+      delete;
+
  private:
   // TabMenuModelDelegate:
   std::vector<Browser*> GetOtherBrowserWindows(bool is_app) override;
 
-  const raw_ptr<Browser, DanglingUntriaged> browser_;
+  const SessionID session_id_;
+  const raw_ptr<const Profile> profile_;
+  const raw_ptr<const web_app::AppBrowserController> app_controller_;
 };
 
 }  // namespace chrome
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.cc b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
index 4d0074e..f72eaf7a 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
@@ -23,6 +23,7 @@
 #include "chrome/browser/ui/browser_live_tab_context.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tab_helpers.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h"
@@ -44,6 +45,7 @@
 #include "components/sessions/core/session_id.h"
 #include "components/sessions/core/tab_restore_service.h"
 #include "components/tab_groups/tab_group_id.h"
+#include "components/tabs/public/split_tab_id.h"
 #include "components/tabs/public/split_tab_visual_data.h"
 #include "components/tabs/public/tab_group.h"
 #include "content/public/browser/site_instance.h"
@@ -135,11 +137,16 @@
   DuplicateTabAt(browser_, index);
 }
 
+void BrowserTabStripModelDelegate::DuplicateSplit(
+    split_tabs::SplitTabId split) {
+  chrome::DuplicateSplit(browser_, split);
+}
+
 void BrowserTabStripModelDelegate::MoveToExistingWindow(
     const std::vector<int>& indices,
     int browser_index) {
   std::vector<Browser*> existing_browsers =
-      browser_->tab_menu_model_delegate()->GetOtherBrowserWindows(
+      browser_->GetFeatures().tab_menu_model_delegate()->GetOtherBrowserWindows(
           web_app::AppBrowserController::IsWebApp(browser_));
   size_t existing_browser_count = existing_browsers.size();
   if (static_cast<size_t>(browser_index) < existing_browser_count &&
@@ -331,7 +338,7 @@
     chrome::NewSplitTab(browser_);
   } else {
     browser_->tab_strip_model()->AddToNewSplit(
-        indices, split_tabs::SplitTabLayout::kVertical);
+        indices, split_tabs::SplitTabVisualData());
   }
 }
 
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.h b/chrome/browser/ui/browser_tab_strip_model_delegate.h
index 39512f14..34a64e4 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.h
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.h
@@ -44,6 +44,7 @@
   bool CanDuplicateContentsAt(int index) override;
   bool IsTabStripEditable() override;
   void DuplicateContentsAt(int index) override;
+  void DuplicateSplit(split_tabs::SplitTabId split) override;
   void MoveToExistingWindow(const std::vector<int>& indices,
                             int browser_index) override;
   bool CanMoveTabsToWindow(const std::vector<int>& indices) override;
diff --git a/chrome/browser/ui/browser_window/browser_window_features.cc b/chrome/browser/ui/browser_window/browser_window_features.cc
index 81915bd..bfd41dbe 100644
--- a/chrome/browser/ui/browser_window/browser_window_features.cc
+++ b/chrome/browser/ui/browser_window/browser_window_features.cc
@@ -22,6 +22,7 @@
 #include "chrome/browser/ui/browser_actions.h"
 #include "chrome/browser/ui/browser_command_controller.h"
 #include "chrome/browser/ui/browser_instant_controller.h"
+#include "chrome/browser/ui/browser_tab_menu_model_delegate.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/browser/ui/commerce/product_specifications_entry_point_controller.h"
 #include "chrome/browser/ui/extensions/mv2_disabled_dialog_controller.h"
@@ -55,6 +56,7 @@
 #include "chrome/browser/ui/views/tabs/tab_strip_action_container.h"
 #include "chrome/browser/ui/views/toolbar/chrome_labs/chrome_labs_coordinator.h"
 #include "chrome/browser/ui/views/translate/translate_bubble_controller.h"
+#include "chrome/browser/ui/web_applications/app_browser_controller.h"
 #include "chrome/common/chrome_features.h"
 #include "components/collaboration/public/collaboration_service.h"
 #include "components/commerce/core/commerce_feature_list.h"
@@ -188,6 +190,11 @@
   cookie_controls_bubble_coordinator_ =
       std::make_unique<CookieControlsBubbleCoordinator>();
 
+  tab_menu_model_delegate_ =
+      std::make_unique<chrome::BrowserTabMenuModelDelegate>(
+          browser->GetSessionID(), browser->GetProfile(),
+          browser->GetAppBrowserController());
+
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
   if (base::FeatureList::IsEnabled(features::kPdfInfoBar)) {
     pdf_infobar_controller_ = std::make_unique<PdfInfoBarController>(browser);
diff --git a/chrome/browser/ui/browser_window/public/browser_window_features.h b/chrome/browser/ui/browser_window/public/browser_window_features.h
index 3a529c1..8f3ab47 100644
--- a/chrome/browser/ui/browser_window/public/browser_window_features.h
+++ b/chrome/browser/ui/browser_window/public/browser_window_features.h
@@ -28,6 +28,7 @@
 class MemorySaverOptInIPHController;
 class SidePanelCoordinator;
 class SidePanelUI;
+class TabMenuModelDelegate;
 class TabSearchToolbarButtonController;
 class TabStripModel;
 class TranslateBubbleController;
@@ -224,6 +225,10 @@
     return cookie_controls_bubble_coordinator_.get();
   }
 
+  TabMenuModelDelegate* tab_menu_model_delegate() {
+    return tab_menu_model_delegate_.get();
+  }
+
   // Only fetch the tab_strip_service to register a pending receiver.
   TabStripServiceRegister* tab_strip_service() {
     return tab_strip_service_.get();
@@ -314,6 +319,8 @@
   std::unique_ptr<CookieControlsBubbleCoordinator>
       cookie_controls_bubble_coordinator_;
 
+  std::unique_ptr<TabMenuModelDelegate> tab_menu_model_delegate_;
+
   // This is an experimental API that interacts with the TabStripModel.
   std::unique_ptr<TabStripServiceRegister> tab_strip_service_;
 };
diff --git a/chrome/browser/ui/lens/lens_overlay_controller.cc b/chrome/browser/ui/lens/lens_overlay_controller.cc
index 63b6aa2..3323695 100644
--- a/chrome/browser/ui/lens/lens_overlay_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_controller.cc
@@ -1827,6 +1827,8 @@
                      pending_region_bitmap_);
     pending_region_bitmap_.reset();
   }
+
+  TryCalculateAndRecordOcrDomSimilarity();
 }
 
 void LensOverlayController::InitializeOverlayUI(
@@ -1848,7 +1850,7 @@
   lens_session_metrics_logger->OnInitialPageContentRetrieved(
       /*page_content_type=*/init_data.page_contents_.empty()
           ? lens::MimeType::kUnknown
-          : init_data.page_contents_.front().content_type_);
+          : init_data.primary_content_type_);
 
   page_->ShouldShowContextualSearchBox(should_show_csb);
 
@@ -2623,20 +2625,21 @@
 
 void LensOverlayController::RecordDocumentMetrics(
     std::optional<uint32_t> page_count) {
-  // Use the first lens::PageContent as it is the most important PDF/Webpage.
-  // TODO(crbug.com/398304347): Ideally all lens::PageContent sizes should be
-  // recorded.
-  auto content_type =
-      initialization_data_->page_contents_.empty()
-          ? lens::MimeType::kUnknown
-          : initialization_data_->page_contents_.front().content_type_;
-  auto page_content_bytes_size =
-      initialization_data_->page_contents_.empty()
-          ? 0
-          : initialization_data_->page_contents_.front().bytes_.size();
-  lens::RecordDocumentSizeBytes(content_type, page_content_bytes_size);
+  // Record the document size bytes for each lens::PageContent. If there are no
+  // page contents, then we will record 0.
+  std::set<lens::MimeType> retrieved_content_types;
+  if (!initialization_data_ || initialization_data_->page_contents_.empty()) {
+    lens::RecordDocumentSizeBytes(lens::MimeType::kUnknown, 0);
+  } else {
+    for (const auto& page_content : initialization_data_->page_contents_) {
+      lens::RecordDocumentSizeBytes(page_content.content_type_,
+                                    page_content.bytes_.size());
+      retrieved_content_types.insert(page_content.content_type_);
+    }
+  }
 
-  if (page_count.has_value() && content_type == lens::MimeType::kPdf) {
+  if (page_count.has_value() &&
+      initialization_data_->primary_content_type_ == lens::MimeType::kPdf) {
     lens::RecordPdfPageCount(page_count.value());
     return;
   }
@@ -2645,13 +2648,14 @@
   // TODO(crbug.com/398304347): Remove these once both the innerHtml and
   // innerText metrics are recorded as part of the content data.
   auto* render_frame_host = tab_->GetContents()->GetPrimaryMainFrame();
-  if (content_type == lens::MimeType::kHtml) {
+  if (!retrieved_content_types.contains(lens::MimeType::kPlainText)) {
     // Fetch the innerText to log the size.
     content_extraction::GetInnerText(
         *render_frame_host, /*node_id=*/std::nullopt,
         base::BindOnce(&LensOverlayController::RecordInnerTextSize,
                        weak_factory_.GetWeakPtr()));
-  } else if (content_type == lens::MimeType::kPlainText) {
+  }
+  if (!retrieved_content_types.contains(lens::MimeType::kHtml)) {
     // Fetch the innerHtml bytes to log the size.
     content_extraction::GetInnerHtml(
         *render_frame_host,
diff --git a/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc b/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc
index ad2a875..2a958c1d 100644
--- a/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc
+++ b/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc
@@ -8164,6 +8164,86 @@
 }
 
 IN_PROC_BROWSER_TEST_F(LensOverlayControllerInnerHtmlWithInnerTextAndApc,
+                       PageContentTypeHistograms) {
+  ukm::TestAutoSetUkmRecorder test_ukm_recorder;
+  base::HistogramTester histogram_tester;
+
+  WaitForPaint(kDocumentWithNonAsciiCharacters);
+
+  // State should start in off.
+  auto* controller = GetLensOverlayController();
+  ASSERT_EQ(controller->state(), State::kOff);
+
+  // Setup fake text in the OCR response. Included 4 words on the DOM, and 1
+  // not, to make a similarity score of 0.8. Also include some random characters
+  // to make sure they are ignored.
+  auto* fake_controller =
+      static_cast<LensSearchControllerFake*>(GetLensSearchController());
+  fake_controller->SetOcrResponseWords(
+      {"The.", "   below   - ", " ,are] ", "RANDOM", "\n\n\nCharacters.\n"});
+
+  // Open the overlay.
+  OpenLensOverlay(LensOverlayInvocationSource::kAppMenu);
+  ASSERT_EQ(controller->state(), State::kScreenshot);
+  ASSERT_TRUE(base::test::RunUntil(
+      [&]() { return controller->state() == State::kOverlay; }));
+
+  CloseOverlayAndWaitForOff(controller,
+                            LensOverlayDismissalSource::kOverlayCloseButton);
+
+  histogram_tester.ExpectUniqueSample(
+      "Lens.Overlay.ByDocumentType.Html.Invoked",
+      /*sample*/ true,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Lens.Overlay.ContextualSearchBox.ShownInSession",
+      /*sample*/ true,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Lens.Overlay.ContextualSearchBox.ByPageContentType.AnnotatedPageContent."
+      "ShownInSession",
+      /*sample*/ true,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Lens.Overlay.ContextualSearchBox.ByDocumentType.Html."
+      "ShownInSession",
+      /*sample*/ true,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectTotalCount(
+      "Lens.Overlay.ByPageContentType.AnnotatedPageContent.DocumentSize2",
+      /*expected_count=*/1);
+  histogram_tester.ExpectTotalCount(
+      "Lens.Overlay.ByPageContentType.PlainText.DocumentSize2",
+      /*expected_count=*/1);
+  histogram_tester.ExpectTotalCount(
+      "Lens.Overlay.ByPageContentType.Html.DocumentSize2",
+      /*expected_count=*/1);
+
+  // Verify UKM metrics were recorded.
+  auto entries = test_ukm_recorder.GetEntriesByName(
+      ukm::builders::Lens_Overlay_ContextualSearchBox_ShownInSession::
+          kEntryName);
+  EXPECT_EQ(1u, entries.size());
+  auto* entry = entries[0].get();
+  test_ukm_recorder.ExpectEntryMetric(
+      entry,
+      ukm::builders::Lens_Overlay_ContextualSearchBox_ShownInSession::
+          kWasShownName,
+      true);
+  test_ukm_recorder.ExpectEntryMetric(
+      entry,
+      ukm::builders::Lens_Overlay_ContextualSearchBox_ShownInSession::
+          kPageContentTypeName,
+      static_cast<int64_t>(lens::MimeType::kAnnotatedPageContent));
+
+  // This histogram is async so run until it is recorded.
+  ASSERT_TRUE(base::test::RunUntil([&]() {
+    return histogram_tester.GetBucketCount("Lens.Overlay.OcrDomSimilarity",
+                                           80) == 1;
+  }));
+}
+
+IN_PROC_BROWSER_TEST_F(LensOverlayControllerInnerHtmlWithInnerTextAndApc,
                        PageNotContextEligibleError) {
   base::HistogramTester histogram_tester;
   WaitForPaint(kDocumentWithNonAsciiCharacters);
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index 3575eaca..bd5c582 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -234,8 +234,8 @@
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h"
+#include "chrome/browser/extensions/app_tab_helper.h"
 #include "chrome/browser/extensions/navigation_extension_enabler.h"
-#include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/ui/extensions/extension_side_panel_utils.h"
 #include "chrome/browser/web_applications/policy/pre_redirection_url_observer.h"
 #include "chrome/browser/web_applications/web_app_utils.h"
@@ -244,6 +244,10 @@
 #include "extensions/common/mojom/view_type.mojom.h"
 #endif
 
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+#include "chrome/browser/extensions/tab_helper.h"
+#endif
+
 #if BUILDFLAG(ENABLE_OFFLINE_PAGES)
 #include "chrome/browser/offline_pages/android/auto_fetch_page_load_watcher.h"
 #include "chrome/browser/offline_pages/offline_page_tab_helper.h"
@@ -738,13 +742,16 @@
     extensions::SetViewType(web_contents,
                             extensions::mojom::ViewType::kTabContents);
   }
-
-  extensions::TabHelper::CreateForWebContents(web_contents);
+  extensions::AppTabHelper::CreateForWebContents(web_contents);
   extensions::NavigationExtensionEnabler::CreateForWebContents(web_contents);
-
   extensions::WebNavigationTabObserver::CreateForWebContents(web_contents);
 #endif
 
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+  // extensions::TabHelper is used on Win/Mac/Linux and desktop Android.
+  extensions::TabHelper::CreateForWebContents(web_contents);
+#endif
+
 #if BUILDFLAG(ENABLE_OFFLINE_PAGES)
   offline_pages::OfflinePageTabHelper::CreateForWebContents(web_contents);
   offline_pages::RecentTabHelper::CreateForWebContents(web_contents);
diff --git a/chrome/browser/ui/tabs/BUILD.gn b/chrome/browser/ui/tabs/BUILD.gn
index ef350c55..907a4c2 100644
--- a/chrome/browser/ui/tabs/BUILD.gn
+++ b/chrome/browser/ui/tabs/BUILD.gn
@@ -419,6 +419,8 @@
       "pinned_tab_test_utils.h",
       "tab_activity_simulator.cc",
       "tab_activity_simulator.h",
+      "tab_strip_model_test_utils.cc",
+      "tab_strip_model_test_utils.h",
       "tab_ukm_test_helper.cc",
       "tab_ukm_test_helper.h",
       "test_tab_strip_model_delegate.cc",
@@ -476,6 +478,7 @@
       "//chrome/browser",
       "//chrome/browser/policy:test_support",
       "//chrome/browser/profiles:profile",
+      "//chrome/browser/profiles/keep_alive",
       "//chrome/browser/sync",
       "//chrome/browser/ui",
       "//chrome/browser/ui:browser_list",
diff --git a/chrome/browser/ui/tabs/alert/BUILD.gn b/chrome/browser/ui/tabs/alert/BUILD.gn
index 862705e0..bfdf3c14 100644
--- a/chrome/browser/ui/tabs/alert/BUILD.gn
+++ b/chrome/browser/ui/tabs/alert/BUILD.gn
@@ -10,6 +10,7 @@
   public = [
     "tab_alert.h",
     "tab_alert_controller.h",
+    "tab_alert_icon.h",
   ]
 
   public_deps = [
@@ -19,9 +20,21 @@
 }
 
 source_set("impl") {
-  sources = [ "tab_alert_controller.cc" ]
+  sources = [
+    "tab_alert_controller.cc",
+    "tab_alert_icon.cc",
+  ]
 
-  deps = [ ":tab_alert" ]
+  deps = [
+    ":tab_alert",
+    "//chrome/app/vector_icons:vector_icons",
+    "//chrome/common:chrome_features",
+    "//components/vector_icons:vector_icons",
+  ]
+
+  if (enable_glic) {
+    deps += [ "//chrome/browser/glic:glic" ]
+  }
 }
 
 source_set("unit_tests") {
diff --git a/chrome/browser/ui/tabs/alert/tab_alert_icon.cc b/chrome/browser/ui/tabs/alert/tab_alert_icon.cc
new file mode 100644
index 0000000..a2373a5
--- /dev/null
+++ b/chrome/browser/ui/tabs/alert/tab_alert_icon.cc
@@ -0,0 +1,70 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/tabs/alert/tab_alert_icon.h"
+
+#include "chrome/app/vector_icons/vector_icons.h"
+#include "chrome/browser/ui/layout_constants.h"
+#include "chrome/browser/ui/tabs/alert/tab_alert.h"
+#include "chrome/common/chrome_features.h"
+#include "components/vector_icons/vector_icons.h"
+#include "ui/base/models/image_model.h"
+
+#if BUILDFLAG(ENABLE_GLIC)
+#include "chrome/browser/glic/browser_ui/glic_vector_icon_manager.h"
+#endif
+
+namespace tabs {
+
+const gfx::VectorIcon& GetAlertIcon(TabAlert alert_state) {
+  switch (alert_state) {
+    case TabAlert::AUDIO_PLAYING:
+      return vector_icons::kVolumeUpChromeRefreshIcon;
+    case TabAlert::AUDIO_MUTING:
+      return vector_icons::kVolumeOffChromeRefreshIcon;
+    case TabAlert::MEDIA_RECORDING:
+    case TabAlert::AUDIO_RECORDING:
+    case TabAlert::VIDEO_RECORDING:
+    case TabAlert::DESKTOP_CAPTURING:
+      return vector_icons::kRadioButtonCheckedIcon;
+    case TabAlert::TAB_CAPTURING:
+      return vector_icons::kCaptureIcon;
+    case TabAlert::BLUETOOTH_CONNECTED:
+      return vector_icons::kBluetoothConnectedIcon;
+    case TabAlert::BLUETOOTH_SCAN_ACTIVE:
+      return vector_icons::kBluetoothScanningChromeRefreshIcon;
+    case TabAlert::USB_CONNECTED:
+      return vector_icons::kUsbChromeRefreshIcon;
+    case TabAlert::HID_CONNECTED:
+      return vector_icons::kVideogameAssetChromeRefreshIcon;
+    case TabAlert::SERIAL_CONNECTED:
+      return vector_icons::kSerialPortChromeRefreshIcon;
+    case TabAlert::PIP_PLAYING:
+      return vector_icons::kPictureInPictureAltIcon;
+    case TabAlert::VR_PRESENTING_IN_HEADSET:
+      return vector_icons::kCardboardIcon;
+    case TabAlert::GLIC_ACCESSING:
+#if BUILDFLAG(ENABLE_GLIC)
+      return glic::GlicVectorIconManager::GetVectorIcon(
+          IDR_GLIC_ACCESSING_ICON);
+#else
+      return kTvIcon;
+#endif
+  }
+}
+
+ui::ImageModel GetAlertImageModel(TabAlert alert_state,
+                                  ui::ColorId icon_color) {
+  // Tab capturing icon uses a different width compared to
+  // the other tab alert indicator icons.
+  const int image_width =
+      GetLayoutConstant(alert_state == tabs::TabAlert::TAB_CAPTURING
+                            ? TAB_ALERT_INDICATOR_CAPTURE_ICON_WIDTH
+                            : TAB_ALERT_INDICATOR_ICON_WIDTH);
+
+  return ui::ImageModel::FromVectorIcon(GetAlertIcon(alert_state), icon_color,
+                                        image_width);
+}
+
+}  // namespace tabs
diff --git a/chrome/browser/ui/tabs/alert/tab_alert_icon.h b/chrome/browser/ui/tabs/alert/tab_alert_icon.h
new file mode 100644
index 0000000..3472494
--- /dev/null
+++ b/chrome/browser/ui/tabs/alert/tab_alert_icon.h
@@ -0,0 +1,29 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_TABS_ALERT_TAB_ALERT_ICON_H_
+#define CHROME_BROWSER_UI_TABS_ALERT_TAB_ALERT_ICON_H_
+
+#include "ui/color/color_id.h"
+#include "ui/gfx/vector_icon_types.h"
+
+namespace ui {
+class ImageModel;
+}  // namespace ui
+
+namespace tabs {
+
+enum class TabAlert;
+
+// Returns the corresponding icon for the given alert.
+const gfx::VectorIcon& GetAlertIcon(TabAlert alert_state);
+
+// Returns the corresponding image model for the given `alert_state` and
+// `icon_color`.
+ui::ImageModel GetAlertImageModel(tabs::TabAlert alert_state,
+                                  ui::ColorId icon_color);
+
+}  // namespace tabs
+
+#endif  // CHROME_BROWSER_UI_TABS_ALERT_TAB_ALERT_ICON_H_
diff --git a/chrome/browser/ui/tabs/existing_tab_group_sub_menu_model_browsertest.cc b/chrome/browser/ui/tabs/existing_tab_group_sub_menu_model_browsertest.cc
index ea12903..926b829 100644
--- a/chrome/browser/ui/tabs/existing_tab_group_sub_menu_model_browsertest.cc
+++ b/chrome/browser/ui/tabs/existing_tab_group_sub_menu_model_browsertest.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_tab_menu_model_delegate.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tabs/tab_group_model.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -18,6 +19,14 @@
 #include "content/public/test/browser_test.h"
 #include "url/gurl.h"
 
+namespace {
+std::unique_ptr<TabMenuModelDelegate> CreateTabMenuModelDelegate(
+    Browser* browser) {
+  return std::make_unique<chrome::BrowserTabMenuModelDelegate>(
+      browser->session_id(), browser->profile(), browser->app_controller());
+}
+}  // namespace
+
 class ExistingTabGroupSubMenuModelTest : public InProcessBrowserTest {
  public:
   ExistingTabGroupSubMenuModelTest() = default;
@@ -162,7 +171,7 @@
   EXPECT_EQ(model_2->count(), 4);
 
   std::unique_ptr<TabMenuModelDelegate> delegate_1 =
-      std::make_unique<chrome::BrowserTabMenuModelDelegate>(new_browser);
+      CreateTabMenuModelDelegate(new_browser);
 
   // First tabs of each model consists of a tab group.
   model_1->AddToNewGroup({0});
@@ -233,7 +242,7 @@
   ASSERT_EQ(model_2->group_model()->ListTabGroups().size(), 0U);
 
   std::unique_ptr<TabMenuModelDelegate> delegate_1 =
-      std::make_unique<chrome::BrowserTabMenuModelDelegate>(new_browser);
+      CreateTabMenuModelDelegate(new_browser);
 
   ExistingTabGroupSubMenuModel menu_1(nullptr, delegate_1.get(), model_1, 1);
   ExistingTabGroupSubMenuModel menu_2(nullptr, delegate_1.get(), model_2, 0);
@@ -318,7 +327,7 @@
   EXPECT_EQ(model_2->count(), 5);
 
   std::unique_ptr<TabMenuModelDelegate> delegate_1 =
-      std::make_unique<chrome::BrowserTabMenuModelDelegate>(browser_2);
+      CreateTabMenuModelDelegate(browser_2);
   ExistingTabGroupSubMenuModel menu_1(nullptr, delegate_1.get(), model_2, 0);
 
   // Move the selected tabs from Window 2 to the group in Window 1.
diff --git a/chrome/browser/ui/tabs/existing_window_sub_menu_model_browsertest.cc b/chrome/browser/ui/tabs/existing_window_sub_menu_model_browsertest.cc
index cde81b2..c07397eb 100644
--- a/chrome/browser/ui/tabs/existing_window_sub_menu_model_browsertest.cc
+++ b/chrome/browser/ui/tabs/existing_window_sub_menu_model_browsertest.cc
@@ -18,6 +18,8 @@
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
+#include "chrome/browser/ui/tabs/tab_menu_model_delegate.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -26,8 +28,8 @@
 
 #if BUILDFLAG(IS_CHROMEOS)
 #include "ash/public/cpp/autotest_desks_api.h"
+#include "base/containers/span.h"
 #include "chrome/browser/ui/tabs/existing_window_sub_menu_model_chromeos.h"
-#include "chrome/browser/ui/tabs/tab_menu_model_delegate.h"
 #endif
 
 namespace {
@@ -181,7 +183,7 @@
 
   // Create menu from browser 1.
   auto menu1 = ExistingWindowSubMenuModel::Create(
-      nullptr, browser()->tab_menu_model_delegate(),
+      nullptr, browser()->GetFeatures().tab_menu_model_delegate(),
       browser()->tab_strip_model(), 0);
   ASSERT_EQ(5u, menu1->GetItemCount());
   CheckBrowserTitle(menu1->GetLabelAt(2), kLongTabTitleExample, 3);
@@ -190,7 +192,7 @@
 
   // Create menu from browser 2.
   auto menu2 = ExistingWindowSubMenuModel::Create(
-      nullptr, browser_2->tab_menu_model_delegate(),
+      nullptr, browser_2->GetFeatures().tab_menu_model_delegate(),
       browser_2->tab_strip_model(), 0);
   ASSERT_EQ(5u, menu2->GetItemCount());
   CheckBrowserTitle(menu2->GetLabelAt(2), kLongTabTitleExample, 3);
@@ -202,7 +204,7 @@
   BrowserList::SetLastActive(browser_2);
 
   auto menu3 = ExistingWindowSubMenuModel::Create(
-      nullptr, browser_3->tab_menu_model_delegate(),
+      nullptr, browser_3->GetFeatures().tab_menu_model_delegate(),
       browser_3->tab_strip_model(), 0);
   ASSERT_EQ(5u, menu3->GetItemCount());
   CheckBrowserTitle(menu3->GetLabelAt(2), kLongTabTitleExample, 1);
@@ -236,7 +238,7 @@
 
   // Test that a non-incognito browser only shows non-incognito windows.
   auto menu = ExistingWindowSubMenuModel::Create(
-      nullptr, browser()->tab_menu_model_delegate(),
+      nullptr, browser()->GetFeatures().tab_menu_model_delegate(),
       browser()->tab_strip_model(), 0);
   ASSERT_EQ(4u, menu->GetItemCount());
   ASSERT_EQ(kBrowser3ExpectedTitle, menu->GetLabelAt(2));
@@ -244,7 +246,7 @@
 
   // Test that a incognito browser only shows incognito windows.
   auto menu_incognito = ExistingWindowSubMenuModel::Create(
-      nullptr, incognito_browser_1->tab_menu_model_delegate(),
+      nullptr, incognito_browser_1->GetFeatures().tab_menu_model_delegate(),
       incognito_browser_1->tab_strip_model(), 0);
   ASSERT_EQ(3u, menu_incognito->GetItemCount());
   ASSERT_EQ(kIncognitoBrowser2ExpectedTitle, menu_incognito->GetLabelAt(2));
@@ -274,7 +276,7 @@
 
   // Test that popups do not show.
   auto menu = ExistingWindowSubMenuModel::Create(
-      nullptr, browser()->tab_menu_model_delegate(),
+      nullptr, browser()->GetFeatures().tab_menu_model_delegate(),
       browser()->tab_strip_model(), 0);
   ASSERT_EQ(4u, menu->GetItemCount());
   ASSERT_EQ(kBrowser3ExpectedTitle, menu->GetLabelAt(2));
@@ -331,19 +333,23 @@
   BrowserList::SetLastActive(browser_5);
   BrowserList::SetLastActive(browser_7);
 
-  const std::vector<Browser*> kExpectedMRUOrder{
+  const std::initializer_list<Browser* const> expected_mru_order{
       browser_7, browser_5, browser_4, browser_2, browser_3, browser_6};
-  const auto& mru_ordered_windows =
-      browser()->tab_menu_model_delegate()->GetOtherBrowserWindows(
-          /*is_app=*/false);
+  // `initializer_list` (instead of `array`) is necessary to construct a dynamic
+  // span which can be compared to `vector`.
+  const auto mru_ordered_windows = browser()
+                                       ->GetFeatures()
+                                       .tab_menu_model_delegate()
+                                       ->GetOtherBrowserWindows(
+                                           /*is_app=*/false);
   ASSERT_EQ(6u, mru_ordered_windows.size());
-  ASSERT_EQ(mru_ordered_windows, kExpectedMRUOrder);
+  ASSERT_EQ(mru_ordered_windows, base::span{expected_mru_order});
 
   // Create the menu from browser 1. The labels should be grouped by desk and
   // respect MRU order within each desk grouping. Also a label shouldn't be made
   // for the 5th desk since no browsers are in it.
   auto menu1 = ExistingWindowSubMenuModel::Create(
-      nullptr, browser()->tab_menu_model_delegate(),
+      nullptr, browser()->GetFeatures().tab_menu_model_delegate(),
       browser()->tab_strip_model(), 0);
   ASSERT_EQ(15u, menu1->GetItemCount());
   EXPECT_EQ(u"Desk 1 (Current)", menu1->GetLabelAt(2));
@@ -390,18 +396,22 @@
   BrowserList::SetLastActive(browser_2);
   BrowserList::SetLastActive(browser_4);
 
-  const std::vector<Browser*> kExpectedMRUOrder{browser_4, browser_2, browser_3,
-                                                browser_5};
-  const auto& mru_ordered_windows =
-      browser()->tab_menu_model_delegate()->GetOtherBrowserWindows(
-          /*is_app=*/false);
+  const std::initializer_list<Browser* const> expected_mru_order{
+      browser_4, browser_2, browser_3, browser_5};
+  // `initializer_list` (instead of `array`) is necessary to construct a dynamic
+  // span which can be compared to `vector`.
+  const auto mru_ordered_windows = browser()
+                                       ->GetFeatures()
+                                       .tab_menu_model_delegate()
+                                       ->GetOtherBrowserWindows(
+                                           /*is_app=*/false);
   ASSERT_EQ(4u, mru_ordered_windows.size());
-  ASSERT_EQ(mru_ordered_windows, kExpectedMRUOrder);
+  ASSERT_EQ(mru_ordered_windows, base::span{expected_mru_order});
 
   // Create the menu from browser 1 and ensure that the command indexes properly
   // map to their browser indices.
   auto menu1 = ExistingWindowSubMenuModel::Create(
-      nullptr, browser()->tab_menu_model_delegate(),
+      nullptr, browser()->GetFeatures().tab_menu_model_delegate(),
       browser()->tab_strip_model(), 0);
   const auto& command_id_to_target_index =
       static_cast<chromeos::ExistingWindowSubMenuModelChromeOS*>(menu1.get())
diff --git a/chrome/browser/ui/tabs/tab_menu_model_browsertest.cc b/chrome/browser/ui/tabs/tab_menu_model_browsertest.cc
index 9300d01..6d8f4a04 100644
--- a/chrome/browser/ui/tabs/tab_menu_model_browsertest.cc
+++ b/chrome/browser/ui/tabs/tab_menu_model_browsertest.cc
@@ -15,6 +15,7 @@
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tabs/existing_base_sub_menu_model.h"
 #include "chrome/browser/ui/tabs/organization/tab_organization_utils.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h"
@@ -60,7 +61,8 @@
 
 IN_PROC_BROWSER_TEST_F(TabMenuModelBrowserTest, Basics) {
   chrome::NewTab(browser());
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   // Verify it has items. The number varies by platform, so we don't check
@@ -76,7 +78,8 @@
 
 IN_PROC_BROWSER_TEST_F(TabMenuModelBrowserTest, OrganizeTabs) {
   chrome::NewTab(browser());
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   // Verify that CommandOrganizeTabs is in the menu.
@@ -86,7 +89,8 @@
 
 IN_PROC_BROWSER_TEST_F(TabMenuModelBrowserTest, MoveToNewWindow) {
   chrome::NewTab(browser());
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   // Verify that CommandMoveTabsToNewWindow is in the menu.
@@ -107,7 +111,8 @@
   tab_strip_model->AddToNewGroup({1});
   tab_strip_model->AddToNewGroup({2});
 
-  TabMenuModel menu(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel menu(&delegate_,
+                    browser()->GetFeatures().tab_menu_model_delegate(),
                     tab_strip_model, 3);
 
   size_t submenu_index =
@@ -141,7 +146,8 @@
   tab_strip_model->AddToNewGroup({1});
   tab_strip_model->AddToNewGroup({2});
 
-  TabMenuModel menu(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel menu(&delegate_,
+                    browser()->GetFeatures().tab_menu_model_delegate(),
                     tab_strip_model, 1);
 
   size_t submenu_index =
@@ -173,7 +179,8 @@
   TabStripModel* tab_strip_model = browser()->tab_strip_model();
   tab_strip_model->AddToNewGroup({0});
 
-  TabMenuModel menu(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel menu(&delegate_,
+                    browser()->GetFeatures().tab_menu_model_delegate(),
                     tab_strip_model, 1);
 
   size_t submenu_index =
@@ -261,7 +268,8 @@
              TabStripUserGestureDetails::GestureType::kOther));
   tab_strip->AddSelectionFromAnchorTo(1);
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
   EXPECT_TRUE(model
                   .GetIndexOfCommandId(
@@ -295,7 +303,8 @@
              TabStripUserGestureDetails::GestureType::kOther));
   tab_strip->AddSelectionFromAnchorTo(1);
 
-  TabMenuModel model(&delegate_, incognito_browser->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     incognito_browser->GetFeatures().tab_menu_model_delegate(),
                      incognito_browser->tab_strip_model(), 0);
   EXPECT_FALSE(model
                    .GetIndexOfCommandId(
@@ -329,7 +338,8 @@
       0, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
   tab_strip->AddSelectionFromAnchorTo(1);
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   EXPECT_FALSE(model
@@ -361,7 +371,8 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   tab_strip->AddSelectionFromAnchorTo(1);
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   EXPECT_TRUE(model
@@ -389,7 +400,8 @@
   chrome::NewTab(browser());
 
   tab_strip->AddSelectionFromAnchorTo(1);
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   EXPECT_FALSE(model
@@ -414,7 +426,8 @@
                                                    TabCloseTypes::CLOSE_NONE);
 
   tab_strip->AddSelectionFromAnchorTo(1);
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   EXPECT_FALSE(model
@@ -434,7 +447,8 @@
   browser()->tab_strip_model()->CloseWebContentsAt(0,
                                                    TabCloseTypes::CLOSE_NONE);
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      browser()->tab_strip_model(), 0);
 
   EXPECT_FALSE(model
@@ -513,7 +527,8 @@
                        MenuNotShownWhenFeatureDisabled) {
   AddAndSelectTab(browser(), GURL("https://example.com"));
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
   EXPECT_FALSE(
       model.GetIndexOfCommandId(TabStripModel::CommandAddToNewComparisonTable)
@@ -526,7 +541,8 @@
 
 IN_PROC_BROWSER_TEST_F(TabMenuModelComparisonTableTest,
                        MenuShownForNormalWindow) {
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
 
   // No existing tables, so only the option for adding to a new table should be
@@ -547,7 +563,8 @@
 
   AddAndSelectTab(incognito_browser, GURL("https://example.com"));
 
-  TabMenuModel model(&delegate_, incognito_browser->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     incognito_browser->GetFeatures().tab_menu_model_delegate(),
                      incognito_browser->tab_strip_model(), 0);
   EXPECT_FALSE(
       model.GetIndexOfCommandId(TabStripModel::CommandAddToNewComparisonTable)
@@ -572,7 +589,8 @@
 
   SelectAllTabs();
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
 
   EXPECT_FALSE(
@@ -606,7 +624,8 @@
   browser()->tab_strip_model()->CloseWebContentsAt(0,
                                                    TabCloseTypes::CLOSE_NONE);
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
 
   // There are existing tables, so the submenu for adding to an existing table
@@ -642,7 +661,8 @@
   browser()->tab_strip_model()->CloseWebContentsAt(0,
                                                    TabCloseTypes::CLOSE_NONE);
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
 
   // All existing tables contain the URL, so only the option for adding to a new
@@ -681,7 +701,8 @@
   browser()->tab_strip_model()->CloseWebContentsAt(0,
                                                    TabCloseTypes::CLOSE_NONE);
 
-  TabMenuModel model(&delegate_, browser()->tab_menu_model_delegate(),
+  TabMenuModel model(&delegate_,
+                     browser()->GetFeatures().tab_menu_model_delegate(),
                      tab_strip(), 0);
 
   // The existing tables do not contain the selected tab's URL, so the submenu
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index 9e1dd19..413dc32 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -61,6 +61,7 @@
 #include "chrome/browser/ui/tabs/organization/tab_organization_service.h"
 #include "chrome/browser/ui/tabs/organization/tab_organization_service_factory.h"
 #include "chrome/browser/ui/tabs/organization/tab_organization_session.h"
+#include "chrome/browser/ui/tabs/split_tab_util.h"
 #include "chrome/browser/ui/tabs/tab_change_type.h"
 #include "chrome/browser/ui/tabs/tab_enums.h"
 #include "chrome/browser/ui/tabs/tab_group_model.h"
@@ -1812,7 +1813,7 @@
 
 split_tabs::SplitTabId TabStripModel::AddToNewSplit(
     std::vector<int> indices,
-    split_tabs::SplitTabLayout tab_layout) {
+    split_tabs::SplitTabVisualData visual_data) {
   ReentrancyCheck reentrancy_check(&reentrancy_guard_);
 
   // Ensure that there is only one index. This will be split with the active
@@ -1824,8 +1825,7 @@
 
   split_tabs::SplitTabId split_id = split_tabs::SplitTabId::GenerateNew();
 
-  return AddToSplitImpl(split_id, indices,
-                        split_tabs::SplitTabVisualData(tab_layout, 0.5),
+  return AddToSplitImpl(split_id, indices, visual_data,
                         SplitTabChange::SplitTabAddReason::kNewSplitTabAdded);
 }
 
@@ -2356,10 +2356,20 @@
       for (int index : indices) {
         tabs.push_back(GetTabAtIndex(index));
       }
-      for (const tabs::TabInterface* const tab : tabs) {
-        const int index = GetIndexOfTab(tab);
-        if (index != -1 && delegate()->CanDuplicateContentsAt(index)) {
-          delegate()->DuplicateContentsAt(index);
+
+      for (size_t i = 0; i < tabs.size();) {
+        tabs::TabInterface* tab = tabs[i];
+        if (tab->IsSplit()) {
+          split_tabs::SplitTabId split_id = tab->GetSplit().value();
+          delegate()->DuplicateSplit(split_id);
+          i += contents_data_->GetSplitTabCollection(split_id)
+                   ->TabCountRecursive();
+        } else {
+          // Need to reacquire the index of the tab as that could have changed
+          // since we got the tab from the index due to a previous tab being
+          // duplicated.
+          delegate()->DuplicateContentsAt(GetIndexOfTab(tab));
+          i++;
         }
       }
       break;
diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h
index 1f1be058..9470168 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.h
+++ b/chrome/browser/ui/tabs/tab_strip_model.h
@@ -614,8 +614,9 @@
   // Create a new split view with the active tab and add the set of tabs pointed
   // to by |indices| to it. Reorders the tabs so they are contiguous. |indices|
   // must be sorted in ascending order.
-  split_tabs::SplitTabId AddToNewSplit(const std::vector<int> indices,
-                                       split_tabs::SplitTabLayout tab_layout);
+  split_tabs::SplitTabId AddToNewSplit(
+      const std::vector<int> indices,
+      split_tabs::SplitTabVisualData visual_data);
 
   // Create a new tab group and add the set of tabs pointed to be |indices| to
   // it. Pins all of the tabs if any of them were pinned, and reorders the tabs
@@ -815,6 +816,10 @@
   tabs::TabInterface* GetTabForWebContents(
       const content::WebContents* contents) const;
 
+  // Returns [start, end) where the leftmost tab in the split has index start
+  // and the rightmost tab in the split has index end - 1.
+  gfx::Range GetIndexRangeOfSplit(split_tabs::SplitTabId split_id) const;
+
  private:
   FRIEND_TEST_ALL_PREFIXES(TabStripModelTest, GetIndicesClosedByCommand);
 
@@ -1259,10 +1264,6 @@
   std::vector<std::pair<tabs::TabInterface*, int>> GetTabsAndIndicesInSplit(
       split_tabs::SplitTabId split_id);
 
-  // Returns [start, end) where the leftmost tab in the split has index start
-  // and the rightmost tab in the split has index end - 1.
-  gfx::Range GetIndexRangeOfSplit(split_tabs::SplitTabId split_id) const;
-
   // If inserting at `index` breaks a split, returns its id, otherwise nullopt.
   std::optional<split_tabs::SplitTabId> InsertionBreaksSplitContiguity(
       int index);
diff --git a/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc b/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
index e4469b8..b5c36ab 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model_browsertest.cc
@@ -20,6 +20,7 @@
 #include "chrome/browser/ui/tabs/organization/tab_organization_service_factory.h"
 #include "chrome/browser/ui/tabs/organization/tab_organization_session.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+#include "chrome/browser/ui/tabs/tab_strip_model_test_utils.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h"
 #include "chrome/browser/web_applications/test/os_integration_test_override_impl.h"
@@ -189,6 +190,26 @@
     }
   }
 
+  void PrepareTabs(int num_tabs) {
+    for (int i = 0; i < num_tabs; i++) {
+      if (!browser()->tab_strip_model()->ContainsIndex(i)) {
+        chrome::AddTabAt(browser(), GURL(url::kAboutBlankURL), i, false);
+      }
+      SetID(browser()->tab_strip_model()->GetWebContentsAt(i), i);
+    }
+    EXPECT_EQ(num_tabs, browser()->tab_strip_model()->count());
+  }
+
+  void PrepareTabstripForSelectionTest(TabStripModel* model,
+                                       int tab_count,
+                                       int pinned_count,
+                                       const std::vector<int> selected_tabs) {
+    ::PrepareTabstripForSelectionTest(
+        base::BindOnce(&TabStripModelBrowserTest::PrepareTabs,
+                       base::Unretained(this)),
+        model, tab_count, pinned_count, selected_tabs);
+  }
+
   base::test::ScopedFeatureList feature_list_;
   base::ScopedObservation<TabStripModel, TabStripModelBrowserTest> observer_{
       this};
@@ -347,7 +368,7 @@
   TabStripModel* const tab_strip_model = browser()->tab_strip_model();
   AddTabs(3);
   tab_strip_model->ActivateTabAt(0);
-  tab_strip_model->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  tab_strip_model->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   EXPECT_TRUE(tab_strip_model->IsContextMenuCommandEnabled(
       2, TabStripModel::CommandSwapWithActiveSplit));
@@ -361,3 +382,69 @@
   EXPECT_TRUE(tab_strip_model->GetTabAtIndex(1)->IsSplit());
   EXPECT_EQ(tab_outside_split, tab_strip_model->GetTabAtIndex(0));
 }
+
+// Calling duplicate on a tab that isn't selected doesn't affect selected tabs.
+IN_PROC_BROWSER_TEST_F(TabStripModelBrowserTest, CommandDuplicate) {
+  TabStripModel* const tab_strip_model = browser()->tab_strip_model();
+
+  ASSERT_NO_FATAL_FAILURE(
+      PrepareTabstripForSelectionTest(tab_strip_model, 3, 1, {0, 1}));
+  ASSERT_EQ("0p 1 2", GetTabStripStateString(tab_strip_model));
+
+  EXPECT_TRUE(tab_strip_model->IsContextMenuCommandEnabled(
+      2, TabStripModel::CommandDuplicate));
+  tab_strip_model->ExecuteContextMenuCommand(2,
+                                             TabStripModel::CommandDuplicate);
+  // Should have duplicated tab 2.
+  EXPECT_EQ("0p 1 2 -1", GetTabStripStateString(tab_strip_model));
+}
+
+// Calling duplicate on a split that isn't selected doesn't affect selected
+// tabs.
+IN_PROC_BROWSER_TEST_F(TabStripModelBrowserTest, CommandDuplicateSplit) {
+  TabStripModel* const tab_strip_model = browser()->tab_strip_model();
+
+  ASSERT_NO_FATAL_FAILURE(
+      PrepareTabstripForSelectionTest(tab_strip_model, 4, 1, {2}));
+  tab_strip_model->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
+  ASSERT_EQ("0p 1 2s 3s", GetTabStripStateString(tab_strip_model));
+  tab_strip_model->ActivateTabAt(1);
+
+  EXPECT_TRUE(tab_strip_model->IsContextMenuCommandEnabled(
+      2, TabStripModel::CommandDuplicate));
+  tab_strip_model->ExecuteContextMenuCommand(2,
+                                             TabStripModel::CommandDuplicate);
+  // Should have duplicated split with tabs 2 and 3.
+  EXPECT_EQ("0p 1 2s 3s -1s -1s", GetTabStripStateString(tab_strip_model));
+}
+
+// Calling duplicate on a tab that is selected affects all the selected tabs.
+IN_PROC_BROWSER_TEST_F(TabStripModelBrowserTest, CommandDuplicateSelected) {
+  TabStripModel* const tab_strip_model = browser()->tab_strip_model();
+
+  ASSERT_NO_FATAL_FAILURE(
+      PrepareTabstripForSelectionTest(tab_strip_model, 12, 6, {2}));
+  tab_strip_model->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
+  tab_strip_model->ActivateTabAt(4);
+  tab_strip_model->AddToNewSplit({5}, split_tabs::SplitTabVisualData());
+  tab_strip_model->ActivateTabAt(8);
+  tab_strip_model->AddToNewSplit({9}, split_tabs::SplitTabVisualData());
+  tab_strip_model->ActivateTabAt(10);
+  tab_strip_model->AddToNewSplit({11}, split_tabs::SplitTabVisualData());
+  ASSERT_EQ("0p 1p 2ps 3ps 4ps 5ps 6 7 8s 9s 10s 11s",
+            GetTabStripStateString(tab_strip_model));
+  tab_strip_model->ActivateTabAt(1);
+  tab_strip_model->SelectTabAt(4);
+  tab_strip_model->SelectTabAt(5);
+  tab_strip_model->SelectTabAt(7);
+  tab_strip_model->SelectTabAt(10);
+  tab_strip_model->SelectTabAt(11);
+
+  EXPECT_TRUE(tab_strip_model->IsContextMenuCommandEnabled(
+      1, TabStripModel::CommandDuplicate));
+  tab_strip_model->ExecuteContextMenuCommand(1,
+                                             TabStripModel::CommandDuplicate);
+  // Should have duplicated tabs 1, 4, 5, 7, 10, and 11.
+  EXPECT_EQ("0p 1p -1p 2ps 3ps 4ps 5ps -1ps -1ps 6 7 -1 8s 9s 10s 11s -1s -1s",
+            GetTabStripStateString(tab_strip_model));
+}
diff --git a/chrome/browser/ui/tabs/tab_strip_model_delegate.h b/chrome/browser/ui/tabs/tab_strip_model_delegate.h
index ae5e599..4fdbc51 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_delegate.h
+++ b/chrome/browser/ui/tabs/tab_strip_model_delegate.h
@@ -12,6 +12,7 @@
 #include "base/functional/callback_forward.h"
 #include "components/sessions/core/session_id.h"
 #include "components/tab_groups/tab_group_id.h"
+#include "components/tabs/public/split_tab_id.h"
 
 class Browser;
 class BrowserWindowInterface;
@@ -101,6 +102,9 @@
   // Duplicates the contents at the provided index and places it into a new tab.
   virtual void DuplicateContentsAt(int index) = 0;
 
+  // Duplicates a split tab.
+  virtual void DuplicateSplit(split_tabs::SplitTabId split) = 0;
+
   // Move the contents at the provided indices into the specified window.
   virtual void MoveToExistingWindow(const std::vector<int>& indices,
                                     int browser_index) = 0;
diff --git a/chrome/browser/ui/tabs/tab_strip_model_test_utils.cc b/chrome/browser/ui/tabs/tab_strip_model_test_utils.cc
new file mode 100644
index 0000000..559f717
--- /dev/null
+++ b/chrome/browser/ui/tabs/tab_strip_model_test_utils.cc
@@ -0,0 +1,60 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/tabs/tab_strip_model_test_utils.h"
+
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "content/public/browser/web_contents.h"
+
+void SetID(WebContents* contents, int id) {
+  contents->SetUserData(&kTabStripModelTestIDUserDataKey,
+                        std::make_unique<TabStripModelTestIDUserData>(id));
+}
+
+int GetID(WebContents* contents) {
+  TabStripModelTestIDUserData* user_data =
+      static_cast<TabStripModelTestIDUserData*>(
+          contents->GetUserData(&kTabStripModelTestIDUserDataKey));
+
+  return user_data ? user_data->id() : -1;
+}
+
+void PrepareTabstripForSelectionTest(
+    base::OnceCallback<void(int)> add_tabs_callback,
+    TabStripModel* model,
+    int tab_count,
+    int pinned_count,
+    const std::vector<int> selected_tabs) {
+  std::move(add_tabs_callback).Run(tab_count);
+  for (int i = 0; i < pinned_count; ++i) {
+    model->SetTabPinned(i, true);
+  }
+
+  ui::ListSelectionModel selection_model;
+  for (const int selected_tab : selected_tabs) {
+    selection_model.AddIndexToSelection(selected_tab);
+  }
+  selection_model.set_active(*selection_model.selected_indices().begin());
+  model->SetSelectionFromModel(selection_model);
+}
+
+std::string GetTabStripStateString(const TabStripModel* model) {
+  std::string actual;
+  for (int i = 0; i < model->count(); ++i) {
+    if (i > 0) {
+      actual += " ";
+    }
+
+    actual += base::NumberToString(GetID(model->GetWebContentsAt(i)));
+
+    if (model->IsTabPinned(i)) {
+      actual += "p";
+    }
+
+    if (model->GetSplitForTab(i).has_value()) {
+      actual += "s";
+    }
+  }
+  return actual;
+}
diff --git a/chrome/browser/ui/tabs/tab_strip_model_test_utils.h b/chrome/browser/ui/tabs/tab_strip_model_test_utils.h
new file mode 100644
index 0000000..113b8a0
--- /dev/null
+++ b/chrome/browser/ui/tabs/tab_strip_model_test_utils.h
@@ -0,0 +1,45 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_TEST_UTILS_H_
+#define CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_TEST_UTILS_H_
+
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "content/public/browser/web_contents.h"
+
+using content::WebContents;
+
+const char kTabStripModelTestIDUserDataKey[] = "TabStripModelTestIDUserData";
+
+class TabStripModelTestIDUserData : public base::SupportsUserData::Data {
+ public:
+  explicit TabStripModelTestIDUserData(int id) : id_(id) {}
+  ~TabStripModelTestIDUserData() override = default;
+  int id() { return id_; }
+
+ private:
+  int id_;
+};
+
+// Sets the id of the specified contents.
+void SetID(WebContents* contents, int id);
+
+// Returns the id of the specified contents.
+int GetID(WebContents* contents);
+
+void PrepareTabstripForSelectionTest(
+    base::OnceCallback<void(int)> add_tabs_callback,
+    TabStripModel* model,
+    int tab_count,
+    int pinned_count,
+    const std::vector<int> selected_tabs);
+
+// Returns the state of the given tab strip as a string. The state consists
+// of the ID of each web contents followed by a 'p' if pinned, or an 's' if
+// split. For example, if the model consists of four tabs with ids 0, 1, 2,
+// and 3, with the first tab pinned and the last two split, this returns
+// "0p 1 2s 3s".
+std::string GetTabStripStateString(const TabStripModel* model);
+
+#endif  // CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_TEST_UTILS_H_
diff --git a/chrome/browser/ui/tabs/tab_strip_model_unittest.cc b/chrome/browser/ui/tabs/tab_strip_model_unittest.cc
index 9f8c03d..035ad41 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_unittest.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model_unittest.cc
@@ -36,6 +36,7 @@
 #include "chrome/browser/ui/tabs/tab_group_model.h"
 #include "chrome/browser/ui/tabs/tab_model.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+#include "chrome/browser/ui/tabs/tab_strip_model_test_utils.h"
 #include "chrome/browser/ui/tabs/tab_strip_user_gesture_details.h"
 #include "chrome/browser/ui/tabs/tab_utils.h"
 #include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h"
@@ -69,18 +70,6 @@
 
 namespace {
 
-const char kTabStripModelTestIDUserDataKey[] = "TabStripModelTestIDUserData";
-
-class TabStripModelTestIDUserData : public base::SupportsUserData::Data {
- public:
-  explicit TabStripModelTestIDUserData(int id) : id_(id) {}
-  ~TabStripModelTestIDUserData() override = default;
-  int id() { return id_; }
-
- private:
-  int id_;
-};
-
 struct ObservedSelectionChange {
   ObservedSelectionChange() = default;
   ObservedSelectionChange(const ObservedSelectionChange& other) = default;
@@ -492,46 +481,6 @@
     return contents;
   }
 
-  // Sets the id of the specified contents.
-  void SetID(WebContents* contents, int id) {
-    contents->SetUserData(&kTabStripModelTestIDUserDataKey,
-                          std::make_unique<TabStripModelTestIDUserData>(id));
-  }
-
-  // Returns the id of the specified contents.
-  int GetID(WebContents* contents) {
-    TabStripModelTestIDUserData* user_data =
-        static_cast<TabStripModelTestIDUserData*>(
-            contents->GetUserData(&kTabStripModelTestIDUserDataKey));
-
-    return user_data ? user_data->id() : -1;
-  }
-
-  // Returns the state of the given tab strip as a string. The state consists
-  // of the ID of each web contents followed by a 'p' if pinned, or an 's' if
-  // split. For example, if the model consists of four tabs with ids 0, 1, 2,
-  // and 3, with the first tab pinned and the last two split, this returns
-  // "0p 1 2s 3s".
-  std::string GetTabStripStateString(const TabStripModel* model) {
-    std::string actual;
-    for (int i = 0; i < model->count(); ++i) {
-      if (i > 0) {
-        actual += " ";
-      }
-
-      actual += base::NumberToString(GetID(model->GetWebContentsAt(i)));
-
-      if (model->IsTabPinned(i)) {
-        actual += "p";
-      }
-
-      if (model->GetSplitForTab(i).has_value()) {
-        actual += "s";
-      }
-    }
-    return actual;
-  }
-
   void PrepareTabs(TabStripModel* model, int tab_count) {
     for (int i = 0; i < tab_count; ++i) {
       model->AppendWebContents(CreateWebContentsWithID(i), true);
@@ -542,17 +491,10 @@
                                        int tab_count,
                                        int pinned_count,
                                        const std::vector<int> selected_tabs) {
-    PrepareTabs(model, tab_count);
-    for (int i = 0; i < pinned_count; ++i) {
-      model->SetTabPinned(i, true);
-    }
-
-    ui::ListSelectionModel selection_model;
-    for (const int selected_tab : selected_tabs) {
-      selection_model.AddIndexToSelection(selected_tab);
-    }
-    selection_model.set_active(*selection_model.selected_indices().begin());
-    model->SetSelectionFromModel(selection_model);
+    ::PrepareTabstripForSelectionTest(
+        base::BindOnce(&TabStripModelTest::PrepareTabs, base::Unretained(this),
+                       model),
+        model, tab_count, pinned_count, selected_tabs);
   }
 
   void ExpectSelectionIsExactly(TabStripModel* tabstrip,
@@ -908,7 +850,7 @@
       2, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
   split_tabs::SplitTabId split_id = tabstrip()->AddToNewSplit(
-      std::vector<int>{3}, split_tabs::SplitTabLayout::kHorizontal);
+      std::vector<int>{3}, split_tabs::SplitTabVisualData());
   tabstrip()->ForgetAllOpeners();
 
   tabstrip()->DetachSplitTabForInsertion(split_id);
@@ -944,7 +886,7 @@
       1, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
 
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
   tabstrip()->ForgetAllOpeners();
 
   tabstrip()->DetachTabAtForInsertion(1);
@@ -964,7 +906,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   tabstrip()->ForgetAllOpeners();
 
@@ -1100,7 +1042,7 @@
       2, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
   split_tabs::SplitTabId split_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   std::unique_ptr<DetachedTabCollection> detached_group =
       tabstrip()->DetachTabGroupForInsertion(group_id);
@@ -1890,7 +1832,7 @@
     for (bool use_left_tab : {true, false}) {
       ASSERT_NO_FATAL_FAILURE(
           PrepareTabstripForSelectionTest(tabstrip(), 5, 1, {2}));
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kHorizontal);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
       ASSERT_EQ("0p 1 2s 3s 4", GetTabStripStateString(tabstrip()));
       if (!split_is_selected) {
         tabstrip()->ActivateTabAt(1);
@@ -1913,11 +1855,11 @@
 TEST_F(TabStripModelTest, SplitTabPinningBulk) {
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 12, 2, {4}));
-  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabVisualData());
   ASSERT_EQ("0p 1p 2 3 4s 5s 6 7 8 9 10 11",
             GetTabStripStateString(tabstrip()));
   tabstrip()->ActivateTabAt(8);
-  tabstrip()->AddToNewSplit({9}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({9}, split_tabs::SplitTabVisualData());
   ASSERT_EQ("0p 1p 2 3 4s 5s 6 7 8s 9s 10 11",
             GetTabStripStateString(tabstrip()));
   tabstrip()->SelectTabAt(0);
@@ -1962,7 +1904,7 @@
       4, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
 
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0p 1p 3 2s 4s", GetTabStripStateString(tabstrip()));
   EXPECT_EQ(
@@ -1984,7 +1926,7 @@
       0, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
 
-  tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
 
@@ -1998,7 +1940,7 @@
       PrepareTabstripForSelectionTest(tabstrip(), 5, 0, {2}));
 
   tabstrip()->ActivateTabAt(0);
-  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0s 1s 2 3 4", GetTabStripStateString(tabstrip()));
   EXPECT_EQ(tabstrip()->active_index(), 0);
@@ -2021,7 +1963,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
 
@@ -2041,7 +1983,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ(tabstrip()->GetSplitData(split_tab_id)->ListTabs().size(), 2u);
   tabstrip()->MoveWebContentsAt(3, 1, false);
@@ -2060,7 +2002,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ(tabstrip()->GetSplitData(split_tab_id)->ListTabs().size(), 2u);
   tabstrip()->MoveWebContentsAt(1, 3, false);
@@ -2079,7 +2021,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ(tabstrip()->GetSplitData(split_tab_id)->ListTabs().size(), 2u);
 
@@ -2101,7 +2043,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ(tabstrip()->GetSplitData(split_tab_id)->ListTabs().size(), 2u);
 
@@ -2121,7 +2063,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({4}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({4}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ(tabstrip()->GetSplitData(split_tab_id)->ListTabs().size(), 2u);
   tab_groups::TabGroupId group_id = tabstrip()->AddToNewGroup({0, 1});
@@ -2144,7 +2086,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
   EXPECT_EQ(
@@ -2173,7 +2115,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
   EXPECT_EQ(
@@ -2201,7 +2143,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
 
@@ -2223,7 +2165,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
 
@@ -2247,7 +2189,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({3}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0ps 3ps 1p 2 4", GetTabStripStateString(tabstrip()));
   std::vector<tabs::TabInterface*> old_tabs =
@@ -2276,7 +2218,7 @@
              TabStripUserGestureDetails::GestureType::kOther));
 
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
   EXPECT_EQ("0 1s 2s", GetTabStripStateString(tabstrip()));
 
   tabstrip()->ReverseTabsInSplit(split_tab_id);
@@ -3670,7 +3612,7 @@
       6, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
 
-  tabstrip()->AddToNewSplit({7}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({7}, split_tabs::SplitTabVisualData());
 
   PrepareTabstripForSelectionTest(tabstrip(), 0, 0, {6, 7});
 
@@ -3689,17 +3631,17 @@
   tabstrip()->ActivateTabAt(
       1, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
-  tabstrip()->AddToNewSplit({0}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({0}, split_tabs::SplitTabVisualData());
 
   tabstrip()->ActivateTabAt(
       6, TabStripUserGestureDetails(
              TabStripUserGestureDetails::GestureType::kOther));
-  tabstrip()->AddToNewSplit({7}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({7}, split_tabs::SplitTabVisualData());
 
   tabstrip()->ActivateTabAt(
       11, TabStripUserGestureDetails(
               TabStripUserGestureDetails::GestureType::kOther));
-  tabstrip()->AddToNewSplit({12}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({12}, split_tabs::SplitTabVisualData());
 
   // Move all the split tabs along with some other tabs.
   PrepareTabstripForSelectionTest(tabstrip(), 0, 0,
@@ -5568,9 +5510,9 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 6, 0, {0}));
   tabstrip()->ActivateTabAt(0);
-  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
   tabstrip()->ActivateTabAt(4);
-  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0s 1s 2 3 4s 5s", GetTabStripStateString(tabstrip()));
 
@@ -5627,9 +5569,9 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 6, 0, {0}));
   tabstrip()->ActivateTabAt(0);
-  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
   tabstrip()->ActivateTabAt(4);
-  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({5}, split_tabs::SplitTabVisualData());
 
   tabstrip()->ActivateTabAt(3);
   tabstrip()->AddSelectionFromAnchorTo(4);
@@ -5663,7 +5605,7 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 6, 0, {0}));
   tabstrip()->ActivateTabAt(0);
-  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   ui::ListSelectionModel selection_model;
   selection_model.AddIndexToSelection(3);
@@ -5681,7 +5623,7 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 4, 0, {0}));
   tabstrip()->ActivateTabAt(3);
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0 1 2s 3s", GetTabStripStateString(tabstrip()));
 
@@ -5697,7 +5639,7 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 4, 0, {0}));
   tabstrip()->ActivateTabAt(3);
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0 1 2s 3s", GetTabStripStateString(tabstrip()));
 
@@ -5715,7 +5657,7 @@
   ASSERT_NO_FATAL_FAILURE(
       PrepareTabstripForSelectionTest(tabstrip(), 4, 0, {0}));
   tabstrip()->ActivateTabAt(3);
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
 
   EXPECT_EQ("0 1 2s 3s", GetTabStripStateString(tabstrip()));
 
@@ -5732,7 +5674,7 @@
   PrepareTabs(tabstrip(), 6);
   ASSERT_EQ(6, tabstrip()->count());
   tabstrip()->ActivateTabAt(1);
-  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
   tabstrip()->ActivateTabAt(3);
   tabstrip()->SelectTabAt(0);
   tabstrip()->SelectTabAt(2);
@@ -5757,7 +5699,7 @@
   ASSERT_EQ(4, tabstrip()->count());
   tabstrip()->ActivateTabAt(1);
   split_tabs::SplitTabId split_tab_id =
-      tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabLayout::kVertical);
+      tabstrip()->AddToNewSplit({2}, split_tabs::SplitTabVisualData());
 
   // Verify the selection model before closing the tab.
   EXPECT_EQ(tabstrip()->active_index(), 1);
@@ -5783,12 +5725,12 @@
                          TabStripUserGestureDetails(
                              TabStripUserGestureDetails::GestureType::kOther));
 
-  tabstrip.AddToNewSplit({7}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip.AddToNewSplit({7}, split_tabs::SplitTabVisualData());
 
   tabstrip.ActivateTabAt(2,
                          TabStripUserGestureDetails(
                              TabStripUserGestureDetails::GestureType::kOther));
-  tabstrip.AddToNewSplit({1}, split_tabs::SplitTabLayout::kHorizontal);
+  tabstrip.AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   // Pass in only one of the selected tabs in the splits.
   PrepareTabstripForSelectionTest(&tabstrip, 0, 0, {6, 2});
@@ -5807,7 +5749,7 @@
   PrepareTabs(tabstrip(), 4);
   ASSERT_EQ(4, tabstrip()->count());
   tabstrip()->ActivateTabAt(0);
-  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabLayout::kVertical);
+  tabstrip()->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   // Verify the selection model before closing the tab.
   EXPECT_EQ("0s 1s 2 3", GetTabStripStateString(tabstrip()));
diff --git a/chrome/browser/ui/tabs/test/split_tabs_interactive_test_mixin.h b/chrome/browser/ui/tabs/test/split_tabs_interactive_test_mixin.h
index 9bcec0e..77b61da4 100644
--- a/chrome/browser/ui/tabs/test/split_tabs_interactive_test_mixin.h
+++ b/chrome/browser/ui/tabs/test/split_tabs_interactive_test_mixin.h
@@ -58,7 +58,7 @@
     auto result = T::Steps(
         T::SelectTab(kTabStripElementId, active_tab), T::Do([&, other_tab]() {
           T::browser()->tab_strip_model()->AddToNewSplit(
-              {other_tab}, split_tabs::SplitTabLayout::kVertical);
+              {other_tab}, split_tabs::SplitTabVisualData());
         }),
         T::PollView(kResizeLoadObserver,
                     MultiContentsResizeArea::kMultiContentsResizeAreaElementId,
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
index 1a883181..3410920 100644
--- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
+++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
@@ -49,6 +49,8 @@
 
 void TestTabStripModelDelegate::DuplicateContentsAt(int index) {}
 
+void TestTabStripModelDelegate::DuplicateSplit(split_tabs::SplitTabId split) {}
+
 void TestTabStripModelDelegate::MoveToExistingWindow(
     const std::vector<int>& indices,
     int browser_index) {}
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
index 854401b..339f434e 100644
--- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
+++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
@@ -45,6 +45,7 @@
   bool CanDuplicateContentsAt(int index) override;
   bool IsTabStripEditable() override;
   void DuplicateContentsAt(int index) override;
+  void DuplicateSplit(split_tabs::SplitTabId split) override;
   void MoveToExistingWindow(const std::vector<int>& indices,
                             int browser_index) override;
   bool CanMoveTabsToWindow(const std::vector<int>& indices) override;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc
index dd88f20..50182f8 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc
@@ -217,7 +217,7 @@
   EXPECT_TRUE(
       controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW));
   EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO));
-  EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_SPLIT_VIEW));
+  EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_SPLIT_VIEW));
   EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE));
   EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK));
   EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER));
diff --git a/chrome/browser/ui/views/controls/hover_button.cc b/chrome/browser/ui/views/controls/hover_button.cc
index 67495c6..4cfc507 100644
--- a/chrome/browser/ui/views/controls/hover_button.cc
+++ b/chrome/browser/ui/views/controls/hover_button.cc
@@ -316,6 +316,10 @@
   PreferredSizeChanged();
 }
 
+void HoverButton::AddExtraAccessibleText(const std::u16string& text) {
+  additional_accessible_text_ = text;
+}
+
 void HoverButton::SetIconHorizontalMargins(int left, int right) {
   int vertical_spacing = GetVerticalSpacing();
   icon_wrapper_->SetProperty(
@@ -331,6 +335,9 @@
   if (footer_) {
     texts.push_back(footer_->GetText());
   }
+  if (!additional_accessible_text_.empty()) {
+    texts.push_back(additional_accessible_text_);
+  }
   const std::u16string accessible_name = base::JoinString(texts, u"\n");
 
   // Only use a tooltip if the available space is smaller than its preferred
diff --git a/chrome/browser/ui/views/controls/hover_button.h b/chrome/browser/ui/views/controls/hover_button.h
index 58fcf7a..feb0cad06 100644
--- a/chrome/browser/ui/views/controls/hover_button.h
+++ b/chrome/browser/ui/views/controls/hover_button.h
@@ -107,6 +107,10 @@
   // Set the text context and style of the footer.
   void SetFooterTextStyle(int text_context, views::style::TextStyle text_style);
 
+  // Adds a11y text to the button, which will be read out when the button is
+  // focused.
+  void AddExtraAccessibleText(const std::u16string& text);
+
   void SetIconHorizontalMargins(int left, int right);
 
   PressedCallback& callback(base::PassKey<HoverButtonController>) {
@@ -156,6 +160,8 @@
   raw_ptr<views::View> icon_view_ = nullptr;
   raw_ptr<views::View> secondary_view_ = nullptr;
 
+  std::u16string additional_accessible_text_;
+
   std::vector<base::CallbackListSubscription> text_changed_subscriptions_;
 
   base::ScopedObservation<views::View, views::ViewObserver> label_observation_{
diff --git a/chrome/browser/ui/views/frame/browser_view_browsertest.cc b/chrome/browser/ui/views/frame/browser_view_browsertest.cc
index b2d0d089..3c0677b 100644
--- a/chrome/browser/ui/views/frame/browser_view_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_view_browsertest.cc
@@ -519,12 +519,12 @@
   chrome::AddTabAt(browser(), GURL(), -1, true);
   // Add tabs to splits.
   browser()->tab_strip_model()->ActivateTabAt(0);
-  browser()->tab_strip_model()->AddToNewSplit(
-      {1}, split_tabs::SplitTabLayout::kVertical);
+  browser()->tab_strip_model()->AddToNewSplit({1},
+                                              split_tabs::SplitTabVisualData());
 
   browser()->tab_strip_model()->ActivateTabAt(2);
-  browser()->tab_strip_model()->AddToNewSplit(
-      {3}, split_tabs::SplitTabLayout::kVertical);
+  browser()->tab_strip_model()->AddToNewSplit({3},
+                                              split_tabs::SplitTabVisualData());
 
   browser()->tab_strip_model()->ActivateTabAt(0);
   EXPECT_TRUE(browser_view()->multi_contents_view_for_testing());
diff --git a/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc b/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc
index ccebbd8..6bf76e0 100644
--- a/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc
@@ -21,6 +21,7 @@
 #include "chrome/test/base/interactive_test_utils.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/input/native_web_keyboard_event.h"
+#include "components/tabs/public/split_tab_visual_data.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_navigation_observer.h"
@@ -232,8 +233,8 @@
   // Add a second tab and create a split
   chrome::AddTabAt(browser(), GURL(), -1, true);
   browser()->tab_strip_model()->ActivateTabAt(0);
-  browser()->tab_strip_model()->AddToNewSplit(
-      {1}, split_tabs::SplitTabLayout::kVertical);
+  browser()->tab_strip_model()->AddToNewSplit({1},
+                                              split_tabs::SplitTabVisualData());
 
   BrowserView* browser_view = static_cast<BrowserView*>(browser()->window());
 
diff --git a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view_ash.cc b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view_ash.cc
index 17d94c82..5857476b2 100644
--- a/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view_ash.cc
+++ b/chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view_ash.cc
@@ -31,7 +31,7 @@
 
 void PictureInPictureBrowserFrameViewAsh::UpdateWindowRoundedCorners() {
   aura::Window* window = GetWidget()->GetNativeWindow();
-  const gfx::RoundedCornersF window_radii = chromeos::GetWindowRadii(window);
+  const gfx::RoundedCornersF window_radii{chromeos::kPipRoundedCornerRadius};
 
   window->SetProperty(aura::client::kWindowCornerRadiusKey,
                       window_radii.upper_left());
diff --git a/chrome/browser/ui/views/hover_button_unittest.cc b/chrome/browser/ui/views/hover_button_unittest.cc
index a2df1df..11dc568c 100644
--- a/chrome/browser/ui/views/hover_button_unittest.cc
+++ b/chrome/browser/ui/views/hover_button_unittest.cc
@@ -295,4 +295,17 @@
   EXPECT_EQ(margins->right(), 4);
 }
 
+TEST_F(HoverButtonTest, AddExtraAccessibleText) {
+  std::unique_ptr<views::View> primary_icon = CreateIcon();
+  auto button = std::make_unique<HoverButton>(
+      views::Button::PressedCallback(), std::move(primary_icon), u"Title");
+  button->AddExtraAccessibleText(u"A11y text");
+
+  views::IgnoreMissingWidgetForTestingScopedSetter ignore_missing_widget(
+      button->GetViewAccessibility());
+  button->SetSize(gfx::Size(kButtonWidth, 40));
+
+  EXPECT_EQ(GetAccessibleName(*button), u"Title\nA11y text");
+}
+
 #endif  // !BUILDFLAG(IS_MAC) || defined(USE_AURA)
diff --git a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc
index ef6ddfed..05ddeefc 100644
--- a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc
@@ -176,7 +176,7 @@
 class PrivacySandboxPSNoticeDialogViewBrowserTest : public DialogBrowserTest {
  public:
   PrivacySandboxPSNoticeDialogViewBrowserTest() {
-    set_baseline("crrev.com/c/6546899");
+    set_baseline("crrev.com/c/6575203");
     scoped_feature_list_.InitWithFeatures(
         // Enabled Features
         {privacy_sandbox::kPrivacySandboxNoticeFramework},
diff --git a/chrome/browser/ui/views/tabs/alert_indicator_button.cc b/chrome/browser/ui/views/tabs/alert_indicator_button.cc
index 85672a1..3854d3b 100644
--- a/chrome/browser/ui/views/tabs/alert_indicator_button.cc
+++ b/chrome/browser/ui/views/tabs/alert_indicator_button.cc
@@ -14,6 +14,7 @@
 #include "chrome/browser/ui/browser_element_identifiers.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/tabs/alert/tab_alert.h"
+#include "chrome/browser/ui/tabs/alert/tab_alert_icon.h"
 #include "chrome/browser/ui/views/tabs/tab.h"
 #include "chrome/browser/ui/views/tabs/tab_slot_controller.h"
 #include "chrome/common/chrome_features.h"
@@ -93,30 +94,14 @@
 ui::ImageModel GetTabAlertIndicatorImageForPressedState(
     tabs::TabAlert alert_state,
     ui::ColorId button_color) {
-  switch (alert_state) {
-    case tabs::TabAlert::AUDIO_PLAYING:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(
-          tabs::TabAlert::AUDIO_MUTING, button_color);
-    case tabs::TabAlert::AUDIO_MUTING:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(
-          tabs::TabAlert::AUDIO_PLAYING, button_color);
-    case tabs::TabAlert::MEDIA_RECORDING:
-    case tabs::TabAlert::AUDIO_RECORDING:
-    case tabs::TabAlert::VIDEO_RECORDING:
-    case tabs::TabAlert::TAB_CAPTURING:
-    case tabs::TabAlert::BLUETOOTH_CONNECTED:
-    case tabs::TabAlert::USB_CONNECTED:
-    case tabs::TabAlert::PIP_PLAYING:
-    case tabs::TabAlert::DESKTOP_CAPTURING:
-    case tabs::TabAlert::BLUETOOTH_SCAN_ACTIVE:
-    case tabs::TabAlert::HID_CONNECTED:
-    case tabs::TabAlert::SERIAL_CONNECTED:
-    case tabs::TabAlert::VR_PRESENTING_IN_HEADSET:
-    case tabs::TabAlert::GLIC_ACCESSING:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(alert_state,
-                                                             button_color);
+  tabs::TabAlert pressed_alert_state = alert_state;
+  if (alert_state == tabs::TabAlert::AUDIO_PLAYING) {
+    alert_state = tabs::TabAlert::AUDIO_MUTING;
+  } else if (alert_state == tabs::TabAlert::AUDIO_MUTING) {
+    alert_state = tabs::TabAlert::AUDIO_PLAYING;
   }
-  NOTREACHED();
+
+  return tabs::GetAlertImageModel(pressed_alert_state, button_color);
 }
 
 }  // namespace
@@ -378,100 +363,9 @@
   return parent_tab_;
 }
 
-// Returns a cached image, to be shown by the alert indicator for the given
-// `alert_state`.  Uses the global ui::ResourceBundle shared instance.
-ui::ImageModel AlertIndicatorButton::GetTabAlertIndicatorImage(
-    tabs::TabAlert alert_state,
-    ui::ColorId button_color) {
-  const gfx::VectorIcon* icon = nullptr;
-  int image_width = GetLayoutConstant(TAB_ALERT_INDICATOR_ICON_WIDTH);
-  switch (alert_state) {
-    case tabs::TabAlert::AUDIO_PLAYING:
-      icon = &vector_icons::kVolumeUpChromeRefreshIcon;
-      break;
-    case tabs::TabAlert::AUDIO_MUTING:
-      icon = &vector_icons::kVolumeOffChromeRefreshIcon;
-      break;
-    case tabs::TabAlert::MEDIA_RECORDING:
-    case tabs::TabAlert::AUDIO_RECORDING:
-    case tabs::TabAlert::VIDEO_RECORDING:
-    case tabs::TabAlert::DESKTOP_CAPTURING:
-      icon = &vector_icons::kRadioButtonCheckedIcon;
-      break;
-    case tabs::TabAlert::TAB_CAPTURING:
-      icon = &vector_icons::kCaptureIcon;
-
-      // Tab capturing and presenting icon uses a different width compared to
-      // the other tab alert indicator icons.
-      image_width = GetLayoutConstant(TAB_ALERT_INDICATOR_CAPTURE_ICON_WIDTH);
-      break;
-    case tabs::TabAlert::BLUETOOTH_CONNECTED:
-      icon = &vector_icons::kBluetoothConnectedIcon;
-      break;
-    case tabs::TabAlert::BLUETOOTH_SCAN_ACTIVE:
-      icon = &vector_icons::kBluetoothScanningChromeRefreshIcon;
-      break;
-    case tabs::TabAlert::USB_CONNECTED:
-      icon = &vector_icons::kUsbChromeRefreshIcon;
-      icon = &kTabUsbConnectedIcon;
-      break;
-    case tabs::TabAlert::HID_CONNECTED:
-      icon = &vector_icons::kVideogameAssetChromeRefreshIcon;
-      break;
-    case tabs::TabAlert::SERIAL_CONNECTED:
-      icon = &vector_icons::kSerialPortChromeRefreshIcon;
-      break;
-    case tabs::TabAlert::PIP_PLAYING:
-      icon = &vector_icons::kPictureInPictureAltIcon;
-      break;
-    case tabs::TabAlert::VR_PRESENTING_IN_HEADSET:
-      icon = &vector_icons::kCardboardIcon;
-      break;
-    case tabs::TabAlert::GLIC_ACCESSING:
-#if BUILDFLAG(ENABLE_GLIC)
-      icon =
-          &glic::GlicVectorIconManager::GetVectorIcon(IDR_GLIC_ACCESSING_ICON);
-#else
-      icon = &kTvIcon;
-#endif
-      break;
-  }
-  DCHECK(icon);
-  return ui::ImageModel::FromVectorIcon(*icon, button_color, image_width);
-}
-
-ui::ImageModel AlertIndicatorButton::GetTabAlertIndicatorImageForHoverCard(
-    tabs::TabAlert alert_state) {
-  switch (alert_state) {
-    case tabs::TabAlert::MEDIA_RECORDING:
-    case tabs::TabAlert::AUDIO_RECORDING:
-    case tabs::TabAlert::VIDEO_RECORDING:
-    case tabs::TabAlert::DESKTOP_CAPTURING:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(
-          alert_state, kColorHoverCardTabAlertMediaRecordingIcon);
-    case tabs::TabAlert::TAB_CAPTURING:
-    case tabs::TabAlert::PIP_PLAYING:
-    case tabs::TabAlert::GLIC_ACCESSING:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(
-          alert_state, kColorHoverCardTabAlertPipPlayingIcon);
-    case tabs::TabAlert::AUDIO_PLAYING:
-    case tabs::TabAlert::AUDIO_MUTING:
-    case tabs::TabAlert::BLUETOOTH_CONNECTED:
-    case tabs::TabAlert::BLUETOOTH_SCAN_ACTIVE:
-    case tabs::TabAlert::USB_CONNECTED:
-    case tabs::TabAlert::HID_CONNECTED:
-    case tabs::TabAlert::SERIAL_CONNECTED:
-    case tabs::TabAlert::VR_PRESENTING_IN_HEADSET:
-      return AlertIndicatorButton::GetTabAlertIndicatorImage(
-          alert_state, kColorHoverCardTabAlertAudioPlayingIcon);
-  }
-  NOTREACHED();
-}
-
 void AlertIndicatorButton::UpdateIconForAlertState(tabs::TabAlert state) {
   const ui::ColorId color = parent_tab_->GetAlertIndicatorColor(state);
-  const ui::ImageModel indicator_image =
-      GetTabAlertIndicatorImage(state, color);
+  const ui::ImageModel indicator_image = tabs::GetAlertImageModel(state, color);
   SetImageModel(views::Button::STATE_NORMAL, indicator_image);
   SetImageModel(views::Button::STATE_DISABLED, indicator_image);
   SetImageModel(views::Button::STATE_PRESSED,
diff --git a/chrome/browser/ui/views/tabs/alert_indicator_button.h b/chrome/browser/ui/views/tabs/alert_indicator_button.h
index c7d7e313..4babe57 100644
--- a/chrome/browser/ui/views/tabs/alert_indicator_button.h
+++ b/chrome/browser/ui/views/tabs/alert_indicator_button.h
@@ -45,12 +45,6 @@
   AlertIndicatorButton& operator=(const AlertIndicatorButton&) = delete;
   ~AlertIndicatorButton() override;
 
-  static ui::ImageModel GetTabAlertIndicatorImage(tabs::TabAlert alert_state,
-                                                  ui::ColorId button_color);
-
-  static ui::ImageModel GetTabAlertIndicatorImageForHoverCard(
-      tabs::TabAlert alert_state);
-
   // Returns the current TabAlert except, while the indicator image is
   // fading out, returns the prior TabAlert.
   std::optional<tabs::TabAlert> showing_alert_state() const {
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index 2760b7a..81b9314 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -30,6 +30,7 @@
 #include "chrome/browser/ui/browser_command_controller.h"
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tab_ui_helper.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h"
 #include "chrome/browser/ui/tabs/split_tab_util.h"
@@ -144,7 +145,10 @@
   TabContextMenuContents(Tab* tab, BrowserTabStripController* controller)
       : tab_(tab), controller_(controller) {
     model_ = controller_->menu_model_factory_->Create(
-        this, controller->browser()->tab_menu_model_delegate(),
+        this,
+        controller->GetBrowserWindowInterface()
+            ->GetFeatures()
+            .tab_menu_model_delegate(),
         controller->model_,
         controller->tabstrip_->GetModelIndexOf(tab).value());
 
diff --git a/chrome/browser/ui/views/tabs/dragging/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/dragging/tab_drag_controller_interactive_uitest.cc
index ff4ce68..0bbfeec 100644
--- a/chrome/browser/ui/views/tabs/dragging/tab_drag_controller_interactive_uitest.cc
+++ b/chrome/browser/ui/views/tabs/dragging/tab_drag_controller_interactive_uitest.cc
@@ -1351,7 +1351,7 @@
   AddTabsAndResetBrowser(browser(), 3);
   model->ActivateTabAt(0);
   split_tabs::SplitTabId split_id =
-      model->AddToNewSplit({1}, split_tabs::SplitTabLayout::kHorizontal);
+      model->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
   StopAnimating(tab_strip);
 
   ASSERT_TRUE(PressInputAtCenter(tab_strip->tab_at(0)));
@@ -2806,7 +2806,7 @@
   AddTabsAndResetBrowser(browser(), 1);
   browser()->tab_strip_model()->ActivateTabAt(0);
   split_tabs::SplitTabId split_id = browser()->tab_strip_model()->AddToNewSplit(
-      {1}, split_tabs::SplitTabLayout::kHorizontal);
+      {1}, split_tabs::SplitTabVisualData());
   StopAnimating(tab_strip);
 
   // Create another browser.
@@ -3117,7 +3117,7 @@
   tab_groups::TabGroupId group = model->AddToNewGroup({0, 1});
 
   model->ActivateTabAt(0);
-  model->AddToNewSplit({1}, split_tabs::SplitTabLayout::kHorizontal);
+  model->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   tab_groups::TabGroupColorId group_color = tab_strip->GetGroupColorId(group);
   StopAnimating(tab_strip);
diff --git a/chrome/browser/ui/views/tabs/fade_footer_view.cc b/chrome/browser/ui/views/tabs/fade_footer_view.cc
index 913a7c2..362a097 100644
--- a/chrome/browser/ui/views/tabs/fade_footer_view.cc
+++ b/chrome/browser/ui/views/tabs/fade_footer_view.cc
@@ -9,6 +9,7 @@
 #include "chrome/browser/ui/color/chrome_color_id.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/tabs/alert/tab_alert.h"
+#include "chrome/browser/ui/tabs/alert/tab_alert_icon.h"
 #include "chrome/browser/ui/views/tabs/alert_indicator_button.h"
 #include "chrome/grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -16,7 +17,9 @@
 #include "ui/base/models/image_model.h"
 #include "ui/base/text/bytes_formatting.h"
 #include "ui/base/ui_base_features.h"
+#include "ui/color/color_id.h"
 #include "ui/compositor/layer.h"
+#include "ui/gfx/color_palette.h"
 #include "ui/views/border.h"
 #include "ui/views/layout/flex_layout_types.h"
 #include "ui/views/layout/layout_provider.h"
@@ -30,6 +33,38 @@
 constexpr auto kFooterMargins = gfx::Insets::VH(12, 12);
 // Spacing used to separate two footer rows.
 constexpr int kFooterRowSpacing = 8;
+
+ui::ColorId GetTabAlertColor(tabs::TabAlert alert_state) {
+  // Hover card background color isn't affected by third party themes so icons
+  // need to use a different color id from those used in the
+  // AlertIndicatorButton.
+  ui::ColorId icon_color = gfx::kPlaceholderColor;
+  switch (alert_state) {
+    case tabs::TabAlert::MEDIA_RECORDING:
+    case tabs::TabAlert::AUDIO_RECORDING:
+    case tabs::TabAlert::VIDEO_RECORDING:
+    case tabs::TabAlert::DESKTOP_CAPTURING:
+      icon_color = kColorHoverCardTabAlertMediaRecordingIcon;
+      break;
+    case tabs::TabAlert::TAB_CAPTURING:
+    case tabs::TabAlert::PIP_PLAYING:
+    case tabs::TabAlert::GLIC_ACCESSING:
+      icon_color = kColorHoverCardTabAlertPipPlayingIcon;
+      break;
+    case tabs::TabAlert::AUDIO_PLAYING:
+    case tabs::TabAlert::AUDIO_MUTING:
+    case tabs::TabAlert::BLUETOOTH_CONNECTED:
+    case tabs::TabAlert::BLUETOOTH_SCAN_ACTIVE:
+    case tabs::TabAlert::USB_CONNECTED:
+    case tabs::TabAlert::HID_CONNECTED:
+    case tabs::TabAlert::SERIAL_CONNECTED:
+    case tabs::TabAlert::VR_PRESENTING_IN_HEADSET:
+      icon_color = kColorHoverCardTabAlertAudioPlayingIcon;
+      break;
+  }
+
+  return icon_color;
+}
 }  // namespace
 
 template <typename T>
@@ -142,9 +177,9 @@
                    GetLayoutConstant(TAB_ALERT_INDICATOR_ICON_WIDTH)),
                row_text);
   } else if (alert_state.has_value()) {
-    SetContent(AlertIndicatorButton::GetTabAlertIndicatorImageForHoverCard(
-                   alert_state.value()),
-               GetTabAlertStateText(alert_state.value()));
+    const tabs::TabAlert alert = alert_state.value();
+    SetContent(tabs::GetAlertImageModel(alert, GetTabAlertColor(alert)),
+               GetTabAlertStateText(alert));
   } else {
     SetContent(ui::ImageModel(), std::u16string());
   }
diff --git a/chrome/browser/ui/views/tabs/fake_tab_slot_controller.h b/chrome/browser/ui/views/tabs/fake_tab_slot_controller.h
index d926ed18..ccd71d4 100644
--- a/chrome/browser/ui/views/tabs/fake_tab_slot_controller.h
+++ b/chrome/browser/ui/views/tabs/fake_tab_slot_controller.h
@@ -113,8 +113,6 @@
     tab_fg_color_inactive_ = fg_color_inactive;
   }
 
-  void SetInactiveTabWidth(int width) { inactive_tab_width_ = width; }
-
  private:
   raw_ptr<TabStripController> tab_strip_controller_;
   raw_ptr<TabContainer, DanglingUntriaged> tab_container_;
@@ -127,8 +125,6 @@
 
   SkColor tab_fg_color_active_ = gfx::kPlaceholderColor;
   SkColor tab_fg_color_inactive_ = gfx::kPlaceholderColor;
-
-  int inactive_tab_width_ = 0;
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_TABS_FAKE_TAB_SLOT_CONTROLLER_H_
diff --git a/chrome/browser/ui/views/tabs/tab_container_impl.cc b/chrome/browser/ui/views/tabs/tab_container_impl.cc
index 83db6780..75379edb 100644
--- a/chrome/browser/ui/views/tabs/tab_container_impl.cc
+++ b/chrome/browser/ui/views/tabs/tab_container_impl.cc
@@ -1686,11 +1686,14 @@
   // We need to check what would happen if the active tab were to move to this
   // tab or before. If animating, we want to use the target bounds in this
   // calculation.
+  const Tab* active_tab =
+      GetTabAtModelIndex(controller_->GetActiveIndex().value());
+  int active_tab_width = active_tab->width();
   if (IsAnimating()) {
     right_edge = bounds_animator_.GetTargetBounds(tab).right();
+    active_tab_width = bounds_animator_.GetTargetBounds(active_tab).width();
   }
-  return (right_edge + layout_helper_->active_tab_width() -
-          layout_helper_->inactive_tab_width()) <= tabstrip_right;
+  return right_edge + active_tab_width - tab->width() <= tabstrip_right;
 }
 
 gfx::Rect TabContainerImpl::GetDropBounds(int drop_index,
diff --git a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
index a05c1333..6ed59f6 100644
--- a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.cc
@@ -48,8 +48,6 @@
     : controller_(controller),
       get_tabs_callback_(get_tabs_callback),
       active_tab_width_(TabStyle::Get()->GetStandardWidth(/*is_split=*/false)),
-      inactive_tab_width_(
-          TabStyle::Get()->GetStandardWidth(/*is_split=*/false)),
       tab_strip_layout_domain_(LayoutDomain::kInactiveWidthEqualsActiveWidth) {}
 
 TabStripLayoutHelper::~TabStripLayoutHelper() = default;
@@ -436,8 +434,6 @@
   }
   if (active) {
     active_tab_width_ = tab_width;
-  } else {
-    inactive_tab_width_ = tab_width;
   }
 }
 
diff --git a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
index 888ea92..35a9b06 100644
--- a/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
+++ b/chrome/browser/ui/views/tabs/tab_strip_layout_helper.h
@@ -50,7 +50,6 @@
   std::vector<TabSlotView*> GetTabSlotViews() const;
 
   int active_tab_width() { return active_tab_width_; }
-  int inactive_tab_width() { return inactive_tab_width_; }
   LayoutDomain layout_domain() { return tab_strip_layout_domain_; }
 
   // Returns the number of pinned tabs in the tabstrip.
@@ -103,9 +102,8 @@
   int CalculatePreferredWidth();
 
   // Generates and sets the ideal bounds for the views in `tabs` and
-  // `group_headers`. Updates the cached widths in `active_tab_width_` and
-  // `inactive_tab_width_`. Returns the total width occupied by the new ideal
-  // bounds.
+  // `group_headers`. Updates the cached width in `active_tab_width_`. Returns
+  // the total width occupied by the new ideal bounds.
   int UpdateIdealBounds(int available_width);
 
  private:
@@ -149,8 +147,7 @@
   // tab. Otherwise returns `std::nullopt`.
   std::optional<int> GetAdjacentSplitTab(int index) const;
 
-  // Updates the value of either `active_tab_width_` or `inactive_tab_width_`,
-  // as appropriate.
+  // Updates the value of either `active_tab_width_`.
   void UpdateCachedTabWidth(int tab_index, int tab_width, bool active);
 
   // True iff the slot at index `i` is a tab that is in a collapsed group.
@@ -172,7 +169,6 @@
   // The current widths of tabs. If the space for tabs is not evenly divisible
   // into these widths, the initial tabs in the strip will be 1 px larger.
   int active_tab_width_;
-  int inactive_tab_width_;
 
   LayoutDomain tab_strip_layout_domain_;
 };
diff --git a/chrome/browser/ui/views/tabs/tab_unittest.cc b/chrome/browser/ui/views/tabs/tab_unittest.cc
index 461dc720..1df19e5 100644
--- a/chrome/browser/ui/views/tabs/tab_unittest.cc
+++ b/chrome/browser/ui/views/tabs/tab_unittest.cc
@@ -890,7 +890,6 @@
   };
 
   for (auto const& test_case : test_cases) {
-    controller->SetInactiveTabWidth(test_case.tab_width);
     tab->SetBounds(0, 0, test_case.tab_width, 50);
     EXPECT_EQ(test_case.expected_increased_radius,
               tab_icon->increased_discard_indicator_radius_);
diff --git a/chrome/browser/ui/views/web_apps/web_app_tab_strip_browsertest.cc b/chrome/browser/ui/views/web_apps/web_app_tab_strip_browsertest.cc
index 797d90dc..e3870c2 100644
--- a/chrome/browser/ui/views/web_apps/web_app_tab_strip_browsertest.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_tab_strip_browsertest.cc
@@ -19,6 +19,7 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/tab_ui_helper.h"
 #include "chrome/browser/ui/tabs/existing_window_sub_menu_model.h"
 #include "chrome/browser/ui/tabs/tab_menu_model.h"
@@ -734,7 +735,8 @@
   EXPECT_EQ(app_browser2->tab_strip_model()->count(), 2);
 
   // Test the "open in existing window" menu option.
-  TabMenuModel menu(nullptr, app_browser2->tab_menu_model_delegate(),
+  TabMenuModel menu(nullptr,
+                    app_browser2->GetFeatures().tab_menu_model_delegate(),
                     app_browser2->tab_strip_model(), 1);
   size_t submenu_index =
       menu.GetIndexOfCommandId(TabStripModel::CommandMoveToExistingWindow)
diff --git a/chrome/browser/ui/views/webid/account_selection_bubble_view.cc b/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
index 2a8322c..18c13ae 100644
--- a/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
+++ b/chrome/browser/ui/views/webid/account_selection_bubble_view.cc
@@ -308,7 +308,7 @@
                           base::Unretained(owner_), idp_metadata.config_url,
                           idp_metadata.idp_login_url),
       l10n_util::GetStringUTF16(IDS_SIGNIN_CONTINUE), this, idp_metadata,
-      /*extra_accessible_text=*/std::nullopt);
+      /*extra_accessible_text=*/u"Opens in a new tab");
   row->AddChildView(std::move(button));
   AddChildView(std::move(row));
 
@@ -717,6 +717,8 @@
       /*horizontal=*/kLeftRightPadding)));
   button->SetIconHorizontalMargins(kMultiIdpIconLeftMargin,
                                    kMultiIdpIconRightMargin);
+  button->AddExtraAccessibleText(
+      l10n_util::GetStringUTF16(IDS_ACCOUNT_SELECTION_OPENS_IN_NEW_TAB));
   return button;
 }
 
@@ -734,6 +736,8 @@
                           idp_metadata.idp_login_url),
       std::move(icon_view), title);
   button->SetIconHorizontalMargins(icon_margin, icon_margin);
+  button->AddExtraAccessibleText(
+      l10n_util::GetStringUTF16(IDS_ACCOUNT_SELECTION_OPENS_IN_NEW_TAB));
   return button;
 }
 
diff --git a/chrome/browser/ui/webui/BUILD.gn b/chrome/browser/ui/webui/BUILD.gn
index eb531008..b0cea16b 100644
--- a/chrome/browser/ui/webui/BUILD.gn
+++ b/chrome/browser/ui/webui/BUILD.gn
@@ -56,6 +56,7 @@
     deps += [
       "//chrome/browser/ui/webui/access_code_cast",
       "//chrome/browser/ui/webui/app_service_internals",
+      "//chrome/browser/ui/webui/infobar_internals",
       "//chrome/browser/ui/webui/new_tab_footer",
       "//chrome/browser/ui/webui/privacy_sandbox",
     ]
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
index c5722f4..1bdef887 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -85,6 +85,7 @@
 #include "chrome/browser/ui/webui/downloads/downloads_ui.h"
 #include "chrome/browser/ui/webui/feedback/feedback_ui.h"
 #include "chrome/browser/ui/webui/history/history_ui.h"
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h"
 #include "chrome/browser/ui/webui/inspect/inspect_ui.h"
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 #include "chrome/browser/ui/webui/internals/internals_ui.h"
@@ -297,6 +298,7 @@
   map.AddWebUIConfig(std::make_unique<HistoryUIConfig>());
   map.AddWebUIConfig(std::make_unique<HistorySidePanelUIConfig>());
   map.AddWebUIConfig(std::make_unique<HistoryClustersSidePanelUIConfig>());
+  map.AddWebUIConfig(std::make_unique<InfobarInternalsUIConfig>());
   map.AddWebUIConfig(std::make_unique<InspectUIConfig>());
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
   map.AddWebUIConfig(std::make_unique<InternalsUIConfig>());
diff --git a/chrome/browser/ui/webui/infobar_internals/BUILD.gn b/chrome/browser/ui/webui/infobar_internals/BUILD.gn
new file mode 100644
index 0000000..220be0d
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/BUILD.gn
@@ -0,0 +1,44 @@
+# Copyright 2025 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojo_bindings") {
+  sources = [ "infobar_internals.mojom" ]
+  webui_module_path = "/"
+
+  public_deps = [ "//mojo/public/mojom/base" ]
+}
+
+source_set("infobar_internals") {
+  sources = [ "infobar_internals_ui.h" ]
+
+  public_deps = [
+    "//base",
+    "//content/public/browser",
+    "//ui/webui",
+  ]
+
+  deps = [
+    "//chrome/browser/ui/webui/infobar_internals:mojo_bindings",
+    "//chrome/common",
+  ]
+}
+
+source_set("impl") {
+  sources = [
+    "infobar_internals_handler.cc",
+    "infobar_internals_handler.h",
+    "infobar_internals_ui.cc",
+  ]
+
+  public_deps = [ "//chrome/browser:browser_public_dependencies" ]
+
+  deps = [
+    ":infobar_internals",
+    ":mojo_bindings",
+    "//chrome/browser/resources/infobar_internals:resources",
+    "//content/public/browser",
+  ]
+}
diff --git a/chrome/browser/ui/webui/infobar_internals/OWNERS b/chrome/browser/ui/webui/infobar_internals/OWNERS
new file mode 100644
index 0000000..ee9e00f
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/OWNERS
@@ -0,0 +1,4 @@
+file://chrome/browser/win/installer_downloader/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom b/chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom
new file mode 100644
index 0000000..58fa103
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom
@@ -0,0 +1,41 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module infobar_internals.mojom;
+
+// Types for every infobar that can be triggered from the internals page.
+enum InfoBarType {
+  kInstallerDownloader,
+};
+
+// Metadata describing an individual infobar that can be triggered.
+struct InfoBarEntry {
+  // The type associated with this infobar entry.
+  InfoBarType type;
+
+  // Human-readable label shown in the WebUI.
+  string name;
+};
+
+// Interface for browser-to-page events
+interface Page {
+  // Intentionally empty. No communication browser -> renderer is expected for
+  // now.
+};
+
+// Interface that implements page-to-browser events.
+interface PageHandler {
+  // Returns the list of infobars registered for testing.
+  GetInfoBars() => (array<InfoBarEntry> infobars);
+
+  // Invokes the C++ logic to trigger the infobar identified by `type`.
+  TriggerInfoBar(InfoBarType type) => (bool success);
+};
+
+// Used by the WebUI page to bootstrap bidirectional communication.
+interface PageHandlerFactory {
+  // Creates and binds a new PageHandler instance for the requesting page.
+  CreatePageHandler(pending_remote<Page> page,
+                    pending_receiver<PageHandler> handler);
+};
diff --git a/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.cc b/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.cc
new file mode 100644
index 0000000..b0823351
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.cc
@@ -0,0 +1,54 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.h"
+
+#include <utility>
+#include <vector>
+
+#include "base/functional/bind.h"
+#include "base/no_destructor.h"
+#include "content/public/browser/web_ui.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+using InfoBarType = infobar_internals::mojom::InfoBarType;
+using InfoBarEntry = infobar_internals::mojom::InfoBarEntry;
+
+InfoBarInternalsHandler::InfoBarInternalsHandler(
+    mojo::PendingReceiver<infobar_internals::mojom::PageHandler> receiver)
+    : receiver_(this, std::move(receiver)) {}
+
+InfoBarInternalsHandler::~InfoBarInternalsHandler() = default;
+
+void InfoBarInternalsHandler::TriggerInfoBar(InfoBarType type,
+                                             TriggerInfoBarCallback callback) {
+  std::move(callback).Run(TriggerInfoBarInternal(type));
+}
+
+void InfoBarInternalsHandler::GetInfoBars(GetInfoBarsCallback callback) {
+  static const base::NoDestructor<std::array<InfoBarEntry, 1>> kInfobars(
+      {InfoBarEntry{InfoBarType::kInstallerDownloader,
+                    "Installer Downloader"}});
+
+  std::vector<infobar_internals::mojom::InfoBarEntryPtr> infobar_list;
+  for (const auto& infobar : *kInfobars) {
+    infobar_list.emplace_back(InfoBarEntry::New(infobar.type, infobar.name));
+  }
+
+  std::move(callback).Run(std::move(infobar_list));
+}
+
+bool InfoBarInternalsHandler::TriggerInfoBarInternal(InfoBarType type) {
+  switch (type) {
+    case InfoBarType::kInstallerDownloader: {
+      // TODO(htpts://crbug.com/417727976): Trigger manually installer
+      // downloader infobar.
+      //
+      // Not implemented yet.
+      return false;
+    }
+  }
+
+  return false;
+}
diff --git a/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.h b/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.h
new file mode 100644
index 0000000..53ddb70
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.h
@@ -0,0 +1,36 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_HANDLER_H_
+
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+// The handler for Javascript messages related to the "infobar-internals" page.
+class InfoBarInternalsHandler final
+    : public infobar_internals::mojom::PageHandler {
+ public:
+  explicit InfoBarInternalsHandler(
+      mojo::PendingReceiver<infobar_internals::mojom::PageHandler> receiver);
+
+  InfoBarInternalsHandler(const InfoBarInternalsHandler&) = delete;
+  InfoBarInternalsHandler& operator=(const InfoBarInternalsHandler&) = delete;
+
+  ~InfoBarInternalsHandler() override;
+
+  // infobar_internals::mojom::PageHandler:
+  void GetInfoBars(GetInfoBarsCallback callback) override;
+  void TriggerInfoBar(infobar_internals::mojom::InfoBarType type,
+                      TriggerInfoBarCallback callback) override;
+
+ private:
+  // Returns true on success, false if the requested type is unsupported or the
+  // triggering fail.
+  bool TriggerInfoBarInternal(infobar_internals::mojom::InfoBarType type);
+
+  mojo::Receiver<infobar_internals::mojom::PageHandler> receiver_;
+};
+
+#endif  // CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_HANDLER_H_
diff --git a/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.cc b/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.cc
new file mode 100644
index 0000000..e135075
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.cc
@@ -0,0 +1,44 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h"
+
+#include <memory>
+
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals_handler.h"
+#include "chrome/grit/infobar_internals_resources.h"
+#include "chrome/grit/infobar_internals_resources_map.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "ui/webui/webui_util.h"
+
+InfoBarInternalsUI::InfoBarInternalsUI(content::WebUI* web_ui)
+    : ui::MojoWebUIController(web_ui, true) {
+  content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
+      web_ui->GetWebContents()->GetBrowserContext(),
+      chrome::kChromeUIInfobarInternalsHost);
+
+  webui::SetupWebUIDataSource(source, base::span(kInfobarInternalsResources),
+                              IDR_INFOBAR_INTERNALS_INFOBAR_INTERNALS_HTML);
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(InfoBarInternalsUI)
+
+InfoBarInternalsUI::~InfoBarInternalsUI() = default;
+
+void InfoBarInternalsUI::BindInterface(
+    mojo::PendingReceiver<infobar_internals::mojom::PageHandlerFactory>
+        receiver) {
+  page_factory_receiver_.reset();
+  page_factory_receiver_.Bind(std::move(receiver));
+}
+
+void InfoBarInternalsUI::CreatePageHandler(
+    mojo::PendingRemote<infobar_internals::mojom::Page> page,
+    mojo::PendingReceiver<infobar_internals::mojom::PageHandler> receiver) {
+  page_handler_ =
+      std::make_unique<InfoBarInternalsHandler>(std::move(receiver));
+}
diff --git a/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h b/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h
new file mode 100644
index 0000000..f0ae21f
--- /dev/null
+++ b/chrome/browser/ui/webui/infobar_internals/infobar_internals_ui.h
@@ -0,0 +1,62 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_UI_H_
+
+#include <memory>
+
+#include "chrome/browser/ui/webui/infobar_internals/infobar_internals.mojom.h"
+#include "chrome/common/webui_url_constants.h"
+#include "content/public/browser/internal_webui_config.h"
+#include "content/public/browser/web_ui_controller.h"
+#include "content/public/common/url_constants.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+
+namespace content {
+class WebUI;
+}
+
+class InfoBarInternalsUI;
+class InfoBarInternalsHandler;
+
+class InfobarInternalsUIConfig final
+    : public content::DefaultInternalWebUIConfig<InfoBarInternalsUI> {
+ public:
+  InfobarInternalsUIConfig()
+      : DefaultInternalWebUIConfig(chrome::kChromeUIInfobarInternalsHost) {}
+};
+
+class InfoBarInternalsUI final
+    : public ui::MojoWebUIController,
+      public infobar_internals::mojom::PageHandlerFactory {
+ public:
+  explicit InfoBarInternalsUI(content::WebUI* web_ui);
+
+  InfoBarInternalsUI(const InfoBarInternalsUI&) = delete;
+  InfoBarInternalsUI& operator=(const InfoBarInternalsUI&) = delete;
+
+  ~InfoBarInternalsUI() override;
+
+  // Instantiates the implementor of the mojom::PageHandlerFactory mojo
+  // interface passing the pending receiver that will be internally bound.
+  void BindInterface(
+      mojo::PendingReceiver<infobar_internals::mojom::PageHandlerFactory>
+          receiver);
+
+ private:
+  // infobar_internals::mojom::PageHandlerFactory:
+  void CreatePageHandler(
+      mojo::PendingRemote<infobar_internals::mojom::Page> page,
+      mojo::PendingReceiver<infobar_internals::mojom::PageHandler> receiver)
+      override;
+
+  std::unique_ptr<InfoBarInternalsHandler> page_handler_;
+  mojo::Receiver<infobar_internals::mojom::PageHandlerFactory>
+      page_factory_receiver_{this};
+
+  WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+#endif  // CHROME_BROWSER_UI_WEBUI_INFOBAR_INTERNALS_INFOBAR_INTERNALS_UI_H_
diff --git a/chrome/browser/ui/webui/signin/BUILD.gn b/chrome/browser/ui/webui/signin/BUILD.gn
index f0510e8..08d8366 100644
--- a/chrome/browser/ui/webui/signin/BUILD.gn
+++ b/chrome/browser/ui/webui/signin/BUILD.gn
@@ -370,6 +370,7 @@
       "//chrome/browser/profiles",
       "//chrome/browser/profiles:profile",
       "//chrome/browser/profiles:profile_util",
+      "//chrome/browser/profiles/keep_alive",
       "//chrome/browser/resources/signin:resources",
       "//chrome/browser/resources/signin/profile_picker:resources",
       "//chrome/browser/search/background",
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
index 3b9a78d..2a14191 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
@@ -1298,8 +1298,8 @@
   AddTab(browser(), GURL(kTabUrl2));
   AddTab(browser(), GURL(kTabUrl3));
   TabStripModel* tab_strip_model = browser()->tab_strip_model();
-  const split_tabs::SplitTabId split_id = tab_strip_model->AddToNewSplit(
-      {1}, split_tabs::SplitTabLayout::kVertical);
+  const split_tabs::SplitTabId split_id =
+      tab_strip_model->AddToNewSplit({1}, split_tabs::SplitTabVisualData());
 
   const split_tabs::SplitTabData* split_data =
       tab_strip_model->GetSplitData(split_id);
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
index d055dbc..ffa49549 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
@@ -24,6 +24,7 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
 #include "chrome/browser/ui/color/chrome_color_id.h"
 #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h"
 #include "chrome/browser/ui/tabs/tab_group_model.h"
@@ -119,7 +120,7 @@
                       const ui::AcceleratorProvider* accelerator_provider,
                       int tab_index)
       : TabMenuModel(this,
-                     browser->tab_menu_model_delegate(),
+                     browser->GetFeatures().tab_menu_model_delegate(),
                      browser->tab_strip_model(),
                      tab_index),
         browser_(browser),
diff --git a/chrome/browser/web_applications/BUILD.gn b/chrome/browser/web_applications/BUILD.gn
index 1b901115..c013452b 100644
--- a/chrome/browser/web_applications/BUILD.gn
+++ b/chrome/browser/web_applications/BUILD.gn
@@ -8,7 +8,8 @@
 import("//testing/test.gni")
 
 assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
-assert(!is_android, "Android shouldn't use anything in //chrome/web_applications")
+assert(!is_android,
+       "Android shouldn't use anything in //chrome/web_applications")
 
 source_set("web_applications") {
   sources = [
@@ -513,6 +514,7 @@
     "//chrome/browser/content_settings:content_settings_factory",
     "//chrome/browser/favicon",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/shortcuts",
     "//chrome/browser/sync:factories",
     "//chrome/browser/task_manager",
@@ -1012,6 +1014,7 @@
     "//chrome/browser/apps/link_capturing:test_support",
     "//chrome/browser/content_settings:content_settings_factory",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/shortcuts:shortcuts",
     "//chrome/common",
     "//chrome/common:chrome_features",
diff --git a/chrome/browser/web_applications/app_service/BUILD.gn b/chrome/browser/web_applications/app_service/BUILD.gn
index 00e772c..fe9a999 100644
--- a/chrome/browser/web_applications/app_service/BUILD.gn
+++ b/chrome/browser/web_applications/app_service/BUILD.gn
@@ -28,6 +28,7 @@
     "//chrome/browser/apps/app_service/app_icon",
     "//chrome/browser/content_settings:content_settings_factory",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/web_applications",
     "//chrome/common",
     "//components/content_settings/core/browser",
diff --git a/chrome/browser_exposed_mojom_targets.gni b/chrome/browser_exposed_mojom_targets.gni
index 15249a5..8ac6f5d9 100644
--- a/chrome/browser_exposed_mojom_targets.gni
+++ b/chrome/browser_exposed_mojom_targets.gni
@@ -31,6 +31,7 @@
   "//chrome/browser/ui/webui/customize_buttons:mojo_bindings",
   "//chrome/browser/ui/webui/discards:mojo_bindings",
   "//chrome/browser/ui/webui/downloads:mojo_bindings",
+  "//chrome/browser/ui/webui/infobar_internals:mojo_bindings",
   "//chrome/browser/ui/webui/user_education_internals:mojo_bindings",
   "//chrome/browser/ui/webui/location_internals:mojo_bindings",
   "//chrome/browser/ui/webui/new_tab_footer:mojo_bindings",
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index c9138f5..0e52359 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1747828546-74d17f392173a3bb7c344673854b9c42cf14de5f-e21a41f09ff7c2f0394a0308753ca52ba93cca5f.profdata
+chrome-android32-main-1747850369-82ea17b3cb80be46c5ae8da98286f0a7bd1c7980-0e4a70261ec7121bf90020f3773d40f1db4184ab.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 3eb8c7e..252f4ddb 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1747837938-ba6976308e56dcde564df3a0ed7a88367ab7564e-aa6dc2b18f8a11431e0d6ab356e093175e77e269.profdata
+chrome-android64-main-1747850369-87edbe8db014ea9a055dc1f408a8f97087eb3a26-0e4a70261ec7121bf90020f3773d40f1db4184ab.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 29b6e274..e840ad2 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1747843107-0448b303d9e326588793c79b09056a6194395ee7-dbf854d2a9a46e2531c7c01bfd4a3bdd9e197949.profdata
+chrome-mac-arm-main-1747857559-bba29d97b394034e207bc3a4e93747ac2f4178d6-6ccf89f85b31c2a953bb00b61169ae11fb62195d.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 0357d6f..7197d076 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1747828546-59621322c5703ff5a8e15a7b1484d0aee1d43d99-e21a41f09ff7c2f0394a0308753ca52ba93cca5f.profdata
+chrome-mac-main-1747850369-967d75a8a905d1d54d88a62270cbe872e8d17c31-0e4a70261ec7121bf90020f3773d40f1db4184ab.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index 8526c7e..7ebf656 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1747828546-044b400eeb0a4c3c51f49a3f4e6081892954d2ae-e21a41f09ff7c2f0394a0308753ca52ba93cca5f.profdata
+chrome-win-arm64-main-1747850369-671977e82eaffd88d54dc8a68646dbb43ef3a7d4-0e4a70261ec7121bf90020f3773d40f1db4184ab.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index c8fd5b0..6a43eea 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1747817602-a5f1e334335a3e6a138ff77414105a721e41ce96-6b57e7dc06a4fed81f2ca351e186c615afe4fdc4.profdata
+chrome-win64-main-1747828546-d33cbe18a6fa430de6cbb4207c7e91a78ab67ed6-e21a41f09ff7c2f0394a0308753ca52ba93cca5f.profdata
diff --git a/chrome/common/actor.mojom b/chrome/common/actor.mojom
index f3b7c2a..d97588a 100644
--- a/chrome/common/actor.mojom
+++ b/chrome/common/actor.mojom
@@ -154,6 +154,25 @@
   // An unknown tool was requested.
   kToolUnknown = 16,
 
+  // The target frame in the renderer no longer exists or is shutting down.
+  kFrameWentAway = 17,
+
+  // The target DOMNodeId does not exist in the document.
+  kInvalidDomNodeId = 18,
+
+  // The targeted element cannot be modified because it is disabled.
+  kElementDisabled = 19,
+
+  // The target element is off screen or otherwise clipped by ancestor elements.
+  kElementOffscreen = 20,
+
+  // When using coordinate target, a supplied coordinate is outside the
+  // viewport.
+  kCoordinatesOutOfBounds = 21,
+
+  // Arguments supplied to the tool are invalid.
+  kArgumentsInvalid = 22,
+
   ///////////////////////////////////////////////////////////////////////
   // Codes 100-199: Errors for navigation. (Not part of the ToolAction union
   // as it's a browser-side tool.)
@@ -164,38 +183,70 @@
   ///////////////////////////////////////////////////////////////////////
   // Codes 200-299: Errors for ClickAction.
 
-  // Arguments passed to the click tool were invalid.
-  kClickInvalidArguments = 200,
-
-  // The DOM node targeted for the click is invalid.
-  kClickInvalidDomNodeId = 201,
-
-  // The form element targeted for the click is disabled.
-  kClickElementDisabled = 202,
-
-  // The element targeted for the click is offscreen.
-  kClickElementOffscreen = 203,
-
-  // The frame targeted for the click is invalid.
-  kClickInvalidFrame = 204,
-
-  // The click point for the element was not valid.
-  kClickInvalidPoint = 205,
-
   // The click event was suppressed.
-  kClickSuppressed = 206,
+  kClickSuppressed = 200,
+
+  ///////////////////////////////////////////////////////////////////////
+  // Codes 300-399: Errors for DragAndRelease.
+
+  // The `from` coordinate is outside of the viewport bounds.
+  kDragAndReleaseFromOffscreen = 300,
+
+  // The `to` coordinate is outside of the viewport bounds.
+  kDragAndReleaseToOffscreen = 301,
+
+  // The initial mouse move event was suppressed.
+  kDragAndReleaseFromMoveSuppressed = 302,
+
+  // The mouse down event was suppressed.
+  kDragAndReleaseDownSuppressed = 303,
+
+  // The mouse move event to the target was suppressed.
+  kDragAndReleaseToMoveSuppressed = 304,
+
+  // The mouse up event was suppressed.
+  kDragAndReleaseUpSuppressed = 305,
+
+  ///////////////////////////////////////////////////////////////////////
+  // Codes 400-499: Errors for MouseMoveAction.
+
+  // The mouse move event was suppressed.
+  kMouseMoveEventSuppressed = 400,
 
   ///////////////////////////////////////////////////////////////////////
   // Codes 500-599: Errors for ScrollAction.
 
-  // Arguments passed to the scroll tool were invalid.
-  kScrollInvalidArguments = 500,
+  // The tool is targeting the viewport but the document doesn't have a
+  // scrolling element for the viewport. (Note: this is a rare edge case in
+  // quirks mode. This does NOT mean that the viewport isn't scrollable.)
+  kScrollNoScrollingElement = 500,
+
+  // The targeted element either has no overflow or the overflow is not user
+  // scrollable.
+  kScrollTargetNotUserScrollable = 501,
+
+  // The offset of the target element didn't change after scrolling.
+  kScrollOffsetDidNotChange = 502,
+
+  ///////////////////////////////////////////////////////////////////////
+  // Codes 600-699: Errors for SelectAction.
+
+  // Target element was not a <select>.
+  kSelectInvalidElement = 600,
+
+  // Specified value to select does not exist as an <option> in the <select>.
+  kSelectNoSuchOption = 601,
+
+  // Specified value to select does exist but is disabled.
+  kSelectOptionDisabled = 602,
+
+  // The invoking the tool resulted in an unexpected value.
+  kSelectUnexpectedValue = 603,
 
   ///////////////////////////////////////////////////////////////////////
   // Codes 700-799: Errors for TypeAction.
 
-  // Arguments passed to the type tool were invalid.
-  kTypeInvalidArguments = 700,
+  // TODO(crbug.com/409558980): Add error codes for type tool
 
   ///////////////////////////////////////////////////////////////////////
   // Codes 800-899: Errors for history tool. (Not part of the ToolAction union
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index d4fefc6..ac59155c 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -499,11 +499,6 @@
 const base::FeatureParam<bool> kGlicScrollToEnforceDocumentId{
     &kGlicScrollTo, "glic-scroll-to-enforce-document-id", false};
 
-// Controls whether the Glic UI container can be resized by the user
-BASE_FEATURE(kGlicUserResize,
-             "GlicUserResize",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Controls whether the web client should resize itself to fit the window.
 BASE_FEATURE(kGlicSizingFitWindow,
              "GlicSizingFitWindow",
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index bebea13e..82dbdd1 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -283,8 +283,6 @@
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::FeatureParam<bool> kGlicScrollToEnforceDocumentId;
 
-COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlicUserResize);
-
 COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlicSizingFitWindow);
 
 COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlicWarming);
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
index ba85be1..6ce299a 100644
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -142,6 +142,9 @@
 inline constexpr char kChromeUIHistoryURL[] = "chrome://history/";
 inline constexpr char16_t kChromeUIHistoryURL16[] = u"chrome://history/";
 inline constexpr char kChromeUIIdentityInternalsHost[] = "identity-internals";
+inline constexpr char kChromeUIInfobarInternalsHost[] = "infobar-internals";
+inline constexpr char kChromeUIInfobarInternalsURL[] =
+    "chrome://infobar-internals/";
 inline constexpr char kChromeUIImageHost[] = "image";
 inline constexpr char kChromeUIImageURL[] = "chrome://image/";
 inline constexpr char kChromeUIInspectHost[] = "inspect";
diff --git a/chrome/renderer/actor/click_tool.cc b/chrome/renderer/actor/click_tool.cc
index 5229023d..75ccb68 100644
--- a/chrome/renderer/actor/click_tool.cc
+++ b/chrome/renderer/actor/click_tool.cc
@@ -9,6 +9,7 @@
 
 #include "base/strings/to_string.h"
 #include "base/time/time.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor/action_result.h"
 #include "chrome/common/actor/actor_logging.h"
 #include "chrome/renderer/actor/tool_utils.h"
@@ -42,13 +43,14 @@
 ClickTool::~ClickTool() = default;
 
 void ClickTool::Execute(ToolFinishedCallback callback) {
-  std::optional<gfx::PointF> click_point = ValidateAndGetClickPoint();
-  if (!click_point) {
-    std::move(callback).Run(
-        MakeResult(mojom::ActionResultCode::kClickInvalidPoint));
+  ValidatedResult validated_result = Validate();
+  if (!validated_result.has_value()) {
+    std::move(callback).Run(std::move(validated_result.error()));
     return;
   }
 
+  gfx::PointF click_point = validated_result.value();
+
   WebMouseEvent::Button button;
   switch (action_->type) {
     case mojom::ClickAction::Type::kLeft: {
@@ -72,9 +74,8 @@
     }
   }
 
-  mojom::ActionResultPtr result =
-      CreateAndDispatchClick(button, click_count, click_point.value(),
-                             frame_->GetWebFrame()->FrameWidget());
+  mojom::ActionResultPtr result = CreateAndDispatchClick(
+      button, click_count, click_point, frame_->GetWebFrame()->FrameWidget());
   std::move(callback).Run(std::move(result));
 }
 
@@ -84,47 +85,45 @@
       base::ToString(action_->type), base::ToString(action_->count));
 }
 
-std::optional<gfx::PointF> ClickTool::ValidateAndGetClickPoint() const {
+ClickTool::ValidatedResult ClickTool::Validate() const {
   if (!frame_->GetWebFrame()->FrameWidget()) {
-    ACTOR_LOG() << "RenderWidget is invalid.";
-    return std::nullopt;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kFrameWentAway));
   }
 
   if (action_->target->is_coordinate()) {
     gfx::PointF click_point(action_->target->get_coordinate());
 
     if (!IsPointWithinViewport(click_point, frame_.get())) {
-      ACTOR_LOG() << "Coordinate is offscreen.";
-      return std::nullopt;
+      return base::unexpected(
+          MakeResult(mojom::ActionResultCode::kCoordinatesOutOfBounds));
     }
+
     return click_point;
   }
 
   int32_t dom_node_id = action_->target->get_dom_node_id();
   WebNode node = GetNodeFromId(frame_.get(), dom_node_id);
   if (node.IsNull()) {
-    ACTOR_LOG() << "Cannot find dom node with id " << dom_node_id;
-    return std::nullopt;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kInvalidDomNodeId));
   }
 
   WebFormControlElement form_element = node.DynamicTo<WebFormControlElement>();
   if (!form_element.IsNull() && !form_element.IsEnabled()) {
-    ACTOR_LOG() << "Target is disabled.";
-    return std::nullopt;
+    return base::unexpected(MakeResult(
+        mojom::ActionResultCode::kElementDisabled,
+        absl::StrFormat("[Element %s]", base::ToString(form_element))));
   }
 
   std::optional<gfx::PointF> click_point = InteractionPointFromWebNode(node);
   if (!click_point.has_value()) {
-    ACTOR_LOG() << "Invalid target rect.";
-    return std::nullopt;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kElementOffscreen,
+                   absl::StrFormat("[Element %s]", base::ToString(node))));
   }
 
-  if (!IsPointWithinViewport(click_point.value(), frame_.get())) {
-    ACTOR_LOG() << "Element is offscreen.";
-    return std::nullopt;
-  }
-
-  return click_point;
+  return *click_point;
 }
 
 }  // namespace actor
diff --git a/chrome/renderer/actor/click_tool.h b/chrome/renderer/actor/click_tool.h
index aa6d3f2..bf357692 100644
--- a/chrome/renderer/actor/click_tool.h
+++ b/chrome/renderer/actor/click_tool.h
@@ -8,6 +8,7 @@
 #include <cstdint>
 
 #include "base/memory/raw_ref.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/renderer/actor/tool_base.h"
 
@@ -36,7 +37,8 @@
   std::string DebugString() const override;
 
  private:
-  std::optional<gfx::PointF> ValidateAndGetClickPoint() const;
+  using ValidatedResult = base::expected<gfx::PointF, mojom::ActionResultPtr>;
+  ValidatedResult Validate() const;
 
   void SendMouseUp(blink::WebMouseEvent mouse_event,
                    ToolFinishedCallback callback);
diff --git a/chrome/renderer/actor/drag_and_release_tool.cc b/chrome/renderer/actor/drag_and_release_tool.cc
index 6329469..eb85098b 100644
--- a/chrome/renderer/actor/drag_and_release_tool.cc
+++ b/chrome/renderer/actor/drag_and_release_tool.cc
@@ -36,58 +36,44 @@
 DragAndReleaseTool::~DragAndReleaseTool() = default;
 
 void DragAndReleaseTool::Execute(ToolFinishedCallback callback) {
-  WebLocalFrame* web_frame = frame_->GetWebFrame();
-  if (!web_frame || !web_frame->FrameWidget()) {
-    ACTOR_LOG() << "RenderFrame or FrameWidget is invalid.";
-    std::move(callback).Run(MakeErrorResult());
+  ValidatedResult validated_result = Validate();
+  if (!validated_result.has_value()) {
+    std::move(callback).Run(std::move(validated_result.error()));
     return;
   }
 
-  mojom::ToolTargetPtr& from_target = action_->from_target;
-  mojom::ToolTargetPtr& to_target = action_->to_target;
-
-  if (from_target->is_dom_node_id() || to_target->is_dom_node_id()) {
-    NOTIMPLEMENTED()
-        << "DragAndRelease currently supports only coordinate targets.";
-    std::move(callback).Run(MakeErrorResult());
-    return;
-  }
-
-  gfx::PointF from_point = gfx::PointF(from_target->get_coordinate());
-  gfx::PointF to_point = gfx::PointF(to_target->get_coordinate());
-
-  if (!IsPointWithinViewport(from_point, frame_.get()) ||
-      !IsPointWithinViewport(to_point, frame_.get())) {
-    ACTOR_LOG() << "Target point is outside of viewport";
-    std::move(callback).Run(MakeErrorResult());
-    return;
-  }
+  gfx::PointF from_point = validated_result->from;
+  gfx::PointF to_point = validated_result->to;
 
   // TODO(crbug.com/409333494): How should partial success be returned.
 
   // Move and press down the mouse on the from_point.
   if (!InjectMouseEvent(EventType::kMouseMove, from_point,
                         WebMouseEvent::Button::kNoButton)) {
-    std::move(callback).Run(MakeErrorResult());
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseFromMoveSuppressed));
     return;
   }
 
   if (!InjectMouseEvent(EventType::kMouseDown, from_point,
                         WebMouseEvent::Button::kLeft)) {
-    std::move(callback).Run(MakeErrorResult());
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseDownSuppressed));
     return;
   }
 
   // Move and release the mouse on the to_point.
   if (!InjectMouseEvent(EventType::kMouseMove, to_point,
                         WebMouseEvent::Button::kLeft)) {
-    std::move(callback).Run(MakeErrorResult());
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseToMoveSuppressed));
     return;
   }
 
   if (!InjectMouseEvent(EventType::kMouseUp, to_point,
                         WebMouseEvent::Button::kLeft)) {
-    std::move(callback).Run(MakeErrorResult());
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseUpSuppressed));
     return;
   }
 
@@ -100,6 +86,38 @@
                          ToDebugString(action_->to_target));
 }
 
+DragAndReleaseTool::ValidatedResult DragAndReleaseTool::Validate() const {
+  if (!frame_->GetWebFrame() || !frame_->GetWebFrame()->FrameWidget()) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kFrameWentAway));
+  }
+  mojom::ToolTargetPtr& from_target = action_->from_target;
+  mojom::ToolTargetPtr& to_target = action_->to_target;
+
+  if (from_target->is_dom_node_id() || to_target->is_dom_node_id()) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kArgumentsInvalid,
+                   "DomNodeId target not supported"));
+  }
+
+  gfx::PointF from_point = gfx::PointF(from_target->get_coordinate());
+  gfx::PointF to_point = gfx::PointF(to_target->get_coordinate());
+
+  if (!IsPointWithinViewport(from_point, frame_.get())) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseFromOffscreen,
+                   absl::StrFormat("Point [%s]", from_point.ToString())));
+  }
+
+  if (!IsPointWithinViewport(to_point, frame_.get())) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kDragAndReleaseToOffscreen,
+                   absl::StrFormat("Point [%s]", to_point.ToString())));
+  }
+
+  return DragParams{from_point, to_point};
+}
+
 bool DragAndReleaseTool::InjectMouseEvent(WebInputEvent::Type type,
                                           const gfx::PointF& position_in_widget,
                                           WebMouseEvent::Button button) {
diff --git a/chrome/renderer/actor/drag_and_release_tool.h b/chrome/renderer/actor/drag_and_release_tool.h
index 1746888..1abae758 100644
--- a/chrome/renderer/actor/drag_and_release_tool.h
+++ b/chrome/renderer/actor/drag_and_release_tool.h
@@ -8,6 +8,7 @@
 #include <cstdint>
 
 #include "base/memory/raw_ref.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/renderer/actor/tool_base.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
@@ -36,6 +37,13 @@
   std::string DebugString() const override;
 
  private:
+  struct DragParams {
+    gfx::PointF from;
+    gfx::PointF to;
+  };
+  using ValidatedResult = base::expected<DragParams, mojom::ActionResultPtr>;
+  ValidatedResult Validate() const;
+
   bool InjectMouseEvent(blink::WebInputEvent::Type type,
                         const gfx::PointF& position_in_widget,
                         blink::WebMouseEvent::Button button);
diff --git a/chrome/renderer/actor/mouse_move_tool.cc b/chrome/renderer/actor/mouse_move_tool.cc
index 396de74..7cb16fed 100644
--- a/chrome/renderer/actor/mouse_move_tool.cc
+++ b/chrome/renderer/actor/mouse_move_tool.cc
@@ -7,6 +7,7 @@
 #include <optional>
 
 #include "base/time/time.h"
+#include "chrome/common/actor.mojom-data-view.h"
 #include "chrome/common/actor/action_result.h"
 #include "chrome/common/actor/actor_logging.h"
 #include "chrome/renderer/actor/tool_utils.h"
@@ -44,24 +45,27 @@
 MouseMoveTool::~MouseMoveTool() = default;
 
 void MouseMoveTool::Execute(ToolFinishedCallback callback) {
-  std::optional<gfx::PointF> move_point = ValidateAndGetMovePoint();
-  if (!move_point.has_value()) {
-    std::move(callback).Run(MakeErrorResult());
+  ValidatedResult validated_result = Validate();
+  if (!validated_result.has_value()) {
+    std::move(callback).Run(std::move(validated_result.error()));
     return;
   }
 
+  gfx::PointF move_point = validated_result.value();
+
   // Dispatch MouseMove event
-  blink::WebMouseEvent mouse_move = CreateMouseEvent(
-      blink::WebInputEvent::Type::kMouseMove, move_point.value());
+  blink::WebMouseEvent mouse_move =
+      CreateMouseEvent(blink::WebInputEvent::Type::kMouseMove, move_point);
 
   blink::WebInputEventResult move_result =
       frame_->GetWebFrame()->FrameWidget()->HandleInputEvent(
           blink::WebCoalescedInputEvent(mouse_move, ui::LatencyInfo()));
 
+  // Note: KNotHandled probably shouldn't result in an error.
   if (move_result == blink::WebInputEventResult::kNotHandled ||
       move_result == blink::WebInputEventResult::kHandledSuppressed) {
-    ACTOR_LOG() << "MouseMove event was not handled or suppressed";
-    std::move(callback).Run(MakeErrorResult());
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kMouseMoveEventSuppressed));
     return;
   }
   std::move(callback).Run(MakeOkResult());
@@ -71,37 +75,37 @@
   return absl::StrFormat("MouseMoveTool[%s]", ToDebugString(action_->target));
 }
 
-std::optional<gfx::PointF> MouseMoveTool::ValidateAndGetMovePoint() const {
-  if (!frame_->GetWebFrame()->FrameWidget()) {
-    ACTOR_LOG() << "RenderWidget is invalid.";
-    return std::nullopt;
+MouseMoveTool::ValidatedResult MouseMoveTool::Validate() const {
+  if (!frame_->GetWebFrame() || !frame_->GetWebFrame()->FrameWidget()) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kFrameWentAway));
   }
 
-  std::optional<gfx::PointF> move_point;
   if (action_->target->is_coordinate()) {
-    move_point.emplace(action_->target->get_coordinate());
-  } else {
-    blink::WebNode node =
-        GetNodeFromId(frame_.get(), action_->target->get_dom_node_id());
-    if (node.IsNull()) {
-      ACTOR_LOG() << "Cannot find dom node with id "
-                  << action_->target->get_dom_node_id();
-      return std::nullopt;
+    gfx::PointF move_point = gfx::PointF(action_->target->get_coordinate());
+    if (!IsPointWithinViewport(move_point, frame_.get())) {
+      return base::unexpected(
+          MakeResult(mojom::ActionResultCode::kCoordinatesOutOfBounds,
+                     absl::StrFormat("Point [%s]", move_point.ToString())));
     }
 
-    move_point = InteractionPointFromWebNode(node);
-    if (!move_point.has_value()) {
-      ACTOR_LOG() << "Cannot get center interaction point for node id";
-      return std::nullopt;
-    }
+    return move_point;
   }
 
-  if (!IsPointWithinViewport(move_point.value(), frame_.get())) {
-    ACTOR_LOG() << "Target is outside viewport";
-    return std::nullopt;
+  blink::WebNode node =
+      GetNodeFromId(frame_.get(), action_->target->get_dom_node_id());
+  if (node.IsNull()) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kInvalidDomNodeId));
   }
 
-  return move_point;
+  std::optional<gfx::PointF> move_point = InteractionPointFromWebNode(node);
+  if (!move_point.has_value()) {
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kElementOffscreen));
+  }
+
+  return *move_point;
 }
 
 }  // namespace actor
diff --git a/chrome/renderer/actor/mouse_move_tool.h b/chrome/renderer/actor/mouse_move_tool.h
index 6d6953f..aed1bf71 100644
--- a/chrome/renderer/actor/mouse_move_tool.h
+++ b/chrome/renderer/actor/mouse_move_tool.h
@@ -8,6 +8,7 @@
 #include <cstdint>
 
 #include "base/memory/raw_ref.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/renderer/actor/tool_base.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
@@ -30,7 +31,8 @@
   std::string DebugString() const override;
 
  private:
-  std::optional<gfx::PointF> ValidateAndGetMovePoint() const;
+  using ValidatedResult = base::expected<gfx::PointF, mojom::ActionResultPtr>;
+  ValidatedResult Validate() const;
 
   // Raw ref since this is owned by ToolExecutor whose lifetime is tied to
   // RenderFrame.
diff --git a/chrome/renderer/actor/scroll_tool.cc b/chrome/renderer/actor/scroll_tool.cc
index a51df50..dc09634 100644
--- a/chrome/renderer/actor/scroll_tool.cc
+++ b/chrome/renderer/actor/scroll_tool.cc
@@ -35,40 +35,70 @@
 ScrollTool::~ScrollTool() = default;
 
 void ScrollTool::Execute(ToolFinishedCallback callback) {
+  ValidatedResult validated_result = Validate();
+  if (!validated_result.has_value()) {
+    std::move(callback).Run(std::move(validated_result.error()));
+    return;
+  }
+
+  WebElement scrolling_element = validated_result->scroller;
+  gfx::Vector2dF offset_physical = validated_result->scroll_by_offset;
+
+  float physical_to_css = 1 / scrolling_element.GetEffectiveZoom();
+  gfx::Vector2dF offset_css =
+      gfx::ScaleVector2d(offset_physical, physical_to_css, physical_to_css);
+
+  gfx::Vector2dF start_offset_css = scrolling_element.GetScrollOffset();
+  scrolling_element.SetScrollOffset(start_offset_css + offset_css);
+
+  bool did_scroll = scrolling_element.GetScrollOffset() != start_offset_css;
+  std::move(callback).Run(
+      did_scroll
+          ? MakeOkResult()
+          : MakeResult(mojom::ActionResultCode::kScrollOffsetDidNotChange));
+}
+
+std::string ScrollTool::DebugString() const {
+  return absl::StrFormat("ScrollTool[%s;direction(%s);distance(%f)]",
+                         ToDebugString(action_->target),
+                         base::ToString(action_->direction), action_->distance);
+}
+
+ScrollTool::ValidatedResult ScrollTool::Validate() const {
   // The scroll distance should always be positive.
   if (action_->distance <= 0.0) {
-    ACTOR_LOG() << "Invalid scroll distance: " << action_->distance;
-    std::move(callback).Run(MakeErrorResult());
-    return;
+    return base::unexpected(MakeResult(
+        mojom::ActionResultCode::kArgumentsInvalid, "Negative Distance"));
   }
 
   WebLocalFrame* web_frame = frame_->GetWebFrame();
   if (!web_frame || !web_frame->FrameWidget()) {
-    ACTOR_LOG() << "WebLocalFrame or FrameWidget is null.";
-    std::move(callback).Run(MakeErrorResult());
-    return;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kFrameWentAway));
   }
 
   WebElement scrolling_element;
-
   if (!action_->target) {
     scrolling_element = web_frame->GetDocument().ScrollingElement();
+
+    if (scrolling_element.IsNull()) {
+      return base::unexpected(
+          MakeResult(mojom::ActionResultCode::kScrollNoScrollingElement));
+    }
   } else {
     if (action_->target->is_coordinate()) {
       NOTIMPLEMENTED() << "Coordinate-based target not yet supported.";
-      std::move(callback).Run(MakeErrorResult());
-      return;
+      return base::unexpected(MakeErrorResult());
     }
 
     int32_t dom_node_id = action_->target->get_dom_node_id();
     scrolling_element =
         GetNodeFromId(frame_.get(), dom_node_id).DynamicTo<WebElement>();
-  }
 
-  if (scrolling_element.IsNull()) {
-    ACTOR_LOG() << "Target element not found.";
-    std::move(callback).Run(MakeErrorResult());
-    return;
+    if (scrolling_element.IsNull()) {
+      return base::unexpected(
+          MakeResult(mojom::ActionResultCode::kInvalidDomNodeId));
+    }
   }
 
   gfx::Vector2dF offset_physical;
@@ -93,28 +123,13 @@
 
   if ((offset_physical.x() && !scrolling_element.IsUserScrollableX()) ||
       (offset_physical.y() && !scrolling_element.IsUserScrollableY())) {
-    ACTOR_LOG() << "Target " << scrolling_element
-                << " is not user scrollable for scroll offset "
-                << offset_physical.ToString();
-    std::move(callback).Run(MakeErrorResult());
-    return;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kScrollTargetNotUserScrollable,
+                   absl::StrFormat("ScrollingElement [%s]",
+                                   base::ToString(scrolling_element))));
   }
 
-  float physical_to_css = 1 / scrolling_element.GetEffectiveZoom();
-  gfx::Vector2dF offset_css =
-      gfx::ScaleVector2d(offset_physical, physical_to_css, physical_to_css);
-
-  gfx::Vector2dF start_offset_css = scrolling_element.GetScrollOffset();
-  scrolling_element.SetScrollOffset(start_offset_css + offset_css);
-
-  bool did_scroll = scrolling_element.GetScrollOffset() != start_offset_css;
-  std::move(callback).Run(did_scroll ? MakeOkResult() : MakeErrorResult());
-}
-
-std::string ScrollTool::DebugString() const {
-  return absl::StrFormat("ScrollTool[%s;direction(%s);distance(%f)]",
-                         ToDebugString(action_->target),
-                         base::ToString(action_->direction), action_->distance);
+  return ScrollerAndDistance{scrolling_element, offset_physical};
 }
 
 }  // namespace actor
diff --git a/chrome/renderer/actor/scroll_tool.h b/chrome/renderer/actor/scroll_tool.h
index a82da4f..b08bd5b 100644
--- a/chrome/renderer/actor/scroll_tool.h
+++ b/chrome/renderer/actor/scroll_tool.h
@@ -8,8 +8,11 @@
 #include <cstdint>
 
 #include "base/memory/raw_ref.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/renderer/actor/tool_base.h"
+#include "third_party/blink/public/web/web_element.h"
+#include "ui/gfx/geometry/vector2d_f.h"
 
 namespace content {
 class RenderFrame;
@@ -29,6 +32,15 @@
   std::string DebugString() const override;
 
  private:
+  struct ScrollerAndDistance {
+    blink::WebElement scroller;
+    gfx::Vector2dF scroll_by_offset;
+  };
+  using ValidatedResult =
+      base::expected<ScrollerAndDistance, mojom::ActionResultPtr>;
+
+  ValidatedResult Validate() const;
+
   // Raw ref since this is owned by ToolExecutor whose lifetime is tied to
   // RenderFrame.
   base::raw_ref<content::RenderFrame> frame_;
diff --git a/chrome/renderer/actor/select_tool.cc b/chrome/renderer/actor/select_tool.cc
index 55febb30..bda2638 100644
--- a/chrome/renderer/actor/select_tool.cc
+++ b/chrome/renderer/actor/select_tool.cc
@@ -35,19 +35,21 @@
 SelectTool::~SelectTool() = default;
 
 void SelectTool::Execute(ToolFinishedCallback callback) {
-  if (!Validate()) {
-    std::move(callback).Run(MakeErrorResult());
+  ValidatedResult validated_result = Validate();
+  if (!validated_result.has_value()) {
+    std::move(callback).Run(std::move(validated_result.error()));
     return;
   }
 
-  auto element = GetNodeFromId(frame_.get(), action_->target->get_dom_node_id())
-                     .To<WebSelectElement>();
-  auto value = WebString::FromUTF8(action_->value);
-  element.SetValue(value, /*send_events=*/true);
+  WebSelectElement select = validated_result.value().select;
+  WebString value = validated_result.value().option_value;
+  select.SetValue(value, /*send_events=*/true);
 
   // Check if the set value is now the current value in the <select>
-  if (element.Value() != value) {
-    std::move(callback).Run(MakeErrorResult());
+  if (select.Value() != value) {
+    std::move(callback).Run(
+        MakeResult(mojom::ActionResultCode::kSelectUnexpectedValue,
+                   absl::StrFormat("ValueAfter [%s]", select.Value().Utf8())));
     return;
   }
 
@@ -59,48 +61,57 @@
                          ToDebugString(action_->target), action_->value);
 }
 
-bool SelectTool::Validate() const {
+SelectTool::ValidatedResult SelectTool::Validate() const {
   if (!frame_->GetWebFrame()->FrameWidget()) {
-    return false;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kFrameWentAway));
   }
 
   mojom::ToolTargetPtr& target = action_->target;
 
   if (target->is_coordinate()) {
     NOTIMPLEMENTED() << "Coordinate-based target is not yet supported.";
-    return false;
+    return base::unexpected(MakeErrorResult());
   }
 
   int32_t dom_node_id = target->get_dom_node_id();
 
   WebNode node = GetNodeFromId(frame_.get(), dom_node_id);
   if (node.IsNull()) {
-    ACTOR_LOG() << "DOM Node not found for id: " << dom_node_id;
-    return false;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kInvalidDomNodeId));
   }
 
   WebSelectElement select = node.DynamicTo<WebSelectElement>();
   if (!select) {
-    ACTOR_LOG() << "Target element is not a <select>: " << node;
-    return false;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kSelectInvalidElement,
+                   absl::StrFormat("Element [%s]", base::ToString(node))));
   }
 
   if (!select.IsEnabled()) {
-    ACTOR_LOG() << "Target element is disabled.";
-    return false;
+    return base::unexpected(
+        MakeResult(mojom::ActionResultCode::kElementDisabled,
+                   absl::StrFormat("Element [%s]", base::ToString(select))));
   }
 
   WebString value(WebString::FromUTF8(action_->value));
   for (const auto& e : select.GetListItems()) {
     auto option = e.DynamicTo<WebOptionElement>();
-    if (option && option.Value() == value && option.IsEnabled()) {
-      return true;
+    if (option && option.Value() == value) {
+      if (!option.IsEnabled()) {
+        return base::unexpected(MakeResult(
+            mojom::ActionResultCode::kSelectOptionDisabled,
+            absl::StrFormat("SelectElement[%s] OptionElement [%s]",
+                            base::ToString(select), base::ToString(option))));
+      }
+      return TargetAndValue{select, value};
     }
   }
 
-  ACTOR_LOG() << "Requested option [" << action_->value
-              << "] is not available in target: " << select;
-  return false;
+  return base::unexpected(
+      MakeResult(mojom::ActionResultCode::kSelectNoSuchOption,
+                 absl::StrFormat("SelectElement[%s]", base::ToString(select))));
 }
 
 }  // namespace actor
diff --git a/chrome/renderer/actor/select_tool.h b/chrome/renderer/actor/select_tool.h
index e454ebc..b1b413f8f 100644
--- a/chrome/renderer/actor/select_tool.h
+++ b/chrome/renderer/actor/select_tool.h
@@ -6,8 +6,11 @@
 #define CHROME_RENDERER_ACTOR_SELECT_TOOL_H_
 
 #include "base/memory/raw_ref.h"
+#include "base/types/expected.h"
 #include "chrome/common/actor.mojom.h"
 #include "chrome/renderer/actor/tool_base.h"
+#include "third_party/blink/public/platform/web_string.h"
+#include "third_party/blink/public/web/web_select_element.h"
 
 namespace content {
 class RenderFrame;
@@ -26,7 +29,13 @@
   std::string DebugString() const override;
 
  private:
-  bool Validate() const;
+  struct TargetAndValue {
+    blink::WebSelectElement select;
+    blink::WebString option_value;
+  };
+  using ValidatedResult =
+      base::expected<TargetAndValue, mojom::ActionResultPtr>;
+  ValidatedResult Validate() const;
 
   // Raw ref since this is owned by ToolExecutor whose lifetime is tied to
   // RenderFrame.
diff --git a/chrome/renderer/actor/tool_utils.h b/chrome/renderer/actor/tool_utils.h
index 2b7edb05..1468624 100644
--- a/chrome/renderer/actor/tool_utils.h
+++ b/chrome/renderer/actor/tool_utils.h
@@ -41,6 +41,7 @@
                    const blink::WebNode& node);
 
 // `point` is relative to the viewport origin.
+// Note: this doesn't account for pinch-zoom.
 bool IsPointWithinViewport(const gfx::PointF& point,
                            const content::RenderFrame& frame);
 
diff --git a/chrome/renderer/actor/type_tool.cc b/chrome/renderer/actor/type_tool.cc
index ecf12c1d..f554e12 100644
--- a/chrome/renderer/actor/type_tool.cc
+++ b/chrome/renderer/actor/type_tool.cc
@@ -261,7 +261,7 @@
     gfx::PointF click_point(target->get_coordinate());
     if (!IsPointWithinViewport(click_point, frame_.get())) {
       std::move(callback).Run(
-          MakeResult(mojom::ActionResultCode::kClickInvalidPoint));
+          MakeResult(mojom::ActionResultCode::kCoordinatesOutOfBounds));
       return;
     }
     mojom::ActionResultPtr result = CreateAndDispatchClick(
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 795ebb53..98f4eec 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -15,6 +15,7 @@
 import("//chrome/browser/downgrade/buildflags.gni")
 import("//chrome/browser/page_load_metrics/integration_tests/jsdeps.gni")
 import("//chrome/browser/page_load_metrics/integration_tests/sources.gni")
+import("//chrome/browser/sync/test/integration/sync_integration_tests.gni")
 import("//chrome/common/features.gni")
 import("//chrome/services/speech/buildflags/buildflags.gni")
 import("//chrome/test/include_js_tests.gni")
@@ -148,6 +149,7 @@
   deps = [
     "//chrome/browser:global_features",
     "//chrome/browser/background:background",
+    "//chrome/browser/profiles/keep_alive",
     "//chrome/browser/regional_capabilities",
     "//chrome/browser/status_icons:status_icons",
     "//chrome/browser/ui:ui_features",
@@ -2249,6 +2251,7 @@
       "//chrome/browser/privacy_sandbox:browser_tests",
       "//chrome/browser/profiles",
       "//chrome/browser/profiles:profile_util",
+      "//chrome/browser/profiles/keep_alive",
       "//chrome/browser/profiling_host:profiling_browsertests",
       "//chrome/browser/promos:utils",
       "//chrome/browser/reading_list",
@@ -6643,6 +6646,7 @@
     "//chrome/browser/privacy_sandbox:unit_tests",
     "//chrome/browser/privacy_sandbox/incognito:unit_tests",
     "//chrome/browser/profiles",
+    "//chrome/browser/profiles/keep_alive",
 
     # TODO(413315837): Remove this dep when privacy_sandbox_service_impl_unittest.cc
     # gets build off of c/b/privacy_sandbox/BUILD.gn.
@@ -8956,6 +8960,7 @@
       "../browser/extensions/component_loader_unittest.cc",
       "../browser/extensions/corrupted_extension_reinstaller_unittest.cc",
       "../browser/extensions/cws_info_service_unittest.cc",
+      "../browser/extensions/extension_action_runner_unittest.cc",
       "../browser/extensions/extension_garbage_collector_unittest.cc",
       "../browser/extensions/extension_install_prompt_unittest.cc",
       "../browser/extensions/extension_management_unittest.cc",
@@ -9127,7 +9132,6 @@
       "../browser/extensions/error_console/error_console_unittest.cc",
       "../browser/extensions/event_router_forwarder_unittest.cc",
       "../browser/extensions/extension_action_icon_factory_unittest.cc",
-      "../browser/extensions/extension_action_runner_unittest.cc",
       "../browser/extensions/extension_allowlist_unittest.cc",
       "../browser/extensions/extension_context_menu_model_unittest.cc",
       "../browser/extensions/extension_error_controller_unittest.cc",
@@ -11028,6 +11032,7 @@
       "//chrome/browser/prefs",
       "//chrome/browser/prefs:util",
       "//chrome/browser/privacy_sandbox:interactive_ui_tests",
+      "//chrome/browser/profiles/keep_alive",
       "//chrome/browser/ui/views/new_tab_footer:new_tab_footer",
       "//chrome/browser/ui/webui/access_code_cast:interactive_ui_tests",
 
@@ -12127,10 +12132,131 @@
 }
 
 if (!is_android) {
-  test("sync_integration_tests") {
-    use_xvfb = use_xvfb_in_this_config
-    deps =
-        [ "//chrome/browser/sync/test/integration:sync_integration_tests_impl" ]
+  if (is_win) {
+    # TODO(crbug.com/419089901): Figure out why the below
+    # sync_integration_tests does not work on Windows.
+    test("sync_integration_tests") {
+      sources = sync_integration_tests_sources
+
+      data = [
+        "//chrome/test/data/password/",
+        "//chrome/test/data/sync/",
+        "//chrome/test/data/webapps_integration/",
+        "//chrome/test/data/web_apps/",
+        "//chrome/test/data/banners/",
+        "//net/tools/testserver/",
+        "//third_party/pywebsocket3/src/mod_pywebsocket/",
+      ]
+
+      # TODO(phajdan.jr): Only temporary, to make transition easier.
+      defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+
+      deps = [
+        ":browser_tests_runner",
+        ":sync_integration_test_support",
+        ":test_support",
+        ":test_support_ui",
+        "//chrome:packed_resources",
+        "//chrome:resources",
+        "//chrome:strings",
+        "//chrome/app:chrome_dll_resources",
+        "//chrome/app:command_ids",
+        "//chrome/browser/affiliations",
+        "//chrome/browser/apps/link_capturing",
+        "//chrome/browser/autofill",
+        "//chrome/browser/browsing_data:constants",
+        "//chrome/browser/metrics/desktop_session_duration",
+        "//chrome/browser/plus_addresses",
+        "//chrome/browser/prefs",
+        "//chrome/browser/reading_list",
+        "//chrome/browser/search_engines",
+        "//chrome/browser/sync",
+        "//chrome/browser/themes",
+        "//chrome/browser/ui:browser_navigator_params_headers",
+        "//chrome/browser/ui:ui_features",
+        "//chrome/browser/web_applications:features",
+        "//chrome/browser/web_applications:web_applications_test_support",
+        "//chrome/common",
+        "//chrome/renderer",
+        "//components/app_constants",
+        "//components/bookmarks/browser",
+        "//components/bookmarks/test",
+        "//components/browser_sync",
+        "//components/commerce/core:feature_list",
+        "//components/consent_auditor",
+        "//components/data_sharing/public",
+        "//components/favicon/core",
+        "//components/history/content/browser",
+        "//components/history/core/common",
+        "//components/password_manager/core/browser/sharing",
+        "//components/plus_addresses",
+        "//components/plus_addresses:test_support",
+        "//components/plus_addresses/settings",
+        "//components/plus_addresses/settings:test_support",
+        "//components/plus_addresses/webdata",
+        "//components/power_bookmarks/common:test_support",
+        "//components/power_bookmarks/core",
+        "//components/reading_list/core",
+        "//components/reading_list/core:test_support",
+        "//components/saved_tab_groups/internal:tab_group_sync_bridge",
+        "//components/saved_tab_groups/test_support",
+        "//components/search_engines",
+        "//components/send_tab_to_self",
+        "//components/spellcheck/common",
+        "//components/sync",
+        "//components/sync:test_support",
+        "//components/sync_bookmarks",
+        "//components/sync_device_info:test_support",
+        "//components/sync_preferences:common_syncable_prefs_database",
+        "//components/trusted_vault",
+        "//components/trusted_vault:test_support",
+        "//components/undo",
+        "//components/version_info",
+        "//components/webapps/browser",
+        "//components/webapps/common",
+        "//components/webauthn/core/browser",
+        "//components/webauthn/core/browser:passkey_model",
+        "//testing/gmock",
+        "//testing/gtest",
+        "//third_party/blink/public:blink",
+        "//third_party/icu",
+        "//third_party/leveldatabase",
+      ]
+
+      data_deps = [
+        "//testing:test_scripts_shared",
+        "//testing/buildbot/filters:sync_integration_tests_filters",
+        "//third_party/angle:includes",
+      ]
+
+      data_deps += [ "//chrome:packed_resources" ]
+
+      deps += [
+        "//chrome:other_version",
+        "//third_party/wtl",
+        "//ui/resources",
+      ]
+
+      if (toolkit_views) {
+        deps += [ "//ui/views" ]
+      }
+      if (enable_printing) {
+        deps += [ "//printing" ]
+      }
+      if (enable_glic) {
+        deps += [
+          "//chrome/browser/glic",
+          "//chrome/browser/glic/test_support",
+        ]
+      }
+    }
+  } else {
+    test("sync_integration_tests") {
+      use_xvfb = use_xvfb_in_this_config
+      deps = [
+        "//chrome/browser/sync/test/integration:sync_integration_tests_impl",
+      ]
+    }
   }
 
   test("sync_performance_tests") {
diff --git a/chrome/test/data/pdf/ink2_text_box_test.ts b/chrome/test/data/pdf/ink2_text_box_test.ts
index bb7a580..f077c11 100644
--- a/chrome/test/data/pdf/ink2_text_box_test.ts
+++ b/chrome/test/data/pdf/ink2_text_box_test.ts
@@ -780,8 +780,10 @@
   },
 
   async function testEscapeAndDelete() {
-    // Initialize to a 100x100 box at 400, 300.
-    initializeBox(100, 100, 400, 300);
+    viewport.setZoom(1.0);
+    // Initialize to a 100x100 box at 10, 10. Place the box in the top corner
+    // so that the viewport won't scroll when it is focused.
+    initializeBox(100, 100, 10, 10);
     await microtasksFinished();
     chrome.test.assertFalse(textbox.hidden);
     chrome.test.assertTrue(isVisible(textbox));
@@ -791,7 +793,7 @@
     // Messages to the backend are in page coordinates. Convert to page
     // coordinates since this is used for validating the commit message.
     testAnnotation
-        .textBoxRect = {locationX: 195, locationY: 147, height: 50, width: 50};
+        .textBoxRect = {locationX: 0, locationY: 7, height: 100, width: 100};
 
     mockPlugin.clearMessages();
     textbox.$.textbox.value = testAnnotation.text;
@@ -811,7 +813,7 @@
 
     // If the user is dragging, escape commits the annotation at the start
     // location and hides the box.
-    initializeBox(100, 100, 400, 300);
+    initializeBox(100, 100, 10, 10);
     await microtasksFinished();
     chrome.test.assertTrue(isVisible(textbox));
     mockPlugin.clearMessages();
@@ -833,7 +835,7 @@
     verifyFinishTextAnnotationMessage(testAnnotation);
 
     // Escape without any modification hides the box but doesn't send a message.
-    initializeBox(100, 100, 400, 300);
+    initializeBox(100, 100, 10, 10);
     await microtasksFinished();
     chrome.test.assertTrue(isVisible(textbox));
     mockPlugin.clearMessages();
@@ -847,7 +849,7 @@
     // Initialize to a 100x100 box at 400, 300 with some text content. Use
     // "Delete" to clear all the content, which will trigger a message since
     // this is for an existing annotation.
-    initializeBox(100, 100, 400, 300, true);
+    initializeBox(100, 100, 10, 10, true);
     await microtasksFinished();
     chrome.test.assertFalse(textbox.hidden);
     chrome.test.assertTrue(isVisible(textbox));
@@ -940,45 +942,47 @@
     chrome.test.succeed();
   },
 
-  /*
-    // TODO(crbug.com/418642851): Deflake and re-enable.
-    async function testMoveViewportOnFocus() {
-      // Ensure the viewport is scrollable by zooming in.
-      viewport.setZoom(2.0);
+  async function testMoveViewportOnFocus() {
+    // Ensure the viewport is scrollable by zooming in. Also ensure it is
+    // located top/left, where we expect it.
+    viewport.setZoom(2.0);
+    viewport.goToPageAndXy(0, 0, 0);
 
-      // Using manager initialization to get correct coordinates for the zoom
-      // level.
-      manager.initializeTextAnnotation({x: 20, y: 20});
-      await microtasksFinished();
-      const styles = getComputedStyle(textbox);
-      chrome.test.assertEq('20px', styles.getPropertyValue('left'));
-      chrome.test.assertEq('20px', styles.getPropertyValue('top'));
+    // Using manager initialization to get correct coordinates for the zoom
+    // level.
+    manager.initializeTextAnnotation({x: 20, y: 20});
+    await microtasksFinished();
+    const styles = getComputedStyle(textbox);
+    chrome.test.assertEq('20px', styles.getPropertyValue('left'));
+    chrome.test.assertEq('20px', styles.getPropertyValue('top'));
 
-      // Scroll away from the textbox. Note this method accepts page
-    coordinates.
-      // Scrolling by 35 in page coordinates scrolls by 70 in screen coordinates
-      // at 2x zoom.
-      viewport.goToPageAndXy(0, 35, 35);
-      await microtasksFinished();
-      chrome.test.assertEq('-50px', styles.getPropertyValue('left'));
-      chrome.test.assertEq('-50px', styles.getPropertyValue('top'));
+    // Scroll away from the textbox. Note this method accepts page coordinates.
+    // Scrolling by 35 in page coordinates scrolls by 70 in screen coordinates
+    // at 2x zoom. Blurring the textbox in case it is still holding focus, to
+    // simulate how scroll would work if the user scrolled by clicking on the
+    // scrollbars, or by moving focus to the plugin and scrolling with the
+    // keyboard. This also ensures the textbox gets a focus event when focused
+    // later.
+    manager.dispatchEvent(new CustomEvent('blur-text-box'));
+    viewport.goToPageAndXy(0, 35, 35);
+    await microtasksFinished();
+    chrome.test.assertEq('-50px', styles.getPropertyValue('left'));
+    chrome.test.assertEq('-50px', styles.getPropertyValue('top'));
 
-      // Focus the textbox, which should cause the manager to scroll the
-    viewport.
-      // This won't actually scroll the viewport in the test, since the plugin
-      // won't send a corresponding scroll message back.
-      mockPlugin.clearMessages();
-      textbox.$.textbox.focus();
-      const syncScrollMessage = mockPlugin.findMessage('syncScrollToRemote');
-      chrome.test.assertTrue(syncScrollMessage !== undefined);
-      chrome.test.assertEq('syncScrollToRemote', syncScrollMessage.type);
-      // The box is at 20, 20 in viewport coordinates, and the viewport is 100px
-      // wide. The manager specifies a margin of 10% of the viewport when
-      // scrolling.
-      chrome.test.assertEq(10, syncScrollMessage.x);
-      chrome.test.assertEq(10, syncScrollMessage.y);
+    // Focus the textbox, which should cause the manager to scroll the viewport.
+    // This won't actually scroll the viewport in the test, since the plugin
+    // won't send a corresponding scroll message back.
+    mockPlugin.clearMessages();
+    textbox.focus();
+    const syncScrollMessage = mockPlugin.findMessage('syncScrollToRemote');
+    chrome.test.assertTrue(syncScrollMessage !== undefined);
+    chrome.test.assertEq('syncScrollToRemote', syncScrollMessage.type);
+    // The box is at 20, 20 in viewport coordinates, and the viewport is 100px
+    // wide. The manager specifies a margin of 10% of the viewport when
+    // scrolling.
+    chrome.test.assertEq(10, syncScrollMessage.x);
+    chrome.test.assertEq(10, syncScrollMessage.y);
 
-      chrome.test.succeed();
-    },
-  */
+    chrome.test.succeed();
+  },
 ]);
diff --git a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_context_menu_test.ts b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_context_menu_test.ts
index a360b58..9cc56ed6 100644
--- a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_context_menu_test.ts
+++ b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_context_menu_test.ts
@@ -122,7 +122,7 @@
   test('ShowsMenuItemsForSingleSelectUrl', async () => {
     const selection = [service.findBookmarkWithId('3')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, false, false);
+        new MouseEvent('click'), selection, false, false, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
@@ -161,7 +161,7 @@
   test('ShowsMenuItemsForSingleSelectFolder', async () => {
     const selection = [service.findBookmarkWithId('5')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, false, false);
+        new MouseEvent('click'), selection, false, false, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
@@ -202,7 +202,7 @@
     const selection =
         [service.findBookmarkWithId('3')!, service.findBookmarkWithId('4')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, false, false);
+        new MouseEvent('click'), selection, false, false, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
@@ -238,7 +238,7 @@
   test('ShowsMenuItemsForPriceTracking', async () => {
     const selection = [service.findBookmarkWithId('4')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, true, true);
+        new MouseEvent('click'), selection, true, true, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
@@ -285,7 +285,7 @@
 
     const selection = [service.findBookmarkWithId('5')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, false, false);
+        new MouseEvent('click'), selection, false, false, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
@@ -326,7 +326,7 @@
 
     const selection = [service.findBookmarkWithId('3')!];
     powerBookmarksContextMenu.showAtPosition(
-        new MouseEvent('click'), selection, false, false);
+        new MouseEvent('click'), selection, false, false, false);
 
     await waitAfterNextRender(powerBookmarksContextMenu);
 
diff --git a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_test.ts b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_test.ts
index 2ca7602e..cf047bd 100644
--- a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_test.ts
+++ b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_test.ts
@@ -766,7 +766,7 @@
 
       // Open the context menu.
       contextMenu.showAtPosition(
-          new MouseEvent('click'), [bookmark], false, false);
+          new MouseEvent('click'), [bookmark], false, false, false);
       await waitAfterNextRender(contextMenu);
 
       // Get the edit option in the menu.
@@ -801,7 +801,7 @@
 
       // Open the context menu.
       contextMenu.showAtPosition(
-          new MouseEvent('click'), bookmarks, false, false);
+          new MouseEvent('click'), bookmarks, false, false, false);
       await waitAfterNextRender(contextMenu);
 
       // Get the move option in the menu.
diff --git a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_transport_mode_test.ts b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_transport_mode_test.ts
index 3561ac7..c96476f6 100644
--- a/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_transport_mode_test.ts
+++ b/chrome/test/data/webui/side_panel/bookmarks/power_bookmarks_list_transport_mode_test.ts
@@ -79,7 +79,8 @@
     // Open the context menu.
     contextMenu.showAtPosition(
         new MouseEvent('click'),
-        [getBookmarkWithId(powerBookmarksList, bookmarkId)!], false, false);
+        [getBookmarkWithId(powerBookmarksList, bookmarkId)!], false, false,
+        false);
     await waitAfterNextRender(contextMenu);
 
     // Get the edit option in the menu.
@@ -115,7 +116,7 @@
 
     // Open the context menu.
     contextMenu.showAtPosition(
-        new MouseEvent('click'), bookmarks, false, false);
+        new MouseEvent('click'), bookmarks, false, false, false);
     await waitAfterNextRender(contextMenu);
 
     // Get the move option in the menu.
diff --git a/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts b/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts
index 1f3867e..4eac5c95 100644
--- a/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts
+++ b/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts
@@ -23,6 +23,7 @@
   constructor() {
     super([
       'getActiveUrl',
+      'isActiveTabInSplit',
       'bookmarkCurrentTabInFolder',
       'openBookmark',
       'contextMenuOpenBookmarkInNewTab',
@@ -63,6 +64,11 @@
     return Promise.resolve('http://www.test.com');
   }
 
+  isActiveTabInSplit() {
+    this.methodCalled('isActiveTabInSplit');
+    return Promise.resolve(false);
+  }
+
   bookmarkCurrentTabInFolder() {
     this.methodCalled('bookmarkCurrentTabInFolder');
   }
diff --git a/chromeos/ui/base/chromeos_ui_constants.h b/chromeos/ui/base/chromeos_ui_constants.h
index be0c366..f7c8e27 100644
--- a/chromeos/ui/base/chromeos_ui_constants.h
+++ b/chromeos/ui/base/chromeos_ui_constants.h
@@ -11,29 +11,29 @@
 namespace chromeos {
 
 // Radius of the header's top corners when the window is restored.
-constexpr int kTopCornerRadiusWhenRestored = 2;
+inline constexpr int kTopCornerRadiusWhenRestored = 2;
 
 // Rounded corner radius for Pip window.
-constexpr int kPipRoundedCornerRadius = 8;
+inline constexpr int kPipRoundedCornerRadius = 12;
 
 // In the window corners, the resize areas don't actually expand bigger, but the
 // 16 px at the end of each edge triggers diagonal resizing.
-constexpr int kResizeAreaCornerSize = 16;
+inline constexpr int kResizeAreaCornerSize = 16;
 
 // Ash windows do not have a traditional visible window frame. Window content
 // extends to the edge of the window. We consider a small region outside the
 // window bounds and an even smaller region overlapping the window to be the
 // "non-client" area and use it for resizing.
-constexpr int kResizeOutsideBoundsSize = 6;
-constexpr int kResizeOutsideBoundsScaleForTouch = 5;
+inline constexpr int kResizeOutsideBoundsSize = 6;
+inline constexpr int kResizeOutsideBoundsScaleForTouch = 5;
 
-constexpr int kResizeInsideBoundsSize = 1;
+inline constexpr int kResizeInsideBoundsSize = 1;
 
 // The default frame color.
-constexpr SkColor kDefaultFrameColor = SkColorSetRGB(0xFD, 0xFE, 0xFF);
+inline constexpr SkColor kDefaultFrameColor = SkColorSetRGB(0xFD, 0xFE, 0xFF);
 
 // The default duration for animating frame color changes.
-constexpr base::TimeDelta kDefaultFrameColorChangeAnimationDuration =
+inline constexpr base::TimeDelta kDefaultFrameColorChangeAnimationDuration =
     base::Milliseconds(240);
 
 enum ViewID {
diff --git a/clank b/clank
index c838b66..d9ce8c8 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit c838b66f21f8a43e135544953c74e0f84cbff0b4
+Subproject commit d9ce8c8ec347c883ca2eaa2b3a62a0d9ad02a1e7
diff --git a/components/autofill/ios/browser/autofill_driver_ios.mm b/components/autofill/ios/browser/autofill_driver_ios.mm
index 188dc671..5c6d3fd 100644
--- a/components/autofill/ios/browser/autofill_driver_ios.mm
+++ b/components/autofill/ios/browser/autofill_driver_ios.mm
@@ -499,8 +499,10 @@
       for (const auto& remote_token : form.child_frames()) {
         if (std::optional<LocalFrameToken> local_token =
                 driver.Resolve(remote_token.token)) {
-          FromWebStateAndLocalFrameToken(webstate_ptr, *local_token)
-              ->ClearLastInteractedForm();
+          if (AutofillDriverIOS* child_driver =
+                  FromWebStateAndLocalFrameToken(webstate_ptr, *local_token)) {
+            child_driver->ClearLastInteractedForm();
+          }
         }
       }
     }
diff --git a/components/autofill/ios/form_util/resources/child_frame_registration_lib.ts b/components/autofill/ios/form_util/resources/child_frame_registration_lib.ts
index fc83856..86d3460 100644
--- a/components/autofill/ios/form_util/resources/child_frame_registration_lib.ts
+++ b/components/autofill/ios/form_util/resources/child_frame_registration_lib.ts
@@ -110,7 +110,7 @@
       payload.source?.postMessage({
         command: REGISTER_AS_CHILD_FRAME_ACK,
         remoteFrameId: remoteId,
-      });
+      }, {targetOrigin: payload.origin});
     }
   } else if (command === REGISTER_AS_CHILD_FRAME_ACK) {
     const remoteId = payload.data?.remoteFrameId;
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
index ef341bf..c2cd8d92 100644
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -580,9 +580,6 @@
       <message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_TITLE" desc="Label shown on a dialog that allows users to turn off third-party cookie blocking for a specific site.">
         Site not working?
       </message>
-      <message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_PERMANENT" desc="Descriptive text in the Page Info UI explaining the trade-off of allowing third-party cookies for this site, a change that will not automatically expire in the future.">
-        Try allowing third-party cookies, which means less protection but site features are more likely to work
-      </message>
       <message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_TRACKING_PROTECTION" desc="Descriptive text in the Page Info UI explaining the trade-off of temporarily allowing third-party cookies for this site, a change that will automatically expire in the future.">
         Try temporarily allowing third-party cookies, which means less browsing protection but site features are more likely to work as expected.
       </message>
diff --git a/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_PERMANENT.png.sha1 b/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_PERMANENT.png.sha1
deleted file mode 100644
index 0796c36..0000000
--- a/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_PERMANENT.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-689a779cadf1f7d046b509d313aa7eeab9e41012
\ No newline at end of file
diff --git a/components/browser_ui/styles/android/java/src/org/chromium/components/browser_ui/styles/SemanticColorUtils.java b/components/browser_ui/styles/android/java/src/org/chromium/components/browser_ui/styles/SemanticColorUtils.java
index cfd7862..f52b747 100644
--- a/components/browser_ui/styles/android/java/src/org/chromium/components/browser_ui/styles/SemanticColorUtils.java
+++ b/components/browser_ui/styles/android/java/src/org/chromium/components/browser_ui/styles/SemanticColorUtils.java
@@ -203,6 +203,12 @@
         return resolve(R.attr.colorSecondaryContainer, context);
     }
 
+    /** Returns the semantic color values that correspond to colorSecondaryContainer. */
+    public static @ColorInt int getColorSecondaryContainer(Context context) {
+        return resolve(R.attr.colorSecondaryContainer, context);
+    }
+
+    /** Returns the semantic color values that correspond to colorOnSecondaryContainer. */
     public static @ColorInt int getColorOnSecondaryContainer(Context context) {
         return resolve(R.attr.colorOnSecondaryContainer, context);
     }
diff --git a/components/browser_ui/util/android/BUILD.gn b/components/browser_ui/util/android/BUILD.gn
index c2ab19c..21dffe3 100644
--- a/components/browser_ui/util/android/BUILD.gn
+++ b/components/browser_ui/util/android/BUILD.gn
@@ -18,13 +18,13 @@
     "java/src/org/chromium/components/browser_ui/util/DrawableUtils.java",
     "java/src/org/chromium/components/browser_ui/util/FirstDrawDetector.java",
     "java/src/org/chromium/components/browser_ui/util/GlobalDiscardableReferencePool.java",
-    "java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListener.java",
     "java/src/org/chromium/components/browser_ui/util/ToolbarUtils.java",
     "java/src/org/chromium/components/browser_ui/util/TraceEventVectorDrawableCompat.java",
     "java/src/org/chromium/components/browser_ui/util/date/CalendarFactory.java",
     "java/src/org/chromium/components/browser_ui/util/date/CalendarUtils.java",
     "java/src/org/chromium/components/browser_ui/util/date/StringUtils.java",
     "java/src/org/chromium/components/browser_ui/util/motion/MotionEventInfo.java",
+    "java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListener.java",
   ]
 
   deps = [
@@ -61,6 +61,13 @@
   ]
 }
 
+android_library("test_support_java") {
+  testonly = true
+
+  sources = [ "test/java/src/org/chromium/components/browser_ui/util/motion/MotionEventTestUtils.java" ]
+  deps = [ ":java" ]
+}
+
 robolectric_library("junit") {
   sources = [
     "java/src/org/chromium/components/browser_ui/util/BitmapCacheTest.java",
@@ -85,12 +92,13 @@
   sources = [
     "java/src/org/chromium/components/browser_ui/util/AvatarGeneratorTest.java",
     "java/src/org/chromium/components/browser_ui/util/FirstDrawDetectorTest.java",
-    "java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListenerTest.java",
+    "java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListenerTest.java",
   ]
   deps = [
+    ":java",
+    ":test_support_java",
     "//base:base_java",
     "//base:base_java_test_support",
-    "//components/browser_ui/util/android:java",
     "//content/public/test/android:content_java_test_support",
     "//third_party/androidx:androidx_test_runner_java",
     "//third_party/junit",
diff --git a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListener.java b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListener.java
deleted file mode 100644
index b187a2f..0000000
--- a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListener.java
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.components.browser_ui.util;
-
-import android.annotation.SuppressLint;
-import android.view.GestureDetector;
-import android.view.MotionEvent;
-import android.view.View;
-
-import org.chromium.build.annotations.NullMarked;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
-import org.chromium.ui.util.MotionEventUtils;
-
-/**
- * A {@link View.OnTouchListener} to detect a click from peripherals.
- *
- * <p>If a {@link MotionEvent} comes from a peripheral, this listener will consume it. Then, if the
- * event completes a click action, the {@link OnPeripheralClickRunnable} will be run.
- *
- * <p>If a {@link MotionEvent} doesn't come from a peripheral, this listener is a no-op. It won't
- * consume or interpret the event.
- */
-@NullMarked
-public final class OnPeripheralClickListener implements View.OnTouchListener {
-
-    private final GestureDetector mGestureDetector;
-
-    public OnPeripheralClickListener(
-            View view, OnPeripheralClickRunnable onPeripheralClickRunnable) {
-        mGestureDetector =
-                new GestureDetector(
-                        view.getContext(),
-                        new GestureDetector.SimpleOnGestureListener() {
-
-                            @Override
-                            public boolean onSingleTapUp(MotionEvent e) {
-                                onPeripheralClickRunnable.run(MotionEventInfo.fromMotionEvent(e));
-                                return true;
-                            }
-                        });
-    }
-
-    @SuppressLint("ClickableViewAccessibility")
-    @Override
-    public boolean onTouch(View v, MotionEvent event) {
-        if (!MotionEventUtils.isMouseEvent(event)) {
-            return false;
-        }
-
-        mGestureDetector.onTouchEvent(event);
-        return true;
-    }
-
-    public interface OnPeripheralClickRunnable {
-
-        /**
-         * Called when a peripheral click is detected.
-         *
-         * @param triggeringMotion {@link MotionEventInfo} that triggered the click.
-         */
-        void run(MotionEventInfo triggeringMotion);
-    }
-}
diff --git a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListenerTest.java b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListenerTest.java
deleted file mode 100644
index 8573244..0000000
--- a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/OnPeripheralClickListenerTest.java
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.components.browser_ui.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.os.SystemClock;
-import android.view.InputDevice;
-import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
-import android.view.View;
-import android.view.ViewGroup.LayoutParams;
-import android.widget.TextView;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.BaseActivityTestRule;
-import org.chromium.base.test.BaseJUnit4ClassRunner;
-import org.chromium.base.test.util.Batch;
-import org.chromium.build.annotations.NullMarked;
-import org.chromium.components.browser_ui.util.OnPeripheralClickListener.OnPeripheralClickRunnable;
-import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
-import org.chromium.ui.test.util.BlankUiTestActivity;
-
-@NullMarked
-@RunWith(BaseJUnit4ClassRunner.class)
-@Batch(Batch.UNIT_TESTS)
-public class OnPeripheralClickListenerTest {
-
-    @Rule
-    public final BaseActivityTestRule<BlankUiTestActivity> mActivityRule =
-            new BaseActivityTestRule<>(BlankUiTestActivity.class);
-
-    @Test
-    @SmallTest
-    public void testClickFromTouchScreen() {
-        View testView = setUpTestView();
-        ThreadUtils.runOnUiThreadBlocking(
-                () -> {
-                    // Setup
-                    TestOnPeripheralClickRunnable onPeripheralClickRunnable =
-                            new TestOnPeripheralClickRunnable();
-                    testView.setOnTouchListener(
-                            new OnPeripheralClickListener(testView, onPeripheralClickRunnable));
-
-                    // Act
-                    long downMotionTime = SystemClock.uptimeMillis();
-                    boolean downMotionHandled =
-                            testView.dispatchTouchEvent(
-                                    createMotionEvent(
-                                            downMotionTime,
-                                            /* eventTime= */ downMotionTime,
-                                            MotionEvent.ACTION_DOWN,
-                                            /* x= */ 0,
-                                            /* y= */ 0,
-                                            InputDevice.SOURCE_TOUCHSCREEN,
-                                            MotionEvent.TOOL_TYPE_FINGER));
-                    boolean upMotionHandled =
-                            testView.dispatchTouchEvent(
-                                    createMotionEvent(
-                                            downMotionTime,
-                                            /* eventTime= */ downMotionTime + 50,
-                                            MotionEvent.ACTION_UP,
-                                            /* x= */ 0,
-                                            /* y= */ 0,
-                                            InputDevice.SOURCE_TOUCHSCREEN,
-                                            MotionEvent.TOOL_TYPE_FINGER));
-
-                    // Assert:
-                    // (1) OnPeripheralClickListener shouldn't handle any MotionEvent that wasn't
-                    //     from a peripheral;
-                    // (2) OnPeripheralClickRunnable shouldn't be run.
-                    assertFalse(downMotionHandled);
-                    assertFalse(upMotionHandled);
-                    assertEquals(0, onPeripheralClickRunnable.mNumTimesRun);
-                });
-    }
-
-    @Test
-    @SmallTest
-    public void testClickFromMouse() {
-        View testView = setUpTestView();
-        ThreadUtils.runOnUiThreadBlocking(
-                () -> {
-                    // Setup
-                    TestOnPeripheralClickRunnable onPeripheralClickRunnable =
-                            new TestOnPeripheralClickRunnable();
-                    testView.setOnTouchListener(
-                            new OnPeripheralClickListener(testView, onPeripheralClickRunnable));
-
-                    // Act
-                    long downMotionTime = SystemClock.uptimeMillis();
-                    boolean downMotionHandled =
-                            testView.dispatchTouchEvent(
-                                    createMotionEvent(
-                                            downMotionTime,
-                                            /* eventTime= */ downMotionTime,
-                                            MotionEvent.ACTION_DOWN,
-                                            /* x= */ 0,
-                                            /* y= */ 0,
-                                            InputDevice.SOURCE_MOUSE,
-                                            MotionEvent.TOOL_TYPE_MOUSE));
-                    boolean upMotionHandled =
-                            testView.dispatchTouchEvent(
-                                    createMotionEvent(
-                                            downMotionTime,
-                                            /* eventTime= */ downMotionTime + 50,
-                                            MotionEvent.ACTION_UP,
-                                            /* x= */ 0,
-                                            /* y= */ 0,
-                                            InputDevice.SOURCE_MOUSE,
-                                            MotionEvent.TOOL_TYPE_MOUSE));
-
-                    // Assert:
-                    // (1) OnPeripheralClickListener should handle MotionEvents that were
-                    //     from a peripheral;
-                    // (2) OnPeripheralClickRunnable should be run.
-                    assertTrue(downMotionHandled);
-                    assertTrue(upMotionHandled);
-                    assertEquals(1, onPeripheralClickRunnable.mNumTimesRun);
-                });
-    }
-
-    @SuppressLint("SetTextI18n")
-    private View setUpTestView() {
-        Activity testActivity = mActivityRule.launchActivity(/* startIntent= */ null);
-        TextView textView = new TextView(testActivity);
-        textView.setText("Test View to be clicked");
-
-        ThreadUtils.runOnUiThreadBlocking(
-                () ->
-                        testActivity.setContentView(
-                                textView,
-                                new LayoutParams(
-                                        LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)));
-
-        return textView;
-    }
-
-    /**
-     * Creates a {@link MotionEvent}.
-     *
-     * <p>All parameters are for {@link MotionEvent#obtain}.
-     */
-    private static MotionEvent createMotionEvent(
-            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
-        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = toolType;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = x;
-        pointerCoords.y = y;
-
-        return MotionEvent.obtain(
-                downTime,
-                eventTime,
-                action,
-                /* pointerCount= */ 1,
-                new PointerProperties[] {pointerProperties},
-                new PointerCoords[] {pointerCoords},
-                /* metaState= */ 0,
-                /* buttonState= */ 0,
-                /* xPrecision= */ 1.0f,
-                /* yPrecision= */ 1.0f,
-                /* deviceId= */ 0,
-                /* edgeFlags= */ 0,
-                source,
-                /* flags= */ 0);
-    }
-
-    private static final class TestOnPeripheralClickRunnable implements OnPeripheralClickRunnable {
-
-        int mNumTimesRun;
-
-        @Override
-        public void run(MotionEventInfo triggeringMotion) {
-            mNumTimesRun++;
-        }
-    }
-}
diff --git a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListener.java b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListener.java
new file mode 100644
index 0000000..a16a05e2c
--- /dev/null
+++ b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListener.java
@@ -0,0 +1,64 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.browser_ui.util.motion;
+
+import android.annotation.SuppressLint;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.view.View;
+
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.ui.util.MotionEventUtils;
+
+/**
+ * A {@link View.OnTouchListener} to detect a click from peripherals.
+ *
+ * <p>If a {@link MotionEvent} comes from a peripheral, this listener will consume it. Then, if the
+ * event completes a click action, the {@link OnPeripheralClickRunnable} will be run.
+ *
+ * <p>If a {@link MotionEvent} doesn't come from a peripheral, this listener is a no-op. It won't
+ * consume or interpret the event.
+ */
+@NullMarked
+public final class OnPeripheralClickListener implements View.OnTouchListener {
+
+    private final GestureDetector mGestureDetector;
+
+    public OnPeripheralClickListener(
+            View view, OnPeripheralClickRunnable onPeripheralClickRunnable) {
+        mGestureDetector =
+                new GestureDetector(
+                        view.getContext(),
+                        new GestureDetector.SimpleOnGestureListener() {
+
+                            @Override
+                            public boolean onSingleTapUp(MotionEvent e) {
+                                onPeripheralClickRunnable.run(MotionEventInfo.fromMotionEvent(e));
+                                return true;
+                            }
+                        });
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        if (!MotionEventUtils.isMouseEvent(event)) {
+            return false;
+        }
+
+        mGestureDetector.onTouchEvent(event);
+        return true;
+    }
+
+    public interface OnPeripheralClickRunnable {
+
+        /**
+         * Called when a peripheral click is detected.
+         *
+         * @param triggeringMotion {@link MotionEventInfo} that triggered the click.
+         */
+        void run(MotionEventInfo triggeringMotion);
+    }
+}
diff --git a/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListenerTest.java b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListenerTest.java
new file mode 100644
index 0000000..7f0f668
--- /dev/null
+++ b/components/browser_ui/util/android/java/src/org/chromium/components/browser_ui/util/motion/OnPeripheralClickListenerTest.java
@@ -0,0 +1,141 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.browser_ui.util.motion;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.os.SystemClock;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.TextView;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.test.BaseActivityTestRule;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.util.Batch;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.components.browser_ui.util.motion.OnPeripheralClickListener.OnPeripheralClickRunnable;
+import org.chromium.ui.test.util.BlankUiTestActivity;
+
+@NullMarked
+@RunWith(BaseJUnit4ClassRunner.class)
+@Batch(Batch.UNIT_TESTS)
+public class OnPeripheralClickListenerTest {
+
+    @Rule
+    public final BaseActivityTestRule<BlankUiTestActivity> mActivityRule =
+            new BaseActivityTestRule<>(BlankUiTestActivity.class);
+
+    @Test
+    @SmallTest
+    public void testClickFromTouchScreen() {
+        View testView = setUpTestView();
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    // Setup
+                    TestOnPeripheralClickRunnable onPeripheralClickRunnable =
+                            new TestOnPeripheralClickRunnable();
+                    testView.setOnTouchListener(
+                            new OnPeripheralClickListener(testView, onPeripheralClickRunnable));
+
+                    // Act
+                    long downMotionTime = SystemClock.uptimeMillis();
+                    boolean downMotionHandled =
+                            testView.dispatchTouchEvent(
+                                    MotionEventTestUtils.createTouchMotionEvent(
+                                            downMotionTime,
+                                            /* eventTime= */ downMotionTime,
+                                            MotionEvent.ACTION_DOWN));
+                    boolean upMotionHandled =
+                            testView.dispatchTouchEvent(
+                                    MotionEventTestUtils.createTouchMotionEvent(
+                                            downMotionTime,
+                                            /* eventTime= */ downMotionTime + 50,
+                                            MotionEvent.ACTION_UP));
+
+                    // Assert:
+                    // (1) OnPeripheralClickListener shouldn't handle any MotionEvent that wasn't
+                    //     from a peripheral;
+                    // (2) OnPeripheralClickRunnable shouldn't be run.
+                    assertFalse(downMotionHandled);
+                    assertFalse(upMotionHandled);
+                    assertEquals(0, onPeripheralClickRunnable.mNumTimesRun);
+                });
+    }
+
+    @Test
+    @SmallTest
+    public void testClickFromMouse() {
+        View testView = setUpTestView();
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    // Setup
+                    TestOnPeripheralClickRunnable onPeripheralClickRunnable =
+                            new TestOnPeripheralClickRunnable();
+                    testView.setOnTouchListener(
+                            new OnPeripheralClickListener(testView, onPeripheralClickRunnable));
+
+                    // Act
+                    long downMotionTime = SystemClock.uptimeMillis();
+                    boolean downMotionHandled =
+                            testView.dispatchTouchEvent(
+                                    MotionEventTestUtils.createMouseMotionEvent(
+                                            downMotionTime,
+                                            /* eventTime= */ downMotionTime,
+                                            MotionEvent.ACTION_DOWN));
+                    boolean upMotionHandled =
+                            testView.dispatchTouchEvent(
+                                    MotionEventTestUtils.createMouseMotionEvent(
+                                            downMotionTime,
+                                            /* eventTime= */ downMotionTime + 50,
+                                            MotionEvent.ACTION_UP));
+
+                    // Assert:
+                    // (1) OnPeripheralClickListener should handle MotionEvents that were
+                    //     from a peripheral;
+                    // (2) OnPeripheralClickRunnable should be run.
+                    assertTrue(downMotionHandled);
+                    assertTrue(upMotionHandled);
+                    assertEquals(1, onPeripheralClickRunnable.mNumTimesRun);
+                });
+    }
+
+    @SuppressLint("SetTextI18n")
+    private View setUpTestView() {
+        Activity testActivity = mActivityRule.launchActivity(/* startIntent= */ null);
+        TextView textView = new TextView(testActivity);
+        textView.setText("Test View to be clicked");
+
+        ThreadUtils.runOnUiThreadBlocking(
+                () ->
+                        testActivity.setContentView(
+                                textView,
+                                new LayoutParams(
+                                        LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)));
+
+        return textView;
+    }
+
+    private static final class TestOnPeripheralClickRunnable implements OnPeripheralClickRunnable {
+
+        int mNumTimesRun;
+
+        @Override
+        public void run(MotionEventInfo triggeringMotion) {
+            mNumTimesRun++;
+        }
+    }
+}
diff --git a/components/browser_ui/util/android/test/java/src/org/chromium/components/browser_ui/util/motion/MotionEventTestUtils.java b/components/browser_ui/util/android/test/java/src/org/chromium/components/browser_ui/util/motion/MotionEventTestUtils.java
new file mode 100644
index 0000000..cc3320f
--- /dev/null
+++ b/components/browser_ui/util/android/test/java/src/org/chromium/components/browser_ui/util/motion/MotionEventTestUtils.java
@@ -0,0 +1,111 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.browser_ui.util.motion;
+
+import android.view.InputDevice;
+import android.view.MotionEvent;
+import android.view.MotionEvent.PointerCoords;
+import android.view.MotionEvent.PointerProperties;
+
+import org.chromium.build.annotations.NullMarked;
+
+/** Utils for creating {@link MotionEvent} and {@link MotionEventInfo} for tests. */
+@NullMarked
+public final class MotionEventTestUtils {
+
+    private MotionEventTestUtils() {}
+
+    /**
+     * Creates {@link MotionEventInfo} that matches a touch screen motion.
+     *
+     * @see #createTouchMotionEvent(long, long, int)
+     */
+    public static MotionEventInfo createTouchMotionInfo(long downTime, long eventTime, int action) {
+        return MotionEventInfo.fromMotionEvent(createTouchMotionEvent(downTime, eventTime, action));
+    }
+
+    /**
+     * Creates {@link MotionEventInfo} that matches a mouse motion.
+     *
+     * @see #createMouseMotionEvent(long, long, int)
+     */
+    public static MotionEventInfo createMouseMotionInfo(long downTime, long eventTime, int action) {
+        return MotionEventInfo.fromMotionEvent(createMouseMotionEvent(downTime, eventTime, action));
+    }
+
+    /**
+     * Creates a {@link MotionEvent} that matches a touch screen motion.
+     *
+     * @see #createMotionEvent(long, long, int, float, float, int, int)
+     */
+    public static MotionEvent createTouchMotionEvent(long downTime, long eventTime, int action) {
+        return createMotionEvent(
+                downTime,
+                eventTime,
+                action,
+                /* x= */ 0,
+                /* y= */ 0,
+                InputDevice.SOURCE_TOUCHSCREEN,
+                MotionEvent.TOOL_TYPE_FINGER);
+    }
+
+    /**
+     * Creates a {@link MotionEvent} that matches a mouse motion.
+     *
+     * @see #createMouseMotionEvent(long, long, int, float, float)
+     */
+    public static MotionEvent createMouseMotionEvent(long downTime, long eventTime, int action) {
+        return createMouseMotionEvent(downTime, eventTime, action, /* x= */ 0, /* y= */ 0);
+    }
+
+    /**
+     * Creates a {@link MotionEvent} that matches a mouse motion.
+     *
+     * @see #createMotionEvent(long, long, int, float, float, int, int)
+     */
+    public static MotionEvent createMouseMotionEvent(
+            long downTime, long eventTime, int action, float x, float y) {
+        return createMotionEvent(
+                downTime,
+                eventTime,
+                action,
+                x,
+                y,
+                InputDevice.SOURCE_MOUSE,
+                MotionEvent.TOOL_TYPE_MOUSE);
+    }
+
+    /**
+     * Creates a {@link MotionEvent}.
+     *
+     * <p>All parameters are for {@link MotionEvent#obtain}.
+     */
+    public static MotionEvent createMotionEvent(
+            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
+        PointerProperties pointerProperties = new MotionEvent.PointerProperties();
+        pointerProperties.id = 0;
+        pointerProperties.toolType = toolType;
+
+        PointerCoords pointerCoords = new PointerCoords();
+        pointerCoords.x = x;
+        pointerCoords.y = y;
+
+        return MotionEvent.obtain(
+                downTime,
+                eventTime,
+                action,
+                /* pointerCount= */ 1,
+                new PointerProperties[] {pointerProperties},
+                new PointerCoords[] {pointerCoords},
+                /* metaState= */ 0,
+                /* buttonState= */ 0,
+                /* xPrecision= */ 1.0f,
+                /* yPrecision= */ 1.0f,
+                /* deviceId= */ 0,
+                /* edgeFlags= */ 0,
+                source,
+                /* flags= */ 0);
+    }
+}
diff --git a/components/browser_ui/widget/android/BUILD.gn b/components/browser_ui/widget/android/BUILD.gn
index e20b656..c93fbfd 100644
--- a/components/browser_ui/widget/android/BUILD.gn
+++ b/components/browser_ui/widget/android/BUILD.gn
@@ -395,6 +395,7 @@
     "//components/browser_ui/test/android:test_support_java",
     "//components/browser_ui/theme/android:java_resources",
     "//components/browser_ui/util/android:java",
+    "//components/browser_ui/util/android:test_support_java",
     "//content/public/test/android:content_java_test_support",
     "//third_party/android_deps:org_jspecify_jspecify_java",
     "//third_party/androidx:androidx_annotation_annotation_java",
diff --git a/components/browser_ui/widget/android/java/res/values/dimens.xml b/components/browser_ui/widget/android/java/res/values/dimens.xml
index 20b0b39..00be49f 100644
--- a/components/browser_ui/widget/android/java/res/values/dimens.xml
+++ b/components/browser_ui/widget/android/java/res/values/dimens.xml
@@ -19,6 +19,7 @@
     <dimen name="small_icon_background_size">32dp</dimen>
     <dimen name="focused_icon_background_stroke_width">2dp</dimen>
     <dimen name="cpa_button_background_radius_is_checked">12dp</dimen>
+    <dimen name="toolbar_progress_bar_height">2dp</dimen>
 
     <!-- DualControlLayout -->
     <dimen name="dual_control_margin_between_items">8dp</dimen>
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
index 546e0cb..4980bb8 100644
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
@@ -57,6 +57,7 @@
     @Nullable private GradientDrawable mBackgroundGradientDrawable;
     private int mForegroundColor;
     private int mBackgroundColor;
+    protected int mProgressBarHeight;
     private float mProgress;
     private int mDesiredVisibility;
 
@@ -75,6 +76,8 @@
 
         mForegroundColor = SemanticColorUtils.getProgressBarForeground(getContext());
         mBackgroundColor = getContext().getColor(R.color.progress_bar_bg_color_list);
+        mProgressBarHeight = getResources().getDimensionPixelSize(
+                R.dimen.toolbar_progress_bar_height);
         initializeDrawables();
         setBackgroundColor(mBackgroundColor);
     }
@@ -87,12 +90,14 @@
      */
     private void initializeDrawables() {
         if (useGradientDrawable()) {
-            mForegroundGradientDrawable = createGradientDrawable(mForegroundColor);
+            mForegroundGradientDrawable = createGradientDrawable(mForegroundColor,
+                    mProgressBarHeight / 2);
             ClipDrawable foregroundClipDrawable =
                     new ClipDrawable(mForegroundGradientDrawable, Gravity.START,
                             ClipDrawable.HORIZONTAL);
 
-            mBackgroundGradientDrawable = createGradientDrawable(mBackgroundColor);
+            mBackgroundGradientDrawable = createGradientDrawable(mBackgroundColor,
+                    mProgressBarHeight / 2);
             ClipDrawable backgroundClipDrawable = new ClipDrawable(
                     mBackgroundGradientDrawable, Gravity.END, ClipDrawable.HORIZONTAL);
             // Background will be fully visible.
@@ -116,10 +121,11 @@
      * @param color The color to set for the drawable.
      * @return A new {@link GradientDrawable} instance.
      */
-    private static GradientDrawable createGradientDrawable(int color) {
+    private static GradientDrawable createGradientDrawable(int color, int cornerRadius) {
         GradientDrawable drawable = new GradientDrawable();
         drawable.setShape(GradientDrawable.RECTANGLE);
         drawable.setColor(color);
+        drawable.setCornerRadius(cornerRadius);
         return drawable;
     }
 
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/list_view/TouchTrackingListViewTest.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/list_view/TouchTrackingListViewTest.java
index 570300f..137aa6c 100644
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/list_view/TouchTrackingListViewTest.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/list_view/TouchTrackingListViewTest.java
@@ -16,8 +16,6 @@
 import android.os.SystemClock;
 import android.view.InputDevice;
 import android.view.MotionEvent;
-import android.view.MotionEvent.PointerCoords;
-import android.view.MotionEvent.PointerProperties;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
@@ -33,6 +31,7 @@
 import org.chromium.base.test.BaseJUnit4ClassRunner;
 import org.chromium.base.test.util.Batch;
 import org.chromium.components.browser_ui.util.motion.MotionEventInfo;
+import org.chromium.components.browser_ui.util.motion.MotionEventTestUtils;
 import org.chromium.components.browser_ui.widget.test.R;
 import org.chromium.ui.test.util.BlankUiTestActivity;
 
@@ -59,24 +58,20 @@
                     // "single tap up" gesture.
                     testOnInterceptTouchEvent(
                             touchTrackingListView,
-                            createMotionEvent(
+                            MotionEventTestUtils.createMouseMotionEvent(
                                     motionDownTime,
                                     /* eventTime= */ motionDownTime,
                                     MotionEvent.ACTION_DOWN,
                                     centerPoint.x,
-                                    centerPoint.y,
-                                    InputDevice.SOURCE_MOUSE,
-                                    MotionEvent.TOOL_TYPE_MOUSE));
+                                    centerPoint.y));
                     testOnInterceptTouchEvent(
                             touchTrackingListView,
-                            createMotionEvent(
+                            MotionEventTestUtils.createMouseMotionEvent(
                                     motionDownTime,
                                     /* eventTime= */ motionDownTime + 50,
                                     MotionEvent.ACTION_UP,
                                     centerPoint.x,
-                                    centerPoint.y,
-                                    InputDevice.SOURCE_MOUSE,
-                                    MotionEvent.TOOL_TYPE_MOUSE));
+                                    centerPoint.y));
 
                     // Assert
                     MotionEventInfo touchInfo = touchTrackingListView.getLastSingleTapUp();
@@ -102,14 +97,12 @@
                     // A single ACTION_DOWN event shouldn't complete any gesture.
                     testOnInterceptTouchEvent(
                             touchTrackingListView,
-                            createMotionEvent(
+                            MotionEventTestUtils.createMouseMotionEvent(
                                     motionDownTime,
                                     /* eventTime= */ motionDownTime,
                                     MotionEvent.ACTION_DOWN,
                                     centerPoint.x,
-                                    centerPoint.y,
-                                    InputDevice.SOURCE_MOUSE,
-                                    MotionEvent.TOOL_TYPE_MOUSE));
+                                    centerPoint.y));
 
                     // Assert
                     assertNull(touchTrackingListView.getLastSingleTapUp());
@@ -187,36 +180,4 @@
         boolean eventIntercepted = touchTrackingListView.onInterceptTouchEvent(motionEvent);
         assertFalse("TouchTrackingListView should never intercept touch events.", eventIntercepted);
     }
-
-    /**
-     * Creates a {@link MotionEvent} for testing.
-     *
-     * <p>All parameters are for {@link MotionEvent#obtain}.
-     */
-    private static MotionEvent createMotionEvent(
-            long downTime, long eventTime, int action, float x, float y, int source, int toolType) {
-        PointerProperties pointerProperties = new PointerProperties();
-        pointerProperties.id = 0;
-        pointerProperties.toolType = toolType;
-
-        PointerCoords pointerCoords = new PointerCoords();
-        pointerCoords.x = x;
-        pointerCoords.y = y;
-
-        return MotionEvent.obtain(
-                downTime,
-                eventTime,
-                action,
-                /* pointerCount= */ 1,
-                new PointerProperties[] {pointerProperties},
-                new PointerCoords[] {pointerCoords},
-                /* metaState= */ 0,
-                /* buttonState= */ 0,
-                /* xPrecision= */ 1.0f,
-                /* yPrecision= */ 1.0f,
-                /* deviceId= */ 0,
-                /* edgeFlags= */ 0,
-                source,
-                /* flags= */ 0);
-    }
 }
diff --git a/components/dom_distiller_strings.grdp b/components/dom_distiller_strings.grdp
index 658d5a0..f7232ce 100644
--- a/components/dom_distiller_strings.grdp
+++ b/components/dom_distiller_strings.grdp
@@ -31,18 +31,9 @@
   <message name="IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_CONTENT" desc="The text to show in place of reading list article content if the article is not found.">
     Could not find the requested article.
   </message>
-  <if expr="is_android or is_ios">
-    <then>
-      <message name="IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE" desc="The text to show in place of a reading list article title while the article is loading. Translation should match TC ID 7558334641404735182, 7078777000119799848, and 8486137854427127199.">
-        Simplified view
-      </message>
-    </then>
-    <else> <!-- Desktop -->
-      <message name="IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE" desc="The text to show in place of a reading list article title while the article is loading.">
-        Loading...
-      </message>
-    </else>
-  </if>
+  <message name="IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE" desc="The text to show in place of a reading mode article title while the article is loading.">
+    Reading Mode
+  </message>
   <message name="IDS_DOM_DISTILLER_VIEWER_CUSTOMIZE_APPEARANCE" desc="Title of the Reader Mode dialog where you can customize the font, style, and color of the Reader Mode page..">
     Customize appearance
   </message>
@@ -88,17 +79,8 @@
   <message name="IDS_DOM_DISTILLER_WEBUI_TITLE" desc="The title to show on the DOM Distiller debug page.">
     DOM Distiller
   </message>
-  <if expr="is_android">
-    <then>
-      <message name="IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX" desc="The suffix to show after the page title to indicate we are in reader mode. For example, if the page title was 'An Article', this would be appended to create the title 'An Article - Simplified View'.">
-        Simplified View
-      </message>
-    </then>
-    <else>
-      <message name="IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX" desc="The suffix to show after the page title to indicate we are in reader mode. For example, if the page title was 'An Article', this would be appended to create the title 'An Article - Reader Mode'.">
-        Reader Mode
-      </message>
-    </else>
-  </if>
+  <message name="IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX" desc="The suffix to show after the page title to indicate we are in reading mode. For example, if the page title was 'An Article', this would be appended to create the title 'An Article - Reading Mode'.">
+    Reading Mode
+  </message>
 
 </grit-part>
diff --git a/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE.png.sha1 b/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE.png.sha1
index 05b26185..6df24ac 100644
--- a/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE.png.sha1
+++ b/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_LOADING_TITLE.png.sha1
@@ -1 +1 @@
-9df83e0a9cfa30125b0852dd811f9b03e12b94ae
\ No newline at end of file
+368862e4d2dad2e24998f9503280ecec51a3e522
\ No newline at end of file
diff --git a/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX.png.sha1 b/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX.png.sha1
index 5608a51..dbcec187 100644
--- a/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX.png.sha1
+++ b/components/dom_distiller_strings_grdp/IDS_DOM_DISTILLER_VIEWER_TITLE_SUFFIX.png.sha1
@@ -1 +1 @@
-f049a5162a611e94ae4e6912dd941393972ced8a
\ No newline at end of file
+7165bc1edb389ae0c44ba5563be727c31ccbbee6
\ No newline at end of file
diff --git a/components/exo/client_controlled_shell_surface_unittest.cc b/components/exo/client_controlled_shell_surface_unittest.cc
index 142a90fe..c9201066 100644
--- a/components/exo/client_controlled_shell_surface_unittest.cc
+++ b/components/exo/client_controlled_shell_surface_unittest.cc
@@ -29,6 +29,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "cc/paint/display_item_list.h"
 #include "chromeos/constants/chromeos_features.h"
+#include "chromeos/ui/base/chromeos_ui_constants.h"
 #include "chromeos/ui/base/window_pin_type.h"
 #include "chromeos/ui/base/window_properties.h"
 #include "chromeos/ui/frame/caption_buttons/caption_button_model.h"
@@ -603,7 +604,6 @@
 TEST_P(ClientControlledShellSurfaceTest,
        ShadowRoundedCornersWithPipTransition) {
   constexpr gfx::Point kOrigin(20, 20);
-  constexpr int kPipCornerRadius = 8;
 
   base::test::ScopedFeatureList scoped_feature_list(
       chromeos::features::kRoundedWindows);
@@ -631,7 +631,8 @@
 
   shadow = wm::ShadowController::GetShadowForWindow(window);
   ASSERT_TRUE(shadow);
-  EXPECT_EQ(shadow->rounded_corner_radius_for_testing(), kPipCornerRadius);
+  EXPECT_EQ(shadow->rounded_corner_radius_for_testing(),
+            chromeos::kPipRoundedCornerRadius);
 
   shell_surface->UnsetPip();
   root_surface->Commit();
diff --git a/components/input/utils.cc b/components/input/utils.cc
index 10190b1..ae36632 100644
--- a/components/input/utils.cc
+++ b/components/input/utils.cc
@@ -22,25 +22,6 @@
 using blink::mojom::InputEventResultState;
 using perfetto::protos::pbzero::ChromeLatencyInfo2;
 
-namespace {
-
-#if BUILDFLAG(IS_ANDROID)
-// Check whether the fix for `CVE-2025-0097` is present, which went in Feb 2025
-// security update: https://source.android.com/docs/security/bulletin/2025-02-01
-static bool HasSecurityUpdate() {
-  base::Time min_security_patch_date;
-  CHECK(base::Time::FromString("2025-02-05", &min_security_patch_date));
-
-  base::Time security_patch;
-  CHECK(base::Time::FromString(
-      base::android::android_info::security_patch().c_str(), &security_patch));
-
-  return security_patch >= min_security_patch_date;
-}
-#endif
-
-}  // namespace
-
 #if BUILDFLAG(IS_ANDROID)
 bool InputUtils::initialized_ = false;
 bool InputUtils::has_security_update_ = false;
@@ -48,6 +29,19 @@
 jboolean JNI_InputUtils_IsTransferInputToVizSupported(JNIEnv* env) {
   return InputUtils::IsTransferInputToVizSupported();
 }
+
+// Check whether the fix for `CVE-2025-0097` is present, which went in Feb 2025
+// security update: https://source.android.com/docs/security/bulletin/2025-02-01
+// static
+bool InputUtils::HasSecurityUpdate(const std::string& security_patch) {
+  base::Time min_security_patch_date;
+  CHECK(base::Time::FromString("2025-02-05", &min_security_patch_date));
+
+  base::Time security_patch_date;
+  CHECK(base::Time::FromString(security_patch.c_str(), &security_patch_date));
+
+  return security_patch_date >= min_security_patch_date;
+}
 #endif
 
 // static
@@ -60,7 +54,8 @@
   // data race is benign (behaviour of the program remains unchanged just
   // potentially wasted effort).
   if (!initialized_) {
-    has_security_update_ = HasSecurityUpdate();
+    has_security_update_ =
+        HasSecurityUpdate(base::android::android_info::security_patch());
     initialized_ = true;
   }
   const bool is_at_least_v =
diff --git a/components/input/utils.h b/components/input/utils.h
index ebcc9277..96326269 100644
--- a/components/input/utils.h
+++ b/components/input/utils.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_INPUT_UTILS_H_
 
 #include "base/component_export.h"
+#include "base/gtest_prod_util.h"
 #include "base/tracing/protos/chrome_track_event.pbzero.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
@@ -19,9 +20,11 @@
   // only on Android V+ which contain security fix for `CVE-2025-0097`.
   static bool IsTransferInputToVizSupported();
 #if BUILDFLAG(IS_ANDROID)
-  static void ResetInitializedForTesting() { initialized_ = false; }
-
  private:
+  FRIEND_TEST_ALL_PREFIXES(UtilsTest,
+                           InputToVizNotSupportedOnOlderSecurityPatchLevel);
+  static bool HasSecurityUpdate(const std::string& security_patch);
+
   // Checks if other static member variables has been initialized.
   static bool initialized_;
 
diff --git a/components/input/utils_unittest.cc b/components/input/utils_unittest.cc
index 4001670..5ca7769f 100644
--- a/components/input/utils_unittest.cc
+++ b/components/input/utils_unittest.cc
@@ -29,26 +29,7 @@
   };
 
   for (const auto& [date, expectation] : security_patches) {
-    base::android::android_info::AndroidInfo android_info(
-        /* device= */ base::EmptyString(),
-        /* manufacturer= */ base::EmptyString(),
-        /* model= */ base::EmptyString(),
-        /* brand= */ base::EmptyString(),
-        /* android_build_id= */ base::EmptyString(),
-        /* build_type= */ base::EmptyString(),
-        /* board= */ base::EmptyString(),
-        /* android_build_fp= */ base::EmptyString(),
-        /* sdk_int= */ base::android::android_info::SdkVersion::SDK_VERSION_V,
-        /* is_debug_android= */ false,
-        /* version_incremental= */ base::EmptyString(),
-        /* hardware= */ base::EmptyString(),
-        /* codename= */ base::EmptyString(),
-        /* soc_manufacturer= */ base::EmptyString(),
-        /* abi_name= */ base::EmptyString(),
-        /* security_patch= */ date.data());
-    base::android::android_info::SetAndroidInfoForTesting(android_info);
-    InputUtils::ResetInitializedForTesting();
-    EXPECT_EQ(InputUtils::IsTransferInputToVizSupported(), expectation);
+    EXPECT_EQ(InputUtils::HasSecurityUpdate(date), expectation);
   }
 }
 
diff --git a/components/neterror/resources/BUILD.gn b/components/neterror/resources/BUILD.gn
index b265794..d2edbe6 100644
--- a/components/neterror/resources/BUILD.gn
+++ b/components/neterror/resources/BUILD.gn
@@ -17,7 +17,7 @@
   "dino_game/dimensions.ts",
   "dino_game/distance_meter.ts",
   "dino_game/generated_sound_fx.ts",
-  "dino_game/game_over_panel.js",
+  "dino_game/game_over_panel.ts",
   "dino_game/horizon_line.ts",
   "dino_game/horizon.js",
   "dino_game/sprite_position.ts",
diff --git a/components/neterror/resources/dino_game/game_over_panel.js b/components/neterror/resources/dino_game/game_over_panel.js
deleted file mode 100644
index fd5c73b..0000000
--- a/components/neterror/resources/dino_game/game_over_panel.js
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import {IS_HIDPI, IS_RTL} from './constants.js';
-import {Dimensions} from './dimensions.js';
-import {Runner} from './offline.js';
-import {spriteDefinitionByType} from './offline_sprite_definitions.js';
-import {Trex} from './trex.js';
-import {getTimeStamp} from './utils.js';
-
-export class GameOverPanel {
-  /**
-   * Game over panel.
-   * @param {!HTMLCanvasElement} canvas
-   * @param {Object} textImgPos
-   * @param {Object} restartImgPos
-   * @param {!Dimensions} dimensions Canvas dimensions.
-   * @param {Object=} opt_altGameEndImgPos
-   * @param {boolean=} opt_altGameActive
-   */
-  constructor(
-      canvas, textImgPos, restartImgPos, dimensions, opt_altGameEndImgPos,
-      opt_altGameActive) {
-    this.canvas = canvas;
-    this.canvasCtx =
-        /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d'));
-    this.canvasDimensions = dimensions;
-    this.textImgPos = textImgPos;
-    this.restartImgPos = restartImgPos;
-    this.altGameEndImgPos = opt_altGameEndImgPos;
-    this.altGameModeActive = opt_altGameActive;
-
-    // Retry animation.
-    this.frameTimeStamp = 0;
-    this.animTimer = 0;
-    this.currentFrame = 0;
-
-    this.gameOverRafId = null;
-
-    this.flashTimer = 0;
-    this.flashCounter = 0;
-    this.originalText = true;
-  }
-
-
-  /**
-   * Update the panel dimensions.
-   * @param {number} width New canvas width.
-   * @param {number} opt_height Optional new canvas height.
-   */
-  updateDimensions(width, opt_height) {
-    this.canvasDimensions.width = width;
-    if (opt_height) {
-      this.canvasDimensions.height = opt_height;
-    }
-    this.currentFrame = GameOverPanel.animConfig.frames.length - 1;
-  }
-
-  drawGameOverText(dimensions, opt_useAltText) {
-    const centerX = this.canvasDimensions.width / 2;
-    let textSourceX = dimensions.TEXT_X;
-    let textSourceY = dimensions.TEXT_Y;
-    let textSourceWidth = dimensions.TEXT_WIDTH;
-    let textSourceHeight = dimensions.TEXT_HEIGHT;
-
-    const textTargetX = Math.round(centerX - (dimensions.TEXT_WIDTH / 2));
-    const textTargetY = Math.round((this.canvasDimensions.height - 25) / 3);
-    const textTargetWidth = dimensions.TEXT_WIDTH;
-    const textTargetHeight = dimensions.TEXT_HEIGHT;
-
-    if (IS_HIDPI) {
-      textSourceY *= 2;
-      textSourceX *= 2;
-      textSourceWidth *= 2;
-      textSourceHeight *= 2;
-    }
-
-    if (!opt_useAltText) {
-      textSourceX += this.textImgPos.x;
-      textSourceY += this.textImgPos.y;
-    }
-
-    const spriteSource =
-        opt_useAltText ? Runner.altCommonImageSprite : Runner.origImageSprite;
-
-    this.canvasCtx.save();
-
-    if (IS_RTL) {
-      this.canvasCtx.translate(this.canvasDimensions.width, 0);
-      this.canvasCtx.scale(-1, 1);
-    }
-
-    // Game over text from sprite.
-    this.canvasCtx.drawImage(
-        spriteSource, textSourceX, textSourceY, textSourceWidth,
-        textSourceHeight, textTargetX, textTargetY, textTargetWidth,
-        textTargetHeight);
-
-    this.canvasCtx.restore();
-  }
-
-  /**
-   * Draw additional adornments for alternative game types.
-   */
-  drawAltGameElements(tRex) {
-    // Additional adornments.
-    if (this.altGameModeActive && Runner.spriteDefinition.ALT_GAME_END_CONFIG) {
-      const altGameEndConfig = Runner.spriteDefinition.ALT_GAME_END_CONFIG;
-
-      let altGameEndSourceWidth = altGameEndConfig.WIDTH;
-      let altGameEndSourceHeight = altGameEndConfig.HEIGHT;
-      const altGameEndTargetX = tRex.xPos + altGameEndConfig.X_OFFSET;
-      const altGameEndTargetY = tRex.yPos + altGameEndConfig.Y_OFFSET;
-
-      if (IS_HIDPI) {
-        altGameEndSourceWidth *= 2;
-        altGameEndSourceHeight *= 2;
-      }
-
-      this.canvasCtx.drawImage(
-          Runner.altCommonImageSprite, this.altGameEndImgPos.x,
-          this.altGameEndImgPos.y, altGameEndSourceWidth,
-          altGameEndSourceHeight, altGameEndTargetX, altGameEndTargetY,
-          altGameEndConfig.WIDTH, altGameEndConfig.HEIGHT);
-    }
-  }
-
-  /**
-   * Draw restart button.
-   */
-  drawRestartButton() {
-    const dimensions = GameOverPanel.dimensions;
-    let framePosX = GameOverPanel.animConfig.frames[this.currentFrame];
-    let restartSourceWidth = dimensions.RESTART_WIDTH;
-    let restartSourceHeight = dimensions.RESTART_HEIGHT;
-    const restartTargetX =
-        (this.canvasDimensions.width / 2) - (dimensions.RESTART_WIDTH / 2);
-    const restartTargetY = this.canvasDimensions.height / 2;
-
-    if (IS_HIDPI) {
-      restartSourceWidth *= 2;
-      restartSourceHeight *= 2;
-      framePosX *= 2;
-    }
-
-    this.canvasCtx.save();
-
-    if (IS_RTL) {
-      this.canvasCtx.translate(this.canvasDimensions.width, 0);
-      this.canvasCtx.scale(-1, 1);
-    }
-
-    this.canvasCtx.drawImage(
-        Runner.origImageSprite, this.restartImgPos.x + framePosX,
-        this.restartImgPos.y, restartSourceWidth, restartSourceHeight,
-        restartTargetX, restartTargetY, dimensions.RESTART_WIDTH,
-        dimensions.RESTART_HEIGHT);
-    this.canvasCtx.restore();
-  }
-
-
-  /**
-   * Draw the panel.
-   * @param {boolean} opt_altGameModeActive
-   * @param {!Trex} opt_tRex
-   */
-  draw(opt_altGameModeActive, opt_tRex) {
-    if (opt_altGameModeActive) {
-      this.altGameModeActive = opt_altGameModeActive;
-    }
-
-    this.drawGameOverText(GameOverPanel.dimensions, false);
-    this.drawRestartButton();
-    this.drawAltGameElements(opt_tRex);
-    this.update();
-  }
-
-  /**
-   * Update animation frames.
-   */
-  update() {
-    const now = getTimeStamp();
-    const deltaTime = now - (this.frameTimeStamp || now);
-
-    this.frameTimeStamp = now;
-    this.animTimer += deltaTime;
-    this.flashTimer += deltaTime;
-
-    // Restart Button
-    if (this.currentFrame === 0 &&
-        this.animTimer > GameOverPanel.LOGO_PAUSE_DURATION) {
-      this.animTimer = 0;
-      this.currentFrame++;
-      this.drawRestartButton();
-    } else if (
-        this.currentFrame > 0 &&
-        this.currentFrame < GameOverPanel.animConfig.frames.length) {
-      if (this.animTimer >= GameOverPanel.animConfig.msPerFrame) {
-        this.currentFrame++;
-        this.drawRestartButton();
-      }
-    } else if (
-        !this.altGameModeActive &&
-        this.currentFrame === GameOverPanel.animConfig.frames.length) {
-      this.reset();
-      return;
-    }
-
-    // Game over text
-    if (this.altGameModeActive &&
-        spriteDefinitionByType.original.ALT_GAME_OVER_TEXT_CONFIG) {
-      const altTextConfig =
-          spriteDefinitionByType.original.ALT_GAME_OVER_TEXT_CONFIG;
-
-      if (altTextConfig.FLASHING) {
-        if (this.flashCounter < GameOverPanel.FLASH_ITERATIONS &&
-            this.flashTimer > altTextConfig.FLASH_DURATION) {
-          this.flashTimer = 0;
-          this.originalText = !this.originalText;
-
-          this.clearGameOverTextBounds();
-          if (this.originalText) {
-            this.drawGameOverText(GameOverPanel.dimensions, false);
-            this.flashCounter++;
-          } else {
-            this.drawGameOverText(altTextConfig, true);
-          }
-        } else if (this.flashCounter >= GameOverPanel.FLASH_ITERATIONS) {
-          this.reset();
-          return;
-        }
-      } else {
-        this.clearGameOverTextBounds(altTextConfig);
-        this.drawGameOverText(altTextConfig, true);
-      }
-    }
-
-    this.gameOverRafId = requestAnimationFrame(this.update.bind(this));
-  }
-
-  /**
-   * Clear game over text.
-   * @param {Object} dimensions Game over text config.
-   */
-  clearGameOverTextBounds(dimensions) {
-    this.canvasCtx.save();
-
-    this.canvasCtx.clearRect(
-        Math.round(
-            this.canvasDimensions.width / 2 - (dimensions.TEXT_WIDTH / 2)),
-        Math.round((this.canvasDimensions.height - 25) / 3),
-        dimensions.TEXT_WIDTH, dimensions.TEXT_HEIGHT + 4);
-    this.canvasCtx.restore();
-  }
-
-  reset() {
-    if (this.gameOverRafId) {
-      cancelAnimationFrame(this.gameOverRafId);
-      this.gameOverRafId = null;
-    }
-    this.animTimer = 0;
-    this.frameTimeStamp = 0;
-    this.currentFrame = 0;
-    this.flashTimer = 0;
-    this.flashCounter = 0;
-    this.originalText = true;
-  }
-}
-
-GameOverPanel.RESTART_ANIM_DURATION = 875;
-GameOverPanel.LOGO_PAUSE_DURATION = 875;
-GameOverPanel.FLASH_ITERATIONS = 5;
-
-/**
- * Animation frames spec.
- */
-GameOverPanel.animConfig = {
-  frames: [0, 36, 72, 108, 144, 180, 216, 252],
-  msPerFrame: GameOverPanel.RESTART_ANIM_DURATION / 8,
-};
-
-/**
- * Dimensions used in the panel.
- * @enum {number}
- */
-GameOverPanel.dimensions = {
-  TEXT_X: 0,
-  TEXT_Y: 13,
-  TEXT_WIDTH: 191,
-  TEXT_HEIGHT: 11,
-  RESTART_WIDTH: 36,
-  RESTART_HEIGHT: 32,
-};
\ No newline at end of file
diff --git a/components/neterror/resources/dino_game/game_over_panel.ts b/components/neterror/resources/dino_game/game_over_panel.ts
new file mode 100644
index 0000000..f3a58bf
--- /dev/null
+++ b/components/neterror/resources/dino_game/game_over_panel.ts
@@ -0,0 +1,331 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {assert} from 'chrome://resources/js/assert.js';
+
+import {IS_HIDPI, IS_RTL} from './constants.js';
+import type {Dimensions} from './dimensions.js';
+import {spriteDefinitionByType} from './offline_sprite_definitions.js';
+import type {SpritePosition} from './sprite_position.js';
+import type {Trex} from './trex.js';
+import {getRunnerAltCommonImageSprite, getRunnerOrigImageSprite, getRunnerSpriteDefinition, getTimeStamp} from './utils.js';
+
+const RESTART_ANIM_DURATION: number = 875;
+const LOGO_PAUSE_DURATION: number = 875;
+const FLASH_ITERATIONS: number = 5;
+
+/**
+ * Animation frames spec.
+ */
+const animConfig: {
+  frames: number[],
+  msPerFrame: number,
+} = {
+  frames: [0, 36, 72, 108, 144, 180, 216, 252],
+  msPerFrame: RESTART_ANIM_DURATION / 8,
+};
+
+interface BaseGameOverPanelDimensions {
+  textX: number;
+  textY: number;
+  textWidth: number;
+  textHeight: number;
+}
+
+interface GameOverPanelDimensions extends BaseGameOverPanelDimensions {
+  restartWidth: number;
+  restartHeight: number;
+}
+
+export interface AltGameModePanelDimensions extends
+    BaseGameOverPanelDimensions {
+  flashing: boolean;
+  flashDuration: number;
+}
+
+export interface AltGameEndConfig {
+  width: number;
+  height: number;
+  xOffset: number;
+  yOffset: number;
+}
+
+/**
+ * Dimensions used in the panel.
+ */
+const defaultPanelDimensions: GameOverPanelDimensions = {
+  textX: 0,
+  textY: 13,
+  textWidth: 191,
+  textHeight: 11,
+  restartWidth: 36,
+  restartHeight: 32,
+};
+
+export class GameOverPanel {
+  private canvasCtx: CanvasRenderingContext2D;
+  private canvasDimensions: Dimensions;
+  private textImgPos: SpritePosition;
+  private restartImgPos: SpritePosition;
+  private altGameEndImgPos: SpritePosition|null;
+  private altGameModeActive: boolean;
+  private frameTimeStamp: number = 0;
+  private animTimer: number = 0;
+  private currentFrame: number = 0;
+  private gameOverRafId: number|null = null;
+  private flashTimer: number = 0;
+  private flashCounter: number = 0;
+  private originalText: boolean = true;
+
+  /**
+   * Game over panel.
+   */
+  constructor(
+      canvas: HTMLCanvasElement, textImgPos: SpritePosition,
+      restartImgPos: SpritePosition, dimensions: Dimensions,
+      altGameEndImgPos?: SpritePosition, altGameActive?: boolean) {
+    const canvasContext = canvas.getContext('2d');
+    assert(canvasContext);
+    this.canvasCtx = canvasContext;
+    this.canvasDimensions = dimensions;
+    this.textImgPos = textImgPos;
+    this.restartImgPos = restartImgPos;
+    this.altGameEndImgPos = altGameEndImgPos ?? null;
+    this.altGameModeActive = altGameActive ?? false;
+  }
+
+
+  /**
+   * Update the panel dimensions.
+   * @param width New canvas width.
+   * @param height Optional new canvas height.
+   */
+  updateDimensions(width: number, height?: number) {
+    this.canvasDimensions.width = width;
+    if (height) {
+      this.canvasDimensions.height = height;
+    }
+    this.currentFrame = animConfig.frames.length - 1;
+  }
+
+  private drawGameOverText(
+      dimensions: BaseGameOverPanelDimensions, useAltText?: boolean) {
+    const centerX = this.canvasDimensions.width / 2;
+    let textSourceX = dimensions.textX;
+    let textSourceY = dimensions.textY;
+    let textSourceWidth = dimensions.textWidth;
+    let textSourceHeight = dimensions.textHeight;
+
+    const textTargetX = Math.round(centerX - (dimensions.textWidth / 2));
+    const textTargetY = Math.round((this.canvasDimensions.height - 25) / 3);
+    const textTargetWidth = dimensions.textWidth;
+    const textTargetHeight = dimensions.textHeight;
+
+    if (IS_HIDPI) {
+      textSourceY *= 2;
+      textSourceX *= 2;
+      textSourceWidth *= 2;
+      textSourceHeight *= 2;
+    }
+
+    if (!useAltText) {
+      textSourceX += this.textImgPos.x;
+      textSourceY += this.textImgPos.y;
+    }
+
+    const spriteSource = useAltText ? getRunnerAltCommonImageSprite() :
+                                      getRunnerOrigImageSprite();
+    assert(spriteSource);
+
+    this.canvasCtx.save();
+
+    if (IS_RTL) {
+      this.canvasCtx.translate(this.canvasDimensions.width, 0);
+      this.canvasCtx.scale(-1, 1);
+    }
+
+    // Game over text from sprite.
+    this.canvasCtx.drawImage(
+        spriteSource, textSourceX, textSourceY, textSourceWidth,
+        textSourceHeight, textTargetX, textTargetY, textTargetWidth,
+        textTargetHeight);
+
+    this.canvasCtx.restore();
+  }
+
+  /**
+   * Draw additional adornments for alternative game types.
+   */
+  private drawAltGameElements(tRex: Trex) {
+    const spriteDefinition = getRunnerSpriteDefinition();
+    assert(spriteDefinition);
+    // Additional adornments.
+    if (this.altGameModeActive && spriteDefinition) {
+      assert(this.altGameEndImgPos);
+      const altGameEndConfig = spriteDefinition.altGameEndConfig;
+      assert(altGameEndConfig);
+
+      let altGameEndSourceWidth = altGameEndConfig.width;
+      let altGameEndSourceHeight = altGameEndConfig.height;
+      const altGameEndTargetX = tRex.xPos + altGameEndConfig.xOffset;
+      const altGameEndTargetY = tRex.yPos + altGameEndConfig.yOffset;
+
+      if (IS_HIDPI) {
+        altGameEndSourceWidth *= 2;
+        altGameEndSourceHeight *= 2;
+      }
+
+      const altCommonImageSprite = getRunnerAltCommonImageSprite();
+      assert(altCommonImageSprite);
+
+
+      this.canvasCtx.drawImage(
+          altCommonImageSprite, this.altGameEndImgPos.x,
+          this.altGameEndImgPos.y, altGameEndSourceWidth,
+          altGameEndSourceHeight, altGameEndTargetX, altGameEndTargetY,
+          altGameEndConfig.width, altGameEndConfig.height);
+    }
+  }
+
+  /**
+   * Draw restart button.
+   */
+  private drawRestartButton() {
+    const dimensions = defaultPanelDimensions;
+    let framePosX = animConfig.frames[this.currentFrame]!;
+    let restartSourceWidth = dimensions.restartWidth;
+    let restartSourceHeight = dimensions.restartHeight;
+    const restartTargetX =
+        (this.canvasDimensions.width / 2) - (dimensions.restartHeight / 2);
+    const restartTargetY = this.canvasDimensions.height / 2;
+
+    if (IS_HIDPI) {
+      restartSourceWidth *= 2;
+      restartSourceHeight *= 2;
+      framePosX *= 2;
+    }
+
+    this.canvasCtx.save();
+
+    if (IS_RTL) {
+      this.canvasCtx.translate(this.canvasDimensions.width, 0);
+      this.canvasCtx.scale(-1, 1);
+    }
+    const origImageSprite = getRunnerOrigImageSprite();
+    assert(origImageSprite);
+
+    this.canvasCtx.drawImage(
+        origImageSprite, this.restartImgPos.x + framePosX, this.restartImgPos.y,
+        restartSourceWidth, restartSourceHeight, restartTargetX, restartTargetY,
+        dimensions.restartWidth, dimensions.restartHeight);
+    this.canvasCtx.restore();
+  }
+
+
+  /**
+   * Draw the panel.
+   */
+  draw(altGameModeActive?: boolean, tRex?: Trex) {
+    if (altGameModeActive) {
+      this.altGameModeActive = altGameModeActive;
+    }
+
+    this.drawGameOverText(defaultPanelDimensions, false);
+    this.drawRestartButton();
+    if (tRex) {
+      this.drawAltGameElements(tRex);
+    }
+    this.update();
+  }
+
+  /**
+   * Update animation frames.
+   */
+  private update() {
+    const now = getTimeStamp();
+    const deltaTime = now - (this.frameTimeStamp || now);
+
+    this.frameTimeStamp = now;
+    this.animTimer += deltaTime;
+    this.flashTimer += deltaTime;
+
+    // Restart Button
+    if (this.currentFrame === 0 && this.animTimer > LOGO_PAUSE_DURATION) {
+      this.animTimer = 0;
+      this.currentFrame++;
+      this.drawRestartButton();
+    } else if (
+        this.currentFrame > 0 && this.currentFrame < animConfig.frames.length) {
+      if (this.animTimer >= animConfig.msPerFrame) {
+        this.currentFrame++;
+        this.drawRestartButton();
+      }
+    } else if (
+        !this.altGameModeActive &&
+        this.currentFrame === animConfig.frames.length) {
+      this.reset();
+      return;
+    }
+
+    // Game over text
+    if (this.altGameModeActive &&
+        spriteDefinitionByType.original.altGameOverTextConfig) {
+      const altTextConfig =
+          spriteDefinitionByType.original.altGameOverTextConfig;
+
+      if (altTextConfig.flashing) {
+        if (this.flashCounter < FLASH_ITERATIONS &&
+            this.flashTimer > altTextConfig.flashDuration) {
+          this.flashTimer = 0;
+          this.originalText = !this.originalText;
+
+          this.clearGameOverTextBounds();
+          if (this.originalText) {
+            this.drawGameOverText(defaultPanelDimensions, false);
+            this.flashCounter++;
+          } else {
+            this.drawGameOverText(altTextConfig, true);
+          }
+        } else if (this.flashCounter >= FLASH_ITERATIONS) {
+          this.reset();
+          return;
+        }
+      } else {
+        this.clearGameOverTextBounds(altTextConfig);
+        this.drawGameOverText(altTextConfig, true);
+      }
+    }
+
+    this.gameOverRafId = requestAnimationFrame(this.update.bind(this));
+  }
+
+  /**
+   * Clear game over text.
+   * @param dimensions Game over text config.
+   */
+  private clearGameOverTextBounds(
+      dimensions: BaseGameOverPanelDimensions = defaultPanelDimensions) {
+    this.canvasCtx.save();
+
+    this.canvasCtx.clearRect(
+        Math.round(
+            this.canvasDimensions.width / 2 - (dimensions.textWidth / 2)),
+        Math.round((this.canvasDimensions.height - 25) / 3),
+        dimensions.textWidth, dimensions.textHeight + 4);
+    this.canvasCtx.restore();
+  }
+
+  reset() {
+    if (this.gameOverRafId) {
+      cancelAnimationFrame(this.gameOverRafId);
+      this.gameOverRafId = null;
+    }
+    this.animTimer = 0;
+    this.frameTimeStamp = 0;
+    this.currentFrame = 0;
+    this.flashTimer = 0;
+    this.flashCounter = 0;
+    this.originalText = true;
+  }
+}
diff --git a/components/neterror/resources/dino_game/offline_sprite_definitions.ts b/components/neterror/resources/dino_game/offline_sprite_definitions.ts
index 90e7e5e0..b28e322 100644
--- a/components/neterror/resources/dino_game/offline_sprite_definitions.ts
+++ b/components/neterror/resources/dino_game/offline_sprite_definitions.ts
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 import type {BackgroundElConfig, BackgroundElSpriteConfig} from './background_el.js';
+import type {AltGameEndConfig, AltGameModePanelDimensions} from './game_over_panel.js';
 import type {HorizonLineConfig} from './horizon_line.js';
 import type {SpritePosition} from './sprite_position.js';
 import type {AltGameModeSpriteConfig as AltTrexSpriteDefinition} from './trex.js';
@@ -87,7 +88,8 @@
   };
   backgroundElConfig: BackgroundElConfig;
   lines: HorizonLineConfig[];
-  altGameOverTextConfig: {[key: string]: number|boolean};
+  altGameOverTextConfig: AltGameModePanelDimensions;
+  altGameEndConfig?: AltGameEndConfig;
 }
 
 interface SpriteDefinitionByType {
@@ -220,12 +222,12 @@
       {sourceX: 2, sourceY: 52, width: 600, height: 12, yPos: 127},
     ],
     altGameOverTextConfig: {
-      TEXT_X: 32,
-      TEXT_Y: 0,
-      TEXT_WIDTH: 246,
-      TEXT_HEIGHT: 17,
-      FLASH_DURATION: 1500,
-      FLASHING: false,
+      textX: 32,
+      textY: 0,
+      textWidth: 246,
+      textHeight: 17,
+      flashDuration: 1500,
+      flashing: false,
     },
   },
 };
diff --git a/components/omnibox/browser/fake_tab_matcher.cc b/components/omnibox/browser/fake_tab_matcher.cc
index 864eabf..8d1a073 100644
--- a/components/omnibox/browser/fake_tab_matcher.cc
+++ b/components/omnibox/browser/fake_tab_matcher.cc
@@ -21,6 +21,7 @@
 }
 
 std::vector<TabMatcher::TabWrapper> FakeTabMatcher::GetOpenTabs(
-    const AutocompleteInput* input) const {
+    const AutocompleteInput* input,
+    bool exclude_active_tab) const {
   return open_tabs_;
 }
diff --git a/components/omnibox/browser/fake_tab_matcher.h b/components/omnibox/browser/fake_tab_matcher.h
index 006699f..06afc5a 100644
--- a/components/omnibox/browser/fake_tab_matcher.h
+++ b/components/omnibox/browser/fake_tab_matcher.h
@@ -30,7 +30,8 @@
                         const AutocompleteInput* input,
                         bool exclude_active_tab = true) const override;
   std::vector<TabMatcher::TabWrapper> GetOpenTabs(
-      const AutocompleteInput* input) const override;
+      const AutocompleteInput* input,
+      bool exclude_active_tab = true) const override;
 
  private:
   // Substring used to match URLs for IsTabOpenWithURL().
diff --git a/components/omnibox/browser/match_compare.h b/components/omnibox/browser/match_compare.h
index 7ea2245ab..41572f2 100644
--- a/components/omnibox/browser/match_compare.h
+++ b/components/omnibox/browser/match_compare.h
@@ -23,7 +23,17 @@
   // |demotions_by_type_|.
   int GetDemotedRelevance(const Match& match) const {
     auto demotion_it = demotions_.find(match.type);
-    return (demotion_it == demotions_.end())
+
+    // Add a check here to ensure we don't demote `NAVSUGGEST` matches created
+    // by the `EnterpriseSearchAggregatorProvider`. This allows users to see
+    // `EnterpriseSearchAggregatorProvider` suggestions in the realbox.
+    // TODO(crbug.com/419303069): If additional requirements for demotion
+    //   specific to a provider emerges, we should refactor
+    //   `CompareWithDemoteByType` to `CompareWithDemoteByProviderAndType`.
+    return (demotion_it == demotions_.end() ||
+            (match.type == AutocompleteMatchType::NAVSUGGEST &&
+             match.provider->type() ==
+                 AutocompleteProvider::Type::TYPE_ENTERPRISE_SEARCH_AGGREGATOR))
                ? match.relevance
                : (match.relevance * demotion_it->second);
   }
diff --git a/components/omnibox/browser/most_visited_sites_provider.cc b/components/omnibox/browser/most_visited_sites_provider.cc
index d042f4e..ed0a3fbb 100644
--- a/components/omnibox/browser/most_visited_sites_provider.cc
+++ b/components/omnibox/browser/most_visited_sites_provider.cc
@@ -145,6 +145,15 @@
       omnibox::IsSearchResultsPage(input.current_page_classification())
           ? omnibox::kMostVisitedTilesZeroSuggestLowRelevance
           : omnibox::kMostVisitedTilesZeroSuggestHighRelevance;
+  // Store open tab titles and stripped urls to compare to history results.
+  std::unordered_set<std::u16string> tab_titles;
+  std::unordered_set<std::string> tab_stripped_urls;
+  std::vector<TabMatcher::TabWrapper> open_tabs =
+      tab_matcher.GetOpenTabs(&input, /*exclude_active_tab=*/false);
+  for (const auto& tab : open_tabs) {
+    tab_titles.insert(tab.title);
+    tab_stripped_urls.insert((StripURL(client, tab.url, replacements).spec()));
+  }
   for (const auto& url : urls) {
     GURL stripped_url = StripURL(client, url.url, replacements);
     // Skip the match if the following is true:
@@ -153,8 +162,8 @@
     // - Match with the same title already exists
     // - Match with the same stripped url already exists
     if (url_service->IsSearchResultsPageFromDefaultSearchProvider(url.url) ||
-        tab_matcher.IsTabOpenWithSameTitleOrSimilarURL(
-            url.title, url.url, replacements, /*exclude_active_tab=*/false) ||
+        tab_titles.contains(url.title) ||
+        tab_stripped_urls.contains(stripped_url.spec()) ||
         IsURLBlocklisted(url.url) || match_titles.contains(url.title) ||
         match_urls.contains(stripped_url.spec())) {
       continue;
diff --git a/components/omnibox/browser/most_visited_sites_provider.h b/components/omnibox/browser/most_visited_sites_provider.h
index d1ee32d5..a46fd18 100644
--- a/components/omnibox/browser/most_visited_sites_provider.h
+++ b/components/omnibox/browser/most_visited_sites_provider.h
@@ -58,6 +58,7 @@
                            DesktopProviderDoesNotAllowChromeSites);
   FRIEND_TEST_ALL_PREFIXES(MostVisitedSitesProviderTest, BlocklistedURLs);
   FRIEND_TEST_ALL_PREFIXES(MostVisitedSitesProviderTest, DuplicateSuggestions);
+  FRIEND_TEST_ALL_PREFIXES(MostVisitedSitesProviderTest, DedupingOpenTabs);
 
   ~MostVisitedSitesProvider() override;
 
diff --git a/components/omnibox/browser/most_visited_sites_provider_unittest.cc b/components/omnibox/browser/most_visited_sites_provider_unittest.cc
index a773c12..599b241 100644
--- a/components/omnibox/browser/most_visited_sites_provider_unittest.cc
+++ b/components/omnibox/browser/most_visited_sites_provider_unittest.cc
@@ -18,6 +18,7 @@
 #include "components/omnibox/browser/autocomplete_provider_listener.h"
 #include "components/omnibox/browser/fake_autocomplete_provider_client.h"
 #include "components/omnibox/browser/suggestion_group_util.h"
+#include "components/omnibox/browser/tab_matcher.h"
 #include "components/omnibox/browser/test_scheme_classifier.h"
 #include "components/omnibox/common/omnibox_feature_configs.h"
 #include "components/omnibox/common/omnibox_features.h"
@@ -893,8 +894,6 @@
 }
 
 TEST_F(MostVisitedSitesProviderTest, DuplicateSuggestions) {
-  AutocompleteInput input(BuildAutocompleteInputForWebOnFocus());
-  history::MostVisitedURLList result;
   omnibox_feature_configs::ScopedConfigForTesting<
       omnibox_feature_configs::OmniboxUrlSuggestionsOnFocus>
       scoped_config;
@@ -908,9 +907,11 @@
       {false,
        {GURL("http://www.samesites.com/differentpath/#ref"),
         u"Different URL"}}};
+  history::MostVisitedURLList result;
   for (auto& data : test_data) {
     result.push_back(data.entry);
   }
+  AutocompleteInput input(BuildAutocompleteInputForWebOnFocus());
   provider_->OnMostVisitedUrlsAvailable(input, result);
   // Filter by same titles and stripped urls when deduping suggestions within
   // the suggestion list.
@@ -960,4 +961,43 @@
   EXPECT_TRUE(provider_->done());
 }
 
+TEST_F(MostVisitedSitesProviderTest, DedupingOpenTabs) {
+  omnibox_feature_configs::ScopedConfigForTesting<
+      omnibox_feature_configs::OmniboxUrlSuggestionsOnFocus>
+      scoped_config;
+  scoped_config.Get().enabled = true;
+
+  AutocompleteInput input(BuildAutocompleteInputForWebOnFocus());
+  history::MostVisitedURLList result;
+
+  FakeTabMatcher& tab_matcher = static_cast<FakeTabMatcher&>(
+      const_cast<TabMatcher&>(client_.GetTabMatcher()));
+
+  tab_matcher.AddOpenTab(FakeTabMatcher::TabWrapper(
+      u"Test", GURL("http://foo.org/path/#ref"), base::Time::Now()));
+  tab_matcher.AddOpenTab(FakeTabMatcher::TabWrapper(
+      u"Testing", GURL("http://bar.org"), base::Time::Now()));
+
+  std::vector<TestData> test_data = {
+      // Tabs with same title and url should be considered matches.
+      {false, {GURL("http://bar.org"), u"Testing"}},
+      // Tabs with same title should be considered matches even if urls are
+      // different.
+      {false, {GURL("http://different.org"), u"Testing"}},
+      // Sites with same path and different refs should be considered matches.
+      {false, {GURL("http://foo.org/path/#differentref"), u"Different Name"}},
+      // Sites with different path should not be considered matches.
+      {false, {GURL("http://foo.org/differentpath/#ref"), u"Different Name"}},
+      // Sites with same match and different refs and query params should be
+      // considered matches.
+      {false, {GURL("http://foo.org/path/#ref?param=123"), u"Different Name"}}};
+  for (auto& data : test_data) {
+    result.push_back(data.entry);
+  }
+  provider_->OnMostVisitedUrlsAvailable(input, result);
+  ASSERT_EQ(1u, provider_->matches().size());
+  ASSERT_EQ("http://foo.org/differentpath/#ref",
+            provider_->matches().at(0).destination_url.spec());
+}
+
 #endif  // !(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))
diff --git a/components/omnibox/browser/tab_matcher.cc b/components/omnibox/browser/tab_matcher.cc
index 3f7de72..5a65a3f1 100644
--- a/components/omnibox/browser/tab_matcher.cc
+++ b/components/omnibox/browser/tab_matcher.cc
@@ -21,6 +21,7 @@
 }
 
 std::vector<TabMatcher::TabWrapper> TabMatcher::GetOpenTabs(
-    const AutocompleteInput* input) const {
+    const AutocompleteInput* input,
+    bool exclude_active_tab) const {
   return std::vector<TabMatcher::TabWrapper>();
 }
diff --git a/components/omnibox/browser/tab_matcher.h b/components/omnibox/browser/tab_matcher.h
index 7330a75..bfabb14a 100644
--- a/components/omnibox/browser/tab_matcher.h
+++ b/components/omnibox/browser/tab_matcher.h
@@ -76,6 +76,8 @@
   // if another tab exists with the same stripped URL. Allows affordance for
   // replacing any other components of the URL before stripping it.
   // ** NOTE: Only implemented in Desktop **
+  // TOOD(crbug.com/419058674): Clean up up unused functions / params in
+  // TabMatcher.
   virtual bool IsTabOpenWithSameTitleOrSimilarURL(
       const std::u16string& title,
       const GURL& url,
@@ -91,7 +93,8 @@
 
   // Returns tab wrappers for all open tabs for the current profile.
   virtual std::vector<TabWrapper> GetOpenTabs(
-      const AutocompleteInput* input) const;
+      const AutocompleteInput* input,
+      bool exclude_active_tab = true) const;
 };
 
 #endif  // COMPONENTS_OMNIBOX_BROWSER_TAB_MATCHER_H_
diff --git a/components/optimization_guide/core/BUILD.gn b/components/optimization_guide/core/BUILD.gn
index 9a95a5c..d58e35cd 100644
--- a/components/optimization_guide/core/BUILD.gn
+++ b/components/optimization_guide/core/BUILD.gn
@@ -239,6 +239,8 @@
       "model_execution/aqa_response_parser.h",
       "model_execution/execute_remote_fn.cc",
       "model_execution/execute_remote_fn.h",
+      "model_execution/fieldwise_response_parser.cc",
+      "model_execution/fieldwise_response_parser.h",
       "model_execution/json_response_parser.cc",
       "model_execution/json_response_parser.h",
       "model_execution/model_broker_client.cc",
@@ -554,6 +556,7 @@
   if (build_with_model_execution) {
     sources += [
       "model_execution/aqa_response_parser_unittest.cc",
+      "model_execution/fieldwise_response_parser_unittest.cc",
       "model_execution/json_response_parser_unittest.cc",
       "model_execution/model_broker_client_unittest.cc",
       "model_execution/model_execution_features_controller_unittest.cc",
diff --git a/components/optimization_guide/core/model_execution/fieldwise_response_parser.cc b/components/optimization_guide/core/model_execution/fieldwise_response_parser.cc
new file mode 100644
index 0000000..c9b1a96
--- /dev/null
+++ b/components/optimization_guide/core/model_execution/fieldwise_response_parser.cc
@@ -0,0 +1,94 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/optimization_guide/core/model_execution/fieldwise_response_parser.h"
+
+#include <memory>
+#include <optional>
+#include <string>
+
+#include "base/functional/callback.h"
+#include "base/types/expected.h"
+#include "components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h"
+#include "components/optimization_guide/core/optimization_guide_proto_util.h"
+#include "third_party/re2/src/re2/re2.h"
+
+namespace optimization_guide {
+
+namespace {
+
+std::optional<ResponseParsingError> ExecuteExtractor(
+    const proto::FieldExtractor& extractor,
+    const std::string& output,
+    google::protobuf::MessageLite& message) {
+  if (!extractor.has_capturing_regex()) {
+    return ResponseParsingError::kInvalidConfiguration;
+  }
+
+  const RE2 capturing_regex = extractor.capturing_regex();
+  if (capturing_regex.NumberOfCapturingGroups() != 1) {
+    return ResponseParsingError::kInvalidConfiguration;
+  }
+
+  std::string content;
+  if (!RE2::PartialMatch(output, capturing_regex, &content)) {
+    // Do nothing if the regex doesn't match.
+    return std::nullopt;
+  }
+
+  const auto loc = extractor.translation_map().find(content);
+  if (loc != extractor.translation_map().end()) {
+    content = loc->second;
+  }
+
+  const ProtoStatus status =
+      SetProtoValue(&message, extractor.output_field(), content);
+
+  if (status != ProtoStatus::kOk) {
+    return ResponseParsingError::kInvalidConfiguration;
+  }
+
+  return std::nullopt;
+}
+
+}  // namespace
+
+FieldwiseResponseParser::FieldwiseResponseParser(
+    std::string_view proto_type,
+    proto::FieldwiseParserConfig& config,
+    bool suppress_parsing_incomplete_response)
+    : proto_type_(proto_type),
+      config_(config),
+      suppress_parsing_incomplete_response_(
+          suppress_parsing_incomplete_response) {}
+
+void FieldwiseResponseParser::ParseAsync(const std::string& redacted_output,
+                                         ResultCallback result_callback) const {
+  const std::unique_ptr<google::protobuf::MessageLite> message =
+      BuildMessage(proto_type_);
+
+  if (!message) {
+    std::move(result_callback)
+        .Run(base::unexpected(ResponseParsingError::kInvalidConfiguration));
+    return;
+  }
+
+  for (const proto::FieldExtractor& extractor : config_.field_extractors()) {
+    std::optional<ResponseParsingError> error =
+        ExecuteExtractor(extractor, redacted_output, *message);
+
+    if (error) {
+      std::move(result_callback).Run(base::unexpected(*error));
+      return;
+    }
+  }
+
+  std::move(result_callback).Run(AnyWrapProto(*message));
+}
+
+bool FieldwiseResponseParser::SuppressParsingIncompleteResponse() const {
+  return suppress_parsing_incomplete_response_;
+}
+
+}  // namespace optimization_guide
diff --git a/components/optimization_guide/core/model_execution/fieldwise_response_parser.h b/components/optimization_guide/core/model_execution/fieldwise_response_parser.h
new file mode 100644
index 0000000..c2a534de
--- /dev/null
+++ b/components/optimization_guide/core/model_execution/fieldwise_response_parser.h
@@ -0,0 +1,37 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_OPTIMIZATION_GUIDE_CORE_MODEL_EXECUTION_FIELDWISE_RESPONSE_PARSER_H_
+#define COMPONENTS_OPTIMIZATION_GUIDE_CORE_MODEL_EXECUTION_FIELDWISE_RESPONSE_PARSER_H_
+
+#include <string>
+
+#include "components/optimization_guide/core/model_execution/response_parser.h"
+#include "components/optimization_guide/proto/fieldwise_parser_config.pb.h"
+
+namespace optimization_guide {
+
+// A ResponseParser that parses output and saves to specific fields base on the
+// configuration.
+class FieldwiseResponseParser final : public ResponseParser {
+ public:
+  explicit FieldwiseResponseParser(std::string_view proto_type,
+                                   proto::FieldwiseParserConfig& config,
+                                   bool suppress_parsing_incomplete_response);
+
+  // Parses redacted model output.
+  void ParseAsync(const std::string& redacted_output,
+                  ResultCallback result_callback) const override;
+
+  bool SuppressParsingIncompleteResponse() const override;
+
+ private:
+  const std::string proto_type_;
+  const proto::FieldwiseParserConfig config_;
+  const bool suppress_parsing_incomplete_response_;
+};
+
+}  // namespace optimization_guide
+
+#endif  // COMPONENTS_OPTIMIZATION_GUIDE_CORE_MODEL_EXECUTION_FIELDWISE_RESPONSE_PARSER_H_
diff --git a/components/optimization_guide/core/model_execution/fieldwise_response_parser_unittest.cc b/components/optimization_guide/core/model_execution/fieldwise_response_parser_unittest.cc
new file mode 100644
index 0000000..42744f10f
--- /dev/null
+++ b/components/optimization_guide/core/model_execution/fieldwise_response_parser_unittest.cc
@@ -0,0 +1,164 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/optimization_guide/core/model_execution/fieldwise_response_parser.h"
+
+#include <string_view>
+
+#include "base/test/gmock_expected_support.h"
+#include "base/test/test_future.h"
+#include "components/optimization_guide/core/optimization_guide_util.h"
+#include "components/optimization_guide/proto/features/example_for_testing.pb.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace optimization_guide {
+
+namespace {
+
+using ParseResponseFuture =
+    base::test::TestFuture<base::expected<proto::Any, ResponseParsingError>>;
+
+// base::expected GMock matchers.
+using base::test::ErrorIs;
+using base::test::HasValue;
+
+}  // namespace
+
+TEST(FieldwiseResponseParserTest, ParseWithNoOutputField) {
+  proto::FieldwiseParserConfig config;
+  config.add_field_extractors()->set_capturing_regex("a");
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("output", response_future.GetCallback());
+
+  EXPECT_THAT(response_future.Get(),
+              ErrorIs(ResponseParsingError::kInvalidConfiguration));
+}
+
+TEST(FieldwiseResponseParserTest, ParseWithNoCapturingRegex) {
+  proto::FieldwiseParserConfig config;
+  proto::FieldExtractor* field_extractor = config.add_field_extractors();
+  field_extractor->mutable_output_field()
+      ->add_proto_descriptors()
+      ->set_tag_number(
+          proto::ExampleForTestingResponse::kStringValueFieldNumber);
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("output", response_future.GetCallback());
+
+  EXPECT_THAT(response_future.Get(),
+              ErrorIs(ResponseParsingError::kInvalidConfiguration));
+}
+
+TEST(FieldwiseResponseParserTest, ParseWithNonMatchingRegex) {
+  proto::FieldwiseParserConfig config;
+  proto::FieldExtractor* field_extractor = config.add_field_extractors();
+  field_extractor->mutable_output_field()
+      ->add_proto_descriptors()
+      ->set_tag_number(
+          proto::ExampleForTestingResponse::kStringValueFieldNumber);
+  field_extractor->set_capturing_regex("value: (\\w+)");
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("non-matching string", response_future.GetCallback());
+  base::expected<proto::Any, ResponseParsingError> maybe_metadata =
+      response_future.Get();
+
+  ASSERT_THAT(maybe_metadata, HasValue());
+  // We expect the value to be unset, i.e. the default.
+  EXPECT_EQ("",
+            ParsedAnyMetadata<proto::ExampleForTestingResponse>(*maybe_metadata)
+                ->string_value());
+}
+
+TEST(FieldwiseResponseParserTest, ParseString) {
+  proto::FieldwiseParserConfig config;
+  proto::FieldExtractor* field_extractor = config.add_field_extractors();
+  field_extractor->mutable_output_field()
+      ->add_proto_descriptors()
+      ->set_tag_number(
+          proto::ExampleForTestingResponse::kStringValueFieldNumber);
+  field_extractor->set_capturing_regex("value: (\\w+)");
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("value: string_output", response_future.GetCallback());
+  base::expected<proto::Any, ResponseParsingError> maybe_metadata =
+      response_future.Get();
+
+  ASSERT_THAT(maybe_metadata, HasValue());
+  EXPECT_EQ("string_output",
+            ParsedAnyMetadata<proto::ExampleForTestingResponse>(*maybe_metadata)
+                ->string_value());
+}
+
+TEST(FieldwiseResponseParserTest, ParseWithTranslation) {
+  proto::FieldwiseParserConfig config;
+  proto::FieldExtractor* field_extractor = config.add_field_extractors();
+  field_extractor->mutable_output_field()
+      ->add_proto_descriptors()
+      ->set_tag_number(
+          proto::ExampleForTestingResponse::kStringValueFieldNumber);
+  field_extractor->set_capturing_regex("value: (\\w+)");
+  (*field_extractor->mutable_translation_map())["string_output"] =
+      "translated_output";
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("value: string_output", response_future.GetCallback());
+  base::expected<proto::Any, ResponseParsingError> maybe_metadata =
+      response_future.Get();
+
+  ASSERT_THAT(maybe_metadata, HasValue());
+  EXPECT_EQ("translated_output",
+            ParsedAnyMetadata<proto::ExampleForTestingResponse>(*maybe_metadata)
+                ->string_value());
+}
+
+TEST(FieldwiseResponseParserTest, MultipleExtractors) {
+  const auto make_field_extractor = [](const std::string& regex) {
+    proto::FieldExtractor field_extractor;
+    field_extractor.mutable_output_field()
+        ->add_proto_descriptors()
+        ->set_tag_number(
+            proto::ExampleForTestingResponse::kStringValueFieldNumber);
+    field_extractor.set_capturing_regex(regex);
+    return field_extractor;
+  };
+
+  proto::FieldwiseParserConfig config;
+  *config.add_field_extractors() = make_field_extractor("value: (a)b");
+  *config.add_field_extractors() = make_field_extractor("value: a(b)");
+
+  FieldwiseResponseParser parser(
+      "optimization_guide.proto.ExampleForTestingResponse", config,
+      /*suppress_parsing_incomplete_response=*/true);
+  ParseResponseFuture response_future;
+  parser.ParseAsync("value: ab", response_future.GetCallback());
+  base::expected<proto::Any, ResponseParsingError> maybe_metadata =
+      response_future.Get();
+
+  ASSERT_THAT(maybe_metadata, HasValue());
+  // The second extractor should run and overwrite the string_value field
+  // written by the first extractor.
+  EXPECT_EQ("b",
+            ParsedAnyMetadata<proto::ExampleForTestingResponse>(*maybe_metadata)
+                ->string_value());
+}
+
+}  // namespace optimization_guide
diff --git a/components/optimization_guide/core/model_execution/on_device_execution.cc b/components/optimization_guide/core/model_execution/on_device_execution.cc
index 11db37b..8529482 100644
--- a/components/optimization_guide/core/model_execution/on_device_execution.cc
+++ b/components/optimization_guide/core/model_execution/on_device_execution.cc
@@ -386,6 +386,7 @@
         CancelPendingResponse(Result::kContainedPII,
                               ModelExecutionError::kFiltered);
         return;
+      case ResponseParsingError::kInvalidConfiguration:
       case ResponseParsingError::kFailed:
         CancelPendingResponse(Result::kFailedConstructingResponseMessage,
                               ModelExecutionError::kGenericFailure);
diff --git a/components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h b/components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h
index 065665d..bbcff0b 100644
--- a/components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h
+++ b/components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h
@@ -34,12 +34,15 @@
 std::unique_ptr<google::protobuf::MessageLite> GetProtoFromAny(
     const proto::Any& msg);
 
-// Constructs a new proto of `proto_name` type, and sets `value` in it's
-// `proto_field` and returns it wrapped in a proto::Any.
-// Returns nullopt if `proto_field` is not a valid string type field.
-std::optional<proto::Any> SetProtoValue(const std::string& proto_name,
-                                        const proto::ProtoField& proto_field,
-                                        const std::string& value);
+// Builds a new proto message of type `proto_name`.
+std::unique_ptr<google::protobuf::MessageLite> BuildMessage(
+    const std::string& proto_name);
+
+// Sets `value` in `msg`'s `proto_field`. Returns kError if `proto_field` is not
+// a valid string type field.
+ProtoStatus SetProtoValue(google::protobuf::MessageLite* msg,
+                          const proto::ProtoField& proto_field,
+                          const std::string& value);
 
 // Get immutable value for a singular message field.
 // Analogous to google::protobuf::Reflection::GetMessage.
diff --git a/components/optimization_guide/core/model_execution/response_parser.h b/components/optimization_guide/core/model_execution/response_parser.h
index f29d051..52b22ef 100644
--- a/components/optimization_guide/core/model_execution/response_parser.h
+++ b/components/optimization_guide/core/model_execution/response_parser.h
@@ -19,8 +19,12 @@
 enum class ResponseParsingError {
   // Response did not have the expected structure, or similar parsing errors.
   kFailed = 1,
+
   // Response potentially contained disallowed PII.
   kRejectedPii = 2,
+
+  // The response configuration had an error that prevented parsing.
+  kInvalidConfiguration = 3,
 };
 
 // A method for converting model responses to structured data.
diff --git a/components/optimization_guide/core/model_execution/simple_response_parser.cc b/components/optimization_guide/core/model_execution/simple_response_parser.cc
index d670128..0272d6c2 100644
--- a/components/optimization_guide/core/model_execution/simple_response_parser.cc
+++ b/components/optimization_guide/core/model_execution/simple_response_parser.cc
@@ -10,6 +10,8 @@
 #include "base/types/expected.h"
 #include "components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.h"
 #include "components/optimization_guide/core/model_execution/response_parser.h"
+#include "components/optimization_guide/core/optimization_guide_proto_util.h"
+#include "components/optimization_guide/proto/common_types.pb.h"
 
 namespace optimization_guide {
 
@@ -24,13 +26,25 @@
 
 void SimpleResponseParser::ParseAsync(const std::string& redacted_output,
                                       ResultCallback result_callback) const {
-  auto result = SetProtoValue(proto_type_, proto_field_, redacted_output);
-  if (!result) {
+  std::unique_ptr<google::protobuf::MessageLite> message =
+      BuildMessage(proto_type_);
+
+  if (!message) {
     std::move(result_callback)
-        .Run(base::unexpected(ResponseParsingError::kFailed));
+        .Run(base::unexpected(ResponseParsingError::kInvalidConfiguration));
     return;
   }
-  std::move(result_callback).Run(*result);
+
+  ProtoStatus status =
+      SetProtoValue(message.get(), proto_field_, redacted_output);
+
+  if (status != ProtoStatus::kOk) {
+    std::move(result_callback)
+        .Run(base::unexpected(ResponseParsingError::kInvalidConfiguration));
+    return;
+  }
+
+  std::move(result_callback).Run(AnyWrapProto(*message));
 }
 
 bool SimpleResponseParser::SuppressParsingIncompleteResponse() const {
diff --git a/components/optimization_guide/core/model_execution/simple_response_parser_unittest.cc b/components/optimization_guide/core/model_execution/simple_response_parser_unittest.cc
index 88ef7ee..1fa94fe 100644
--- a/components/optimization_guide/core/model_execution/simple_response_parser_unittest.cc
+++ b/components/optimization_guide/core/model_execution/simple_response_parser_unittest.cc
@@ -50,7 +50,8 @@
   auto maybe_metadata = response_future.Get();
 
   EXPECT_FALSE(maybe_metadata.has_value());
-  EXPECT_EQ(maybe_metadata.error(), ResponseParsingError::kFailed);
+  EXPECT_EQ(maybe_metadata.error(),
+            ResponseParsingError::kInvalidConfiguration);
 }
 
 TEST(SimpleResponseParserTest, BadProtoType) {
@@ -61,7 +62,8 @@
   auto maybe_metadata = response_future.Get();
 
   EXPECT_FALSE(maybe_metadata.has_value());
-  EXPECT_EQ(maybe_metadata.error(), ResponseParsingError::kFailed);
+  EXPECT_EQ(maybe_metadata.error(),
+            ResponseParsingError::kInvalidConfiguration);
 }
 
 TEST(SimpleResponseParserTest, NotStringField) {
@@ -73,7 +75,8 @@
   auto maybe_metadata = response_future.Get();
 
   EXPECT_FALSE(maybe_metadata.has_value());
-  EXPECT_EQ(maybe_metadata.error(), ResponseParsingError::kFailed);
+  EXPECT_EQ(maybe_metadata.error(),
+            ResponseParsingError::kInvalidConfiguration);
 }
 
 TEST(SimpleResponseParserTest, SuppressParsingIncompleteResponse) {
diff --git a/components/optimization_guide/internal b/components/optimization_guide/internal
index e3a04a2..e2ed217 160000
--- a/components/optimization_guide/internal
+++ b/components/optimization_guide/internal
@@ -1 +1 @@
-Subproject commit e3a04a219778f8c35eef841cab715b5afd032e2f
+Subproject commit e2ed217bee579af1305ddc5e2f37819d288c7a1c
diff --git a/components/optimization_guide/tools/gen_on_device_proto_descriptors.py b/components/optimization_guide/tools/gen_on_device_proto_descriptors.py
index 68497f9..fd66043 100755
--- a/components/optimization_guide/tools/gen_on_device_proto_descriptors.py
+++ b/components/optimization_guide/tools/gen_on_device_proto_descriptors.py
@@ -247,6 +247,7 @@
     out.write('}  // namespace\n\n')
     _GetProtoValue.GenPublic(out)
     _GetProtoFromAny.GenPublic(out, readable_messages)
+    _BuildMessage.GenPublic(out, writable_messages)
     _SetProtoValue.GenPublic(out)
     _SetProtoFieldString(readable_messages).GenPublic(out)
     _GetProtoMessage(readable_messages).GenPublic(out)
@@ -602,65 +603,85 @@
         out.write('}\n')  # End case
 
 
+class _BuildMessage:
+    """Namespace class for BuildMessage method builders."""
+
+    @classmethod
+    def GenPublic(cls, out: IO[str], messages: list[Message]):
+        out.write('std::unique_ptr<google::protobuf::MessageLite> ')
+        out.write('BuildMessage(\n')
+        out.write('    const std::string& proto_name) {\n')
+        for msg in messages:
+            cls._IfMsg(out, msg)
+        out.write('  return nullptr;\n')
+        out.write('}\n')
+
+    @classmethod
+    def _IfMsg(cls, out: IO[str], msg: Message):
+        out.write(f'if (proto_name == "{msg.type_name}") {{\n')
+        out.write(f'  return std::make_unique<{msg.cpp_name}>();\n')
+        out.write('}\n')
+
+
 class _SetProtoValue:
     """Namespace class for SetProtoValue method builders."""
 
     @classmethod
     def GenPublic(cls, out: IO[str]):
         out.write("""
-      std::optional<proto::Any> SetProtoValue(
-          const std::string& proto_name,
+      ProtoStatus SetProtoValue(
+          google::protobuf::MessageLite* msg,
           const proto::ProtoField& proto_field,
           const std::string& value) {
-        return SetProtoValue(proto_name, proto_field, value, /*index=*/0);
+        return SetProtoValue(msg, proto_field, value, /*index=*/0);
       }
     """)
 
     @classmethod
     def GenPrivate(cls, out: IO[str], messages: list[Message]):
         out.write("""
-      std::optional<proto::Any> SetProtoValue(
-          const std::string& proto_name,
+      ProtoStatus SetProtoValue(
+          google::protobuf::MessageLite* msg,
           const proto::ProtoField& proto_field,
           const std::string& value,
           int32_t index) {
         if (index >= proto_field.proto_descriptors_size()) {
-          return std::nullopt;
+          return ProtoStatus::kError;
         }
     """)
         for msg in messages:
             cls._IfMsg(out, msg)
         out.write("""
-        return std::nullopt;
+        return ProtoStatus::kError;
       }
     """)
 
     @classmethod
+    def _IsSupported(cls, field: Field):
+        return field.type == Type.STRING and not field.is_repeated
+
+    @classmethod
     def _IfMsg(cls, out: IO[str], msg: Message):
-        out.write(f'if (proto_name == "{msg.type_name}") {{\n')
+        if not any(cls._IsSupported(field) for field in msg.fields):
+            return
+
+        out.write(f'if (msg->GetTypeName() == "{msg.type_name}") {{\n')
+        out.write(f'  auto* typed_msg = static_cast<{msg.cpp_name}*>(msg);\n')
         out.write(
-            'switch(proto_field.proto_descriptors(index).tag_number()) {\n')
+            '  switch (proto_field.proto_descriptors(index).tag_number()) {\n')
         for field in msg.fields:
-            cls._FieldCase(out, msg, field)
-        out.write("""
-      default:
-        return std::nullopt;\n
-      """)
-        out.write('}')
+            if cls._IsSupported(field):
+                cls._FieldCase(out, msg, field)
+        out.write('  }\n')
+        out.write('  return ProtoStatus::kError;\n')
         out.write('}\n')  # End if statement
 
     @classmethod
     def _FieldCase(cls, out: IO[str], msg: Message, field: Field):
-        if field.type == Type.STRING and not field.is_repeated:
-            out.write(f'case {field.tag_number}: {{\n')
-            out.write('proto::Any any;\n')
-            out.write(
-                f'any.set_type_url("type.googleapis.com/{msg.type_name}");\n')
-            out.write(f'{msg.cpp_name} response_value;\n')
-            out.write(f'response_value.set_{field.name}(value);')
-            out.write('response_value.SerializeToString(any.mutable_value());')
-            out.write('return any;')
-            out.write('}\n')
+        out.write(f'    case {field.tag_number}: {{\n')
+        out.write(f'      typed_msg->set_{field.name}(value);\n')
+        out.write('      return ProtoStatus::kOk;\n')
+        out.write('    }\n')
 
 
 class _ConvertValue:
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
index 0b9c8509..f48482f 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
@@ -108,7 +108,6 @@
         var delegate = getDelegate();
         PageInfoCookiesSettings.PageInfoCookiesViewParams params =
                 new PageInfoCookiesSettings.PageInfoCookiesViewParams(
-                        /* thirdPartyCookieBlockingEnabled= */ delegate.cookieControlsShown(),
                         /* onThirdPartyCookieToggleChanged= */ this
                                 ::onThirdPartyCookieToggleChanged,
                         /* onClearCallback= */ this::onClearCookiesClicked,
@@ -122,7 +121,7 @@
                         /* fixedExpirationForTesting= */ mFixedExpirationForTesting,
                         /* daysUntilExpirationForTesting= */ mDaysUntilExpirationForTesting);
         mSubPage.setParams(params, delegate);
-        mSubPage.setStatus(mControlsState, mEnforcement, mExpiration);
+        mSubPage.updateState(mControlsState, mEnforcement, mExpiration);
 
         SiteSettingsCategory storageCategory =
                 SiteSettingsCategory.createFromType(
@@ -204,7 +203,7 @@
         updateRowViewSubtitle();
 
         if (mSubPage != null) {
-            mSubPage.setStatus(mControlsState, mEnforcement, mExpiration);
+            mSubPage.updateState(mControlsState, mEnforcement, mExpiration);
         }
     }
 
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesSettings.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesSettings.java
index 317753d..d7974800 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesSettings.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesSettings.java
@@ -69,15 +69,12 @@
 
     /** Parameters to configure the cookie controls view. */
     static class PageInfoCookiesViewParams {
-        // Called when the toggle controlling third-party cookie blocking changes.
-        public final boolean thirdPartyCookieBlockingEnabled;
         public final Callback<Boolean> onThirdPartyCookieToggleChanged;
         public final Runnable onClearCallback;
         public final Runnable onCookieSettingsLinkClicked;
         public final Callback<Activity> onFeedbackLinkClicked;
         public final boolean disableCookieDeletion;
         public final CharSequence hostName;
-        // Block all third-party cookies when Tracking Protection is on.
         public final boolean blockAll3pc;
         public final boolean isIncognito;
         public final boolean isModeBUi;
@@ -85,7 +82,6 @@
         public final int daysUntilExpirationForTesting;
 
         public PageInfoCookiesViewParams(
-                boolean thirdPartyCookieBlockingEnabled,
                 Callback<Boolean> onThirdPartyCookieToggleChanged,
                 Runnable onClearCallback,
                 Runnable onCookieSettingsLinkClicked,
@@ -97,7 +93,6 @@
                 boolean isModeBUi,
                 boolean fixedExpirationForTesting,
                 int daysUntilExpirationForTesting) {
-            this.thirdPartyCookieBlockingEnabled = thirdPartyCookieBlockingEnabled;
             this.onThirdPartyCookieToggleChanged = onThirdPartyCookieToggleChanged;
             this.onClearCallback = onClearCallback;
             this.onCookieSettingsLinkClicked = onCookieSettingsLinkClicked;
@@ -144,10 +139,6 @@
         }
     }
 
-    private String getQuantityString(int resId, int count) {
-        return getContext().getResources().getQuantityString(resId, count, count);
-    }
-
     /**
      * @param delegate {@link PageInfoControllerDelegate} for showing filtered RWS (Related Website
      *     Sets) in settings.
@@ -161,6 +152,11 @@
         mIsIncognito = params.isIncognito;
         mIsModeBUi = params.isModeBUi;
         mDaysUntilExpirationForTesting = params.daysUntilExpirationForTesting;
+        mDeleteDisabled = params.disableCookieDeletion;
+        mOnClearCallback = params.onClearCallback;
+        mOnFeedbackClicked = params.onFeedbackLinkClicked;
+        mHostName = params.hostName;
+
         Preference cookieSummary = assertNonNull(findPreference(COOKIE_SUMMARY_PREFERENCE));
         ChromeClickableSpan linkSpan =
                 new ChromeClickableSpan(
@@ -190,7 +186,6 @@
                         new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
 
         // TODO(crbug.com/40129299): Set a ManagedPreferenceDelegate?
-        mCookieSwitch.setVisible(params.thirdPartyCookieBlockingEnabled);
         mCookieSwitch.setOnPreferenceChangeListener(
                 (preference, newValue) -> {
                     boolean boolValue = (Boolean) newValue;
@@ -205,17 +200,12 @@
                 R.drawable.ic_delete_white_24dp, R.string.page_info_cookies_clear, null);
         // Disabling enables passthrough of clicks to the main preference.
         mCookieInUse.setImageViewEnabled(false);
-        mDeleteDisabled = params.disableCookieDeletion;
         mCookieInUse.setOnPreferenceClickListener(
                 preference -> {
                     showClearCookiesConfirmation();
                     return true;
                 });
         updateCookieDeleteButton();
-
-        mOnClearCallback = params.onClearCallback;
-        mOnFeedbackClicked = params.onFeedbackLinkClicked;
-        mHostName = params.hostName;
     }
 
     private void showClearCookiesConfirmation() {
@@ -235,7 +225,19 @@
                         .show();
     }
 
-    public void set3pcsStatus(
+    public void updateState(
+            @CookieControlsState int controlsState,
+            @CookieControlsEnforcement int enforcement,
+            long expiration) {
+        if (controlsState == CookieControlsState.ACTIVE_TP
+                || controlsState == CookieControlsState.PAUSED_TP) {
+            // TODO(crbug.com/388294499): Add support for TP UI.
+        } else {
+            update3pcState(controlsState, enforcement, expiration);
+        }
+    }
+
+    public void update3pcState(
             @CookieControlsState int controlsState,
             @CookieControlsEnforcement int enforcement,
             long expiration) {
@@ -285,8 +287,6 @@
                     }
                 });
 
-        boolean permanentException = (expiration == 0);
-
         ChromeClickableSpan feedbackSpan =
                 new ChromeClickableSpan(
                         getContext(),
@@ -297,13 +297,9 @@
         if (cookiesBlocked) {
             mThirdPartyCookiesTitle.setTitle(
                     getString(R.string.page_info_cookies_site_not_working_title));
-            int resId =
-                    willCreatePermanentException()
-                            ? R.string.page_info_cookies_site_not_working_description_permanent
-                            : R.string
-                                    .page_info_cookies_site_not_working_description_tracking_protection;
+            int resId = R.string.page_info_cookies_site_not_working_description_tracking_protection;
             mThirdPartyCookiesSummary.setSummary(getString(resId));
-        } else if (permanentException) {
+        } else if (expiration == 0) {
             mThirdPartyCookiesTitle.setTitle(
                     getString(R.string.page_info_cookies_permanent_allowed_title));
             int resId =
@@ -332,20 +328,61 @@
         updateCookieSwitch();
     }
 
-    public void setStatus(
-            @CookieControlsState int controlsState,
-            @CookieControlsEnforcement int enforcement,
-            long expiration) {
-        switch (controlsState) {
-            case CookieControlsState.BLOCKED3PC:
-            case CookieControlsState.ALLOWED3PC:
-            case CookieControlsState.HIDDEN:
-                set3pcsStatus(controlsState, enforcement, expiration);
-                break;
-            case CookieControlsState.PAUSED_TP:
-            case CookieControlsState.ACTIVE_TP:
-                // TODO(crbug.com/388294499): Add support for TP UI.
-                break;
+    /**
+     * Returns the number of days left until the exception expiration.
+     *
+     * @param currentTime Current timestamps (can be obtained using TimeUtils.currentTimeMillis())
+     * @param expiration A timestamp for the expiration.
+     * @return Number of days until expiration. Day boundary is considered to be the local midnight.
+     */
+    public static int calculateDaysUntilExpiration(long currentTime, long expiration) {
+        long currentMidnight = CalendarUtils.getStartOfDay(currentTime).getTime().getTime();
+        long expirationMidnight = CalendarUtils.getStartOfDay(expiration).getTime().getTime();
+        return (int) ((expirationMidnight - currentMidnight) / DateUtils.DAY_IN_MILLIS);
+    }
+
+    private void updateThirdPartyCookiesTitleTemporary(int days) {
+        if (mBlockAll3pc || mIsIncognito || !mIsModeBUi) {
+            mThirdPartyCookiesTitle.setTitle(
+                    days == 0
+                            ? getString(R.string.page_info_cookies_blocking_restart_today_title)
+                            : getQuantityString(
+                                    R.plurals
+                                            .page_info_cookies_blocking_restart_tracking_protection_title,
+                                    days));
+        } else {
+            mThirdPartyCookiesTitle.setTitle(
+                    days == 0
+                            ? getString(R.string.page_info_cookies_limiting_restart_today_title)
+                            : getQuantityString(
+                                    R.plurals.page_info_cookies_limiting_restart_title, days));
+        }
+    }
+
+    private String getQuantityString(int resId, int count) {
+        return getContext().getResources().getQuantityString(resId, count, count);
+    }
+
+    // TODO(crbug.com/388844792): Revert back to two live regions once that's supported.
+    private void updateContentDescriptionsForA11y() {
+        // Combine both the title and the summary into a content description inside of a single a11y
+        // live region.
+        mThirdPartyCookiesTitle.setTitleContentDescription("");
+        mThirdPartyCookiesSummary.setSummaryContentDescription(
+                mThirdPartyCookiesTitle.getTitle() + " " + mThirdPartyCookiesSummary.getSummary());
+    }
+
+    private void updateCookieSwitch() {
+        // TODO(crbug.com/40064612): Update the strings for when FPS are on.
+        if (!mCookieSwitch.isChecked()) {
+            int resId =
+                    mBlockAll3pc || !mIsModeBUi
+                            ? R.string.page_info_tracking_protection_toggle_blocked
+                            : R.string.page_info_tracking_protection_toggle_limited;
+            mCookieSwitch.setSummary(getString(resId));
+        } else {
+            mCookieSwitch.setSummary(
+                    getString(R.string.page_info_tracking_protection_toggle_allowed));
         }
     }
 
@@ -359,6 +396,13 @@
         updateCookieDeleteButton();
     }
 
+    private void updateCookieDeleteButton() {
+        mCookieInUse.setImageColor(
+                !mDeleteDisabled && mDataUsed
+                        ? R.color.default_icon_color_accent1_tint_list
+                        : R.color.default_icon_color_disabled);
+    }
+
     /**
      * Returns a boolean indicating if the RWS info has been shown or not.
      *
@@ -427,68 +471,4 @@
 
         return true;
     }
-
-    /**
-     * Returns the number of days left until the exception expiration.
-     * @param currentTime Current timestamps (can be obtained using TimeUtils.currentTimeMillis())
-     * @param expiration A timestamp for the expiration.
-     * @return Number of days until expiration. Day boundary is considered to be the local midnight.
-     */
-    public static int calculateDaysUntilExpiration(long currentTime, long expiration) {
-        long currentMidnight = CalendarUtils.getStartOfDay(currentTime).getTime().getTime();
-        long expirationMidnight = CalendarUtils.getStartOfDay(expiration).getTime().getTime();
-        return (int) ((expirationMidnight - currentMidnight) / DateUtils.DAY_IN_MILLIS);
-    }
-
-    private void updateCookieDeleteButton() {
-        mCookieInUse.setImageColor(
-                !mDeleteDisabled && mDataUsed
-                        ? R.color.default_icon_color_accent1_tint_list
-                        : R.color.default_icon_color_disabled);
-    }
-
-    private void updateCookieSwitch() {
-        // TODO(crbug.com/40064612): Update the strings for when FPS are on.
-        if (!mCookieSwitch.isChecked()) {
-            int resId =
-                    mBlockAll3pc || !mIsModeBUi
-                            ? R.string.page_info_tracking_protection_toggle_blocked
-                            : R.string.page_info_tracking_protection_toggle_limited;
-            mCookieSwitch.setSummary(getString(resId));
-        } else {
-            mCookieSwitch.setSummary(
-                    getString(R.string.page_info_tracking_protection_toggle_allowed));
-        }
-    }
-
-    // TODO(crbug.com/388844792): Revert back to two live regions once that's supported.
-    private void updateContentDescriptionsForA11y() {
-        // Combine both the title and the summary into a content description inside of a single a11y
-        // live region.
-        mThirdPartyCookiesTitle.setTitleContentDescription("");
-        mThirdPartyCookiesSummary.setSummaryContentDescription(
-                mThirdPartyCookiesTitle.getTitle() + " " + mThirdPartyCookiesSummary.getSummary());
-    }
-
-    private void updateThirdPartyCookiesTitleTemporary(int days) {
-        if (mBlockAll3pc || mIsIncognito || !mIsModeBUi) {
-            mThirdPartyCookiesTitle.setTitle(
-                    days == 0
-                            ? getString(R.string.page_info_cookies_blocking_restart_today_title)
-                            : getQuantityString(
-                                    R.plurals
-                                            .page_info_cookies_blocking_restart_tracking_protection_title,
-                                    days));
-        } else {
-            mThirdPartyCookiesTitle.setTitle(
-                    days == 0
-                            ? getString(R.string.page_info_cookies_limiting_restart_today_title)
-                            : getQuantityString(
-                                    R.plurals.page_info_cookies_limiting_restart_title, days));
-        }
-    }
-
-    private boolean willCreatePermanentException() {
-        return "0d".equals(PageInfoFeatures.getUserBypassExpiration());
-    }
 }
diff --git a/components/payments/content/android/payment_feature_map.cc b/components/payments/content/android/payment_feature_map.cc
index a3e239f..5d99c1c 100644
--- a/components/payments/content/android/payment_feature_map.cc
+++ b/components/payments/content/android/payment_feature_map.cc
@@ -58,7 +58,7 @@
 // Android only features.
 BASE_FEATURE(kAndroidPaymentIntentsOmitDeprecatedParameters,
              "AndroidPaymentIntentsOmitDeprecatedParameters",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 BASE_FEATURE(kGooglePayViaAndroidIntents,
              "GooglePayViaAndroidIntents",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc
index 3ec5d4f..280b3122 100644
--- a/components/payments/content/payment_request.cc
+++ b/components/payments/content/payment_request.cc
@@ -301,10 +301,16 @@
     return;
   }
 
+  VLOG(2) << "PaymentRequest (" << *spec_->details().id
+          << ").show(); had_user_activation: " << had_user_activation;
+
   if (!had_user_activation) {
     PaymentRequestWebContentsManager* manager =
         PaymentRequestWebContentsManager::GetOrCreateForWebContents(
             *web_contents());
+    VLOG(2) << "PaymentRequest (" << *spec_->details().id
+            << ").show(); manager->HadActivationlessShow(): "
+            << manager->HadActivationlessShow();
     if (manager->HadActivationlessShow()) {
       log_.Error(errors::kCannotShowWithoutUserActivation);
       DCHECK(!has_recorded_completion_);
@@ -314,6 +320,9 @@
                        errors::kCannotShowWithoutUserActivation);
       ResetAndDeleteThis();
       return;
+    } else {
+      VLOG(2) << "PaymentRequest (" << *spec_->details().id
+              << ").show(); allowing activationless show";
     }
 
     is_activationless_show_ = true;
diff --git a/components/payments/content/payment_request_web_contents_manager.cc b/components/payments/content/payment_request_web_contents_manager.cc
index 35c89b4..4798c68 100644
--- a/components/payments/content/payment_request_web_contents_manager.cc
+++ b/components/payments/content/payment_request_web_contents_manager.cc
@@ -4,10 +4,25 @@
 
 #include "components/payments/content/payment_request_web_contents_manager.h"
 
+#include "base/logging.h"
 #include "content/public/browser/navigation_handle.h"
 
 namespace payments {
 
+namespace {
+std::string_view GetReloadTypeString(content::ReloadType reload_type) {
+  switch (reload_type) {
+    case content::ReloadType::NONE:
+      return "NONE";
+    case content::ReloadType::NORMAL:
+      return "NORMAL";
+    case content::ReloadType::BYPASSING_CACHE:
+      return "BYPASSING_CACHE";
+  }
+  NOTREACHED();
+}
+}  // namespace
+
 // static
 PaymentRequestWebContentsManager*
 PaymentRequestWebContentsManager::GetOrCreateForWebContents(
@@ -24,13 +39,18 @@
 PaymentRequestWebContentsManager::~PaymentRequestWebContentsManager() = default;
 
 void PaymentRequestWebContentsManager::RecordActivationlessShow() {
+  VLOG(2) << "PaymentRequestWebContentsManager::RecordActivationlessShow()";
   had_activationless_show_ = true;
 }
 
 void PaymentRequestWebContentsManager::DidStartNavigation(
     content::NavigationHandle* navigation_handle) {
-  if (!navigation_handle->IsInPrimaryMainFrame() ||
-      navigation_handle->IsSameDocument()) {
+  const bool in_primary_main_frame = navigation_handle->IsInPrimaryMainFrame();
+  const bool is_same_document = navigation_handle->IsSameDocument();
+  VLOG(2) << "PaymentRequestWebContentsManager::DidStartNavigation(): "
+          << "IsInPrimaryMainFrame()=" << in_primary_main_frame
+          << ", IsSameDocument()=" << is_same_document;
+  if (!in_primary_main_frame || is_same_document) {
     return;
   }
 
@@ -42,10 +62,21 @@
   // TODO(crbug.com/40622940): This check has to be done at DidStartNavigation
   // time, the HasUserGesture state is lost by the time the navigation
   // commits.
-  if ((!navigation_handle->IsRendererInitiated() &&
-       navigation_handle->GetReloadType() == content::ReloadType::NONE) ||
-      navigation_handle->HasUserGesture()) {
+  const bool is_renderer_initiated = navigation_handle->IsRendererInitiated();
+  const content::ReloadType reload_type = navigation_handle->GetReloadType();
+  const bool has_user_gesture = navigation_handle->HasUserGesture();
+  VLOG(2) << "PaymentRequestWebContentsManager::DidStartNavigation(): "
+          << "IsRendererInitiated()=" << is_renderer_initiated
+          << ", GetReloadType()=" << GetReloadTypeString(reload_type)
+          << ", HasUserGesture()= " << has_user_gesture;
+  if ((!is_renderer_initiated && reload_type == content::ReloadType::NONE) ||
+      has_user_gesture) {
+    VLOG(2) << "PaymentRequestWebContentsManager::DidStartNavigation(): "
+            << "Resetting had_activationless_show_";
     had_activationless_show_ = false;
+  } else {
+    VLOG(2) << "PaymentRequestWebContentsManager::DidStartNavigation(): "
+            << "Ignoring navigation, NOT resetting had_activationless_show_";
   }
 }
 
diff --git a/components/performance_manager/metrics/metrics_collector.cc b/components/performance_manager/metrics/metrics_collector.cc
index 8d070aa5..489a194 100644
--- a/components/performance_manager/metrics/metrics_collector.cc
+++ b/components/performance_manager/metrics/metrics_collector.cc
@@ -4,36 +4,27 @@
 
 #include "components/performance_manager/public/metrics/metrics_collector.h"
 
-#include <array>
 #include <optional>
-#include <set>
-#include <string>
+#include <string_view>
 
-#include "base/check_op.h"
-#include "base/containers/contains.h"
-#include "base/functional/bind.h"
-#include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/notreached.h"
-#include "base/numerics/clamped_math.h"
-#include "base/strings/strcat.h"
 #include "base/time/time.h"
-#include "base/timer/timer.h"
-#include "components/performance_manager/public/graph/graph_operations.h"
 #include "components/performance_manager/public/graph/node_attached_data.h"
 #include "content/public/common/process_type.h"
+#include "url/origin.h"
 
 namespace performance_manager {
 
 namespace {
 
-void RecordProcessLifetime(const std::string& histogram_name,
+void RecordProcessLifetime(std::string_view histogram_name,
                            base::TimeDelta lifetime) {
   base::UmaHistogramCustomTimes(histogram_name, lifetime, base::Seconds(1),
                                 base::Days(1), 100);
 }
 
-void RecordShortProcessLifetime(const std::string& histogram_name,
+void RecordShortProcessLifetime(std::string_view histogram_name,
                                 base::TimeDelta lifetime) {
   base::UmaHistogramLongTimes(histogram_name, lifetime);
 }
@@ -66,19 +57,6 @@
   }
 }
 
-bool LoadingStateIsQuiescent(PageNode::LoadingState loading_state) {
-  switch (loading_state) {
-    case PageNode::LoadingState::kLoadingNotStarted:
-    case PageNode::LoadingState::kLoadingTimedOut:
-    case PageNode::LoadingState::kLoadedIdle:
-      return true;
-    case PageNode::LoadingState::kLoading:
-    case PageNode::LoadingState::kLoadedBusy:
-      return false;
-  }
-  NOTREACHED();
-}
-
 }  // namespace
 
 class MetricsReportRecordHolder
@@ -112,89 +90,12 @@
 
 void MetricsCollector::OnPassedToGraph(Graph* graph) {
   RegisterObservers(graph);
-
-  loading_page_counts_.fill(0);
-
-  // Unretained is safe because `this` owns the timer.
-  page_loading_state_timer_.Start(
-      FROM_HERE, base::Seconds(30),
-      base::BindRepeating(&MetricsCollector::RecordLoadingAndQuiescentPageCount,
-                          base::Unretained(this)));
 }
 
 void MetricsCollector::OnTakenFromGraph(Graph* graph) {
-  page_loading_state_timer_.Stop();
   UnregisterObservers(graph);
 }
 
-void MetricsCollector::OnPageNodeAdded(const PageNode* page_node) {
-  // Record the initial state of the page.
-  DCHECK(!base::Contains(mixed_state_pages_, page_node));
-  const auto loading_state =
-      LoadingStateIsQuiescent(page_node->GetLoadingState())
-          ? PageLoadingState::kQuiescent
-          : (page_node->IsVisible() ? PageLoadingState::kLoadingVisible
-                                    : PageLoadingState::kLoadingHidden);
-  UpdateLoadingPageCounts(std::nullopt, loading_state);
-}
-
-void MetricsCollector::OnBeforePageNodeRemoved(const PageNode* page_node) {
-  // Remove the page from all counts.
-  PageLoadingState previous_state;
-  if (LoadingStateIsQuiescent(page_node->GetLoadingState())) {
-    DCHECK(!base::Contains(mixed_state_pages_, page_node));
-    previous_state = PageLoadingState::kQuiescent;
-  } else {
-    size_t erased = mixed_state_pages_.erase(page_node);
-    previous_state =
-        erased ? PageLoadingState::kLoadingMixed
-               : (page_node->IsVisible() ? PageLoadingState::kLoadingVisible
-                                         : PageLoadingState::kLoadingHidden);
-  }
-  UpdateLoadingPageCounts(previous_state, std::nullopt);
-}
-
-void MetricsCollector::OnIsVisibleChanged(const PageNode* page_node) {
-  if (LoadingStateIsQuiescent(page_node->GetLoadingState())) {
-    return;
-  }
-  // Change of visibility makes the state kLoadingMixed if it wasn't already.
-  const auto [_, inserted] = mixed_state_pages_.insert(page_node);
-  if (inserted) {
-    const auto previous_state = page_node->IsVisible()
-                                    ? PageLoadingState::kLoadingHidden
-                                    : PageLoadingState::kLoadingVisible;
-    UpdateLoadingPageCounts(previous_state, PageLoadingState::kLoadingMixed);
-  }
-}
-
-void MetricsCollector::OnLoadingStateChanged(
-    const PageNode* page_node,
-    PageNode::LoadingState previous_state) {
-  const bool is_quiescent =
-      LoadingStateIsQuiescent(page_node->GetLoadingState());
-  const bool was_quiescent = LoadingStateIsQuiescent(previous_state);
-  if (is_quiescent == was_quiescent) {
-    return;
-  }
-  PageLoadingState old_state;
-  PageLoadingState new_state;
-  if (is_quiescent) {
-    size_t erased = mixed_state_pages_.erase(page_node);
-    old_state =
-        erased ? PageLoadingState::kLoadingMixed
-               : (page_node->IsVisible() ? PageLoadingState::kLoadingVisible
-                                         : PageLoadingState::kLoadingHidden);
-    new_state = PageLoadingState::kQuiescent;
-  } else {
-    DCHECK(!base::Contains(mixed_state_pages_, page_node));
-    old_state = PageLoadingState::kQuiescent;
-    new_state = page_node->IsVisible() ? PageLoadingState::kLoadingVisible
-                                       : PageLoadingState::kLoadingHidden;
-  }
-  UpdateLoadingPageCounts(old_state, new_state);
-}
-
 void MetricsCollector::OnUkmSourceIdChanged(const PageNode* page_node) {
   ukm::SourceId ukm_source_id = page_node->GetUkmSourceID();
   UpdateUkmSourceIdForPage(page_node, ukm_source_id);
@@ -259,13 +160,11 @@
 }
 
 void MetricsCollector::RegisterObservers(Graph* graph) {
-  graph->AddFrameNodeObserver(this);
   graph->AddPageNodeObserver(this);
   graph->AddProcessNodeObserver(this);
 }
 
 void MetricsCollector::UnregisterObservers(Graph* graph) {
-  graph->RemoveFrameNodeObserver(this);
   graph->RemovePageNodeObserver(this);
   graph->RemoveProcessNodeObserver(this);
 }
@@ -312,54 +211,4 @@
   }
 }
 
-void MetricsCollector::UpdateLoadingPageCounts(
-    std::optional<PageLoadingState> old_state,
-    std::optional<PageLoadingState> new_state) {
-  CHECK(old_state != new_state);
-  if (old_state.has_value()) {
-    loading_page_counts_.at(static_cast<size_t>(old_state.value())) -= 1;
-  }
-  if (new_state.has_value()) {
-    loading_page_counts_.at(static_cast<size_t>(new_state.value())) += 1;
-  }
-}
-
-void MetricsCollector::RecordLoadingAndQuiescentPageCount() const {
-  // Record all loading state counts.
-  constexpr char kLoadingPageCountHistogram[] =
-      "PerformanceManager.LoadingNotQuiescentPageCount";
-  base::ClampedNumeric<size_t> total_count = 0;
-  for (size_t i = 0; i < loading_page_counts_.size(); ++i) {
-    const auto loading_state = static_cast<PageLoadingState>(i);
-    CHECK_LE(loading_state, PageLoadingState::kMaxValue);
-    const auto count = loading_page_counts_.at(i);
-    const char* visibility_string = [loading_state]() -> const char* {
-      switch (loading_state) {
-        case PageLoadingState::kLoadingVisible:
-          return ".Visible";
-        case PageLoadingState::kLoadingHidden:
-          return ".Hidden";
-        case PageLoadingState::kLoadingMixed:
-          return ".MixedVisibility";
-        case PageLoadingState::kQuiescent:
-          // Don't log here, not loading.
-          return nullptr;
-      }
-      NOTREACHED();
-    }();
-    if (visibility_string) {
-      base::UmaHistogramCounts1000(
-          base::StrCat({kLoadingPageCountHistogram, visibility_string}), count);
-      total_count += count;
-    }
-  }
-  base::UmaHistogramCounts1000(
-      base::StrCat({kLoadingPageCountHistogram, ".All"}), total_count);
-
-  // Record quiescent state count.
-  base::UmaHistogramCounts1000("PerformanceManager.QuiescentPageCount",
-                               loading_page_counts_.at(static_cast<size_t>(
-                                   PageLoadingState::kQuiescent)));
-}
-
 }  // namespace performance_manager
diff --git a/components/performance_manager/public/metrics/metrics_collector.h b/components/performance_manager/public/metrics/metrics_collector.h
index 05512b81..8c3ba4d3 100644
--- a/components/performance_manager/public/metrics/metrics_collector.h
+++ b/components/performance_manager/public/metrics/metrics_collector.h
@@ -5,19 +5,13 @@
 #ifndef COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_METRICS_METRICS_COLLECTOR_H_
 #define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_METRICS_METRICS_COLLECTOR_H_
 
-#include <array>
-#include <optional>
-#include <set>
-
-#include "base/numerics/clamped_math.h"
 #include "base/time/time.h"
-#include "base/timer/timer.h"
-#include "components/performance_manager/public/graph/frame_node.h"
 #include "components/performance_manager/public/graph/graph.h"
 #include "components/performance_manager/public/graph/page_node.h"
 #include "components/performance_manager/public/graph/process_node.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
+#include "url/gurl.h"
 
 namespace performance_manager {
 
@@ -25,8 +19,7 @@
 extern const int kDefaultFrequencyUkmEQTReported;
 
 // The MetricsCollector is a graph observer that reports UMA/UKM.
-class MetricsCollector : public FrameNodeObserver,
-                         public GraphOwned,
+class MetricsCollector : public GraphOwned,
                          public PageNodeObserver,
                          public ProcessNodeObserver {
  public:
@@ -42,11 +35,6 @@
   void OnTakenFromGraph(Graph* graph) override;
 
   // PageNodeObserver implementation:
-  void OnPageNodeAdded(const PageNode* page_node) override;
-  void OnBeforePageNodeRemoved(const PageNode* page_node) override;
-  void OnIsVisibleChanged(const PageNode* page_node) override;
-  void OnLoadingStateChanged(const PageNode* page_node,
-                             PageNode::LoadingState previous_state) override;
   void OnUkmSourceIdChanged(const PageNode* page_node) override;
   void OnMainFrameDocumentChanged(const PageNode* page_node) override;
 
@@ -72,20 +60,6 @@
   static MetricsReportRecord* GetMetricsReportRecord(const PageNode* page_node);
   static UkmCollectionState* GetUkmCollectionState(const PageNode* page_node);
 
-  enum class PageLoadingState : size_t {
-    // Loading, visible for the whole load.
-    kLoadingVisible = 0,
-    // Loading, hidden for the whole load.
-    kLoadingHidden,
-    // Loading, mix of visible and hidden.
-    kLoadingMixed,
-    // Not loading or reached quiescence after load.
-    kQuiescent,
-    kMaxValue = kQuiescent,
-  };
-  static constexpr size_t kNumLoadingStates =
-      static_cast<size_t>(PageLoadingState::kMaxValue) + 1;
-
   // (Un)registers the various node observer flavors of this object with the
   // graph. These are invoked by OnPassedToGraph and OnTakenFromGraph, but
   // hoisted to their own functions for testing.
@@ -97,24 +71,6 @@
                                 ukm::SourceId ukm_source_id);
 
   void OnProcessDestroyed(const ProcessNode* process_node);
-
-  // Decrements the count for `old_state` (which should be nullopt for a new
-  // page with no previous state), and increments the count for `new_state`
-  // (nullopt for pages being destroyed).
-  void UpdateLoadingPageCounts(std::optional<PageLoadingState> old_state,
-                               std::optional<PageLoadingState> new_state);
-  void RecordLoadingAndQuiescentPageCount() const;
-
-  // Timer used to schedule QuiescentPageCount metrics.
-  base::RepeatingTimer page_loading_state_timer_;
-
-  // Count of PageNodes, split by loading state.
-  std::array<base::ClampedNumeric<size_t>, kNumLoadingStates>
-      loading_page_counts_;
-
-  // Nodes in visibility state kMixed, since this can't be calculated from the
-  // PageNode alone.
-  std::set<const PageNode*> mixed_state_pages_;
 };
 
 }  // namespace performance_manager
diff --git a/components/saved_tab_groups/internal/BUILD.gn b/components/saved_tab_groups/internal/BUILD.gn
index d821936a..dbbf0f5 100644
--- a/components/saved_tab_groups/internal/BUILD.gn
+++ b/components/saved_tab_groups/internal/BUILD.gn
@@ -219,7 +219,7 @@
     "//chrome/browser/sync/test/integration:*",
     "//chrome/browser/ui",
     "//chrome/browser/ui/tabs:tab_group_impl",
-    "//chrome/test:browser_tests",
+    "//chrome/test:*",
     "//ios/chrome/browser/saved_tab_groups/model",
     "//ios/chrome/test/app:test_support",
   ]
diff --git a/components/tabs/public/split_tab_visual_data.h b/components/tabs/public/split_tab_visual_data.h
index 1511364..a533950b 100644
--- a/components/tabs/public/split_tab_visual_data.h
+++ b/components/tabs/public/split_tab_visual_data.h
@@ -21,7 +21,8 @@
 class SplitTabVisualData {
  public:
   SplitTabVisualData();
-  SplitTabVisualData(SplitTabLayout split_layout_, double split_ratio);
+  explicit SplitTabVisualData(SplitTabLayout split_layout);
+  SplitTabVisualData(SplitTabLayout split_layout, double split_ratio);
   ~SplitTabVisualData();
 
   SplitTabVisualData(const SplitTabVisualData& other) = default;
@@ -47,7 +48,7 @@
  private:
   SplitTabLayout split_layout_;
   // ratio of the first split tab's width to the available width.
-  double split_ratio_;
+  double split_ratio_ = 0.5;
 };
 
 }  // namespace split_tabs
diff --git a/components/tabs/split_tab_visual_data.cc b/components/tabs/split_tab_visual_data.cc
index f2a8520..f34eda3 100644
--- a/components/tabs/split_tab_visual_data.cc
+++ b/components/tabs/split_tab_visual_data.cc
@@ -7,7 +7,10 @@
 namespace split_tabs {
 
 SplitTabVisualData::SplitTabVisualData()
-    : split_layout_(SplitTabLayout::kVertical), split_ratio_(0.5) {}
+    : split_layout_(SplitTabLayout::kVertical) {}
+
+SplitTabVisualData::SplitTabVisualData(SplitTabLayout split_layout)
+    : split_layout_(split_layout) {}
 
 SplitTabVisualData::SplitTabVisualData(SplitTabLayout split_layout,
                                        double split_ratio)
diff --git a/components/visited_url_ranking/internal/url_grouping/group_suggestions_manager.cc b/components/visited_url_ranking/internal/url_grouping/group_suggestions_manager.cc
index bf5cea8..050db76c 100644
--- a/components/visited_url_ranking/internal/url_grouping/group_suggestions_manager.cc
+++ b/components/visited_url_ranking/internal/url_grouping/group_suggestions_manager.cc
@@ -46,6 +46,9 @@
   fetcher_sources.emplace(
       Fetcher::kTabModel,
       FetchOptions::FetchSources({FetchOptions::Source::kLocal}));
+  fetcher_sources.emplace(
+      Fetcher::kHistory,
+      FetchOptions::FetchSources({FetchOptions::Source::kLocal}));
 
   std::map<URLVisitAggregate::URLType, FetchOptions::ResultOption> result_map;
   result_map[URLVisitAggregate::URLType::kActiveLocalTab] =
diff --git a/components/visited_url_ranking/internal/url_grouping/group_suggestions_tracker.cc b/components/visited_url_ranking/internal/url_grouping/group_suggestions_tracker.cc
index 862be54..ec1d831 100644
--- a/components/visited_url_ranking/internal/url_grouping/group_suggestions_tracker.cc
+++ b/components/visited_url_ranking/internal/url_grouping/group_suggestions_tracker.cc
@@ -12,6 +12,7 @@
 #include "base/containers/flat_set.h"
 #include "base/hash/hash.h"
 #include "base/json/values_util.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/time/time.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
@@ -238,8 +239,16 @@
            features::kGroupSuggestionThrottleAgeLimit.Get();
   });
 
-  if (HasOverlappingTabs(suggestion) ||
-      HasOverlappingHosts(suggestion, inputs)) {
+  if (HasOverlappingTabs(suggestion)) {
+    base::UmaHistogramEnumeration(
+        "GroupSuggestionsService.SuggestionThrottledReason",
+        TabGroupSuggestionThrottleReason::kOverlappingTabs);
+    return false;
+  }
+  if (HasOverlappingHosts(suggestion, inputs)) {
+    base::UmaHistogramEnumeration(
+        "GroupSuggestionsService.SuggestionThrottledReason",
+        TabGroupSuggestionThrottleReason::kOverlappingHosts);
     return false;
   }
 
diff --git a/components/visited_url_ranking/internal/url_grouping/grouping_heuristics.cc b/components/visited_url_ranking/internal/url_grouping/grouping_heuristics.cc
index 4a086bb..9ce6f88a 100644
--- a/components/visited_url_ranking/internal/url_grouping/grouping_heuristics.cc
+++ b/components/visited_url_ranking/internal/url_grouping/grouping_heuristics.cc
@@ -288,7 +288,7 @@
             history->last_visited.content_annotations.model_annotations
                 .visibility_score > kVisibilityScoreThreshold;
       }
-    };
+    }
   }
 
   // Return false if all tabs in the suggestion do not have a score, or if any
@@ -364,6 +364,11 @@
   }
 
   if (!IsGroupVisible(suggestion, candidates)) {
+    VLOG(1) << "Suggestion discarded due to visibility";
+    base::UmaHistogramEnumeration(
+        "GroupSuggestionsService.SuggestionThrottledReason",
+        TabGroupSuggestionThrottleReason::kGroupNotVisible);
+
     return std::nullopt;
   }
 
diff --git a/components/visited_url_ranking/public/url_grouping/group_suggestions.h b/components/visited_url_ranking/public/url_grouping/group_suggestions.h
index 7b8bf19..2edc5e4 100644
--- a/components/visited_url_ranking/public/url_grouping/group_suggestions.h
+++ b/components/visited_url_ranking/public/url_grouping/group_suggestions.h
@@ -77,6 +77,18 @@
 // Returns a string representation of the reason.
 const char* GetSuggestionReasonString(GroupSuggestion::SuggestionReason reason);
 
+// LINT.IfChange
+// These values are persisted to logs. Entries should not be
+// renumbered and numeric values should never be reused.
+enum class TabGroupSuggestionThrottleReason {
+  kUnknown = 0,
+  kOverlappingTabs = 1,
+  kOverlappingHosts = 2,
+  kGroupNotVisible = 3,
+  kMaxValue = kGroupNotVisible
+};
+// LINT.ThenChange(/tools/metrics/histograms/visited_url_ranking/enums.xml:TabGroupSuggestionThrottleReason)
+
 }  // namespace visited_url_ranking
 
 #endif  // COMPONENTS_VISITED_URL_RANKING_PUBLIC_URL_GROUPING_GROUP_SUGGESTIONS_H_
diff --git a/components/viz/service/display/resource_fence.cc b/components/viz/service/display/resource_fence.cc
index 0ae81f3..69a3025 100644
--- a/components/viz/service/display/resource_fence.cc
+++ b/components/viz/service/display/resource_fence.cc
@@ -20,9 +20,15 @@
 }
 
 void ResourceFence::FencePassed() {
-  if (resource_provider_) {
-    resource_provider_->OnResourceFencePassed(this,
-                                              std::move(deferred_resources_));
+  if (auto* resource_provider = resource_provider_.get()) {
+    // Disallow access to GPU thread for Android WebView since the fence will be
+    // processed asynchronously after we exit the RenderThread runloop. This is
+    // not needed for Chromium, but we can't distinguish between Chromium and
+    // Android WebView here, so always disallow GPU thread access.
+    DisplayResourceProvider::ScopedBatchReturnResources returner(
+        resource_provider, /*allow_access_to_gpu_thread=*/false);
+    resource_provider->OnResourceFencePassed(this,
+                                             std::move(deferred_resources_));
   }
 }
 
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
index 5a6426b..15a3c71 100644
--- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
+++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
@@ -2651,6 +2651,14 @@
   WaitForAccessibilityTreeToContainNodeWithName(shell()->web_contents(),
                                                 "Go to Inner 2");
 
+  // According to a comment in `browser_test_utils.h`, which landed in
+  // crrev.com/c/6427062, "Input event to a page may not work right after a page
+  // load. See `SimulateEndOfPaintHoldingOnPrimaryMainFrame` for a workaround."
+  // This workaround is being attempted in order to eliminate some test
+  // flakiness in which `PressTabAndWaitForFocusChange` is called exactly once
+  // and then times out.
+  content::SimulateEndOfPaintHoldingOnPrimaryMainFrame(shell()->web_contents());
+
   // Keep pressing Tab until we get to the "Go to Inner 2" link in the
   // inner iframe.
   while (GetNameOfFocusedNode() != "Go to Inner 2") {
diff --git a/content/browser/aggregation_service/report_scheduler_timer.cc b/content/browser/aggregation_service/report_scheduler_timer.cc
index 73ad8f8..fe92363 100644
--- a/content/browser/aggregation_service/report_scheduler_timer.cc
+++ b/content/browser/aggregation_service/report_scheduler_timer.cc
@@ -20,20 +20,6 @@
 
 namespace content {
 
-namespace {
-
-bool InStandby(base::TimeDelta difference, base::TimeDelta cutoff) {
-  return difference > cutoff;
-}
-
-}  // namespace
-
-ReportSchedulerTimer::ReportSchedulerTimer(std::unique_ptr<Delegate> delegate,
-                                           base::TimeDelta navigation_window)
-    : delegate_(std::move(delegate)), navigation_window_(navigation_window) {
-  CHECK(delegate_);
-}
-
 ReportSchedulerTimer::ReportSchedulerTimer(std::unique_ptr<Delegate> delegate)
     : delegate_(std::move(delegate)) {
   CHECK(delegate_);
@@ -63,8 +49,7 @@
 void ReportSchedulerTimer::MaybeSet(std::optional<base::Time> reporting_time) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  if (!reporting_time.has_value() ||
-      (!IsNavigationFeatureEnabled() && IsOffline()) || standby_mode_) {
+  if (!reporting_time.has_value() || IsOffline()) {
     return;
   }
   if (!reporting_time_reached_timer_.IsRunning() ||
@@ -75,8 +60,7 @@
 }
 
 void ReportSchedulerTimer::Refresh(base::Time now) {
-  CHECK(!standby_mode_);
-  if (!IsNavigationFeatureEnabled() && IsOffline()) {
+  if (IsOffline()) {
     return;
   }
 
@@ -89,15 +73,6 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   base::Time now = base::Time::Now();
-  if (IsNavigationFeatureEnabled()) {
-    standby_mode_ =
-        !last_navigation_time_.has_value() ||
-        InStandby(now - *last_navigation_time_, *navigation_window_);
-    if (standby_mode_) {
-      // Nothing needs to be queued until a new navigation is received.
-      return;
-    }
-  }
   delegate_->OnReportingTimeReached(
       now, reporting_time_reached_timer_.desired_run_time());
   Refresh(now);
@@ -122,27 +97,6 @@
   }
 }
 
-void ReportSchedulerTimer::OnNewNavigation() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (!IsNavigationFeatureEnabled()) {
-    return;
-  }
-  last_navigation_time_ = base::Time::Now();
-
-  // Standby mode only starts when the timer fires while past the standby
-  // cutoff, i.e. when a report is scheduled to be sent but is prevented due to
-  // not having a recent enough navigation. Therefore if we're in standby mode
-  // there must be a report ready to be sent.
-  if (standby_mode_) {
-    standby_mode_ = false;
-
-    // Add delay to all reports that should have been sent while the report
-    // timer was in standby so they are not temporally joinable.
-    delegate_->AdjustOfflineReportTimes(base::BindOnce(
-        &ReportSchedulerTimer::MaybeSet, weak_ptr_factory_.GetWeakPtr()));
-  }
-}
-
 bool ReportSchedulerTimer::IsOffline() const {
   return connection_type_ == network::mojom::ConnectionType::CONNECTION_NONE;
 }
diff --git a/content/browser/aggregation_service/report_scheduler_timer.h b/content/browser/aggregation_service/report_scheduler_timer.h
index 37ad4429..5e57c40a 100644
--- a/content/browser/aggregation_service/report_scheduler_timer.h
+++ b/content/browser/aggregation_service/report_scheduler_timer.h
@@ -13,12 +13,15 @@
 #include "base/scoped_observation.h"
 #include "base/sequence_checker.h"
 #include "base/thread_annotations.h"
-#include "base/time/time.h"
 #include "base/timer/wall_clock_timer.h"
 #include "content/common/content_export.h"
 #include "services/network/public/cpp/network_connection_tracker.h"
 #include "services/network/public/mojom/network_change_manager.mojom.h"
 
+namespace base {
+class Time;
+}  // namespace base
+
 namespace content {
 
 // This class consolidates logic regarding when to schedule the browser to send
@@ -59,11 +62,6 @@
 
   explicit ReportSchedulerTimer(std::unique_ptr<Delegate> delegate);
 
-  // Initiates the timer with navigation properties, firing report sends only
-  // if there's a recent enough navigation to support the send.
-  ReportSchedulerTimer(std::unique_ptr<Delegate> delegate,
-                       base::TimeDelta navigation_window);
-
   ReportSchedulerTimer(const ReportSchedulerTimer&) = delete;
   ReportSchedulerTimer& operator=(const ReportSchedulerTimer&) = delete;
   ReportSchedulerTimer(ReportSchedulerTimer&&) = delete;
@@ -77,10 +75,6 @@
   // timer is already set to fire earlier.
   void MaybeSet(std::optional<base::Time> reporting_time);
 
-  // Updates `last_navigation_time_` and notifies delegate if any report was
-  // pending.
-  void OnNewNavigation();
-
  private:
   void OnTimerFired();
   void Refresh(base::Time now) VALID_CONTEXT_REQUIRED(sequence_checker_);
@@ -95,10 +89,6 @@
 
   bool IsOffline() const VALID_CONTEXT_REQUIRED(sequence_checker_);
 
-  bool IsNavigationFeatureEnabled() const {
-    return navigation_window_.has_value();
-  }
-
   // Fires whenever a reporting time is reached for a report. Must be updated
   // whenever the next report time changes.
   base::WallClockTimer reporting_time_reached_timer_
@@ -115,12 +105,6 @@
       network::NetworkConnectionTracker::NetworkConnectionObserver>
       obs_ GUARDED_BY_CONTEXT(sequence_checker_){this};
 
-  std::optional<base::Time> last_navigation_time_;
-
-  std::optional<base::TimeDelta> navigation_window_;
-
-  bool standby_mode_ = false;
-
   SEQUENCE_CHECKER(sequence_checker_);
 
   base::WeakPtrFactory<ReportSchedulerTimer> weak_ptr_factory_{this};
diff --git a/content/browser/attribution_reporting/attribution_features.cc b/content/browser/attribution_reporting/attribution_features.cc
index 88a50e9..cf4c983 100644
--- a/content/browser/attribution_reporting/attribution_features.cc
+++ b/content/browser/attribution_reporting/attribution_features.cc
@@ -5,20 +5,9 @@
 #include "content/browser/attribution_reporting/attribution_features.h"
 
 #include "base/feature_list.h"
-#include "base/metrics/field_trial_params.h"
-#include "base/time/time.h"
 
 namespace content {
 
-BASE_FEATURE(kAttributionReportDeliveryOnNewNavigation,
-             "AttributionReportDeliveryOnNewNavigation",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
-const base::FeatureParam<base::TimeDelta>
-    kAttributionReportingNavigationForReportDeliveryWindow{
-        &kAttributionReportDeliveryOnNewNavigation, "navigation_window",
-        base::Minutes(2)};
-
 BASE_FEATURE(kAttributionReportExpiry,
              "AttributionReportExpiry",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/content/browser/attribution_reporting/attribution_features.h b/content/browser/attribution_reporting/attribution_features.h
index 5ba4e0b..04a60c0 100644
--- a/content/browser/attribution_reporting/attribution_features.h
+++ b/content/browser/attribution_reporting/attribution_features.h
@@ -6,20 +6,10 @@
 #define CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_FEATURES_H_
 
 #include "base/feature_list.h"
-#include "base/metrics/field_trial_params.h"
 #include "content/common/content_export.h"
 
-namespace base {
-class TimeDelta;
-}  // namespace base
-
 namespace content {
 
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kAttributionReportDeliveryOnNewNavigation);
-
-CONTENT_EXPORT extern const base::FeatureParam<base::TimeDelta>
-    kAttributionReportingNavigationForReportDeliveryWindow;
-
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kAttributionReportExpiry);
 
 }  // namespace content
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc
index 2bb7b67..7374093 100644
--- a/content/browser/attribution_reporting/attribution_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_manager_impl.cc
@@ -725,13 +725,8 @@
   DCHECK(report_sender_);
   DCHECK(os_level_manager_);
 
-  scheduler_timer_ =
-      base::FeatureList::IsEnabled(kAttributionReportDeliveryOnNewNavigation)
-          ? std::make_unique<ReportSchedulerTimer>(
-                std::make_unique<ReportScheduler>(weak_factory_.GetWeakPtr()),
-                kAttributionReportingNavigationForReportDeliveryWindow.Get())
-          : std::make_unique<ReportSchedulerTimer>(
-                std::make_unique<ReportScheduler>(weak_factory_.GetWeakPtr()));
+  scheduler_timer_ = std::make_unique<ReportSchedulerTimer>(
+      std::make_unique<ReportScheduler>(weak_factory_.GetWeakPtr()));
 }
 
 AttributionManagerImpl::~AttributionManagerImpl() {
@@ -1128,7 +1123,6 @@
 void AttributionManagerImpl::UpdateLastNavigationTime(
     base::Time navigation_time) {
   last_navigation_time_ = navigation_time;
-  scheduler_timer_->OnNewNavigation();
 }
 
 void AttributionManagerImpl::GetReportsToSend() {
diff --git a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
index a53df30..833874d 100644
--- a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
@@ -2377,53 +2377,6 @@
   histograms.ExpectUniqueSample("Conversions.ReportSendOutcome3", 1, 1);
 }
 
-class AttributionManagerImplTestDeliverOnNewNavigation
-    : public AttributionManagerImplTest {
- public:
-  AttributionManagerImplTestDeliverOnNewNavigation() {
-    scoped_feature_list_.Reset();
-    scoped_feature_list_.InitAndEnableFeature(
-        kAttributionReportDeliveryOnNewNavigation);
-  }
-};
-
-TEST_F(AttributionManagerImplTestDeliverOnNewNavigation,
-       SendReportAfterNewNavigation) {
-  base::HistogramTester histograms;
-
-  Checkpoint checkpoint;
-  {
-    InSequence seq;
-
-    EXPECT_CALL(*report_sender_, SendReport(_, /*is_debug_report=*/false, _))
-        .Times(0);
-    EXPECT_CALL(checkpoint, Call(1));
-    EXPECT_CALL(*report_sender_, SendReport(_, /*is_debug_report=*/false, _))
-        .Times(2);
-  }
-
-  base::Time start = base::Time::Now();
-  attribution_manager_->UpdateLastNavigationTime(start);
-
-  attribution_manager_->HandleSource(
-      SourceBuilder().SetExpiry(kImpressionExpiry).Build(), kFrameId);
-  attribution_manager_->HandleTrigger(DefaultTrigger(), kFrameId);
-  attribution_manager_->HandleTrigger(DefaultTrigger(), kFrameId);
-
-  EXPECT_THAT(StoredReports(), SizeIs(2));
-
-  task_environment_.FastForwardBy(base::Days(20));
-  checkpoint.Call(1);
-
-  SetConnectionTypeAndWaitForObserversToBeNotified(
-      network::mojom::ConnectionType::CONNECTION_NONE);
-
-  attribution_manager_->UpdateLastNavigationTime(base::Time::Now());
-
-  // Should call SendReport even though the connection is offline.
-  task_environment_.FastForwardBy(kDefaultOfflineReportDelay.max);
-}
-
 TEST_F(AttributionManagerImplTest, SendReportsFromWebUI_DoesNotRecordMetrics) {
   base::HistogramTester histograms;
 
diff --git a/content/browser/attribution_reporting/interop/interop_unittest.cc b/content/browser/attribution_reporting/interop/interop_unittest.cc
index cc8c5ce..7857862 100644
--- a/content/browser/attribution_reporting/interop/interop_unittest.cc
+++ b/content/browser/attribution_reporting/interop/interop_unittest.cc
@@ -52,30 +52,28 @@
 
 const aggregation_service::TestHpkeKey kHpkeKey;
 
-std::vector<base::FilePath> GetInputDirs() {
-  base::FilePath input_dir, interop_dir, interop_private_dir;
+base::FilePath GetInputDir() {
+  base::FilePath input_dir;
   base::PathService::Get(base::DIR_SRC_TEST_DATA_ROOT, &input_dir);
-  interop_dir =
-      input_dir.AppendASCII("content/test/data/attribution_reporting/interop");
-  interop_private_dir = input_dir.AppendASCII(
-      "content/test/data/attribution_reporting/interop_private");
-  return {interop_dir, interop_private_dir};
+  return input_dir.AppendASCII(
+      "content/test/data/attribution_reporting/interop");
 }
 
 std::vector<base::FilePath> GetInputs() {
+  base::FilePath input_dir = GetInputDir();
+
   std::vector<base::FilePath> input_paths;
-  for (base::FilePath input_dir : GetInputDirs()) {
-    base::FileEnumerator e(input_dir, /*recursive=*/false,
-                           base::FileEnumerator::FILES,
-                           FILE_PATH_LITERAL("*.json"));
 
-    for (base::FilePath name = e.Next(); !name.empty(); name = e.Next()) {
-      if (name.BaseName().MaybeAsASCII() == kDefaultConfigFileName) {
-        continue;
-      }
+  base::FileEnumerator e(input_dir, /*recursive=*/false,
+                         base::FileEnumerator::FILES,
+                         FILE_PATH_LITERAL("*.json"));
 
-      input_paths.push_back(std::move(name));
+  for (base::FilePath name = e.Next(); !name.empty(); name = e.Next()) {
+    if (name.BaseName().MaybeAsASCII() == kDefaultConfigFileName) {
+      continue;
     }
+
+    input_paths.push_back(std::move(name));
   }
 
   return input_paths;
@@ -245,7 +243,7 @@
   static void SetUpTestSuite() {
     ASSERT_OK_AND_ASSIGN(
         g_config_, ParseAttributionInteropConfig(ParseDictFromFile(
-                       GetInputDirs()[0].AppendASCII(kDefaultConfigFileName))));
+                       GetInputDir().AppendASCII(kDefaultConfigFileName))));
   }
 
  protected:
diff --git a/content/browser/attribution_reporting/interop/parser.cc b/content/browser/attribution_reporting/interop/parser.cc
index 2bf3f4f7..09397a1 100644
--- a/content/browser/attribution_reporting/interop/parser.cc
+++ b/content/browser/attribution_reporting/interop/parser.cc
@@ -173,8 +173,6 @@
       bool required) && {
     interop_config.needs_cross_app_web =
         ParseBool(dict, "needs_cross_app_web").value_or(false);
-    interop_config.needs_delivery_after_new_navigation =
-        ParseBool(dict, "needs_delivery_after_new_navigation").value_or(false);
 
     AttributionConfig& config = interop_config.attribution_config;
 
@@ -381,10 +379,6 @@
                   /*previous_time=*/events.empty() ? base::Time::Min()
                                                    : events.back().time,
                   /*strictly_greater=*/true);
-    if (dict.FindBool("navigation").value_or(false)) {
-      events.emplace_back(time, AttributionSimulationEvent::Navigation());
-      return;
-    }
 
     std::optional<SuitableOrigin> context_origin;
     AttributionReportingEligibility eligibility;
diff --git a/content/browser/attribution_reporting/interop/parser.h b/content/browser/attribution_reporting/interop/parser.h
index c3aab57..dd9c959 100644
--- a/content/browser/attribution_reporting/interop/parser.h
+++ b/content/browser/attribution_reporting/interop/parser.h
@@ -72,9 +72,7 @@
     int64_t request_id;
   };
 
-  struct Navigation {};
-
-  using Data = std::variant<StartRequest, Response, EndRequest, Navigation>;
+  using Data = std::variant<StartRequest, Response, EndRequest>;
 
   base::Time time;
   Data data;
@@ -102,7 +100,6 @@
   double max_event_level_epsilon = 0;
   uint32_t max_trigger_state_cardinality = 0;
   bool needs_cross_app_web = false;
-  bool needs_delivery_after_new_navigation = false;
   std::vector<url::Origin> aggregation_coordinator_origins;
 
   AttributionInteropConfig();
diff --git a/content/browser/attribution_reporting/interop/runner.cc b/content/browser/attribution_reporting/interop/runner.cc
index a8f4ad5..a636bd2 100644
--- a/content/browser/attribution_reporting/interop/runner.cc
+++ b/content/browser/attribution_reporting/interop/runner.cc
@@ -57,7 +57,6 @@
 #include "content/browser/aggregation_service/public_key.h"
 #include "content/browser/attribution_reporting/attribution_background_registrations_id.h"
 #include "content/browser/attribution_reporting/attribution_data_host_manager.h"
-#include "content/browser/attribution_reporting/attribution_features.h"
 #include "content/browser/attribution_reporting/attribution_manager_impl.h"
 #include "content/browser/attribution_reporting/attribution_os_level_manager.h"
 #include "content/browser/attribution_reporting/attribution_report.h"
@@ -358,14 +357,13 @@
 };
 
 void Handle(const AttributionSimulationEvent::StartRequest& event,
-            AttributionManager& manager) {
+            AttributionDataHostManager& data_host_manager) {
   std::optional<RegistrationEligibility> eligibility =
       attribution_reporting::GetRegistrationEligibility(event.eligibility);
   if (!eligibility.has_value()) {
     return;
   }
 
-  auto& data_host_manager = *manager.GetDataHostManager();
   auto suitable_context = AttributionSuitableContext::CreateForTesting(
       event.context_origin, event.fenced, kFrameId,
       /*last_navigation_id=*/kNavigationId);
@@ -390,23 +388,18 @@
 }
 
 void Handle(const AttributionSimulationEvent::Response& event,
-            AttributionManager& manager) {
-  manager.GetDataHostManager()->NotifyBackgroundRegistrationData(
+            AttributionDataHostManager& data_host_manager) {
+  data_host_manager.NotifyBackgroundRegistrationData(
       BackgroundRegistrationsId(event.request_id), event.response_headers.get(),
       event.url);
 }
 
 void Handle(const AttributionSimulationEvent::EndRequest& event,
-            AttributionManager& manager) {
-  manager.GetDataHostManager()->NotifyBackgroundRegistrationCompleted(
+            AttributionDataHostManager& data_host_manager) {
+  data_host_manager.NotifyBackgroundRegistrationCompleted(
       BackgroundRegistrationsId(event.request_id));
 }
 
-void Handle(const AttributionSimulationEvent::Navigation& event,
-            AttributionManager& manager) {
-  manager.UpdateLastNavigationTime(base::Time::Now());
-}
-
 void FastForwardUntilReportsConsumed(AttributionManager& manager,
                                      BrowserTaskEnvironment& task_environment) {
   while (true) {
@@ -427,7 +420,6 @@
     run_loop.Run();
 
     if (delta.is_negative()) {
-      task_environment.FastForwardBy(base::TimeDelta());
       break;
     }
     task_environment.FastForwardBy(delta);
@@ -457,10 +449,6 @@
     scoped_api_state.emplace(AttributionOsLevelManager::ApiState::kEnabled);
   }
 
-  if (run.config.needs_delivery_after_new_navigation) {
-    enabled_features.emplace_back(kAttributionReportDeliveryOnNewNavigation);
-  }
-
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitWithFeatures(enabled_features,
                                        /*disabled_features=*/{});
@@ -569,7 +557,10 @@
 
   for (const auto& event : run.events) {
     task_environment.FastForwardBy(event.time - base::Time::Now());
-    std::visit([&](const auto& data) { Handle(data, *manager); }, event.data);
+
+    std::visit(
+        [&](const auto& data) { Handle(data, *manager->GetDataHostManager()); },
+        event.data);
   }
 
   FastForwardUntilReportsConsumed(*manager, task_environment);
diff --git a/content/browser/child_process_launcher_helper.h b/content/browser/child_process_launcher_helper.h
index 61591517..bee6bc2 100644
--- a/content/browser/child_process_launcher_helper.h
+++ b/content/browser/child_process_launcher_helper.h
@@ -242,6 +242,7 @@
   void OnChildProcessStarted(pid_t process_id,
                              std::unique_ptr<LaunchResult> launch_result);
   void ClearProcessStorage();
+  void SetNormalTermination();
 
 #if defined(__OBJC__)
   NSObject* GetProcess();
@@ -355,6 +356,7 @@
 
 #if BUILDFLAG(IS_IOS)
   std::unique_ptr<base::ScopedTempDir> scoped_temp_dir_;
+  bool normal_termination_ = false;
 #endif
 
   // Histogram shared memory region. Ownership of the memory region object is
diff --git a/content/browser/child_process_launcher_helper_ios.mm b/content/browser/child_process_launcher_helper_ios.mm
index 5a41c69..109f1df 100644
--- a/content/browser/child_process_launcher_helper_ios.mm
+++ b/content/browser/child_process_launcher_helper_ios.mm
@@ -59,6 +59,7 @@
     base::AutoLock guard(*g_process_table_lock_);
     auto it = g_process_table_->find(process_id);
     if (it != g_process_table_->end()) {
+      it->second->SetNormalTermination();
       process = it->second->GetProcess();
     }
   }
@@ -296,6 +297,7 @@
         if (event == XPC_ERROR_CONNECTION_INTERRUPTED ||
             event == XPC_ERROR_CONNECTION_INVALID) {
           OnChildProcessTerminatedOnAnyThread(process_id);
+          return;
         }
 
         const char* message_type = xpc_dictionary_get_string(event, "message");
@@ -413,7 +415,9 @@
     info.status = base::TERMINATION_STATUS_LAUNCH_FAILED;
   } else if (static_cast<ProcessStorage*>(process_storage_.get())->Process() ==
              nullptr) {
-    info.status = base::TERMINATION_STATUS_NORMAL_TERMINATION;
+    info.status = normal_termination_
+                      ? base::TERMINATION_STATUS_NORMAL_TERMINATION
+                      : base::TERMINATION_STATUS_PROCESS_CRASHED;
   } else {
     info.status = base::TERMINATION_STATUS_STILL_RUNNING;
   }
@@ -426,6 +430,10 @@
   }
 }
 
+void ChildProcessLauncherHelper::SetNormalTermination() {
+  normal_termination_ = true;
+}
+
 NSObject* ChildProcessLauncherHelper::GetProcess() {
   if (process_storage_) {
     return static_cast<ProcessStorage*>(process_storage_.get())->Process();
diff --git a/content/browser/compute_pressure/pressure_service_for_frame_unittest.cc b/content/browser/compute_pressure/pressure_service_for_frame_unittest.cc
index ad88b9e9..aa129c1 100644
--- a/content/browser/compute_pressure/pressure_service_for_frame_unittest.cc
+++ b/content/browser/compute_pressure/pressure_service_for_frame_unittest.cc
@@ -139,6 +139,7 @@
   }
 
   void SetPressureServiceForFrame() {
+    pressure_manager_overrider_.reset();
     pressure_manager_overrider_ =
         std::make_unique<device::ScopedPressureManagerOverrider>();
     pressure_manager_.reset();
diff --git a/content/browser/devtools/protocol/storage_handler.cc b/content/browser/devtools/protocol/storage_handler.cc
index 115e6e2..563ef15 100644
--- a/content/browser/devtools/protocol/storage_handler.cc
+++ b/content/browser/devtools/protocol/storage_handler.cc
@@ -1473,6 +1473,46 @@
   return rfh ? rfh->devtools_frame_token().ToString() : std::string();
 }
 
+const char* GetSharedStorageAccessMethodEnum(
+    SharedStorageRuntimeManager::SharedStorageObserverInterface::AccessMethod
+        method) {
+  using AccessMethod =
+      SharedStorageRuntimeManager::SharedStorageObserverInterface::AccessMethod;
+  switch (method) {
+    case AccessMethod::kAddModule:
+      return Storage::SharedStorageAccessMethodEnum::AddModule;
+    case AccessMethod::kCreateWorklet:
+      return Storage::SharedStorageAccessMethodEnum::CreateWorklet;
+    case AccessMethod::kSelectURL:
+      return Storage::SharedStorageAccessMethodEnum::SelectURL;
+    case AccessMethod::kRun:
+      return Storage::SharedStorageAccessMethodEnum::Run;
+    case AccessMethod::kBatchUpdate:
+      return Storage::SharedStorageAccessMethodEnum::BatchUpdate;
+    case AccessMethod::kSet:
+      return Storage::SharedStorageAccessMethodEnum::Set;
+    case AccessMethod::kAppend:
+      return Storage::SharedStorageAccessMethodEnum::Append;
+    case AccessMethod::kDelete:
+      return Storage::SharedStorageAccessMethodEnum::Delete;
+    case AccessMethod::kClear:
+      return Storage::SharedStorageAccessMethodEnum::Clear;
+    case AccessMethod::kGet:
+      return Storage::SharedStorageAccessMethodEnum::Get;
+    case AccessMethod::kKeys:
+      return Storage::SharedStorageAccessMethodEnum::Keys;
+    case AccessMethod::kValues:
+      return Storage::SharedStorageAccessMethodEnum::Values;
+    case AccessMethod::kEntries:
+      return Storage::SharedStorageAccessMethodEnum::Entries;
+    case AccessMethod::kLength:
+      return Storage::SharedStorageAccessMethodEnum::Length;
+    case AccessMethod::kRemainingBudget:
+      return Storage::SharedStorageAccessMethodEnum::RemainingBudget;
+  };
+  NOTREACHED();
+}
+
 }  // namespace
 
 void StorageHandler::OnSharedStorageAccessed(
@@ -1486,8 +1526,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   using AccessScope = blink::SharedStorageAccessScope;
-  using AccessMethod =
-      SharedStorageRuntimeManager::SharedStorageObserverInterface::AccessMethod;
+
   std::string scope_enum;
   switch (scope) {
     case AccessScope::kWindow:
@@ -1505,55 +1544,6 @@
       break;
   };
 
-  std::string method_enum;
-  switch (method) {
-    case AccessMethod::kAddModule:
-      method_enum = Storage::SharedStorageAccessMethodEnum::AddModule;
-      break;
-    case AccessMethod::kCreateWorklet:
-      method_enum = Storage::SharedStorageAccessMethodEnum::CreateWorklet;
-      break;
-    case AccessMethod::kSelectURL:
-      method_enum = Storage::SharedStorageAccessMethodEnum::SelectURL;
-      break;
-    case AccessMethod::kRun:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Run;
-      break;
-    case AccessMethod::kBatchUpdate:
-      method_enum = Storage::SharedStorageAccessMethodEnum::BatchUpdate;
-      break;
-    case AccessMethod::kSet:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Set;
-      break;
-    case AccessMethod::kAppend:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Append;
-      break;
-    case AccessMethod::kDelete:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Delete;
-      break;
-    case AccessMethod::kClear:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Clear;
-      break;
-    case AccessMethod::kGet:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Get;
-      break;
-    case AccessMethod::kKeys:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Keys;
-      break;
-    case AccessMethod::kValues:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Values;
-      break;
-    case AccessMethod::kEntries:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Entries;
-      break;
-    case AccessMethod::kLength:
-      method_enum = Storage::SharedStorageAccessMethodEnum::Length;
-      break;
-    case AccessMethod::kRemainingBudget:
-      method_enum = Storage::SharedStorageAccessMethodEnum::RemainingBudget;
-      break;
-  };
-
   auto protocol_params =
       protocol::Storage::SharedStorageAccessParams::Create().Build();
 
@@ -1566,6 +1556,9 @@
   if (params.operation_name) {
     protocol_params->SetOperationName(*params.operation_name);
   }
+  if (params.operation_id) {
+    protocol_params->SetOperationId(base::NumberToString(*params.operation_id));
+  }
   if (params.keep_alive) {
     protocol_params->SetKeepAlive(*params.keep_alive);
   }
@@ -1585,8 +1578,11 @@
     protocol_params->SetIgnoreIfPresent(*params.ignore_if_present);
   }
   if (params.worklet_ordinal_id) {
-    protocol_params->SetWorkletId(
-        base::NumberToString(*params.worklet_ordinal_id));
+    protocol_params->SetWorkletOrdinal(*params.worklet_ordinal_id);
+  }
+  if (!params.worklet_devtools_token.is_empty()) {
+    protocol_params->SetWorkletTargetId(
+        params.worklet_devtools_token.ToString());
   }
   if (params.with_lock) {
     protocol_params->SetWithLock(*params.with_lock);
@@ -1653,7 +1649,8 @@
   }
 
   frontend_->SharedStorageAccessed(
-      access_time.InSecondsFSinceUnixEpoch(), scope_enum, method_enum,
+      access_time.InSecondsFSinceUnixEpoch(), scope_enum,
+      GetSharedStorageAccessMethodEnum(method),
       GetFrameTokenFromGlobalRenderFrameHostId(main_frame_id), owner_origin,
       net::SchemefulSite(GURL(owner_origin)).Serialize(),
       std::move(protocol_params));
@@ -1676,10 +1673,11 @@
     const std::string& owner_origin) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  // TODO(crbug.com/401011862): Add a new
-  // `sharedStorageWorkletOperationExecutionFinished` event to the DevTools
-  // Protocol. Call the generated code here to send an event notification to
-  // DevTools Frontend.
+  frontend_->SharedStorageWorkletOperationExecutionFinished(
+      finished_time.InSecondsFSinceUnixEpoch(), execution_time.InMicroseconds(),
+      GetSharedStorageAccessMethodEnum(method),
+      base::NumberToString(operation_id), worklet_devtools_token.ToString(),
+      GetFrameTokenFromGlobalRenderFrameHostId(main_frame_id), owner_origin);
 }
 
 DispatchResponse StorageHandler::SetStorageBucketTracking(
diff --git a/content/browser/indexed_db/indexed_db_unittest.cc b/content/browser/indexed_db/indexed_db_unittest.cc
index c97e4f7..7451ddd 100644
--- a/content/browser/indexed_db/indexed_db_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_unittest.cc
@@ -984,9 +984,10 @@
     ASSERT_TRUE(connection1->database.is_bound());
     connection1->version_change_transaction->CreateObjectStore(
         kObjectStoreId, kObjectStoreName, blink::IndexedDBKeyPath(), false);
-    connection1->database->CreateIndex(kTransactionId1, kObjectStoreId,
-                                       kIndexId, kIndexName,
-                                       blink::IndexedDBKeyPath(), false, false);
+    connection1->database->CreateIndex(
+        kTransactionId1, kObjectStoreId,
+        blink::IndexedDBIndexMetadata(kIndexName, kIndexId,
+                                      blink::IndexedDBKeyPath(), false, false));
     connection1->version_change_transaction->Commit(0);
 
     loop.Run();
diff --git a/content/browser/indexed_db/instance/backing_store.h b/content/browser/indexed_db/instance/backing_store.h
index eb937c9..c1faee9 100644
--- a/content/browser/indexed_db/instance/backing_store.h
+++ b/content/browser/indexed_db/instance/backing_store.h
@@ -7,6 +7,7 @@
 
 #include <list>
 #include <memory>
+#include <optional>
 #include <string>
 #include <vector>
 
@@ -119,12 +120,10 @@
     [[nodiscard]] virtual Status ClearObjectStore(int64_t object_store_id) = 0;
 
     // Creates a new index metadata and writes it to the transaction.
-    [[nodiscard]] virtual Status CreateIndex(int64_t object_store_id,
-                                             int64_t index_id,
-                                             const std::u16string& name,
-                                             blink::IndexedDBKeyPath key_path,
-                                             bool is_unique,
-                                             bool is_multi_entry) = 0;
+    [[nodiscard]] virtual Status CreateIndex(
+        int64_t object_store_id,
+        blink::IndexedDBIndexMetadata index) = 0;
+
     // Deletes the index metadata on the transaction (but not any index
     // entries).
     [[nodiscard]] virtual Status DeleteIndex(int64_t object_store_id,
@@ -137,10 +136,11 @@
     [[nodiscard]] virtual Status GetRecord(int64_t object_store_id,
                                            const blink::IndexedDBKey& key,
                                            IndexedDBValue* record) = 0;
-    [[nodiscard]] virtual Status PutRecord(int64_t object_store_id,
-                                           const blink::IndexedDBKey& key,
-                                           IndexedDBValue* value,
-                                           RecordIdentifier* record) = 0;
+    // When successful, returns the identifier for the newly stored record.
+    [[nodiscard]] virtual StatusOr<RecordIdentifier> PutRecord(
+        int64_t object_store_id,
+        const blink::IndexedDBKey& key,
+        IndexedDBValue value) = 0;
     [[nodiscard]] virtual Status DeleteRange(
         int64_t object_store_id,
         const blink::IndexedDBKeyRange&) = 0;
@@ -151,11 +151,12 @@
         int64_t object_store_id,
         int64_t new_state,
         bool check_current) = 0;
-    [[nodiscard]] virtual Status KeyExistsInObjectStore(
-        int64_t object_store_id,
-        const blink::IndexedDBKey& key,
-        RecordIdentifier* found_record_identifier,
-        bool* found) = 0;
+    // Returns the `RecordIdentifier` for the record if the primary key exists
+    // in the given object store. Returns `Status` on error. Returns nullopt if
+    // no record exists with the given key.
+    [[nodiscard]] virtual StatusOr<std::optional<RecordIdentifier>>
+    KeyExistsInObjectStore(int64_t object_store_id,
+                           const blink::IndexedDBKey& key) = 0;
     [[nodiscard]] virtual Status PutIndexDataForRecord(
         int64_t object_store_id,
         int64_t index_id,
@@ -172,20 +173,20 @@
         const blink::IndexedDBKey& key,
         std::unique_ptr<blink::IndexedDBKey>* found_primary_key,
         bool* exists) = 0;
-    virtual base::expected<std::unique_ptr<Cursor>, Status>
-    OpenObjectStoreKeyCursor(int64_t object_store_id,
-                             const blink::IndexedDBKeyRange& key_range,
-                             blink::mojom::IDBCursorDirection) = 0;
-    virtual base::expected<std::unique_ptr<Cursor>, Status>
-    OpenObjectStoreCursor(int64_t object_store_id,
-                          const blink::IndexedDBKeyRange& key_range,
-                          blink::mojom::IDBCursorDirection) = 0;
-    virtual base::expected<std::unique_ptr<Cursor>, Status> OpenIndexKeyCursor(
+    virtual StatusOr<std::unique_ptr<Cursor>> OpenObjectStoreKeyCursor(
+        int64_t object_store_id,
+        const blink::IndexedDBKeyRange& key_range,
+        blink::mojom::IDBCursorDirection) = 0;
+    virtual StatusOr<std::unique_ptr<Cursor>> OpenObjectStoreCursor(
+        int64_t object_store_id,
+        const blink::IndexedDBKeyRange& key_range,
+        blink::mojom::IDBCursorDirection) = 0;
+    virtual StatusOr<std::unique_ptr<Cursor>> OpenIndexKeyCursor(
         int64_t object_store_id,
         int64_t index_id,
         const blink::IndexedDBKeyRange& key_range,
         blink::mojom::IDBCursorDirection) = 0;
-    virtual base::expected<std::unique_ptr<Cursor>, Status> OpenIndexCursor(
+    virtual StatusOr<std::unique_ptr<Cursor>> OpenIndexCursor(
         int64_t object_store_id,
         int64_t index_id,
         const blink::IndexedDBKeyRange& key_range,
@@ -227,19 +228,18 @@
   virtual int64_t GetInMemorySize() const = 0;
   // Returns a list of names of existing databases, regardless of whether
   // they're currently open.
-  [[nodiscard]] virtual base::expected<std::vector<std::u16string>, Status>
+  [[nodiscard]] virtual StatusOr<std::vector<std::u16string>>
   GetDatabaseNames() = 0;
   // Returns a list of names of existing databases and their version numbers
   // (i.e. `IndexedDBDatabaseMetadata::version`), regardless of whether they're
   // currently open.
   [[nodiscard]]
-  virtual base::expected<std::vector<blink::mojom::IDBNameAndVersionPtr>,
-                         Status> GetDatabaseNamesAndVersions() = 0;
+  virtual StatusOr<std::vector<blink::mojom::IDBNameAndVersionPtr>>
+  GetDatabaseNamesAndVersions() = 0;
   // Creates a new database in the backing store, or opens an existing one. If
   // pre-existing, the database's metadata will be populated from disk.
   // Otherwise the version will be initialized to NO_VERSION.
-  [[nodiscard]] virtual base::expected<std::unique_ptr<BackingStore::Database>,
-                                       Status>
+  [[nodiscard]] virtual StatusOr<std::unique_ptr<BackingStore::Database>>
   CreateOrOpenDatabase(const std::u16string& name) = 0;
 
   virtual uintptr_t GetIdentifierForMemoryDump() = 0;
diff --git a/content/browser/indexed_db/instance/connection.cc b/content/browser/indexed_db/instance/connection.cc
index 571b6d4..76b79b9 100644
--- a/content/browser/indexed_db/instance/connection.cc
+++ b/content/browser/indexed_db/instance/connection.cc
@@ -693,11 +693,7 @@
 
 void Connection::CreateIndex(int64_t transaction_id,
                              int64_t object_store_id,
-                             int64_t index_id,
-                             const std::u16string& name,
-                             const IndexedDBKeyPath& key_path,
-                             bool unique,
-                             bool multi_entry) {
+                             const blink::IndexedDBIndexMetadata& index) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!IsConnected()) {
     return;
@@ -726,13 +722,12 @@
   transaction->ScheduleTask(
       blink::mojom::IDBTaskType::Preemptive,
       base::BindOnce(
-          [](int64_t object_store_id, int64_t index_id,
-             const std::u16string& name, const IndexedDBKeyPath& key_path,
-             bool unique, bool multi_entry, Transaction* transaction) {
+          [](int64_t object_store_id, blink::IndexedDBIndexMetadata index,
+             Transaction* transaction) {
             return transaction->BackingStoreTransaction()->CreateIndex(
-                object_store_id, index_id, name, key_path, unique, multi_entry);
+                object_store_id, std::move(index));
           },
-          object_store_id, index_id, name, key_path, unique, multi_entry));
+          object_store_id, index));
 }
 
 void Connection::DeleteIndex(int64_t transaction_id,
@@ -933,15 +928,11 @@
 
 Status Connection::AbortAllTransactions(const DatabaseError& error) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (const auto& pair : transactions_) {
-    auto& transaction = pair.second;
+  for (auto& [_, transaction] : transactions_) {
     if (transaction->state() != Transaction::FINISHED) {
       TRACE_EVENT1("IndexedDB", "Database::Abort(error)", "transaction.id",
                    transaction->id());
-      Status status = transaction->Abort(error);
-      if (!status.ok()) {
-        return status;
-      }
+      IDB_RETURN_IF_ERROR(transaction->Abort(error));
     }
   }
   return Status::OK();
diff --git a/content/browser/indexed_db/instance/connection.h b/content/browser/indexed_db/instance/connection.h
index 0e0ec42..0a8b24d 100644
--- a/content/browser/indexed_db/instance/connection.h
+++ b/content/browser/indexed_db/instance/connection.h
@@ -190,11 +190,7 @@
              ClearCallback callback) override;
   void CreateIndex(int64_t transaction_id,
                    int64_t object_store_id,
-                   int64_t index_id,
-                   const std::u16string& name,
-                   const blink::IndexedDBKeyPath& key_path,
-                   bool unique,
-                   bool multi_entry) override;
+                   const blink::IndexedDBIndexMetadata& index) override;
   void DeleteIndex(int64_t transaction_id,
                    int64_t object_store_id,
                    int64_t index_id) override;
diff --git a/content/browser/indexed_db/instance/database.cc b/content/browser/indexed_db/instance/database.cc
index 9e2a6f5..65134fb 100644
--- a/content/browser/indexed_db/instance/database.cc
+++ b/content/browser/indexed_db/instance/database.cc
@@ -30,6 +30,7 @@
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/trace_event/base_tracing.h"
+#include "base/types/expected_macros.h"
 #include "base/unguessable_token.h"
 #include "components/services/storage/indexed_db/locks/partitioned_lock_id.h"
 #include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h"
@@ -277,22 +278,18 @@
 }
 
 Status Database::ForceCloseAndRunTasks(const std::string& message) {
-  Status status;
   DCHECK(!force_closing_);
   force_closing_ = true;
   for (Connection* connection : connections_) {
     connection->CloseAndReportForceClose(message);
   }
   connections_.clear();
-  Status abort_status =
-      connection_coordinator_.PruneTasksForForceClose(message);
-  if (!abort_status.ok()) [[unlikely]] {
-    return abort_status;
-  }
+  IDB_RETURN_IF_ERROR(connection_coordinator_.PruneTasksForForceClose(message));
   connection_coordinator_.OnNoConnections();
 
   // Execute any pending tasks in the connection coordinator.
   ConnectionCoordinator::ExecuteTaskResult task_state;
+  Status status;
   do {
     std::tie(task_state, status) = connection_coordinator_.ExecuteTask(false);
     DCHECK(task_state !=
@@ -326,11 +323,8 @@
   int64_t old_version = metadata().version;
   DCHECK_GT(version, old_version);
 
-  Status s =
-      transaction->BackingStoreTransaction()->SetDatabaseVersion(version);
-  if (!s.ok()) {
-    return s;
-  }
+  IDB_RETURN_IF_ERROR(
+      transaction->BackingStoreTransaction()->SetDatabaseVersion(version));
 
   connection_coordinator_.BindVersionChangeTransactionReceiver();
   connection_coordinator_.OnUpgradeTransactionStarted(old_version);
@@ -360,8 +354,7 @@
   if (key_range.IsOnlyKey()) {
     key = std::move(key_range).TakeOnlyKey();
   } else {
-    base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-        backing_store_cursor;
+    StatusOr<std::unique_ptr<BackingStore::Cursor>> backing_store_cursor;
     if (index_id == IndexedDBIndexMetadata::kInvalidId) {
       // ObjectStore Retrieval Operation
       if (cursor_type == CursorType::kKeyOnly) {
@@ -589,7 +582,7 @@
   const IndexedDBObjectStoreMetadata& object_store_metadata =
       GetObjectStoreMetadata(object_store_id);
 
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status> cursor;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> cursor;
 
   if (result_type == blink::mojom::IDBGetAllResultType::Keys) {
     // Retrieving keys
@@ -661,12 +654,10 @@
       cursor_valid = true;
       did_first_seek = true;
     }
-    if (!s.ok()) {
-      result_sink->Get()->OnError(
-          CreateIDBErrorPtr(blink::mojom::IDBException::kUnknownError,
-                            "Seek failure, unable to continue", transaction));
-      return s;
-    }
+    IDB_RETURN_IF_ERROR_AND_DO(
+        s, result_sink->Get()->OnError(CreateIDBErrorPtr(
+               blink::mojom::IDBException::kUnknownError,
+               "Seek failure, unable to continue", transaction)));
 
     if (!cursor_valid) {
       break;
@@ -726,14 +717,11 @@
   DCHECK_EQ(transaction->mode(),
             blink::mojom::IDBTransactionMode::VersionChange);
 
-  BackingStore::RecordIdentifier record_identifier;
-  bool found = false;
-  Status s = transaction->BackingStoreTransaction()->KeyExistsInObjectStore(
-      object_store_id, primary_key, &record_identifier, &found);
-  if (!s.ok()) {
-    return s;
-  }
-  if (!found) {
+  ASSIGN_OR_RETURN(
+      std::optional<BackingStore::RecordIdentifier> found_record,
+      transaction->BackingStoreTransaction()->KeyExistsInObjectStore(
+          object_store_id, primary_key));
+  if (!found_record) {
     return transaction->Abort(
         DatabaseError(blink::mojom::IDBException::kUnknownError,
                       "Internal error setting index keys for object store."));
@@ -760,12 +748,9 @@
   }
 
   for (const auto& writer : index_writers) {
-    s = writer->WriteIndexKeys(record_identifier,
-                               transaction->BackingStoreTransaction(),
-                               object_store_id);
-    if (!s.ok()) {
-      return s;
-    }
+    IDB_RETURN_IF_ERROR(writer->WriteIndexKeys(
+        *found_record, transaction->BackingStoreTransaction(),
+        object_store_id));
   }
   return Status::OK();
 }
@@ -800,8 +785,7 @@
     transaction->AddPreemptiveEvent();
   }
 
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-      backing_store_cursor;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> backing_store_cursor;
   if (params->index_id == IndexedDBIndexMetadata::kInvalidId) {
     if (params->cursor_type == CursorType::kKeyOnly) {
       DCHECK_EQ(params->task_type, blink::mojom::IDBTaskType::Normal);
@@ -880,8 +864,7 @@
     return Status::InvalidArgument("Invalid object_store_id and/or index_id.");
   }
 
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-      backing_store_cursor;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> backing_store_cursor;
   if (index_id == IndexedDBIndexMetadata::kInvalidId) {
     backing_store_cursor =
         transaction->BackingStoreTransaction()->OpenObjectStoreKeyCursor(
@@ -906,9 +889,7 @@
   uint32_t count = 1;
   Status s;
   while ((*backing_store_cursor)->Continue(&s)) {
-    if (!s.ok()) {
-      return s;
-    }
+    IDB_RETURN_IF_ERROR(s);
     ++count;
   }
   std::move(callback).Run(/*success=*/true, count);
diff --git a/content/browser/indexed_db/instance/database_unittest.cc b/content/browser/indexed_db/instance/database_unittest.cc
index 6c1067f..ab6acc8 100644
--- a/content/browser/indexed_db/instance/database_unittest.cc
+++ b/content/browser/indexed_db/instance/database_unittest.cc
@@ -726,15 +726,18 @@
     EXPECT_EQ(1u, db_->metadata().object_stores.size());
 
     // Optionally, create an index when the test provides a valid index id.
-    const auto& index_parameters = database_parameters.index_parameters;
-    const int64_t index_id = index_parameters.index_id;
+    const blink::IndexedDBIndexMetadata index(
+        database_parameters.index_parameters.name,
+        database_parameters.index_parameters.index_id,
+        database_parameters.index_parameters.key_path,
+        database_parameters.index_parameters.unique,
+        database_parameters.index_parameters.multi_entry);
+    const int64_t index_id = index.id;
     const bool has_index =
-        (index_id != blink::IndexedDBIndexMetadata::kInvalidId);
+        index_id != blink::IndexedDBIndexMetadata::kInvalidId;
     if (has_index) {
-      status = transaction_->BackingStoreTransaction()->CreateIndex(
-          store_id, index_parameters.index_id, index_parameters.name,
-          index_parameters.key_path, index_parameters.unique,
-          index_parameters.multi_entry);
+      status =
+          transaction_->BackingStoreTransaction()->CreateIndex(store_id, index);
     }
     EXPECT_TRUE(status.ok()) << status.ToString();
 
@@ -848,8 +851,9 @@
   EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
   const int64_t index_id = 2002;
   s = transaction_->BackingStoreTransaction()->CreateIndex(
-      store_id, index_id, u"index", IndexedDBKeyPath(), /*unique=*/false,
-      /*multi_entry=*/false);
+      store_id, blink::IndexedDBIndexMetadata(
+                    u"index", index_id, IndexedDBKeyPath(), /*unique=*/false,
+                    /*multi_entry=*/false));
   EXPECT_TRUE(s.ok());
   EXPECT_EQ(
       1ULL,
@@ -900,8 +904,9 @@
   EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
   const int64_t index_id = 2002;
   s = transaction_->BackingStoreTransaction()->CreateIndex(
-      store_id, index_id, u"index", IndexedDBKeyPath(), /*unique=*/false,
-      /*multi_entry=*/false);
+      store_id, blink::IndexedDBIndexMetadata(
+                    u"index", index_id, IndexedDBKeyPath(), /*unique=*/false,
+                    /*multi_entry=*/false));
   EXPECT_TRUE(s.ok());
   EXPECT_EQ(
       1ULL,
diff --git a/content/browser/indexed_db/instance/fake_transaction.cc b/content/browser/indexed_db/instance/fake_transaction.cc
index ad9ae807..8c9b341 100644
--- a/content/browser/indexed_db/instance/fake_transaction.cc
+++ b/content/browser/indexed_db/instance/fake_transaction.cc
@@ -9,9 +9,11 @@
 #include "base/check.h"
 #include "base/notreached.h"
 #include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h"
+#include "content/browser/indexed_db/indexed_db_value.h"
 #include "third_party/blink/public/common/indexeddb/indexeddb_key.h"
 #include "third_party/blink/public/common/indexeddb/indexeddb_key_path.h"
 #include "third_party/blink/public/common/indexeddb/indexeddb_key_range.h"
+#include "third_party/blink/public/common/indexeddb/indexeddb_metadata.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-forward.h"
 
 namespace content::indexed_db {
@@ -69,14 +71,8 @@
 }
 
 Status FakeTransaction::CreateIndex(int64_t object_store_id,
-                                    int64_t index_id,
-                                    const std::u16string& name,
-                                    blink::IndexedDBKeyPath key_path,
-                                    bool is_unique,
-                                    bool is_multi_entry) {
-  return wrapped_transaction_->CreateIndex(object_store_id, index_id, name,
-                                           std::move(key_path), is_unique,
-                                           is_multi_entry);
+                                    blink::IndexedDBIndexMetadata index) {
+  return wrapped_transaction_->CreateIndex(object_store_id, std::move(index));
 }
 
 Status FakeTransaction::DeleteIndex(int64_t object_store_id, int64_t index_id) {
@@ -95,11 +91,12 @@
   return wrapped_transaction_->GetRecord(object_store_id, key, record);
 }
 
-Status FakeTransaction::PutRecord(int64_t object_store_id,
-                                  const blink::IndexedDBKey& key,
-                                  IndexedDBValue* value,
-                                  BackingStore::RecordIdentifier* record) {
-  return wrapped_transaction_->PutRecord(object_store_id, key, value, record);
+StatusOr<BackingStore::RecordIdentifier> FakeTransaction::PutRecord(
+    int64_t object_store_id,
+    const blink::IndexedDBKey& key,
+    IndexedDBValue value) {
+  return wrapped_transaction_->PutRecord(object_store_id, key,
+                                         std::move(value));
 }
 
 Status FakeTransaction::DeleteRange(int64_t object_store_id,
@@ -121,13 +118,10 @@
       object_store_id, new_state, check_current);
 }
 
-Status FakeTransaction::KeyExistsInObjectStore(
-    int64_t object_store_id,
-    const blink::IndexedDBKey& key,
-    BackingStore::RecordIdentifier* found_record_identifier,
-    bool* found) {
-  return wrapped_transaction_->KeyExistsInObjectStore(
-      object_store_id, key, found_record_identifier, found);
+StatusOr<std::optional<BackingStore::RecordIdentifier>>
+FakeTransaction::KeyExistsInObjectStore(int64_t object_store_id,
+                                        const blink::IndexedDBKey& key) {
+  return wrapped_transaction_->KeyExistsInObjectStore(object_store_id, key);
 }
 
 Status FakeTransaction::PutIndexDataForRecord(
@@ -158,7 +152,7 @@
                                                 found_primary_key, exists);
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 FakeTransaction::OpenObjectStoreKeyCursor(
     int64_t object_store_id,
     const blink::IndexedDBKeyRange& key_range,
@@ -167,7 +161,7 @@
                                                         key_range, direction);
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 FakeTransaction::OpenObjectStoreCursor(
     int64_t object_store_id,
     const blink::IndexedDBKeyRange& key_range,
@@ -176,7 +170,7 @@
                                                      direction);
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 FakeTransaction::OpenIndexKeyCursor(
     int64_t object_store_id,
     int64_t index_id,
@@ -186,7 +180,7 @@
                                                   key_range, direction);
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 FakeTransaction::OpenIndexCursor(int64_t object_store_id,
                                  int64_t index_id,
                                  const blink::IndexedDBKeyRange& key_range,
diff --git a/content/browser/indexed_db/instance/fake_transaction.h b/content/browser/indexed_db/instance/fake_transaction.h
index ebf93edf..263812d0 100644
--- a/content/browser/indexed_db/instance/fake_transaction.h
+++ b/content/browser/indexed_db/instance/fake_transaction.h
@@ -37,11 +37,7 @@
                            const std::u16string& new_name) override;
   Status ClearObjectStore(int64_t object_store_id) override;
   Status CreateIndex(int64_t object_store_id,
-                     int64_t index_id,
-                     const std::u16string& name,
-                     blink::IndexedDBKeyPath key_path,
-                     bool is_unique,
-                     bool is_multi_entry) override;
+                     blink::IndexedDBIndexMetadata index) override;
   Status DeleteIndex(int64_t object_store_id, int64_t index_id) override;
   Status RenameIndex(int64_t object_store_id,
                      int64_t index_id,
@@ -49,10 +45,10 @@
   Status GetRecord(int64_t object_store_id,
                    const blink::IndexedDBKey& key,
                    IndexedDBValue* record) override;
-  Status PutRecord(int64_t object_store_id,
-                   const blink::IndexedDBKey& key,
-                   IndexedDBValue* value,
-                   BackingStore::RecordIdentifier* record) override;
+  StatusOr<BackingStore::RecordIdentifier> PutRecord(
+      int64_t object_store_id,
+      const blink::IndexedDBKey& key,
+      IndexedDBValue value) override;
   Status DeleteRange(int64_t object_store_id,
                      const blink::IndexedDBKeyRange&) override;
   Status GetKeyGeneratorCurrentNumber(int64_t object_store_id,
@@ -60,11 +56,9 @@
   Status MaybeUpdateKeyGeneratorCurrentNumber(int64_t object_store_id,
                                               int64_t new_state,
                                               bool check_current) override;
-  Status KeyExistsInObjectStore(
-      int64_t object_store_id,
-      const blink::IndexedDBKey& key,
-      BackingStore::RecordIdentifier* found_record_identifier,
-      bool* found) override;
+  StatusOr<std::optional<BackingStore::RecordIdentifier>>
+  KeyExistsInObjectStore(int64_t object_store_id,
+                         const blink::IndexedDBKey& key) override;
   Status PutIndexDataForRecord(
       int64_t object_store_id,
       int64_t index_id,
@@ -81,24 +75,24 @@
       const blink::IndexedDBKey& key,
       std::unique_ptr<blink::IndexedDBKey>* found_primary_key,
       bool* exists) override;
-  base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+  StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
   OpenObjectStoreKeyCursor(int64_t object_store_id,
                            const blink::IndexedDBKeyRange& key_range,
                            blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+  StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
   OpenObjectStoreCursor(int64_t object_store_id,
                         const blink::IndexedDBKeyRange& key_range,
                         blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+  StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
   OpenIndexKeyCursor(int64_t object_store_id,
                      int64_t index_id,
                      const blink::IndexedDBKeyRange& key_range,
                      blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
-  OpenIndexCursor(int64_t object_store_id,
-                  int64_t index_id,
-                  const blink::IndexedDBKeyRange& key_range,
-                  blink::mojom::IDBCursorDirection) override;
+  StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>> OpenIndexCursor(
+      int64_t object_store_id,
+      int64_t index_id,
+      const blink::IndexedDBKeyRange& key_range,
+      blink::mojom::IDBCursorDirection) override;
 
  private:
   Status result_;
diff --git a/content/browser/indexed_db/instance/leveldb/backing_store.cc b/content/browser/indexed_db/instance/leveldb/backing_store.cc
index c48b21c..15b74c6f 100644
--- a/content/browser/indexed_db/instance/leveldb/backing_store.cc
+++ b/content/browser/indexed_db/instance/leveldb/backing_store.cc
@@ -1636,7 +1636,7 @@
   DLOG_IF(ERROR, !s.ok()) << "Unable to delete backing store: " << s.ToString();
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Database>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Database>>
 BackingStore::CreateOrOpenDatabase(const std::u16string& name) {
   DatabaseMetadata metadata(name);
   Status s = ReadMetadataForDatabaseName(metadata);
@@ -2009,13 +2009,11 @@
   return Status::OK();
 }
 
-Status BackingStore::Transaction::CreateIndex(int64_t object_store_id,
-                                              int64_t index_id,
-                                              const std::u16string& name,
-                                              blink::IndexedDBKeyPath key_path,
-                                              bool is_unique,
-                                              bool is_multi_entry) {
+Status BackingStore::Transaction::CreateIndex(
+    int64_t object_store_id,
+    blink::IndexedDBIndexMetadata index) {
   CHECK_EQ(mode(), blink::mojom::IDBTransactionMode::VersionChange);
+  const int64_t index_id = index.id;
   auto object_store_it =
       database_->metadata().object_stores.find(object_store_id);
   if (object_store_it == database_->metadata().object_stores.end()) {
@@ -2046,30 +2044,24 @@
   const std::string multi_entry_key = IndexMetaDataKey::Encode(
       database_id(), object_store_id, index_id, IndexMetaDataKey::MULTI_ENTRY);
 
-  s = PutString(leveldb_transaction, name_key, name);
+  s = PutString(leveldb_transaction, name_key, index.name);
   if (!s.ok()) {
     return s;
   }
-  s = PutBool(leveldb_transaction, unique_key, is_unique);
+  s = PutBool(leveldb_transaction, unique_key, index.unique);
   if (!s.ok()) {
     return s;
   }
-  s = PutIDBKeyPath(leveldb_transaction, key_path_key, key_path);
+  s = PutIDBKeyPath(leveldb_transaction, key_path_key, index.key_path);
   if (!s.ok()) {
     return s;
   }
-  s = PutBool(leveldb_transaction, multi_entry_key, is_multi_entry);
+  s = PutBool(leveldb_transaction, multi_entry_key, index.multi_entry);
   if (!s.ok()) {
     return s;
   }
 
-  blink::IndexedDBIndexMetadata metadata;
-  metadata.name = std::move(name);
-  metadata.id = index_id;
-  metadata.key_path = std::move(key_path);
-  metadata.unique = is_unique;
-  metadata.multi_entry = is_multi_entry;
-  object_store.indexes[index_id] = std::move(metadata);
+  object_store.indexes[index_id] = std::move(index);
 
   DCHECK_LT(object_store.max_index_id, index_id);
   object_store.max_index_id = index_id;
@@ -2223,14 +2215,13 @@
   return blob_size + level_db_size;
 }
 
-Status BackingStore::Transaction::PutRecord(
+StatusOr<BackingStore::RecordIdentifier> BackingStore::Transaction::PutRecord(
     int64_t object_store_id,
     const IndexedDBKey& key,
-    IndexedDBValue* value,
-    RecordIdentifier* record_identifier) {
+    IndexedDBValue value) {
   TRACE_EVENT0("IndexedDB", "BackingStore::PutRecord");
   if (!KeyPrefix::ValidIds(database_id(), object_store_id)) {
-    return InvalidDBKeyStatus();
+    return base::unexpected(InvalidDBKeyStatus());
   }
   DCHECK(key.IsValid());
 
@@ -2239,7 +2230,7 @@
   Status s = GetNewVersionNumber(leveldb_transaction, database_id(),
                                  object_store_id, &version);
   if (!s.ok()) {
-    return s;
+    return base::unexpected(s);
   }
   DCHECK_GE(version, 0);
   const std::string object_store_data_key =
@@ -2247,16 +2238,16 @@
 
   std::string v;
   EncodeVarInt(version, &v);
-  v.append(value->bits.begin(), value->bits.end());
+  v.append(value.bits.begin(), value.bits.end());
 
   s = leveldb_transaction->Put(object_store_data_key, &v);
   if (!s.ok()) {
-    return s;
+    return base::unexpected(s);
   }
   s = PutExternalObjectsIfNeeded(object_store_data_key,
-                                 &value->external_objects);
+                                 &value.external_objects);
   if (!s.ok()) {
-    return s;
+    return base::unexpected(s);
   }
 
   const std::string exists_entry_key =
@@ -2265,11 +2256,10 @@
   EncodeInt(version, &version_encoded);
   s = leveldb_transaction->Put(exists_entry_key, &version_encoded);
   if (!s.ok()) {
-    return s;
+    return base::unexpected(s);
   }
 
-  *record_identifier = CreateRecordIdentifier(key, version);
-  return s;
+  return CreateRecordIdentifier(key, version);
 }
 
 Status BackingStore::Transaction::ClearObjectStore(int64_t object_store_id) {
@@ -2476,41 +2466,38 @@
   return PutInt(transaction(), key_generator_current_number_key, new_number);
 }
 
-Status BackingStore::Transaction::KeyExistsInObjectStore(
-    int64_t object_store_id,
-    const IndexedDBKey& key,
-    RecordIdentifier* found_record_identifier,
-    bool* found) {
+StatusOr<std::optional<BackingStore::RecordIdentifier>>
+BackingStore::Transaction::KeyExistsInObjectStore(int64_t object_store_id,
+                                                  const IndexedDBKey& key) {
   TRACE_EVENT0("IndexedDB", "BackingStore::KeyExistsInObjectStore");
   if (!KeyPrefix::ValidIds(database_id(), object_store_id)) {
-    return InvalidDBKeyStatus();
+    return base::unexpected(InvalidDBKeyStatus());
   }
-  *found = false;
   const std::string leveldb_key =
       ObjectStoreDataKey::Encode(database_id(), object_store_id, key);
   std::string data;
 
-  Status s(transaction()->Get(leveldb_key, &data, found));
+  bool found = false;
+  Status s = transaction()->Get(leveldb_key, &data, &found);
   if (!s.ok()) {
     INTERNAL_READ_ERROR(KEY_EXISTS_IN_OBJECT_STORE);
-    return s;
+    return base::unexpected(s);
   }
-  if (!*found) {
-    return Status::OK();
+  if (!found) {
+    return std::nullopt;
   }
   if (data.empty()) {
     INTERNAL_READ_ERROR(KEY_EXISTS_IN_OBJECT_STORE);
-    return InternalInconsistencyStatus();
+    return base::unexpected(InternalInconsistencyStatus());
   }
 
   int64_t version;
   std::string_view slice(data);
   if (!DecodeVarInt(&slice, &version)) {
-    return InternalInconsistencyStatus();
+    return base::unexpected(InternalInconsistencyStatus());
   }
 
-  *found_record_identifier = CreateRecordIdentifier(key, version);
-  return s;
+  return CreateRecordIdentifier(key, version);
 }
 
 void BackingStore::ReportBlobUnused(int64_t database_id, int64_t blob_number) {
@@ -3001,8 +2988,7 @@
   return InvalidDBKeyStatus();
 }
 
-base::expected<std::vector<std::u16string>, Status>
-BackingStore::GetDatabaseNames() {
+StatusOr<std::vector<std::u16string>> BackingStore::GetDatabaseNames() {
   ASSIGN_OR_RETURN(
       std::vector<blink::mojom::IDBNameAndVersionPtr> names_and_versions,
       GetDatabaseNamesAndVersions());
@@ -3019,7 +3005,7 @@
   return reinterpret_cast<uintptr_t>(db()->db());
 }
 
-base::expected<std::vector<blink::mojom::IDBNameAndVersionPtr>, Status>
+StatusOr<std::vector<blink::mojom::IDBNameAndVersionPtr>>
 BackingStore::GetDatabaseNamesAndVersions() {
   // TODO(dmurph): Get rid of on-demand metadata loading, and store metadata
   // in-memory.
@@ -3876,7 +3862,7 @@
   return s->ok();
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStore::Transaction::OpenObjectStoreCursor(
     int64_t object_store_id,
     const IndexedDBKeyRange& range,
@@ -3900,7 +3886,7 @@
       AsWeakPtr(), database_id(), cursor_options));
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStore::Transaction::OpenObjectStoreKeyCursor(
     int64_t object_store_id,
     const IndexedDBKeyRange& range,
@@ -3924,7 +3910,7 @@
       AsWeakPtr(), database_id(), cursor_options));
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStore::Transaction::OpenIndexKeyCursor(
     int64_t object_store_id,
     int64_t index_id,
@@ -3946,7 +3932,7 @@
       AsWeakPtr(), database_id(), cursor_options));
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStore::Transaction::OpenIndexCursor(
     int64_t object_store_id,
     int64_t index_id,
@@ -4219,7 +4205,7 @@
   }
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStore::Transaction::PrepareCursor(std::unique_ptr<Cursor> cursor) {
   Status s;
   if (cursor->FirstSeek(&s)) {
diff --git a/content/browser/indexed_db/instance/leveldb/backing_store.h b/content/browser/indexed_db/instance/leveldb/backing_store.h
index 067fe21..339654cc 100644
--- a/content/browser/indexed_db/instance/leveldb/backing_store.h
+++ b/content/browser/indexed_db/instance/leveldb/backing_store.h
@@ -164,11 +164,7 @@
 
     // Creates a new index metadata and writes it to the transaction.
     Status CreateIndex(int64_t object_store_id,
-                       int64_t index_id,
-                       const std::u16string& name,
-                       blink::IndexedDBKeyPath key_path,
-                       bool is_unique,
-                       bool is_multi_entry) override;
+                       blink::IndexedDBIndexMetadata index) override;
     // Deletes the index metadata on the transaction (but not any index
     // entries).
     Status DeleteIndex(int64_t object_store_id, int64_t index_id) override;
@@ -179,10 +175,9 @@
     Status GetRecord(int64_t object_store_id,
                      const blink::IndexedDBKey& key,
                      IndexedDBValue* record) override;
-    Status PutRecord(int64_t object_store_id,
-                     const blink::IndexedDBKey& key,
-                     IndexedDBValue* value,
-                     RecordIdentifier* record) override;
+    StatusOr<RecordIdentifier> PutRecord(int64_t object_store_id,
+                                         const blink::IndexedDBKey& key,
+                                         IndexedDBValue value) override;
     Status ClearObjectStore(int64_t object_store_id) override;
     Status DeleteRange(int64_t object_store_id,
                        const blink::IndexedDBKeyRange&) override;
@@ -191,10 +186,9 @@
     Status MaybeUpdateKeyGeneratorCurrentNumber(int64_t object_store_id,
                                                 int64_t new_state,
                                                 bool check_current) override;
-    Status KeyExistsInObjectStore(int64_t object_store_id,
-                                  const blink::IndexedDBKey& key,
-                                  RecordIdentifier* found_record_identifier,
-                                  bool* found) override;
+    StatusOr<std::optional<RecordIdentifier>> KeyExistsInObjectStore(
+        int64_t object_store_id,
+        const blink::IndexedDBKey& key) override;
     Status PutIndexDataForRecord(int64_t object_store_id,
                                  int64_t index_id,
                                  const blink::IndexedDBKey& key,
@@ -210,24 +204,24 @@
         const blink::IndexedDBKey& key,
         std::unique_ptr<blink::IndexedDBKey>* found_primary_key,
         bool* exists) override;
-    base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+    StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
     OpenObjectStoreKeyCursor(int64_t object_store_id,
                              const blink::IndexedDBKeyRange& key_range,
                              blink::mojom::IDBCursorDirection) override;
-    base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+    StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
     OpenObjectStoreCursor(int64_t object_store_id,
                           const blink::IndexedDBKeyRange& key_range,
                           blink::mojom::IDBCursorDirection) override;
-    base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+    StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
     OpenIndexKeyCursor(int64_t object_store_id,
                        int64_t index_id,
                        const blink::IndexedDBKeyRange& key_range,
                        blink::mojom::IDBCursorDirection) override;
-    base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
-    OpenIndexCursor(int64_t object_store_id,
-                    int64_t index_id,
-                    const blink::IndexedDBKeyRange& key_range,
-                    blink::mojom::IDBCursorDirection) override;
+    StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>> OpenIndexCursor(
+        int64_t object_store_id,
+        int64_t index_id,
+        const blink::IndexedDBKeyRange& key_range,
+        blink::mojom::IDBCursorDirection) override;
 
     Status PutExternalObjectsIfNeeded(const std::string& object_store_data_key,
                                       std::vector<IndexedDBExternalObject>*);
@@ -284,8 +278,8 @@
 
     // Prepares a cursor and returns it if successful, an error Status if
     // there's an error, or null if the cursor is empty.
-    base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
-    PrepareCursor(std::unique_ptr<Cursor> cursor);
+    StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>> PrepareCursor(
+        std::unique_ptr<Cursor> cursor);
 
     // This does NOT mean that this class can outlive the BackingStore.
     // This is only to protect against security issues before this class is
@@ -483,15 +477,14 @@
   void InvalidateBlobReferences() override;
   void StartPreCloseTasks(base::OnceClosure on_done) override;
   void StopPreCloseTasks() override;
-  base::expected<std::unique_ptr<indexed_db::BackingStore::Database>, Status>
+  StatusOr<std::unique_ptr<indexed_db::BackingStore::Database>>
   CreateOrOpenDatabase(const std::u16string& name) override;
 
   uintptr_t GetIdentifierForMemoryDump() override;
   void FlushForTesting() override;
 
-  base::expected<std::vector<std::u16string>, Status> GetDatabaseNames()
-      override;
-  base::expected<std::vector<blink::mojom::IDBNameAndVersionPtr>, Status>
+  StatusOr<std::vector<std::u16string>> GetDatabaseNames() override;
+  StatusOr<std::vector<blink::mojom::IDBNameAndVersionPtr>>
   GetDatabaseNamesAndVersions() override;
 
   base::FilePath GetBlobFileName(int64_t database_id, int64_t key) const;
diff --git a/content/browser/indexed_db/instance/leveldb/backing_store_unittest.cc b/content/browser/indexed_db/instance/leveldb/backing_store_unittest.cc
index 5a5924d..51d00641 100644
--- a/content/browser/indexed_db/instance/leveldb/backing_store_unittest.cc
+++ b/content/browser/indexed_db/instance/leveldb/backing_store_unittest.cc
@@ -725,9 +725,7 @@
     BackingStore::Transaction& transaction1 =
         *reinterpret_cast<BackingStore::Transaction*>(txn.get());
     transaction1.Begin(CreateDummyLock());
-    BackingStore::RecordIdentifier record;
-    Status s = transaction1.PutRecord(1, key, &value, &record);
-    EXPECT_TRUE(s.ok());
+    EXPECT_TRUE(transaction1.PutRecord(1, key, value.Clone()).has_value());
     bool succeeded = false;
     EXPECT_TRUE(
         transaction1.CommitPhaseOne(CreateBlobWriteCallback(&succeeded)).ok());
@@ -766,8 +764,7 @@
                            blink::mojom::IDBTransactionMode::ReadWrite);
 
   transaction1->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record;
-  EXPECT_TRUE(transaction1->PutRecord(1, key3_, &value3_, &record).ok());
+  EXPECT_TRUE(transaction1->PutRecord(1, key3_, value3_.Clone()).has_value());
   bool succeeded = false;
   base::RunLoop phase_one_wait;
   EXPECT_TRUE(transaction1
@@ -863,11 +860,10 @@
       db.CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                            blink::mojom::IDBTransactionMode::ReadWrite);
   transaction1->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record;
   for (size_t i = 0; i < values.size(); ++i) {
     EXPECT_TRUE(
-        transaction1->PutRecord(object_store_id, keys[i], &values[i], &record)
-            .ok());
+        transaction1->PutRecord(object_store_id, keys[i], std::move(values[i]))
+            .has_value());
   }
 
   // Start committing transaction1.
@@ -930,8 +926,9 @@
     BackingStore::RecordIdentifier record;
     for (size_t j = 0; j < values.size(); ++j) {
       EXPECT_TRUE(
-          transaction1->PutRecord(object_store_id, keys[j], &values[j], &record)
-              .ok());
+          transaction1
+              ->PutRecord(object_store_id, keys[j], std::move(values[j]))
+              .has_value());
     }
 
     // Start committing transaction1.
@@ -1014,11 +1011,11 @@
                              blink::mojom::IDBTransactionMode::ReadWrite);
     transaction1->Begin(CreateDummyLock());
 
-    BackingStore::RecordIdentifier record;
     for (size_t j = 0; j < values.size(); ++j) {
       EXPECT_TRUE(
-          transaction1->PutRecord(object_store_id, keys[j], &values[j], &record)
-              .ok());
+          transaction1
+              ->PutRecord(object_store_id, keys[j], std::move(values[j]))
+              .has_value());
     }
     // Start committing transaction1.
     bool succeeded = false;
@@ -1063,8 +1060,7 @@
       db.CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                            blink::mojom::IDBTransactionMode::ReadWrite);
   transaction1->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record1;
-  EXPECT_TRUE(transaction1->PutRecord(1, key3_, &value3_, &record1).ok());
+  EXPECT_TRUE(transaction1->PutRecord(1, key3_, value3_.Clone()).has_value());
   bool succeeded = false;
   EXPECT_TRUE(
       transaction1->CommitPhaseOne(CreateBlobWriteCallback(&succeeded)).ok());
@@ -1081,8 +1077,7 @@
       db.CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                            blink::mojom::IDBTransactionMode::ReadWrite);
   transaction2->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record2;
-  EXPECT_TRUE(transaction2->PutRecord(1, key1_, &value1_, &record2).ok());
+  EXPECT_TRUE(transaction2->PutRecord(1, key1_, value1_.Clone()).has_value());
   succeeded = false;
   EXPECT_TRUE(
       transaction2->CommitPhaseOne(CreateBlobWriteCallback(&succeeded)).ok());
@@ -1109,8 +1104,7 @@
       db.CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                            blink::mojom::IDBTransactionMode::ReadWrite);
   transaction1->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record;
-  EXPECT_TRUE(transaction1->PutRecord(1, key3_, &value3_, &record).ok());
+  EXPECT_TRUE(transaction1->PutRecord(1, key3_, value3_.Clone()).has_value());
   bool succeeded = false;
   EXPECT_TRUE(
       transaction1->CommitPhaseOne(CreateBlobWriteCallback(&succeeded)).ok());
@@ -1205,11 +1199,13 @@
                                         /*auto_increment=*/true)
                     .ok());
 
-    EXPECT_TRUE(transaction
-                    ->CreateIndex(object_store_id, index_id, u"index_name",
-                                  index_key_path, /*unique=*/true,
-                                  /*multi_entry=*/true)
-                    .ok());
+    EXPECT_TRUE(
+        transaction
+            ->CreateIndex(object_store_id, blink::IndexedDBIndexMetadata(
+                                               u"index_name", index_id,
+                                               index_key_path, /*unique=*/true,
+                                               /*multi_entry=*/true))
+            .ok());
 
     CommitTransaction(*transaction);
   }
@@ -1225,12 +1221,12 @@
     auto transaction = CreateAndBeginTransaction(
         **db, blink::mojom::IDBTransactionMode::VersionChange);
 
-    BackingStore::RecordIdentifier record;
-    EXPECT_TRUE(
-        transaction->PutRecord(object_store_id, key1_, &value1_, &record).ok());
+    auto record =
+        transaction->PutRecord(object_store_id, key1_, value1_.Clone());
+    EXPECT_TRUE(record.has_value());
     EXPECT_TRUE(
         transaction
-            ->PutIndexDataForRecord(object_store_id, index_id, key2_, record)
+            ->PutIndexDataForRecord(object_store_id, index_id, key2_, *record)
             .ok());
     std::unique_ptr<IndexedDBKey> pk;
     EXPECT_TRUE(
@@ -1280,17 +1276,16 @@
                              blink::mojom::IDBTransactionMode::ReadWrite);
     auto& transaction1 = *txn1;
     transaction1.Begin(CreateDummyLock());
-    BackingStore::RecordIdentifier record;
-    Status s =
-        transaction1.PutRecord(high_object_store_id, key1, &value1, &record);
-    EXPECT_TRUE(s.ok());
+    auto record =
+        transaction1.PutRecord(high_object_store_id, key1, value1.Clone());
+    EXPECT_TRUE(record.has_value());
 
-    s = transaction1.PutIndexDataForRecord(
-        high_object_store_id, invalid_high_index_id, index_key, record);
+    Status s = transaction1.PutIndexDataForRecord(
+        high_object_store_id, invalid_high_index_id, index_key, *record);
     EXPECT_FALSE(s.ok());
 
     s = transaction1.PutIndexDataForRecord(high_object_store_id, high_index_id,
-                                           index_key, record);
+                                           index_key, *record);
     EXPECT_TRUE(s.ok());
 
     bool succeeded = false;
@@ -1355,23 +1350,20 @@
       *reinterpret_cast<BackingStore::Transaction*>(txn.get());
   transaction1.Begin(CreateDummyLock());
 
-  BackingStore::RecordIdentifier record;
   db.metadata().id = database_id;
-  Status s =
-      transaction1.PutRecord(KeyPrefix::kInvalidId, key, &value, &record);
-  EXPECT_FALSE(s.ok());
+  EXPECT_FALSE(transaction1.PutRecord(KeyPrefix::kInvalidId, key, value.Clone())
+                   .has_value());
   db.metadata().id = database_id;
-  s = transaction1.PutRecord(0, key, &value, &record);
-  EXPECT_FALSE(s.ok());
+  EXPECT_FALSE(transaction1.PutRecord(0, key, value.Clone()).has_value());
   db.metadata().id = KeyPrefix::kInvalidId;
-  s = transaction1.PutRecord(object_store_id, key, &value, &record);
-  EXPECT_FALSE(s.ok());
+  EXPECT_FALSE(
+      transaction1.PutRecord(object_store_id, key, value.Clone()).has_value());
   db.metadata().id = 0;
-  s = transaction1.PutRecord(object_store_id, key, &value, &record);
-  EXPECT_FALSE(s.ok());
+  EXPECT_FALSE(
+      transaction1.PutRecord(object_store_id, key, value.Clone()).has_value());
 
   db.metadata().id = database_id;
-  s = transaction1.GetRecord(KeyPrefix::kInvalidId, key, &result_value);
+  Status s = transaction1.GetRecord(KeyPrefix::kInvalidId, key, &result_value);
   EXPECT_FALSE(s.ok());
   db.metadata().id = database_id;
   s = transaction1.GetRecord(0, key, &result_value);
@@ -1443,8 +1435,10 @@
         (*db1)->GetMetadata().object_stores.find(object_store_id)->second;
     EXPECT_EQ(object_store.id, object_store_id);
 
-    s = transaction->CreateIndex(object_store.id, index_id, index_name,
-                                 index_key_path, unique, multi_entry);
+    s = transaction->CreateIndex(
+        object_store.id,
+        blink::IndexedDBIndexMetadata(index_name, index_id, index_key_path,
+                                      unique, multi_entry));
     EXPECT_TRUE(s.ok());
 
     const IndexedDBIndexMetadata& index =
@@ -1740,11 +1734,10 @@
       CreateBlobInfo(base::UTF8ToUTF16(initial_blob_name), /*size=*/100);
   IndexedDBValue initial_value("initial_value", {initial_blob});
   IndexedDBKey initial_key(u"initial_key");
-  BackingStore::RecordIdentifier initial_record;
   EXPECT_TRUE(initial_transaction
-                  .PutRecord(/*object_store_id=*/1, initial_key, &initial_value,
-                             &initial_record)
-                  .ok());
+                  .PutRecord(/*object_store_id=*/1, initial_key,
+                             std::move(initial_value))
+                  .has_value());
 
   // Commit the initial transaction (Phase 1 and Phase 2).
   bool initial_succeeded = false;
@@ -1782,9 +1775,9 @@
   IndexedDBValue value = IndexedDBValue("value0", {test_blob});
 
   // Insert additional blob that will be rolled back.
-  BackingStore::RecordIdentifier record;
   EXPECT_TRUE(
-      transaction.PutRecord(/*object_store_id=*/1, key, &value, &record).ok());
+      transaction.PutRecord(/*object_store_id=*/1, key, std::move(value))
+          .has_value());
 
   // Simulate commit phase 1 to ensure that the blob is written to disk.
   bool succeeded = false;
@@ -1879,9 +1872,8 @@
       (*db)->CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                                blink::mojom::IDBTransactionMode::ReadWrite);
   transaction1->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record;
-  EXPECT_TRUE(
-      transaction1->PutRecord(object_store_id, key3_, &value3_, &record).ok());
+  EXPECT_TRUE(transaction1->PutRecord(object_store_id, key3_, value3_.Clone())
+                  .has_value());
   bool succeeded = false;
   base::RunLoop write_blobs_loop;
   EXPECT_TRUE(transaction1
@@ -2030,13 +2022,12 @@
       (*db)->CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                                blink::mojom::IDBTransactionMode::ReadWrite);
   transaction->Begin(CreateDummyLock());
-  BackingStore::RecordIdentifier record;
 
   IndexedDBKey key(u"key");
   IndexedDBValue value = IndexedDBValue("value3", external_objects());
 
-  EXPECT_TRUE(
-      transaction->PutRecord(object_store_id, key, &value, &record).ok());
+  EXPECT_TRUE(transaction->PutRecord(object_store_id, key, std::move(value))
+                  .has_value());
   bool succeeded = false;
   base::RunLoop write_blobs_loop;
   EXPECT_TRUE(transaction
@@ -2136,12 +2127,11 @@
         db.CreateTransaction(blink::mojom::IDBTransactionDurability::Relaxed,
                              blink::mojom::IDBTransactionMode::ReadWrite);
     transaction1->Begin(CreateDummyLock());
-    BackingStore::RecordIdentifier record;
     for (size_t j = 0; j < values.size(); ++j) {
       EXPECT_TRUE(
           transaction1
-              ->PutRecord(write_object_store_id, keys[j], &values[j], &record)
-              .ok());
+              ->PutRecord(write_object_store_id, keys[j], std::move(values[j]))
+              .has_value());
     }
 
     // Start committing transaction1.
diff --git a/content/browser/indexed_db/instance/sqlite/backing_store_impl.cc b/content/browser/indexed_db/instance/sqlite/backing_store_impl.cc
index 1ec2a93..f0671fe7 100644
--- a/content/browser/indexed_db/instance/sqlite/backing_store_impl.cc
+++ b/content/browser/indexed_db/instance/sqlite/backing_store_impl.cc
@@ -6,6 +6,7 @@
 
 #include "base/files/file_path.h"
 #include "base/notimplemented.h"
+#include "base/types/expected_macros.h"
 #include "content/browser/indexed_db/indexed_db_data_loss_info.h"
 #include "content/browser/indexed_db/instance/sqlite/backing_store_database_impl.h"
 #include "content/browser/indexed_db/instance/sqlite/database_connection.h"
@@ -49,8 +50,7 @@
   return 0;
 }
 
-base::expected<std::vector<std::u16string>, Status>
-BackingStoreImpl::GetDatabaseNames() {
+StatusOr<std::vector<std::u16string>> BackingStoreImpl::GetDatabaseNames() {
   std::vector<std::u16string> names;
   // TODO(crbug.com/40253999): Support on-disk databases.
   for (const auto& [name, _] : open_connections_) {
@@ -59,7 +59,7 @@
   return names;
 }
 
-base::expected<std::vector<blink::mojom::IDBNameAndVersionPtr>, Status>
+StatusOr<std::vector<blink::mojom::IDBNameAndVersionPtr>>
 BackingStoreImpl::GetDatabaseNamesAndVersions() {
   std::vector<blink::mojom::IDBNameAndVersionPtr> names_and_versions;
   // TODO(crbug.com/40253999): Support on-disk databases.
@@ -70,16 +70,13 @@
   return names_and_versions;
 }
 
-base::expected<std::unique_ptr<BackingStore::Database>, Status>
+StatusOr<std::unique_ptr<BackingStore::Database>>
 BackingStoreImpl::CreateOrOpenDatabase(const std::u16string& name) {
   auto it = open_connections_.find(name);
   if (it == open_connections_.end()) {
-    base::expected<std::unique_ptr<DatabaseConnection>, Status> db =
-        DatabaseConnection::Open(name, data_path_);
-    if (!db.has_value()) {
-      return base::unexpected(db.error());
-    }
-    it = open_connections_.emplace(name, std::move(db.value())).first;
+    ASSIGN_OR_RETURN(std::unique_ptr<DatabaseConnection> db,
+                     DatabaseConnection::Open(name, data_path_));
+    it = open_connections_.emplace(name, std::move(db)).first;
   }
   return std::make_unique<BackingStoreDatabaseImpl>(it->second->GetWeakPtr());
 }
diff --git a/content/browser/indexed_db/instance/sqlite/backing_store_impl.h b/content/browser/indexed_db/instance/sqlite/backing_store_impl.h
index a7d2e62..662bb8c 100644
--- a/content/browser/indexed_db/instance/sqlite/backing_store_impl.h
+++ b/content/browser/indexed_db/instance/sqlite/backing_store_impl.h
@@ -39,12 +39,11 @@
   void StartPreCloseTasks(base::OnceClosure on_done) override;
   void StopPreCloseTasks() override;
   int64_t GetInMemorySize() const override;
-  base::expected<std::vector<std::u16string>, Status> GetDatabaseNames()
-      override;
-  base::expected<std::vector<blink::mojom::IDBNameAndVersionPtr>, Status>
+  StatusOr<std::vector<std::u16string>> GetDatabaseNames() override;
+  StatusOr<std::vector<blink::mojom::IDBNameAndVersionPtr>>
   GetDatabaseNamesAndVersions() override;
-  base::expected<std::unique_ptr<BackingStore::Database>, Status>
-  CreateOrOpenDatabase(const std::u16string& name) override;
+  StatusOr<std::unique_ptr<BackingStore::Database>> CreateOrOpenDatabase(
+      const std::u16string& name) override;
   uintptr_t GetIdentifierForMemoryDump() override;
   void FlushForTesting() override;
 
diff --git a/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.cc b/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.cc
index c1cf35a5..b5c5dea 100644
--- a/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.cc
+++ b/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.cc
@@ -6,6 +6,7 @@
 
 #include "base/check.h"
 #include "base/notimplemented.h"
+#include "content/browser/indexed_db/indexed_db_value.h"
 #include "content/browser/indexed_db/instance/sqlite/database_connection.h"
 #include "content/browser/indexed_db/status.h"
 #include "sql/transaction.h"
@@ -80,11 +81,7 @@
 
 Status BackingStoreTransactionImpl::CreateIndex(
     int64_t object_store_id,
-    int64_t index_id,
-    const std::u16string& name,
-    blink::IndexedDBKeyPath key_path,
-    bool is_unique,
-    bool is_multi_entry) {
+    blink::IndexedDBIndexMetadata index) {
   NOTIMPLEMENTED();
   return Status::OK();
 }
@@ -110,13 +107,12 @@
   return Status::OK();
 }
 
-Status BackingStoreTransactionImpl::PutRecord(
+StatusOr<BackingStore::RecordIdentifier> BackingStoreTransactionImpl::PutRecord(
     int64_t object_store_id,
     const blink::IndexedDBKey& key,
-    IndexedDBValue* value,
-    BackingStore::RecordIdentifier* record) {
+    IndexedDBValue value) {
   NOTIMPLEMENTED();
-  return Status::OK();
+  return base::unexpected(Status::InvalidArgument("not implemented"));
 }
 
 Status BackingStoreTransactionImpl::DeleteRange(
@@ -141,13 +137,12 @@
   return Status::OK();
 }
 
-Status BackingStoreTransactionImpl::KeyExistsInObjectStore(
+StatusOr<std::optional<BackingStore::RecordIdentifier>>
+BackingStoreTransactionImpl::KeyExistsInObjectStore(
     int64_t object_store_id,
-    const blink::IndexedDBKey& key,
-    BackingStore::RecordIdentifier* found_record_identifier,
-    bool* found) {
+    const blink::IndexedDBKey& key) {
   NOTIMPLEMENTED();
-  return Status::OK();
+  return base::unexpected(Status::InvalidArgument("not impl"));
 }
 
 Status BackingStoreTransactionImpl::PutIndexDataForRecord(
@@ -178,7 +173,7 @@
   return Status::OK();
 }
 
-base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<BackingStore::Cursor>>
 BackingStoreTransactionImpl::OpenObjectStoreKeyCursor(
     int64_t object_store_id,
     const blink::IndexedDBKeyRange& key_range,
@@ -187,7 +182,7 @@
   return nullptr;
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStoreTransactionImpl::OpenObjectStoreCursor(
     int64_t object_store_id,
     const blink::IndexedDBKeyRange& key_range,
@@ -196,7 +191,7 @@
   return nullptr;
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStoreTransactionImpl::OpenIndexKeyCursor(
     int64_t object_store_id,
     int64_t index_id,
@@ -206,7 +201,7 @@
   return nullptr;
 }
 
-base::expected<std::unique_ptr<indexed_db::BackingStore::Cursor>, Status>
+StatusOr<std::unique_ptr<indexed_db::BackingStore::Cursor>>
 BackingStoreTransactionImpl::OpenIndexCursor(
     int64_t object_store_id,
     int64_t index_id,
diff --git a/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.h b/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.h
index c7b31a4..0e7259e 100644
--- a/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.h
+++ b/content/browser/indexed_db/instance/sqlite/backing_store_transaction_impl.h
@@ -52,11 +52,7 @@
                            const std::u16string& new_name) override;
   Status ClearObjectStore(int64_t object_store_id) override;
   Status CreateIndex(int64_t object_store_id,
-                     int64_t index_id,
-                     const std::u16string& name,
-                     blink::IndexedDBKeyPath key_path,
-                     bool is_unique,
-                     bool is_multi_entry) override;
+                     blink::IndexedDBIndexMetadata index) override;
   Status DeleteIndex(int64_t object_store_id, int64_t index_id) override;
   Status RenameIndex(int64_t object_store_id,
                      int64_t index_id,
@@ -64,10 +60,10 @@
   Status GetRecord(int64_t object_store_id,
                    const blink::IndexedDBKey& key,
                    IndexedDBValue* record) override;
-  Status PutRecord(int64_t object_store_id,
-                   const blink::IndexedDBKey& key,
-                   IndexedDBValue* value,
-                   BackingStore::RecordIdentifier* record) override;
+  StatusOr<BackingStore::RecordIdentifier> PutRecord(
+      int64_t object_store_id,
+      const blink::IndexedDBKey& key,
+      IndexedDBValue value) override;
   Status DeleteRange(int64_t object_store_id,
                      const blink::IndexedDBKeyRange&) override;
   Status GetKeyGeneratorCurrentNumber(int64_t object_store_id,
@@ -75,11 +71,9 @@
   Status MaybeUpdateKeyGeneratorCurrentNumber(int64_t object_store_id,
                                               int64_t new_state,
                                               bool check_current) override;
-  Status KeyExistsInObjectStore(
-      int64_t object_store_id,
-      const blink::IndexedDBKey& key,
-      BackingStore::RecordIdentifier* found_record_identifier,
-      bool* found) override;
+  StatusOr<std::optional<BackingStore::RecordIdentifier>>
+  KeyExistsInObjectStore(int64_t object_store_id,
+                         const blink::IndexedDBKey& key) override;
   Status PutIndexDataForRecord(
       int64_t object_store_id,
       int64_t index_id,
@@ -96,20 +90,20 @@
       const blink::IndexedDBKey& key,
       std::unique_ptr<blink::IndexedDBKey>* found_primary_key,
       bool* exists) override;
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-  OpenObjectStoreKeyCursor(int64_t object_store_id,
-                           const blink::IndexedDBKeyRange& key_range,
-                           blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-  OpenObjectStoreCursor(int64_t object_store_id,
-                        const blink::IndexedDBKeyRange& key_range,
-                        blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status>
-  OpenIndexKeyCursor(int64_t object_store_id,
-                     int64_t index_id,
-                     const blink::IndexedDBKeyRange& key_range,
-                     blink::mojom::IDBCursorDirection) override;
-  base::expected<std::unique_ptr<BackingStore::Cursor>, Status> OpenIndexCursor(
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> OpenObjectStoreKeyCursor(
+      int64_t object_store_id,
+      const blink::IndexedDBKeyRange& key_range,
+      blink::mojom::IDBCursorDirection) override;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> OpenObjectStoreCursor(
+      int64_t object_store_id,
+      const blink::IndexedDBKeyRange& key_range,
+      blink::mojom::IDBCursorDirection) override;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> OpenIndexKeyCursor(
+      int64_t object_store_id,
+      int64_t index_id,
+      const blink::IndexedDBKeyRange& key_range,
+      blink::mojom::IDBCursorDirection) override;
+  StatusOr<std::unique_ptr<BackingStore::Cursor>> OpenIndexCursor(
       int64_t object_store_id,
       int64_t index_id,
       const blink::IndexedDBKeyRange& key_range,
diff --git a/content/browser/indexed_db/instance/sqlite/database_connection.cc b/content/browser/indexed_db/instance/sqlite/database_connection.cc
index 644bc31..ba7a12de4 100644
--- a/content/browser/indexed_db/instance/sqlite/database_connection.cc
+++ b/content/browser/indexed_db/instance/sqlite/database_connection.cc
@@ -152,9 +152,9 @@
 }  // namespace
 
 // static
-base::expected<std::unique_ptr<DatabaseConnection>, Status>
-DatabaseConnection::Open(const std::u16string& name,
-                         const base::FilePath& file_path) {
+StatusOr<std::unique_ptr<DatabaseConnection>> DatabaseConnection::Open(
+    const std::u16string& name,
+    const base::FilePath& file_path) {
   // TODO(crbug.com/40253999): Create new tag(s) for metrics.
   constexpr sql::Database::Tag kSqlTag = "Test";
   auto db = std::make_unique<sql::Database>(
diff --git a/content/browser/indexed_db/instance/sqlite/database_connection.h b/content/browser/indexed_db/instance/sqlite/database_connection.h
index 51c3a32..03cccac 100644
--- a/content/browser/indexed_db/instance/sqlite/database_connection.h
+++ b/content/browser/indexed_db/instance/sqlite/database_connection.h
@@ -35,7 +35,7 @@
  public:
   // Opens the SQL database for the IndexedDB database with `name` at
   // `file_path`, creating it if it doesn't exist.
-  static base::expected<std::unique_ptr<DatabaseConnection>, Status> Open(
+  static StatusOr<std::unique_ptr<DatabaseConnection>> Open(
       const std::u16string& name,
       const base::FilePath& file_path);
 
diff --git a/content/browser/indexed_db/instance/transaction.cc b/content/browser/indexed_db/instance/transaction.cc
index a072ba85..6bd9cd7e 100644
--- a/content/browser/indexed_db/instance/transaction.cc
+++ b/content/browser/indexed_db/instance/transaction.cc
@@ -27,6 +27,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "base/trace_event/base_tracing.h"
+#include "base/types/expected_macros.h"
 #include "base/unguessable_token.h"
 #include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h"
 #include "components/services/storage/privileged/mojom/indexed_db_client_state_checker.mojom-shared.h"
@@ -545,15 +546,12 @@
     return Status::InvalidArgument("Invalid key");
   }
 
-  BackingStore::RecordIdentifier record_identifier;
   if (put_mode == blink::mojom::IDBPutMode::AddOnly) {
-    bool found = false;
-    Status found_status = BackingStoreTransaction()->KeyExistsInObjectStore(
-        object_store_id, key, &record_identifier, &found);
-    if (!found_status.ok()) {
-      return found_status;
-    }
-    if (found) {
+    ASSIGN_OR_RETURN(
+        std::optional<BackingStore::RecordIdentifier> preexisting_record,
+        BackingStoreTransaction()->KeyExistsInObjectStore(object_store_id,
+                                                          key));
+    if (preexisting_record) {
       on_put_error(std::move(callback),
                    blink::mojom::IDBException::kConstraintError,
                    u"Key already exists in the object store.");
@@ -581,19 +579,15 @@
 
   // Before this point, don't do any mutation. After this point, rollback the
   // transaction in case of error.
-  {
-    Status s = BackingStoreTransaction()->PutRecord(object_store_id, key,
-                                                    &value, &record_identifier);
-    if (!s.ok()) {
-      return s;
-    }
-  }
+  ASSIGN_OR_RETURN(BackingStore::RecordIdentifier new_record,
+                   BackingStoreTransaction()->PutRecord(object_store_id, key,
+                                                        std::move(value)));
 
   {
     TRACE_EVENT1("IndexedDB", "Database::PutOperation.UpdateIndexes", "txn.id",
                  id());
     for (const auto& writer : index_writers) {
-      writer->WriteIndexKeys(record_identifier, BackingStoreTransaction(),
+      writer->WriteIndexKeys(new_record, BackingStoreTransaction(),
                              object_store_id);
     }
   }
@@ -610,11 +604,9 @@
     // The key is a number that was either generated by the generator which now
     // needs to be incremented (so `check_current` is false) or was
     // user-supplied so we only conditionally use (and `check_current` is true).
-    Status s = BackingStoreTransaction()->MaybeUpdateKeyGeneratorCurrentNumber(
-        object_store_id, new_max, /*check_current=*/!key_was_generated);
-    if (!s.ok()) {
-      return s;
-    }
+    IDB_RETURN_IF_ERROR(
+        BackingStoreTransaction()->MaybeUpdateKeyGeneratorCurrentNumber(
+            object_store_id, new_max, /*check_current=*/!key_was_generated));
   }
   {
     TRACE_EVENT1("IndexedDB", "Database::PutOperation.Callbacks", "txn.id",
diff --git a/content/browser/indexed_db/status.h b/content/browser/indexed_db/status.h
index 4b72d10c..49ca65d 100644
--- a/content/browser/indexed_db/status.h
+++ b/content/browser/indexed_db/status.h
@@ -9,6 +9,7 @@
 #include <string>
 
 #include "base/strings/string_util.h"
+#include "base/types/expected.h"
 #include "content/common/content_export.h"
 #include "third_party/leveldatabase/src/include/leveldb/status.h"
 
@@ -106,6 +107,27 @@
   std::string msg_;
 };
 
+// Makes a common return value more concise. For this return type, "no error" is
+// represented by returning a value for `T`, and the Status should never be
+// `ok()`.
+template <typename T>
+using StatusOr = base::expected<T, Status>;
+
+// One common way of returning an error from a function that does not otherwise
+// return a value would be base::expected<void, Status>, and that would allow us
+// to make use of the `base::expected` macros such as RETURN_IF_ERROR. However,
+// that would require updating tons of code, so we simply define similar macros.
+#define IDB_RETURN_IF_ERROR_AND_DO(expr, on_error) \
+  {                                                \
+    Status _status = expr;                         \
+    if (!_status.ok()) [[unlikely]] {              \
+      on_error;                                    \
+      return _status;                              \
+    }                                              \
+  }
+
+#define IDB_RETURN_IF_ERROR(expr) IDB_RETURN_IF_ERROR_AND_DO(expr, {})
+
 }  // namespace content::indexed_db
 
 #endif  // CONTENT_BROWSER_INDEXED_DB_STATUS_H_
diff --git a/content/browser/shared_storage/shared_storage_browsertest.cc b/content/browser/shared_storage/shared_storage_browsertest.cc
index c7911e10..7827687 100644
--- a/content/browser/shared_storage/shared_storage_browsertest.cc
+++ b/content/browser/shared_storage/shared_storage_browsertest.cc
@@ -225,6 +225,11 @@
   }
   ~TestSharedStorageDevToolsClient() override { DetachProtocolClient(); }
 
+  void set_expected_notification_method(
+      const std::string& expected_notification_method) {
+    expected_notification_method_ = expected_notification_method;
+  }
+
   void DispatchProtocolMessage(DevToolsAgentHost* agent_host,
                                base::span<const uint8_t> message) override {
     std::string_view message_str(reinterpret_cast<const char*>(message.data()),
@@ -268,7 +273,7 @@
   }
 
  private:
-  std::string expected_notification_method_ = "Storage.sharedStorageAccessed";
+  std::string expected_notification_method_;
   std::vector<base::Value::Dict> params_for_notifications_with_expected_method_;
 };
 
@@ -9802,8 +9807,9 @@
         MainFrameId(), origin_str}});
 }
 
-IN_PROC_BROWSER_TEST_P(SharedStorageBrowserTest,
-                       TwoWindows_DevToolsNotificationsFilteredByMainFrame) {
+IN_PROC_BROWSER_TEST_P(
+    SharedStorageBrowserTest,
+    TwoWindows_DevToolsAccessNotificationsFilteredByMainFrame) {
   GURL url1 = https_server()->GetURL("a.test", kPageWithBlankIframePath);
   GURL url2 = https_server()->GetURL("b.test", kPageWithBlankIframePath);
   GURL iframe_url1 = https_server()->GetURL("c.test", kSimplePagePath);
@@ -9812,12 +9818,15 @@
   EXPECT_TRUE(NavigateToURL(shell(), url1));
   RenderFrameHost* main_rfh1 = PrimaryFrameTreeNodeRoot()->current_frame_host();
   TestSharedStorageDevToolsClient main_frame_devtools_client1(main_rfh1);
+  std::string expected_method = "Storage.sharedStorageAccessed";
+  main_frame_devtools_client1.set_expected_notification_method(expected_method);
 
   EXPECT_TRUE(
       NavigateIframeToURL(shell()->web_contents(), "test_iframe", iframe_url1));
   RenderFrameHost* iframe1 =
       PrimaryFrameTreeNodeRoot()->child_at(0)->current_frame_host();
   TestSharedStorageDevToolsClient iframe_devtools_client1(iframe1);
+  iframe_devtools_client1.set_expected_notification_method(expected_method);
 
   EXPECT_TRUE(ExecJs(iframe1, "sharedStorage.delete('key0')"));
 
@@ -9828,6 +9837,7 @@
   RenderFrameHost* main_rfh2 =
       PrimaryFrameTreeNodeRootFromShell(shell2)->current_frame_host();
   TestSharedStorageDevToolsClient main_frame_devtools_client2(main_rfh2);
+  main_frame_devtools_client2.set_expected_notification_method(expected_method);
 
   EXPECT_TRUE(
       NavigateIframeToURL(shell2->web_contents(), "test_iframe", iframe_url2));
@@ -9835,6 +9845,7 @@
                                  ->child_at(0)
                                  ->current_frame_host();
   TestSharedStorageDevToolsClient iframe_devtools_client2(iframe2);
+  iframe_devtools_client2.set_expected_notification_method(expected_method);
 
   EXPECT_TRUE(ExecJs(iframe2, "sharedStorage.set('key2', 'value2')"));
 
@@ -9854,8 +9865,9 @@
                                            /*expected_total_host_count=*/2u);
 
   std::vector<std::string> selected_key_paths(
-      {"method", "ownerSite", "params.operationName", "params.ignoreIfPresent",
-       "params.key", "params.value", "params.workletId", "scope"});
+      {"method", "ownerSite", "params.operationId", "params.operationName",
+       "params.ignoreIfPresent", "params.key", "params.value",
+       "params.workletOrdinal", "scope"});
   std::vector<std::map<std::string, std::string>>
       selected_params_observed_main1 =
           main_frame_devtools_client1
@@ -9876,24 +9888,25 @@
       selected_params_observed_main1[1],
       ElementsAre(Pair("method", "addModule"),
                   Pair("ownerSite", "https://a.test"),
-                  Pair("params.workletId", "0"), Pair("scope", "window")));
+                  Pair("params.workletOrdinal", "0"), Pair("scope", "window")));
   EXPECT_THAT(
       selected_params_observed_main1[2],
       ElementsAre(Pair("method", "run"), Pair("ownerSite", "https://a.test"),
+                  Pair("params.operationId", "0"),
                   Pair("params.operationName", "test-operation"),
-                  Pair("params.workletId", "0"), Pair("scope", "window")));
+                  Pair("params.workletOrdinal", "0"), Pair("scope", "window")));
   EXPECT_THAT(
       selected_params_observed_main1[3],
       ElementsAre(Pair("method", "set"), Pair("ownerSite", "https://a.test"),
                   Pair("params.ignoreIfPresent", "false"),
                   Pair("params.key", "key0"), Pair("params.value", "value0"),
-                  Pair("params.workletId", "0"),
+                  Pair("params.workletOrdinal", "0"),
                   Pair("scope", "sharedStorageWorklet")));
   EXPECT_THAT(
       selected_params_observed_main1[4],
       ElementsAre(Pair("method", "append"), Pair("ownerSite", "https://a.test"),
                   Pair("params.key", "key0"), Pair("params.value", "value1"),
-                  Pair("params.workletId", "0"),
+                  Pair("params.workletOrdinal", "0"),
                   Pair("scope", "sharedStorageWorklet")));
 
   std::vector<std::map<std::string, std::string>>
@@ -9918,21 +9931,23 @@
       selected_params_observed_main2[1],
       ElementsAre(Pair("method", "createWorklet"),
                   Pair("ownerSite", "https://b.test"),
-                  Pair("params.workletId", "1"), Pair("scope", "window")));
+                  Pair("params.workletOrdinal", "1"), Pair("scope", "window")));
   EXPECT_THAT(
       selected_params_observed_main2[2],
       ElementsAre(Pair("method", "run"), Pair("ownerSite", "https://b.test"),
+                  Pair("params.operationId", "0"),
                   Pair("params.operationName", "test-operation"),
-                  Pair("params.workletId", "1"), Pair("scope", "window")));
+                  Pair("params.workletOrdinal", "1"), Pair("scope", "window")));
   EXPECT_THAT(
       selected_params_observed_main2[3],
       ElementsAre(Pair("method", "delete"), Pair("ownerSite", "https://b.test"),
-                  Pair("params.key", "key1"), Pair("params.workletId", "1"),
+                  Pair("params.key", "key1"),
+                  Pair("params.workletOrdinal", "1"),
                   Pair("scope", "sharedStorageWorklet")));
   EXPECT_THAT(
       selected_params_observed_main2[4],
       ElementsAre(Pair("method", "clear"), Pair("ownerSite", "https://b.test"),
-                  Pair("params.workletId", "1"),
+                  Pair("params.workletOrdinal", "1"),
                   Pair("scope", "sharedStorageWorklet")));
 
   ASSERT_EQ(IsLocalRoot(iframe1), IsLocalRoot(iframe2));
@@ -9965,4 +9980,163 @@
       << SerializeVectorOfMapOfStrings(selected_params_observed_iframe2);
 }
 
+IN_PROC_BROWSER_TEST_P(
+    SharedStorageBrowserTest,
+    TwoWindows_DevToolsOperationFinishedNotificationsFilteredByMainFrame) {
+  GURL url1 = https_server()->GetURL("a.test", kPageWithBlankIframePath);
+  GURL url2 = https_server()->GetURL("b.test", kPageWithBlankIframePath);
+  GURL iframe_url1 = https_server()->GetURL("c.test", kSimplePagePath);
+  GURL iframe_url2 = https_server()->GetURL("d.test", kSimplePagePath);
+
+  EXPECT_TRUE(NavigateToURL(shell(), url1));
+  RenderFrameHost* main_rfh1 = PrimaryFrameTreeNodeRoot()->current_frame_host();
+  TestSharedStorageDevToolsClient main_frame_devtools_client1(main_rfh1);
+  std::string expected_method =
+      "Storage.sharedStorageWorkletOperationExecutionFinished";
+  main_frame_devtools_client1.set_expected_notification_method(expected_method);
+
+  EXPECT_TRUE(
+      NavigateIframeToURL(shell()->web_contents(), "test_iframe", iframe_url1));
+  RenderFrameHost* iframe1 =
+      PrimaryFrameTreeNodeRoot()->child_at(0)->current_frame_host();
+  TestSharedStorageDevToolsClient iframe_devtools_client1(iframe1);
+  iframe_devtools_client1.set_expected_notification_method(expected_method);
+
+  EXPECT_TRUE(ExecJs(iframe1, R"(
+      sharedStorage.createWorklet('shared_storage/simple_module.js')
+        .then((worklet) => worklet.run("test-operation", {keepAlive: true}));
+  )"));
+
+  Shell* shell2 = Shell::CreateNewWindow(
+      shell()->web_contents()->GetBrowserContext(), url2, nullptr, gfx::Size());
+  ASSERT_TRUE(WaitForLoadStop(shell2->web_contents()));
+
+  RenderFrameHost* main_rfh2 =
+      PrimaryFrameTreeNodeRootFromShell(shell2)->current_frame_host();
+  TestSharedStorageDevToolsClient main_frame_devtools_client2(main_rfh2);
+  main_frame_devtools_client2.set_expected_notification_method(expected_method);
+
+  EXPECT_TRUE(
+      NavigateIframeToURL(shell2->web_contents(), "test_iframe", iframe_url2));
+  RenderFrameHost* iframe2 = PrimaryFrameTreeNodeRootFromShell(shell2)
+                                 ->child_at(0)
+                                 ->current_frame_host();
+  TestSharedStorageDevToolsClient iframe_devtools_client2(iframe2);
+  iframe_devtools_client2.set_expected_notification_method(expected_method);
+
+  EXPECT_TRUE(ExecJs(iframe2, R"(
+      sharedStorage.worklet.addModule('shared_storage/simple_module.js')
+        .then(() => sharedStorage.selectURL("test-url-selection-operation",
+                                            [{url: 'fenced_frames/title0.html'},
+                                            {url: 'fenced_frames/title1.html'}],
+                                            {keepAlive: true}));
+  )"));
+
+  EXPECT_TRUE(ExecJs(main_rfh1, R"(
+      sharedStorage.createWorklet('shared_storage/simple_module.js')
+        .then((worklet) => worklet.selectURL("test-url-selection-operation",
+                                            [{url: 'fenced_frames/title0.html'},
+                                            {url: 'fenced_frames/title1.html'}],
+                                            {keepAlive: true}));
+  )"));
+
+  GURL out_script_url;
+  ExecuteScriptInWorkletUsingCreateWorklet(main_rfh2, R"(
+      sharedStorage.clear();
+    )",
+                                           &out_script_url,
+                                           /*expected_total_host_count=*/4u);
+
+  // Ensure that execution of all 4 operations has finished.
+  WaitForHistogramsWithCounts(
+      {std::make_tuple(kTimingRunExecutedInWorkletHistogram, 2),
+       std::make_tuple(kTimingSelectUrlExecutedInWorkletHistogram, 2)});
+
+  std::vector<std::string> selected_key_paths(
+      {"method", "operationId", "ownerOrigin"});
+  std::vector<std::map<std::string, std::string>>
+      selected_params_observed_main1 =
+          main_frame_devtools_client1
+              .GetSelectedParamsAsStringsForNotificationsWithExpectedMethod(
+                  selected_key_paths);
+
+  std::string main_origin_str1 = url::Origin::Create(url1).Serialize();
+  std::string main_origin_str2 = url::Origin::Create(url2).Serialize();
+  std::string iframe_origin_str1 = url::Origin::Create(iframe_url1).Serialize();
+  std::string iframe_origin_str2 = url::Origin::Create(iframe_url2).Serialize();
+
+  // `main_frame_devtools_client1` receives the expected shared storage
+  // notifications for `shell()`, including any notifications from subframes of
+  // this main frame, but no further "Storage.sharedStorageAccessed"
+  // notifications. In particular, it does not receive those from `shell2`.
+  ASSERT_EQ(selected_params_observed_main1.size(), 2u)
+      << SerializeVectorOfMapOfStrings(selected_params_observed_main1);
+  if (selected_params_observed_main1[0]["ownerOrigin"] != iframe_origin_str1) {
+    // The order in which the operations finish executing is nondeterministic.
+    // If necessary, swap to put the iframe's results first.
+    std::swap(selected_params_observed_main1[0],
+              selected_params_observed_main1[1]);
+  }
+  EXPECT_THAT(selected_params_observed_main1[0],
+              ElementsAre(Pair("method", "run"), Pair("operationId", "0"),
+                          Pair("ownerOrigin", iframe_origin_str1)));
+  EXPECT_THAT(selected_params_observed_main1[1],
+              ElementsAre(Pair("method", "selectURL"), Pair("operationId", "0"),
+                          Pair("ownerOrigin", main_origin_str1)));
+
+  std::vector<std::map<std::string, std::string>>
+      selected_params_observed_main2 =
+          main_frame_devtools_client2
+              .GetSelectedParamsAsStringsForNotificationsWithExpectedMethod(
+                  selected_key_paths);
+
+  // `main_frame_devtools_client2` receives the expected shared storage
+  // notifications for `shell2`, including any notifications from subframes of
+  // this main frame, but no further "Storage.sharedStorageAccessed"
+  // notifications. In particular, it does not receive those from `shell()`.
+  ASSERT_EQ(selected_params_observed_main2.size(), 2u)
+      << SerializeVectorOfMapOfStrings(selected_params_observed_main2);
+  if (selected_params_observed_main2[0]["ownerOrigin"] != iframe_origin_str2) {
+    // The order in which the operations finish executing is nondeterministic.
+    // If necessary, swap to put the iframe's results first.
+    std::swap(selected_params_observed_main2[0],
+              selected_params_observed_main2[1]);
+  }
+  EXPECT_THAT(selected_params_observed_main2[0],
+              ElementsAre(Pair("method", "selectURL"), Pair("operationId", "0"),
+                          Pair("ownerOrigin", iframe_origin_str2)));
+  EXPECT_THAT(selected_params_observed_main2[1],
+              ElementsAre(Pair("method", "run"), Pair("operationId", "0"),
+                          Pair("ownerOrigin", main_origin_str2)));
+
+  ASSERT_EQ(IsLocalRoot(iframe1), IsLocalRoot(iframe2));
+
+  if (!IsLocalRoot(iframe1)) {
+    // In this case, `iframe_devtools_client1` and `iframe_devtools_client2` are
+    // actually attached to their respective main frame hosts. They will have
+    // received the same notifications as above.
+    return;
+  }
+
+  std::vector<std::map<std::string, std::string>>
+      selected_params_observed_iframe1 =
+          iframe_devtools_client1
+              .GetSelectedParamsAsStringsForNotificationsWithExpectedMethod(
+                  selected_key_paths);
+
+  std::vector<std::map<std::string, std::string>>
+      selected_params_observed_iframe2 =
+          iframe_devtools_client2
+              .GetSelectedParamsAsStringsForNotificationsWithExpectedMethod(
+                  std::move(selected_key_paths));
+
+  // Neither `iframe_devtools_client1` nor `iframe_devtools_client2` receives
+  // any shared storage notifications. The notifications for the subframes'
+  // events were received by their respective main frame clients above.
+  EXPECT_TRUE(selected_params_observed_iframe1.empty())
+      << SerializeVectorOfMapOfStrings(selected_params_observed_iframe1);
+  EXPECT_TRUE(selected_params_observed_iframe2.empty())
+      << SerializeVectorOfMapOfStrings(selected_params_observed_iframe2);
+}
+
 }  // namespace content
diff --git a/content/browser/shared_storage/shared_storage_browsertest_base.cc b/content/browser/shared_storage/shared_storage_browsertest_base.cc
index f607d61..ed56f9c 100644
--- a/content/browser/shared_storage/shared_storage_browsertest_base.cc
+++ b/content/browser/shared_storage/shared_storage_browsertest_base.cc
@@ -12,6 +12,7 @@
 #include <optional>
 #include <string>
 #include <string_view>
+#include <tuple>
 #include <utility>
 #include <vector>
 
@@ -66,6 +67,11 @@
   return base::StrCat({base::NumberToString(delta.InMilliseconds()), "ms"});
 }
 
+int GetSampleCountForHistogram(std::string_view histogram_name) {
+  auto* histogram = base::StatisticsRecorder::FindHistogram(histogram_name);
+  return histogram ? histogram->SnapshotSamples()->TotalCount() : 0;
+}
+
 }  // namespace
 
 SharedStorageBrowserTestBase::SharedStorageBrowserTestBase() {
@@ -546,6 +552,37 @@
   }
 }
 
+// static
+void SharedStorageBrowserTestBase::WaitForHistogramWithCount(
+    std::string_view histogram_name,
+    int count) {
+  if (GetSampleCountForHistogram(histogram_name) >= count) {
+    return;
+  }
+
+  base::RunLoop run_loop;
+  auto histogram_observer =
+      std::make_unique<base::StatisticsRecorder::ScopedHistogramSampleObserver>(
+          histogram_name,
+          base::BindLambdaForTesting([&](std::string_view histogram_name,
+                                         uint64_t name_hash,
+                                         base::HistogramBase::Sample32 sample) {
+            if (GetSampleCountForHistogram(histogram_name) >= count) {
+              run_loop.Quit();
+            }
+          }));
+  run_loop.Run();
+}
+
+// static
+void SharedStorageBrowserTestBase::WaitForHistogramsWithCounts(
+    const std::vector<std::tuple<std::string_view, int>>&
+        histogram_names_and_counts) {
+  for (auto [name, count] : histogram_names_and_counts) {
+    WaitForHistogramWithCount(name, count);
+  }
+}
+
 std::map<int, base::UnguessableToken>&
 SharedStorageBrowserTestBase::GetCachedWorkletHostDevToolsTokens() {
   return test_runtime_manager().GetCachedWorkletHostDevToolsTokens();
diff --git a/content/browser/shared_storage/shared_storage_browsertest_base.h b/content/browser/shared_storage/shared_storage_browsertest_base.h
index 050554c..10ae991 100644
--- a/content/browser/shared_storage/shared_storage_browsertest_base.h
+++ b/content/browser/shared_storage/shared_storage_browsertest_base.h
@@ -12,6 +12,7 @@
 #include <optional>
 #include <string>
 #include <string_view>
+#include <tuple>
 #include <vector>
 
 #include "base/memory/raw_ptr.h"
@@ -154,6 +155,11 @@
   static void WaitForHistogram(const std::string& histogram_name);
   static void WaitForHistograms(
       const std::vector<std::string>& histogram_names);
+  static void WaitForHistogramWithCount(std::string_view histogram_name,
+                                        int count);
+  static void WaitForHistogramsWithCounts(
+      const std::vector<std::tuple<std::string_view, int>>&
+          histogram_names_and_counts);
 
   static constexpr double kBudgetAllowed = 5.0;
   static constexpr int kStalenessThresholdDays = 1;
diff --git a/content/browser/shared_storage/shared_storage_runtime_manager.h b/content/browser/shared_storage/shared_storage_runtime_manager.h
index 9e85927..7476747 100644
--- a/content/browser/shared_storage/shared_storage_runtime_manager.h
+++ b/content/browser/shared_storage/shared_storage_runtime_manager.h
@@ -78,6 +78,7 @@
     virtual void OnSharedStorageSelectUrlConfigPopulated(
         const std::optional<FencedFrameConfig>& config) = 0;
 
+    // TODO(crbug.com/401011862): Remove `worklet_ordinal_id` parameter.
     virtual void OnSharedStorageWorkletOperationExecutionFinished(
         base::Time finished_time,
         base::TimeDelta execution_time,
@@ -122,6 +123,7 @@
       const std::string& owner_origin,
       const SharedStorageEventParams& params);
 
+  // TODO(crbug.com/401011862): Remove `worklet_ordinal_id` parameter.
   void NotifyWorkletOperationExecutionFinished(
       base::TimeDelta execution_time,
       SharedStorageObserverInterface::AccessMethod method,
diff --git a/content/test/content_test_bundle_data.filelist b/content/test/content_test_bundle_data.filelist
index 7fa7b653..86c577f9b 100644
--- a/content/test/content_test_bundle_data.filelist
+++ b/content/test/content_test_bundle_data.filelist
@@ -6521,7 +6521,6 @@
 data/attribution_reporting/interop/trigger_verbose_debug_report_source_debug_permission.json
 data/attribution_reporting/interop/unsuitable_response_url.json
 data/attribution_reporting/interop/verbose_debug_report_multiple_data.json
-data/attribution_reporting/interop_private/deliver_after_new_navigation.json
 data/attribution_reporting/page_with_conversion_measurement_disabled.html
 data/attribution_reporting/page_with_conversion_measurement_disabled.html.mock-http-headers
 data/attribution_reporting/page_with_conversion_redirect.html
diff --git a/content/test/data/attribution_reporting/interop_private/deliver_after_new_navigation.json b/content/test/data/attribution_reporting/interop_private/deliver_after_new_navigation.json
deleted file mode 100644
index 81abab4..0000000
--- a/content/test/data/attribution_reporting/interop_private/deliver_after_new_navigation.json
+++ /dev/null
@@ -1,127 +0,0 @@
-{
-  "description": "Deliver report in standby upon new navigation received",
-  "api_config": {
-    "needs_delivery_after_new_navigation": true
-  },
-  "input": {
-    "registrations": [
-      {
-        "timestamp": "0",
-        "registration_request": {
-          "context_origin": "https://source.test",
-          "Attribution-Reporting-Eligible": "navigation-source"
-        },
-        "responses": [
-          {
-            "url": "https://reporter.test/register-source",
-            "debug_permission": true,
-            "response": {
-              "Attribution-Reporting-Register-Source": {
-                "destination": "https://destination.test",
-                "source_event_id": "123",
-                "event_report_windows": {
-                  "start_time": 0,
-                  "end_times": [3600, 86400]
-                },
-                "debug_reporting": true
-              }
-            }
-          }
-        ]
-      },
-      {
-        "timestamp": "1000",
-        "registration_request": {
-          "context_origin": "https://destination.test"
-        },
-        "responses": [
-          {
-            "url": "https://reporter.test/register-trigger",
-            "response": {
-              "Attribution-Reporting-Register-Trigger": {
-                "event_trigger_data": [
-                  {
-                    "trigger_data": "2"
-                  }
-                ]
-              }
-            }
-          }
-        ]
-      },
-      // Report time - last navigation <= 1 minute, report not on standby.
-      {
-        "timestamp": "3540000",
-        "navigation": true
-      },
-      // Report time - last navigation > 1 minute, report on standby.
-      {
-        "timestamp": "86339999",
-        "registration_request": {
-          "context_origin": "https://destination.test"
-        },
-        "responses": [
-          {
-            "url": "https://reporter.test/register-trigger",
-            "response": {
-              "Attribution-Reporting-Register-Trigger": {
-                "event_trigger_data": [
-                  {
-                    "trigger_data": "3"
-                  }
-                ]
-              }
-            }
-          }
-        ]
-      },
-      // New navigation, second report now sends after delay.
-      {
-        "timestamp": "90000000",
-        "navigation": true
-      }
-    ]
-  },
-  "output": {
-    "reports": [
-      {
-        "payload": [
-          {
-            "body": {
-              "attribution_destination": "https://destination.test",
-              "source_event_id": "123",
-              "source_site": "https://source.test"
-            },
-            "type": "source-success"
-          }
-        ],
-        "report_time": "0",
-        "report_url": "https://reporter.test/.well-known/attribution-reporting/debug/verbose"
-      },
-      {
-        "payload": {
-          "attribution_destination": "https://destination.test",
-          "randomized_trigger_rate": 0.0008051,
-          "scheduled_report_time": "3600",
-          "source_event_id": "123",
-          "source_type": "navigation",
-          "trigger_data": "2"
-        },
-        "report_url": "https://reporter.test/.well-known/attribution-reporting/report-event-attribution",
-        "report_time": "3600000"
-      },
-      {
-        "payload": {
-          "attribution_destination": "https://destination.test",
-          "randomized_trigger_rate": 0.0008051,
-          "scheduled_report_time": "86400",
-          "source_event_id": "123",
-          "source_type": "navigation",
-          "trigger_data": "3"
-        },
-        "report_url": "https://reporter.test/.well-known/attribution-reporting/report-event-attribution",
-        "report_time": "90000000"
-      }
-    ]
-  }
-}
diff --git a/content/test/gpu/find_bad_machines.py b/content/test/gpu/find_bad_machines.py
index 740707c8..7b024af 100755
--- a/content/test/gpu/find_bad_machines.py
+++ b/content/test/gpu/find_bad_machines.py
@@ -19,8 +19,10 @@
     'gpu': [
         # ChromeOS amd64-generic omitted since it is run on GCE instances.
         # ChromeOS volteer omitted since it runs in Skylab.
+        # TODO(crbug.com/416556639): Remove Oreo and Pie related mixins.
         'chromium_nexus_5x_oreo',
         'chromium_pixel_2_pie',
+        'chromium_pixel_2_q',
         'gpu_nvidia_shield_tv_stable',
         'gpu_pixel_4_stable',
         'gpu_pixel_6_experimental',
diff --git a/content/test/gpu/gpu_path_util/__init__.py b/content/test/gpu/gpu_path_util/__init__.py
index 1b7bd25..91205a8 100644
--- a/content/test/gpu/gpu_path_util/__init__.py
+++ b/content/test/gpu/gpu_path_util/__init__.py
@@ -15,6 +15,9 @@
 GPU_DATA_RELATIVE_PATH = os.path.join(*_GPU_DATA_RELATIVE_PATH_COMPONENTS)
 GPU_DATA_DIR = os.path.join(CHROMIUM_SRC_DIR,
                             *_GPU_DATA_RELATIVE_PATH_COMPONENTS)
+MEET_EFFECTS_ASSETS_DIR = os.path.join(GPU_DATA_DIR, 'meet_effects',
+                                       'meet-gpu-tests')
+MEET_EFFECTS_VIDEO_DIR = os.path.join(GPU_DATA_DIR, 'meet_effects_videos')
 GPU_TESTS_DIR = os.path.join(GPU_DIR, 'gpu_tests')
 GPU_EXPECTATIONS_DIR = os.path.join(GPU_TESTS_DIR, 'test_expectations')
 GPU_TEST_HARNESS_JAVASCRIPT_DIR = os.path.join(GPU_TESTS_DIR, 'javascript')
diff --git a/content/test/gpu/gpu_tests/crop_actions.py b/content/test/gpu/gpu_tests/crop_actions.py
index 7cc6dd2..a51749a 100644
--- a/content/test/gpu/gpu_tests/crop_actions.py
+++ b/content/test/gpu/gpu_tests/crop_actions.py
@@ -51,37 +51,50 @@
           rectangle
       x2: An int specifying the x coordinate of the bottom right corner of the
           crop rectangle. Can be None to explicitly specify the right side of
-          the image, although clamping will be performed regardless.
+          the image, although clamping will be performed regardless. Can be
+          negative to specify an offset relative to the right edge.
       y2: An int specifying the y coordinate of the bottom right corner of the
           crop rectangle. Can be None to explicitly specify the bottom of the
-          image, although clamping will be performed regardless.
+          image, although clamping will be performed regardless. Can be
+          negative to specify an offset relative to the bottom.
     """
     assert x1 >= 0
     assert y1 >= 0
-    assert x2 is None or x2 > x1
-    assert y2 is None or y2 > y1
+    assert x2 is None or x2 > x1 or x2 < 0
+    assert y2 is None or y2 > y1 or y2 < 0
     self._x1 = x1
     self._y1 = y1
     self._x2 = x2
     self._y2 = y2
 
+  # pylint: disable=too-many-locals
   def CropScreenshot(self, screenshot: ct.Screenshot, dpr: float,
                      device_type: str, os_name: str) -> ct.Screenshot:
     del device_type, os_name  # unused
     start_x = int(self._x1 * dpr)
     start_y = int(self._y1 * dpr)
 
+    image_width = image_util.Width(screenshot)
+    image_height = image_util.Height(screenshot)
+
     # When actually clamping the value, it's possible we'll catch the
     # scrollbar, so account for its width in the clamp.
-    max_x = image_util.Width(screenshot) - FixedRectCropAction.SCROLLBAR_WIDTH
-    max_y = image_util.Height(screenshot)
+    max_x = image_width - FixedRectCropAction.SCROLLBAR_WIDTH
+    max_y = image_height
 
     if self._x2 is None:
       end_x = max_x
+    elif self._x2 < 0:
+      tentative_x = max(start_x + 1, int(self._x2 * dpr) + image_width)
+      end_x = min(tentative_x, max_x)
     else:
       end_x = min(int(self._x2 * dpr), max_x)
+
     if self._y2 is None:
       end_y = max_y
+    elif self._y2 < 0:
+      tentative_y = max(start_y + 1, int(self._y2 * dpr) + image_height)
+      end_y = min(tentative_y, max_y)
     else:
       end_y = min(int(self._y2 * dpr), max_y)
 
@@ -89,6 +102,7 @@
     crop_height = end_y - start_y
     return image_util.Crop(screenshot, start_x, start_y, crop_width,
                            crop_height)
+  # pylint: enable=too-many-locals
 
 
 class NonWhiteContentCropAction(BaseCropAction):
diff --git a/content/test/gpu/gpu_tests/crop_actions_unittest.py b/content/test/gpu/gpu_tests/crop_actions_unittest.py
index 4f719b7..0babae5 100644
--- a/content/test/gpu/gpu_tests/crop_actions_unittest.py
+++ b/content/test/gpu/gpu_tests/crop_actions_unittest.py
@@ -149,6 +149,30 @@
                             tolerance=0,
                             likely_equal=True))
 
+  def testNegativeBounds(self):
+    """Tests that negative numbers can be used to specify offsets."""
+    image_width = 20
+    # 20 x 5 green image with a group of 4 red pixels towards the top left.
+    # yapf: disable
+    pixels = [
+        *(GREEN * image_width),
+        *(GREEN * image_width),
+        *GREEN, *GREEN, *RED, *RED, *(GREEN * (image_width - 4)),
+        *GREEN, *GREEN, *RED, *RED, *(GREEN * (image_width - 4)),
+        *(GREEN * image_width),
+    ]
+    # yapf: enable
+    image = image_util.FromRGBPixels(20, 5, pixels, bpp=3)
+    action = ca.FixedRectCropAction(2, 2, -16, -1)
+    cropped_image = action.CropScreenshot(image, 1, '', '')
+    expected_pixels = [*(RED * 4)]
+    expected_image = image_util.FromRGBPixels(2, 2, expected_pixels, bpp=3)
+    self.assertTrue(
+        image_util.AreEqual(cropped_image,
+                            expected_image,
+                            tolerance=0,
+                            likely_equal=True))
+
 
 class NonWhiteContentCropAction(unittest.TestCase):
 
diff --git a/content/test/gpu/gpu_tests/pixel_integration_test.py b/content/test/gpu/gpu_tests/pixel_integration_test.py
index f8356f9..17d095f 100644
--- a/content/test/gpu/gpu_tests/pixel_integration_test.py
+++ b/content/test/gpu/gpu_tests/pixel_integration_test.py
@@ -100,6 +100,7 @@
     pages += namespace.PaintWorkletPages(cls.test_base_name)
     pages += namespace.VideoFromCanvasPages(cls.test_base_name)
     pages += namespace.NoGpuProcessPages(cls.test_base_name)
+    pages += namespace.MeetEffectsPages(cls.test_base_name)
     if host_information.IsMac():
       pages += namespace.MacSpecificPages(cls.test_base_name)
       # Unfortunately we don't have a browser instance here so can't tell
@@ -109,12 +110,11 @@
     if host_information.IsWindows():
       pages += namespace.DirectCompositionPages(cls.test_base_name)
       pages += namespace.HdrTestPages(cls.test_base_name)
+      pages += namespace.WARPPages(cls.test_base_name)
     # Only run SwiftShader tests on platforms that support it.
     if host_information.IsLinux() or (host_information.IsWindows()
                                       and not host_information.IsArmCpu()):
       pages += namespace.SwiftShaderPages(cls.test_base_name)
-    if host_information.IsWindows():
-      pages += namespace.WARPPages(cls.test_base_name)
     for p in pages:
       yield (p.name, posixpath.join(gpu_path_util.GPU_DATA_RELATIVE_PATH,
                                     p.url), [p])
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py
index 106984b..81d062a 100644
--- a/content/test/gpu/gpu_tests/pixel_test_pages.py
+++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -6,6 +6,7 @@
 # pylint: disable=too-many-lines
 
 from collections.abc import Callable
+from datetime import date
 from enum import Enum
 import json
 import logging
@@ -1758,3 +1759,40 @@
             crop_action=ca.NoOpCropAction(),
         ),
     ]
+
+  @staticmethod
+  def MeetEffectsPages(base_name: str) -> list[PixelTestPage]:
+    video_path = os.path.join(gpu_path_util.MEET_EFFECTS_VIDEO_DIR,
+                              'effects-normal-light.y4m')
+    video_args = [
+        '--auto-accept-camera-and-microphone-capture',
+        '--use-fake-device-for-media-stream',
+        f'--use-file-for-fake-video-capture={video_path}'
+    ]
+    # The video is rather large on the page, which can cause a horizontal
+    # scrollbar to appear along the bottom. So, crop that first.
+    standard_crop = ca.NonWhiteContentCropAction(
+        ca.FixedRectCropAction(0, 60, None, -20))
+    # Run the tests on CI for a while to see how stable they are with
+    # fuzzy matching enabled.
+    grace_period_end = date(2025, 7, 1)
+    return [
+        PixelTestPage('meet_effects/meet-gpu-tests/index.html?effectId=359',
+                      f'{base_name}_MeetEffectsCatOnHead',
+                      crop_action=standard_crop,
+                      browser_args=video_args,
+                      matching_algorithm=ROUNDING_ERROR_ALGO,
+                      grace_period_end=grace_period_end),
+        PixelTestPage('meet_effects/meet-gpu-tests/index.html?effectId=539',
+                      f'{base_name}_MeetEffectsRainbowWig',
+                      crop_action=standard_crop,
+                      browser_args=video_args,
+                      matching_algorithm=ROUNDING_ERROR_ALGO,
+                      grace_period_end=grace_period_end),
+        PixelTestPage('meet_effects/meet-gpu-tests/index.html?effectId=530',
+                      f'{base_name}_MeetEffectsTruckerHat',
+                      crop_action=standard_crop,
+                      browser_args=video_args,
+                      matching_algorithm=ROUNDING_ERROR_ALGO,
+                      grace_period_end=grace_period_end),
+    ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index f2511cb..f4032193 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -280,6 +280,10 @@
 # on these devices.
 crbug.com/1372155 [ android android-sm-a137f ] Pixel_WebGLFloat [ Skip ]
 
+# Meet Effects tests are only supported on desktop platforms.
+[ android ] Pixel_MeetEffects* [ Skip ]
+[ fuchsia ] Pixel_MeetEffects* [ Skip ]
+
 ###############################
 # Temporary Skip Expectations #
 ###############################
@@ -341,6 +345,9 @@
 crbug.com/1456360 [ chromeos chromeos-board-amd64-generic ] Pixel_WebGLCopyImage [ Skip ]
 crbug.com/1456360 [ chromeos chromeos-board-amd64-generic ] Pixel_WebGLSadCanvas [ Skip ]
 
+# Currently has flaky test setup hangs on Mac.
+crbug.com/286989320 [ mac ] Pixel_MeetEffects* [ Skip ]
+
 ###############################
 # Permanent Slow Expectations #
 ###############################
@@ -384,6 +391,11 @@
 # devices
 crbug.com/349132647 [ android android-sm-s911u1 android-chromium ] Pixel_WebGLContextRestored [ Slow ]
 
+# Meet effects tests currently take a while to actually start, which can cause
+# the initial heartbeat message to be delayed significantly.
+crbug.com/286989320 [ linux ] Pixel_MeetEffects* [ Slow ]
+crbug.com/286989320 [ win ] Pixel_MeetEffects* [ Slow ]
+
 ###################
 # Failures/Flakes #
 ###################
@@ -445,6 +457,9 @@
 # ChromeOS failures
 crbug.com/345146895 [ chromeos cros-chrome chromeos-board-amd64-generic renderer-skia-gl ] Pixel_RenderPasses [ Failure ]
 
+# Times out on ChromeOS devices even when marked as Slow.
+crbug.com/286989320 [ chromeos ] Pixel_MeetEffects* [ Failure ]
+
 # Failures on fuchsia
 crbug.com/40935289 [ fuchsia fuchsia-board-qemu-x64 ] Pixel_WebGLFloat [ Failure ]
 crbug.com/40935289 [ fuchsia no-asan web-engine-shell ] Pixel_Video_AV1 [ Failure ]
diff --git a/extensions/browser/api/api_browser_context_keyed_service_factories.cc b/extensions/browser/api/api_browser_context_keyed_service_factories.cc
index 39f07d4..2122ffdf 100644
--- a/extensions/browser/api/api_browser_context_keyed_service_factories.cc
+++ b/extensions/browser/api/api_browser_context_keyed_service_factories.cc
@@ -7,6 +7,7 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "extensions/browser/api/alarms/alarm_manager.h"
+#include "extensions/browser/api/declarative/rules_registry_service.h"
 #include "extensions/browser/api/declarative_net_request/rules_monitor_service.h"
 #include "extensions/browser/api/idle/idle_manager_factory.h"
 #include "extensions/browser/api/management/management_api.h"
@@ -33,7 +34,6 @@
 #include "extensions/browser/api/bluetooth_socket/bluetooth_api_socket.h"
 #include "extensions/browser/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h"
 #include "extensions/browser/api/content_settings/content_settings_service.h"
-#include "extensions/browser/api/declarative/rules_registry_service.h"
 #include "extensions/browser/api/feedback_private/feedback_private_api.h"
 #include "extensions/browser/api/hid/hid_connection_resource.h"
 #include "extensions/browser/api/hid/hid_device_manager.h"
@@ -76,6 +76,7 @@
   MessageService::GetFactoryInstance();
   OffscreenDocumentManager::GetFactory();
   PowerAPI::GetFactoryInstance();
+  RulesRegistryService::GetFactoryInstance();
   RuntimeAPI::GetFactoryInstance();
   SessionStorageManager::GetFactory();
   StorageFrontend::GetFactoryInstance();
@@ -124,7 +125,6 @@
   NetworkingPrivateEventRouterFactory::GetInstance();
 #endif
   PrinterProviderAPIFactory::GetInstance();
-  RulesRegistryService::GetFactoryInstance();
   SystemInfoAPI::GetFactoryInstance();
   UsbDeviceManager::GetFactoryInstance();
 #if BUILDFLAG(IS_CHROMEOS)
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
index 69ab1ef..4e4b552 100644
--- a/gin/v8_initializer.cc
+++ b/gin/v8_initializer.cc
@@ -390,7 +390,7 @@
                         features::kV8MemoryReducerGCCount.Get());
   }
   if (base::FeatureList::IsEnabled(features::kV8PreconfigureOldGen)) {
-    SetV8FlagsFormatted("--initial-old-space-size=%i",
+    SetV8FlagsFormatted("--preconfigured-old-space-size=%i",
                         features::kV8PreconfigureOldGenSize.Get());
   }
   SetV8FlagsIfOverridden(features::kV8IncrementalMarkingStartUserVisible,
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
index 1619a48..5240d84c 100644
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -267,11 +267,7 @@
 
 BASE_FEATURE(kWebGPUUseTintIR,
              "WebGPUUseTintIR",
-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE)
              base::FEATURE_ENABLED_BY_DEFAULT
-#else
-             base::FEATURE_DISABLED_BY_DEFAULT
-#endif
 );
 
 BASE_FEATURE(kWebGPUUseVulkanMemoryModel,
diff --git a/gpu/vulkan/init/skia_vk_memory_allocator_impl.cc b/gpu/vulkan/init/skia_vk_memory_allocator_impl.cc
index d938cd41..cdfc7d6 100644
--- a/gpu/vulkan/init/skia_vk_memory_allocator_impl.cc
+++ b/gpu/vulkan/init/skia_vk_memory_allocator_impl.cc
@@ -56,6 +56,9 @@
       // If the caller asked for lazy allocation then they already set up the
       // VkImage for it so we must require the lazy property.
       info.requiredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
+      // Make the transient allocation a dedicated allocation for tracking
+      // memory separately.
+      info.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
     }
 
     if (kProtected_AllocationPropertyFlag & flags) {
@@ -112,6 +115,9 @@
     if ((kLazyAllocation_AllocationPropertyFlag & flags) &&
         BufferUsage::kGpuOnly == usage) {
       info.preferredFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
+      // Make the transient allocation a dedicated allocation for tracking
+      // memory separately.
+      info.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
     }
 
     if (kPersistentlyMapped_AllocationPropertyFlag & flags) {
diff --git a/gpu/vulkan/vulkan_util.cc b/gpu/vulkan/vulkan_util.cc
index 6b2a88a..3461ace 100644
--- a/gpu/vulkan/vulkan_util.cc
+++ b/gpu/vulkan/vulkan_util.cc
@@ -238,7 +238,15 @@
 }
 
 // Everything that passed 2022 deQP tests.
-bool IsVulkanV2EnabledForMali(const GPUInfo& gpu_info) {
+bool IsVulkanV2EnabledForMali(
+    const GPUInfo& gpu_info,
+    const VulkanPhysicalDeviceProperties& device_properties) {
+  // Mali-G57 have problems initializing Vulkan even with 2022 deQP tests
+  // passed, devices that init successfully show performance regression.
+  if (base::StartsWith(device_properties.device_name, "Mali-G57")) {
+    return false;
+  }
+
   // For V2 we MediaTek is allowed.
   return ShouldBypassMediatekBlock(gpu_info);
 }
@@ -524,7 +532,7 @@
     }
 
     return IsVulkanV1EnabledForMali(gpu_info) ||
-           IsVulkanV2EnabledForMali(gpu_info);
+           IsVulkanV2EnabledForMali(gpu_info, device_properties);
   }
 
   if (device_properties.vendor_id == kVendorQualcomm) {
diff --git "a/infra/config/generated/builders/ci/Android FYI Release \050Pixel 2\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Android FYI Release \050Pixel 2\051/targets/chromium.gpu.fyi.json"
index d73ff32..d3332947 100644
--- "a/infra/config/generated/builders/ci/Android FYI Release \050Pixel 2\051/targets/chromium.gpu.fyi.json"
+++ "b/infra/config/generated/builders/ci/Android FYI Release \050Pixel 2\051/targets/chromium.gpu.fyi.json"
@@ -16,7 +16,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -49,7 +49,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -81,7 +81,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -117,7 +117,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -147,7 +147,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -196,7 +196,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -236,7 +236,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -277,7 +277,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -319,7 +319,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
diff --git "a/infra/config/generated/builders/ci/Android WebView O \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android WebView O \050dbg\051/properties.json"
index 173f1db..7b55b2ac 100644
--- "a/infra/config/generated/builders/ci/Android WebView O \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android WebView O \050dbg\051/properties.json"
@@ -94,6 +94,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android WebView O (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android WebView P \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android WebView P \050dbg\051/properties.json"
index 6cfa5d43..3537ea7 100644
--- "a/infra/config/generated/builders/ci/Android WebView P \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android WebView P \050dbg\051/properties.json"
@@ -94,6 +94,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android WebView P (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android arm Builder \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android arm Builder \050dbg\051/properties.json"
index 7f5e2ec..bab45659 100644
--- "a/infra/config/generated/builders/ci/Android arm Builder \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android arm Builder \050dbg\051/properties.json"
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android arm Builder (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android arm64 Builder \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android arm64 Builder \050dbg\051/properties.json"
index 27982868e..b3ba907 100644
--- "a/infra/config/generated/builders/ci/Android arm64 Builder \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android arm64 Builder \050dbg\051/properties.json"
@@ -245,6 +245,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android arm64 Builder (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android arm64 Builder All Targets \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android arm64 Builder All Targets \050dbg\051/properties.json"
index 5f0a8157..aea2d08 100644
--- "a/infra/config/generated/builders/ci/Android arm64 Builder All Targets \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android arm64 Builder All Targets \050dbg\051/properties.json"
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android arm64 Builder All Targets (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/properties.json"
index b122d0a..500632d 100644
--- "a/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android x64 Builder \050dbg\051/properties.json"
@@ -367,6 +367,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android x64 Builder (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android x64 Builder All Targets \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android x64 Builder All Targets \050dbg\051/properties.json"
index aace681a..5c80f1b 100644
--- "a/infra/config/generated/builders/ci/Android x64 Builder All Targets \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android x64 Builder All Targets \050dbg\051/properties.json"
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android x64 Builder All Targets (dbg)/targets"
     }
   },
diff --git "a/infra/config/generated/builders/ci/Android x86 Builder \050dbg\051/properties.json" "b/infra/config/generated/builders/ci/Android x86 Builder \050dbg\051/properties.json"
index 372e2581..796a966f 100644
--- "a/infra/config/generated/builders/ci/Android x86 Builder \050dbg\051/properties.json"
+++ "b/infra/config/generated/builders/ci/Android x86 Builder \050dbg\051/properties.json"
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Android x86 Builder (dbg)/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/GPU FYI Android arm Builder/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/ci/GPU FYI Android arm Builder/targets/chromium.gpu.fyi.json
index fcd2260e..548d9f47 100644
--- a/infra/config/generated/builders/ci/GPU FYI Android arm Builder/targets/chromium.gpu.fyi.json
+++ b/infra/config/generated/builders/ci/GPU FYI Android arm Builder/targets/chromium.gpu.fyi.json
@@ -544,7 +544,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -577,7 +577,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -609,7 +609,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -645,7 +645,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -675,7 +675,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -724,7 +724,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -764,7 +764,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -805,7 +805,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -847,7 +847,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
diff --git a/infra/config/generated/builders/ci/Oreo Phone Tester/properties.json b/infra/config/generated/builders/ci/Oreo Phone Tester/properties.json
index 3f82c91..950fcd1 100644
--- a/infra/config/generated/builders/ci/Oreo Phone Tester/properties.json
+++ b/infra/config/generated/builders/ci/Oreo Phone Tester/properties.json
@@ -91,6 +91,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/Oreo Phone Tester/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/Win x64 Builder/targets/chromium.win.json b/infra/config/generated/builders/ci/Win x64 Builder/targets/chromium.win.json
index f9615e05..26a73f1 100644
--- a/infra/config/generated/builders/ci/Win x64 Builder/targets/chromium.win.json
+++ b/infra/config/generated/builders/ci/Win x64 Builder/targets/chromium.win.json
@@ -1436,6 +1436,24 @@
         "test_id_prefix": "ninja://storage:storage_unittests/"
       },
       {
+        "ci_only": true,
+        "isolate_profile_data": true,
+        "merge": {
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "sync_integration_tests",
+        "swarming": {
+          "dimensions": {
+            "cpu": "x86-64",
+            "os": "Windows-10-19045"
+          },
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test": "sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:sync_integration_tests/"
+      },
+      {
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/infra/config/generated/builders/ci/Win10 Tests x64/targets/chromium.win.json b/infra/config/generated/builders/ci/Win10 Tests x64/targets/chromium.win.json
index c199d53f..f7a591f 100644
--- a/infra/config/generated/builders/ci/Win10 Tests x64/targets/chromium.win.json
+++ b/infra/config/generated/builders/ci/Win10 Tests x64/targets/chromium.win.json
@@ -1412,6 +1412,24 @@
         "test_id_prefix": "ninja://storage:storage_unittests/"
       },
       {
+        "ci_only": true,
+        "isolate_profile_data": true,
+        "merge": {
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "sync_integration_tests",
+        "swarming": {
+          "dimensions": {
+            "cpu": "x86-64",
+            "os": "Windows-10-19045"
+          },
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test": "sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:sync_integration_tests/"
+      },
+      {
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/infra/config/generated/builders/ci/android-10-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-10-arm64-rel/properties.json
index bdecc076..e440c37c 100644
--- a/infra/config/generated/builders/ci/android-10-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-10-arm64-rel/properties.json
@@ -54,6 +54,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-10-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-10-x86-rel/properties.json b/infra/config/generated/builders/ci/android-10-x86-rel/properties.json
index 8327987..85b71f1 100644
--- a/infra/config/generated/builders/ci/android-10-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-10-x86-rel/properties.json
@@ -54,6 +54,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-10-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-11-x86-rel/properties.json b/infra/config/generated/builders/ci/android-11-x86-rel/properties.json
index 09c57c5..88633ef 100644
--- a/infra/config/generated/builders/ci/android-11-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-11-x86-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-11-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-12-x64-rel/properties.json b/infra/config/generated/builders/ci/android-12-x64-rel/properties.json
index 4da73bde..e45b57d 100644
--- a/infra/config/generated/builders/ci/android-12-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-12-x64-rel/properties.json
@@ -95,6 +95,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-12-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-12l-landscape-x64-dbg-tests/properties.json b/infra/config/generated/builders/ci/android-12l-landscape-x64-dbg-tests/properties.json
index b9c82094..f891e63a 100644
--- a/infra/config/generated/builders/ci/android-12l-landscape-x64-dbg-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-12l-landscape-x64-dbg-tests/properties.json
@@ -86,6 +86,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-12l-landscape-x64-dbg-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-12l-x64-dbg-tests/properties.json b/infra/config/generated/builders/ci/android-12l-x64-dbg-tests/properties.json
index 0e6d7a8..d6984fb 100644
--- a/infra/config/generated/builders/ci/android-12l-x64-dbg-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-12l-x64-dbg-tests/properties.json
@@ -86,6 +86,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-12l-x64-dbg-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-12l-x64-rel-cq/properties.json b/infra/config/generated/builders/ci/android-12l-x64-rel-cq/properties.json
index 60c2563..d4a6dd8 100644
--- a/infra/config/generated/builders/ci/android-12l-x64-rel-cq/properties.json
+++ b/infra/config/generated/builders/ci/android-12l-x64-rel-cq/properties.json
@@ -56,6 +56,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-12l-x64-rel-cq/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-13-x64-rel/properties.json b/infra/config/generated/builders/ci/android-13-x64-rel/properties.json
index fbab828..3bfcb22 100644
--- a/infra/config/generated/builders/ci/android-13-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-13-x64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-13-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-14-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-14-arm64-rel/properties.json
index 122bcf2..239899f 100644
--- a/infra/config/generated/builders/ci/android-14-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-14-arm64-rel/properties.json
@@ -57,6 +57,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-14-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-14-automotive-landscape-x64-rel/properties.json b/infra/config/generated/builders/ci/android-14-automotive-landscape-x64-rel/properties.json
index e6efdc5f..85267145 100644
--- a/infra/config/generated/builders/ci/android-14-automotive-landscape-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-14-automotive-landscape-x64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-14-automotive-landscape-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-14-tablet-landscape-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-14-tablet-landscape-arm64-rel/properties.json
index 8143f1f8..3f06c4d 100644
--- a/infra/config/generated/builders/ci/android-14-tablet-landscape-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-14-tablet-landscape-arm64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-14-tablet-landscape-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-14-x64-rel/properties.json b/infra/config/generated/builders/ci/android-14-x64-rel/properties.json
index ae6b76c6..c5abcd2 100644
--- a/infra/config/generated/builders/ci/android-14-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-14-x64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-14-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-dbg-tests/properties.json b/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-dbg-tests/properties.json
index 624bf071..91b12273 100644
--- a/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-dbg-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-dbg-tests/properties.json
@@ -85,6 +85,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-dbg-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-rel/properties.json b/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-rel/properties.json
index d1b67a0..cae8b067 100644
--- a/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-15-tablet-landscape-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-15-tablet-x64-dbg-tests/properties.json b/infra/config/generated/builders/ci/android-15-tablet-x64-dbg-tests/properties.json
index fd09e68b..fea9a94 100644
--- a/infra/config/generated/builders/ci/android-15-tablet-x64-dbg-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-15-tablet-x64-dbg-tests/properties.json
@@ -85,6 +85,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-15-tablet-x64-dbg-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-15-tablet-x64-rel/properties.json b/infra/config/generated/builders/ci/android-15-tablet-x64-rel/properties.json
index e5878311..1b422b4 100644
--- a/infra/config/generated/builders/ci/android-15-tablet-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-15-tablet-x64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-15-tablet-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-15-x64-rel/properties.json b/infra/config/generated/builders/ci/android-15-x64-rel/properties.json
index 852716ad4..1147114 100644
--- a/infra/config/generated/builders/ci/android-15-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-15-x64-rel/properties.json
@@ -56,6 +56,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-15-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-arm64-proguard-rel/properties.json b/infra/config/generated/builders/ci/android-arm64-proguard-rel/properties.json
index 46b0d8a5..92178ea 100644
--- a/infra/config/generated/builders/ci/android-arm64-proguard-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-arm64-proguard-rel/properties.json
@@ -47,6 +47,8 @@
           "project": "chromium"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-arm64-proguard-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-bfcache-rel/properties.json b/infra/config/generated/builders/ci/android-bfcache-rel/properties.json
index 40ba4c01..062dbbb0b 100644
--- a/infra/config/generated/builders/ci/android-bfcache-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-bfcache-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-bfcache-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cast-arm-dbg/properties.json b/infra/config/generated/builders/ci/android-cast-arm-dbg/properties.json
index b2f38466a..40ce29b 100644
--- a/infra/config/generated/builders/ci/android-cast-arm-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cast-arm-dbg/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cast-arm-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cast-arm-rel/properties.json b/infra/config/generated/builders/ci/android-cast-arm-rel/properties.json
index 175d79d..873fe74 100644
--- a/infra/config/generated/builders/ci/android-cast-arm-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cast-arm-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cast-arm-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cast-arm64-dbg/properties.json b/infra/config/generated/builders/ci/android-cast-arm64-dbg/properties.json
index 0a6c92f..7a5ade2 100644
--- a/infra/config/generated/builders/ci/android-cast-arm64-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cast-arm64-dbg/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cast-arm64-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cast-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-cast-arm64-rel/properties.json
index d873d5a..8524c12 100644
--- a/infra/config/generated/builders/ci/android-cast-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cast-arm64-rel/properties.json
@@ -52,6 +52,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cast-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-arm-dbg/properties.json b/infra/config/generated/builders/ci/android-cronet-arm-dbg/properties.json
index cdfbe65..3efe4d5 100644
--- a/infra/config/generated/builders/ci/android-cronet-arm-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-arm-dbg/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-arm-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
index 7e65eaf..15ccff72 100644
--- a/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-arm-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-arm64-dbg/properties.json b/infra/config/generated/builders/ci/android-cronet-arm64-dbg/properties.json
index 7657fa9..f61bd70f 100644
--- a/infra/config/generated/builders/ci/android-cronet-arm64-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-arm64-dbg/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-arm64-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-arm64-rel/properties.json
index b543e6ec..bbcc834 100644
--- a/infra/config/generated/builders/ci/android-cronet-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-arm64-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-asan-arm-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-asan-arm-rel/properties.json
index 4464d38..d363004d 100644
--- a/infra/config/generated/builders/ci/android-cronet-asan-arm-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-asan-arm-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-asan-arm-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-riscv64-dbg/properties.json b/infra/config/generated/builders/ci/android-cronet-riscv64-dbg/properties.json
index cd90039..bfce17f 100644
--- a/infra/config/generated/builders/ci/android-cronet-riscv64-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-riscv64-dbg/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-riscv64-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-riscv64-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-riscv64-rel/properties.json
index 3a3ec7f3..3ab9cf9 100644
--- a/infra/config/generated/builders/ci/android-cronet-riscv64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-riscv64-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-riscv64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg-12-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg-12-tests/properties.json
index 5c8190424..eeecfa80 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg-12-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg-12-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg-12-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg-13-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg-13-tests/properties.json
index bf2c9f3..af26dbab 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg-13-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg-13-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg-13-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg-14-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg-14-tests/properties.json
index e662e66..2efec04 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg-14-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg-14-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg-14-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg-15-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg-15-tests/properties.json
index ca793135..7c54403 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg-15-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg-15-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg-15-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg-16-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg-16-tests/properties.json
index db7b24ab..53f9046 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg-16-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg-16-tests/properties.json
@@ -86,6 +86,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg-16-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-dbg/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-dbg/properties.json
index 3af28fc..eb00cd3 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-dbg/properties.json
@@ -284,6 +284,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x64-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-x64-rel/properties.json
index ed2440d..9028f3d 100644
--- a/infra/config/generated/builders/ci/android-cronet-x64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x64-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-10-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-10-tests/properties.json
index c2dfd67e..08d7cac 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-10-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-10-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-10-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-11-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-11-tests/properties.json
index d7d8e53..29c9b74 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-11-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-11-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-11-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-marshmallow-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-marshmallow-tests/properties.json
index a9835fc..af3f23d 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-marshmallow-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-marshmallow-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-marshmallow-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-nougat-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-nougat-tests/properties.json
index cbc76df..bf30b9b 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-nougat-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-nougat-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-nougat-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-oreo-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-oreo-tests/properties.json
index 16a42c0..05da4e9 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-oreo-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-oreo-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-oreo-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg-pie-tests/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg-pie-tests/properties.json
index f3fc7dfa..64695fc 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg-pie-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg-pie-tests/properties.json
@@ -87,6 +87,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg-pie-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-dbg/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-dbg/properties.json
index 47e76cbc..6acc97c 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-dbg/properties.json
@@ -331,6 +331,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-cronet-x86-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-x86-rel/properties.json
index f37a7b0..6266b97 100644
--- a/infra/config/generated/builders/ci/android-cronet-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-cronet-x86-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-cronet-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-mte-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-mte-arm64-rel/properties.json
index bb3f35b..e8a264ff 100644
--- a/infra/config/generated/builders/ci/android-mte-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-mte-arm64-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-mte-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-oreo-x86-rel/properties.json b/infra/config/generated/builders/ci/android-oreo-x86-rel/properties.json
index aa4066e..142328237 100644
--- a/infra/config/generated/builders/ci/android-oreo-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-oreo-x86-rel/properties.json
@@ -58,6 +58,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-oreo-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-pie-arm64-dbg/properties.json b/infra/config/generated/builders/ci/android-pie-arm64-dbg/properties.json
index 7e8212a..fd095dcc 100644
--- a/infra/config/generated/builders/ci/android-pie-arm64-dbg/properties.json
+++ b/infra/config/generated/builders/ci/android-pie-arm64-dbg/properties.json
@@ -91,6 +91,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-pie-arm64-dbg/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-pie-arm64-rel/properties.json b/infra/config/generated/builders/ci/android-pie-arm64-rel/properties.json
index 25c409de..cd379a0 100644
--- a/infra/config/generated/builders/ci/android-pie-arm64-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-pie-arm64-rel/properties.json
@@ -53,6 +53,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-pie-arm64-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-pie-x86-rel/properties.json b/infra/config/generated/builders/ci/android-pie-x86-rel/properties.json
index 5ba8e4e..0d049150 100644
--- a/infra/config/generated/builders/ci/android-pie-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-pie-x86-rel/properties.json
@@ -54,6 +54,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-pie-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-webview-10-x86-rel-tests/properties.json b/infra/config/generated/builders/ci/android-webview-10-x86-rel-tests/properties.json
index 295553a..91d1e5ad 100644
--- a/infra/config/generated/builders/ci/android-webview-10-x86-rel-tests/properties.json
+++ b/infra/config/generated/builders/ci/android-webview-10-x86-rel-tests/properties.json
@@ -85,6 +85,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-webview-10-x86-rel-tests/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-webview-13-x64-hostside-rel/properties.json b/infra/config/generated/builders/ci/android-webview-13-x64-hostside-rel/properties.json
index 29ca2090..e2d9efe 100644
--- a/infra/config/generated/builders/ci/android-webview-13-x64-hostside-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-webview-13-x64-hostside-rel/properties.json
@@ -56,6 +56,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-webview-13-x64-hostside-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/ci/android-x86-rel/properties.json b/infra/config/generated/builders/ci/android-x86-rel/properties.json
index 378a531..eca5b68 100644
--- a/infra/config/generated/builders/ci/android-x86-rel/properties.json
+++ b/infra/config/generated/builders/ci/android-x86-rel/properties.json
@@ -95,6 +95,8 @@
           "group": "tryserver.chromium.android"
         }
       ],
+      "retry_failed_shards": true,
+      "retry_invalid_shards": true,
       "targets_spec_directory": "src/infra/config/generated/builders/ci/android-x86-rel/targets"
     }
   },
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-android-p-pixel-2-32/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-android-p-pixel-2-32/targets/chromium.gpu.fyi.json
index a9fc5fcb..172d3c6 100644
--- a/infra/config/generated/builders/try/gpu-fyi-try-android-p-pixel-2-32/targets/chromium.gpu.fyi.json
+++ b/infra/config/generated/builders/try/gpu-fyi-try-android-p-pixel-2-32/targets/chromium.gpu.fyi.json
@@ -16,7 +16,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -49,7 +49,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -81,7 +81,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -117,7 +117,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -147,7 +147,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -196,7 +196,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -236,7 +236,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -277,7 +277,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
@@ -319,7 +319,7 @@
         "swarming": {
           "containment_type": "AUTO",
           "dimensions": {
-            "device_os": "PQ3A.190801.002",
+            "device_os": "QQ1A.191205.008",
             "device_os_flavor": "google",
             "device_os_type": "userdebug",
             "device_type": "walleye",
diff --git a/infra/config/generated/builders/try/win-rel/targets/chromium.win.json b/infra/config/generated/builders/try/win-rel/targets/chromium.win.json
index f9e2e52..1623e0b 100644
--- a/infra/config/generated/builders/try/win-rel/targets/chromium.win.json
+++ b/infra/config/generated/builders/try/win-rel/targets/chromium.win.json
@@ -1436,6 +1436,24 @@
         "test_id_prefix": "ninja://storage:storage_unittests/"
       },
       {
+        "ci_only": true,
+        "isolate_profile_data": true,
+        "merge": {
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "name": "sync_integration_tests",
+        "swarming": {
+          "dimensions": {
+            "cpu": "x86-64",
+            "os": "Windows-10-19045"
+          },
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 3
+        },
+        "test": "sync_integration_tests",
+        "test_id_prefix": "ninja://chrome/test:sync_integration_tests/"
+      },
+      {
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
diff --git a/infra/config/generated/testing/mixins.pyl b/infra/config/generated/testing/mixins.pyl
index 91055b9..2b7f394 100644
--- a/infra/config/generated/testing/mixins.pyl
+++ b/infra/config/generated/testing/mixins.pyl
@@ -162,6 +162,18 @@
       },
     },
   },
+  'chromium_pixel_2_q': {
+    'fail_if_unused': False,
+    'swarming': {
+      'dimensions': {
+        'device_os': 'QQ1A.191205.008',
+        'device_os_flavor': 'google',
+        'device_type': 'walleye',
+        'os': 'Android',
+        'pool': 'chromium.tests',
+      },
+    },
+  },
   'crosier-no-arc': {
     'args': [
       '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.reven.chromeos_integration_tests.filter',
diff --git a/infra/config/subprojects/chromium/ci/chromium.android.star b/infra/config/subprojects/chromium/ci/chromium.android.star
index ae49a5e..97ebfab 100644
--- a/infra/config/subprojects/chromium/ci/chromium.android.star
+++ b/infra/config/subprojects/chromium/ci/chromium.android.star
@@ -17,6 +17,12 @@
 ci.defaults.set(
     executable = ci.DEFAULT_EXECUTABLE,
     builder_group = "chromium.android",
+    builder_config_settings = builder_config.ci_settings(
+        retry_failed_shards = True,
+        # Android emulator tasks often flake during emulator start-up, which
+        # leads to the whole shard being marked as invalid.
+        retry_invalid_shards = True,
+    ),
     pool = ci.DEFAULT_POOL,
     cores = 8,
     os = os.LINUX_DEFAULT,
diff --git a/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star b/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star
index cca7827..f51f99d8 100644
--- a/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star
+++ b/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star
@@ -229,7 +229,7 @@
             "gpu_fyi_android_webgl2_and_gold_telemetry_tests",
         ],
         mixins = [
-            "chromium_pixel_2_pie",
+            "chromium_pixel_2_q",
             "has_native_resultdb_integration",
         ],
         per_test_modifications = {
diff --git a/infra/config/subprojects/chromium/ci/chromium.win.star b/infra/config/subprojects/chromium/ci/chromium.win.star
index bc40946..b313d6ef 100644
--- a/infra/config/subprojects/chromium/ci/chromium.win.star
+++ b/infra/config/subprojects/chromium/ci/chromium.win.star
@@ -461,14 +461,11 @@
                     shards = 4,
                 ),
             ),
-            # TODO(crbug.com/419089901): Re-enable after the suite works.
-            #"sync_integration_tests": targets.mixin(
-            #    swarming = targets.swarming(
-            #        shards = 3,
-            #    ),
-            #),
-            "sync_integration_tests": targets.remove(
-                reason = "Having infra failure (crbug.com/419089901)",
+            "sync_integration_tests": targets.mixin(
+                ci_only = True,
+                swarming = targets.swarming(
+                    shards = 3,
+                ),
             ),
             "sync_integration_tests_no_field_trial": targets.remove(
                 reason = "Having infra failure (crbug.com/419179070)",
diff --git a/infra/config/targets/mixins.star b/infra/config/targets/mixins.star
index 32081af..fd4ddfe 100644
--- a/infra/config/targets/mixins.star
+++ b/infra/config/targets/mixins.star
@@ -623,6 +623,22 @@
 )
 
 targets.mixin(
+    name = "chromium_pixel_2_q",
+    # We always need this entry to be generated since it is used by
+    # //content/test/gpu/find_bad_machines.py.
+    generate_pyl_entry = targets.IGNORE_UNUSED,
+    swarming = targets.swarming(
+        dimensions = {
+            "device_os": "QQ1A.191205.008",
+            "device_os_flavor": "google",
+            "device_type": "walleye",
+            "os": "Android",
+            "pool": "chromium.tests",
+        },
+    ),
+)
+
+targets.mixin(
     name = "chromium-tester-dev-service-account",
     generate_pyl_entry = False,
     swarming = targets.swarming(
diff --git a/internal b/internal
index 7f5643f..8a98ad2 160000
--- a/internal
+++ b/internal
@@ -1 +1 @@
-Subproject commit 7f5643fbc0ba35c2cd91a418ce5e11567efa5dda
+Subproject commit 8a98ad20d83fe0520dc3b280e272b34aa17e2177
diff --git a/ios/chrome/browser/autofill/model/BUILD.gn b/ios/chrome/browser/autofill/model/BUILD.gn
index 462a9ae3..bc245a5 100644
--- a/ios/chrome/browser/autofill/model/BUILD.gn
+++ b/ios/chrome/browser/autofill/model/BUILD.gn
@@ -236,6 +236,7 @@
     "//ios/chrome/browser/webdata_services/model",
     "//ios/chrome/test:test_support",
     "//ios/testing:block_swizzler",
+    "//ios/testing:embedded_test_server_support",
     "//ios/web/public/js_messaging",
     "//ios/web/public/test",
     "//ios/web/public/test:javascript_test",
diff --git a/ios/chrome/browser/autofill/model/child_frame_registration_js_unittest.mm b/ios/chrome/browser/autofill/model/child_frame_registration_js_unittest.mm
index f00df46..0598d38b 100644
--- a/ios/chrome/browser/autofill/model/child_frame_registration_js_unittest.mm
+++ b/ios/chrome/browser/autofill/model/child_frame_registration_js_unittest.mm
@@ -7,7 +7,9 @@
 #import <optional>
 
 #import "base/apple/foundation_util.h"
+#import "base/strings/strcat.h"
 #import "base/strings/string_number_conversions.h"
+#import "base/strings/stringprintf.h"
 #import "base/strings/sys_string_conversions.h"
 #import "base/test/ios/wait_util.h"
 #import "base/time/time.h"
@@ -15,20 +17,25 @@
 #import "components/autofill/core/common/unique_ids.h"
 #import "components/autofill/ios/browser/autofill_util.h"
 #import "components/autofill/ios/form_util/remote_frame_registration_java_script_feature.h"
+#import "ios/testing/embedded_test_server_handlers.h"
 #import "ios/web/public/test/javascript_test.h"
 #import "ios/web/public/test/js_test_util.h"
+#import "net/base/apple/url_conversions.h"
+#import "net/test/embedded_test_server/embedded_test_server.h"
+#import "net/test/embedded_test_server/request_handler_util.h"
 #import "testing/gmock/include/gmock/gmock.h"
 #import "testing/gtest/include/gtest/gtest.h"
 #import "testing/gtest_mac.h"
 
-@interface FakeScriptMessageHandler : NSObject <WKScriptMessageHandler>
+@interface FakeScriptMessageHandlerForFrameRegistration
+    : NSObject <WKScriptMessageHandler>
 
 // Number of registration messages received.
 @property(nonatomic, assign) int registrationsCount;
 
 @end
 
-@implementation FakeScriptMessageHandler
+@implementation FakeScriptMessageHandlerForFrameRegistration
 
 - (void)userContentController:(WKUserContentController*)userContentController
       didReceiveScriptMessage:(WKScriptMessage*)message {
@@ -40,12 +47,16 @@
 namespace {
 
 using autofill::kRemoteFrameRegistrationMessageHandlerName;
+using net::test_server::EmbeddedTestServer;
+using net::test_server::HandlePrefixedRequest;
 using ::testing::IsSubsetOf;
 using ::testing::SizeIs;
 
 // Delay for the registration round trip to complete, including all latencies.
 constexpr base::TimeDelta kRegistrationDelay = base::Milliseconds(200);
 
+constexpr char kMainPageBaseUrl[] = "https://chromium.test";
+
 // Gets delay for performing all attempts with the exponential backoff for
 // retries and with some extra buffer to deal with other latencies such as the
 // delay for the initial request. The delay is computed as follow:
@@ -86,6 +97,15 @@
   return extracted_tokens;
 }
 
+// Sets up `test_server` to serve `contents` accessible at `path`.
+void ServeDocument(const std::string& path,
+                   const std::string& contents,
+                   EmbeddedTestServer* test_server) {
+  test_server->RegisterRequestHandler(base::BindRepeating(
+      &HandlePrefixedRequest, "/" + path,
+      base::BindRepeating(&testing::HandlePageWithHtml, contents)));
+}
+
 class ChildFrameRegistrationJavascriptTest : public web::JavascriptTest {
  protected:
   ChildFrameRegistrationJavascriptTest() {}
@@ -133,7 +153,7 @@
                     "  <iframe srcdoc='<body>inner frame 2</body>'></iframe>"
                     "</body>";
 
-  ASSERT_TRUE(LoadHtml(html));
+  ASSERT_TRUE(LoadHtml(html, GURL(kMainPageBaseUrl)));
 
   id result = web::test::ExecuteJavaScript(web_view(),
                                            @"__gCrWeb.remoteFrameRegistration."
@@ -161,7 +181,7 @@
                     "  <iframe srcdoc='<body>inner frame 2</body>'></iframe>"
                     "</body>";
 
-  ASSERT_TRUE(LoadHtml(html));
+  ASSERT_TRUE(LoadHtml(html, GURL(kMainPageBaseUrl)));
 
   // Do first registration and extract the tokens.
   id result1 = web::test::ExecuteJavaScript(web_view(),
@@ -188,8 +208,8 @@
 // Tests that child frames register themselves only once while deduping
 // other attempts.
 TEST_F(ChildFrameRegistrationJavascriptTest, RegisterFrames_Deduping) {
-  FakeScriptMessageHandler* msg_handler =
-      [[FakeScriptMessageHandler alloc] init];
+  FakeScriptMessageHandlerForFrameRegistration* msg_handler =
+      [[FakeScriptMessageHandlerForFrameRegistration alloc] init];
   [web_view().configuration.userContentController
       addScriptMessageHandler:msg_handler
                          name:base::SysUTF8ToNSString(
@@ -200,7 +220,7 @@
        "  <iframe srcdoc='<body>inner frame 1</body>'></iframe>"
        "  <iframe srcdoc='<body>inner frame 2</body>'></iframe>"
        "</body>";
-  ASSERT_TRUE(LoadHtml(html));
+  ASSERT_TRUE(LoadHtml(html, GURL(kMainPageBaseUrl)));
 
   SetFramesForTesting();
 
@@ -210,7 +230,7 @@
 
   // Wait for both frames to register.
   ASSERT_TRUE(
-      base::test::ios::WaitUntilConditionOrTimeout(kRegistrationDelay * 5, ^() {
+      base::test::ios::WaitUntilConditionOrTimeout(kRegistrationDelay * 2, ^() {
         return msg_handler.registrationsCount == 2;
       }));
   EXPECT_EQ(2, GetRegistrationAttemptsCount());
@@ -225,18 +245,127 @@
   base::test::ios::SpinRunLoopWithMinDelay(kRegistrationDelay);
 
   // Verify that no re-registration attempt was made as the token was already
-  // registered with the browser (virually at least considering the testing
+  // registered with the browser (virtually at least considering the testing
   // context).
   EXPECT_EQ(2, msg_handler.registrationsCount);
   EXPECT_EQ(2, GetRegistrationAttemptsCount());
 }
 
+// Tests that child frames register themselves without retries when the child
+// frames are of a different origin than their parent frame.
+TEST_F(ChildFrameRegistrationJavascriptTest,
+       RegisterFrames_Deduping_AcrossOrigins) {
+  constexpr char kChildFrame1Path[] = "cf1";
+  constexpr char kChildFrame2Path[] = "cf2";
+  // Script that is injected into the frame to set up the frame for autofill
+  // across iframes. There is some delay before executing the script to make
+  // sure that the script dependencies were loaded into the webview.
+  constexpr char kSetupScript[] = R"(
+    // Number of frames that reported as ready, which will include this frame
+    // if it is the main frame.
+    let gFramesRdyCount = 0;
+    // Set up the frame in a retry loop until the utils functions are injected.
+    const timeoutFn = () => {
+        if (typeof __gCrWeb != 'undefined' &&
+            typeof __gCrWeb?.autofill_form_features?.setAutofillAcrossIframes
+            == 'function') {
+          __gCrWeb.autofill_form_features.setAutofillAcrossIframes(true);
+          window.parent?.postMessage({type: 'frame-ready'}, '*');
+          // Done.
+          return;
+        }
+        // Retry as the util functions weren't injected yet.
+        setTimeout(timeoutFn, 10);
+    }
+    // Start setup.
+    setTimeout(timeoutFn, 10);
+    // Track the frames that are set up and ready.
+    window.addEventListener('message', (msg) => {
+     if (msg?.data?.type === 'frame-ready') {
+       ++gFramesRdyCount;
+     }
+    }))";
+
+  std::string page_content = base::StringPrintf(
+      "<body><form><input id='address'></form><script>%s</script></body>",
+      kSetupScript);
+
+  EmbeddedTestServer cf1_server;
+  ServeDocument(kChildFrame1Path, page_content, &cf1_server);
+
+  EmbeddedTestServer cf2_server;
+  ServeDocument(kChildFrame2Path, page_content, &cf2_server);
+
+  ASSERT_TRUE(cf1_server.Start());
+  ASSERT_TRUE(cf2_server.Start());
+
+  const std::string cf1_path =
+      cf1_server.GetURL(base::StrCat({"/", kChildFrame1Path})).spec();
+  const std::string cf2_path =
+      cf2_server.GetURL(base::StrCat({"/", kChildFrame2Path})).spec();
+
+  // Set up the JS message handler to capture the registration requests coming
+  // from the renderer.
+  FakeScriptMessageHandlerForFrameRegistration* msg_handler =
+      [[FakeScriptMessageHandlerForFrameRegistration alloc] init];
+  [web_view().configuration.userContentController
+      addScriptMessageHandler:msg_handler
+                         name:base::SysUTF8ToNSString(
+                                  kRemoteFrameRegistrationMessageHandlerName)];
+
+  // Content of the main frame.
+  const std::string main_page_content =
+      base::StringPrintf("<body> outer frame"
+                         "  <iframe src='%s'></iframe>"
+                         "  <iframe src='%s'></iframe>"
+                         "  <script>%s</script>"
+                         "</body>",
+                         cf1_path.c_str(), cf2_path.c_str(), kSetupScript);
+
+  EmbeddedTestServer main_test_server;
+  ServeDocument("main", main_page_content, &main_test_server);
+  ASSERT_TRUE(main_test_server.Start());
+  const GURL main_url = main_test_server.GetURL("/main");
+
+  // Load the main page that contains the child frames.
+  LoadUrl(main_url);
+
+  // Wait for the main frame and its child frames to be ready for testing.
+  ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
+      base::test::ios::kWaitForPageLoadTimeout, ^bool {
+        return [web::test::ExecuteJavaScript(
+            web_view(), @"gFramesRdyCount === 3") boolValue];
+      }));
+
+  // Register the child frames of the main frame by calling the registration
+  // script from the main frame. The child frames do not have child frames
+  // themselves so no need to call the registration script for them.
+  ASSERT_TRUE(web::test::ExecuteJavaScript(web_view(),
+                                           @"__gCrWeb.remoteFrameRegistration."
+                                           @"registerAllChildFrames();"));
+
+  // Wait for both child frames to register.
+  ASSERT_TRUE(
+      base::test::ios::WaitUntilConditionOrTimeout(kRegistrationDelay * 2, ^() {
+        return msg_handler.registrationsCount == 2;
+      }));
+
+  // Give enough time to the retry to happen if it would have been needed so we
+  // can confirm that no retries were done.
+  base::test::ios::SpinRunLoopWithMinDelay(
+      GetDelayForAllAttempts(/*base_delay_us=*/50000, /*num_attempts=*/2));
+
+  // Verify that no re-registration attempt was made as the token was already
+  // registered with the browser.
+  EXPECT_EQ(2, msg_handler.registrationsCount);
+}
+
 // Tests that there is no further attempts made once the max limit for attempts
 // is reached.
 TEST_F(ChildFrameRegistrationJavascriptTest,
        RegisterFrames_MaxAttemptsReached) {
-  FakeScriptMessageHandler* msg_handler =
-      [[FakeScriptMessageHandler alloc] init];
+  FakeScriptMessageHandlerForFrameRegistration* msg_handler =
+      [[FakeScriptMessageHandlerForFrameRegistration alloc] init];
   [web_view().configuration.userContentController
       addScriptMessageHandler:msg_handler
                          name:base::SysUTF8ToNSString(
@@ -247,7 +376,7 @@
        "  <iframe srcdoc='<body>inner frame 1</body>'></iframe>"
        "  <iframe srcdoc='<body>inner frame 2</body>'></iframe>"
        "</body>";
-  ASSERT_TRUE(LoadHtml(html));
+  ASSERT_TRUE(LoadHtml(html, GURL(kMainPageBaseUrl)));
 
   SetFramesForTesting();
 
@@ -334,8 +463,8 @@
 // capacity is reached.
 TEST_F(ChildFrameRegistrationJavascriptTest,
        RegisterFrames_MaxRegistrationCapacityReached) {
-  FakeScriptMessageHandler* msg_handler =
-      [[FakeScriptMessageHandler alloc] init];
+  FakeScriptMessageHandlerForFrameRegistration* msg_handler =
+      [[FakeScriptMessageHandlerForFrameRegistration alloc] init];
   [web_view().configuration.userContentController
       addScriptMessageHandler:msg_handler
                          name:base::SysUTF8ToNSString(
@@ -352,7 +481,7 @@
   }
   [html appendString:@"</body>"];
 
-  ASSERT_TRUE(LoadHtml(html));
+  ASSERT_TRUE(LoadHtml(html, GURL(kMainPageBaseUrl)));
 
   SetFramesForTesting();
 
diff --git a/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn b/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
index 38247d8e..f4510682 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/browser_view/ui_bundled/BUILD.gn
@@ -357,6 +357,7 @@
     "//ios/chrome/browser/bubble/ui_bundled",
     "//ios/chrome/browser/commerce/model:shopping_service",
     "//ios/chrome/browser/content_settings/model",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/download/model",
     "//ios/chrome/browser/download/ui",
     "//ios/chrome/browser/favicon/model",
diff --git a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator_unittest.mm b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator_unittest.mm
index 81dc011..39657a8 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator_unittest.mm
+++ b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator_unittest.mm
@@ -13,6 +13,7 @@
 #import "ios/chrome/browser/browser_view/ui_bundled/browser_coordinator+Testing.h"
 #import "ios/chrome/browser/browser_view/ui_bundled/browser_view_controller.h"
 #import "ios/chrome/browser/commerce/model/shopping_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/download/model/download_directory_util.h"
 #import "ios/chrome/browser/download/model/external_app_util.h"
 #import "ios/chrome/browser/favicon/model/favicon_service_factory.h"
@@ -136,6 +137,7 @@
     SyncErrorBrowserAgent::CreateForBrowser(browser_.get());
     OmniboxPositionBrowserAgent::CreateForBrowser(browser_.get());
     BrowserViewVisibilityNotifierBrowserAgent::CreateForBrowser(browser_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
     TestFullscreenController::CreateForBrowser(browser_.get());
 
     WebUsageEnablerBrowserAgent* enabler =
diff --git a/ios/chrome/browser/browser_view/ui_bundled/browser_view_controller_unittest.mm b/ios/chrome/browser/browser_view/ui_bundled/browser_view_controller_unittest.mm
index 6acb4af..1ab732e 100644
--- a/ios/chrome/browser/browser_view/ui_bundled/browser_view_controller_unittest.mm
+++ b/ios/chrome/browser/browser_view/ui_bundled/browser_view_controller_unittest.mm
@@ -27,6 +27,7 @@
 #import "ios/chrome/browser/browser_view/ui_bundled/tab_consumer.h"
 #import "ios/chrome/browser/browser_view/ui_bundled/tab_events_mediator.h"
 #import "ios/chrome/browser/commerce/model/shopping_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/favicon/model/favicon_service_factory.h"
 #import "ios/chrome/browser/favicon/model/ios_chrome_favicon_loader_factory.h"
 #import "ios/chrome/browser/favicon/model/ios_chrome_large_icon_service_factory.h"
@@ -161,6 +162,7 @@
     OmniboxPositionBrowserAgent::CreateForBrowser(browser_.get());
     BrowserViewVisibilityNotifierBrowserAgent::CreateForBrowser(browser_.get());
     FullscreenController::CreateForBrowser(browser_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
 
     WebUsageEnablerBrowserAgent::FromBrowser(browser_.get())
         ->SetWebUsageEnabled(true);
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/ntp_home_egtest.mm b/ios/chrome/browser/content_suggestions/ui_bundled/ntp_home_egtest.mm
index b160833..7e12ddc3 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/ntp_home_egtest.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/ntp_home_egtest.mm
@@ -171,14 +171,10 @@
 }
 
 - (AppLaunchConfiguration)appConfigurationForTestCase {
-  // Use commandline args to enable the Discover feed for this test case.
-  // Disabled elsewhere to account for possible flakiness.
   AppLaunchConfiguration config = [super appConfigurationForTestCase];
   // Make sure the search engine country is set, for `testFavicons` test.
   config.additional_args.push_back(
       std::string("--") + switches::kSearchEngineChoiceCountry + "=US");
-  config.additional_args.push_back(std::string("--") +
-                                   switches::kEnableDiscoverFeed);
   if ([self isRunningTest:@selector(testPositionRestoredWithShiftingOffset)] ||
       [self
           isRunningTest:@selector(testPositionRestoredWithoutShiftingOffset)]) {
@@ -1031,8 +1027,6 @@
 }
 
 - (void)testMinimumHeight {
-  [ChromeEarlGrey setBoolValue:NO forUserPref:prefs::kArticlesForYouEnabled];
-
   [self
       testNTPInitialPositionAndContent:[NewTabPageAppInterface collectionView]];
 
@@ -1092,56 +1086,6 @@
   [self testNTPInitialPositionAndContent:collectionView];
 }
 
-// Test to ensure that feed can be enabled/disabled and that feed header changes
-// accordingly.
-- (void)testToggleFeedEnabled {
-  // Ensure that label is visible with correct text for enabled feed, and that
-  // the NTP is scrollable.
-  [self checkFeedLabel];
-  [self checkIfNTPIsScrollable];
-
-  // Disable feed.
-  [ChromeEarlGreyUI openSettingsMenu];
-  [[[EarlGrey selectElementWithMatcher:chrome_test_util::TableViewSwitchCell(
-                                           kSettingsArticleSuggestionsCellId,
-                                           /*is_toggled_on=*/YES,
-                                           /*enabled=*/YES)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 350)
-      onElementWithMatcher:chrome_test_util::SettingsCollectionView()]
-      performAction:chrome_test_util::TurnTableViewSwitchOn(NO)];
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::SettingsDoneButton()]
-      performAction:grey_tap()];
-
-  // Ensure that label is no longer visible and that the NTP is still
-  // scrollable.
-  [self
-      testNTPInitialPositionAndContent:[NewTabPageAppInterface collectionView]];
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::DiscoverHeaderLabel()]
-      assertWithMatcher:grey_notVisible()];
-  [self checkIfNTPIsScrollable];
-
-  // Re-enable feed.
-  [ChromeEarlGreyUI openSettingsMenu];
-  // Why do we we not reset the scroll position after bringing back the feed as
-  // the new parent collectionview? on iphone 8 the logo is cut off.
-  [[[EarlGrey selectElementWithMatcher:chrome_test_util::TableViewSwitchCell(
-                                           kSettingsArticleSuggestionsCellId,
-                                           /*is_toggled_on=*/NO,
-                                           /*enabled=*/YES)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 350)
-      onElementWithMatcher:chrome_test_util::SettingsCollectionView()]
-      performAction:chrome_test_util::TurnTableViewSwitchOn(YES)];
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::SettingsDoneButton()]
-      performAction:grey_tap()];
-
-  // Ensure that label is once again visible and that the NTP is still
-  // scrollable.
-  [self
-      testNTPInitialPositionAndContent:[NewTabPageAppInterface collectionView]];
-  [self checkFeedLabel];
-  [self checkIfNTPIsScrollable];
-}
-
 // Test to ensure that NTP for incognito mode works properly.
 - (void)testIncognitoMode {
   // Checks that default NTP is not incognito.
@@ -1417,9 +1361,6 @@
     EARL_GREY_TEST_SKIPPED(@"New Search is only available in phone layout.");
   }
 
-  // Disable feed.
-  [self disableFeedFromCustomizationMenu];
-
   [ChromeEarlGreyUI openNewTabMenu];
   [[EarlGrey selectElementWithMatcher:
                  chrome_test_util::ContextMenuItemWithAccessibilityLabelId(
@@ -1445,102 +1386,6 @@
   GREYWaitForAppToIdle(@"App failed to idle");
 }
 
-// Tests that feed ablation successfully hides the feed from the NTP and the
-// toggle from the Chrome settings.
-- (void)testFeedAblationHidesFeed {
-  AppLaunchConfiguration config = [self appConfigurationForTestCase];
-  config.relaunch_policy = ForceRelaunchByCleanShutdown;
-  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
-
-  // Ensures that feed header is visible before enabling ablation.
-  [[[EarlGrey selectElementWithMatcher:chrome_test_util::DiscoverHeaderLabel()]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 100)
-      onElementWithMatcher:chrome_test_util::NTPCollectionView()]
-      assertWithMatcher:grey_sufficientlyVisible()];
-
-  // Opens settings menu and ensures that Discover setting is present.
-  [ChromeEarlGreyUI openSettingsMenu];
-  [[[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                           kSettingsArticleSuggestionsCellId)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 250)
-      onElementWithMatcher:grey_allOf(
-                               grey_accessibilityID(kSettingsTableViewId),
-                               grey_sufficientlyVisible(), nil)]
-      assertWithMatcher:grey_notNil()];
-
-  // Relaunch the app with ablation enabled.
-  config.features_enabled.push_back(kEnableFeedAblation);
-  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
-
-  // Ensures that feed header is not visible with ablation enabled.
-  [[[EarlGrey selectElementWithMatcher:chrome_test_util::DiscoverHeaderLabel()]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 100)
-      onElementWithMatcher:chrome_test_util::NTPCollectionView()]
-      assertWithMatcher:grey_not(grey_sufficientlyVisible())];
-
-  // Opens settings menu and ensures that Discover setting is not present.
-  [ChromeEarlGreyUI openSettingsMenu];
-  [[[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                           kSettingsArticleSuggestionsCellId)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 250)
-      onElementWithMatcher:grey_allOf(
-                               grey_accessibilityID(kSettingsTableViewId),
-                               grey_sufficientlyVisible(), nil)]
-      assertWithMatcher:grey_nil()];
-}
-
-// Tests that content suggestions are hidden for supervised users on sign-in.
-// When the supervised user signs out the active policy should apply to the NTP.
-- (void)testFeedHiddenForSupervisedUser {
-  AppLaunchConfiguration config = [self appConfigurationForTestCase];
-  config.relaunch_policy = ForceRelaunchByCleanShutdown;
-  config.additional_args.push_back(std::string("--") +
-                                   switches::kDisableSearchEngineChoiceScreen);
-  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
-
-  [self
-      testNTPInitialPositionAndContent:[NewTabPageAppInterface collectionView]];
-
-  // Ensure that label is visible with correct text for enabled feed, and that
-  // the NTP is scrollable.
-  [self checkFeedLabel];
-  [self checkIfNTPIsScrollable];
-
-  // Opens settings menu and ensures that Discover setting is present.
-  [self checkDiscoverSettingsToggleVisible:YES];
-
-  // The identity must exist in the test storage to be able to set capabilities
-  // through the fake identity service.
-  FakeSystemIdentity* fakeIdentity = [FakeSystemIdentity fakeIdentity1];
-  [SigninEarlGrey addFakeIdentity:fakeIdentity
-                 withCapabilities:@{
-                   @(kIsSubjectToParentalControlsCapabilityName) : @YES,
-                 }];
-
-  [SigninEarlGrey signinWithFakeIdentity:fakeIdentity];
-
-  // Check that the feed label is not visible and if NTP is scrollable.
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::DiscoverHeaderLabel()]
-      assertWithMatcher:grey_not(grey_sufficientlyVisible())];
-  [self checkIfNTPIsScrollable];
-
-  // Check that the fake omnibox is visible.
-  [ChromeEarlGrey waitForSufficientlyVisibleElementWithMatcher:
-                      chrome_test_util::FakeOmnibox()];
-
-  // Opens settings menu and ensures that Discover setting is not present.
-  [self checkDiscoverSettingsToggleVisible:NO];
-
-  [SigninEarlGreyUI signOut];
-
-  // The feed label should be visible on sign-out.
-  [self checkFeedLabel];
-  [self checkIfNTPIsScrollable];
-
-  // Opens settings menu and ensures that Discover setting is present.
-  [self checkDiscoverSettingsToggleVisible:YES];
-}
-
 #pragma mark - Customization tests
 
 // Tests that the customization menu can be used to toggle the visibility of
@@ -1559,8 +1404,8 @@
                                    kNTPCustomizationMenuButtonIdentifier)]
       performAction:grey_tap()];
 
-  // Check for a toggle cell for Shortcuts, Magic Stack and Discover, and ensure
-  // that they're all on.
+  // Check for a toggle cell for Shortcuts and Magic Stack, and ensure that
+  // they're all on.
   [[EarlGrey
       selectElementWithMatcher:CustomizationToggle(
                                    kCustomizationToggleMostVisitedIdentifier)]
@@ -1569,20 +1414,12 @@
       selectElementWithMatcher:CustomizationToggle(
                                    kCustomizationToggleMagicStackIdentifier)]
       assertWithMatcher:grey_switchWithOnState(YES)];
-  [[EarlGrey
-      selectElementWithMatcher:CustomizationToggle(
-                                   kCustomizationToggleDiscoverIdentifier)]
-      assertWithMatcher:grey_switchWithOnState(YES)];
 
-  // Turn off the Magic Stack and Discover toggles.
+  // Turn off the Magic Stack toggle.
   [[EarlGrey
       selectElementWithMatcher:CustomizationToggle(
                                    kCustomizationToggleMagicStackIdentifier)]
       performAction:grey_turnSwitchOn(NO)];
-  [[EarlGrey
-      selectElementWithMatcher:CustomizationToggle(
-                                   kCustomizationToggleDiscoverIdentifier)]
-      performAction:grey_turnSwitchOn(NO)];
 
   // Dismiss the customization menu and check that only the Shortcuts are
   // visible.
@@ -1598,9 +1435,6 @@
       selectElementWithMatcher:
           grey_accessibilityID(kMagicStackScrollViewAccessibilityIdentifier)]
       assertWithMatcher:grey_notVisible()];
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(kNTPFeedHeaderIdentifier)]
-      assertWithMatcher:grey_notVisible()];
 
   // Re-open the menu and check that the toggles retained the correct state.
   [[EarlGrey
@@ -1619,10 +1453,6 @@
       selectElementWithMatcher:CustomizationToggle(
                                    kCustomizationToggleMagicStackIdentifier)]
       assertWithMatcher:grey_switchWithOnState(NO)];
-  [[EarlGrey
-      selectElementWithMatcher:CustomizationToggle(
-                                   kCustomizationToggleDiscoverIdentifier)]
-      assertWithMatcher:grey_switchWithOnState(NO)];
 
   // Toggle different modules and check that their visibility was properly
   // modified.
@@ -1632,10 +1462,6 @@
       performAction:grey_turnSwitchOn(YES)];
   [[EarlGrey
       selectElementWithMatcher:CustomizationToggle(
-                                   kCustomizationToggleDiscoverIdentifier)]
-      performAction:grey_turnSwitchOn(YES)];
-  [[EarlGrey
-      selectElementWithMatcher:CustomizationToggle(
                                    kCustomizationToggleMostVisitedIdentifier)]
       performAction:grey_turnSwitchOn(NO)];
   [[EarlGrey
@@ -1651,7 +1477,6 @@
       selectElementWithMatcher:
           grey_accessibilityID(kMagicStackScrollViewAccessibilityIdentifier)]
       assertWithMatcher:grey_not(grey_notVisible())];
-  [self checkFeedLabel];
 }
 
 // Tests that the toggles in the main page of the customization menu can be used
@@ -1711,74 +1536,8 @@
       assertWithMatcher:grey_sufficientlyVisible()];
 }
 
-// Tests the Discover submenu of the Home customization menu.
-- (void)testCustomizationDiscoverSubmenu {
-  [self resetCustomizationPrefs];
-
-  // Open the Home customization menu.
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kNTPCustomizationMenuButtonIdentifier)]
-      performAction:grey_tap()];
-
-  // Navigate to the Discover submenu.
-  [[EarlGrey
-      selectElementWithMatcher:
-          grey_accessibilityID(kCustomizationToggleDiscoverNavigableIdentifier)]
-      performAction:grey_tap()];
-  [[EarlGrey
-      selectElementWithMatcher:
-          grey_accessibilityID([HomeCustomizationHelper
-              navigationBarTitleForPage:CustomizationMenuPage::kDiscover])]
-      assertWithMatcher:grey_sufficientlyVisible()];
-
-  // Check that all 4 link cells are visible.
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kCustomizationLinkFollowingIdentifier)]
-      assertWithMatcher:grey_sufficientlyVisible()];
-  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                          kCustomizationLinkHiddenIdentifier)]
-      assertWithMatcher:grey_sufficientlyVisible()];
-  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                          kCustomizationLinkActivityIdentifier)]
-      assertWithMatcher:grey_sufficientlyVisible()];
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kCustomizationCollectionDiscoverIdentifier)]
-      performAction:grey_scrollToContentEdge(kGREYContentEdgeBottom)];
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kCustomizationLinkLearnMoreIdentifier)]
-      assertWithMatcher:grey_sufficientlyVisible()];
-
-  // Tap a cell and check that the menu is no longer visible, indicating that a
-  // navigation occurred.
-  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                          kCustomizationLinkHiddenIdentifier)]
-      performAction:grey_tap()];
-  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                          kCustomizationLinkHiddenIdentifier)]
-      assertWithMatcher:grey_not(grey_sufficientlyVisible())];
-}
-
 #pragma mark - Helpers
 
-// Opens the Settings menu and ensures that the visibility of the Discover
-// option matches the `visible` parameter.
-- (void)checkDiscoverSettingsToggleVisible:(BOOL)visible {
-  [ChromeEarlGreyUI openSettingsMenu];
-  [[[EarlGrey selectElementWithMatcher:grey_accessibilityID(
-                                           kSettingsArticleSuggestionsCellId)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 250)
-      onElementWithMatcher:grey_allOf(
-                               grey_accessibilityID(kSettingsTableViewId),
-                               grey_sufficientlyVisible(), nil)]
-      assertWithMatcher:visible ? grey_notNil() : grey_nil()];
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::SettingsDoneButton()]
-      performAction:grey_tap()];
-}
-
 - (void)addMostVisitedTile {
   self.testServer->RegisterRequestHandler(
       base::BindRepeating(&StandardResponse));
@@ -1830,16 +1589,6 @@
       assertWithMatcher:grey_sufficientlyVisible()];
 }
 
-// Check that feed label is visible with correct text.
-- (void)checkFeedLabel {
-  NSString* labelText = l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE);
-  [[EarlGrey selectElementWithMatcher:chrome_test_util::DiscoverHeaderLabel()]
-      assertWithMatcher:grey_sufficientlyVisible()];
-  UILabel* discoverHeaderLabel = [NewTabPageAppInterface discoverHeaderLabel];
-  GREYAssertTrue([discoverHeaderLabel.text isEqualToString:labelText],
-                 @"Discover header label is incorrect");
-}
-
 // Check that NTP is scrollable by scrolling and comparing offsets, then return
 // to top.
 - (void)checkIfNTPIsScrollable {
@@ -1873,54 +1622,10 @@
                    forUserPref:prefs::kHomeCustomizationMostVisitedEnabled];
   [ChromeEarlGrey setBoolValue:YES
                    forUserPref:prefs::kHomeCustomizationMagicStackEnabled];
-  [ChromeEarlGrey setBoolValue:YES forUserPref:prefs::kArticlesForYouEnabled];
-}
-
-// Disables the Discover feed from the Home Customization menu.
-- (void)disableFeedFromCustomizationMenu {
-  // Open the customization menu.
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kNTPCustomizationMenuButtonIdentifier)]
-      performAction:grey_tap()];
-
-  // Disable the Discover feed.
-  [[EarlGrey
-      selectElementWithMatcher:CustomizationToggle(
-                                   kCustomizationToggleDiscoverIdentifier)]
-      performAction:grey_turnSwitchOn(NO)];
-
-  // Close the customization menu.
-  [[EarlGrey
-      selectElementWithMatcher:grey_accessibilityID(
-                                   kNavigationBarDismissButtonIdentifier)]
-      performAction:grey_tap()];
 }
 
 #pragma mark - Matchers
 
-// Returns the segment of the feed header with a given title.
-id<GREYMatcher> FeedHeaderSegmentedControlSegmentWithTitle(int title_id) {
-  id<GREYMatcher> title_matcher =
-      grey_allOf(grey_accessibilityLabel(l10n_util::GetNSString(title_id)),
-                 grey_sufficientlyVisible(), nil);
-  return grey_allOf(
-      grey_accessibilityID(kNTPFeedHeaderSegmentedControlIdentifier),
-      grey_descendant(title_matcher), grey_sufficientlyVisible(), nil);
-}
-
-// Returns the Discover segment of the feed header.
-id<GREYMatcher> FeedHeaderSegmentDiscover() {
-  return FeedHeaderSegmentedControlSegmentWithTitle(
-      IDS_IOS_DISCOVER_FEED_TITLE);
-}
-
-// Returns the Following segment of the feed header.
-id<GREYMatcher> FeedHeaderSegmentFollowing() {
-  return FeedHeaderSegmentedControlSegmentWithTitle(
-      IDS_IOS_FOLLOWING_FEED_TITLE);
-}
-
 // Returns the switch in toggle cell from the customization menu.
 id<GREYMatcher> CustomizationToggle(NSString* identifier) {
   return grey_allOf(grey_kindOfClassName(@"UISwitch"),
diff --git a/ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.mm b/ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.mm
index 60ce8fba..7577c9f 100644
--- a/ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.mm
+++ b/ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.mm
@@ -70,9 +70,8 @@
         ios::RegionalCapabilitiesServiceFactory::GetForProfile(profile);
     configuration.resumedFromSafeMode =
         [browser_->GetSceneState().profileState.appState resumingFromSafeMode];
-    // TODO(crbug.com/412691611): Uncomment.
-    /*visibility_provider_ =
-        ios::provider::CreateDiscoverFeedVisibilityProvider(configuration);*/
+    visibility_provider_ =
+        ios::provider::CreateDiscoverFeedVisibilityProvider(configuration);
   }
   return visibility_provider_;
 }
diff --git a/ios/chrome/browser/home_customization/coordinator/BUILD.gn b/ios/chrome/browser/home_customization/coordinator/BUILD.gn
index d5e31bc..35397db 100644
--- a/ios/chrome/browser/home_customization/coordinator/BUILD.gn
+++ b/ios/chrome/browser/home_customization/coordinator/BUILD.gn
@@ -25,6 +25,8 @@
     "//components/prefs",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/content_suggestions/ui_bundled/set_up_list:utils",
+    "//ios/chrome/browser/discover_feed/model:constants",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/home_customization/model",
     "//ios/chrome/browser/home_customization/ui",
     "//ios/chrome/browser/home_customization/utils",
@@ -61,6 +63,7 @@
     "//base",
     "//base/test:test_support",
     "//components/prefs",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/home_customization/ui",
     "//ios/chrome/browser/home_customization/utils",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
diff --git a/ios/chrome/browser/home_customization/coordinator/DEPS b/ios/chrome/browser/home_customization/coordinator/DEPS
index a95c87a..6d8f78b3 100644
--- a/ios/chrome/browser/home_customization/coordinator/DEPS
+++ b/ios/chrome/browser/home_customization/coordinator/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  "+ios/chrome/browser/discover_feed/model",
   "+ios/chrome/browser/ntp/shared/metrics",
   "+ios/chrome/browser/url_loading/model",
   "+ios/chrome/browser/parcel_tracking",
diff --git a/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator.mm b/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator.mm
index 36f61733..80ae099e 100644
--- a/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator.mm
+++ b/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator.mm
@@ -4,6 +4,7 @@
 
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_coordinator.h"
 
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_background_picker_action_sheet_coordinator.h"
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_delegate.h"
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_mediator.h"
@@ -72,7 +73,9 @@
 
 - (void)start {
   _mediator = [[HomeCustomizationMediator alloc]
-      initWithPrefService:self.profile->GetPrefs()];
+                     initWithPrefService:self.profile->GetPrefs()
+      discoverFeedVisibilityBrowserAgent:DiscoverFeedVisibilityBrowserAgent::
+                                             FromBrowser(self.browser)];
   _mediator.navigationDelegate = self;
 
   // The Customization menu consists of a stack of presenting view controllers.
diff --git a/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator_unittest.mm b/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator_unittest.mm
index 2058597..29f76624 100644
--- a/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator_unittest.mm
+++ b/ios/chrome/browser/home_customization/coordinator/home_customization_coordinator_unittest.mm
@@ -6,6 +6,7 @@
 
 #import "base/strings/sys_string_conversions.h"
 #import "base/test/scoped_feature_list.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_coordinator+Testing.h"
 #import "ios/chrome/browser/home_customization/ui/home_customization_main_view_controller.h"
 #import "ios/chrome/browser/home_customization/utils/home_customization_constants.h"
@@ -26,6 +27,7 @@
   void SetUp() override {
     profile_ = TestProfileIOS::Builder().Build();
     browser_ = std::make_unique<TestBrowser>(profile_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
     base_view_controller_ = [[UIViewController alloc] init];
 
     coordinator_ = [[HomeCustomizationCoordinator alloc]
diff --git a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.h b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.h
index 6564d90..f843968 100644
--- a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.h
+++ b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.h
@@ -9,6 +9,7 @@
 
 #import "ios/chrome/browser/home_customization/ui/home_customization_mutator.h"
 
+class DiscoverFeedVisibilityBrowserAgent;
 @protocol HomeCustomizationDiscoverConsumer;
 @protocol HomeCustomizationMagicStackConsumer;
 @protocol HomeCustomizationMainConsumer;
@@ -20,6 +21,8 @@
 
 // Initializes this mediator with a pref service.
 - (instancetype)initWithPrefService:(PrefService*)prefService
+    discoverFeedVisibilityBrowserAgent:
+        (DiscoverFeedVisibilityBrowserAgent*)discoverFeedVisibilityBrowserAgent
     NS_DESIGNATED_INITIALIZER;
 
 - (instancetype)init NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.mm b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.mm
index c1ce5f84..9701bab 100644
--- a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.mm
+++ b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator.mm
@@ -11,6 +11,8 @@
 #import "components/commerce/core/commerce_feature_list.h"
 #import "components/prefs/pref_service.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/set_up_list/utils.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
+#import "ios/chrome/browser/discover_feed/model/feed_constants.h"
 #import "ios/chrome/browser/home_customization/coordinator/home_customization_navigation_delegate.h"
 #import "ios/chrome/browser/home_customization/model/background_customization_configuration.h"
 #import "ios/chrome/browser/home_customization/ui/home_customization_discover_consumer.h"
@@ -27,12 +29,18 @@
 @implementation HomeCustomizationMediator {
   // Pref service to handle preference changes.
   raw_ptr<PrefService> _prefService;
+  // Browser agent to be notified of Discover eligibility.
+  raw_ptr<DiscoverFeedVisibilityBrowserAgent>
+      _discoverFeedVisibilityBrowserAgent;
 }
 
-- (instancetype)initWithPrefService:(PrefService*)prefService {
+- (instancetype)initWithPrefService:(PrefService*)prefService
+    discoverFeedVisibilityBrowserAgent:(DiscoverFeedVisibilityBrowserAgent*)
+                                           discoverFeedVisibilityBrowserAgent {
   self = [super init];
   if (self) {
     _prefService = prefService;
+    _discoverFeedVisibilityBrowserAgent = discoverFeedVisibilityBrowserAgent;
   }
   return self;
 }
@@ -45,9 +53,13 @@
        [self isModuleEnabledForType:CustomizationToggleType::kMostVisited]},
       {CustomizationToggleType::kMagicStack,
        [self isModuleEnabledForType:CustomizationToggleType::kMagicStack]},
-      {CustomizationToggleType::kDiscover,
-       [self isModuleEnabledForType:CustomizationToggleType::kDiscover]},
   };
+  if (_discoverFeedVisibilityBrowserAgent->GetEligibility() ==
+      DiscoverFeedEligibility::kEligible) {
+    toggleMap.insert(
+        {CustomizationToggleType::kDiscover,
+         [self isModuleEnabledForType:CustomizationToggleType::kDiscover]});
+  }
   [self.mainPageConsumer populateToggles:toggleMap];
 
   if (IsNTPBackgroundCustomizationEnabled()) {
@@ -117,7 +129,7 @@
       return _prefService->GetBoolean(
           prefs::kHomeCustomizationMagicStackEnabled);
     case CustomizationToggleType::kDiscover:
-      return _prefService->GetBoolean(prefs::kArticlesForYouEnabled);
+      return _discoverFeedVisibilityBrowserAgent->IsEnabled();
     default:
       NOTREACHED();
   }
@@ -176,7 +188,7 @@
                                enabled);
       break;
     case CustomizationToggleType::kDiscover:
-      _prefService->SetBoolean(prefs::kArticlesForYouEnabled, enabled);
+      _discoverFeedVisibilityBrowserAgent->SetEnabled(enabled);
       break;
 
     // Magic Stack page toggles.
diff --git a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator_unittest.mm b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator_unittest.mm
index 965d72e..1da80c5 100644
--- a/ios/chrome/browser/home_customization/coordinator/home_customization_mediator_unittest.mm
+++ b/ios/chrome/browser/home_customization/coordinator/home_customization_mediator_unittest.mm
@@ -8,8 +8,10 @@
 #import "base/strings/sys_string_conversions.h"
 #import "base/test/scoped_feature_list.h"
 #import "components/prefs/pref_service.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/home_customization/ui/home_customization_main_consumer.h"
 #import "ios/chrome/browser/home_customization/utils/home_customization_constants.h"
+#import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
 #import "ios/chrome/browser/shared/model/prefs/browser_prefs.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
@@ -55,14 +57,22 @@
  public:
   void SetUp() override {
     profile_ = TestProfileIOS::Builder().Build();
+    Browser* browser = new TestBrowser(profile_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser);
     pref_service_ = profile_->GetPrefs();
+    discover_feed_visibility_browser_agent_ =
+        DiscoverFeedVisibilityBrowserAgent::FromBrowser(browser);
     mediator_ =
-        [[HomeCustomizationMediator alloc] initWithPrefService:pref_service_];
+        [[HomeCustomizationMediator alloc] initWithPrefService:pref_service_
+                            discoverFeedVisibilityBrowserAgent:
+                                discover_feed_visibility_browser_agent_];
   }
 
  protected:
   web::WebTaskEnvironment task_environment_;
   HomeCustomizationMediator* mediator_;
+  raw_ptr<DiscoverFeedVisibilityBrowserAgent>
+      discover_feed_visibility_browser_agent_;
   raw_ptr<PrefService> pref_service_;
   std::unique_ptr<TestProfileIOS> profile_;
 };
@@ -74,14 +84,14 @@
       [[FakeHomeCustomizationMainConsumer alloc] init];
   mediator_.mainPageConsumer = fake_consumer;
 
-  // Set the prefs.
+  // Set the values.
   pref_service_->SetBoolean(prefs::kHomeCustomizationMostVisitedEnabled, NO);
   pref_service_->SetBoolean(prefs::kHomeCustomizationMagicStackEnabled, YES);
-  pref_service_->SetBoolean(prefs::kArticlesForYouEnabled, NO);
+  discover_feed_visibility_browser_agent_->SetEnabled(NO);
 
   [mediator_ configureMainPageData];
 
-  // Check that the toggles properly reflect the prefs.
+  // Check that the toggles properly reflect the updated values.
   std::map<CustomizationToggleType, BOOL> toggle_map = fake_consumer.toggleMap;
   EXPECT_EQ(toggle_map.at(CustomizationToggleType::kMostVisited), NO);
   EXPECT_EQ(toggle_map.at(CustomizationToggleType::kMagicStack), YES);
diff --git a/ios/chrome/browser/ntp/ui_bundled/BUILD.gn b/ios/chrome/browser/ntp/ui_bundled/BUILD.gn
index 92ddd5d..c448b98 100644
--- a/ios/chrome/browser/ntp/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/ntp/ui_bundled/BUILD.gn
@@ -57,21 +57,19 @@
     ":ntp_internal",
     "//components/prefs",
     "//components/regional_capabilities",
-    "//ios/chrome/app:tests_hook",
-    "//ios/chrome/app/application_delegate:app_state",
     "//ios/chrome/app/profile",
     "//ios/chrome/browser/browser_view/model",
     "//ios/chrome/browser/content_suggestions/ui_bundled:coordinator",
     "//ios/chrome/browser/content_suggestions/ui_bundled:ui",
     "//ios/chrome/browser/discover_feed/model",
     "//ios/chrome/browser/discover_feed/model:discover_feed_factory",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/home_customization/model",
     "//ios/chrome/browser/image_fetcher/model",
     "//ios/chrome/browser/ntp/shared/metrics",
     "//ios/chrome/browser/ntp/shared/metrics:constants",
     "//ios/chrome/browser/regional_capabilities/model",
     "//ios/chrome/browser/search_engines/model:template_url_service_factory",
-    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
@@ -231,6 +229,7 @@
     "//ios/chrome/browser/discover_feed/model",
     "//ios/chrome/browser/discover_feed/model:constants",
     "//ios/chrome/browser/discover_feed/model:discover_feed_factory",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/home_customization/coordinator",
     "//ios/chrome/browser/home_customization/model",
     "//ios/chrome/browser/lens/ui_bundled:lens_availability",
@@ -333,7 +332,9 @@
     "//ios/chrome/browser/content_suggestions/ui_bundled:ui",
     "//ios/chrome/browser/content_suggestions/ui_bundled/cells",
     "//ios/chrome/browser/content_suggestions/ui_bundled/cells:shortcuts",
+    "//ios/chrome/browser/discover_feed/model",
     "//ios/chrome/browser/discover_feed/model:discover_feed_factory",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/favicon/model",
     "//ios/chrome/browser/feature_engagement/model",
     "//ios/chrome/browser/home_customization/model",
@@ -370,6 +371,7 @@
     "//ios/chrome/browser/url_loading/model",
     "//ios/chrome/browser/url_loading/model:test_support",
     "//ios/chrome/test:test_support",
+    "//ios/chrome/test/fakes",
     "//ios/chrome/test/providers/discover_feed",
     "//ios/testing:block_swizzler",
     "//ios/web/public/test",
diff --git a/ios/chrome/browser/ntp/ui_bundled/DEPS b/ios/chrome/browser/ntp/ui_bundled/DEPS
index 2bb35609..f3f118b6 100644
--- a/ios/chrome/browser/ntp/ui_bundled/DEPS
+++ b/ios/chrome/browser/ntp/ui_bundled/DEPS
@@ -21,11 +21,7 @@
   "+ios/chrome/browser/sharing/ui_bundled",
   "+ios/chrome/browser/push_notification/ui_bundled",
   "+ios/chrome/browser/content_notification/model/content_notification_util.h",
-  "+ios/chrome/browser/discover_feed/model/discover_feed_observer_bridge.h",
-  "+ios/chrome/browser/discover_feed/model/discover_feed_service.h",
-  "+ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h",
-  "+ios/chrome/browser/discover_feed/model/feed_constants.h",
-  "+ios/chrome/browser/discover_feed/model/feed_model_configuration.h",
+  "+ios/chrome/browser/discover_feed/model",
   "+ios/chrome/browser/drag_and_drop/model/url_drag_drop_handler.h",
   "+ios/chrome/browser/favicon/model/ios_chrome_favicon_loader_factory.h",
   "+ios/chrome/browser/feature_engagement/model/tracker_factory.h",
diff --git a/ios/chrome/browser/ntp/ui_bundled/feed_control_delegate.h b/ios/chrome/browser/ntp/ui_bundled/feed_control_delegate.h
index 26692de..f8fb650 100644
--- a/ios/chrome/browser/ntp/ui_bundled/feed_control_delegate.h
+++ b/ios/chrome/browser/ntp/ui_bundled/feed_control_delegate.h
@@ -30,9 +30,6 @@
 // Returns the index of the last visible feed card.
 - (NSUInteger)lastVisibleFeedCardIndex;
 
-// Sets the visibility of the feed and the feed header.
-- (void)setFeedAndHeaderVisibility:(BOOL)visible;
-
 // Updates the feed header when the default search engine changes.
 - (void)updateFeedForDefaultSearchEngineChanged;
 
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_component_factory.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_component_factory.mm
index 22127d6..a1a5df9e 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_component_factory.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_component_factory.mm
@@ -9,14 +9,12 @@
 #import "base/metrics/user_metrics_action.h"
 #import "components/prefs/pref_service.h"
 #import "components/regional_capabilities/regional_capabilities_service.h"
-#import "ios/chrome/app/application_delegate/app_state.h"
-#import "ios/chrome/app/profile/profile_state.h"
-#import "ios/chrome/app/tests_hook.h"
 #import "ios/chrome/browser/browser_view/model/browser_view_visibility_notifier_browser_agent.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/user_account_image_update_delegate.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/home_customization/model/home_background_customization_service_factory.h"
 #import "ios/chrome/browser/image_fetcher/model/image_fetcher_service_factory.h"
 #import "ios/chrome/browser/ntp/shared/metrics/feed_metrics_recorder.h"
@@ -29,7 +27,6 @@
 #import "ios/chrome/browser/ntp/ui_bundled/new_tab_page_view_controller.h"
 #import "ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.h"
 #import "ios/chrome/browser/search_engines/model/template_url_service_factory.h"
-#import "ios/chrome/browser/shared/coordinator/scene/scene_state.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/browser/browser.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
@@ -118,8 +115,14 @@
   ProfileIOS* profile = browser->GetProfile();
   TemplateURLService* templateURLService =
       ios::TemplateURLServiceFactory::GetForProfile(profile);
+  UrlLoadingBrowserAgent* URLLoadingBrowserAgent =
+      UrlLoadingBrowserAgent::FromBrowser(browser);
+  ChromeAccountManagerService* accountManagerService =
+      ChromeAccountManagerServiceFactory::GetForProfile(profile);
   AuthenticationService* authService =
       AuthenticationServiceFactory::GetForProfile(profile);
+  signin::IdentityManager* identityManager =
+      IdentityManagerFactory::GetForProfile(profile);
   DiscoverFeedService* discoverFeedService =
       DiscoverFeedServiceFactory::GetForProfile(profile);
   PrefService* prefService = profile->GetPrefs();
@@ -131,27 +134,27 @@
       HomeBackgroundCustomizationServiceFactory::GetForProfile(profile);
   image_fetcher::ImageFetcherService* imageFetcherService =
       ImageFetcherServiceFactory::GetForProfile(profile);
-  BOOL isSafeMode =
-      [browser->GetSceneState().profileState.appState resumingFromSafeMode];
+  BrowserViewVisibilityNotifierBrowserAgent*
+      browserViewVisibilityNotifierBrowserAgent =
+          BrowserViewVisibilityNotifierBrowserAgent::FromBrowser(browser);
+  DiscoverFeedVisibilityBrowserAgent* discoverFeedVisibilityBrowserAgent =
+      DiscoverFeedVisibilityBrowserAgent::FromBrowser(browser);
   return [[NewTabPageMediator alloc]
-          initWithTemplateURLService:templateURLService
-                           URLLoader:UrlLoadingBrowserAgent::FromBrowser(
-                                         browser)
-                         authService:authService
-                     identityManager:IdentityManagerFactory::GetForProfile(
-                                         profile)
-               accountManagerService:ChromeAccountManagerServiceFactory::
-                                         GetForProfile(profile)
-            identityDiscImageUpdater:imageUpdater
-                 discoverFeedService:discoverFeedService
-                         prefService:prefService
-                         syncService:syncService
-         regionalCapabilitiesService:regionalCapabilitiesService
-      backgroundCustomizationService:backgroundCustomizationService
-                 imageFetcherService:imageFetcherService
-       browserViewVisibilityNotifier:BrowserViewVisibilityNotifierBrowserAgent::
-                                         FromBrowser(browser)
-                          isSafeMode:isSafeMode];
+              initWithTemplateURLService:templateURLService
+                               URLLoader:URLLoadingBrowserAgent
+                             authService:authService
+                         identityManager:identityManager
+                   accountManagerService:accountManagerService
+                identityDiscImageUpdater:imageUpdater
+                     discoverFeedService:discoverFeedService
+                             prefService:prefService
+                             syncService:syncService
+             regionalCapabilitiesService:regionalCapabilitiesService
+          backgroundCustomizationService:backgroundCustomizationService
+                     imageFetcherService:imageFetcherService
+           browserViewVisibilityNotifier:
+               browserViewVisibilityNotifierBrowserAgent
+      discoverFeedVisibilityBrowserAgent:discoverFeedVisibilityBrowserAgent];
 }
 
 - (NewTabPageViewController*)NTPViewController {
@@ -162,10 +165,6 @@
                 viewControllerConfiguration:
                     (DiscoverFeedViewControllerConfiguration*)
                         viewControllerConfiguration {
-  if (tests_hook::DisableDiscoverFeed()) {
-    return nil;
-  }
-
   // Get the feed factory from the `browser` and create the feed model.
   DiscoverFeedService* feedService =
       DiscoverFeedServiceFactory::GetForProfile(browser->GetProfile());
@@ -183,10 +182,6 @@
                      (DiscoverFeedViewControllerConfiguration*)
                          viewControllerConfiguration
                                     sortType:(FollowingFeedSortType)sortType {
-  if (tests_hook::DisableDiscoverFeed()) {
-    return nil;
-  }
-
   // Get the feed factory from the `browser` and create the feed model. Content
   // is sorted by `sortType`.
   DiscoverFeedService* feedService =
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator.mm
index d38dfba..27af69d 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator.mm
@@ -44,6 +44,7 @@
 #import "ios/chrome/browser/discover_feed/model/discover_feed_observer_bridge.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_observer.h"
 #import "ios/chrome/browser/discover_feed/model/feed_constants.h"
 #import "ios/chrome/browser/discover_feed/model/feed_model_configuration.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
@@ -137,6 +138,7 @@
                                      ContentSuggestionsDelegate,
                                      DiscoverFeedObserverBridgeDelegate,
                                      DiscoverFeedPreviewDelegate,
+                                     DiscoverFeedVisibilityObserver,
                                      FeedControlDelegate,
                                      FeedSignInPromoDelegate,
                                      FeedWrapperViewControllerDelegate,
@@ -351,7 +353,7 @@
   [self updateFeedWithIsSupervisedUser:(capability == signin::Tribool::kTrue)];
 
   [self configureNTPMediator];
-  if (self.NTPMediator.feedHeaderVisible) {
+  if ([self.NTPMediator isFeedHeaderVisible]) {
     [self configureFeedAndHeader];
   }
   [self configureHeaderViewController];
@@ -574,7 +576,7 @@
 }
 
 - (BOOL)isFeedVisible {
-  return self.NTPMediator.feedHeaderVisible && self.feedViewController;
+  return [self.NTPMediator isFeedHeaderVisible] && self.feedViewController;
 }
 
 - (void)clearPresentedState {
@@ -659,7 +661,7 @@
 
 // Creates and configures the feed and feed header based on user prefs.
 - (void)configureFeedAndHeader {
-  CHECK(self.NTPMediator.feedHeaderVisible);
+  CHECK([self.NTPMediator isFeedHeaderVisible]);
   CHECK(self.NTPViewController);
 
   if (!self.feedHeaderViewController) {
@@ -678,7 +680,7 @@
       self.feedHeaderViewController;
 
   // Requests feeds here if the correct flags and prefs are enabled.
-  if (self.NTPMediator.feedHeaderVisible) {
+  if ([self.NTPMediator isFeedHeaderVisible]) {
     if ([self isFollowingFeedAvailable] &&
         self.selectedFeed == FeedTypeFollowing) {
       self.feedViewController = [self.componentFactory
@@ -747,6 +749,7 @@
 - (void)configureNTPMediator {
   NewTabPageMediator* NTPMediator = self.NTPMediator;
   DCHECK(NTPMediator);
+  NTPMediator.feedVisibilityObserver = self;
   NTPMediator.feedControlDelegate = self;
   NTPMediator.NTPContentDelegate = self;
   NTPMediator.headerConsumer = self.headerViewController;
@@ -940,6 +943,18 @@
   [self openCustomizationMenuAtPage:CustomizationMenuPage::kMain animated:YES];
 }
 
+#pragma mark - DiscoverFeedVisibilityObserver
+
+- (void)didChangeDiscoverFeedVisibility {
+  // TODO(crbug.com/412691611): Consider moving to mediator after refactor.
+  if (!self.NTPViewController.viewLoaded) {
+    return;
+  }
+  [self handleChangeInModules];
+  [self.NTPViewController setContentOffsetToTop];
+  [self updateModuleVisibility];
+}
+
 #pragma mark - DiscoverFeedPreviewDelegate
 
 - (UIViewController*)discoverFeedPreviewWithURL:(const GURL)URL {
@@ -1028,14 +1043,6 @@
   return [self.feedWrapperViewController lastVisibleFeedCardIndex];
 }
 
-- (void)setFeedAndHeaderVisibility:(BOOL)visible {
-  if (!self.NTPViewController.viewLoaded) {
-    return;
-  }
-  [self handleChangeInModules];
-  [self.NTPViewController setContentOffsetToTop];
-}
-
 - (void)updateFeedForDefaultSearchEngineChanged {
   if (!self.NTPViewController.viewLoaded) {
     return;
@@ -1646,7 +1653,7 @@
 
   // Fetches feed header and conditionally fetches feed. Feed can only be
   // visible if feed header is visible.
-  if (self.NTPMediator.feedHeaderVisible) {
+  if ([self.NTPMediator isFeedHeaderVisible]) {
     [self configureFeedAndHeader];
   } else {
     self.NTPViewController.feedHeaderViewController = nil;
@@ -1749,7 +1756,7 @@
 
       // TODO(crbug.com/350990359): Deprecate IOS.NTP.Impression when Home
       // Customization launches.
-      if (self.NTPMediator.feedHeaderVisible) {
+      if ([self.NTPMediator isFeedHeaderVisible]) {
         [self.NTPMetricsRecorder
             recordHomeImpression:IOSNTPImpressionType::kFeedVisible
                   isStartSurface:[self isStartSurface]];
@@ -1825,7 +1832,7 @@
       prefService->GetBoolean(prefs::kHomeCustomizationMostVisitedEnabled);
   BOOL magicStackEnabled =
       prefService->GetBoolean(prefs::kHomeCustomizationMagicStackEnabled);
-  BOOL feedEnabled = prefService->GetBoolean(prefs::kArticlesForYouEnabled);
+  BOOL feedEnabled = [self.NTPMediator isFeedHeaderVisible];
 
   // All components enabled/disabled.
   if (MVTEnabled && magicStackEnabled && feedEnabled) {
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator_unittest.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator_unittest.mm
index 79190fd..642afc25 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator_unittest.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_coordinator_unittest.mm
@@ -21,6 +21,9 @@
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_mediator.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_view_controller.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_observer.h"
 #import "ios/chrome/browser/favicon/model/ios_chrome_large_icon_service_factory.h"
 #import "ios/chrome/browser/ntp/model/new_tab_page_tab_helper.h"
 #import "ios/chrome/browser/ntp/shared/metrics/home_metrics.h"
@@ -63,7 +66,9 @@
 #import "ios/chrome/browser/toolbar/ui_bundled/public/fakebox_focuser.h"
 #import "ios/chrome/browser/url_loading/model/fake_url_loading_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h"
+#import "ios/chrome/test/fakes/fake_discover_feed_eligibility_handler.h"
 #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
+#import "ios/chrome/test/providers/discover_feed/test_discover_feed_service.h"
 #import "ios/chrome/test/testing_application_context.h"
 #import "ios/testing/scoped_block_swizzler.h"
 #import "ios/web/public/test/fakes/fake_navigation_context.h"
@@ -230,6 +235,15 @@
       StartSurfaceRecentTabBrowserAgent::CreateForBrowser(browser_.get());
       BrowserViewVisibilityNotifierBrowserAgent::CreateForBrowser(
           browser_.get());
+      // Set up Discover feed.
+      DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
+      DiscoverFeedVisibilityBrowserAgent::FromBrowser(browser_.get())
+          ->SetEnabled(true);
+      TestDiscoverFeedService* test_discover_feed_service =
+          static_cast<TestDiscoverFeedService*>(
+              DiscoverFeedServiceFactory::GetForProfile(profile_.get()));
+      eligibility_handler_ =
+          test_discover_feed_service->get_eligibility_handler();
       // Create non-NTP WebState
       browser_.get()->GetWebStateList()->InsertWebState(
           CreateWebState("http://chromium.org"),
@@ -255,17 +269,11 @@
         collectionViewLayout:[[UICollectionViewFlowLayout alloc] init]];
     fakeFeedCollectionView.translatesAutoresizingMaskIntoConstraints = NO;
     [fake_feed_view_controller_.view addSubview:fakeFeedCollectionView];
-    FeedWrapperViewController* feedWrapperViewController =
-        [[FeedWrapperViewController alloc]
-              initWithDelegate:coordinator_
-            feedViewController:fake_feed_view_controller_];
-    OCMExpect([component_factory_mock_ discoverFeedForBrowser:browser_.get()
-                                  viewControllerConfiguration:[OCMArg any]])
+    OCMStub([component_factory_mock_ discoverFeedForBrowser:browser_.get()
+                                viewControllerConfiguration:[OCMArg any]])
         .andReturn(fake_feed_view_controller_);
-    OCMStub([component_factory_mock_
-                feedWrapperViewControllerWithDelegate:[OCMArg any]
-                                   feedViewController:[OCMArg any]])
-        .andReturn(feedWrapperViewController);
+    OCMExpect([component_factory_mock_ discoverFeedForBrowser:browser_.get()
+                                  viewControllerConfiguration:[OCMArg any]]);
 
     coordinator_ =
         [[NewTabPageCoordinator alloc] initWithBrowser:browser_.get()
@@ -279,6 +287,11 @@
     InsertWebState(CreateWebStateWithURL(GURL("chrome://newtab")));
   }
 
+  // Sets the visibility of the feed.
+  void SetFeedHeaderVisible(bool visible) {
+    eligibility_handler_.enabled = visible;
+  }
+
   // Inserts a FakeWebState into the browser's WebStateList.
   void InsertWebState(std::unique_ptr<web::WebState> web_state) {
     browser_->GetWebStateList()->InsertWebState(
@@ -405,6 +418,7 @@
   UIViewController* fake_feed_view_controller_;
   NewTabPageCoordinator* coordinator_;
   NewTabPageMetricsRecorder* NTPMetricsRecorder_;
+  FakeDiscoverFeedEligibilityHandler* eligibility_handler_;
   id component_factory_mock_;
   UIViewController* base_view_controller_;
   id application_handler_mock_;
@@ -712,3 +726,30 @@
 
   [coordinator_ stop];
 }
+
+// Tests that the coordinator shows and hides the feed as expected.
+TEST_F(NewTabPageCoordinatorTest, TestShowsAndHidesFeed) {
+  CreateCoordinator(/*off_the_record=*/false);
+  SetupCommandHandlerMocks();
+  [coordinator_ start];
+  [coordinator_ didNavigateToNTPInWebState:web_state_];
+
+  ASSERT_TRUE([coordinator_
+      conformsToProtocol:@protocol(DiscoverFeedVisibilityObserver)]);
+  ASSERT_TRUE([coordinator_
+      respondsToSelector:@selector(didChangeDiscoverFeedVisibility)]);
+  id<DiscoverFeedVisibilityObserver> observer =
+      static_cast<id<DiscoverFeedVisibilityObserver>>(coordinator_);
+
+  EXPECT_EQ(fake_feed_view_controller_.parentViewController,
+            coordinator_.feedWrapperViewController);
+  SetFeedHeaderVisible(false);
+  [observer didChangeDiscoverFeedVisibility];
+  EXPECT_NE(fake_feed_view_controller_.parentViewController,
+            coordinator_.feedWrapperViewController);
+  SetFeedHeaderVisible(true);
+  [observer didChangeDiscoverFeedVisibility];
+  EXPECT_EQ(fake_feed_view_controller_.parentViewController,
+            coordinator_.feedWrapperViewController);
+  [coordinator_ stop];
+}
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.h b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.h
index e5b4939..288a6e17 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.h
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.h
@@ -29,6 +29,8 @@
 class BrowserViewVisibilityNotifierBrowserAgent;
 class ChromeAccountManagerService;
 class DiscoverFeedService;
+class DiscoverFeedVisibilityBrowserAgent;
+@protocol DiscoverFeedVisibilityObserver;
 @protocol FeedControlDelegate;
 @class FeedMetricsRecorder;
 class HomeBackgroundCustomizationService;
@@ -46,27 +48,30 @@
 @interface NewTabPageMediator : NSObject <NewTabPageMutator>
 
 - (instancetype)
-        initWithTemplateURLService:(TemplateURLService*)templateURLService
-                         URLLoader:(UrlLoadingBrowserAgent*)URLLoader
-                       authService:(AuthenticationService*)authService
-                   identityManager:(signin::IdentityManager*)identityManager
-             accountManagerService:
-                 (ChromeAccountManagerService*)accountManagerService
-          identityDiscImageUpdater:
-              (id<UserAccountImageUpdateDelegate>)imageUpdater
-               discoverFeedService:(DiscoverFeedService*)discoverFeedService
-                       prefService:(PrefService*)prefService
-                       syncService:(syncer::SyncService*)syncService
-       regionalCapabilitiesService:
-           (regional_capabilities::RegionalCapabilitiesService*)
-               regionalCapabilitiesService
-    backgroundCustomizationService:
-        (HomeBackgroundCustomizationService*)backgroundCustomizationService
-               imageFetcherService:
-                   (image_fetcher::ImageFetcherService*)imageFetcherService
-     browserViewVisibilityNotifier:(BrowserViewVisibilityNotifierBrowserAgent*)
-                                       browserViewVisibilityNotifierBrowserAgent
-                        isSafeMode:(BOOL)isSafeMode NS_DESIGNATED_INITIALIZER;
+            initWithTemplateURLService:(TemplateURLService*)templateURLService
+                             URLLoader:(UrlLoadingBrowserAgent*)URLLoader
+                           authService:(AuthenticationService*)authService
+                       identityManager:(signin::IdentityManager*)identityManager
+                 accountManagerService:
+                     (ChromeAccountManagerService*)accountManagerService
+              identityDiscImageUpdater:
+                  (id<UserAccountImageUpdateDelegate>)imageUpdater
+                   discoverFeedService:(DiscoverFeedService*)discoverFeedService
+                           prefService:(PrefService*)prefService
+                           syncService:(syncer::SyncService*)syncService
+           regionalCapabilitiesService:
+               (regional_capabilities::RegionalCapabilitiesService*)
+                   regionalCapabilitiesService
+        backgroundCustomizationService:
+            (HomeBackgroundCustomizationService*)backgroundCustomizationService
+                   imageFetcherService:
+                       (image_fetcher::ImageFetcherService*)imageFetcherService
+         browserViewVisibilityNotifier:
+             (BrowserViewVisibilityNotifierBrowserAgent*)
+                 browserViewVisibilityNotifierBrowserAgent
+    discoverFeedVisibilityBrowserAgent:
+        (DiscoverFeedVisibilityBrowserAgent*)discoverFeedVisibilityBrowserAgent
+    NS_DESIGNATED_INITIALIZER;
 
 - (instancetype)init NS_UNAVAILABLE;
 
@@ -76,6 +81,9 @@
 @property(nonatomic, weak) id<NewTabPageConsumer> consumer;
 // Consumer for NTP header model updates.
 @property(nonatomic, weak) id<NewTabPageHeaderConsumer> headerConsumer;
+// Observer for feed visibility changes.
+@property(nonatomic, weak) id<DiscoverFeedVisibilityObserver>
+    feedVisibilityObserver;
 // Delegate for controlling the current feed.
 @property(nonatomic, weak) id<FeedControlDelegate> feedControlDelegate;
 // Delegate for actions relating to the NTP content.
@@ -85,9 +93,9 @@
 // A pointer to the collection view that currently embeds all the contents on
 // the new tab page.
 @property(nonatomic, weak) UICollectionView* contentCollectionView;
+
 // Indicates whether the feed header should be visible.
-@property(nonatomic, readonly, getter=isFeedHeaderVisible)
-    BOOL feedHeaderVisible;
+- (BOOL)isFeedHeaderVisible;
 
 // Inits the mediator.
 - (void)setUp;
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.mm
index 94631d0..0a34464 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator.mm
@@ -25,6 +25,7 @@
 #import "ios/chrome/browser/content_suggestions/ui_bundled/user_account_image_update_delegate.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/home_customization/model/home_background_customization_service.h"
 #import "ios/chrome/browser/home_customization/model/home_background_customization_service_observer_bridge.h"
 #import "ios/chrome/browser/metrics/model/new_tab_page_uma.h"
@@ -90,12 +91,14 @@
   // Observes changes of the browser view visibility state.
   raw_ptr<BrowserViewVisibilityNotifierBrowserAgent>
       _browserViewVisibilityNotifierBrowserAgent;
+  // Observes changes of the feed visibility state.
+  raw_ptr<DiscoverFeedVisibilityBrowserAgent>
+      _discoverFeedVisibilityBrowserAgent;
   std::unique_ptr<BrowserViewVisibilityObserverBridge>
       _browserViewVisibilityObserverBridge;
   // Used to load URLs.
   raw_ptr<UrlLoadingBrowserAgent> _URLLoader;
   raw_ptr<PrefService> _prefService;
-  BOOL _isSafeMode;
   // Pref observer to track changes to prefs.
   std::unique_ptr<PrefObserverBridge> _prefObserverBridge;
   // Registrar for pref changes notifications.
@@ -124,27 +127,29 @@
 @synthesize scrollPositionToSave = _scrollPositionToSave;
 
 - (instancetype)
-        initWithTemplateURLService:(TemplateURLService*)templateURLService
-                         URLLoader:(UrlLoadingBrowserAgent*)URLLoader
-                       authService:(AuthenticationService*)authService
-                   identityManager:(signin::IdentityManager*)identityManager
-             accountManagerService:
-                 (ChromeAccountManagerService*)accountManagerService
-          identityDiscImageUpdater:
-              (id<UserAccountImageUpdateDelegate>)imageUpdater
-               discoverFeedService:(DiscoverFeedService*)discoverFeedService
-                       prefService:(PrefService*)prefService
-                       syncService:(syncer::SyncService*)syncService
-       regionalCapabilitiesService:
-           (regional_capabilities::RegionalCapabilitiesService*)
-               regionalCapabilitiesService
-    backgroundCustomizationService:
-        (HomeBackgroundCustomizationService*)backgroundCustomizationService
-               imageFetcherService:
-                   (image_fetcher::ImageFetcherService*)imageFetcherService
-     browserViewVisibilityNotifier:(BrowserViewVisibilityNotifierBrowserAgent*)
-                                       browserViewVisibilityNotifierBrowserAgent
-                        isSafeMode:(BOOL)isSafeMode {
+            initWithTemplateURLService:(TemplateURLService*)templateURLService
+                             URLLoader:(UrlLoadingBrowserAgent*)URLLoader
+                           authService:(AuthenticationService*)authService
+                       identityManager:(signin::IdentityManager*)identityManager
+                 accountManagerService:
+                     (ChromeAccountManagerService*)accountManagerService
+              identityDiscImageUpdater:
+                  (id<UserAccountImageUpdateDelegate>)imageUpdater
+                   discoverFeedService:(DiscoverFeedService*)discoverFeedService
+                           prefService:(PrefService*)prefService
+                           syncService:(syncer::SyncService*)syncService
+           regionalCapabilitiesService:
+               (regional_capabilities::RegionalCapabilitiesService*)
+                   regionalCapabilitiesService
+        backgroundCustomizationService:
+            (HomeBackgroundCustomizationService*)backgroundCustomizationService
+                   imageFetcherService:
+                       (image_fetcher::ImageFetcherService*)imageFetcherService
+         browserViewVisibilityNotifier:
+             (BrowserViewVisibilityNotifierBrowserAgent*)
+                 browserViewVisibilityNotifierBrowserAgent
+    discoverFeedVisibilityBrowserAgent:(DiscoverFeedVisibilityBrowserAgent*)
+                                           discoverFeedVisibilityBrowserAgent {
   self = [super init];
   if (self) {
     CHECK(identityManager);
@@ -169,19 +174,22 @@
     _syncObserver = std::make_unique<SyncObserverBridge>(self, syncService);
     _imageUpdater = imageUpdater;
     _discoverFeedService = discoverFeedService;
+    _discoverFeedVisibilityBrowserAgent = discoverFeedVisibilityBrowserAgent;
     _prefService = prefService;
     _regionalCapabilitiesService = regionalCapabilitiesService;
     _backgroundCustomizationService = backgroundCustomizationService;
     _imageFetcherService = imageFetcherService;
-    _isSafeMode = isSafeMode;
     _signedInIdentity =
         _authService->GetPrimaryIdentity(signin::ConsentLevel::kSignin);
   }
   return self;
 }
 
+- (BOOL)isFeedHeaderVisible {
+  return _discoverFeedVisibilityBrowserAgent->ShouldBeVisible();
+}
+
 - (void)setUp {
-  _feedHeaderVisible = [self updatedFeedHeaderVisible];
   self.templateURLService->Load();
   [self updateModuleVisibilityForConsumer];
   [self.headerConsumer setLogoIsShowing:search::DefaultSearchProviderIsGoogle(
@@ -193,6 +201,7 @@
   [self startObservingPrefs];
   _browserViewVisibilityNotifierBrowserAgent->AddObserver(
       _browserViewVisibilityObserverBridge.get());
+  _discoverFeedVisibilityBrowserAgent->AddObserver(self.feedVisibilityObserver);
   if (IsNTPBackgroundCustomizationEnabled()) {
     _backgroundCustomizationServiceObserverBridge =
         std::make_unique<HomeBackgroundCustomizationServiceObserverBridge>(
@@ -203,6 +212,8 @@
 - (void)shutdown {
   _browserViewVisibilityNotifierBrowserAgent->RemoveObserver(
       _browserViewVisibilityObserverBridge.get());
+  _discoverFeedVisibilityBrowserAgent->RemoveObserver(
+      self.feedVisibilityObserver);
   _searchEngineObserver.reset();
   _identityObserverBridge.reset();
   _browserViewVisibilityObserverBridge.reset();
@@ -254,7 +265,8 @@
             (BrowserViewVisibilityState)currentState
                                     fromState:(BrowserViewVisibilityState)
                                                   previousState {
-  if (self.discoverFeedService && self.NTPVisible && self.feedHeaderVisible) {
+  if (self.discoverFeedService && self.NTPVisible &&
+      [self isFeedHeaderVisible]) {
     self.discoverFeedService->UpdateFeedViewVisibilityState(
         self.contentCollectionView, currentState, previousState);
   }
@@ -271,7 +283,6 @@
   _defaultSearchEngine = updatedDefaultSearchEngine;
   [self.headerConsumer setLogoIsShowing:search::DefaultSearchProviderIsGoogle(
                                             self.templateURLService)];
-  [self setFeedHeaderVisible:[self updatedFeedHeaderVisible]];
   [self.feedControlDelegate updateFeedForDefaultSearchEngineChanged];
 }
 
@@ -295,12 +306,9 @@
 #pragma mark - PrefObserverDelegate
 
 - (void)onPreferenceChanged:(const std::string&)preferenceName {
-  [self setFeedHeaderVisible:[self updatedFeedHeaderVisible]];
-
   // Handle customization prefs
   if (preferenceName == prefs::kHomeCustomizationMostVisitedEnabled ||
-      preferenceName == prefs::kHomeCustomizationMagicStackEnabled ||
-      preferenceName == prefs::kArticlesForYouEnabled) {
+      preferenceName == prefs::kHomeCustomizationMagicStackEnabled) {
     [self updateModuleVisibilityForConsumer];
     [self.NTPContentDelegate updateModuleVisibility];
   }
@@ -362,27 +370,6 @@
   // TODO(crbug.com/40693626): Add metrics.
 }
 
-// Returns an updated value for feedHeaderVisible.
-- (BOOL)updatedFeedHeaderVisible {
-  return _prefService->GetBoolean(prefs::kArticlesForYouEnabled) &&
-         _prefService->GetBoolean(prefs::kNTPContentSuggestionsEnabled) &&
-         !IsFeedAblationEnabled() &&
-         IsContentSuggestionsForSupervisedUserEnabled(_prefService) &&
-         !_isSafeMode &&
-         !ShouldHideFeedWithSearchChoice(self.templateURLService,
-                                         _regionalCapabilitiesService);
-}
-
-// Sets whether the feed header should be visible.
-- (void)setFeedHeaderVisible:(BOOL)feedHeaderVisible {
-  if (feedHeaderVisible == _feedHeaderVisible) {
-    return;
-  }
-
-  _feedHeaderVisible = feedHeaderVisible;
-  [self.feedControlDelegate setFeedAndHeaderVisibility:_feedHeaderVisible];
-}
-
 // Updates the consumer with the current visibility of the NTP modules.
 - (void)updateModuleVisibilityForConsumer {
   self.consumer.mostVisitedVisible =
@@ -397,15 +384,6 @@
   _prefChangeRegistrar->Init(_prefService);
   _prefObserverBridge = std::make_unique<PrefObserverBridge>(self);
 
-  // Observe feed visibility prefs.
-  _prefObserverBridge->ObserveChangesForPreference(
-      prefs::kArticlesForYouEnabled, _prefChangeRegistrar.get());
-  _prefObserverBridge->ObserveChangesForPreference(
-      prefs::kNTPContentSuggestionsEnabled, _prefChangeRegistrar.get());
-  _prefObserverBridge->ObserveChangesForPreference(
-      prefs::kNTPContentSuggestionsForSupervisedUserEnabled,
-      _prefChangeRegistrar.get());
-
   // Observe customization prefs.
   _prefObserverBridge->ObserveChangesForPreference(
       prefs::kHomeCustomizationMostVisitedEnabled, _prefChangeRegistrar.get());
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator_unittest.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator_unittest.mm
index d7bbe69..a7dfa2dd 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator_unittest.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_mediator_unittest.mm
@@ -25,6 +25,8 @@
 #import "ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_mediator.h"
 #import "ios/chrome/browser/content_suggestions/ui_bundled/user_account_image_update_delegate.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_observer.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
 #import "ios/chrome/browser/home_customization/model/home_background_customization_service_factory.h"
 #import "ios/chrome/browser/image_fetcher/model/image_fetcher_service_factory.h"
@@ -51,6 +53,7 @@
 #import "ios/chrome/browser/url_loading/model/fake_url_loading_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_params.h"
+#import "ios/chrome/test/fakes/fake_discover_feed_eligibility_handler.h"
 #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
 #import "ios/chrome/test/providers/discover_feed/test_discover_feed_service.h"
 #import "ios/web/public/test/fakes/fake_web_state.h"
@@ -96,6 +99,16 @@
     BrowserViewVisibilityNotifierBrowserAgent::CreateForBrowser(browser_.get());
     browser_view_visibility_notifier_ =
         BrowserViewVisibilityNotifierBrowserAgent::FromBrowser(browser_.get());
+    // Set up discover feed.
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
+    DiscoverFeedVisibilityBrowserAgent* discover_feed_visibility_browser_agent =
+        DiscoverFeedVisibilityBrowserAgent::FromBrowser(browser_.get());
+    discover_feed_visibility_browser_agent->SetEnabled(true);
+    TestDiscoverFeedService* test_discover_feed_service =
+        static_cast<TestDiscoverFeedService*>(
+            DiscoverFeedServiceFactory::GetForProfile(profile_.get()));
+    eligibility_handler_ =
+        test_discover_feed_service->get_eligibility_handler();
 
     auth_service_ = AuthenticationServiceFactory::GetForProfile(profile_.get());
     identity_manager_ = IdentityManagerFactory::GetForProfile(profile_.get());
@@ -111,24 +124,29 @@
     image_fetcher::ImageFetcherService* image_fetcher_service =
         ImageFetcherServiceFactory::GetForProfile(profile_.get());
     mediator_ = [[NewTabPageMediator alloc]
-            initWithTemplateURLService:ios::TemplateURLServiceFactory::
-                                           GetForProfile(profile_.get())
-                             URLLoader:url_loader_
-                           authService:auth_service_
-                       identityManager:identity_manager_
-                 accountManagerService:account_manager_service
-              identityDiscImageUpdater:image_updater_
-                   discoverFeedService:test_discover_feed_service_
-                           prefService:prefs_
-                           syncService:&test_sync_service_
-           regionalCapabilitiesService:ios::RegionalCapabilitiesServiceFactory::
-                                           GetForProfile(profile_.get())
-        backgroundCustomizationService:background_customization_service
-                   imageFetcherService:image_fetcher_service
-         browserViewVisibilityNotifier:browser_view_visibility_notifier_
-                            isSafeMode:NO];
+                initWithTemplateURLService:ios::TemplateURLServiceFactory::
+                                               GetForProfile(profile_.get())
+                                 URLLoader:url_loader_
+                               authService:auth_service_
+                           identityManager:identity_manager_
+                     accountManagerService:account_manager_service
+                  identityDiscImageUpdater:image_updater_
+                       discoverFeedService:test_discover_feed_service_
+                               prefService:prefs_
+                               syncService:&test_sync_service_
+               regionalCapabilitiesService:
+                   ios::RegionalCapabilitiesServiceFactory::GetForProfile(
+                       profile_.get())
+            backgroundCustomizationService:background_customization_service
+                       imageFetcherService:image_fetcher_service
+             browserViewVisibilityNotifier:browser_view_visibility_notifier_
+        discoverFeedVisibilityBrowserAgent:
+            discover_feed_visibility_browser_agent];
     header_consumer_ = OCMProtocolMock(@protocol(NewTabPageHeaderConsumer));
     mediator_.headerConsumer = header_consumer_;
+    visibility_observer_ =
+        OCMProtocolMock(@protocol(DiscoverFeedVisibilityObserver));
+    mediator_.feedVisibilityObserver = visibility_observer_;
     feature_engagement::Tracker* tracker =
         feature_engagement::TrackerFactory::GetForProfile(profile_.get());
     feed_metrics_recorder_ =
@@ -189,9 +207,11 @@
   std::unique_ptr<web::WebState> initial_web_state_;
   raw_ptr<PrefService> prefs_;
   id header_consumer_;
+  id visibility_observer_;
   id image_updater_;
   id logo_vendor_;
   FeedMetricsRecorder* feed_metrics_recorder_;
+  FakeDiscoverFeedEligibilityHandler* eligibility_handler_;
   NewTabPageMediator* mediator_;
   raw_ptr<ToolbarTestNavigationManager> navigation_manager_;
   raw_ptr<FakeUrlLoadingBrowserAgent> url_loader_;
@@ -215,36 +235,20 @@
 
   // Tests.
   EXPECT_OCMOCK_VERIFY(header_consumer_);
+  EXPECT_EQ([eligibility_handler_ observerCount], 1);
 }
 
-// Tests that the feed will be hidden when a non-Google search engine is chosen,
-// but only in EEA countries.
-TEST_F(NewTabPageMediatorTest, TestHideFeedWithSearchChoiceTargeted) {
-  // Test it with the default search engine, with country set to France.
-  OverrideSearchEngineChoiceCountry("FR");
+// Tests that the feed visibility depends on the visibility of the discover
+// visibility browser agent.
+TEST_F(NewTabPageMediatorTest, TestShowAndHideFeed) {
   [mediator_ setUp];
-  EXPECT_TRUE(mediator_.feedHeaderVisible);
-
-  // Set up expectation for custom search engine, country set to France.
-  id feed_control_delegate = OCMProtocolMock(@protocol(FeedControlDelegate));
-  OCMExpect([feed_control_delegate setFeedAndHeaderVisibility:NO]);
-  mediator_.feedControlDelegate = feed_control_delegate;
-
-  // Test setting a custom search engine, country still set to France.
-  SetCustomSearchEngine();
-  EXPECT_FALSE(mediator_.feedHeaderVisible);
-  EXPECT_OCMOCK_VERIFY(feed_control_delegate);
-
-  // Set up expectation for custom search engine, with country set to US.
-  feed_control_delegate = OCMProtocolMock(@protocol(FeedControlDelegate));
-  OCMExpect([feed_control_delegate setFeedAndHeaderVisibility:YES]);
-  mediator_.feedControlDelegate = feed_control_delegate;
-
-  // Test with custom search engine, with country set to US.
-  OverrideSearchEngineChoiceCountry("US");
-  SetCustomSearchEngine();
-  EXPECT_TRUE(mediator_.feedHeaderVisible);
-  EXPECT_OCMOCK_VERIFY(feed_control_delegate);
+  EXPECT_TRUE([mediator_ isFeedHeaderVisible]);
+  [eligibility_handler_
+      setEligibility:DiscoverFeedEligibility::kIneligibleReasonUnknown];
+  EXPECT_FALSE([mediator_ isFeedHeaderVisible]);
+  [eligibility_handler_ setEligibility:DiscoverFeedEligibility::kEligible];
+  eligibility_handler_.enabled = false;
+  EXPECT_FALSE([mediator_ isFeedHeaderVisible]);
 }
 
 // Tests that the mediator updates the Discover feed with the visibility state
@@ -270,13 +274,13 @@
   EXPECT_EQ(test_discover_feed_service_->visibility_state(), kAppearing);
 
   // User turns off the feed.
-  prefs_->SetBoolean(prefs::kArticlesForYouEnabled, false);
+  eligibility_handler_.enabled = false;
   [audience browserViewDidTransitionToVisibilityState:kVisible
                                             fromState:kAppearing];
   EXPECT_EQ(test_discover_feed_service_->visibility_state(), kAppearing);
 
   // User turns the feed back on.
-  prefs_->SetBoolean(prefs::kArticlesForYouEnabled, true);
+  eligibility_handler_.enabled = true;
   [audience browserViewDidTransitionToVisibilityState:kCoveredByOmniboxPopup
                                             fromState:kVisible];
   EXPECT_EQ(test_discover_feed_service_->visibility_state(),
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_view_controller.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_view_controller.mm
index 2c1c521..f8c9bd8 100644
--- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_view_controller.mm
+++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_view_controller.mm
@@ -589,6 +589,9 @@
     // visually keep the same scroll position, but don't allow an offset that
     // is lower than the top.
     [self setContentOffset:MAX(oldOffset - change, -newHeightAboveFeed)];
+    if (!self.feedVisible) {
+      [self setMinimumHeight];
+    }
   }
 }
 
diff --git a/ios/chrome/browser/policy/model/policy_egtest.mm b/ios/chrome/browser/policy/model/policy_egtest.mm
index 35e98cb..6978b89 100644
--- a/ios/chrome/browser/policy/model/policy_egtest.mm
+++ b/ios/chrome/browser/policy/model/policy_egtest.mm
@@ -421,36 +421,6 @@
                            @"block_popups_settings_view_controller");
 }
 
-// Tests that the feed is disappearing when the policy is set to false while it
-// is visible.
-- (void)testDisableContentSuggestions {
-  // Relaunch the app with Discover enabled, as it is required for this test.
-  AppLaunchConfiguration config = [self appConfigurationForTestCase];
-  config.relaunch_policy = ForceRelaunchByCleanShutdown;
-  config.features_disabled.push_back(kEnableFeedAblation);
-  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
-
-  NSString* feedTitle = l10n_util::GetNSString(IDS_IOS_DISCOVER_FEED_TITLE);
-  [[[EarlGrey
-      selectElementWithMatcher:grey_allOf(grey_accessibilityLabel(feedTitle),
-                                          grey_sufficientlyVisible(), nil)]
-         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 200)
-      onElementWithMatcher:grey_accessibilityID(kNTPCollectionViewIdentifier)]
-      assertWithMatcher:grey_sufficientlyVisible()];
-
-  SetPolicy(false, policy::key::kNTPContentSuggestionsEnabled);
-
-  [[EarlGrey
-      selectElementWithMatcher:grey_allOf(grey_accessibilityLabel(feedTitle),
-                                          grey_sufficientlyVisible(), nil)]
-      assertWithMatcher:grey_nil()];
-
-  // Open settings menu and check that it is disabled.
-  [self openSettingsMenu];
-  VerifyManagedSettingItem(kSettingsArticleSuggestionsCellId,
-                           kSettingsTableViewId);
-}
-
 - (void)testTranslateEnabledSettingsUI {
   // Disable TranslateEnabled policy.
   SetPolicy(false, policy::key::kTranslateEnabled);
diff --git a/ios/chrome/browser/settings/ui_bundled/BUILD.gn b/ios/chrome/browser/settings/ui_bundled/BUILD.gn
index be06aa3..6316e86c 100644
--- a/ios/chrome/browser/settings/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/settings/ui_bundled/BUILD.gn
@@ -114,8 +114,6 @@
     "//components/translate/core/common",
     "//components/url_formatter",
     "//components/version_info",
-    "//ios/chrome/app/application_delegate:app_state",
-    "//ios/chrome/app/profile",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/authentication/ui_bundled",
     "//ios/chrome/browser/authentication/ui_bundled:signin_presenter",
@@ -135,6 +133,8 @@
     "//ios/chrome/browser/content_settings/model",
     "//ios/chrome/browser/content_suggestions/ui_bundled/cells",
     "//ios/chrome/browser/default_browser/model:utils",
+    "//ios/chrome/browser/discover_feed/model",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/favicon/model",
     "//ios/chrome/browser/feature_engagement/model",
     "//ios/chrome/browser/first_run/ui_bundled:field_trial",
@@ -194,7 +194,6 @@
     "//ios/chrome/browser/settings/ui_bundled/tabs/inactive_tabs",
     "//ios/chrome/browser/settings/ui_bundled/utils",
     "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
-    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
     "//ios/chrome/browser/shared/model/application_context",
     "//ios/chrome/browser/shared/model/prefs",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
@@ -352,6 +351,7 @@
     "//ios/chrome/browser/browsing_data/model",
     "//ios/chrome/browser/browsing_data/model:counters",
     "//ios/chrome/browser/content_settings/model",
+    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/favicon/model",
     "//ios/chrome/browser/history/model",
     "//ios/chrome/browser/passwords/model",
diff --git a/ios/chrome/browser/settings/ui_bundled/password/password_checkup/password_checkup_mediator.mm b/ios/chrome/browser/settings/ui_bundled/password/password_checkup/password_checkup_mediator.mm
index 2e562d4..ae1deee 100644
--- a/ios/chrome/browser/settings/ui_bundled/password/password_checkup/password_checkup_mediator.mm
+++ b/ios/chrome/browser/settings/ui_bundled/password/password_checkup/password_checkup_mediator.mm
@@ -199,14 +199,13 @@
       return PasswordCheckupHomepageStateRunning;
     case PasswordCheckState::kNoPasswords:
       return PasswordCheckupHomepageStateDisabled;
+    case PasswordCheckState::kCanceled:
+    case PasswordCheckState::kIdle:
     case PasswordCheckState::kSignedOut:
     case PasswordCheckState::kOffline:
     case PasswordCheckState::kQuotaLimit:
     case PasswordCheckState::kOther:
       return PasswordCheckupHomepageStateDone;
-    case PasswordCheckState::kCanceled:
-    case PasswordCheckState::kIdle:
-      return PasswordCheckupHomepageStateDone;
   }
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
index 1dd3b96..fd5f2b4 100644
--- a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
+++ b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
@@ -14,6 +14,7 @@
 #import "components/password_manager/core/browser/password_manager_test_utils.h"
 #import "components/password_manager/core/browser/password_store/test_password_store.h"
 #import "components/search_engines/template_url_service.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/passwords/model/ios_chrome_profile_password_store_factory.h"
 #import "ios/chrome/browser/search_engines/model/template_url_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
@@ -61,6 +62,7 @@
                 web::BrowserState, password_manager::TestPasswordStore>));
     profile_ = profile_manager_.AddProfileWithBuilder(std::move(builder));
     browser_ = std::make_unique<TestBrowser>(profile_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
 
     NSArray<Protocol*>* command_protocols = @[
       @protocol(ApplicationCommands), @protocol(BrowserCommands),
diff --git a/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller.mm
index eaa06298..3f78b46 100644
--- a/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller.mm
@@ -27,7 +27,6 @@
 #import "components/prefs/ios/pref_observer_bridge.h"
 #import "components/prefs/pref_member.h"
 #import "components/prefs/pref_service.h"
-#import "components/regional_capabilities/regional_capabilities_service.h"
 #import "components/safe_browsing/core/common/features.h"
 #import "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #import "components/search_engines/search_engines_pref_names.h"
@@ -40,8 +39,6 @@
 #import "components/strings/grit/components_strings.h"
 #import "components/sync/service/sync_service.h"
 #import "components/sync/service/sync_user_settings.h"
-#import "ios/chrome/app/application_delegate/app_state.h"
-#import "ios/chrome/app/profile/profile_state.h"
 #import "ios/chrome/browser/authentication/ui_bundled/cells/table_view_account_item.h"
 #import "ios/chrome/browser/authentication/ui_bundled/change_profile/change_profile_settings_continuation.h"
 #import "ios/chrome/browser/authentication/ui_bundled/signin/signin_utils.h"
@@ -51,6 +48,9 @@
 #import "ios/chrome/browser/commerce/model/push_notification/push_notification_feature.h"
 #import "ios/chrome/browser/content_notification/model/content_notification_util.h"
 #import "ios/chrome/browser/default_browser/model/utils.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_observer.h"
+#import "ios/chrome/browser/discover_feed/model/feed_constants.h"
 #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h"
 #import "ios/chrome/browser/language/model/language_model_manager_factory.h"
 #import "ios/chrome/browser/net/model/crurl.h"
@@ -64,7 +64,6 @@
 #import "ios/chrome/browser/photos/model/photos_service_factory.h"
 #import "ios/chrome/browser/push_notification/model/push_notification_client_id.h"
 #import "ios/chrome/browser/push_notification/model/push_notification_settings_util.h"
-#import "ios/chrome/browser/regional_capabilities/model/regional_capabilities_service_factory.h"
 #import "ios/chrome/browser/search_engines/model/search_engine_observer_bridge.h"
 #import "ios/chrome/browser/search_engines/model/template_url_service_factory.h"
 #import "ios/chrome/browser/settings/model/sync/utils/identity_error_util.h"
@@ -101,7 +100,6 @@
 #import "ios/chrome/browser/settings/ui_bundled/table_cell_catalog_view_controller.h"
 #import "ios/chrome/browser/settings/ui_bundled/tabs/tabs_settings_coordinator.h"
 #import "ios/chrome/browser/settings/ui_bundled/voice_search_table_view_controller.h"
-#import "ios/chrome/browser/shared/coordinator/scene/scene_state.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/browser/browser.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_backed_boolean.h"
@@ -190,6 +188,7 @@
 
 @interface SettingsTableViewController () <
     BooleanObserver,
+    DiscoverFeedVisibilityObserver,
     DownloadsSettingsCoordinatorDelegate,
     EnhancedSafeBrowsingInlinePromoDelegate,
     GoogleServicesSettingsCoordinatorDelegate,
@@ -223,15 +222,8 @@
   BOOL _hasRecordedSigninImpression;
   // PrefBackedBoolean for ShowMemoryDebugTools switch.
   PrefBackedBoolean* _showMemoryDebugToolsEnabled;
-  // PrefBackedBoolean for ArticlesForYou switch.
-  PrefBackedBoolean* _articlesEnabled;
   // Preference value for the "Allow Chrome Sign-in" feature.
   PrefBackedBoolean* _allowChromeSigninPreference;
-  // PrefBackedBoolean for ArticlesForYou switch enabling.
-  PrefBackedBoolean* _contentSuggestionPolicyEnabled;
-  // PrefBackedBoolean that overrides ArticlesForYou switch for supervised
-  // users.
-  PrefBackedBoolean* _contentSuggestionForSupervisedUsersEnabled;
   // PrefBackedBoolean for BottomOmnibox switch.
   PrefBackedBoolean* _bottomOmniboxEnabled;
   // The item related to the switch for the show suggestions setting.
@@ -262,6 +254,10 @@
   // Presenter for the signin IPH.
   BubbleViewControllerPresenter* _bubblePresenter;
 
+  // Discover feed visibility browser agent.
+  raw_ptr<DiscoverFeedVisibilityBrowserAgent>
+      _discoverFeedVisibilityBrowserAgent;
+
   // Identity object.
   id<SystemIdentity> _identity;
 
@@ -378,26 +374,14 @@
                                               prefName:prefs::kSigninAllowed];
     _allowChromeSigninPreference.observer = self;
 
-    _articlesEnabled = [[PrefBackedBoolean alloc]
-        initWithPrefService:prefService
-                   prefName:prefs::kArticlesForYouEnabled];
-    [_articlesEnabled setObserver:self];
-
     _bottomOmniboxEnabled =
         [[PrefBackedBoolean alloc] initWithPrefService:localState
                                               prefName:prefs::kBottomOmnibox];
     [_bottomOmniboxEnabled setObserver:self];
 
-    _contentSuggestionPolicyEnabled = [[PrefBackedBoolean alloc]
-        initWithPrefService:prefService
-                   prefName:prefs::kNTPContentSuggestionsEnabled];
-    [_contentSuggestionPolicyEnabled setObserver:self];
-
-    _contentSuggestionForSupervisedUsersEnabled = [[PrefBackedBoolean alloc]
-        initWithPrefService:prefService
-                   prefName:prefs::
-                                kNTPContentSuggestionsForSupervisedUserEnabled];
-    [_contentSuggestionForSupervisedUsersEnabled setObserver:self];
+    _discoverFeedVisibilityBrowserAgent =
+        DiscoverFeedVisibilityBrowserAgent::FromBrowser(browser);
+    _discoverFeedVisibilityBrowserAgent->AddObserver(self);
 
     _voiceLocaleCode.Init(prefs::kVoiceSearchLocale, prefService);
 
@@ -518,26 +502,19 @@
   [model addItem:[self privacyDetailItem]
       toSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
 
-  // Feed is disabled in safe mode.
-  SceneState* sceneState = _browser->GetSceneState();
-  BOOL isSafeMode = [sceneState.profileState.appState resumingFromSafeMode];
-  TemplateURLService* templateURLService =
-      ios::TemplateURLServiceFactory::GetForProfile(_profile);
-  regional_capabilities::RegionalCapabilitiesService* regionalCapabilities =
-      ios::RegionalCapabilitiesServiceFactory::GetForProfile(_profile);
-
-  if (!IsFeedAblationEnabled() && !isSafeMode &&
-      IsContentSuggestionsForSupervisedUserEnabled(_profile->GetPrefs()) &&
-      !ShouldHideFeedWithSearchChoice(templateURLService,
-                                      regionalCapabilities)) {
-    if ([_contentSuggestionPolicyEnabled value]) {
+  DiscoverFeedEligibility discoverFeedEligiblity =
+      _discoverFeedVisibilityBrowserAgent->GetEligibility();
+  switch (discoverFeedEligiblity) {
+    case DiscoverFeedEligibility::kEligible:
       [model addItem:self.feedSettingsItem
           toSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
-
-    } else {
+      break;
+    case DiscoverFeedEligibility::kDisabledByEnterprisePolicy:
       [model addItem:self.managedFeedSettingsItem
           toSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
-    }
+      break;
+    case DiscoverFeedEligibility::kIneligibleReasonUnknown:
+      break;
   }
 
   PhotosService* photosService = PhotosServiceFactory::GetForProfile(_profile);
@@ -941,7 +918,7 @@
                              symbol:DefaultSettingsRootSymbol(kDiscoverSymbol)
               symbolBackgroundColor:[UIColor colorNamed:kOrange500Color]
             accessibilityIdentifier:kSettingsArticleSuggestionsCellId];
-    _feedSettingsItem.on = [_articlesEnabled value];
+    _feedSettingsItem.on = _discoverFeedVisibilityBrowserAgent->IsEnabled();
   }
   return _feedSettingsItem;
 }
@@ -1450,7 +1427,7 @@
 
   BOOL newSwitchValue = sender.isOn;
   switchItem.on = newSwitchValue;
-  [_articlesEnabled setValue:newSwitchValue];
+  _discoverFeedVisibilityBrowserAgent->SetEnabled(newSwitchValue);
 }
 
 #if BUILDFLAG(CHROMIUM_BRANDING) && !defined(NDEBUG)
@@ -2082,10 +2059,6 @@
   [_showMemoryDebugToolsEnabled setObserver:nil];
   _showMemoryDebugToolsEnabled = nil;
 
-  [_articlesEnabled stop];
-  [_articlesEnabled setObserver:nil];
-  _articlesEnabled = nil;
-
   [_allowChromeSigninPreference stop];
   [_allowChromeSigninPreference setObserver:nil];
   _allowChromeSigninPreference = nil;
@@ -2094,13 +2067,8 @@
   [_bottomOmniboxEnabled setObserver:nil];
   _bottomOmniboxEnabled = nil;
 
-  [_contentSuggestionPolicyEnabled stop];
-  [_contentSuggestionPolicyEnabled setObserver:nil];
-  _contentSuggestionPolicyEnabled = nil;
-
-  [_contentSuggestionForSupervisedUsersEnabled stop];
-  [_contentSuggestionForSupervisedUsersEnabled setObserver:nil];
-  _contentSuggestionForSupervisedUsersEnabled = nil;
+  _discoverFeedVisibilityBrowserAgent->RemoveObserver(self);
+  _discoverFeedVisibilityBrowserAgent = nullptr;
 
   // Remove pref changes registrations.
   _prefChangeRegistrar.RemoveAll();
@@ -2129,10 +2097,6 @@
 #pragma mark SyncObserverModelBridge
 
 - (void)onSyncStateChanged {
-  // Feed settings are subject to sign-in status and account type, ensure
-  // that these sections are updated as necessary.
-  [self booleanDidChange:_contentSuggestionPolicyEnabled];
-
   [self updateSigninSection];
   // The Identity section may be added or removed depending on sign-in is
   // allowed. Reload all sections in the model to account for the change.
@@ -2172,57 +2136,6 @@
     // The Identity section may be added or removed depending on sign-in is
     // allowed. Reload all sections in the model to account for the change.
     [self.tableView reloadData];
-  } else if (observableBoolean == _articlesEnabled) {
-    self.feedSettingsItem.on = [_articlesEnabled value];
-    [self reconfigureCellsForItems:@[ self.feedSettingsItem ]];
-  } else if (observableBoolean == _contentSuggestionPolicyEnabled) {
-    NSIndexPath* itemIndexPath;
-    NSInteger itemTypeToRemove;
-    TableViewItem* itemToAdd;
-    if ([_contentSuggestionPolicyEnabled value]) {
-      if (![self.tableViewModel hasItem:self.managedFeedSettingsItem]) {
-        return;
-      }
-      itemIndexPath =
-          [self.tableViewModel indexPathForItem:self.managedFeedSettingsItem];
-      itemTypeToRemove = SettingsItemTypeManagedArticlesForYou;
-      itemToAdd = self.feedSettingsItem;
-    } else {
-      if (![self.tableViewModel hasItem:self.feedSettingsItem]) {
-        return;
-      }
-      itemIndexPath =
-          [self.tableViewModel indexPathForItem:self.feedSettingsItem];
-      itemTypeToRemove = SettingsItemTypeArticlesForYou;
-      itemToAdd = self.managedFeedSettingsItem;
-    }
-    [self.tableViewModel removeItemWithType:itemTypeToRemove
-                  fromSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
-    [self.tableViewModel insertItem:itemToAdd
-            inSectionWithIdentifier:SettingsSectionIdentifierAdvanced
-                            atIndex:itemIndexPath.row];
-    [self.tableView reloadRowsAtIndexPaths:@[ itemIndexPath ]
-                          withRowAnimation:UITableViewRowAnimationAutomatic];
-  } else if (observableBoolean == _contentSuggestionForSupervisedUsersEnabled) {
-    if ([_contentSuggestionForSupervisedUsersEnabled value]) {
-      // Reset Feed settings back on the content suggestion policy.
-      [self booleanDidChange:_contentSuggestionPolicyEnabled];
-      return;
-    }
-    NSInteger itemTypeToRemove;
-    if ([self.tableViewModel hasItem:self.feedSettingsItem]) {
-      itemTypeToRemove = SettingsItemTypeArticlesForYou;
-    } else if ([self.tableViewModel hasItem:self.managedFeedSettingsItem]) {
-      itemTypeToRemove = SettingsItemTypeManagedArticlesForYou;
-    } else {
-      return;
-    }
-    [self.tableViewModel removeItemWithType:itemTypeToRemove
-                  fromSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
-    NSUInteger index = [self.tableViewModel
-        sectionForSectionIdentifier:SettingsSectionIdentifierAdvanced];
-    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:index]
-                  withRowAnimation:UITableViewRowAnimationAutomatic];
   } else if (observableBoolean == _bottomOmniboxEnabled) {
     _addressBarPreferenceItem.detailText =
         [_bottomOmniboxEnabled value]
@@ -2234,6 +2147,66 @@
   }
 }
 
+#pragma mark - DiscoverFeedVisibilityObserver
+
+- (void)didChangeDiscoverFeedEligibility {
+  TableViewItem* itemToRemove;
+  TableViewItem* itemToAdd;
+
+  DiscoverFeedEligibility eligibility =
+      _discoverFeedVisibilityBrowserAgent->GetEligibility();
+  switch (eligibility) {
+    case DiscoverFeedEligibility::kEligible:
+      itemToRemove = self.managedFeedSettingsItem;
+      itemToAdd = self.feedSettingsItem;
+      break;
+    case DiscoverFeedEligibility::kDisabledByEnterprisePolicy:
+      itemToRemove = self.feedSettingsItem;
+      itemToAdd = self.managedFeedSettingsItem;
+      break;
+    case DiscoverFeedEligibility::kIneligibleReasonUnknown:
+      if ([self.tableViewModel hasItem:self.feedSettingsItem]) {
+        itemToRemove = self.feedSettingsItem;
+      } else {
+        itemToRemove = self.managedFeedSettingsItem;
+      }
+      break;
+  }
+
+  if (![self.tableViewModel hasItem:itemToRemove]) {
+    if (itemToAdd) {
+      // User used to be ineligible for the feed for unknown reasons (e.g.,
+      // non-Google in DSE) and then becomes eligible. Since there is no
+      // sustainable way to retrieve the index to insert the item, just reload
+      // the whole table.
+      [self reloadData];
+    }
+    return;
+  }
+
+  // Simply remove the feed item, or replace it by a new feed item.
+  NSIndexPath* itemIndexPath =
+      [self.tableViewModel indexPathForItem:itemToRemove];
+  [self.tableViewModel removeItemWithType:itemToRemove.type
+                fromSectionWithIdentifier:SettingsSectionIdentifierAdvanced];
+  if (itemToAdd) {
+    [self.tableViewModel insertItem:itemToAdd
+            inSectionWithIdentifier:SettingsSectionIdentifierAdvanced
+                            atIndex:itemIndexPath.row];
+  }
+  NSUInteger index = [self.tableViewModel
+      sectionForSectionIdentifier:SettingsSectionIdentifierAdvanced];
+  [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:index]
+                withRowAnimation:UITableViewRowAnimationAutomatic];
+}
+
+- (void)didChangeDiscoverFeedVisibility {
+  if ([self.tableViewModel hasItem:self.feedSettingsItem]) {
+    self.feedSettingsItem.on = _discoverFeedVisibilityBrowserAgent->IsEnabled();
+    [self reconfigureCellsForItems:@[ self.feedSettingsItem ]];
+  }
+}
+
 #pragma mark - PasswordCheckObserver
 
 - (void)passwordCheckStateDidChange:(PasswordCheckState)state {
diff --git a/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller_unittest.mm b/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller_unittest.mm
index 3486c52..bcf7f21 100644
--- a/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller_unittest.mm
+++ b/ios/chrome/browser/settings/ui_bundled/settings_table_view_controller_unittest.mm
@@ -26,6 +26,7 @@
 #import "components/variations/service/variations_service_client.h"
 #import "components/variations/synthetic_trial_registry.h"
 #import "ios/chrome/browser/authentication/ui_bundled/cells/table_view_account_item.h"
+#import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
 #import "ios/chrome/browser/passwords/model/ios_chrome_profile_password_store_factory.h"
 #import "ios/chrome/browser/photos/model/photos_service_factory.h"
 #import "ios/chrome/browser/policy/model/policy_util.h"
@@ -188,6 +189,7 @@
 
     // Prepare mocks for PushNotificationClient dependency
     browser_ = std::make_unique<TestBrowser>(profile_.get());
+    DiscoverFeedVisibilityBrowserAgent::CreateForBrowser(browser_.get());
 
     sync_service_ = static_cast<syncer::TestSyncService*>(
         SyncServiceFactory::GetForProfile(profile_.get()));
diff --git a/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.h b/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.h
index 95aea8e..e9bb730 100644
--- a/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.h
+++ b/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.h
@@ -31,6 +31,10 @@
 // The text for the secondary action. Must be set before the view is loaded.
 @property(nonatomic, copy) NSString* secondaryActionString;
 
+// Controls if the navigation bar dismiss button is available in the view.
+// Default is NO. Must be set before the view is loaded.
+@property(nonatomic) BOOL showDismissBarButton;
+
 // The name of the animation resource to be used in light mode. Must be set
 // before the view is loaded.
 @property(nonatomic, copy) NSString* animationName;
diff --git a/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.mm b/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.mm
index d343712..843e743 100644
--- a/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.mm
+++ b/ios/chrome/browser/tips_notifications/ui/animated_promo_view_controller.mm
@@ -45,6 +45,9 @@
 
   // TopAnchor constraint for `alertScreen`.
   NSLayoutConstraint* _alertScreenTopAnchorConstraint;
+
+  // The navigation bar for the promo view.
+  UINavigationBar* _navigationBar;
 }
 
 #pragma mark - UIViewController
@@ -57,6 +60,9 @@
   alertScreen.subtitleString = _subtitleString;
   alertScreen.primaryActionString = _primaryActionString;
   alertScreen.secondaryActionString = _secondaryActionString;
+  // The `alertScreen` itself should not show its own dismiss button, as
+  // `AnimatedPromoViewController` will manage one for the whole view.
+  alertScreen.showDismissBarButton = NO;
   alertScreen.actionHandler = _actionHandler;
   alertScreen.shouldFillInformationStack = YES;
   alertScreen.underTitleView = _underTitleView;
@@ -74,6 +80,16 @@
   [super viewDidLoad];
 
   self.view.backgroundColor = [UIColor colorNamed:kBackgroundColor];
+
+  if (self.showDismissBarButton && ![self isAnyNavigationBarVisible]) {
+    [self setupNavigationBar];
+  } else if (self.showDismissBarButton && [self isAnyNavigationBarVisible]) {
+    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
+        initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+                             target:self
+                             action:@selector(didTapDismissButton)];
+  }
+
   if (_animationViewWrapper) {
     [self configureAndLayoutAnimationView];
   }
@@ -103,6 +119,60 @@
 
 #pragma mark - Private
 
+// Helper to determine if any navigation bar is currently visible.
+- (BOOL)isAnyNavigationBarVisible {
+  if (_navigationBar) {
+    return YES;
+  }
+
+  if (self.navigationController.navigationBar &&
+      !self.navigationController.navigationBarHidden) {
+    return YES;
+  }
+
+  return NO;
+}
+
+// Sets up the navigation bar with a "Done" button.
+- (void)setupNavigationBar {
+  CHECK(self.showDismissBarButton);
+  CHECK(!self.navigationController);
+
+  _navigationBar = [[UINavigationBar alloc] init];
+  _navigationBar.translatesAutoresizingMaskIntoConstraints = NO;
+  _navigationBar.translucent = NO;
+  [_navigationBar setShadowImage:[[UIImage alloc] init]];
+  _navigationBar.barTintColor = [UIColor colorNamed:kBackgroundColor];
+
+  UINavigationItem* navigationItem = [[UINavigationItem alloc] init];
+  UIBarButtonItem* doneButton = [[UIBarButtonItem alloc]
+      initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+                           target:self
+                           action:@selector(didTapDismissButton)];
+  navigationItem.rightBarButtonItem = doneButton;
+
+  [_navigationBar setItems:@[ navigationItem ]];
+
+  [self.view addSubview:_navigationBar];
+
+  [NSLayoutConstraint activateConstraints:@[
+    [_navigationBar.topAnchor
+        constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor],
+    [_navigationBar.leadingAnchor
+        constraintEqualToAnchor:self.view.leadingAnchor],
+    [_navigationBar.trailingAnchor
+        constraintEqualToAnchor:self.view.trailingAnchor],
+  ]];
+}
+
+// Action for the "Done" button in the navigation bar.
+- (void)didTapDismissButton {
+  if ([self.actionHandler
+          respondsToSelector:@selector(confirmationAlertDismissAction)]) {
+    [self.actionHandler confirmationAlertDismissAction];
+  }
+}
+
 // Creates and returns the LottieAnimation view for the `animationAssetName`.
 - (id<LottieAnimation>)createAnimation:(NSString*)animationAssetName {
   LottieAnimationConfiguration* config =
@@ -116,19 +186,28 @@
 - (void)configureAlertScreen {
   DCHECK(_alertScreen);
   _alertScreen.imageHasFixedSize = YES;
+  // The `alertScreen` itself should not show its own dismiss button, as
+  // `AnimatedPromoViewController` will manage one for the whole view.
   _alertScreen.showDismissBarButton = NO;
   _alertScreen.titleTextStyle = UIFontTextStyleTitle2;
   _alertScreen.topAlignedLayout = YES;
   _alertScreen.customSpacing = kCustomSpacing;
 
-  if ([self shouldShowAnimation]) {
-    _alertScreen.customSpacingBeforeImageIfNoNavigationBar =
-        kCustomSpacingAtTopIfNoNavigationBar;
-  } else {
-    _alertScreen.customSpacingAfterImage =
-        kCustomSpacingAfterImageWithoutAnimation;
+  CGFloat spacingAfterImage = kCustomSpacing;
+
+  if (![self shouldShowAnimation]) {
+    spacingAfterImage = kCustomSpacingAfterImageWithoutAnimation;
   }
 
+  CGFloat spacingBeforeImage = 0;
+
+  if (![self isAnyNavigationBarVisible]) {
+    spacingBeforeImage = kCustomSpacingAtTopIfNoNavigationBar;
+  }
+
+  _alertScreen.customSpacingBeforeImageIfNoNavigationBar = spacingBeforeImage;
+  _alertScreen.customSpacingAfterImage = spacingAfterImage;
+
   [self addChildViewController:_alertScreen];
   [self.view addSubview:_alertScreen.view];
 
diff --git a/ios/chrome/browser/tips_notifications/ui/search_what_you_see_promo_view_controller.mm b/ios/chrome/browser/tips_notifications/ui/search_what_you_see_promo_view_controller.mm
index d66cd9e..1a5aeb0 100644
--- a/ios/chrome/browser/tips_notifications/ui/search_what_you_see_promo_view_controller.mm
+++ b/ios/chrome/browser/tips_notifications/ui/search_what_you_see_promo_view_controller.mm
@@ -28,6 +28,7 @@
 - (void)viewDidLoad {
   self.animationName = kAnimationName;
   self.animationNameDarkMode = kAnimationNameDarkMode;
+
   self.titleString =
       l10n_util::GetNSString(IDS_IOS_SEARCH_WHAT_YOU_SEE_TIPS_PROMO_TITLE);
   self.subtitleString =
@@ -35,6 +36,8 @@
   self.secondaryActionString = l10n_util::GetNSString(
       IDS_IOS_SEARCH_WHAT_YOU_SEE_TIPS_PROMO_SHOW_ME_HOW_ACTION);
 
+  self.showDismissBarButton = YES;
+
   [super viewDidLoad];
 
   self.view.accessibilityIdentifier = kSearchWhatYouSeePromoAXID;
diff --git a/ios/web/public/test/javascript_test.h b/ios/web/public/test/javascript_test.h
index da108e2..6e6e65760 100644
--- a/ios/web/public/test/javascript_test.h
+++ b/ios/web/public/test/javascript_test.h
@@ -19,9 +19,9 @@
   JavascriptTest();
   ~JavascriptTest() override;
 
-  // Loads `html` into `web_view()` and waits for the web view to finish
-  // loading.
-  bool LoadHtml(NSString* html);
+  // Loads the `html` content at `base_url` into `web_view()` and waits for
+  // the web view to finish loading.
+  bool LoadHtml(NSString* html, std::optional<GURL> base_url = std::nullopt);
 
   // Loads `url` into `web_view()` and waits for the web view to finish
   // loading.
diff --git a/ios/web/public/test/javascript_test.mm b/ios/web/public/test/javascript_test.mm
index 4824d67..4957767 100644
--- a/ios/web/public/test/javascript_test.mm
+++ b/ios/web/public/test/javascript_test.mm
@@ -17,8 +17,9 @@
 }
 JavascriptTest::~JavascriptTest() {}
 
-bool JavascriptTest::LoadHtml(NSString* html) {
-  return web::test::LoadHtml(web_view_, html, nil);
+bool JavascriptTest::LoadHtml(NSString* html, std::optional<GURL> base_url) {
+  return web::test::LoadHtml(web_view_, html,
+                             base_url ? net::NSURLWithGURL(*base_url) : nil);
 }
 
 bool JavascriptTest::LoadUrl(const GURL& url) {
diff --git a/ios_internal b/ios_internal
index e0b6f45..a9cfe99 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit e0b6f45ac8a50f8d5ab53cf937d488b25fd4db8c
+Subproject commit a9cfe99eaefefc198a0f3dc27d3eb6a0980ac237
diff --git a/media/audio/application_loopback_device_helper.cc b/media/audio/application_loopback_device_helper.cc
index 673fe1f..a0cf48b9 100644
--- a/media/audio/application_loopback_device_helper.cc
+++ b/media/audio/application_loopback_device_helper.cc
@@ -19,7 +19,7 @@
 }
 
 uint32_t MEDIA_EXPORT
-GetApplicationIdFromApplicationLoopbackDeviceId(const std::string& device_id) {
+GetApplicationIdFromApplicationLoopbackDeviceId(std::string_view device_id) {
   CHECK(AudioDeviceDescription::IsApplicationLoopbackDevice(device_id));
 
   size_t colon_pos = device_id.find(':');
diff --git a/media/audio/application_loopback_device_helper.h b/media/audio/application_loopback_device_helper.h
index 1d1e4ecfe..2ae2623 100644
--- a/media/audio/application_loopback_device_helper.h
+++ b/media/audio/application_loopback_device_helper.h
@@ -16,7 +16,7 @@
 CreateApplicationLoopbackDeviceId(const uint32_t application_id);
 
 uint32_t MEDIA_EXPORT
-GetApplicationIdFromApplicationLoopbackDeviceId(const std::string& device_id);
+GetApplicationIdFromApplicationLoopbackDeviceId(std::string_view device_id);
 
 }  // namespace media
 
diff --git a/media/audio/audio_device_description.cc b/media/audio/audio_device_description.cc
index 574e7e02..d5bb259 100644
--- a/media/audio/audio_device_description.cc
+++ b/media/audio/audio_device_description.cc
@@ -85,11 +85,6 @@
 }
 
 // static
-bool AudioDeviceDescription::IsLoopbackAllDevices(std::string_view device_id) {
-  return device_id == kLoopbackAllDevicesId;
-}
-
-// static
 bool AudioDeviceDescription::UseSessionIdToSelectDevice(
     const base::UnguessableToken& session_id,
     std::string_view device_id) {
diff --git a/media/audio/audio_device_description.h b/media/audio/audio_device_description.h
index 7a5d750..28aba9e 100644
--- a/media/audio/audio_device_description.h
+++ b/media/audio/audio_device_description.h
@@ -38,7 +38,7 @@
   static const char kLoopbackWithMuteDeviceId[];
 
   // Similar to |kLoopbackInputDeviceId|, but without audio from Chrome.
-  // Only supported on ChromeOS.
+  // Only supported on Windows, Mac and ChromeOS.
   static const char kLoopbackWithoutChromeId[];
 
   // Similar to |kLoopbackInputDeviceId|, but instead of capturing audio being
@@ -60,7 +60,7 @@
 
   // Returns true if |device_id| represents a loopback audio capture device.
   // Note that this will not work if |device_id| is hashed, which may be the
-  // case in the Renderer.
+  // case in the renderer.
   static bool IsLoopbackDevice(std::string_view device_id);
 
   // Returns true if |device_id| represents an application loopback audio
@@ -69,10 +69,6 @@
   // the Renderer.
   static bool IsApplicationLoopbackDevice(std::string_view device_id);
 
-  // Returns true if |device_id| represents an "all output devices" loopback
-  // capture device.
-  static bool IsLoopbackAllDevices(std::string_view device_id);
-
   // If |device_id| is not empty, |session_id| should be ignored and the output
   // device should be selected basing on |device_id|.
   // If |device_id| is empty and |session_id| is nonzero, output device
diff --git a/media/audio/audio_device_description_unittest.cc b/media/audio/audio_device_description_unittest.cc
index 12a9025..a87a63d 100644
--- a/media/audio/audio_device_description_unittest.cc
+++ b/media/audio/audio_device_description_unittest.cc
@@ -124,19 +124,4 @@
       AudioDeviceDescription::kDefaultDeviceId));
 }
 
-TEST(AudioDeviceDescriptionTest, IsLoopbackAllDevices) {
-  EXPECT_TRUE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kLoopbackAllDevicesId));
-  EXPECT_FALSE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kDefaultDeviceId));
-  EXPECT_FALSE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kCommunicationsDeviceId));
-  EXPECT_FALSE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kLoopbackInputDeviceId));
-  EXPECT_FALSE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kLoopbackWithMuteDeviceId));
-  EXPECT_FALSE(AudioDeviceDescription::IsLoopbackAllDevices(
-      AudioDeviceDescription::kApplicationLoopbackDeviceId));
-}
-
 }  // namespace media
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc
index 6ff0a11..53f13dd 100644
--- a/media/audio/win/audio_low_latency_input_win.cc
+++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -27,6 +27,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/process/process.h"
 #include "base/strings/strcat.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -67,6 +68,15 @@
 constexpr base::TimeDelta kMaxAbsTimeDiffBeforeSwithingToFakeTimestamps =
     base::Milliseconds(500);
 
+// The System Process (PID 4) on Windows is a special kernel-level process that
+// represents the Windows kernel itself. It is not a user-mode process and it
+// does not host any executable code or services in the way normal processes do.
+// Unlike most other processes, which get a dynamically assigned PID when they
+// start, the System process consistently has PID 4 and by excluding all PIDs
+// but this one we can capture all audio (not tied to any particular audio
+// device) being played out.
+constexpr uint32_t kWindowsSystemProcessId = 4;
+
 // Converts a COM error into a human-readable string.
 std::string ErrorToString(HRESULT hresult) {
   return CoreAudioUtil::ErrorToString(hresult);
@@ -207,6 +217,37 @@
   return *activate_audio_interface_async_callback;
 }
 
+bool IsProcessLoopbackDevice(std::string_view device_id) {
+  return device_id == AudioDeviceDescription::kLoopbackWithoutChromeId ||
+         device_id == AudioDeviceDescription::kLoopbackAllDevicesId ||
+         AudioDeviceDescription::IsApplicationLoopbackDevice(device_id);
+}
+
+uint32_t GetCurrentProcessId() {
+  return static_cast<uint32_t>(base::Process::Current().Pid());
+}
+
+uint32_t GetTargetProcessId(std::string_view device_id) {
+  if (AudioDeviceDescription::IsApplicationLoopbackDevice(device_id)) {
+    return GetApplicationIdFromApplicationLoopbackDeviceId(device_id);
+  }
+
+  if (device_id == AudioDeviceDescription::kLoopbackWithoutChromeId) {
+    return GetCurrentProcessId();
+  }
+
+  CHECK(AudioDeviceDescription::IsLoopbackDevice(device_id));
+  return kWindowsSystemProcessId;
+}
+
+PROCESS_LOOPBACK_MODE GetProcessLoopbackMode(std::string_view device_id) {
+  if (AudioDeviceDescription::IsApplicationLoopbackDevice(device_id)) {
+    return PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE;
+  }
+  CHECK(AudioDeviceDescription::IsLoopbackDevice(device_id));
+  return PROCESS_LOOPBACK_MODE_EXCLUDE_TARGET_PROCESS_TREE;
+}
+
 }  // namespace
 
 // Counts how often an OS capture callback reports a data discontinuity and logs
@@ -589,8 +630,7 @@
               static_cast<void (WASAPIAudioInputStream::*)(std::string)>(
                   &WASAPIAudioInputStream::SendLogMessage),
               base::Unretained(this)))),
-      is_application_loopback_capture_(
-          AudioDeviceDescription::IsApplicationLoopbackDevice(device_id)) {
+      is_process_loopback_capture_(IsProcessLoopbackDevice(device_id)) {
   DCHECK(manager_);
   DCHECK(!device_id_.empty());
   DCHECK(!log_callback_.is_null());
@@ -684,9 +724,9 @@
   }
 
   HRESULT hr = S_OK;
-  // Application loopback captures do not get audio from an endpoint device, but
+  // Process loopback captures do not get audio from an endpoint device, but
   // rather from an audio interface.
-  if (!is_application_loopback_capture_) {
+  if (!is_process_loopback_capture_) {
     // Obtain a reference to the IMMDevice interface of the capturing device
     // with the specified unique identifier or role which was set at
     // construction.
@@ -698,9 +738,9 @@
   }
 
   // Activate the AudioClient interface. This is done differently depending on
-  // whether the device is an application device or not. For application
-  // devices, a special activation method must be used to activate the audio
-  // client asynchronously.
+  // whether the device is a process loopback device or not. For process
+  // loopback devices, a special activation method must be used to activate the
+  // audio client asynchronously.
   hr = ActivateAudioClientInterface();
   if (FAILED(hr)) {
     open_result_ = OPEN_RESULT_ACTIVATION_FAILED;
@@ -708,8 +748,8 @@
     return OpenOutcome::kFailed;
   }
 
-  // Application loopback captures do not get audio from an endpoint device.
-  if (!is_application_loopback_capture_) {
+  // Process loopback captures do not get audio from an endpoint device.
+  if (!is_process_loopback_capture_) {
     // Check if raw audio processing is supported for the selected capture
     // device.
     raw_processing_supported_ = RawProcessingSupported();
@@ -806,12 +846,12 @@
   // using SetAutomaticGainControl().
   StartAgc();
 
-  // Waiting for the first audio sample ready event to be signaled is only
-  // needed for application devices. We need to do it because, due to a Windows
-  // bug, the value returned by GetBufferSize() can not be trusted until we get
-  // the first sample.
-  // https://crbug.com/411452039
-  if (!is_application_loopback_capture_) {
+  // TODO(https://crbug.com/411452039): Waiting for the first audio sample ready
+  // event to be signaled is only needed for process loopback devices. We need
+  // to do it because, due to a Windows bug, the value returned by
+  // IAudioClient::GetBufferSize() can not be trusted until we get the first
+  // sample.
+  if (!is_process_loopback_capture_) {
     CreateFifoIfNeeded();
   }
 
@@ -1280,7 +1320,7 @@
     // was monotonic.
     if (!last_capture_time_.is_null()) {
       const auto delta_ts = capture_time - last_capture_time_;
-      if (is_application_loopback_capture_) {
+      if (is_process_loopback_capture_) {
         DCHECK_EQ(device_position, 0u);
       } else {
         DCHECK_GT(device_position, 0u);
@@ -1375,7 +1415,7 @@
 }
 
 HRESULT WASAPIAudioInputStream::SetCaptureDevice() {
-  DCHECK(!is_application_loopback_capture_);
+  DCHECK(!is_process_loopback_capture_);
   DCHECK_EQ(OPEN_RESULT_OK, open_result_);
   DCHECK(!endpoint_device_.Get());
   SendLogMessage("%s()", __func__);
@@ -1444,7 +1484,7 @@
 }
 
 HRESULT WASAPIAudioInputStream::ActivateAudioClientInterface() {
-  if (!is_application_loopback_capture_) {
+  if (!is_process_loopback_capture_) {
     // Obtain an IAudioClient interface for the endpoint device which enables us
     // to create and initialize an audio stream between an audio application and
     // the audio engine.
@@ -1452,20 +1492,30 @@
                                       nullptr, &audio_client_);
   }
 
+  CHECK(is_process_loopback_capture_);
   // Detailed information about AUDIOCLIENT_ACTIVATION_PARAMS can be found at:
   // https://learn.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/ns-audioclientactivationparams-audioclient_activation_params
   AUDIOCLIENT_ACTIVATION_PARAMS params = {
       //  Specify the process capture.
       .ActivationType = AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK,
+      // The following combinations of loopback device ID, target process ID and
+      // process loopback mode are supported:
+      //
+      // | --------------|------------------|-----------------------------|
+      // |   device_id   | TargetProcessId  |     ProcessLoopbackMode     |
+      // | --------------|------------------|-----------------------------|
+      // | Application   | application PID  | INCLUDE_TARGET_PROCESS_TREE |
+      // | WithoutChrome | Chrome audio PID | EXCLUDE_TARGET_PROCESS_TREE |
+      // | AllDevices    |       4          | EXCLUDE_TARGET_PROCESS_TREE |
+      // | --------------|------------------|-----------------------------|
       .ProcessLoopbackParams =
           {
-              .TargetProcessId =
-                  GetApplicationIdFromApplicationLoopbackDeviceId(device_id_),
-              // Specify that this process capture should capture audio coming
-              // from all the processes in the tree in which `TargetProcessId`
-              // is the tree root.
-              .ProcessLoopbackMode =
-                  PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE,
+              // Set the target process ID based on the selected loopback audio
+              // capture device.
+              .TargetProcessId = GetTargetProcessId(device_id_),
+              // The captured audio either includes or excludes audio rendered
+              // by `TargetProcessId` and its child processes.
+              .ProcessLoopbackMode = GetProcessLoopbackMode(device_id_),
           },
   };
   PROPVARIANT propvariant = {
@@ -1492,7 +1542,7 @@
 }
 
 bool WASAPIAudioInputStream::RawProcessingSupported() {
-  DCHECK(!is_application_loopback_capture_);
+  DCHECK(!is_process_loopback_capture_);
   DCHECK(endpoint_device_.Get());
   // Check if System.Devices.AudioDevice.RawProcessingSupported can be found
   // and queried in the Windows Property System. It corresponds to raw
@@ -1595,7 +1645,7 @@
   // IAudioClient::GetMixFormat nor IAudioClient::IsFormatSupported are
   // supported. We are free to pick whichever format we want and can pass it
   // into the call to IAudioClient::Initialize.
-  if (is_application_loopback_capture_) {
+  if (is_process_loopback_capture_) {
     return true;
   }
 
@@ -1712,7 +1762,7 @@
 
   // Use event-driven mode for regular input devices and for loopback.
   DWORD flags = AUDCLNT_STREAMFLAGS_EVENTCALLBACK;
-  if (!is_application_loopback_capture_) {
+  if (!is_process_loopback_capture_) {
     // Application loopback capture does not support the
     // AUDCLNT_STREAMFLAGS_NOPERSIST flag.
     flags |= AUDCLNT_STREAMFLAGS_NOPERSIST;
@@ -1793,7 +1843,7 @@
   // WASAPI does not allow the AudioClient to control the process loopback
   // device volume. The AudioEndpointVolume interface is not available for
   // process loopback devices.
-  if (!is_application_loopback_capture_) {
+  if (!is_process_loopback_capture_) {
     // Obtain a reference to the ISimpleAudioVolume interface which enables
     // us to control the master volume level of an audio session.
     hr = audio_client_->GetService(IID_PPV_ARGS(&simple_audio_volume_));
diff --git a/media/audio/win/audio_low_latency_input_win.h b/media/audio/win/audio_low_latency_input_win.h
index 1452cb9..482fd72 100644
--- a/media/audio/win/audio_low_latency_input_win.h
+++ b/media/audio/win/audio_low_latency_input_win.h
@@ -369,12 +369,13 @@
   // Will be set to nullptr during construction if AEC is not supported.
   std::unique_ptr<EchoCancellationConfig> aec_config_;
 
-  // It's is possible to check this using
-  // AudioDeviceDescription::IsApplicationLoopbackDevice. However, we need to
-  // perform this check every time we need to pull data from the audio engine,
-  // which can be expensive. Checking the variable is cheaper than calling the
-  // function.
-  const bool is_application_loopback_capture_;
+  // Process loopback captures do not get audio from an endpoint device but
+  // from a specified process IDs instead. It's is possible to check this using
+  // an internal helper method called IsProcessLoopbackDevice. However, we need
+  // to perform this check every time we need to pull data from the audio
+  // engine, which can be expensive. Checking the variable is cheaper than
+  // calling the function.
+  const bool is_process_loopback_capture_;
 
   // Timeout period for waiting on the OS to activate the audio interface for
   // application loopback capture.
diff --git a/media/audio/win/audio_low_latency_input_win_unittest.cc b/media/audio/win/audio_low_latency_input_win_unittest.cc
index f20f6852..cb15f8c0 100644
--- a/media/audio/win/audio_low_latency_input_win_unittest.cc
+++ b/media/audio/win/audio_low_latency_input_win_unittest.cc
@@ -12,6 +12,7 @@
 
 #include <memory>
 
+#include "base/check_deref.h"
 #include "base/compiler_specific.h"
 #include "base/containers/span.h"
 #include "base/environment.h"
@@ -71,6 +72,15 @@
     task_runner->PostTask(FROM_HERE, quit_closure);
 }
 
+void FlushTaskRunner(scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+  if (!task_runner->BelongsToCurrentThread()) {
+    base::RunLoop run_loop;
+    task_runner->PostTaskAndReply(FROM_HERE, base::DoNothing(),
+                                  run_loop.QuitClosure());
+    run_loop.Run();
+  }
+}
+
 class MockAudioInputCallback : public AudioInputStream::AudioInputCallback {
  public:
   MOCK_METHOD4(OnData,
@@ -378,7 +388,9 @@
   WinAudioInputTest() {
     audio_manager_ =
         AudioManager::CreateForTesting(std::make_unique<TestAudioThread>());
-    base::RunLoop().RunUntilIdle();
+    // Ensure that the AudioManager's thread (TestAudioThread) has processed
+    // its initial tasks posted during AudioManager::CreateForTesting.
+    FlushTaskRunner(audio_manager_->GetTaskRunner());
   }
   ~WinAudioInputTest() override { audio_manager_->Shutdown(); }
 
@@ -810,13 +822,23 @@
   EXPECT_FALSE(sink.error());
 }
 
-class WinAudioApplicationLoopbackTest : public WinAudioInputTest {
+class WinAudioProcessLoopbackTest
+    : public ::testing::TestWithParam<std::string> {
  public:
-  WinAudioApplicationLoopbackTest()
-      : device_info_accessor_(audio_manager_.get()) {
+  WinAudioProcessLoopbackTest()
+      : audio_manager_(AudioManager::CreateForTesting(
+            std::make_unique<TestAudioThread>())),
+        device_info_accessor_(audio_manager_.get()) {
+    // Ensure that the AudioManager's thread (TestAudioThread) has processed
+    // its initial tasks posted during AudioManager::CreateForTesting.
+    FlushTaskRunner(audio_manager_->GetTaskRunner());
     // Defer stream creation and parameter fetching to SetUp.
   }
 
+  ~WinAudioProcessLoopbackTest() override {
+    CHECK_DEREF(audio_manager_.get()).Shutdown();
+  }
+
   void SetUp() override {
     // Abort early if requirements are not met.
     bool prerequisites_met = CoreAudioUtil::IsSupported();
@@ -829,14 +851,16 @@
   }
 
   void CreateParameters() {
-    params_ = device_info_accessor_.GetInputStreamParameters(
-        AudioDeviceDescription::kApplicationLoopbackDeviceId);
+    params_ = device_info_accessor_.GetInputStreamParameters(GetParam());
   }
 
   void CreateStream() {
+    std::string device_id =
+        GetParam() == AudioDeviceDescription::kApplicationLoopbackDeviceId
+            ? kMockApplicationLoopbackDeviceId
+            : GetParam();
     stream_.Reset(audio_manager_->MakeAudioInputStream(
-        params_, kMockApplicationLoopbackDeviceId,
-        base::BindRepeating(&LogCallbackDummy)));
+        params_, device_id, base::BindRepeating(&LogCallbackDummy)));
     EXPECT_THAT(stream_.get(), NotNull());
   }
 
@@ -849,24 +873,26 @@
   }
 
  protected:
+  base::test::TaskEnvironment task_environment_;
+  std::unique_ptr<AudioManager> audio_manager_;
   AudioDeviceInfoAccessorForTests device_info_accessor_;
   AudioParameters params_;
   ScopedAudioInputStream stream_;
   FakeWinWASAPIEnvironment fake_wasapi_environment_;
 };
 
-TEST_F(WinAudioApplicationLoopbackTest, OpenStreamSuccess) {
+TEST_P(WinAudioProcessLoopbackTest, OpenStreamSuccess) {
   ASSERT_THAT(stream_->Open(), Eq(AudioInputStream::OpenOutcome::kSuccess));
 }
 
-TEST_F(WinAudioApplicationLoopbackTest,
+TEST_P(WinAudioProcessLoopbackTest,
        OpenStreamActivateAudioInterfaceAsyncFailed) {
   fake_wasapi_environment_.SimulateError(
       WASAPITestErrorCode::kActivateAudioInterfaceAsyncFailed);
   EXPECT_EQ(stream_->Open(), AudioInputStream::OpenOutcome::kFailed);
 }
 
-TEST_F(WinAudioApplicationLoopbackTest,
+TEST_P(WinAudioProcessLoopbackTest,
        OpenInputStreamActivateAudioInterfaceAsyncOperationTimedOut) {
   fake_wasapi_environment_.SimulateError(
       WASAPITestErrorCode::kAudioClientActivationTimeout);
@@ -876,7 +902,7 @@
   EXPECT_EQ(stream_->Open(), AudioInputStream::OpenOutcome::kFailed);
 }
 
-TEST_F(WinAudioApplicationLoopbackTest,
+TEST_P(WinAudioProcessLoopbackTest,
        OpenStreamAudioClientActivationAsyncOperationFailed) {
   fake_wasapi_environment_.SimulateError(
       WASAPITestErrorCode::kAudioClientActivationAsyncOperationFailed);
@@ -886,13 +912,13 @@
   EXPECT_EQ(stream_->Open(), AudioInputStream::OpenOutcome::kFailed);
 }
 
-TEST_F(WinAudioApplicationLoopbackTest, OpenStreamAudioClientActivationFailed) {
+TEST_P(WinAudioProcessLoopbackTest, OpenStreamAudioClientActivationFailed) {
   fake_wasapi_environment_.SimulateError(
       WASAPITestErrorCode::kAudioClientActivationFailed);
   EXPECT_EQ(stream_->Open(), AudioInputStream::OpenOutcome::kFailed);
 }
 
-TEST_F(WinAudioApplicationLoopbackTest, SuccessfulCapture) {
+TEST_P(WinAudioProcessLoopbackTest, SuccessfulCapture) {
   ASSERT_THAT(stream_->Open(), Eq(AudioInputStream::OpenOutcome::kSuccess));
 
   FakeAudioInputCallback sink;
@@ -907,6 +933,22 @@
   EXPECT_FALSE(sink.error());
 }
 
+INSTANTIATE_TEST_SUITE_P(
+    ProcessLoopbackDevices,
+    WinAudioProcessLoopbackTest,
+    ::testing::Values(AudioDeviceDescription::kApplicationLoopbackDeviceId,
+                      AudioDeviceDescription::kLoopbackWithoutChromeId,
+                      AudioDeviceDescription::kLoopbackAllDevicesId),
+    [](const testing::TestParamInfo<WinAudioProcessLoopbackTest::ParamType>&
+           info) {
+      return info.param == AudioDeviceDescription::kApplicationLoopbackDeviceId
+                 ? "ApplicationLoopback"
+                 : (info.param ==
+                            AudioDeviceDescription::kLoopbackWithoutChromeId
+                        ? "LoopbackWithoutChromeId"
+                        : "LoopbackAllDevices");
+    });
+
 // This test is intended for manual tests and should only be enabled
 // when it is required to store the captured data on a local file.
 // By default, GTest will print out YOU HAVE 1 DISABLED TEST.
diff --git a/media/audio/win/core_audio_util_win.cc b/media/audio/win/core_audio_util_win.cc
index 55cc0fe8..6302ff31 100644
--- a/media/audio/win/core_audio_util_win.cc
+++ b/media/audio/win/core_audio_util_win.cc
@@ -360,7 +360,6 @@
              << mix_format->nChannels;
     channel_layout = GuessChannelLayout(mix_format->nChannels);
   }
-  DVLOG(1) << "channel layout: " << ChannelLayoutToString(channel_layout);
 
   return channel_layout;
 }
@@ -553,8 +552,6 @@
         default_frames_per_buffer = default_period_frames;
         frames_per_buffer = default_period_frames;
       }
-      DVLOG(1) << "IAudioClient3 => min_period_frames: " << min_period_frames;
-      DVLOG(1) << "IAudioClient3 => frames_per_buffer: " << frames_per_buffer;
     }
 
     // If the call to GetSharedModeEnginePeriod() fails we fall back to
@@ -1058,8 +1055,8 @@
   // Loopback capture audio streams must be input streams. If an output device
   // is requested for a loopback device, the default output device will be used
   // instead. See https://crbug.com/956526 for more details.
-  // TODO(crbug.com/40947205): figure out which parameters to use for
-  // application loopback capture.
+  // TODO(crbug.com/40947205): figure out which parameters to use for process
+  // loopback capture.
   DCHECK(!(is_output_device &&
            (AudioDeviceDescription::IsLoopbackDevice(device_id))));
   if (AudioDeviceDescription::IsLoopbackDevice(device_id) && is_output_device) {
diff --git a/media/audio/win/core_audio_util_win_unittest.cc b/media/audio/win/core_audio_util_win_unittest.cc
index 19b7adf5..42c1e5c5 100644
--- a/media/audio/win/core_audio_util_win_unittest.cc
+++ b/media/audio/win/core_audio_util_win_unittest.cc
@@ -12,6 +12,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <string_view>
+
 #include "base/strings/utf_string_conversions.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/test/metrics/histogram_tester.h"
@@ -392,6 +394,12 @@
   ABORT_AUDIO_TEST_IF_NOT(DevicesAvailable());
 
   EDataFlow data[] = {eRender, eCapture};
+  const char* loopbackDevices[] = {
+      AudioDeviceDescription::kLoopbackInputDeviceId,
+      AudioDeviceDescription::kLoopbackWithMuteDeviceId,
+      AudioDeviceDescription::kLoopbackWithoutChromeId,
+      AudioDeviceDescription::kLoopbackAllDevicesId,
+      AudioDeviceDescription::kApplicationLoopbackDeviceId};
 
   // Verify that the preferred audio parameters are OK for the default render
   // and capture devices.
@@ -402,14 +410,12 @@
         AudioDeviceDescription::kDefaultDeviceId, is_output_device, &params));
     EXPECT_TRUE(params.IsValid());
     if (!is_output_device) {
-      // Loopack devices are supported for input streams.
-      EXPECT_HRESULT_SUCCEEDED(CoreAudioUtil::GetPreferredAudioParameters(
-          AudioDeviceDescription::kLoopbackInputDeviceId, is_output_device,
-          &params));
-      EXPECT_TRUE(params.IsValid());
-      EXPECT_HRESULT_SUCCEEDED(CoreAudioUtil::GetPreferredAudioParameters(
-          AudioDeviceDescription::kApplicationLoopbackDeviceId,
-          is_output_device, &params));
+      for (const char* loopbackDevice : loopbackDevices) {
+        // Loopack devices are supported for input streams.
+        EXPECT_HRESULT_SUCCEEDED(CoreAudioUtil::GetPreferredAudioParameters(
+            loopbackDevice, is_output_device, &params));
+        EXPECT_TRUE(params.IsValid());
+      }
       {
         base::test::ScopedFeatureList feature_list;
         base::HistogramTester histogram_tester;
diff --git a/media/audio/win/test_support/fake_iactivate_audio_interface_async_operation.cc b/media/audio/win/test_support/fake_iactivate_audio_interface_async_operation.cc
index 9cd4ebd..e91eba2cfb 100644
--- a/media/audio/win/test_support/fake_iactivate_audio_interface_async_operation.cc
+++ b/media/audio/win/test_support/fake_iactivate_audio_interface_async_operation.cc
@@ -31,7 +31,7 @@
 
   Microsoft::WRL::ComPtr<IAudioClient> audio_client =
       Microsoft::WRL::Make<FakeIAudioClient>(
-          FakeIAudioClient::ClientType::kApplicationLoopbackDevice);
+          FakeIAudioClient::ClientType::kProcessLoopbackDevice);
   *activateResult = S_OK;
   *activatedInterface = audio_client.Detach();
   return S_OK;
diff --git a/media/audio/win/test_support/fake_iaudio_capture_client.cc b/media/audio/win/test_support/fake_iaudio_capture_client.cc
index a62ba24..b76459d5 100644
--- a/media/audio/win/test_support/fake_iaudio_capture_client.cc
+++ b/media/audio/win/test_support/fake_iaudio_capture_client.cc
@@ -31,9 +31,8 @@
   *qpc_position = qpc_position_;
 
   // Simulate a device position increment for the next call.
-  if (client_type_ !=
-      FakeIAudioClient::ClientType::kApplicationLoopbackDevice) {
-    // Application loopback uses a virtual device, which do not have a device
+  if (client_type_ != FakeIAudioClient::ClientType::kProcessLoopbackDevice) {
+    // Process loopback uses a virtual device, which do not have a device
     // position and should always return 0.
     device_position_ += *num_frames_available;
   }
diff --git a/media/audio/win/test_support/fake_iaudio_client.h b/media/audio/win/test_support/fake_iaudio_client.h
index 1e947c9f..40255be 100644
--- a/media/audio/win/test_support/fake_iaudio_client.h
+++ b/media/audio/win/test_support/fake_iaudio_client.h
@@ -26,7 +26,7 @@
           Microsoft::WRL::FtmBase,
           IAudioClient> {
  public:
-  enum class ClientType { kDefaultDevice, kApplicationLoopbackDevice };
+  enum class ClientType { kDefaultDevice, kProcessLoopbackDevice };
 
   FakeIAudioClient(ClientType client_type);
   FakeIAudioClient(const FakeIAudioClient&) = delete;
diff --git a/media/base/android/java/src/org/chromium/media/VideoAcceleratorUtil.java b/media/base/android/java/src/org/chromium/media/VideoAcceleratorUtil.java
index 2e179eb..3e00e07 100644
--- a/media/base/android/java/src/org/chromium/media/VideoAcceleratorUtil.java
+++ b/media/base/android/java/src/org/chromium/media/VideoAcceleratorUtil.java
@@ -276,6 +276,10 @@
 
                 MediaCodecInfo.EncoderCapabilities encoderCapabilities =
                         capabilities.getEncoderCapabilities();
+                if (encoderCapabilities == null) {
+                    // Shouldn't actually happen as we checked `info.isEncoder()` above.
+                    continue;
+                }
                 boolean supportsCbr =
                         encoderCapabilities.isBitrateModeSupported(
                                 MediaCodecInfo.EncoderCapabilities.BITRATE_MODE_CBR);
@@ -285,6 +289,10 @@
 
                 MediaCodecInfo.VideoCapabilities videoCapabilities =
                         capabilities.getVideoCapabilities();
+                if (videoCapabilities == null) {
+                    // Shouldn't actually happen as we are only querying video codecs.
+                    continue;
+                }
 
                 // In landscape mode, width is always larger than height, so first get the
                 // maximum width and then the height range supported for that width.
@@ -467,6 +475,10 @@
 
                 MediaCodecInfo.VideoCapabilities videoCapabilities =
                         capabilities.getVideoCapabilities();
+                if (videoCapabilities == null) {
+                    // Shouldn't actually happen as we are only querying video codecs.
+                    continue;
+                }
 
                 // In landscape mode, width is always larger than height, so first get the
                 // maximum width and then the height range supported for that width.
diff --git a/media/gpu/android/ndk_video_encode_accelerator.cc b/media/gpu/android/ndk_video_encode_accelerator.cc
index dae5ec8..084baf5 100644
--- a/media/gpu/android/ndk_video_encode_accelerator.cc
+++ b/media/gpu/android/ndk_video_encode_accelerator.cc
@@ -1053,8 +1053,11 @@
     output_dst.copy_prefix_from(config_data_);
     output_dst = output_dst.subspan(config_size);
   }
-  output_dst.copy_prefix_from(out_buffer_data.subspan(
-      static_cast<size_t>(mc_buffer_info.offset), mc_buffer_size));
+
+  // `AMediaCodec_getOutputBuffer()` called from
+  // `NdkMediaCodecWrapper::GetOutputBuffer`, already took `mc_buffer_info.offset`
+  // into account, and we don't need to do it again here.
+  output_dst.copy_prefix_from(out_buffer_data.first(mc_buffer_size));
 
   auto timestamp = RetrieveRealTimestamp(
       base::Microseconds(mc_buffer_info.presentationTimeUs));
diff --git a/media/mojo/services/media_foundation_service.cc b/media/mojo/services/media_foundation_service.cc
index 3403559..c5f42840 100644
--- a/media/mojo/services/media_foundation_service.cc
+++ b/media/mojo/services/media_foundation_service.cc
@@ -347,6 +347,8 @@
   DVLOG(2) << __func__ << ": key_system=" << key_system
            << ", is_hw_secure=" << is_hw_secure;
 
+  const auto start_time = base::TimeTicks::Now();
+
   // For hardware secure decryption, even when IsTypeSupportedInternal() says
   // it's supported, CDM creation could fail immediately. Therefore, create a
   // dummy CDM instance to detect this case.
@@ -477,6 +479,11 @@
   // session which is required by EME spec.
   capability.session_types.insert(CdmSessionType::kTemporary);
 
+  auto uma_name = "Media.EME.MediaFoundationService." +
+                  GetKeySystemNameForUMA(key_system, is_hw_secure) +
+                  ".GetCdmCapability";
+  base::UmaHistogramTimes(uma_name, base::TimeTicks::Now() - start_time);
+
   return std::move(capability);
 }
 
diff --git a/services/webnn/coreml/context_impl_coreml.h b/services/webnn/coreml/context_impl_coreml.h
index 98d616f..b74c30d 100644
--- a/services/webnn/coreml/context_impl_coreml.h
+++ b/services/webnn/coreml/context_impl_coreml.h
@@ -18,14 +18,8 @@
 namespace coreml {
 
 // `ContextImplCoreml` is created by `WebNNContextProviderImpl` and responsible
-// for creating a `GraphImplCoreml` for the CoreML backend on macOS. Mac OS
-// 13.0+ is required for model compilation
-// https://developer.apple.com/documentation/coreml/mlmodel/3931182-compilemodel
-// Mac OS 14.0+ is required to support WebNN logical binary operators because
-// the cast operator does not support casting to uint8 prior to Mac OS 14.0.
-// CoreML returns bool tensors for logical operators which need to be cast to
-// uint8 tensors to match WebNN expectations.
-class API_AVAILABLE(macos(14.0)) ContextImplCoreml final
+// for creating a `GraphImplCoreml` for the CoreML backend on macOS.
+class API_AVAILABLE(macos(14.4)) ContextImplCoreml final
     : public WebNNContextImpl {
  public:
   ContextImplCoreml(mojo::PendingReceiver<mojom::WebNNContext> receiver,
@@ -47,6 +41,7 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       CreateGraphImplCallback callback) override;
 
   void CreateTensorImpl(
diff --git a/services/webnn/coreml/context_impl_coreml.mm b/services/webnn/coreml/context_impl_coreml.mm
index 93e45866..3343a65 100644
--- a/services/webnn/coreml/context_impl_coreml.mm
+++ b/services/webnn/coreml/context_impl_coreml.mm
@@ -41,17 +41,26 @@
     WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     CreateGraphImplCallback callback) {
   GraphImplCoreml::CreateAndBuild(
       std::move(receiver), this, std::move(graph_info),
       std::move(compute_resource_info), std::move(constant_operands),
-      options().Clone(), properties(), std::move(callback));
+      std::move(constant_tensor_operands), options().Clone(), properties(),
+      std::move(callback));
 }
 
 void ContextImplCoreml::CreateTensorImpl(
     mojo::PendingAssociatedReceiver<mojom::WebNNTensor> receiver,
     mojom::TensorInfoPtr tensor_info,
     CreateTensorImplCallback callback) {
+  // TODO(crbug.com/332350952): implement constant tensors for CoreML.
+  if (tensor_info->usage.Has(MLTensorUsageFlags::kGraphConstant)) {
+    std::move(callback).Run(base::unexpected(
+        mojom::Error::New(mojom::Error::Code::kNotSupportedError,
+                          "Creation of constant tensors is not supported.")));
+    return;
+  }
   std::move(callback).Run(TensorImplCoreml::Create(std::move(receiver), this,
                                                    std::move(tensor_info)));
 }
diff --git a/services/webnn/coreml/graph_builder_coreml.cc b/services/webnn/coreml/graph_builder_coreml.cc
index c3d8119..dcd29333 100644
--- a/services/webnn/coreml/graph_builder_coreml.cc
+++ b/services/webnn/coreml/graph_builder_coreml.cc
@@ -1089,7 +1089,7 @@
 GraphBuilderCoreml::CreateAndBuild(
     const mojom::GraphInfo& graph_info,
     ContextProperties context_properties,
-    mojom::CreateContextOptions::Device device,
+    mojom::Device device,
     const base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
         constant_operands,
     const base::FilePath& working_directory) {
@@ -1404,7 +1404,7 @@
 GraphBuilderCoreml::GraphBuilderCoreml(
     const mojom::GraphInfo& graph_info,
     ContextProperties context_properties,
-    mojom::CreateContextOptions::Device device,
+    mojom::Device device,
     const base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
         constant_operands,
     base::FilePath ml_package_dir,
@@ -2041,7 +2041,7 @@
   // Rank of 5 causes crashes when not targeting `MLComputeUnitsCPUOnly`, see
   // crbug.com/391566721, so reshape to 4 to perform batch norm, then reshape
   // back.
-  if (device_ != mojom::CreateContextOptions::Device::kCpu &&
+  if (device_ != mojom::Device::kCpu &&
       input_operand_info.dimensions.size() == 5) {
     std::array<uint32_t, 4> flattened_dims{
         input_operand_info.dimensions[0], input_operand_info.dimensions[1],
@@ -3973,7 +3973,7 @@
         return (a + 1) != b;
       }) == operation.axes.end();
   if (!is_consecutive) {
-    if (device_ == mojom::CreateContextOptions::Device::kCpu) {
+    if (device_ == mojom::Device::kCpu) {
       return NewNotSupportedError(
           "Axes must be consecutive for layerNormalization on cpu.");
     }
diff --git a/services/webnn/coreml/graph_builder_coreml.h b/services/webnn/coreml/graph_builder_coreml.h
index b109a199..55512d5 100644
--- a/services/webnn/coreml/graph_builder_coreml.h
+++ b/services/webnn/coreml/graph_builder_coreml.h
@@ -116,7 +116,7 @@
   CreateAndBuild(
       const mojom::GraphInfo& graph_info,
       ContextProperties context_properties,
-      mojom::CreateContextOptions::Device,
+      mojom::Device device,
       const base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
           constant_operands,
       const base::FilePath& working_directory);
@@ -200,7 +200,7 @@
   GraphBuilderCoreml(
       const mojom::GraphInfo& graph_info,
       ContextProperties context_properties,
-      mojom::CreateContextOptions::Device device,
+      mojom::Device device,
       const base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
           constant_operands,
       base::FilePath ml_package_dir,
@@ -664,7 +664,7 @@
       constant_operands_;
 
   const ContextProperties context_properties_;
-  const mojom::CreateContextOptions::Device device_;
+  const mojom::Device device_;
 
   // Used to generate unique names for internal operands generated for WebNN
   // operations that need to be decomposed into multiple CoreML operations.
diff --git a/services/webnn/coreml/graph_impl_coreml.h b/services/webnn/coreml/graph_impl_coreml.h
index 4639621d..7d97eb0 100644
--- a/services/webnn/coreml/graph_impl_coreml.h
+++ b/services/webnn/coreml/graph_impl_coreml.h
@@ -37,9 +37,11 @@
 // https://developer.apple.com/documentation/coreml/mlmodel/3931182-compilemodel
 // Mac OS 14.0+ is required to support WebNN logical binary operators because
 // the cast operator does not support casting to uint8 prior to Mac OS 14.0.
+// Mac OS 14.4 is required to use MLComputePlan.
+// https://developer.apple.com/documentation/coreml/mlcomputeplan-1w21n
 // CoreML returns bool tensors for logical operators which need to be cast to
 // uint8 tensors to match WebNN expectations.
-class API_AVAILABLE(macos(14.0)) GraphImplCoreml final : public WebNNGraphImpl {
+class API_AVAILABLE(macos(14.4)) GraphImplCoreml final : public WebNNGraphImpl {
  public:
   static void CreateAndBuild(
       mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
@@ -48,6 +50,7 @@
       ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       mojom::CreateContextOptionsPtr context_options,
       ContextProperties context_properties,
       WebNNContextImpl::CreateGraphImplCallback callback);
@@ -90,6 +93,20 @@
     // Represents the compiled and configured Core ML model. This member must be
     // set before these params are used to construct a new `GraphImplCoreml`.
     MLModel* __strong ml_model;
+
+    std::vector<mojom::Device> devices;
+  };
+
+  // Responsible for cleaning up disk artifacts created by the CoreML model
+  // compilation process.
+  // This also dumps model files to to `switches::kWebNNCoreMlDumpModel` if
+  // provided.
+  struct ScopedModelPath {
+    explicit ScopedModelPath(base::ScopedTempDir file_dir);
+    ~ScopedModelPath();
+    ScopedModelPath(ScopedModelPath&& other) = default;
+
+    base::ScopedTempDir file_dir;
   };
 
   GraphImplCoreml(mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
@@ -121,6 +138,14 @@
       NSURL* compiled_model_url,
       NSError* error);
 
+  static void ReadComputePlan(
+      std::unique_ptr<Params> params,
+      base::OnceCallback<void(
+          base::expected<std::unique_ptr<Params>, mojom::ErrorPtr>)> callback,
+      ScopedModelPath temp_dir,
+      MLComputePlan* compute_plan,
+      NSError* compute_plan_error);
+
   static void DidCreateAndBuild(
       mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
       base::WeakPtr<WebNNContextImpl> context,
diff --git a/services/webnn/coreml/graph_impl_coreml.mm b/services/webnn/coreml/graph_impl_coreml.mm
index 91c7007..b87c1540 100644
--- a/services/webnn/coreml/graph_impl_coreml.mm
+++ b/services/webnn/coreml/graph_impl_coreml.mm
@@ -17,11 +17,13 @@
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
+#include "base/files/scoped_temp_dir.h"
 #include "base/functional/callback_helpers.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/notreached.h"
 #include "base/numerics/checked_math.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/sys_string_conversions.h"
@@ -48,6 +50,7 @@
 #include "services/webnn/webnn_constant_operand.h"
 #include "services/webnn/webnn_context_impl.h"
 #include "services/webnn/webnn_switches.h"
+#include "third_party/abseil-cpp/absl/container/flat_hash_set.h"
 
 @interface WebNNMLFeatureProvider : NSObject <MLFeatureProvider>
 - (MLFeatureValue*)featureValueForName:(NSString*)featureName;
@@ -76,46 +79,6 @@
 
 namespace {
 
-// Responsible for cleaning up disk artifacts created by the CoreML model
-// compilation process.
-struct ScopedModelPaths {
-  ~ScopedModelPaths() {
-#if BUILDFLAG(IS_MAC)
-    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-            switches::kWebNNCoreMlDumpModel)) {
-      const auto dump_directory =
-          base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
-              switches::kWebNNCoreMlDumpModel);
-      LOG(INFO) << "[WebNN] Copying model files to " << dump_directory;
-      if (dump_directory.empty()) {
-        LOG(ERROR) << "[WebNN] Dump directory not specified.";
-      } else {
-        if (!model_file_dir.IsValid() ||
-            !base::CopyDirectory(model_file_dir.GetPath(), dump_directory,
-                                 /*recursive=*/true)) {
-          LOG(ERROR) << "[WebNN] Failed to copy model file directory.";
-        }
-        if (!compiled_model_dir.IsValid() ||
-            !base::CopyDirectory(compiled_model_dir.GetPath(), dump_directory,
-                                 /*recursive=*/true)) {
-          LOG(ERROR) << "[WebNN] Failed to copy compiled model directory.";
-        }
-      }
-    }
-#endif
-    // Though the destructors of ScopedTempDir will delete these directories.
-    // Explicitly delete them here to check for success.
-    if (model_file_dir.IsValid()) {
-      CHECK(model_file_dir.Delete());
-    }
-    if (compiled_model_dir.IsValid()) {
-      CHECK(compiled_model_dir.Delete());
-    }
-  }
-
-  base::ScopedTempDir model_file_dir;
-  base::ScopedTempDir compiled_model_dir;
-};
 
 // Compute strides which may be used to construct an `MLMultiArray` given
 // `multi_array_constraint`.
@@ -377,6 +340,7 @@
     ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     mojom::CreateContextOptionsPtr context_options,
     ContextProperties context_properties,
     WebNNContextImpl::CreateGraphImplCallback callback) {
@@ -479,9 +443,9 @@
     CHECK(scoped_compiled_model_dir.Set(
         base::apple::NSURLToFilePath(compiled_model_url)));
   }
-  ScopedModelPaths scoped_paths{
-      .model_file_dir = std::move(model_file_dir),
-      .compiled_model_dir = std::move(scoped_compiled_model_dir)};
+  ScopedModelPath scoped_model_files{std::move(model_file_dir)};
+  ScopedModelPath scoped_compiled_model_files{
+      std::move(scoped_compiled_model_dir)};
 
   if (error) {
     LOG(ERROR) << "[WebNN] " << error;
@@ -492,21 +456,22 @@
 
   MLModelConfiguration* configuration = [[MLModelConfiguration alloc] init];
   switch (context_options->device) {
-    case mojom::CreateContextOptions::Device::kCpu:
+    case mojom::Device::kCpu:
       configuration.computeUnits = MLComputeUnitsCPUOnly;
       break;
-    case mojom::CreateContextOptions::Device::kGpu:
+    case mojom::Device::kGpu:
       // TODO: crbug.com/344935458 - Switch to MLComputeUnitsCPUAndGPU
       // when we figure out how to fix the crashes.
       configuration.computeUnits = MLComputeUnitsAll;
       break;
-    case mojom::CreateContextOptions::Device::kNpu:
+    case mojom::Device::kNpu:
       configuration.computeUnits = MLComputeUnitsAll;
       break;
   }
 
   base::ElapsedTimer model_load_timer;
   NSError* model_load_error = nil;
+
   params->ml_model = [MLModel modelWithContentsOfURL:compiled_model_url
                                        configuration:configuration
                                                error:&model_load_error];
@@ -518,7 +483,75 @@
         mojom::Error::Code::kUnknownError, "Model load error.")));
     return;
   }
+  [MLComputePlan
+      loadContentsOfURL:compiled_model_url
+          configuration:configuration
+      completionHandler:base::CallbackToBlock(base::BindOnce(
+                            &ReadComputePlan, std::move(params),
+                            std::move(callback),
+                            std::move(scoped_compiled_model_files)))];
+}
 
+// static
+void GraphImplCoreml::ReadComputePlan(
+    std::unique_ptr<Params> params,
+    base::OnceCallback<void(
+        base::expected<std::unique_ptr<Params>, mojom::ErrorPtr>)> callback,
+    ScopedModelPath scoped_model_files,
+    MLComputePlan* compute_plan,
+    NSError* compute_plan_error) {
+  if (compute_plan_error) {
+    LOG(ERROR) << "[WebNN] " << compute_plan_error;
+    std::move(callback).Run(base::unexpected(
+        mojom::Error::New(mojom::Error::Code::kUnknownError,
+                          "Failed to get compiled graph devices.")));
+    return;
+  }
+  CHECK(compute_plan);
+
+  MLModelStructureProgram* program = compute_plan.modelStructure.program;
+  CHECK(program);
+
+  MLModelStructureProgramFunction* main_function = program.functions[@"main"];
+  CHECK(main_function);
+
+  double total_weight = 0;
+  NSArray<MLModelStructureProgramOperation*>* operations =
+      main_function.block.operations;
+  base::EnumSet<mojom::Device, mojom::Device::kCpu, mojom::Device::kNpu>
+      devices;
+  DLOG(INFO) << "[WebNN] Getting CoreML compute plan.";
+  for (MLModelStructureProgramOperation* operation in operations) {
+    // Get the compute device usage for the operation.
+    MLComputePlanDeviceUsage* compute_device_usage =
+        [compute_plan computeDeviceUsageForMLProgramOperation:operation];
+    id<MLComputeDeviceProtocol> preferred_device =
+        compute_device_usage.preferredComputeDevice;
+    if (!preferred_device) {
+      // This can happen on a 0 weight operation.
+      DLOG(INFO) << operation.operatorName << " no preferred device";
+    } else if ([preferred_device isKindOfClass:[MLCPUComputeDevice class]]) {
+      DLOG(INFO) << operation.operatorName << " prefers CPU";
+      devices.Put(mojom::Device::kCpu);
+    } else if ([preferred_device isKindOfClass:[MLGPUComputeDevice class]]) {
+      DLOG(INFO) << operation.operatorName << " prefers GPU";
+      devices.Put(mojom::Device::kGpu);
+    } else if ([preferred_device
+                   isKindOfClass:[MLNeuralEngineComputeDevice class]]) {
+      DLOG(INFO) << operation.operatorName << " prefers ANE";
+      devices.Put(mojom::Device::kNpu);
+    } else {
+      NOTREACHED();
+    }
+
+    // Get the estimated cost of executing the operation.
+    MLComputePlanCost* estimated_cost =
+        [compute_plan estimatedCostOfMLProgramOperation:operation];
+    DLOG(INFO) << "Operation weight " << estimated_cost.weight;
+    total_weight += estimated_cost.weight;
+  }
+  params->devices.assign(devices.begin(), devices.end());
+  DLOG(INFO) << "Total weight " << total_weight;
   std::move(callback).Run(std::move(params));
 }
 
@@ -569,13 +602,44 @@
   return [MLFeatureValue featureValueWithMultiArray:multi_array];
 }
 
+GraphImplCoreml::ScopedModelPath::ScopedModelPath(base::ScopedTempDir file_dir)
+    : file_dir(std::move(file_dir)) {}
+
+GraphImplCoreml::ScopedModelPath::~ScopedModelPath() {
+  if (!file_dir.IsValid()) {
+    return;
+  }
+
+#if BUILDFLAG(IS_MAC)
+  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+          switches::kWebNNCoreMlDumpModel)) {
+    const auto dump_directory =
+        base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
+            switches::kWebNNCoreMlDumpModel);
+    LOG(INFO) << "[WebNN] Copying model files to " << dump_directory;
+    if (dump_directory.empty()) {
+      LOG(ERROR) << "[WebNN] Dump directory not specified.";
+    } else {
+      if (!base::CopyDirectory(file_dir.GetPath(), dump_directory,
+                               /*recursive=*/true)) {
+        LOG(ERROR) << "[WebNN] Failed to copy model file directory.";
+      }
+    }
+  }
+#endif
+  // Though the destructors of ScopedTempDir will delete these directories.
+  // Explicitly delete them here to check for success.
+  CHECK(file_dir.Delete());
+}
+
 GraphImplCoreml::GraphImplCoreml(
     mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
     ContextImplCoreml* context,
     std::unique_ptr<Params> params)
     : WebNNGraphImpl(std::move(receiver),
                      context,
-                     std::move(params->compute_resource_info)),
+                     std::move(params->compute_resource_info),
+                     std::move(params->devices)),
       compute_resources_(base::MakeRefCounted<ComputeResources>(
           std::move(params->coreml_name_to_operand_name),
           params->ml_model)) {}
diff --git a/services/webnn/dml/context_impl_dml.cc b/services/webnn/dml/context_impl_dml.cc
index 701eec3..0c236cf 100644
--- a/services/webnn/dml/context_impl_dml.cc
+++ b/services/webnn/dml/context_impl_dml.cc
@@ -613,6 +613,7 @@
     WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     WebNNContextImpl::CreateGraphImplCallback callback) {
   if (g_backend_for_testing) {
     g_backend_for_testing->CreateGraphImpl(std::move(receiver), this,
@@ -624,7 +625,8 @@
   GraphImplDml::CreateAndBuild(
       std::move(receiver), adapter_, weak_factory_.GetWeakPtr(),
       std::move(graph_info), std::move(compute_resource_info),
-      std::move(constant_operands), std::move(callback),
+      std::move(constant_operands), std::move(constant_tensor_operands),
+      std::move(callback),
       gpu_feature_info_->IsWorkaroundEnabled(
           gpu::DISABLE_DML_META_COMMANDS_FOR_GPU));
 }
@@ -662,7 +664,8 @@
   if (adapter_->IsUMA()) {
     // Create a buffer configured with memory properties based on
     // usage.
-    if (tensor_info->usage.Has(MLTensorUsageFlags::kWrite)) {
+    if (tensor_info->usage.Has(MLTensorUsageFlags::kWrite) ||
+        tensor_info->usage.Has(MLTensorUsageFlags::kGraphConstant)) {
       // Upload buffer is used when the buffer mostly CPU writes but
       // could also CPU read. A upload buffer provides less bandwidth for CPU
       // reads in favor of GPU writes being optimal.
diff --git a/services/webnn/dml/context_impl_dml.h b/services/webnn/dml/context_impl_dml.h
index 82c6e7f6..efeee68 100644
--- a/services/webnn/dml/context_impl_dml.h
+++ b/services/webnn/dml/context_impl_dml.h
@@ -90,6 +90,7 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       CreateGraphImplCallback callback) override;
 
   void CreateTensorImpl(
diff --git a/services/webnn/dml/context_impl_dml_test.cc b/services/webnn/dml/context_impl_dml_test.cc
index 9aeef8f..a31c323 100644
--- a/services/webnn/dml/context_impl_dml_test.cc
+++ b/services/webnn/dml/context_impl_dml_test.cc
@@ -46,7 +46,8 @@
       ComputeResourceInfo compute_resource_info)
       : WebNNGraphImpl(std::move(receiver),
                        context,
-                       std::move(compute_resource_info)),
+                       std::move(compute_resource_info),
+                       /*devices=*/{}),
         context_(context) {}
   ~FakeWebNNGraphImpl() override = default;
 
@@ -123,7 +124,7 @@
           *OperandDescriptor::Create(webnn::GetContextPropertiesForTesting(),
                                      data_type, shape, "tensor"),
           MLTensorUsage{MLTensorUsageFlags::kWrite, MLTensorUsageFlags::kRead}),
-      create_tensor_future.GetCallback());
+      mojo_base::BigBuffer(0), create_tensor_future.GetCallback());
   mojom::CreateTensorResultPtr create_tensor_result =
       create_tensor_future.Take();
   mojo::AssociatedRemote<mojom::WebNNTensor> webnn_tensor_remote;
@@ -153,7 +154,7 @@
     base::test::TestFuture<mojom::CreateContextResultPtr> create_context_future;
     webnn_provider_remote_->CreateWebNNContext(
         mojom::CreateContextOptions::New(
-            mojom::CreateContextOptions::Device::kGpu,
+            mojom::Device::kGpu,
             mojom::CreateContextOptions::PowerPreference::kDefault),
         create_context_future.GetCallback());
     auto create_context_result = create_context_future.Take();
@@ -231,15 +232,17 @@
   builder.BuildRelu(input_operand_id, output_operand_id);
 
   // The GraphImplDml should be built successfully.
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote->CreateGraph(builder.TakeGraphInfo(),
                                     create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
-  EXPECT_TRUE(create_graph_result->is_graph_remote());
+  auto create_graph_result = create_graph_future.Take();
+  EXPECT_TRUE(create_graph_result.has_value());
 
   // Reset the remote to ensure `WebNNGraphImpl` is released.
-  if (create_graph_result->is_graph_remote()) {
-    create_graph_result->get_graph_remote().reset();
+  if (create_graph_result.has_value()) {
+    create_graph_result.value()->graph_remote.reset();
   }
 
   // Ensure `WebNNContextImpl::OnConnectionError()` is called and
@@ -273,13 +276,15 @@
   builder.BuildRelu(input_operand_id, output_operand_id);
 
   // The GraphImplDml should be built successfully.
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote->CreateGraph(builder.TakeGraphInfo(),
                                     create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
-  EXPECT_TRUE(create_graph_result->is_graph_remote());
+  auto create_graph_result = create_graph_future.Take();
+  EXPECT_TRUE(create_graph_result.has_value());
   mojo::AssociatedRemote<mojom::WebNNGraph> webnn_graph_remote;
-  webnn_graph_remote.Bind(std::move(create_graph_result->get_graph_remote()));
+  webnn_graph_remote.Bind(std::move(create_graph_result.value()->graph_remote));
 
   CreateTensorSuccess input_tensor =
       CreateWebNNTensor(webnn_context_remote_, data_type, shape);
diff --git a/services/webnn/dml/context_provider_dml.cc b/services/webnn/dml/context_provider_dml.cc
index a792d17..c0ebcd9 100644
--- a/services/webnn/dml/context_provider_dml.cc
+++ b/services/webnn/dml/context_provider_dml.cc
@@ -73,10 +73,10 @@
   }
 
   switch (options.device) {
-    case mojom::CreateContextOptions::Device::kCpu:
+    case mojom::Device::kCpu:
       return false;
-    case mojom::CreateContextOptions::Device::kGpu:
-    case mojom::CreateContextOptions::Device::kNpu:
+    case mojom::Device::kGpu:
+    case mojom::Device::kNpu:
       return true;
   }
 }
@@ -102,9 +102,9 @@
   base::expected<scoped_refptr<Adapter>, mojom::ErrorPtr>
       adapter_creation_result;
   switch (options->device) {
-    case mojom::CreateContextOptions::Device::kCpu:
+    case mojom::Device::kCpu:
       NOTREACHED();
-    case mojom::CreateContextOptions::Device::kGpu: {
+    case mojom::Device::kGpu: {
       ComPtr<IDXGIAdapter> dxgi_adapter;
       if (shared_context_state) {
         ComPtr<ID3D11Device> d3d11_device =
@@ -128,7 +128,7 @@
           GetDmlGpuAdapter(dxgi_adapter.Get(), gpu_feature_info);
       break;
     }
-    case mojom::CreateContextOptions::Device::kNpu:
+    case mojom::Device::kNpu:
       adapter_creation_result =
           Adapter::GetNpuInstance(gpu_feature_info, gpu_info);
       break;
diff --git a/services/webnn/dml/graph_impl_dml.cc b/services/webnn/dml/graph_impl_dml.cc
index 241a5e42a..3e318c1 100644
--- a/services/webnn/dml/graph_impl_dml.cc
+++ b/services/webnn/dml/graph_impl_dml.cc
@@ -51,6 +51,7 @@
 #include "services/webnn/public/cpp/graph_validation_utils.h"
 #include "services/webnn/public/cpp/operand_descriptor.h"
 #include "services/webnn/public/cpp/webnn_types.h"
+#include "services/webnn/public/mojom/webnn_device.mojom.h"
 #include "services/webnn/public/mojom/webnn_error.mojom.h"
 #include "services/webnn/webnn_constant_operand.h"
 #include "services/webnn/webnn_context_impl.h"
@@ -69,7 +70,6 @@
              base::FEATURE_ENABLED_BY_DEFAULT);
 
 using Microsoft::WRL::ComPtr;
-using mojom::CreateGraphResult;
 using mojom::Operand;
 using mojom::OperandPtr;
 using mojom::Operation;
@@ -5927,10 +5927,12 @@
     ComPtr<IDMLCompiledOperator> compiled_operator,
     ComputeResourceInfo compute_resource_info,
     GraphBufferBindingInfo graph_buffer_binding_info,
-    std::unique_ptr<GraphResources> graph_resources)
+    std::unique_ptr<GraphResources> graph_resources,
+    std::vector<mojom::Device> devices)
     : WebNNGraphImpl(std::move(receiver),
                      context,
-                     std::move(compute_resource_info)),
+                     std::move(compute_resource_info),
+                     std::move(devices)),
       persistent_resource_(std::move(persistent_resource)),
       adapter_(std::move(adapter)),
       context_(context),
@@ -5971,6 +5973,7 @@
     ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     base::expected<ComPtr<IDMLCompiledOperator>, HRESULT> compilation_result) {
   TRACE_EVENT0("gpu", "dml::GraphImplDml::OnCompilationComplete");
 
@@ -6114,6 +6117,23 @@
           std::move(buffer_binding);
     }
   }
+
+  // The tensors used for constants must be bound during operator initialization
+  // and not during execution.
+  for (auto& [constant_id, constant_tensor] : constant_tensor_operands) {
+    TensorImplDml* constant_tensor_impl =
+        static_cast<TensorImplDml*>(constant_tensor);
+    // Get the graph input index with the constant id.
+    const auto graph_input_index_iterator =
+        constant_id_to_input_index_map.find(constant_id);
+    CHECK(graph_input_index_iterator != constant_id_to_input_index_map.end());
+    input_buffer_binding[graph_input_index_iterator->second] =
+        DML_BUFFER_BINDING{
+            .Buffer = constant_tensor_impl->buffer(),
+            .Offset = 0,
+            .SizeInBytes = constant_tensor_impl->PackedByteLength()};
+  }
+
   DML_BUFFER_ARRAY_BINDING input_buffer_array_binding{
       .BindingCount = base::checked_cast<uint32_t>(input_buffer_binding.size()),
       .Bindings = input_buffer_binding.data()};
@@ -6269,7 +6289,8 @@
       std::move(receiver), std::move(adapter), context.get(),
       std::move(command_recorder_for_dispatch), std::move(persistent_resource),
       std::move(compiled_operator), std::move(compute_resource_info),
-      std::move(graph_buffer_binding_info), std::move(graph_resources))));
+      std::move(graph_buffer_binding_info), std::move(graph_resources),
+      {adapter->IsNPU() ? mojom::Device::kNpu : mojom::Device::kGpu})));
 }
 
 // static
@@ -6313,6 +6334,7 @@
     mojom::GraphInfoPtr& graph_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
         constant_operands,
+    const base::flat_map<OperandId, WebNNTensorImpl*>& constant_tensor_operands,
     GraphBuilderDml& graph_builder,
     absl::flat_hash_map<OperandId, uint32_t>& constant_id_to_input_index_map,
     GraphBufferBindingInfo& graph_buffer_binding_info) {
@@ -6345,6 +6367,19 @@
                        constant_id_to_input_index_map);
   }
 
+  // Add constant tensors which are considered read-only inputs that must be
+  // bound during graph initialization.
+  for (const auto& [constant_id, tensor_impl] : constant_tensor_operands) {
+    const Node* node = graph_builder.CreateInputNode();
+    constant_id_to_input_index_map[constant_id] =
+        node->AsInputNode()->GetGraphInputIndex();
+    TensorDesc tensor_desc(GetTensorDataType(tensor_impl->data_type()),
+                           DML_TENSOR_FLAG_OWNED_BY_DML, tensor_impl->shape());
+    const NodeOutput* output =
+        graph_builder.CreateNodeOutput(node, std::move(tensor_desc));
+    CHECK(id_to_node_output_map.try_emplace(constant_id, output).second);
+  }
+
   // Fuse the operations in `mojom::GraphInfo` wherever possible to optimize the
   // graph's compute performance.
   //
@@ -6774,6 +6809,7 @@
     ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     WebNNContextImpl::CreateGraphImplCallback callback,
     const bool disable_dml_meta_commands_for_gpu) {
   TRACE_EVENT0("gpu", "dml::GraphImplDml::CreateAndBuild");
@@ -6783,8 +6819,8 @@
   base::expected<void, mojom::ErrorPtr> create_operator_result =
       GraphImplDml::CreateAndBuildInternal(
           context->properties(), adapter, graph_info, constant_operands,
-          graph_builder, constant_id_to_input_index_map,
-          graph_buffer_binding_info);
+          constant_tensor_operands, graph_builder,
+          constant_id_to_input_index_map, graph_buffer_binding_info);
 
   // TODO(crbug.com/349649099): Handle context lost for operator creation
   // failures.
@@ -6815,7 +6851,8 @@
           std::move(adapter), std::move(context), std::move(callback),
           std::move(constant_id_to_input_index_map),
           std::move(graph_buffer_binding_info),
-          std::move(compute_resource_info), std::move(constant_operands)));
+          std::move(compute_resource_info), std::move(constant_operands),
+          std::move(constant_tensor_operands)));
 }
 
 void GraphImplDml::HandleDispatchFailure(std::string_view error_message,
diff --git a/services/webnn/dml/graph_impl_dml.h b/services/webnn/dml/graph_impl_dml.h
index 56ad8e78..2ea89a97 100644
--- a/services/webnn/dml/graph_impl_dml.h
+++ b/services/webnn/dml/graph_impl_dml.h
@@ -80,6 +80,8 @@
       mojom::GraphInfoPtr& graph_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
           constant_operands,
+      const base::flat_map<OperandId, WebNNTensorImpl*>&
+          constant_tensor_operands,
       GraphBuilderDml& graph_builder,
       absl::flat_hash_map<OperandId, uint32_t>& constant_id_to_input_index_map,
       GraphBufferBindingInfo& graph_buffer_binding_info);
@@ -98,6 +100,7 @@
       ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       WebNNContextImpl::CreateGraphImplCallback callback,
       bool disable_dml_meta_commands_for_gpu);
 
@@ -193,7 +196,8 @@
                Microsoft::WRL::ComPtr<IDMLCompiledOperator> compiled_operator,
                ComputeResourceInfo compute_resource_info,
                GraphBufferBindingInfo graph_buffer_binding_info,
-               std::unique_ptr<GraphResources> graph_resources);
+               std::unique_ptr<GraphResources> graph_resources,
+               std::vector<mojom::Device> devices);
 
   // The method compiles all DML operators into an IDMLCompiledOperator
   // which can be dispatched to GPU. Since IDMLDevice1::CompileGraph called in
@@ -228,6 +232,7 @@
       ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       base::expected<Microsoft::WRL::ComPtr<IDMLCompiledOperator>, HRESULT>
           compilation_result);
 
diff --git a/services/webnn/ort/context_impl_ort.cc b/services/webnn/ort/context_impl_ort.cc
index d9d121f..1d1f9ab 100644
--- a/services/webnn/ort/context_impl_ort.cc
+++ b/services/webnn/ort/context_impl_ort.cc
@@ -186,6 +186,7 @@
     WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     CreateGraphImplCallback callback) {
   // TODO(crbug.com/416535744): Implement GraphImpl for ORT backend.
   NOTIMPLEMENTED();
diff --git a/services/webnn/ort/context_impl_ort.h b/services/webnn/ort/context_impl_ort.h
index cab751f6..b393e9e 100644
--- a/services/webnn/ort/context_impl_ort.h
+++ b/services/webnn/ort/context_impl_ort.h
@@ -49,6 +49,7 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       CreateGraphImplCallback callback) override;
 
   void CreateTensorImpl(
diff --git a/services/webnn/ort/ort_session_options.cc b/services/webnn/ort/ort_session_options.cc
index 62e8916..8b732ac 100644
--- a/services/webnn/ort/ort_session_options.cc
+++ b/services/webnn/ort/ort_session_options.cc
@@ -7,7 +7,7 @@
 #include "services/webnn/ort/ort_status.h"
 #include "services/webnn/ort/platform_functions_ort.h"
 #include "services/webnn/public/cpp/webnn_trace.h"
-#include "services/webnn/public/mojom/webnn_context_provider.mojom.h"
+#include "services/webnn/public/mojom/webnn_device.mojom.h"
 #include "services/webnn/public/mojom/webnn_error.mojom.h"
 #include "third_party/onnxruntime_headers/src/include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h"
 
@@ -15,10 +15,10 @@
 
 // static
 base::expected<scoped_refptr<SessionOptions>, mojom::ErrorPtr>
-SessionOptions::Create(mojom::CreateContextOptions::Device device_type) {
+SessionOptions::Create(mojom::Device device_type) {
   ScopedTrace scoped_trace("SessionOptions::Create");
 
-  if (device_type != mojom::CreateContextOptions::Device::kCpu) {
+  if (device_type != mojom::Device::kCpu) {
     return base::unexpected(mojom::Error::New(
         mojom::Error::Code::kNotSupportedError,
         "The ONNX Runtime backend only supports CPU device type currently."));
diff --git a/services/webnn/ort/ort_session_options.h b/services/webnn/ort/ort_session_options.h
index d27267c..b759a58 100644
--- a/services/webnn/ort/ort_session_options.h
+++ b/services/webnn/ort/ort_session_options.h
@@ -9,7 +9,8 @@
 #include "base/types/expected.h"
 #include "base/types/pass_key.h"
 #include "services/webnn/ort/scoped_ort_types.h"
-#include "services/webnn/public/mojom/webnn_context_provider.mojom.h"
+#include "services/webnn/public/mojom/webnn_device.mojom.h"
+#include "services/webnn/public/mojom/webnn_error.mojom.h"
 #include "third_party/onnxruntime_headers/src/include/onnxruntime/core/session/onnxruntime_c_api.h"
 
 namespace webnn::ort {
@@ -22,7 +23,7 @@
   // only CPU is supported by the default CPU EP.
   // It may fail when appending a particular EP to the session options.
   static base::expected<scoped_refptr<SessionOptions>, mojom::ErrorPtr> Create(
-      mojom::CreateContextOptions::Device device_type);
+      mojom::Device device_type);
 
   SessionOptions(base::PassKey<SessionOptions>,
                  ScopedOrtSessionOptions session_options);
diff --git a/services/webnn/public/cpp/ml_tensor_usage.h b/services/webnn/public/cpp/ml_tensor_usage.h
index e6c0cc0..1e2a505 100644
--- a/services/webnn/public/cpp/ml_tensor_usage.h
+++ b/services/webnn/public/cpp/ml_tensor_usage.h
@@ -19,8 +19,11 @@
   // This tensor can be used with writeTensor().
   kWrite,
 
+  // This tensor can be used with constant().
+  kGraphConstant,
+
   kMinValue = kWebGpuInterop,
-  kMaxValue = kWrite,
+  kMaxValue = kGraphConstant,
 };
 
 using MLTensorUsage = base::EnumSet<MLTensorUsageFlags,
diff --git a/services/webnn/public/mojom/BUILD.gn b/services/webnn/public/mojom/BUILD.gn
index 9c1ad938..5984f67 100644
--- a/services/webnn/public/mojom/BUILD.gn
+++ b/services/webnn/public/mojom/BUILD.gn
@@ -23,6 +23,7 @@
     "webnn_context.mojom",
     "webnn_context_properties.mojom",
     "webnn_context_provider.mojom",
+    "webnn_device.mojom",
     "webnn_error.mojom",
     "webnn_graph.mojom",
     "webnn_graph_builder.mojom",
diff --git a/services/webnn/public/mojom/tensor_usage_mojom_traits.h b/services/webnn/public/mojom/tensor_usage_mojom_traits.h
index 2da64b0..97bbba2 100644
--- a/services/webnn/public/mojom/tensor_usage_mojom_traits.h
+++ b/services/webnn/public/mojom/tensor_usage_mojom_traits.h
@@ -25,6 +25,10 @@
     return usage.Has(webnn::MLTensorUsageFlags::kRead);
   }
 
+  static bool graph_constant(const webnn::MLTensorUsage& usage) {
+    return usage.Has(webnn::MLTensorUsageFlags::kGraphConstant);
+  }
+
   static bool Read(webnn::mojom::TensorUsageDataView data,
                    webnn::MLTensorUsage* out) {
     out->Clear();
@@ -41,6 +45,13 @@
       out->Put(webnn::MLTensorUsageFlags::kWrite);
     }
 
+    if (data.graph_constant()) {
+      if (data.read() || data.write()) {
+        return false;
+      }
+      out->Put(webnn::MLTensorUsageFlags::kGraphConstant);
+    }
+
     return true;
   }
 };
diff --git a/services/webnn/public/mojom/webnn_context.mojom b/services/webnn/public/mojom/webnn_context.mojom
index 8cf41e1..a546cb6 100644
--- a/services/webnn/public/mojom/webnn_context.mojom
+++ b/services/webnn/public/mojom/webnn_context.mojom
@@ -4,6 +4,7 @@
 
 module webnn.mojom;
 
+import "mojo/public/mojom/base/big_buffer.mojom";
 import "services/webnn/public/mojom/features.mojom";
 import "services/webnn/public/mojom/webnn_tensor.mojom";
 import "services/webnn/public/mojom/webnn_error.mojom";
@@ -38,5 +39,8 @@
   // Called by the renderer process to create `WebNNTensor` message pipe for
   // creating platform specific tensors, the WebNN tensor will be validated and
   // created. This method guarantees memory allocation on the device.
-  CreateTensor(TensorInfo tensor_info) => (CreateTensorResult result);
+  // Optionally, non-empty tensor data containing values to initialize contents.
+  // Valid for tensor data to be empty when not being used as graph constants.
+  CreateTensor(TensorInfo tensor_info, mojo_base.mojom.BigBuffer tensor_data)
+    => (CreateTensorResult result);
 };
\ No newline at end of file
diff --git a/services/webnn/public/mojom/webnn_context_provider.mojom b/services/webnn/public/mojom/webnn_context_provider.mojom
index ddddc78d..4ead9fc 100644
--- a/services/webnn/public/mojom/webnn_context_provider.mojom
+++ b/services/webnn/public/mojom/webnn_context_provider.mojom
@@ -7,30 +7,12 @@
 import "services/webnn/public/mojom/features.mojom";
 import "services/webnn/public/mojom/webnn_context.mojom";
 import "services/webnn/public/mojom/webnn_context_properties.mojom";
+import "services/webnn/public/mojom/webnn_device.mojom";
 import "services/webnn/public/mojom/webnn_error.mojom";
 import "third_party/blink/public/mojom/tokens/tokens.mojom";
 
 // Represents options of creating `WebNNContext` interface.
 struct CreateContextOptions {
-  enum Device {
-    // Provides the broadest compatibility and usability across all client
-    // devices with varying degrees of performance.
-    kCpu,
-    // Provides the broadest range of achievable performance across graphics
-    // hardware platforms from consumer devices to professional workstations.
-    kGpu,
-    // NPU (neural processing unit) is a class of specialized hardware
-    // accelerator designed to accelerate artificial intelligence and machine
-    // learning applications. Unlike more general-purpose devices such as the
-    // GPU and CPU, an NPU supports a limited finite set of operations and may
-    // not have programmability support. The fallback behavior is being
-    // discussed by WG at:
-    // https://github.com/webmachinelearning/webnn/issues/623.
-    // This Enum value is introduced for testing purpose that will inform
-    // the WG.
-    kNpu,
-  };
-
   enum PowerPreference {
     // Let the user agent select the most suitable behavior.
     kDefault,
diff --git a/services/webnn/public/mojom/webnn_device.mojom b/services/webnn/public/mojom/webnn_device.mojom
new file mode 100644
index 0000000..a0a79649
--- /dev/null
+++ b/services/webnn/public/mojom/webnn_device.mojom
@@ -0,0 +1,24 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module webnn.mojom;
+
+enum Device {
+    // Provides the broadest compatibility and usability across all client
+    // devices with varying degrees of performance.
+    kCpu,
+    // Provides the broadest range of achievable performance across graphics
+    // hardware platforms from consumer devices to professional workstations.
+    kGpu,
+    // NPU (neural processing unit) is a class of specialized hardware
+    // accelerator designed to accelerate artificial intelligence and machine
+    // learning applications. Unlike more general-purpose devices such as the
+    // GPU and CPU, an NPU supports a limited finite set of operations and may
+    // not have programmability support. The fallback behavior is being
+    // discussed by WG at:
+    // https://github.com/webmachinelearning/webnn/issues/623.
+    // This Enum value is introduced for testing purpose that will inform
+    // the WG.
+    kNpu,
+};
\ No newline at end of file
diff --git a/services/webnn/public/mojom/webnn_graph.mojom b/services/webnn/public/mojom/webnn_graph.mojom
index d31bfbc..a8e32c0 100644
--- a/services/webnn/public/mojom/webnn_graph.mojom
+++ b/services/webnn/public/mojom/webnn_graph.mojom
@@ -1428,6 +1428,10 @@
   // which identifies the respective pending constant operand.
   map<uint32, blink.mojom.WebNNPendingConstantToken>
       constant_operand_ids_to_handles;
+  // A map of tensors used for graph constants. The key is the id of
+  // the constant operand, while the value is a handle to the tensor containing
+  // the weights.
+  map<uint32, blink.mojom.WebNNTensorToken> id_to_constant_tensor_operand_map;
 };
 
 // WebNNGraph runs in the GPU process and is called by the renderer process to
diff --git a/services/webnn/public/mojom/webnn_graph_builder.mojom b/services/webnn/public/mojom/webnn_graph_builder.mojom
index 7731fd9..6ee24f3 100644
--- a/services/webnn/public/mojom/webnn_graph_builder.mojom
+++ b/services/webnn/public/mojom/webnn_graph_builder.mojom
@@ -6,15 +6,16 @@
 
 import "mojo/public/mojom/base/big_buffer.mojom";
 import "services/webnn/public/mojom/webnn_context_properties.mojom";
+import "services/webnn/public/mojom/webnn_device.mojom";
 import "services/webnn/public/mojom/webnn_error.mojom";
 import "services/webnn/public/mojom/webnn_graph.mojom";
 import "third_party/blink/public/mojom/tokens/tokens.mojom";
 
-// Represents the return value of `CreateGraph()`. Let it be `graph_remote` if
-// the graph was successfully created and `error` otherwise.
-union CreateGraphResult {
-  pending_associated_remote<WebNNGraph>? graph_remote;
-  Error error;
+// On `CreateGraph` success, returns the remote graph and the devices that
+// will be used on dispatch.
+struct CreateGraphSuccess {
+  pending_associated_remote<WebNNGraph> graph_remote;
+  array<Device> devices;
 };
 
 // Represents the `MLGraphBuilder` in the WebIDL definition. Hosted in the GPU
@@ -41,7 +42,7 @@
   //
   // This method may be called at most once. Any subsequent messages on this
   // interface are signs of a misbehaving renderer.
-  CreateGraph(GraphInfo graph_info) => (CreateGraphResult result);
+  CreateGraph(GraphInfo graph_info) => result<CreateGraphSuccess, Error>;
 
   // Check whether `graph_info` is a valid graph given `context_properties`.
   IsValidGraphForTesting(ContextProperties context_properties,
diff --git a/services/webnn/public/mojom/webnn_tensor.mojom b/services/webnn/public/mojom/webnn_tensor.mojom
index d08e120..79125f6 100644
--- a/services/webnn/public/mojom/webnn_tensor.mojom
+++ b/services/webnn/public/mojom/webnn_tensor.mojom
@@ -16,6 +16,9 @@
   bool read;
   // This tensor can be used with writeTensor().
   bool write;
+  // This tensor is only allowed to be used as a graph constant.
+  // A graph constant cannot be modified after it is created.
+  bool graph_constant;
 };
 
 // Description of the WebNNTensor to create.
diff --git a/services/webnn/tflite/context_impl_tflite.cc b/services/webnn/tflite/context_impl_tflite.cc
index b705c87..eab9d202 100644
--- a/services/webnn/tflite/context_impl_tflite.cc
+++ b/services/webnn/tflite/context_impl_tflite.cc
@@ -38,16 +38,25 @@
     WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     CreateGraphImplCallback callback) {
   std::move(callback).Run(GraphImplTflite::CreateAndBuild(
       std::move(receiver), std::move(graph_info),
-      std::move(compute_resource_info), std::move(constant_operands), this));
+      std::move(compute_resource_info), std::move(constant_operands),
+      std::move(constant_tensor_operands), this));
 }
 
 void ContextImplTflite::CreateTensorImpl(
     mojo::PendingAssociatedReceiver<mojom::WebNNTensor> receiver,
     mojom::TensorInfoPtr tensor_info,
     CreateTensorImplCallback callback) {
+  // TODO(crbug.com/332350952): implement constant tensors for TFLite.
+  if (tensor_info->usage.Has(MLTensorUsageFlags::kGraphConstant)) {
+    std::move(callback).Run(base::unexpected(
+        mojom::Error::New(mojom::Error::Code::kNotSupportedError,
+                          "Creation of constant tensors is not supported.")));
+    return;
+  }
   std::move(callback).Run(TensorImplTflite::Create(std::move(receiver), this,
                                                    std::move(tensor_info)));
 }
diff --git a/services/webnn/tflite/context_impl_tflite.h b/services/webnn/tflite/context_impl_tflite.h
index 1632943..60d21c08 100644
--- a/services/webnn/tflite/context_impl_tflite.h
+++ b/services/webnn/tflite/context_impl_tflite.h
@@ -39,6 +39,7 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       CreateGraphImplCallback callback) override;
 
   void CreateTensorImpl(
diff --git a/services/webnn/tflite/graph_impl_tflite.cc b/services/webnn/tflite/graph_impl_tflite.cc
index 0c54e3f..8891180 100644
--- a/services/webnn/tflite/graph_impl_tflite.cc
+++ b/services/webnn/tflite/graph_impl_tflite.cc
@@ -11,6 +11,7 @@
 #include "base/location.h"
 #include "base/memory/raw_ref.h"
 #include "base/memory/scoped_refptr.h"
+#include "base/notimplemented.h"
 #include "base/strings/stringprintf.h"
 #include "base/system/sys_info.h"
 #include "base/task/task_traits.h"
@@ -289,6 +290,7 @@
     ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
     ContextImplTflite* context) {
   ASSIGN_OR_RETURN(GraphBuilderTflite::Result result,
                    GraphBuilderTflite::CreateAndBuild(
@@ -306,15 +308,15 @@
       ComputeResources::Create(context, std::move(result.buffer),
                                std::move(result.buffer_data), constant_operands,
                                result.graph_requires_fp32_precision));
-
+  // TODO(crbug.com/418031018): Get devices that will be used for dispatch.
   auto compute_resources_state =
       base::MakeRefCounted<QueueableResourceState<ComputeResources>>(
           std::move(compute_resources));
-  return base::WrapUnique(
-      new GraphImplTflite(std::move(receiver), std::move(compute_resource_info),
-                          std::move(result.input_name_to_index),
-                          std::move(result.output_name_to_index),
-                          std::move(compute_resources_state), context));
+  return base::WrapUnique(new GraphImplTflite(
+      std::move(receiver), std::move(compute_resource_info),
+      std::move(result.input_name_to_index),
+      std::move(result.output_name_to_index),
+      std::move(compute_resources_state), context, /*devices=*/{}));
 }
 
 GraphImplTflite::~GraphImplTflite() = default;
@@ -326,10 +328,12 @@
     base::flat_map<std::string, int> output_name_to_index,
     scoped_refptr<QueueableResourceState<ComputeResources>>
         compute_resources_state,
-    ContextImplTflite* context)
+    ContextImplTflite* context,
+    std::vector<mojom::Device> devices)
     : WebNNGraphImpl(std::move(receiver),
                      context,
-                     std::move(compute_resource_info)),
+                     std::move(compute_resource_info),
+                     std::move(devices)),
       compute_resources_state_(std::move(compute_resources_state)),
       input_name_to_index_(std::move(input_name_to_index)),
       output_name_to_index_(std::move(output_name_to_index)) {}
diff --git a/services/webnn/tflite/graph_impl_tflite.h b/services/webnn/tflite/graph_impl_tflite.h
index 64709e5e..18d5afbb 100644
--- a/services/webnn/tflite/graph_impl_tflite.h
+++ b/services/webnn/tflite/graph_impl_tflite.h
@@ -40,6 +40,7 @@
       ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       ContextImplTflite* context);
 
   GraphImplTflite(const GraphImplTflite&) = delete;
@@ -57,7 +58,8 @@
                   base::flat_map<std::string, int> output_name_to_index,
                   scoped_refptr<QueueableResourceState<ComputeResources>>
                       compute_resources_state,
-                  ContextImplTflite* context);
+                  ContextImplTflite* context,
+                  std::vector<mojom::Device> devices);
 
   // Execute the compiled platform graph asynchronously. The inputs were
   // validated in base class so we can use them to compute directly.
@@ -70,6 +72,7 @@
       compute_resources_state_;
   base::flat_map<std::string, int> input_name_to_index_;
   base::flat_map<std::string, int> output_name_to_index_;
+
   base::WeakPtrFactory<GraphImplTflite> weak_factory_{this};
 };
 
diff --git a/services/webnn/tflite/op_resolver.cc b/services/webnn/tflite/op_resolver.cc
index 7f0d531d..ac8287e 100644
--- a/services/webnn/tflite/op_resolver.cc
+++ b/services/webnn/tflite/op_resolver.cc
@@ -6,6 +6,7 @@
 
 #include "services/webnn/buildflags.h"
 #include "services/webnn/public/mojom/webnn_context_provider.mojom.h"
+#include "services/webnn/public/mojom/webnn_device.mojom.h"
 #include "third_party/tflite/buildflags.h"
 #include "third_party/tflite/src/tensorflow/lite/kernels/builtin_op_kernels.h"
 
@@ -283,7 +284,7 @@
              /* max_version = */ 3);
 
 #if BUILDFLAG(BUILD_TFLITE_WITH_NNAPI)
-  if (options.device == mojom::CreateContextOptions::Device::kNpu) {
+  if (options.device == mojom::Device::kNpu) {
     delegate_creators_.push_back([](TfLiteContext* context) {
       return std::unique_ptr<TfLiteDelegate, void (*)(TfLiteDelegate*)>(
           new ::tflite::StatefulNnApiDelegate(), [](TfLiteDelegate* delegate) {
@@ -296,7 +297,7 @@
 #endif
 
 #if BUILDFLAG(WEBNN_USE_CHROME_ML_API)
-  if (options.device == mojom::CreateContextOptions::Device::kGpu) {
+  if (options.device == mojom::Device::kGpu) {
     // TODO(crbug.com/394119734): Simplify this check once these functions are
     // always available.
     auto* chrome_ml = ml::ChromeML::Get();
@@ -320,7 +321,7 @@
 #endif
 
 #if BUILDFLAG(BUILD_TFLITE_WITH_OPENCL)
-  if (options.device == mojom::CreateContextOptions::Device::kGpu) {
+  if (options.device == mojom::Device::kGpu) {
     delegate_creators_.push_back([](TfLiteContext* context) {
       return std::unique_ptr<TfLiteDelegate, void (*)(TfLiteDelegate*)>(
           TfLiteGpuDelegateV2Create(nullptr), TfLiteGpuDelegateV2Delete);
diff --git a/services/webnn/webnn_context_impl.cc b/services/webnn/webnn_context_impl.cc
index 487d153..c2f3a3f 100644
--- a/services/webnn/webnn_context_impl.cc
+++ b/services/webnn/webnn_context_impl.cc
@@ -86,6 +86,7 @@
 
 void WebNNContextImpl::CreateTensor(
     mojom::TensorInfoPtr tensor_info,
+    mojo_base::BigBuffer tensor_data,
     mojom::WebNNContext::CreateTensorCallback callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -94,17 +95,40 @@
     return;
   }
 
+  if (tensor_info->usage.Has(MLTensorUsageFlags::kGraphConstant)) {
+    const base::expected<OperandDescriptor, std::string> validated_descriptor =
+        webnn::OperandDescriptor::Create(
+            properties_, tensor_info->descriptor.data_type(),
+            tensor_info->descriptor.shape(), "WebNNGraphConstant");
+    if (!validated_descriptor.has_value()) {
+      receiver_.ReportBadMessage(kBadMessageInvalidTensor);
+      return;
+    }
+
+    if (!properties_.data_type_limits.constant.Has(
+            validated_descriptor->data_type())) {
+      receiver_.ReportBadMessage(kBadMessageInvalidTensor);
+      return;
+    }
+
+    if (tensor_data.size() != validated_descriptor->PackedByteLength()) {
+      receiver_.ReportBadMessage(kBadMessageInvalidTensor);
+      return;
+    }
+  }
+
   mojo::PendingAssociatedRemote<mojom::WebNNTensor> remote;
   auto receiver = remote.InitWithNewEndpointAndPassReceiver();
-  CreateTensorImpl(
-      std::move(receiver), std::move(tensor_info),
-      base::BindOnce(&WebNNContextImpl::DidCreateWebNNTensorImpl, AsWeakPtr(),
-                     std::move(callback), std::move(remote)));
+  CreateTensorImpl(std::move(receiver), std::move(tensor_info),
+                   base::BindOnce(&WebNNContextImpl::DidCreateWebNNTensorImpl,
+                                  AsWeakPtr(), std::move(callback),
+                                  std::move(remote), std::move(tensor_data)));
 }
 
 void WebNNContextImpl::DidCreateWebNNTensorImpl(
     mojom::WebNNContext::CreateTensorCallback callback,
     mojo::PendingAssociatedRemote<mojom::WebNNTensor> remote,
+    mojo_base::BigBuffer tensor_data,
     base::expected<std::unique_ptr<WebNNTensorImpl>, mojom::ErrorPtr> result) {
   if (!result.has_value()) {
     std::move(callback).Run(
@@ -112,6 +136,13 @@
     return;
   }
 
+  // Write the specified values into the tensor. If `tensor_data` is empty,
+  // the tensor should be left initialized to zero. The `tensor_data` size
+  // should of been already validated in CreateTensor().
+  if (tensor_data.size() > 0) {
+    result.value()->WriteTensorImpl(std::move(tensor_data));
+  }
+
   auto success = mojom::CreateTensorSuccess::New(std::move(remote),
                                                  result.value()->handle());
   std::move(callback).Run(
diff --git a/services/webnn/webnn_context_impl.h b/services/webnn/webnn_context_impl.h
index ac9fa13..1b3aa5ab 100644
--- a/services/webnn/webnn_context_impl.h
+++ b/services/webnn/webnn_context_impl.h
@@ -18,6 +18,7 @@
 #include "base/types/expected.h"
 #include "base/types/optional_ref.h"
 #include "base/types/pass_key.h"
+#include "mojo/public/cpp/base/big_buffer.h"
 #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/receiver.h"
@@ -104,6 +105,7 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
           constant_operands,
+      base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands,
       CreateGraphImplCallback callback) = 0;
 
   // Pass ownership of a newly-created `graph_impl` to this context.
@@ -141,6 +143,7 @@
       mojo::PendingAssociatedReceiver<mojom::WebNNGraphBuilder> receiver)
       override;
   void CreateTensor(mojom::TensorInfoPtr tensor_info,
+                    mojo_base::BigBuffer tensor_data,
                     CreateTensorCallback callback) override;
 
   // This method will be called by `CreateTensor()` after the tensor info is
@@ -154,6 +157,7 @@
   void DidCreateWebNNTensorImpl(
       CreateTensorCallback callback,
       mojo::PendingAssociatedRemote<mojom::WebNNTensor> remote,
+      mojo_base::BigBuffer tensor_data,
       base::expected<std::unique_ptr<WebNNTensorImpl>, mojom::ErrorPtr> result);
 
   SEQUENCE_CHECKER(sequence_checker_);
diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webnn_context_provider_impl.cc
index 1db3f50..3252e4c 100644
--- a/services/webnn/webnn_context_provider_impl.cc
+++ b/services/webnn/webnn_context_provider_impl.cc
@@ -57,16 +57,16 @@
   kMaxValue = kNpu,
 };
 
-void RecordDeviceType(const mojom::CreateContextOptions::Device device) {
+void RecordDeviceType(const mojom::Device device) {
   DeviceTypeUma uma_value;
   switch (device) {
-    case mojom::CreateContextOptions::Device::kCpu:
+    case mojom::Device::kCpu:
       uma_value = DeviceTypeUma::kCpu;
       break;
-    case mojom::CreateContextOptions::Device::kGpu:
+    case mojom::Device::kGpu:
       uma_value = DeviceTypeUma::kGpu;
       break;
-    case mojom::CreateContextOptions::Device::kNpu:
+    case mojom::Device::kNpu:
       uma_value = DeviceTypeUma::kNpu;
       break;
   }
@@ -208,7 +208,7 @@
 #endif  // BUILDFLAG(IS_WIN)
 
 #if BUILDFLAG(IS_APPLE)
-  if (__builtin_available(macOS 14, *)) {
+  if (__builtin_available(macOS 14.4, *)) {
     if (base::FeatureList::IsEnabled(mojom::features::kWebNNCoreML)
 #if BUILDFLAG(IS_MAC)
         && base::mac::GetCPUType() == base::mac::CPUType::kArm
diff --git a/services/webnn/webnn_context_provider_impl_unittest.cc b/services/webnn/webnn_context_provider_impl_unittest.cc
index 227bf7b0..1b5bfd10 100644
--- a/services/webnn/webnn_context_provider_impl_unittest.cc
+++ b/services/webnn/webnn_context_provider_impl_unittest.cc
@@ -89,7 +89,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> future;
   provider_remote->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kCpu,
+          mojom::Device::kCpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       future.GetCallback());
   mojom::CreateContextResultPtr result = future.Take();
@@ -110,7 +110,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> future;
   provider_remote->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kGpu,
+          mojom::Device::kGpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       future.GetCallback());
   mojom::CreateContextResultPtr result = future.Take();
@@ -131,7 +131,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> future;
   provider_remote->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kNpu,
+          mojom::Device::kNpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       future.GetCallback());
   mojom::CreateContextResultPtr result = future.Take();
@@ -152,7 +152,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> future;
   provider_remote->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kNpu,
+          mojom::Device::kNpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       future.GetCallback());
   mojom::CreateContextResultPtr result = future.Take();
diff --git a/services/webnn/webnn_graph_builder_impl.cc b/services/webnn/webnn_graph_builder_impl.cc
index 3a090ac..fde0331 100644
--- a/services/webnn/webnn_graph_builder_impl.cc
+++ b/services/webnn/webnn_graph_builder_impl.cc
@@ -13,6 +13,7 @@
 #include "base/memory/raw_ref.h"
 #include "base/memory/stack_allocated.h"
 #include "base/numerics/checked_math.h"
+#include "base/types/expected.h"
 #include "base/types/pass_key.h"
 #include "services/webnn/error.h"
 #include "services/webnn/public/cpp/graph_validation_utils.h"
@@ -24,6 +25,7 @@
 #include "services/webnn/webnn_context_impl.h"
 #include "services/webnn/webnn_graph_impl.h"
 #include "services/webnn/webnn_pending_constant_operand.h"
+#include "services/webnn/webnn_tensor_impl.h"
 #include "services/webnn/webnn_utils.h"
 
 // Evaluate `condition`, and if it returns false then return false.
@@ -2695,9 +2697,11 @@
 WebNNGraphBuilderImpl::ValidateGraphSuccessResult::ValidateGraphSuccessResult(
     WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
-        constant_operands)
+        constant_operands,
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands)
     : compute_resource_info(std::move(compute_resource_info)),
-      constant_operands(std::move(constant_operands)) {}
+      constant_operands(std::move(constant_operands)),
+      constant_tensor_operands(std::move(constant_tensor_operands)) {}
 
 WebNNGraphBuilderImpl::ValidateGraphSuccessResult::ValidateGraphSuccessResult(
     ValidateGraphSuccessResult&&) = default;
@@ -2783,6 +2787,7 @@
       std::move(receiver), std::move(graph_info),
       std::move(validate_graph_result->compute_resource_info),
       std::move(validate_graph_result->constant_operands),
+      std::move(validate_graph_result->constant_tensor_operands),
       base::BindOnce(&WebNNGraphBuilderImpl::DidCreateGraph,
                      weak_factory_.GetWeakPtr(), std::move(callback),
                      std::move(remote)));
@@ -2815,13 +2820,13 @@
       &WebNNGraphBuilderImpl::DestroySelf, weak_factory_.GetWeakPtr()));
 
   if (!result.has_value()) {
-    std::move(callback).Run(
-        mojom::CreateGraphResult::NewError(std::move(result.error())));
+    std::move(callback).Run(base::unexpected(std::move(result.error())));
     return;
   }
 
-  std::move(callback).Run(
-      mojom::CreateGraphResult::NewGraphRemote(std::move(remote)));
+  auto success = mojom::CreateGraphSuccess::New(std::move(remote),
+                                                result.value()->devices());
+  std::move(callback).Run(std::move(success));
 
   context_->TakeGraph(*std::move(result),
                       base::PassKey<WebNNGraphBuilderImpl>());
@@ -2870,6 +2875,9 @@
   std::vector<std::pair<OperandId, std::unique_ptr<WebNNConstantOperand>>>
       graph_constants;
   graph_constants.reserve(graph_info.constant_operand_ids_to_handles.size());
+  std::vector<std::pair<OperandId, WebNNTensorImpl*>> graph_constant_tensors;
+  graph_constant_tensors.reserve(
+      graph_info.id_to_constant_tensor_operand_map.size());
 
   for (size_t id = 0; id < graph_info.operands.size(); ++id) {
     const mojom::OperandPtr& operand = graph_info.operands[id];
@@ -2928,6 +2936,33 @@
           return std::nullopt;
         }
 
+        // Constants using tensors for weights.
+        if (auto id_and_handle_it =
+                graph_info.id_to_constant_tensor_operand_map.find(id);
+            id_and_handle_it !=
+            graph_info.id_to_constant_tensor_operand_map.end()) {
+          // `id` must correspond to a handle known by the context...
+          base::optional_ref<WebNNTensorImpl> tensor_impl =
+              context_->GetWebNNTensorImpl(id_and_handle_it->second);
+          if (!tensor_impl.has_value()) {
+            return std::nullopt;
+          }
+
+          // ...whose tensor must have the correct usage.
+          if (!tensor_impl->usage().Has(MLTensorUsageFlags::kGraphConstant)) {
+            return std::nullopt;
+          }
+
+          // ...whose data must be compatible with what `operand` expects.
+          if (!tensor_impl->IsValidWithDescriptor(operand->descriptor)) {
+            return std::nullopt;
+          }
+
+          graph_constant_tensors.emplace_back(operand_id, tensor_impl.as_ptr());
+          processed_operands.insert(operand_id);
+          break;
+        }
+
         // `id` must correspond to a pending constant operand handle...
         auto id_and_handle_it =
             graph_info.constant_operand_ids_to_handles.find(id);
@@ -3004,6 +3039,11 @@
     return std::nullopt;
   }
 
+  if (graph_constant_tensors.size() !=
+      graph_info.id_to_constant_tensor_operand_map.size()) {
+    return std::nullopt;
+  }
+
   // Validate the operations which are sorted in the topological order.
   std::optional<OperationValidationContext::ValidationResult> result =
       OperationValidationContext::ValidateOperationsAndGetDependencies(
@@ -3040,7 +3080,7 @@
           std::move(result->operand_to_dependent_operations),
           std::move(result->operand_to_producing_operation),
           base::PassKey<WebNNGraphBuilderImpl>()),
-      std::move(graph_constants)};
+      std::move(graph_constants), std::move(graph_constant_tensors)};
 }
 
 void WebNNGraphBuilderImpl::DestroySelf() {
diff --git a/services/webnn/webnn_graph_builder_impl.h b/services/webnn/webnn_graph_builder_impl.h
index e95c0d8..94a6866 100644
--- a/services/webnn/webnn_graph_builder_impl.h
+++ b/services/webnn/webnn_graph_builder_impl.h
@@ -31,6 +31,7 @@
 
 class WebNNConstantOperand;
 class WebNNContextImpl;
+class WebNNTensorImpl;
 
 // Services-side connection to an `MLGraphBuilder`. Responsible for managing
 // data associated with the graph builder.
@@ -66,7 +67,8 @@
     ValidateGraphSuccessResult(
         WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
         base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
-            constant_operands);
+            constant_operands,
+        base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands);
     ~ValidateGraphSuccessResult();
 
     ValidateGraphSuccessResult(const ValidateGraphSuccessResult&) = delete;
@@ -83,6 +85,10 @@
     // `keep_builder_resources_for_testing` is false.
     base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
         constant_operands;
+
+    // Constant tensors associated with this graph, which will be used during
+    // graph construction.
+    base::flat_map<OperandId, WebNNTensorImpl*> constant_tensor_operands;
   };
 
   // Transfer ownership of this builder's resources to a returned
diff --git a/services/webnn/webnn_graph_builder_impl_unittest.cc b/services/webnn/webnn_graph_builder_impl_unittest.cc
index 7b7293e..7a48f05 100644
--- a/services/webnn/webnn_graph_builder_impl_unittest.cc
+++ b/services/webnn/webnn_graph_builder_impl_unittest.cc
@@ -55,7 +55,8 @@
       ComputeResourceInfo compute_resource_info)
       : WebNNGraphImpl(std::move(receiver),
                        context,
-                       std::move(compute_resource_info)) {}
+                       std::move(compute_resource_info),
+                       /*devices=*/{}) {}
   ~FakeWebNNGraphImpl() override = default;
 
  private:
@@ -92,6 +93,8 @@
       WebNNGraphImpl::ComputeResourceInfo compute_resource_info,
       base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>
       /*constant_operands*/,
+      base::flat_map<OperandId, WebNNTensorImpl*>
+      /*constant_tensor_operands*/,
       CreateGraphImplCallback callback) override {
     // Asynchronously resolve `callback` so there's an opportunity for
     // subsequent messages to be (illegally) sent from the `WebNNGraphBuilder`
@@ -202,11 +205,13 @@
 
   mojom::GraphInfoPtr graph_info = BuildSimpleGraphInfo(graph_builder_remote());
 
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote()->CreateGraph(std::move(graph_info),
                                       create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
-  EXPECT_TRUE(create_graph_result->is_graph_remote());
+  auto create_graph_result = create_graph_future.Take();
+  EXPECT_TRUE(create_graph_result.has_value());
 
   // The remote should disconnect shortly after the future resolves since the
   // `WebNNGraphBuilder` is destroyed shortly after firing its `CreateGraph()`
@@ -218,7 +223,9 @@
 TEST_F(WebNNGraphBuilderImplTest, CreateGraphTwice) {
   mojom::GraphInfoPtr graph_info = BuildSimpleGraphInfo(graph_builder_remote());
 
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote()->CreateGraph(CloneGraphInfoForTesting(*graph_info),
                                       create_graph_future.GetCallback());
 
@@ -243,17 +250,21 @@
                      /*max_value=*/7.0);
   EXPECT_TRUE(builder.IsValidGraphForTesting(GetContextPropertiesForTesting()));
 
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote()->CreateGraph(builder.TakeGraphInfo(),
                                       create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
-  EXPECT_TRUE(create_graph_result->is_graph_remote());
+  auto create_graph_result = create_graph_future.Take();
+  EXPECT_TRUE(create_graph_result.has_value());
 }
 
 TEST_F(WebNNGraphBuilderImplTest, CreatePendingConstantOnBuiltGraph) {
   mojom::GraphInfoPtr graph_info = BuildSimpleGraphInfo(graph_builder_remote());
 
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote()->CreateGraph(CloneGraphInfoForTesting(*graph_info),
                                       create_graph_future.GetCallback());
 
diff --git a/services/webnn/webnn_graph_impl.cc b/services/webnn/webnn_graph_impl.cc
index 3ba556a..259970b 100644
--- a/services/webnn/webnn_graph_impl.cc
+++ b/services/webnn/webnn_graph_impl.cc
@@ -90,10 +90,12 @@
 WebNNGraphImpl::WebNNGraphImpl(
     mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
     WebNNContextImpl* context,
-    ComputeResourceInfo compute_resource_info)
+    ComputeResourceInfo compute_resource_info,
+    std::vector<mojom::Device> devices)
     : compute_resource_info_(std::move(compute_resource_info)),
       context_(context),
-      receiver_(this, std::move(receiver)) {
+      receiver_(this, std::move(receiver)),
+      devices_(std::move(devices)) {
   CHECK(context_);
 #if DCHECK_IS_ON()
   context_->AssertCalledOnValidSequence();
@@ -128,6 +130,14 @@
     if (!input_tensor.has_value()) {
       return;
     }
+
+    // Input MLTensor is always dispatchable, which isn’t allowed when used as
+    // a graph constant.
+    if (input_tensor->usage().Has(MLTensorUsageFlags::kGraphConstant)) {
+      receiver_.ReportBadMessage(kBadMessageInvalidTensor);
+      return;
+    }
+
     name_to_input_tensors.emplace_back(name, input_tensor.as_ptr());
   }
   base::flat_map<std::string_view, WebNNTensorImpl*> name_to_input_tensor_map(
@@ -150,6 +160,14 @@
     if (!output_tensor.has_value()) {
       return;
     }
+
+    // Output MLTensor is always dispatchable, which isn’t allowed when used as
+    // a graph constant.
+    if (output_tensor->usage().Has(MLTensorUsageFlags::kGraphConstant)) {
+      receiver_.ReportBadMessage(kBadMessageInvalidTensor);
+      return;
+    }
+
     name_to_output_tensors.emplace_back(name, output_tensor.as_ptr());
   }
 
diff --git a/services/webnn/webnn_graph_impl.h b/services/webnn/webnn_graph_impl.h
index aff0840..364d4db5 100644
--- a/services/webnn/webnn_graph_impl.h
+++ b/services/webnn/webnn_graph_impl.h
@@ -57,7 +57,8 @@
   // context.
   WebNNGraphImpl(mojo::PendingAssociatedReceiver<mojom::WebNNGraph> receiver,
                  WebNNContextImpl* context,
-                 ComputeResourceInfo compute_resource_info);
+                 ComputeResourceInfo compute_resource_info,
+                 std::vector<mojom::Device> devices);
 
   WebNNGraphImpl(const WebNNGraphImpl&) = delete;
   WebNNGraphImpl& operator=(const WebNNGraphImpl&) = delete;
@@ -69,6 +70,8 @@
 
   WebNNContextImpl* context() const { return context_.get(); }
 
+  const std::vector<mojom::Device>& devices() { return devices_; }
+
  private:
   void OnConnectionError();
 
@@ -93,6 +96,7 @@
   const raw_ptr<WebNNContextImpl> context_;
 
   mojo::AssociatedReceiver<mojom::WebNNGraph> receiver_;
+  const std::vector<mojom::Device> devices_;
 };
 
 }  // namespace webnn
diff --git a/services/webnn/webnn_graph_impl_backend_test.cc b/services/webnn/webnn_graph_impl_backend_test.cc
index b6df390..119b141e 100644
--- a/services/webnn/webnn_graph_impl_backend_test.cc
+++ b/services/webnn/webnn_graph_impl_backend_test.cc
@@ -84,7 +84,7 @@
   mojo::AssociatedRemote<mojom::WebNNTensor> webnn_tensor_remote;
 
   base::test::TestFuture<mojom::CreateTensorResultPtr> create_tensor_future;
-  context_remote->CreateTensor(std::move(tensor_info),
+  context_remote->CreateTensor(std::move(tensor_info), mojo_base::BigBuffer(0),
                                create_tensor_future.GetCallback());
   mojom::CreateTensorResultPtr create_tensor_result =
       create_tensor_future.Take();
@@ -170,23 +170,25 @@
   }
 
   // The GraphImpl should be built successfully.
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote->CreateGraph(std::move(graph_info),
                                     create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
+  auto create_graph_result = create_graph_future.Take();
 
   switch (expectation) {
     case BuildAndComputeExpectation::kSuccess:
-      EXPECT_TRUE(create_graph_result->is_graph_remote())
-          << create_graph_result->get_error()->message;
+      EXPECT_TRUE(create_graph_result.has_value())
+          << create_graph_result.error()->message;
       break;
     case BuildAndComputeExpectation::kCreateGraphFailure:
-      EXPECT_TRUE(create_graph_result->is_error());
+      EXPECT_FALSE(create_graph_result.has_value());
       return {};
   }
 
   mojo::AssociatedRemote<mojom::WebNNGraph> graph_remote;
-  graph_remote.Bind(std::move(create_graph_result->get_graph_remote()));
+  graph_remote.Bind(std::move(create_graph_result.value()->graph_remote));
 
   std::vector<std::pair<std::string, blink::WebNNTensorToken>>
       named_input_handles;
@@ -475,7 +477,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> create_context_future;
   provider_remote_->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kGpu,
+          mojom::Device::kGpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       create_context_future.GetCallback());
   mojom::CreateContextResultPtr create_context_result =
diff --git a/services/webnn/webnn_graph_impl_unittest.cc b/services/webnn/webnn_graph_impl_unittest.cc
index f140df17..407a570 100644
--- a/services/webnn/webnn_graph_impl_unittest.cc
+++ b/services/webnn/webnn_graph_impl_unittest.cc
@@ -30,6 +30,7 @@
 #include "services/webnn/public/cpp/webnn_types.h"
 #include "services/webnn/public/mojom/features.mojom-features.h"
 #include "services/webnn/public/mojom/webnn_context_provider.mojom.h"
+#include "services/webnn/public/mojom/webnn_device.mojom-data-view.h"
 #include "services/webnn/public/mojom/webnn_graph.mojom.h"
 #include "services/webnn/public/mojom/webnn_graph_builder.mojom.h"
 #include "services/webnn/public/mojom/webnn_tensor.mojom.h"
@@ -55,7 +56,8 @@
       ComputeResourceInfo compute_resource_info)
       : WebNNGraphImpl(std::move(receiver),
                        context,
-                       std::move(compute_resource_info)) {}
+                       std::move(compute_resource_info),
+                       /*devices=*/{}) {}
   ~FakeWebNNGraphImpl() override = default;
 
   static void CreateAndBuild(
@@ -121,6 +123,7 @@
       base::flat_map<
           OperandId,
           std::unique_ptr<WebNNConstantOperand>> /*constant_operands*/,
+      base::flat_map<OperandId, WebNNTensorImpl*> /*constant_tensor_operands*/,
       CreateGraphImplCallback callback) override {
     FakeWebNNGraphImpl::CreateAndBuild(std::move(receiver), this, *graph_info,
                                        std::move(compute_resource_info),
@@ -175,7 +178,7 @@
       mojom::TensorInfo::New(
           OperandDescriptor::UnsafeCreateForTesting(data_type, shape),
           MLTensorUsage()),
-      create_tensor_future.GetCallback());
+      mojo_base::BigBuffer(0), create_tensor_future.GetCallback());
   mojom::CreateTensorResultPtr create_tensor_result =
       create_tensor_future.Take();
   mojo::AssociatedRemote<mojom::WebNNTensor> webnn_tensor;
@@ -211,12 +214,15 @@
 
   // Creates WebNN Graph mojo interface with the graph information which is
   // validated before compiling.
-  base::test::TestFuture<mojom::CreateGraphResultPtr> create_graph_future;
+  base::test::TestFuture<
+      base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>>
+      create_graph_future;
   graph_builder_remote->CreateGraph(std::move(graph_info),
                                     create_graph_future.GetCallback());
-  mojom::CreateGraphResultPtr create_graph_result = create_graph_future.Take();
+  base::expected<mojom::CreateGraphSuccessPtr, mojom::ErrorPtr>
+      create_graph_result = create_graph_future.Take();
   mojo::AssociatedRemote<mojom::WebNNGraph> webnn_graph;
-  webnn_graph.Bind(std::move(create_graph_result->get_graph_remote()));
+  webnn_graph.Bind(std::move(create_graph_result.value()->graph_remote));
 
   // Validate the inputs in the `Dispatch` function.
   bool valid = true;
diff --git a/services/webnn/webnn_graph_mojolpm_fuzzer.cc b/services/webnn/webnn_graph_mojolpm_fuzzer.cc
index 2a175ee..06f3215 100644
--- a/services/webnn/webnn_graph_mojolpm_fuzzer.cc
+++ b/services/webnn/webnn_graph_mojolpm_fuzzer.cc
@@ -74,7 +74,7 @@
 }
 
 void BuildGraph(const mojolpm::webnn::mojom::GraphInfo& graph_info_proto,
-                webnn::mojom::CreateContextOptions::Device device,
+                webnn::mojom::Device device,
                 uint32_t seed) {
   mojo::Remote<webnn::mojom::WebNNContextProvider> webnn_provider_remote;
   mojo::Remote<webnn::mojom::WebNNContext> webnn_context_remote;
@@ -108,11 +108,12 @@
   webnn_context_remote->CreateGraphBuilder(
       webnn_graph_builder_remote.BindNewEndpointAndPassReceiver());
 
-  base::test::TestFuture<webnn::mojom::CreateGraphResultPtr>
+  base::test::TestFuture<base::expected<webnn::mojom::CreateGraphSuccessPtr,
+                                        webnn::mojom::ErrorPtr>>
       create_graph_future;
   webnn_graph_builder_remote.set_disconnect_handler(
       base::BindLambdaForTesting([&] {
-        create_graph_future.SetValue(webnn::mojom::CreateGraphResult::NewError(
+        create_graph_future.SetValue(base::unexpected(
             webnn::mojom::Error::New(webnn::mojom::Error::Code::kUnknownError,
                                      "Failed to create graph.")));
       }));
@@ -121,12 +122,11 @@
   mojolpm::FromProto(graph_info_proto, graph_info);
   webnn_graph_builder_remote->CreateGraph(std::move(graph_info),
                                           create_graph_future.GetCallback());
-  webnn::mojom::CreateGraphResultPtr create_graph_result =
-      create_graph_future.Take();
-  if (create_graph_result->is_error()) {
+  auto create_graph_result = create_graph_future.Take();
+  if (!create_graph_result.has_value()) {
     return;
   }
-  webnn_graph_remote.Bind(std::move(create_graph_result->get_graph_remote()));
+  webnn_graph_remote.Bind(std::move(create_graph_result.value()->graph_remote));
 
   // Get graph_info again for tensor operations.
   graph_info = webnn::mojom::GraphInfo::New();
@@ -153,6 +153,7 @@
     base::test::TestFuture<webnn::mojom::CreateTensorResultPtr>
         create_tensor_future;
     webnn_context_remote->CreateTensor(std::move(tensor_info),
+                                       mojo_base::BigBuffer(0),
                                        create_tensor_future.GetCallback());
     webnn::mojom::CreateTensorResultPtr create_tensor_result =
         create_tensor_future.Take();
@@ -188,6 +189,7 @@
     base::test::TestFuture<webnn::mojom::CreateTensorResultPtr>
         create_tensor_future;
     webnn_context_remote->CreateTensor(std::move(tensor_info),
+                                       mojo_base::BigBuffer(0),
                                        create_tensor_future.GetCallback());
     webnn::mojom::CreateTensorResultPtr create_tensor_result =
         create_tensor_future.Take();
@@ -235,7 +237,7 @@
     ++action_index_;
     const auto& create_graph = action.create_graph();
 
-    webnn::mojom::CreateContextOptions::Device device;
+    webnn::mojom::Device device;
     mojolpm::FromProto(action.device(), device);
     BuildGraph(create_graph.graph_info(), device,
                testcase_->seed_for_input_data());
diff --git a/services/webnn/webnn_graph_mojolpm_fuzzer.proto b/services/webnn/webnn_graph_mojolpm_fuzzer.proto
index 1fd830a6..6a57400d 100644
--- a/services/webnn/webnn_graph_mojolpm_fuzzer.proto
+++ b/services/webnn/webnn_graph_mojolpm_fuzzer.proto
@@ -9,7 +9,7 @@
 package services.fuzzing.webnn_graph.proto;
 
 import "services/webnn/public/mojom/webnn_graph.mojom.mojolpm.proto";
-import "services/webnn/public/mojom/webnn_context_provider.mojom.mojolpm.proto";
+import "services/webnn/public/mojom/webnn_device.mojom.mojolpm.proto";
 
 // GraphInfo mojo struct describe an entire WebNN graph
 message CreateGraphAction {
@@ -19,7 +19,7 @@
 // Actions that can be performed by the fuzzer.
 message Action {
   required CreateGraphAction create_graph = 1;
-  required mojolpm.webnn.mojom.CreateContextOptions.Device device = 2;
+  required mojolpm.webnn.mojom.Device device = 2;
 }
 
 // Testcase is the top-level message type interpreted by the fuzzer.
diff --git a/services/webnn/webnn_tensor_impl.cc b/services/webnn/webnn_tensor_impl.cc
index f8ba14f68..2063c0a 100644
--- a/services/webnn/webnn_tensor_impl.cc
+++ b/services/webnn/webnn_tensor_impl.cc
@@ -26,6 +26,11 @@
 
 WebNNTensorImpl::~WebNNTensorImpl() = default;
 
+bool WebNNTensorImpl::IsValidWithDescriptor(
+    const OperandDescriptor& descriptor) const {
+  return descriptor_ == descriptor;
+}
+
 void WebNNTensorImpl::ReadTensor(ReadTensorCallback callback) {
   if (!usage().Has(MLTensorUsageFlags::kRead)) {
     receiver_.ReportBadMessage(kBadMessageInvalidTensor);
diff --git a/services/webnn/webnn_tensor_impl.h b/services/webnn/webnn_tensor_impl.h
index 7850e49..ae02f3a 100644
--- a/services/webnn/webnn_tensor_impl.h
+++ b/services/webnn/webnn_tensor_impl.h
@@ -43,6 +43,13 @@
     return weak_factory_.GetWeakPtr();
   }
 
+  bool IsValidWithDescriptor(const OperandDescriptor& descriptor) const;
+
+  // This method will be called by `WriteTensor()` after the write info is
+  // validated. A backend subclass should implement this method to write data
+  // to a platform specific buffer.
+  virtual void WriteTensorImpl(mojo_base::BigBuffer src_buffer) = 0;
+
  protected:
   // This method will be called by `ReadTensor()` after the read info is
   // validated. A backend subclass should implement this method to read data
@@ -50,11 +57,6 @@
   virtual void ReadTensorImpl(
       mojom::WebNNTensor::ReadTensorCallback callback) = 0;
 
-  // This method will be called by `WriteTensor()` after the write info is
-  // validated. A backend subclass should implement this method to write data
-  // to a platform specific buffer.
-  virtual void WriteTensorImpl(mojo_base::BigBuffer src_buffer) = 0;
-
   // WebNNContextImpl owns this object.
   const raw_ptr<WebNNContextImpl> context_;
 
diff --git a/services/webnn/webnn_tensor_impl_backend_test.cc b/services/webnn/webnn_tensor_impl_backend_test.cc
index a8f58c3..c5e5125 100644
--- a/services/webnn/webnn_tensor_impl_backend_test.cc
+++ b/services/webnn/webnn_tensor_impl_backend_test.cc
@@ -181,7 +181,7 @@
   base::test::TestFuture<mojom::CreateContextResultPtr> create_context_future;
   webnn_provider_remote_->CreateWebNNContext(
       mojom::CreateContextOptions::New(
-          mojom::CreateContextOptions::Device::kGpu,
+          mojom::Device::kGpu,
           mojom::CreateContextOptions::PowerPreference::kDefault),
       create_context_future.GetCallback());
   auto create_context_result = create_context_future.Take();
@@ -202,6 +202,7 @@
                   mojom::TensorInfoPtr tensor_info) {
   base::test::TestFuture<mojom::CreateTensorResultPtr> create_tensor_future;
   webnn_context_remote->CreateTensor(std::move(tensor_info),
+                                     mojo_base::BigBuffer(0),
                                      create_tensor_future.GetCallback());
   mojom::CreateTensorResultPtr create_tensor_result =
       create_tensor_future.Take();
@@ -312,7 +313,7 @@
       mojom::TensorInfo::New(OperandDescriptor::UnsafeCreateForTesting(
                                  OperandDataType::kUint8, large_shape),
                              MLTensorUsage{MLTensorUsageFlags::kWrite}),
-      std::move(create_tensor_callback));
+      mojo_base::BigBuffer(0), std::move(create_tensor_callback));
 
   webnn_context_remote.FlushForTesting();
   EXPECT_EQ(bad_message_helper.GetLastBadMessage(), kBadMessageInvalidTensor);
diff --git a/testing/buildbot/filters/ios.content_unittests.filter b/testing/buildbot/filters/ios.content_unittests.filter
index 48359c0e..eaafa87 100644
--- a/testing/buildbot/filters/ios.content_unittests.filter
+++ b/testing/buildbot/filters/ios.content_unittests.filter
@@ -1,11 +1,3 @@
-# TODO(crbug.com/40949065): Flakily fails a check.
--IndexedDBQuotaClientTest.DeleteBucketMixedParty/0
--IndexedDBQuotaClientTest.DeleteBucketMixedParty/1
--IndexedDBQuotaClientTest.DeleteBucketCustom/0
--IndexedDBQuotaClientTest.DeleteBucketCustom/1
--IndexedDBQuotaClientTest.DeleteBucketThirdParty/0
--IndexedDBQuotaClientTest.DeleteBucketThirdParty/1
-
 # TODO(crbug.com/393408576): These tests have been failing since
 # https://crrev.com/c/5581575.
 -TracingScenarioSystemBackendTest.FeatureNotEnabled_1
diff --git a/testing/buildbot/filters/pixel_tests.filter b/testing/buildbot/filters/pixel_tests.filter
index 37f31df..eaca011 100644
--- a/testing/buildbot/filters/pixel_tests.filter
+++ b/testing/buildbot/filters/pixel_tests.filter
@@ -113,6 +113,7 @@
 PlusAddressCreationDialogWithNoticeTest.ShowNoticeAndCancel
 *PopupViewViewsBrowsertest*
 *PopupViewViewsPlusAddressSuggestionBrowsertest*
+PrivacySandboxPSNoticeDialogViewBrowserTest.*
 PrivacySandboxDialogViewBrowserTest.*
 PrivacySandboxDialogViewAdsApiUxEnhancementBrowserTest.*
 PrivacySandboxDialogViewAdsApiUxEnhancementsLearnMoreBrowserTest.*
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 91055b9..2b7f394 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -162,6 +162,18 @@
       },
     },
   },
+  'chromium_pixel_2_q': {
+    'fail_if_unused': False,
+    'swarming': {
+      'dimensions': {
+        'device_os': 'QQ1A.191205.008',
+        'device_os_flavor': 'google',
+        'device_type': 'walleye',
+        'os': 'Android',
+        'pool': 'chromium.tests',
+      },
+    },
+  },
   'crosier-no-arc': {
     'args': [
       '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.reven.chromeos_integration_tests.filter',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 296cb47..3a97670 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -1450,48 +1450,6 @@
             ]
         }
     ],
-    "AttributionReportDeliveryOnNewNavigation": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "fuchsia",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_2m",
-                    "params": {
-                        "navigation_window": "2m"
-                    },
-                    "enable_features": [
-                        "AttributionReportDeliveryOnNewNavigation"
-                    ]
-                },
-                {
-                    "name": "Enabled_1m",
-                    "params": {
-                        "navigation_window": "1m"
-                    },
-                    "enable_features": [
-                        "AttributionReportDeliveryOnNewNavigation"
-                    ]
-                },
-                {
-                    "name": "Enabled_5m",
-                    "params": {
-                        "navigation_window": "5m"
-                    },
-                    "enable_features": [
-                        "AttributionReportDeliveryOnNewNavigation"
-                    ]
-                }
-            ]
-        }
-    ],
     "AttributionReportingInBrowserMigration": [
         {
             "platforms": [
@@ -5855,8 +5813,8 @@
                 {
                     "name": "MediumThresholds",
                     "params": {
-                        "CommitAvailableCriticalThresholdMB": "500",
-                        "CommitAvailableModerateThresholdMB": "1000"
+                        "CommitAvailableCriticalThresholdMB": "750",
+                        "CommitAvailableModerateThresholdMB": "1500"
                     },
                     "enable_features": [
                         "CommitAvailableMemoryPressureThresholds"
@@ -26136,23 +26094,6 @@
             ]
         }
     ],
-    "WebViewPaymentRequest": [
-        {
-            "platforms": [
-                "android_webview"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "AndroidPaymentIntentsOmitDeprecatedParameters",
-                        "UpdatePaymentDetailsIntentFilterInPaymentApp",
-                        "WebPayments"
-                    ]
-                }
-            ]
-        }
-    ],
     "WebViewPrefetchNativeLibrary": [
         {
             "platforms": [
diff --git a/third_party/angle b/third_party/angle
index dc43c3b..3f012a4 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit dc43c3bac829fe07fc16a1990a7e4163e8a8c159
+Subproject commit 3f012a43ee2c101543785720eedfeaa80708479d
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index 9860eee..1871265 100644
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -10800,6 +10800,9 @@
       # Name of the registered operation to be run.
       # Present only for SharedStorageAccessMethods: run and selectURL.
       optional string operationName
+      # ID of the operation call.
+      # Present only for SharedStorageAccessMethods: run and selectURL.
+      optional string operationId
       # Whether or not to keep the worket alive for future run or selectURL
       # calls.
       # Present only for SharedStorageAccessMethods: run and selectURL.
@@ -10827,12 +10830,22 @@
       # Whether or not to set an entry for a key if that key is already present.
       # Present only for SharedStorageAccessMethod: set.
       optional boolean ignoreIfPresent
-      # If the method is called on a worklet, or as part of
-      # a worklet script, it will have an ID for the associated worklet.
+      # If the method is called on a shared storage worklet, or as part of
+      # a shared storage worklet script, it will have a number for the
+      # associated worklet, denoting the (0-indexed) order of the worklet's
+      # creation relative to all other shared storage worklets created by
+      # documents using the current storage partition.
       # Present only for SharedStorageAccessMethods: addModule, createWorklet,
       # run, selectURL, and any other SharedStorageAccessMethod when the
-      # SharedStorageAccessScope is worklet.
-      optional string workletId
+      # SharedStorageAccessScope is sharedStorageWorklet.
+      # TODO(crbug.com/401011862): Pass this only for addModule & createWorklet.
+      optional integer workletOrdinal
+      # Hex representation of the DevTools token used as the TargetID for the
+      # associated shared storage worklet.
+      # Present only for SharedStorageAccessMethods: addModule, createWorklet,
+      # run, selectURL, and any other SharedStorageAccessMethod when the
+      # SharedStorageAccessScope is sharedStorageWorklet.
+      optional Target.TargetID workletTargetId
       # Name of the lock to be acquired, if present.
       # Optionally present only for SharedStorageAccessMethods: batchUpdate,
       # set, append, delete, and clear.
@@ -11197,6 +11210,27 @@
       # presence/absence depends on `type`.
       SharedStorageAccessParams params
 
+  # A shared storage run or selectURL operation finished its execution.
+  # The following parameters are included in all events.
+  event sharedStorageWorkletOperationExecutionFinished
+    parameters
+      # Time that the operation finished.
+      Network.TimeSinceEpoch finishedTime
+      # Time, in microseconds, from start of shared storage JS API call until
+      # end of operation execution in the worklet.
+      integer executionTime
+      # Enum value indicating the Shared Storage API method invoked.
+      SharedStorageAccessMethod method
+      # ID of the operation call.
+      string operationId
+      # Hex representation of the DevTools token used as the TargetID for the
+      # associated shared storage worklet.
+      Target.TargetID workletTargetId
+      # DevTools Frame Token for the primary frame tree's root.
+      Page.FrameId mainFrameId
+      # Serialization of the origin owning the Shared Storage data.
+      string ownerOrigin
+
   event storageBucketCreatedOrUpdated
     parameters
       StorageBucketInfo bucketInfo
diff --git a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
index 264b5583..1a16e5b 100644
--- a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
+++ b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
@@ -425,11 +425,7 @@
   // Correlates to IDBObjectStore::createIndex()
   CreateIndex(int64 transaction_id,
               int64 object_store_id,
-              int64 index_id,
-              mojo_base.mojom.String16 name,
-              IDBKeyPath key_path,
-              bool unique,
-              bool multi_entry);
+              IDBIndexMetadata index);
   DeleteIndex(int64 transaction_id,
               int64 object_store_id,
               int64 index_id);
diff --git a/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc b/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
index f1988db..c6dde28a 100644
--- a/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
+++ b/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/annotation/annotation_agent_impl.h"
 
 #include "base/memory/scoped_refptr.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/task/single_thread_task_runner.h"
 #include "base/trace_event/typed_macros.h"
 #include "cc/base/features.h"
@@ -187,11 +188,6 @@
   }
 }
 
-bool AlmostEqual(const ScrollOffset& a, const ScrollOffset& b) {
-  float length = (a - b).Length();
-  return length <= 1.f;
-}
-
 bool HasMarkerAroundPosition(const HitTestResult& result,
                              DocumentMarker::MarkerType marker_type) {
   // Tree should be clean before accessing the position.
@@ -211,6 +207,27 @@
   return !markers.empty();
 }
 
+float CalculateMaxScrollOffsetPx(
+    LocalFrameView* view,
+    const PhysicalRect& bounding_box,
+    const mojom::blink::ScrollIntoViewParams& params) {
+  CHECK(view);
+  CHECK(view->GetScrollableArea());
+  ScrollOffset scroll_offset_px =
+      scroll_into_view_util::GetScrollOffsetToExpose(
+          *view->GetScrollableArea(), bounding_box, PhysicalBoxStrut(),
+          *params.align_x, *params.align_y);
+  // Removes any potential negative offset from the
+  // `ScrollAlignment::CenterAlways()`.
+  scroll_offset_px =
+      view->GetScrollableArea()->ClampScrollOffset(scroll_offset_px);
+  ScrollOffset scroll_distance_px =
+      scroll_offset_px - view->GetScrollableArea()->GetScrollOffset();
+
+  return std::max(std::abs(scroll_distance_px.x()),
+                  std::abs(scroll_distance_px.y()));
+}
+
 }  // namespace
 
 AnnotationAgentImpl::AnnotationAgentImpl(
@@ -403,16 +420,9 @@
   document.SetSequentialFocusNavigationStartingPoint(&first_node);
 
   if (type_ == mojom::blink::AnnotationType::kGlic) {
-    auto* scrollable_area =
-        first_node.GetLayoutObject()->GetFrameView()->GetScrollableArea();
-    CHECK(scrollable_area);
-    ScrollOffset scroll_offset = scroll_into_view_util::GetScrollOffsetToExpose(
-        *scrollable_area, bounding_box, PhysicalBoxStrut(), *params->align_x,
-        *params->align_y);
-    // Removes any negative offset from the `ScrollAlignment::CenterAlways()`.
-    scroll_offset = scrollable_area->ClampScrollOffset(scroll_offset);
-    ScrollOffset current_scroll_offset = scrollable_area->GetScrollOffset();
-    if (AlmostEqual(scroll_offset, current_scroll_offset)) {
+    float max_distance_px = CalculateMaxScrollOffsetPx(
+        first_node.GetLayoutObject()->GetFrameView(), bounding_box, *params);
+    if (max_distance_px <= 1.f) {
       document.Markers().StartGlicMarkerAnimationIfNeeded();
     } else {
       // Scroll is guaranteed to happen. `ScrollableArea::OnScrollFinished()`
@@ -642,14 +652,8 @@
     case AnnotationType::kGlic:
       // Use kInstant for long scroll distances, kSmooth otherwise.
       if (LocalFrameView* view = document->GetFrame()->View()) {
-        ScrollOffset scroll_offset =
-            scroll_into_view_util::GetScrollOffsetToExpose(
-                *view->GetScrollableArea(), bounding_box, PhysicalBoxStrut(),
-                *params.align_x, *params.align_y);
-        gfx::Vector2dF scroll_distance =
-            scroll_offset - view->GetScrollableArea()->GetScrollOffset();
-        float max_distance_in_dips = std::max(std::abs(scroll_distance.x()),
-                                              std::abs(scroll_distance.y()));
+        float max_distance_in_dips =
+            CalculateMaxScrollOffsetPx(view, bounding_box, params);
         if (ChromeClient* client = view->GetChromeClient()) {
           // Note: We explicitly don't use `LocalFrame::DevicePixelRatio` or
           // `LocalFrame::LayoutZoomFactor` as both are affected by browser
@@ -659,6 +663,8 @@
               client->GetScreenInfo(view->GetFrame()).device_scale_factor;
           max_distance_in_dips = max_distance_in_dips / device_scale_factor;
         }
+        base::UmaHistogramCustomCounts("Glic.ScrollTo.ScrollDistance",
+                                       max_distance_in_dips, 1, 500000, 50);
         if (max_distance_in_dips < GetGlicSmoothScrollThresholdInDIPs()) {
           return ScrollBehavior::kSmooth;
         }
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.cc b/third_party/blink/renderer/core/paint/box_border_painter.cc
index 5663ed1..b30a521 100644
--- a/third_party/blink/renderer/core/paint/box_border_painter.cc
+++ b/third_party/blink/renderer/core/paint/box_border_painter.cc
@@ -818,6 +818,137 @@
   intersection.set_y(p1.y() + param * py_length);
 }
 
+using Corner = ContouredRect::Corner;
+
+struct CornerInfo {
+  Corner outer;
+  Corner inner;
+  // The outer corner of the inner border, if it was not adjusted for curvature.
+  gfx::PointF unadjusted_inner_edge;
+};
+
+void ClipOutHalfCornerWithMiter(GraphicsContext& context,
+                                const CornerInfo& corner_info,
+                                const CornerInfo& next_corner_info,
+                                AntiAliasingMode antialias_mode) {
+  // Find the relevant miter intersection. It's a point on the line that starts
+  // from the outer point of the corner and extends through the inner edge. It
+  // should generally overlap with one of the inner corners, but cannot be
+  // shorter than the edge.
+  gfx::PointF miter_intersection = corner_info.unadjusted_inner_edge;
+  gfx::PointF center_point = corner_info.inner.Center();
+
+  auto distance_from_outer = [&](const gfx::PointF& point) {
+    return (point - corner_info.outer.Outer()).Length();
+  };
+
+  if (!corner_info.inner.IsZero()) {
+    FindIntersection(corner_info.inner.Center(), corner_info.inner.End(),
+                     corner_info.outer.Outer(),
+                     corner_info.unadjusted_inner_edge, miter_intersection);
+    gfx::PointF other_miter_intersection;
+    FindIntersection(corner_info.inner.Center(), corner_info.inner.Start(),
+                     corner_info.outer.Outer(),
+                     corner_info.unadjusted_inner_edge,
+                     other_miter_intersection);
+    if (distance_from_outer(other_miter_intersection) >
+        distance_from_outer(miter_intersection)) {
+      miter_intersection = other_miter_intersection;
+    }
+
+    if (distance_from_outer(corner_info.unadjusted_inner_edge) >
+        distance_from_outer(miter_intersection)) {
+      miter_intersection = corner_info.unadjusted_inner_edge;
+    }
+  }
+
+  // When the corners intersect, the miter intersection and center point
+  // should not go beyond the non-sliced corner.
+  if (corner_info.inner.Intersects(next_corner_info.inner)) {
+    gfx::PointF next_miter_intersection;
+    FindIntersection(next_corner_info.inner.Center(),
+                     next_corner_info.inner.End(), corner_info.outer.Outer(),
+                     corner_info.unadjusted_inner_edge,
+                     next_miter_intersection);
+    if (distance_from_outer(next_miter_intersection) <
+        distance_from_outer(miter_intersection)) {
+      miter_intersection = corner_info.unadjusted_inner_edge;
+      FindIntersection(next_corner_info.inner.Center(),
+                       next_corner_info.inner.End(), corner_info.inner.Start(),
+                       corner_info.inner.Center(), center_point);
+    }
+  }
+
+  // Clip a path that cuts out the part of the corner that should not be
+  // rendered with the current side's color.
+  context.ClipPath(PathBuilder()
+                       .MoveTo(corner_info.outer.Outer())
+                       .LineTo(miter_intersection)
+                       .LineTo(center_point)
+                       .LineTo(corner_info.inner.Start())
+                       .LineTo(corner_info.outer.Start())
+                       .Close()
+                       .Finalize()
+                       .GetSkPath(),
+                   antialias_mode, SkClipOp::kDifference);
+}
+
+bool HasIntersectingCorners(const CornerInfo& first_corner,
+                            const CornerInfo& second_corner,
+                            const CornerInfo& opposite_corner,
+                            const CornerInfo& previous_corner) {
+  return first_corner.inner.Intersects(second_corner.inner) ||
+         first_corner.inner.Intersects(opposite_corner.inner) ||
+         first_corner.inner.Intersects(previous_corner.inner) ||
+         second_corner.inner.Intersects(opposite_corner.inner) ||
+         second_corner.inner.Intersects(previous_corner.inner);
+}
+
+bool ClipBorderSidePolygonFromCornersIfNeeded(
+    GraphicsContext& context,
+    const CornerInfo& first_corner,
+    const CornerInfo& second_corner,
+    const CornerInfo& opposite_corner,
+    const CornerInfo& previous_corner,
+    AntiAliasingMode first_antialias,
+    AntiAliasingMode second_antialias,
+    const gfx::Vector2dF& width_vector) {
+  // Only use this type of complex clipping if one of the corners of this side
+  // overlaps with any other corner.
+  if (!HasIntersectingCorners(first_corner, second_corner, opposite_corner,
+                              previous_corner)) {
+    return false;
+  }
+
+  // Clip the full side, including the two full corners, to avoid overlapping
+  // with the other sides.
+  context.ClipPath(PathBuilder()
+                       .SetWindRule(WindRule::RULE_NONZERO)
+                       .MoveTo(first_corner.outer.Outer())
+                       .LineTo(first_corner.outer.Start())
+                       .AddCorner(first_corner.inner)
+                       .LineTo(first_corner.outer.End() + width_vector)
+                       .LineTo(second_corner.outer.Start() + width_vector)
+                       .AddCorner(second_corner.inner)
+                       .LineTo(second_corner.outer.End())
+                       .LineTo(second_corner.outer.Outer())
+                       .Close()
+                       .Finalize()
+                       .GetSkPath(),
+                   kAntiAliased);
+
+  // Clip two paths, one with the first full corner and the second corner
+  // clipped at the miter, and the opposite one.
+  CornerInfo second_corner_reversed{second_corner.outer.Reverse(),
+                                    second_corner.inner.Reverse(),
+                                    second_corner.unadjusted_inner_edge};
+  ClipOutHalfCornerWithMiter(context, first_corner, second_corner_reversed,
+                             first_antialias);
+  ClipOutHalfCornerWithMiter(context, second_corner_reversed, first_corner,
+                             second_antialias);
+  return true;
+}
+
 }  // anonymous namespace
 
 // Holds edges grouped by opacity and sorted in paint order.
@@ -1639,11 +1770,81 @@
   return side_rect;
 }
 
+// This algorithm clips as follows:
+// The path of the side, including the full two corners, is clipped first, to
+// avoid including overlapping opposite corners. Then, each of the half corners
+// that should be excluded because of the miter is clipped out. If the corners
+// overlap each other, this might leave an ambiguous area, not explicitly part
+// of any side. By clipping out areas that are definitely part of the adjacent
+// side, those ambiguous areas would be part of both sides.
+bool BoxBorderPainter::ClipBorderSidePolygonCloseToEdgesIfNeeded(
+    BoxSide side,
+    MiterType first_miter,
+    MiterType second_miter) const {
+  if (!is_rounded_ || outer_.IsConvex()) {
+    return false;
+  }
+  const AntiAliasingMode antialias_top_or_left =
+      first_miter == MiterType::kSoftMiter ? kAntiAliased : kNotAntiAliased;
+  const AntiAliasingMode antialias_right_or_bottom =
+      second_miter == MiterType::kSoftMiter ? kAntiAliased : kNotAntiAliased;
+  const CornerInfo top_left_corner_info{
+      .outer = outer_.TopLeftCorner(),
+      .inner = inner_.TopLeftCorner(),
+      .unadjusted_inner_edge = inner_.Rect().origin()};
+
+  const CornerInfo top_right_corner_info{
+      .outer = outer_.TopRightCorner(),
+      .inner = inner_.TopRightCorner(),
+      .unadjusted_inner_edge = inner_.Rect().top_right()};
+
+  const CornerInfo bottom_right_corner_info{
+      .outer = outer_.BottomRightCorner(),
+      .inner = inner_.BottomRightCorner(),
+      .unadjusted_inner_edge = inner_.Rect().bottom_right()};
+
+  const CornerInfo bottom_left_corner_info{
+      .outer = outer_.BottomLeftCorner(),
+      .inner = inner_.BottomLeftCorner(),
+      .unadjusted_inner_edge = inner_.Rect().bottom_left()};
+  switch (side) {
+    case BoxSide::kTop:
+      return ClipBorderSidePolygonFromCornersIfNeeded(
+          context_, top_left_corner_info, top_right_corner_info,
+          bottom_right_corner_info, bottom_left_corner_info,
+          antialias_top_or_left, antialias_right_or_bottom,
+          gfx::Vector2dF(0, inner_.Rect().y() - outer_.Rect().y()));
+    case BoxSide::kRight:
+      return ClipBorderSidePolygonFromCornersIfNeeded(
+          context_, top_right_corner_info, bottom_right_corner_info,
+          bottom_left_corner_info, top_left_corner_info, antialias_top_or_left,
+          antialias_right_or_bottom,
+          gfx::Vector2dF(inner_.Rect().right() - outer_.Rect().right(), 0));
+    case BoxSide::kBottom:
+      return ClipBorderSidePolygonFromCornersIfNeeded(
+          context_, bottom_right_corner_info, bottom_left_corner_info,
+          top_left_corner_info, top_right_corner_info,
+          antialias_right_or_bottom, antialias_top_or_left,
+          gfx::Vector2dF(0, inner_.Rect().bottom() - outer_.Rect().bottom()));
+    case BoxSide::kLeft:
+      return ClipBorderSidePolygonFromCornersIfNeeded(
+          context_, bottom_left_corner_info, top_left_corner_info,
+          top_right_corner_info, bottom_right_corner_info,
+          antialias_right_or_bottom, antialias_top_or_left,
+          gfx::Vector2dF(inner_.Rect().x() - outer_.Rect().x(), 0));
+  }
+}
+
 void BoxBorderPainter::ClipBorderSidePolygon(BoxSide side,
                                              MiterType first_miter,
                                              MiterType second_miter) const {
   DCHECK(first_miter != kNoMiter || second_miter != kNoMiter);
 
+  if (ClipBorderSidePolygonCloseToEdgesIfNeeded(side, first_miter,
+                                                second_miter)) {
+    return;
+  }
+
   // The boundary of the edge for fill.
   gfx::PointF edge_quad[4];
   Vector<gfx::PointF, 5> edge_pentagon;
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.h b/third_party/blink/renderer/core/paint/box_border_painter.h
index 7a09c71..ddd2c88 100644
--- a/third_party/blink/renderer/core/paint/box_border_painter.h
+++ b/third_party/blink/renderer/core/paint/box_border_painter.h
@@ -108,6 +108,9 @@
   void DrawCurvedDoubleBoxSide(Color) const;
   void DrawCurvedRidgeGrooveBoxSide(BoxSide, Color, EBorderStyle) const;
   void ClipBorderSidePolygon(BoxSide, MiterType miter1, MiterType miter2) const;
+  bool ClipBorderSidePolygonCloseToEdgesIfNeeded(BoxSide,
+                                                 MiterType miter1,
+                                                 MiterType miter2) const;
   gfx::Rect CalculateSideRectIncludingInner(BoxSide) const;
 
   void ClipContouredRect(const ContouredRect&) const;
diff --git a/third_party/blink/renderer/modules/ai/ai_utils.cc b/third_party/blink/renderer/modules/ai/ai_utils.cc
index 2b8a63fd..0160f40 100644
--- a/third_party/blink/renderer/modules/ai/ai_utils.cc
+++ b/third_party/blink/renderer/modules/ai/ai_utils.cc
@@ -15,7 +15,7 @@
 
 mojom::blink::AISummarizerType ToMojoSummarizerType(V8SummarizerType type) {
   switch (type.AsEnum()) {
-    case V8SummarizerType::Enum::kTlDr:
+    case V8SummarizerType::Enum::kTldr:
       return mojom::blink::AISummarizerType::kTLDR;
     case V8SummarizerType::Enum::kKeyPoints:
       return mojom::blink::AISummarizerType::kKeyPoints;
diff --git a/third_party/blink/renderer/modules/ai/summarizer.cc b/third_party/blink/renderer/modules/ai/summarizer.cc
index 94c60ee..3e4b09e 100644
--- a/third_party/blink/renderer/modules/ai/summarizer.cc
+++ b/third_party/blink/renderer/modules/ai/summarizer.cc
@@ -66,7 +66,7 @@
   WritingAssistanceMetricsOptionFormat format_metric;
   WritingAssistanceMetricsOptionLength length_metric;
   switch (options.type().AsEnum()) {
-    case V8SummarizerType::Enum::kTlDr:
+    case V8SummarizerType::Enum::kTldr:
       type_metric = WritingAssistanceMetricsOptionType::kTldr;
       break;
     case V8SummarizerType::Enum::kKeyPoints:
diff --git a/third_party/blink/renderer/modules/ai/summarizer.idl b/third_party/blink/renderer/modules/ai/summarizer.idl
index b31a1e5..6ce528c 100644
--- a/third_party/blink/renderer/modules/ai/summarizer.idl
+++ b/third_party/blink/renderer/modules/ai/summarizer.idl
@@ -4,7 +4,7 @@
 
 // https://github.com/WICG/writing-assistance-apis
 
-enum SummarizerType { "tl;dr", "key-points", "teaser", "headline" };
+enum SummarizerType { "tldr", "key-points", "teaser", "headline" };
 enum SummarizerFormat { "plain-text", "markdown" };
 enum SummarizerLength { "short", "medium", "long" };
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_database.cc b/third_party/blink/renderer/modules/indexeddb/idb_database.cc
index 21c5f01..b68377f2 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_database.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_database.cc
@@ -731,8 +731,10 @@
                               const IDBKeyPath& key_path,
                               bool unique,
                               bool multi_entry) {
-  database_remote_->CreateIndex(transaction_id, object_store_id, index_id, name,
-                                key_path, unique, multi_entry);
+  database_remote_->CreateIndex(
+      transaction_id, object_store_id,
+      base::MakeRefCounted<IDBIndexMetadata>(name, index_id, key_path, unique,
+                                             multi_entry));
 }
 
 void IDBDatabase::DeleteIndex(int64_t transaction_id,
diff --git a/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h b/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h
index 3636edf..93d1257b 100644
--- a/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h
+++ b/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h
@@ -41,11 +41,7 @@
               CreateIndex,
               (int64_t transaction_id,
                int64_t object_store_id,
-               int64_t index_id,
-               const String& name,
-               const IDBKeyPath&,
-               bool unique,
-               bool multi_entry),
+               const scoped_refptr<IDBIndexMetadata>& index_metadata),
               (override));
   MOCK_METHOD(void,
               DeleteIndex,
diff --git a/third_party/blink/renderer/modules/ml/ml.cc b/third_party/blink/renderer/modules/ml/ml.cc
index 2aca96d4..dead991 100644
--- a/third_party/blink/renderer/modules/ml/ml.cc
+++ b/third_party/blink/renderer/modules/ml/ml.cc
@@ -21,15 +21,15 @@
 
 namespace {
 
-webnn::mojom::blink::CreateContextOptions::Device ConvertBlinkDeviceTypeToMojo(
+webnn::mojom::blink::Device ConvertBlinkDeviceTypeToMojo(
     const V8MLDeviceType& device_type_blink) {
   switch (device_type_blink.AsEnum()) {
     case V8MLDeviceType::Enum::kCpu:
-      return webnn::mojom::blink::CreateContextOptions::Device::kCpu;
+      return webnn::mojom::blink::Device::kCpu;
     case V8MLDeviceType::Enum::kGpu:
-      return webnn::mojom::blink::CreateContextOptions::Device::kGpu;
+      return webnn::mojom::blink::Device::kGpu;
     case V8MLDeviceType::Enum::kNpu:
-      return webnn::mojom::blink::CreateContextOptions::Device::kNpu;
+      return webnn::mojom::blink::Device::kNpu;
   }
 }
 
diff --git a/third_party/blink/renderer/modules/ml/ml_context.cc b/third_party/blink/renderer/modules/ml/ml_context.cc
index aff31ec..b386bec 100644
--- a/third_party/blink/renderer/modules/ml/ml_context.cc
+++ b/third_party/blink/renderer/modules/ml/ml_context.cc
@@ -1025,7 +1025,7 @@
   //
   // This assertion protects against the usage flags changing without updating
   // this mapping.
-  static_assert(base::to_underlying(webnn::MLTensorUsageFlags::kMaxValue) == 2);
+  static_assert(base::to_underlying(webnn::MLTensorUsageFlags::kMaxValue) == 3);
   webnn::MLTensorUsage usage;
   if (descriptor->exportableToGPU()) {
     usage.Put(webnn::MLTensorUsageFlags::kWebGpuInterop);
@@ -1037,6 +1037,9 @@
     usage.Put(webnn::MLTensorUsageFlags::kWrite);
   }
 
+  // MLTensorUsageFlags::kGraphConstant is only assigned for
+  // createConstantTensor().
+
   auto tensor_info =
       webnn::mojom::blink::TensorInfo::New(validated_descriptor, usage);
 
@@ -1046,7 +1049,84 @@
 
   // Use `WebNNContext` to create `WebNNTensor` message pipe.
   context_remote_->CreateTensor(
-      std::move(tensor_info),
+      std::move(tensor_info), mojo_base::BigBuffer(0),
+      WTF::BindOnce(&MLContext::DidCreateWebNNTensor, WrapPersistent(this),
+                    std::move(scoped_trace), WrapPersistent(resolver),
+                    std::move(validated_descriptor), usage));
+
+  return resolver->Promise();
+}
+
+ScriptPromise<MLTensor> MLContext::createConstantTensor(
+    ScriptState* script_state,
+    const MLOperandDescriptor* descriptor,
+    AllowSharedBufferSource* src_data,
+    ExceptionState& exception_state) {
+  webnn::ScopedTrace scoped_trace("MLContext::createConstantTensor");
+  if (!script_state->ContextIsValid()) {
+    exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
+                                      "Invalid script state");
+    return EmptyPromise();
+  }
+
+  if (!base::FeatureList::IsEnabled(
+          webnn::mojom::features::kWebMachineLearningNeuralNetwork)) {
+    exception_state.ThrowDOMException(DOMExceptionCode::kNotSupportedError,
+                                      "Not implemented");
+    return EmptyPromise();
+  }
+
+  if (!context_remote_.is_bound()) {
+    exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
+                                      "Context is lost.");
+    return EmptyPromise();
+  }
+
+  ASSIGN_OR_RETURN(
+      webnn::OperandDescriptor validated_descriptor,
+      webnn::OperandDescriptor::Create(
+          properties_, FromBlinkDataType(descriptor->dataType().AsEnum()),
+          descriptor->shape(), "constant_tensor"),
+      [&exception_state](std::string error) {
+        exception_state.ThrowTypeError(String(error));
+        return ScriptPromise<MLTensor>();
+      });
+
+  RETURN_IF_ERROR(webnn::ValidateTensor(properties_, validated_descriptor),
+                  [&exception_state](std::string error) {
+                    exception_state.ThrowTypeError(String(error));
+                    return ScriptPromise<MLTensor>();
+                  });
+
+  base::span<const uint8_t> bytes = AsByteSpan(*src_data);
+  if (validated_descriptor.PackedByteLength() != bytes.size()) {
+    exception_state.ThrowTypeError(
+        String::Format("The source data byte length (%zu) doesn't match the "
+                       "expected byte length (%zu).",
+                       bytes.size(), validated_descriptor.PackedByteLength()));
+    return ScriptPromise<MLTensor>();
+  }
+
+  if (!properties_.data_type_limits.constant.Has(
+          validated_descriptor.data_type())) {
+    exception_state.ThrowTypeError(String(webnn::NotSupportedConstantTypeError(
+        validated_descriptor.data_type(),
+        properties_.data_type_limits.constant)));
+    return ScriptPromise<MLTensor>();
+  }
+
+  webnn::MLTensorUsage usage =
+      webnn::MLTensorUsage{webnn::MLTensorUsageFlags::kGraphConstant};
+  auto tensor_info =
+      webnn::mojom::blink::TensorInfo::New(validated_descriptor, usage);
+
+  auto* resolver = MakeGarbageCollected<ScriptPromiseResolver<MLTensor>>(
+      script_state, exception_state.GetContext());
+  pending_resolvers_.insert(resolver);
+
+  // Use `WebNNContext` to create `WebNNTensor` message pipe.
+  context_remote_->CreateTensor(
+      std::move(tensor_info), bytes,
       WTF::BindOnce(&MLContext::DidCreateWebNNTensor, WrapPersistent(this),
                     std::move(scoped_trace), WrapPersistent(resolver),
                     std::move(validated_descriptor), usage));
diff --git a/third_party/blink/renderer/modules/ml/ml_context.h b/third_party/blink/renderer/modules/ml/ml_context.h
index 20be025..875d1a7 100644
--- a/third_party/blink/renderer/modules/ml/ml_context.h
+++ b/third_party/blink/renderer/modules/ml/ml_context.h
@@ -77,6 +77,12 @@
                                        const MLTensorDescriptor* descriptor,
                                        ExceptionState& exception_state);
 
+  ScriptPromise<MLTensor> createConstantTensor(
+      ScriptState* script_state,
+      const MLOperandDescriptor* descriptor,
+      AllowSharedBufferSource* src_data,
+      ExceptionState& exception_state);
+
   void writeTensor(ScriptState* script_state,
                    MLTensor* dst_tensor,
                    AllowSharedBufferSource* src_data,
diff --git a/third_party/blink/renderer/modules/ml/ml_context.idl b/third_party/blink/renderer/modules/ml/ml_context.idl
index 0dcdf6eb..0649d86 100644
--- a/third_party/blink/renderer/modules/ml/ml_context.idl
+++ b/third_party/blink/renderer/modules/ml/ml_context.idl
@@ -303,6 +303,14 @@
     RuntimeEnabled=MachineLearningNeuralNetwork,
     CallWith=ScriptState,
     RaisesException
+  ] Promise<MLTensor> createConstantTensor(
+        MLOperandDescriptor descriptor,
+        AllowSharedBufferSource sourceData);
+
+  [
+    RuntimeEnabled=MachineLearningNeuralNetwork,
+    CallWith=ScriptState,
+    RaisesException
   ] void writeTensor(MLTensor dstTensor, AllowSharedBufferSource srcData);
 
   [
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.cc b/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.cc
index ca734e1..ae545e6 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.cc
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.cc
@@ -7,6 +7,7 @@
 #include "services/webnn/public/mojom/webnn_graph.mojom-blink.h"
 #include "third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.h"
 #include "third_party/blink/renderer/modules/ml/webnn/ml_operand.h"
+#include "third_party/blink/renderer/modules/ml/webnn/ml_tensor.h"
 
 namespace blink {
 
@@ -16,9 +17,16 @@
                 webnn::mojom::blink::Operand::Kind::kConstant,
                 std::move(descriptor)) {}
 
+MLConstantOperand::MLConstantOperand(MLGraphBuilder* builder, MLTensor* tensor)
+    : MLOperand(builder,
+                webnn::mojom::blink::Operand::Kind::kConstant,
+                tensor->Descriptor()),
+      tensor_(tensor) {}
+
 MLConstantOperand::~MLConstantOperand() = default;
 
 void MLConstantOperand::Trace(Visitor* visitor) const {
+  visitor->Trace(tensor_);
   MLOperand::Trace(visitor);
 }
 
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.h b/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.h
index c17f0fe1..5544010 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.h
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_constant_operand.h
@@ -14,6 +14,7 @@
 namespace blink {
 
 class MLGraphBuilder;
+class MLTensor;
 
 // Represents an `MLOperand` created from the `MLGraphBuilder.constant()`
 // method. See https://www.w3.org/TR/webnn/#api-mlgraphbuilder-constant.
@@ -26,6 +27,9 @@
   MLConstantOperand(MLGraphBuilder* builder,
                     webnn::OperandDescriptor descriptor);
 
+  // Similar to above but uses a tensor for weight data.
+  MLConstantOperand(MLGraphBuilder* builder, MLTensor* tensor);
+
   MLConstantOperand(const MLConstantOperand&) = delete;
   MLConstantOperand& operator=(const MLConstantOperand&) = delete;
 
@@ -35,9 +39,13 @@
 
   const WebNNPendingConstantToken& handle() const { return handle_; }
 
+  const MLTensor* tensor() const { return tensor_; }
+
  private:
   // Identifies this constant operand in the WebNN service.
   const WebNNPendingConstantToken handle_;
+
+  Member<MLTensor> tensor_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph.cc
index a1d29d0e..672cefb1 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph.cc
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph.cc
@@ -7,6 +7,7 @@
 #include "base/types/expected_macros.h"
 #include "services/webnn/public/mojom/webnn_graph.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_ml_device_type.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer_view.h"
 #include "third_party/blink/renderer/modules/ml/ml_context.h"
@@ -118,11 +119,13 @@
                      pending_graph_remote,
                  NamedOperandDescriptors input_constraints,
                  NamedOperandDescriptors output_constraints,
+                 Vector<V8MLDeviceType> devices,
                  base::PassKey<MLGraphBuilder> /*pass_key*/)
     : input_constraints_(std::move(input_constraints)),
       output_constraints_(std::move(output_constraints)),
       ml_context_(context),
-      remote_graph_(execution_context) {
+      remote_graph_(execution_context),
+      devices_(std::move(devices)) {
   // Bind the end point of `WebNNGraph` mojo interface in the blink side.
   remote_graph_.Bind(
       std::move(pending_graph_remote),
@@ -145,6 +148,10 @@
   }
 }
 
+Vector<V8MLDeviceType> MLGraph::devices() const {
+  return devices_;
+}
+
 const MLGraph::NamedOperandDescriptors& MLGraph::GetInputConstraints() const {
   return input_constraints_;
 }
@@ -186,6 +193,11 @@
       return;
     }
 
+    if (input_tensor->Usage().Has(webnn::MLTensorUsageFlags::kGraphConstant)) {
+      exception_state.ThrowTypeError("Invalid input tensor usage");
+      return;
+    }
+
     mojo_inputs.insert(name, input_tensor->handle());
   }
 
@@ -197,6 +209,11 @@
       return;
     }
 
+    if (output_tensor->Usage().Has(webnn::MLTensorUsageFlags::kGraphConstant)) {
+      exception_state.ThrowTypeError("Invalid output tensor usage");
+      return;
+    }
+
     mojo_outputs.insert(name, output_tensor->handle());
   }
 
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph.h b/third_party/blink/renderer/modules/ml/webnn/ml_graph.h
index 5b8c84e6..d8d4c140 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph.h
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph.h
@@ -10,6 +10,7 @@
 #include "services/webnn/public/cpp/webnn_trace.h"
 #include "services/webnn/public/mojom/webnn_graph.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_ml_device_type.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_ml_operand_descriptor.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
@@ -47,6 +48,7 @@
               pending_graph_remote,
           NamedOperandDescriptors input_constraints,
           NamedOperandDescriptors output_constraints,
+          Vector<V8MLDeviceType> devices,
           base::PassKey<MLGraphBuilder> pass_key);
 
   MLGraph(const MLGraph&) = delete;
@@ -58,6 +60,7 @@
 
   // ml_graph.idl
   void destroy();
+  Vector<V8MLDeviceType> devices() const;
 
   const NamedOperandDescriptors& GetInputConstraints() const;
   const NamedOperandDescriptors& GetOutputConstraints() const;
@@ -89,6 +92,9 @@
   // The `WebNNGraph` is a compiled graph that can be executed by the hardware
   // accelerated OS machine learning API.
   HeapMojoAssociatedRemote<webnn::mojom::blink::WebNNGraph> remote_graph_;
+
+  // Devices that will be used when dispatching the graph.
+  Vector<V8MLDeviceType> devices_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl b/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl
index f620c53..6c5bfc7d 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl
@@ -8,5 +8,7 @@
   RuntimeEnabled=MachineLearningNeuralNetwork,
   Exposed=(Window, Worker)
 ] interface MLGraph {
+  readonly attribute FrozenArray<MLDeviceType> devices;
+
   void destroy();
 };
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc
index 69b33fe..6524d4c 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc
@@ -24,7 +24,9 @@
 #include "services/webnn/public/cpp/webnn_types.h"
 #include "services/webnn/public/mojom/features.mojom-blink.h"
 #include "services/webnn/public/mojom/webnn_context_provider.mojom-blink.h"
+#include "services/webnn/public/mojom/webnn_error.mojom-blink-forward.h"
 #include "services/webnn/public/mojom/webnn_graph.mojom-blink.h"
+#include "services/webnn/public/mojom/webnn_graph_builder.mojom-blink-forward.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_ml_arg_min_max_options.h"
@@ -69,6 +71,7 @@
 #include "third_party/blink/renderer/modules/ml/webnn/ml_graph_utils.h"
 #include "third_party/blink/renderer/modules/ml/webnn/ml_operand.h"
 #include "third_party/blink/renderer/modules/ml/webnn/ml_operator.h"
+#include "third_party/blink/renderer/modules/ml/webnn/ml_tensor.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
@@ -1469,8 +1472,16 @@
           webnn::OperandId operand_id = AddOperand(
               *graph_info,
               mojo::ConvertTo<blink_mojom::OperandPtr>(operand.Get()));
-          graph_info->constant_operand_ids_to_handles.insert(
-              operand_id.value(), operand->AsConstantOperand()->handle());
+          // Build the map of constant operands for this graph with the id.
+          MLConstantOperand const* constant_operand =
+              operand->AsConstantOperand();
+          if (constant_operand->tensor()) {
+            graph_info->id_to_constant_tensor_operand_map.insert(
+                operand_id.value(), constant_operand->tensor()->handle());
+          } else {
+            graph_info->constant_operand_ids_to_handles.insert(
+                operand_id.value(), operand->AsConstantOperand()->handle());
+          }
           operand_to_id_map.insert(operand, operand_id);
           break;
         }
@@ -1727,6 +1738,33 @@
   return constant;
 }
 
+MLOperand* MLGraphBuilder::constant(ScriptState* script_state,
+                                    MLTensor* tensor,
+                                    ExceptionState& exception_state) {
+  THROW_AND_RETURN_IF_ERROR(ValidateGraphBuilderState(), nullptr);
+
+  if (tensor->context() != ml_context_) {
+    exception_state.ThrowTypeError(
+        "The tensor wasn't created with this context.");
+    return nullptr;
+  }
+
+  if (!tensor->IsValid()) {
+    exception_state.ThrowDOMException(
+        DOMExceptionCode::kInvalidStateError,
+        "Tensor has been destroyed or context is lost.");
+    return nullptr;
+  }
+
+  if (!tensor->Usage().Has(webnn::MLTensorUsageFlags::kGraphConstant)) {
+    exception_state.ThrowTypeError(
+        "Tensor was not created by createConstantTensor.");
+    return nullptr;
+  }
+
+  return MakeGarbageCollected<MLConstantOperand>(this, tensor);
+}
+
 MLOperand* MLGraphBuilder::argMin(MLOperand* input,
                                   const uint32_t axis,
                                   const MLArgMinMaxOptions* options,
@@ -3279,7 +3317,8 @@
     ScriptPromiseResolver<blink::MLGraph>* resolver,
     std::pair<MLGraph::NamedOperandDescriptors,
               MLGraph::NamedOperandDescriptors> input_and_output_constraints,
-    blink_mojom::CreateGraphResultPtr result) {
+    base::expected<blink_mojom::CreateGraphSuccessPtr, blink_mojom::ErrorPtr>
+        result) {
   CHECK(has_built_);
 
   pending_resolver_.Clear();
@@ -3289,19 +3328,34 @@
     return;
   }
 
-  if (result->is_error()) {
-    const auto& create_graph_error = result->get_error();
+  if (!result.has_value()) {
+    const auto& create_graph_error = result.error();
     resolver->RejectWithDOMException(
         WebNNErrorCodeToDOMExceptionCode(create_graph_error->code),
         create_graph_error->message);
     return;
   }
 
+  auto& success = result.value();
+  Vector<V8MLDeviceType> devices;
+  for (const auto& device : success->devices) {
+    switch (device) {
+      case blink_mojom::Device::kCpu:
+        devices.push_back(V8MLDeviceType::Enum::kCpu);
+        break;
+      case blink_mojom::Device::kGpu:
+        devices.push_back(V8MLDeviceType::Enum::kGpu);
+        break;
+      case blink_mojom::Device::kNpu:
+        devices.push_back(V8MLDeviceType::Enum::kNpu);
+        break;
+    }
+  }
   auto* graph = MakeGarbageCollected<MLGraph>(
       resolver->GetExecutionContext(), ml_context_,
-      std::move(result->get_graph_remote()),
+      std::move(success->graph_remote),
       std::move(input_and_output_constraints.first),
-      std::move(input_and_output_constraints.second),
+      std::move(input_and_output_constraints.second), std::move(devices),
       base::PassKey<MLGraphBuilder>());
   ml_context_->OnGraphCreated(graph);
 
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.h b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.h
index bbdee03..8d056e8 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.h
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.h
@@ -54,6 +54,7 @@
 class MLScatterOptions;
 class MLSliceOptions;
 class MLSplitOptions;
+class MLTensor;
 class MLTransposeOptions;
 class MLTriangularOptions;
 class MLOperand;
@@ -101,6 +102,9 @@
                       const MLOperandDescriptor* desc,
                       AllowSharedBufferSource* buffer,
                       ExceptionState& exception_state);
+  MLOperand* constant(ScriptState* script_state,
+                      MLTensor* tensor,
+                      ExceptionState& exception_state);
 
   // The order of operations declaration is the same as spec.
   MLOperand* argMin(MLOperand* input,
@@ -522,7 +526,8 @@
       ScriptPromiseResolver<blink::MLGraph>* resolver,
       std::pair<MLGraph::NamedOperandDescriptors,
                 MLGraph::NamedOperandDescriptors> input_and_output_constraints,
-      webnn::mojom::blink::CreateGraphResultPtr result);
+      base::expected<webnn::mojom::blink::CreateGraphSuccessPtr,
+                     webnn::mojom::blink::ErrorPtr> result);
 
   // Check whether the graph builder is in an invalid state when the
   // `has_built_` is true or the `remote_` is unbound due to context lost. It
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl
index d0f4b52..18e0c3d 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl
@@ -240,6 +240,11 @@
     RaisesException
   ] MLOperand constant(MLOperandDescriptor desc, AllowSharedBufferSource buffer);
 
+  [
+    CallWith=ScriptState,
+    RaisesException
+  ] MLOperand constant(MLTensor tensor);
+
   [RaisesException] MLOperand argMin(MLOperand input, [EnforceRange] unsigned long axis, optional MLArgMinMaxOptions options = {});
   [RaisesException] MLOperand argMax(MLOperand input, [EnforceRange] unsigned long axis, optional MLArgMinMaxOptions options = {});
 
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc
index a2971a1..f9d660d 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "services/webnn/public/mojom/webnn_device.mojom-blink-forward.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_ml_transpose_options.h"
 #ifdef UNSAFE_BUFFERS_BUILD
 // TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
@@ -461,8 +462,9 @@
         std::make_unique<FakeWebNNGraph>(*helper_),
         blink_remote.InitWithNewEndpointAndPassReceiver());
 
-    std::move(callback).Run(blink_mojom::CreateGraphResult::NewGraphRemote(
-        std::move(blink_remote)));
+    auto success = blink_mojom::CreateGraphSuccess::New(
+        std::move(blink_remote), WTF::Vector<blink_mojom::Device>());
+    std::move(callback).Run(std::move(success));
   }
 
   void CreatePendingConstant(const WebNNPendingConstantToken& constant_handle,
@@ -499,6 +501,7 @@
   }
 
   void CreateTensor(blink_mojom::TensorInfoPtr tensor_info,
+                    mojo_base::BigBuffer tensor_data,
                     CreateTensorCallback callback) override {
     mojo::PendingAssociatedRemote<blink_mojom::WebNNTensor> blink_remote;
     auto blink_receiver = blink_remote.InitWithNewEndpointAndPassReceiver();
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.cc b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.cc
index b3023fd3..ca7eb7de 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.cc
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.cc
@@ -76,6 +76,10 @@
   return usage_.Has(webnn::MLTensorUsageFlags::kWrite);
 }
 
+bool MLTensor::constant() const {
+  return usage_.Has(webnn::MLTensorUsageFlags::kGraphConstant);
+}
+
 void MLTensor::destroy() {
   // Calling OnConnectionError() will disconnect and destroy the tensor in
   // the service. The remote tensor must remain unbound after calling
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.h b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.h
index 976b04d5..b6e8a68 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.h
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.h
@@ -60,6 +60,7 @@
   bool exportableToGPU() const;
   bool readable() const;
   bool writable() const;
+  bool constant() const;
 
   void destroy();
 
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
index c86b419..817b8e03 100644
--- a/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
+++ b/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
@@ -13,6 +13,7 @@
   readonly attribute boolean exportableToGPU;
   readonly attribute boolean readable;
   readonly attribute boolean writable;
+  readonly attribute boolean constant;
 
   void destroy();
 };
\ No newline at end of file
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc
index c7e2d318..32644aab 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -972,7 +972,9 @@
   DomWindow()->ConsumePaymentRequestToken();
   LocalFrame::ConsumeTransientUserActivation(local_frame);
 
-  VLOG(2) << "Renderer: PaymentRequest (" << id_.Utf8() << "): show()";
+  VLOG(2) << "Renderer: PaymentRequest (" << id_.Utf8() << "): show(); "
+          << "has_transient_user_activation=" << has_transient_user_activation
+          << ", has_delegated_activation: " << has_delegated_activation;
 
   UseCounter::Count(GetExecutionContext(), WebFeature::kPaymentRequestShow);
 
diff --git a/third_party/blink/renderer/platform/geometry/contoured_rect.h b/third_party/blink/renderer/platform/geometry/contoured_rect.h
index 22764f0..0dbfffd 100644
--- a/third_party/blink/renderer/platform/geometry/contoured_rect.h
+++ b/third_party/blink/renderer/platform/geometry/contoured_rect.h
@@ -130,10 +130,25 @@
     constexpr bool IsConcave() const { return curvature_ < 1; }
     constexpr bool IsZero() const { return Start() == End(); }
     constexpr bool operator==(const Corner&) const = default;
+
+    // Invert the curvature
     constexpr Corner Inverse() const {
       return Corner({Start(), Center(), End(), Outer()}, 1 / Curvature());
     }
 
+    // Change the direction (clockwise/counter-counterclockwise)
+    constexpr Corner Reverse() const {
+      return Corner({End(), Outer(), Start(), Center()}, Curvature());
+    }
+
+    constexpr gfx::RectF BoundingBox() const {
+      return gfx::BoundingRect(Start(), End());
+    }
+
+    constexpr bool Intersects(const Corner& other) const {
+      return BoundingBox().Intersects(other.BoundingBox());
+    }
+
     constexpr gfx::Vector2dF v1() const { return Outer() - Start(); }
     constexpr gfx::Vector2dF v2() const { return End() - Outer(); }
     constexpr gfx::Vector2dF v3() const { return Center() - End(); }
diff --git a/third_party/blink/renderer/platform/geometry/path_builder.cc b/third_party/blink/renderer/platform/geometry/path_builder.cc
index 414b73e..171cb3d 100644
--- a/third_party/blink/renderer/platform/geometry/path_builder.cc
+++ b/third_party/blink/renderer/platform/geometry/path_builder.cc
@@ -233,6 +233,12 @@
   return *this;
 }
 
+PathBuilder& PathBuilder::AddCorner(const ContouredRect::Corner& corner) {
+  AddCurvedCorner(builder_, corner);
+  current_path_.reset();
+  return *this;
+}
+
 PathBuilder& PathBuilder::AddContouredRect(
     const ContouredRect& contoured_rect) {
   const FloatRoundedRect& target_rect = contoured_rect.AsRoundedRect();
diff --git a/third_party/blink/renderer/platform/geometry/path_builder.h b/third_party/blink/renderer/platform/geometry/path_builder.h
index 964c4293..77d1a96 100644
--- a/third_party/blink/renderer/platform/geometry/path_builder.h
+++ b/third_party/blink/renderer/platform/geometry/path_builder.h
@@ -7,6 +7,7 @@
 
 #include <optional>
 
+#include "third_party/blink/renderer/platform/geometry/contoured_rect.h"
 #include "third_party/blink/renderer/platform/geometry/path.h"
 #include "third_party/blink/renderer/platform/geometry/path_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
@@ -24,7 +25,6 @@
 namespace blink {
 
 class AffineTransform;
-class ContouredRect;
 class FloatRoundedRect;
 
 // A helper for building immutable Paths.
@@ -111,6 +111,7 @@
   PathBuilder& AddRect(const gfx::PointF& origin, const gfx::PointF& opposite);
   PathBuilder& AddRoundedRect(const FloatRoundedRect&, bool clockwise = true);
   PathBuilder& AddContouredRect(const ContouredRect&);
+  PathBuilder& AddCorner(const ContouredRect::Corner&);
   PathBuilder& AddEllipse(const gfx::PointF& p,
                           float radius_x,
                           float radius_y,
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index b784262ea..8e8cfdaf 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -5356,7 +5356,7 @@
       name: "WebAuthenticationSupplementalPubKeys",
       status: "experimental",
     },
-    // WebBluetooth is enabled by default on Android, ChromeOS, macOS and
+    // WebBluetooth is enabled by default on Android, ChromeOS, iOS, macOS and
     // Windows.
     {
       name: "WebBluetooth",
@@ -5364,6 +5364,7 @@
       status: {
         "Android": "stable",
         "ChromeOS": "stable",
+        "iOS": "stable",
         "Mac": "stable",
         "Win": "stable",
         "default": "experimental",
diff --git a/third_party/blink/tools/blinkpy/wpt_tests/product.py b/third_party/blink/tools/blinkpy/wpt_tests/product.py
index 0a5b2bd..713d96c 100644
--- a/third_party/blink/tools/blinkpy/wpt_tests/product.py
+++ b/third_party/blink/tools/blinkpy/wpt_tests/product.py
@@ -125,7 +125,6 @@
     def additional_binary_args(self) -> List[str]:
         # Base args applicable to all embedders.
         args = [
-            '--enable-blink-test-features',
             # Expose the non-standard `window.gc()` for `wpt_internal/` tests.
             '--js-flags=--expose-gc',
             # Disable overlay scrollbar fadeout for consistent screenshots.
diff --git a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
index e3476f4..f4744a9 100644
--- a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
+++ b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
@@ -342,13 +342,8 @@
             *self.port.additional_driver_flags(),
         ])
 
-        # Implicitly pass `--enable-blink-features=MojoJS,MojoJSTest` and
-        # `--enable-experimental-web-platform-features` to the browser binary.
-        # The latter is needed in addition to `--enable-blink-test-features`
-        # because it enables some Chromium-side `base::Feature()`s:
-        # https://chromium.googlesource.com/chromium/src/+/main/content/public/common/content_switch_dependent_feature_overrides.cc
+        # Implicitly pass `--enable-blink-features=MojoJS,MojoJSTest`.
         runner_options.mojojs_path = self.port.generated_sources_directory()
-        runner_options.enable_experimental = True
 
         # TODO: RWT has subtle control on how tests are retried. For example
         # there won't be automatic retry of failed tests when they are specified
diff --git a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter_unittest.py b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter_unittest.py
index 1229944..4f465bbd 100644
--- a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter_unittest.py
+++ b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter_unittest.py
@@ -172,8 +172,6 @@
             self.assertIsNot(options.run_by_dir, 0)
             self.assertEqual(options.include, ['dir/reftest.html'])
             self.assertNotIn('--run-web-tests', options.binary_args)
-            self.assertIn('--enable-blink-test-features', options.binary_args)
-            self.assertTrue(options.enable_experimental)
             ignore_cert_flags = [
                 flag for flag in options.binary_args
                 if flag.startswith('--ignore-certificate-errors-spki-list=')
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index a7a6488..bac5380 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2796,8 +2796,8 @@
 crbug.com/413411328 external/wpt/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
-[ Win10.20h2 ] virtual/close-watcher/external/wpt/close-watcher/iframes/dialog-same-origin-ynyn.html [ Skip Timeout ]
-[ Mac12 ] virtual/close-watcher/external/wpt/close-watcher/iframes/dialog-same-origin-ynyn.html [ Skip Timeout ]
+crbug.com/419216929 [ Win10.20h2 ] virtual/close-watcher/external/wpt/close-watcher/iframes/dialog-same-origin-ynyn.html [ Skip Timeout ]
+crbug.com/419216929 [ Mac12 ] virtual/close-watcher/external/wpt/close-watcher/iframes/dialog-same-origin-ynyn.html [ Skip Timeout ]
 crbug.com/419199715 [ Win11 ] external/wpt/css/filter-effects/zero-width-filter.html [ Failure ]
 crbug.com/419199715 [ Win11-arm64 ] external/wpt/css/filter-effects/zero-width-filter.html [ Failure ]
 crbug.com/419199715 [ Win10.20h2 ] external/wpt/css/filter-effects/zero-width-filter.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability-available.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability-available.tentative.https.window.js
index f569cb4..df4e161d 100644
--- a/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability-available.tentative.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability-available.tentative.https.window.js
@@ -12,7 +12,7 @@
 
 promise_test(async () => {
   const availability = await Summarizer.availability({
-    type: 'tl;dr',
+    type: 'tldr',
     format: 'plain-text',
     length: 'medium',
     expectedInputLanguages: ['en-GB'],
@@ -24,7 +24,7 @@
 
 promise_test(async () => {
   const availability = await Summarizer.availability({
-    type: 'tl;dr',
+    type: 'tldr',
     format: 'plain-text',
     length: 'medium',
     expectedInputLanguages: ['es'], // not supported
diff --git a/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability.tentative.https.window.js
index 8528295..91cb312 100644
--- a/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability.tentative.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/ai/summarizer/summarizer-availability.tentative.https.window.js
@@ -18,7 +18,7 @@
 promise_test(async () => {
   // An array of plausible test option values.
   const kCreateOptionsSpec = [
-    {type: [undefined, 'tl;dr', 'teaser', 'key-points', 'headline']},
+    {type: [undefined, 'tldr', 'teaser', 'key-points', 'headline']},
     {format: [undefined, 'plain-text', 'markdown']},
     {length: [undefined, 'short', 'medium', 'long']},
     {expectedInputLanguages: [[], ['en'], ['es'], ['jp', 'fr']]},
diff --git a/third_party/blink/web_tests/external/wpt/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html b/third_party/blink/web_tests/external/wpt/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
index 590e9608..12cd254 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
@@ -4,9 +4,7 @@
 <link rel="help" href="https://drafts.csswg.org/css-borders-4/#corner-shaping">
 <link rel="match" href="corner-shape-any-ref.html">
 <meta name="fuzzy" content="maxDifference=0-200;totalPixels=0-550">
-<meta name="variant" content="?corner-shape=scoop&border-radius=20%&border-width=20px&border-top-color=rebeccapurple&border-bottom-color=blue">
 <meta name="variant" content="?corner-shape=scoop&border-radius=20%&border-width=20px">
-<meta name="variant" content="?corner-top-left-shape=notch&border-radius=40px&border-width=10px&border-color=blue&border-left-color=yellow">
 <meta name="variant" content="?corner-shape=superellipse(-2)&border-radius=20%&border-width=20px">
 <meta name="variant" content="?corner-top-left-shape=bevel&border-radius=40px&border-width=10px">
 <meta name="variant" content="?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%">
diff --git a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/tensor.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/tensor.https.any.js
index 1a46c35b..03057a6 100644
--- a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/tensor.https.any.js
+++ b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/tensor.https.any.js
@@ -128,6 +128,127 @@
   }, `${testName} / ${tensorDescriptor.dataType}`);
 };
 
+/**
+ * WebNN create constant tensor test.
+ * @param {String} testName - The name of the test operation.
+ * @param {MLOperandDescriptor} descriptor - The intended operand specs.
+ */
+const testCreateConstantTensor = (testName, descriptor) => {
+  let mlContext;
+  let isConstantTensorSupported = false;
+  promise_setup(async () => {
+    try {
+      mlContext = await navigator.ml.createContext(contextOptions);
+    } catch (error) {
+      throw new AssertionError(
+          `Unable to create context for ${variant} variant. ${error}`);
+    }
+
+    // Check if WebNN has constant tensor support.
+    try {
+      await mlContext.createConstantTensor(
+          {
+            dataType: 'float32',
+            shape: [1],
+          },
+          new Float32Array([0xAA]));
+      isConstantTensorSupported = true;
+    } catch (error) {
+      if (error.name !== 'NotSupportedError') {
+        throw error;
+      }
+    }
+  });
+
+  promise_test(async t => {
+    if (!isConstantTensorSupported) {
+      return;
+    }
+
+    const inputData =
+        new TypedArrayDict[descriptor.dataType](sizeOfShape(descriptor.shape))
+            .fill(0xAA);
+    if (!mlContext.opSupportLimits().constant.dataTypes.includes(
+            descriptor.dataType)) {
+      await promise_rejects_js(
+          t, TypeError, mlContext.createConstantTensor(descriptor, inputData));
+      return;
+    }
+
+    const mlTensor =
+        await mlContext.createConstantTensor(descriptor, inputData);
+    assert_true(mlTensor.constant, 'constant tensors should be constant.');
+    assert_false(mlTensor.readable, 'constant tensors should not be readable.');
+    assert_false(mlTensor.writable, 'constant tensors should not be writable.');
+  }, `${testName} / ${descriptor.dataType}`);
+
+  promise_test(async t => {
+    if (!isConstantTensorSupported) {
+      return;
+    }
+
+    try {
+      const inputDataTooBig = new TypedArrayDict[descriptor.dataType](
+          sizeOfShape(descriptor.shape) + 1);
+      await promise_rejects_js(
+          t, TypeError,
+          mlContext.createConstantTensor(descriptor, inputDataTooBig));
+    } catch (error) {
+      if (error instanceof RangeError) {
+        return;  // Skip test when dataType is too big.
+      } else {
+        throw error;
+      }
+    }
+  }, `${testName} / ${descriptor.dataType} / source data too big`);
+
+  promise_test(async t => {
+    if (!isConstantTensorSupported) {
+      return;
+    }
+
+    try {
+      const inputDataTooSmall = new TypedArrayDict[descriptor.dataType](
+          sizeOfShape(descriptor.shape) - 1);
+      await promise_rejects_js(
+          t, TypeError,
+          mlContext.createConstantTensor(descriptor, inputDataTooSmall));
+    } catch (error) {
+      if (error instanceof RangeError) {
+        return;  // Skip test when dataType is too big.
+      } else {
+        throw error;
+      }
+    }
+  }, `${testName} / ${descriptor.dataType} / source data too small`);
+};
+
+/**
+ * Same as above, but expect constant tensor creation to fail.
+ * @param {String} testName - The name of the test operation.
+ * @param {MLOperandDescriptor} descriptor - The intended operand specs.
+ */
+const testCreateConstantTensorFails = (testName, descriptor) => {
+  let mlContext;
+
+  promise_setup(async () => {
+    try {
+      mlContext = await navigator.ml.createContext(contextOptions);
+    } catch (error) {
+      throw new AssertionError(
+          `Unable to create context for ${variant} variant. ${error}`);
+    }
+  });
+
+  promise_test(async t => {
+    await promise_rejects_js(
+        t, TypeError,
+        mlContext.createConstantTensor(
+            descriptor,
+            new TypedArrayDict[descriptor.dataType](
+                sizeOfShape(descriptor.shape))));
+  }, `${testName} / ${descriptor.dataType}`);
+};
 
 promise_test(async t => {
   const tensorDescriptor = {
@@ -424,6 +545,7 @@
   const shape = [3, 5];
   let inputs = {};
   let outputs = {};
+  let isConstantTensorSupported = false;
   promise_setup(async () => {
     try {
       mlContext = await navigator.ml.createContext(contextOptions);
@@ -431,6 +553,22 @@
       throw new AssertionError(
           `Unable to create context for ${variant} variant. ${e}`);
     }
+
+    // Check if WebNN has constant tensor support.
+    try {
+      await mlContext.createConstantTensor(
+          {
+            dataType: 'float32',
+            shape: [1],
+          },
+          new Float32Array([0xAA]));
+      isConstantTensorSupported = true;
+    } catch (error) {
+      if (error.name !== 'NotSupportedError') {
+        throw error;
+      }
+    }
+
     // Construct a simple graph: A = B + C, with two outputs.
     const builder = new MLGraphBuilder(mlContext);
     const tensorDescriptor = {
@@ -1089,6 +1227,98 @@
         mlContext, dispatchOutputs['output1'],
         new Float32Array(sizeOfShape(shape)).fill(3));
   }, `${testName} / same name diff outputs tensors destroy`);
+
+  promise_test(async () => {
+    if (!isConstantTensorSupported) {
+      return;
+    }
+
+    let constantTensor = await mlContext.createConstantTensor(
+        {
+          dataType: 'float32',
+          shape: shape,
+        },
+        new Float32Array(sizeOfShape(shape)).fill(3.0));
+
+    const builder = new MLGraphBuilder(mlContext);
+    const lhsConstantOperand = builder.constant(constantTensor);
+    const rhsConstantOperand = builder.constant(constantTensor);
+    const outputOperand = builder.add(lhsConstantOperand, rhsConstantOperand);
+    const graphWithOnlyConstants =
+        await builder.build({'output': outputOperand});
+
+    const outputTensor = await mlContext.createTensor(
+        getDescriptorFromTensor(outputs['output1']));
+
+    // Output = LHS + RHS = 3 + 3 = 6
+    mlContext.dispatch(graphWithOnlyConstants, {}, {'output': outputTensor});
+
+    await assert_tensor_data_equals(
+        mlContext, outputTensor,
+        new Float32Array(sizeOfShape(shape)).fill(6.0));
+  }, `${testName} / same constant same graph`);
+
+  promise_test(async () => {
+    if (!isConstantTensorSupported) {
+      return;
+    }
+
+    const rhsConstantTensor = await mlContext.createConstantTensor(
+        {
+          dataType: 'float32',
+          shape: shape,
+        },
+        new Float32Array(sizeOfShape(shape)).fill(3.0));
+
+    const lhsInputOperandDesc = {dataType: 'float32', shape};
+
+    let graphWithConstants;
+    {
+      const builder = new MLGraphBuilder(mlContext);
+      const lhsOperand = builder.input('lhs', lhsInputOperandDesc);
+      const rhsConstantOperand = builder.constant(rhsConstantTensor);
+      const outputOperand = builder.sub(lhsOperand, rhsConstantOperand);
+      graphWithConstants = await builder.build({'output': outputOperand});
+    }
+
+    const lhsTensor =
+        await mlContext.createTensor(getDescriptorFromTensor(inputs['lhs']));
+    mlContext.writeTensor(
+        lhsTensor, new Float32Array(sizeOfShape(shape)).fill(5.0));
+
+    const outputTensor = await mlContext.createTensor(
+        getDescriptorFromTensor(outputs['output1']));
+
+    // Output = LHS - RHS = 5 - 3 = 2
+    mlContext.dispatch(
+        graphWithConstants, {
+          'lhs': lhsTensor,
+        },
+        {'output': outputTensor});
+
+    // Create another graph reusing the same constants.
+    {
+      const builder = new MLGraphBuilder(mlContext);
+      const lhsOperand = builder.input('lhs', lhsInputOperandDesc);
+      const rhsConstantOperand = builder.constant(rhsConstantTensor);
+      const outputOperand = builder.sub(lhsOperand, rhsConstantOperand);
+      graphWithConstants = await builder.build({'output': outputOperand});
+    }
+
+    mlContext.writeTensor(
+        lhsTensor, new Float32Array(sizeOfShape(shape)).fill(4.0));
+
+    // Output = LHS - RHS = 4 - 3 = 1
+    mlContext.dispatch(
+        graphWithConstants, {
+          'lhs': lhsTensor,
+        },
+        {'output': outputTensor});
+
+    await assert_tensor_data_equals(
+        mlContext, outputTensor,
+        new Float32Array(sizeOfShape(shape)).fill(1.0));
+  }, `${testName} / same constant multiple graphs`);
 };
 
 if (navigator.ml) {
@@ -1104,6 +1334,14 @@
     shape: [kMaxUnsignedLong, kMaxUnsignedLong, kMaxUnsignedLong]
   });
 
+  testCreateConstantTensor('createConstant', {dataType: 'int32', shape: [4]});
+  testCreateConstantTensor(
+      'createConstant', {dataType: 'uint8', shape: [3, 2, 4]});
+
+  testCreateConstantTensorFails(
+      'createConstantFailsEmptyDimension',
+      {dataType: 'int32', shape: [2, 0, 3]});
+
   testDestroyTensor('destroyTwice');
   testReadTensor('read');
   testWriteTensor('write');
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01-expected.png
new file mode 100644
index 0000000..d309950
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01.html b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01.html
new file mode 100644
index 0000000..924ca2c
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin01.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<style type="text/css">
+		div {
+			width: 300px;
+			height: 200px;
+			border: 25px solid black;
+			border-left-color: purple;
+			border-right-color: orange;
+			border-radius: 80px;
+			corner-shape: scoop bevel notch squircle;
+			background-color: #0f0;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		&nbsp;
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02-expected.png
new file mode 100644
index 0000000..a348b804
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02.html b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02.html
new file mode 100644
index 0000000..e3b5ba72
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin02.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<style type="text/css">
+		div {
+			width: 300px;
+			height: 200px;
+			border: 25px solid black;
+			border-left-color: purple;
+			border-right-color: orange;
+			border-radius: 50%;
+			corner-shape: scoop;
+			background-color: #0f0;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		&nbsp;
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03-expected.png
new file mode 100644
index 0000000..eaa8b98
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03.html b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03.html
new file mode 100644
index 0000000..1c37d143
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin03.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<style type="text/css">
+		div {
+			width: 300px;
+			height: 200px;
+			border: 35px solid black;
+			border-left-color: purple;
+			border-right-color: orange;
+			border-bottom-color: blue;
+			border-radius: 50%;
+			corner-shape: scoop round;
+			background-color: #0f0;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		&nbsp;
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04-expected.png
new file mode 100644
index 0000000..4f59ba68
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04.html b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04.html
new file mode 100644
index 0000000..aedc60b9
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin04.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<style type="text/css">
+		div {
+			width: 100px;
+			height: 400px;
+			border: 35px solid blue;
+			border-left-color: purple;
+			border-right-color: orange;
+			border-radius: 30%;
+			corner-shape: notch;
+			background-color: #0f0;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		&nbsp;
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05-expected.png
new file mode 100644
index 0000000..b53b5701
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05.html b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05.html
new file mode 100644
index 0000000..10c347d2
--- /dev/null
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeColorJoin05.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<style type="text/css">
+		div {
+			width: 100px;
+			height: 400px;
+			border: 35px solid blue;
+			border-left-color: purple;
+			border-right-color: orange;
+			border-radius: 30% 0 2px 10%;
+			corner-shape: scoop;
+			background-color: #0f0;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		&nbsp;
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeDotted01-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeDotted01-expected.png
index c68c9a5..1f08541 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeDotted01-expected.png
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeDotted01-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeDouble-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeDouble-expected.png
index c3d456e..fd9a308 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeDouble-expected.png
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeDouble-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeGroove-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeGroove-expected.png
index c3d456e..6712e14 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeGroove-expected.png
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeGroove-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeGroove.html b/third_party/blink/web_tests/fast/borders/cornerShapeGroove.html
index b5b0cbf..1cec0134 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeGroove.html
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeGroove.html
@@ -5,7 +5,7 @@
 		div {
 			width: 200px;
 			height: 200px;
-			border: 15px double #f00;
+			border: 15px groove #f00;
 			border-radius: 140px;
 			corner-shape: scoop bevel notch squircle;
 			background-color: #0f0;
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeOutlineNegative-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeOutlineNegative-expected.png
index 3e581e2..4534876 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeOutlineNegative-expected.png
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeOutlineNegative-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeRidge-expected.png b/third_party/blink/web_tests/fast/borders/cornerShapeRidge-expected.png
index c3d456e..fde3906 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeRidge-expected.png
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeRidge-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/cornerShapeRidge.html b/third_party/blink/web_tests/fast/borders/cornerShapeRidge.html
index b5b0cbf..100fc00 100644
--- a/third_party/blink/web_tests/fast/borders/cornerShapeRidge.html
+++ b/third_party/blink/web_tests/fast/borders/cornerShapeRidge.html
@@ -5,7 +5,7 @@
 		div {
 			width: 200px;
 			height: 200px;
-			border: 15px double #f00;
+			border: 15px ridge #f00;
 			border-radius: 140px;
 			corner-shape: scoop bevel notch squircle;
 			background-color: #0f0;
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https-expected.txt
index ed2ef8f..e1807da 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https-expected.txt
@@ -8,7 +8,8 @@
         ownerSite : https://127.0.0.1
         params : {
             scriptSourceUrl : https://127.0.0.1:8443/inspector-protocol/shared-storage-private-aggregation/resources/shared-storage-module.js
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -20,13 +21,15 @@
         ownerSite : https://127.0.0.1
         params : {
             keepAlive : true
+            operationId : 0
             operationName : contribute-to-histogram
             privateAggregationConfig : {
                 filteringIdMaxBytes : 8
                 maxContributions : 20
             }
             serializedData : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -38,6 +41,7 @@
         ownerSite : https://127.0.0.1
         params : {
             keepAlive : false
+            operationId : 1
             operationName : contribute-to-histogram
             privateAggregationConfig : {
                 aggregationCoordinatorOrigin : https://127.0.0.1:8443
@@ -58,7 +62,8 @@
                 }
             ]
             urnUuid : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https.js b/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https.js
index d724aa9..2491bba 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/private-aggregation/shared-storage-private-aggregation-config.https.js
@@ -55,7 +55,8 @@
   events.push((await dp.Storage.onceSharedStorageAccessed()).params);
 
   testRunner.log(events, 'Events: ', [
-    'accessTime', 'mainFrameId', 'urnUuid', 'workletId', 'serializedData'
+    'accessTime', 'mainFrameId', 'urnUuid', 'workletOrdinal', 'workletTargetId',
+    'serializedData'
   ]);
 
   testRunner.completeTest();
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet-expected.txt
index c5278ff..bb54c3f 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet-expected.txt
@@ -31,7 +31,8 @@
         params : {
             dataOrigin : context-origin
             scriptSourceUrl : http://127.0.0.1:8000/inspector-protocol/shared-storage/resources/shared-storage-module.js
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -43,12 +44,14 @@
         ownerSite : http://127.0.0.1
         params : {
             keepAlive : false
+            operationId : 0
             operationName : set-operation
             privateAggregationConfig : {
                 filteringIdMaxBytes : 1
             }
             serializedData : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -62,7 +65,8 @@
             ignoreIfPresent : false
             key : key-set-from-worklet
             value : value
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet.js b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet.js
index 3d3e1dbf..fc50788 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/create-worklet.js
@@ -47,7 +47,8 @@
       await dp.Storage.getSharedStorageEntries({ownerOrigin: baseOrigin});
   testRunner.log(entriesResult.result?.entries, 'Entries:');
   testRunner.log(events, 'Events: ', [
-    'accessTime', 'mainFrameId', 'urnUuid', 'workletId', 'serializedData'
+    'accessTime', 'mainFrameId', 'urnUuid', 'workletOrdinal', 'workletTargetId',
+    'serializedData'
   ]);
 
   // Clean up shared storage.
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete-expected.txt
index cccfe45f..cd453365 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete-expected.txt
@@ -45,13 +45,10 @@
     [0] : {
         accessTime : <number>
         mainFrameId : <string>
-        method : set
+        method : clear
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            ignoreIfPresent : false
-            key : key0-set-from-document
-            value : value0
         }
         scope : window
     }
@@ -63,12 +60,25 @@
         ownerSite : http://127.0.0.1
         params : {
             ignoreIfPresent : false
+            key : key0-set-from-document
+            value : value0
+        }
+        scope : window
+    }
+    [2] : {
+        accessTime : <number>
+        mainFrameId : <string>
+        method : set
+        ownerOrigin : http://127.0.0.1:8000
+        ownerSite : http://127.0.0.1
+        params : {
+            ignoreIfPresent : false
             key : key1-set-from-document
             value : value1
         }
         scope : window
     }
-    [2] : {
+    [3] : {
         accessTime : <number>
         mainFrameId : <string>
         method : append
@@ -80,7 +90,7 @@
         }
         scope : window
     }
-    [3] : {
+    [4] : {
         accessTime : <number>
         mainFrameId : <string>
         method : set
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete.js b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete.js
index eea7135..f330c56a 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-delete.js
@@ -21,10 +21,6 @@
     testRunner.log(entriesResult.result?.entries, 'Entries:');
   }
 
-  async function getSharedStorageEvents(testRunner, events) {
-    testRunner.log(events, 'Events: ', ['accessTime', 'mainFrameId']);
-  }
-
   const events = [];
   let totalEventsSoFar = 0;
 
@@ -38,13 +34,14 @@
 
   await dp.Storage.setSharedStorageTracking({enable: true});
 
-  eventPromise = getPromiseForEventCount(4);
+  eventPromise = getPromiseForEventCount(5);
 
   // The following calls should trigger events if shared storage is enabled, as
   // tracking is now enabled.
   //
-  // Generates 4 events.
+  // Generates 5 events.
   await session.evaluateAsync(`
+        sharedStorage.clear();
         sharedStorage.set('key0-set-from-document', 'value0');
         sharedStorage.set('key1-set-from-document', 'value1');
         sharedStorage.append('key1-set-from-document', 'value1');
@@ -74,7 +71,7 @@
 
   await getSharedStorageMetadata(dp, testRunner, baseOrigin);
   await getSharedStorageEntries(dp, testRunner, baseOrigin);
-  await getSharedStorageEvents(testRunner, events);
+  testRunner.log(events, 'Events: ', ['accessTime', 'mainFrameId']);
 
   testRunner.completeTest();
 })
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-expected.txt
index 5010c25..b1e7559 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-expected.txt
@@ -121,7 +121,8 @@
         ownerSite : http://127.0.0.1
         params : {
             scriptSourceUrl : http://127.0.0.1:8000/inspector-protocol/shared-storage/resources/shared-storage-module.js
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -133,12 +134,14 @@
         ownerSite : http://127.0.0.1
         params : {
             keepAlive : true
+            operationId : 0
             operationName : test-operation
             privateAggregationConfig : {
                 filteringIdMaxBytes : 1
             }
             serializedData : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -152,7 +155,8 @@
             ignoreIfPresent : false
             key : key0-set-from-worklet
             value : value0
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -166,7 +170,8 @@
             ignoreIfPresent : false
             key : key1-set-from-worklet
             value : value1
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -180,7 +185,8 @@
             ignoreIfPresent : true
             key : key2-set-from-worklet
             value : value2
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -193,7 +199,8 @@
         params : {
             key : key1-set-from-worklet
             value : value1
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -205,7 +212,8 @@
         ownerSite : http://127.0.0.1
         params : {
             key : key2-set-from-worklet
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -216,7 +224,8 @@
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -227,7 +236,8 @@
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -238,7 +248,8 @@
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -249,7 +260,8 @@
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -261,6 +273,7 @@
         ownerSite : http://127.0.0.1
         params : {
             keepAlive : true
+            operationId : 1
             operationName : test-url-selection-operation
             privateAggregationConfig : {
                 filteringIdMaxBytes : 1
@@ -279,7 +292,8 @@
                 }
             ]
             urnUuid : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -291,7 +305,8 @@
         ownerSite : http://127.0.0.1
         params : {
             key : key0-set-from-worklet
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -303,7 +318,8 @@
         ownerSite : http://127.0.0.1
         params : {
             key : key0-set-from-document
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
@@ -315,12 +331,14 @@
         ownerSite : http://127.0.0.1
         params : {
             keepAlive : false
+            operationId : 2
             operationName : clear-operation
             privateAggregationConfig : {
                 filteringIdMaxBytes : 1
             }
             serializedData : <string>
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : window
     }
@@ -331,7 +349,8 @@
         ownerOrigin : http://127.0.0.1:8000
         ownerSite : http://127.0.0.1
         params : {
-            workletId : <string>
+            workletOrdinal : <number>
+            workletTargetId : <string>
         }
         scope : sharedStorageWorklet
     }
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-tracking-disabled.js b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-tracking-disabled.js
index c519b43..0460ca7 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-tracking-disabled.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage-tracking-disabled.js
@@ -21,10 +21,6 @@
     testRunner.log(entriesResult.result?.entries, 'Entries:');
   }
 
-  async function getSharedStorageEvents(testRunner, events) {
-    testRunner.log(events, 'Events: ', ['accessTime', 'mainFrameId']);
-  }
-
   const events = [];
   dp.Storage.onSharedStorageAccessed(
       (messageObject) => {events.push(messageObject.params)});
@@ -32,6 +28,7 @@
 
   // This call should not trigger any events, since tracking is disabled.
   await session.evaluateAsync(`
+        sharedStorage.clear();
         sharedStorage.set('key0-set-from-document', 'value0');
         sharedStorage.set('key1-set-from-document', 'value1');
         sharedStorage.append('key1-set-from-document', 'value1');
@@ -43,7 +40,10 @@
   await getSharedStorageEntries(dp, testRunner, baseOrigin);
 
   // We do not expect any events.
-  await getSharedStorageEvents(testRunner, events);
+  testRunner.log(events, 'Events: ', ['accessTime', 'mainFrameId']);
+
+  // Clean up shared storage.
+  await session.evaluateAsync(`sharedStorage.clear();`);
 
   testRunner.completeTest();
 })
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage.js b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage.js
index bd98537..c3eb865f 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/shared-storage.js
@@ -24,7 +24,8 @@
 
   async function getSharedStorageEvents(testRunner, events) {
     testRunner.log(events, 'Events: ', [
-      'accessTime', 'mainFrameId', 'urnUuid', 'workletId', 'serializedData'
+      'accessTime', 'mainFrameId', 'urnUuid', 'workletOrdinal',
+      'workletTargetId', 'serializedData'
     ]);
   }
 
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished-expected.txt
new file mode 100644
index 0000000..3f8ec36
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished-expected.txt
@@ -0,0 +1,22 @@
+Tests shared storage worklet operation finished events.
+Events: [
+    [0] : {
+        executionTime : <number>
+        finishedTime : <number>
+        mainFrameId : <string>
+        method : run
+        operationId : 0
+        ownerOrigin : http://127.0.0.1:8000
+        workletTargetId : <string>
+    }
+    [1] : {
+        executionTime : <number>
+        finishedTime : <number>
+        mainFrameId : <string>
+        method : selectURL
+        operationId : 1
+        ownerOrigin : http://127.0.0.1:8000
+        workletTargetId : <string>
+    }
+]
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished.js b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished.js
new file mode 100644
index 0000000..7f638b5
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/shared-storage/worklet-operation-finished.js
@@ -0,0 +1,42 @@
+(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
+  const {dp, session, page} = await testRunner.startBlank(
+      `Tests shared storage worklet operation finished events.`);
+
+  if (typeof self.sharedStorage === 'undefined') {
+    testRunner.completeTest();
+    return;
+  }
+
+  const baseOrigin = 'http://127.0.0.1:8000/';
+  const resources = baseOrigin + 'inspector-protocol/shared-storage/resources/'
+
+  const events = [];
+  await dp.Storage.setSharedStorageTracking({enable: true});
+
+  session.evaluate(`
+      const scriptURL = "${resources}shared-storage-module.js";
+      sharedStorage.worklet.addModule(scriptURL)
+            .then(() => sharedStorage.run("set-operation", {keepAlive: true}));
+  `);
+
+  events.push(
+      (await dp.Storage.onceSharedStorageWorkletOperationExecutionFinished())
+          .params);
+
+  await session.evaluateAsync(`
+      sharedStorage.selectURL(
+          "test-url-selection-operation",
+          [{url: "https://google.com/"}, {url: "https://chromium.org/"}]
+      );
+  `);
+
+  events.push(
+      (await dp.Storage.onceSharedStorageWorkletOperationExecutionFinished())
+          .params);
+
+  testRunner.log(events, 'Events: ', [
+    'finishedTime', 'executionTime', 'mainFrameId', 'workletTargetId'
+  ]);
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any-expected.txt
index 06e874bd..1786a57 100644
--- a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any-expected.txt
@@ -1,19 +1,5 @@
 This is a testharness.js-based test.
-Found 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] MLContext interface: operation createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_own_property: interface prototype object missing non-static operation expected property "createConstantTensor" missing
-[FAIL] MLContext interface: context must inherit property "createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)" with the proper type
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLContext interface: calling createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource) on context with too few arguments must throw TypeError
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLTensor interface: attribute constant
-  assert_true: The prototype object must have a property "constant" expected true got false
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDataType, MLNumber)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLTensor)
-  assert_equals: property has wrong .length expected 1 but got 2
+Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] MLGraphBuilder interface: operation softmax(MLOperand, unsigned long, optional MLOperatorOptions)
   assert_equals: property has wrong .length expected 2 but got 1
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.serviceworker-expected.txt
index 06e874bd..1786a57 100644
--- a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.serviceworker-expected.txt
@@ -1,19 +1,5 @@
 This is a testharness.js-based test.
-Found 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] MLContext interface: operation createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_own_property: interface prototype object missing non-static operation expected property "createConstantTensor" missing
-[FAIL] MLContext interface: context must inherit property "createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)" with the proper type
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLContext interface: calling createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource) on context with too few arguments must throw TypeError
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLTensor interface: attribute constant
-  assert_true: The prototype object must have a property "constant" expected true got false
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDataType, MLNumber)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLTensor)
-  assert_equals: property has wrong .length expected 1 but got 2
+Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] MLGraphBuilder interface: operation softmax(MLOperand, unsigned long, optional MLOperatorOptions)
   assert_equals: property has wrong .length expected 2 but got 1
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.sharedworker-expected.txt
index 06e874bd..1786a57 100644
--- a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.sharedworker-expected.txt
@@ -1,19 +1,5 @@
 This is a testharness.js-based test.
-Found 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] MLContext interface: operation createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_own_property: interface prototype object missing non-static operation expected property "createConstantTensor" missing
-[FAIL] MLContext interface: context must inherit property "createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)" with the proper type
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLContext interface: calling createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource) on context with too few arguments must throw TypeError
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLTensor interface: attribute constant
-  assert_true: The prototype object must have a property "constant" expected true got false
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDataType, MLNumber)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLTensor)
-  assert_equals: property has wrong .length expected 1 but got 2
+Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] MLGraphBuilder interface: operation softmax(MLOperand, unsigned long, optional MLOperatorOptions)
   assert_equals: property has wrong .length expected 2 but got 1
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.worker-expected.txt
index 06e874bd..1786a57 100644
--- a/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/virtual/webnn-service-on-cpu/external/wpt/webnn/idlharness.https.any.worker-expected.txt
@@ -1,19 +1,5 @@
 This is a testharness.js-based test.
-Found 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] MLContext interface: operation createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_own_property: interface prototype object missing non-static operation expected property "createConstantTensor" missing
-[FAIL] MLContext interface: context must inherit property "createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource)" with the proper type
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLContext interface: calling createConstantTensor(MLOperandDescriptor, AllowSharedBufferSource) on context with too few arguments must throw TypeError
-  assert_inherits: property "createConstantTensor" not found in prototype chain
-[FAIL] MLTensor interface: attribute constant
-  assert_true: The prototype object must have a property "constant" expected true got false
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDescriptor, AllowSharedBufferSource)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLOperandDataType, MLNumber)
-  assert_equals: property has wrong .length expected 1 but got 2
-[FAIL] MLGraphBuilder interface: operation constant(MLTensor)
-  assert_equals: property has wrong .length expected 1 but got 2
+Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] MLGraphBuilder interface: operation softmax(MLOperand, unsigned long, optional MLOperatorOptions)
   assert_equals: property has wrong .length expected 2 but got 1
 Harness: the test ran to completion.
diff --git a/third_party/catapult b/third_party/catapult
index 4110450..938fc99 160000
--- a/third_party/catapult
+++ b/third_party/catapult
@@ -1 +1 @@
-Subproject commit 41104509db3116fd5a5e3af4f8242b59de7adc67
+Subproject commit 938fc9953b4159851a52022b4f2a90cddedba2fc
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index e0085ef..819a0461 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit e0085ef42c590c69f77a70b55c3a83f9ce5bbe2c
+Subproject commit 819a04615d636bf83fd2bc1b1f6b5d3673b4bdc1
diff --git a/third_party/lit/v3_0/BUILD.gn b/third_party/lit/v3_0/BUILD.gn
index c5cab26..60378312 100644
--- a/third_party/lit/v3_0/BUILD.gn
+++ b/third_party/lit/v3_0/BUILD.gn
@@ -38,6 +38,7 @@
     "//chrome/browser/resources/family_link_user_internals:build_ts",
     "//chrome/browser/resources/feedback:build_ts",
     "//chrome/browser/resources/history:build_ts",
+    "//chrome/browser/resources/infobar_internals:build_ts",
     "//chrome/browser/resources/intro:build_ts",
     "//chrome/browser/resources/key_value_pair_viewer_shared:build_ts",
     "//chrome/browser/resources/lens/overlay:build_ts",
diff --git a/third_party/perfetto b/third_party/perfetto
index b4fbf1b..c10f213 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit b4fbf1b9302d8e1fcc869098c54453a659c61211
+Subproject commit c10f213cb474e756222a165a75e8fa008e3c769b
diff --git a/third_party/rust/chromium_crates_io/Cargo.lock b/third_party/rust/chromium_crates_io/Cargo.lock
index 239810d..3b77dc4 100644
--- a/third_party/rust/chromium_crates_io/Cargo.lock
+++ b/third_party/rust/chromium_crates_io/Cargo.lock
@@ -112,7 +112,6 @@
  "fend-core",
  "font-types",
  "hex",
- "icu_capi",
  "icu_casemap",
  "icu_experimental",
  "icu_locale_core",
@@ -399,7 +398,6 @@
  "icu_calendar_data",
  "icu_locale_core",
  "icu_provider",
- "ixdtf",
  "tinystr",
  "writeable",
  "zerovec",
@@ -415,35 +413,6 @@
 ]
 
 [[package]]
-name = "icu_capi"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "diplomat",
- "diplomat-runtime",
- "icu_calendar",
- "icu_casemap",
- "icu_collator",
- "icu_datetime",
- "icu_decimal",
- "icu_experimental",
- "icu_list",
- "icu_locale",
- "icu_locale_core",
- "icu_normalizer",
- "icu_plurals",
- "icu_properties",
- "icu_provider",
- "icu_provider_adapters",
- "icu_segmenter",
- "icu_time",
- "potential_utf",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
 name = "icu_casemap"
 version = "2.0.0-beta2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -468,33 +437,6 @@
 ]
 
 [[package]]
-name = "icu_collator"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "displaydoc",
- "icu_collator_data",
- "icu_collections",
- "icu_locale_core",
- "icu_normalizer",
- "icu_properties",
- "icu_provider",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "zerovec",
-]
-
-[[package]]
-name = "icu_collator_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
 name = "icu_collections"
 version = "2.0.0-beta2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -507,38 +449,6 @@
 ]
 
 [[package]]
-name = "icu_datetime"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "displaydoc",
- "either",
- "fixed_decimal",
- "icu_calendar",
- "icu_datetime_data",
- "icu_decimal",
- "icu_locale_core",
- "icu_pattern",
- "icu_plurals",
- "icu_provider",
- "icu_time",
- "potential_utf",
- "smallvec",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_datetime_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
 name = "icu_decimal"
 version = "2.0.0-beta2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -726,7 +636,6 @@
  "icu_properties_data",
  "icu_provider",
  "potential_utf",
- "unicode-bidi",
  "zerotrie",
  "zerovec",
 ]
@@ -755,17 +664,6 @@
 ]
 
 [[package]]
-name = "icu_provider_adapters"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "icu_locale",
- "icu_provider",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
 name = "icu_provider_baked"
 version = "2.0.0-beta2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -777,57 +675,6 @@
 ]
 
 [[package]]
-name = "icu_segmenter"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "core_maths",
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_provider",
- "icu_segmenter_data",
- "potential_utf",
- "utf8_iter",
- "zerovec",
-]
-
-[[package]]
-name = "icu_segmenter_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_time"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "calendrical_calculations",
- "displaydoc",
- "icu_calendar",
- "icu_provider",
- "icu_time_data",
- "ixdtf",
- "serde",
- "tinystr",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_time_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
 name = "indexmap"
 version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -986,7 +833,6 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "serde",
- "writeable",
  "zerovec",
 ]
 
@@ -1266,11 +1112,6 @@
 ]
 
 [[package]]
-name = "unicode-bidi"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
 name = "unicode-ident"
 version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1281,11 +1122,6 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
-name = "utf16_iter"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
 name = "utf8_iter"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/third_party/rust/chromium_crates_io/Cargo.toml b/third_party/rust/chromium_crates_io/Cargo.toml
index 3e0ca945..827abd1 100644
--- a/third_party/rust/chromium_crates_io/Cargo.toml
+++ b/third_party/rust/chromium_crates_io/Cargo.toml
@@ -42,26 +42,30 @@
 version = "1.4.2"
 features = ["nightly"]  # For optimized aarch64 implementation.
 
-[dependencies.icu_capi]
-version = "2.0.0-beta2"
-default-features = false
-features = ["calendar", "compiled_data", "experimental", "casemap"]
-
 [dependencies.icu_casemap]
 version = "2.0.0-beta2"
 default-features = false
+features = ["compiled_data"]
+
 [dependencies.icu_experimental]
 version = "0.3.0-beta2"
 default-features = false
+features = ["compiled_data"]
+
 [dependencies.icu_locale_core]
 version = "2.0.0-beta2"
 default-features = false
+
 [dependencies.icu_normalizer]
 version = "2.0.0-beta2"
 default-features = false
+features = ["compiled_data"]
+
 [dependencies.icu_properties]
 version = "2.0.0-beta2"
 default-features = false
+features = ["compiled_data"]
+
 [dependencies.icu_provider]
 version = "2.0.0-beta2"
 default-features = false
diff --git a/third_party/rust/chromium_crates_io/gnrt_config.toml b/third_party/rust/chromium_crates_io/gnrt_config.toml
index f50e3ac..509ec80 100644
--- a/third_party/rust/chromium_crates_io/gnrt_config.toml
+++ b/third_party/rust/chromium_crates_io/gnrt_config.toml
@@ -167,9 +167,6 @@
 [crate.crc32fast.extra_kv]
 allow_unsafe = true
 
-[crate.crossbeam-utils.extra_kv]
-allow_unsafe = false
-
 [crate.cxx]
 extra_kv = { allow_unsafe = true }
 remove_deps = ['cc', 'link-cplusplus']
@@ -269,17 +266,9 @@
 extra_input_roots = ['../data']
 extra_src_roots = ['../data']
 
-[crate.icu_collator_data]
-extra_input_roots = ['../data']
-extra_src_roots = ['../data']
-
 [crate.icu_collections]
 extra_kv = { allow_unsafe = true }
 
-[crate.icu_datetime_data]
-extra_input_roots = ['../data']
-extra_src_roots = ['../data']
-
 [crate.icu_decimal_data]
 extra_input_roots = ['../data']
 extra_src_roots = ['../data']
@@ -320,17 +309,6 @@
 [crate.icu_provider_baked]
 extra_kv = { allow_unsafe = true }
 
-[crate.icu_segmenter_data]
-extra_input_roots = ['../data']
-extra_src_roots = ['../data']
-
-[crate.icu_time_data]
-extra_input_roots = ['../data']
-extra_src_roots = ['../data']
-
-[crate.icu_capi.extra_kv]
-allow_unsafe = false
-
 [crate.icu_casemap.extra_kv]
 allow_unsafe = false
 
@@ -379,15 +357,6 @@
 [crate.icu_properties_data.extra_kv]
 allow_unsafe = false
 
-[crate.icu_provider_adapters.extra_kv]
-allow_unsafe = false
-
-[crate.icu_time.extra_kv]
-allow_unsafe = false
-
-[crate.icu_time_data.extra_kv]
-allow_unsafe = false
-
 [crate.foldhash.extra_kv]
 allow_unsafe = true
 
diff --git a/third_party/rust/chromium_crates_io/supply-chain/config.toml b/third_party/rust/chromium_crates_io/supply-chain/config.toml
index 0622c5c..90bfc38 100644
--- a/third_party/rust/chromium_crates_io/supply-chain/config.toml
+++ b/third_party/rust/chromium_crates_io/supply-chain/config.toml
@@ -182,30 +182,15 @@
 [policy."icu_calendar_data:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."icu_capi:2.0.0-beta2"]
-criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
-
 [policy."icu_casemap:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
 [policy."icu_casemap_data:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."icu_collator:2.0.0-beta2"]
-criteria = []
-
-[policy."icu_collator_data:2.0.0-beta2"]
-criteria = []
-
 [policy."icu_collections:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."icu_datetime:2.0.0-beta2"]
-criteria = []
-
-[policy."icu_datetime_data:2.0.0-beta2"]
-criteria = []
-
 [policy."icu_decimal:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
@@ -257,24 +242,9 @@
 [policy."icu_provider:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."icu_provider_adapters:2.0.0-beta2"]
-criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
-
 [policy."icu_provider_baked:2.0.0-beta2"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."icu_segmenter:2.0.0-beta2"]
-criteria = []
-
-[policy."icu_segmenter_data:2.0.0-beta2"]
-criteria = []
-
-[policy."icu_time:2.0.0-beta2"]
-criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
-
-[policy."icu_time_data:2.0.0-beta2"]
-criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
-
 [policy."indexmap:2.9.0"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
@@ -443,18 +413,12 @@
 [policy."toktrie:0.7.19"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
-[policy."unicode-bidi:0.3.18"]
-criteria = []
-
 [policy."unicode-ident:1.0.18"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
 [policy."unicode-width:0.1.14"]
 criteria = ["crypto-safe", "safe-to-run"]
 
-[policy."utf16_iter:1.0.5"]
-criteria = []
-
 [policy."utf8_iter:1.0.4"]
 criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
 
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo_vcs_info.json
deleted file mode 100644
index 1907892..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/.cargo_vcs_info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "git": {
-    "sha1": "40c3a646731f4a14422c534a9eb5204c2008e623"
-  },
-  "path_in_vcs": "ffi/capi"
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.lock b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.lock
deleted file mode 100644
index 63653a5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.lock
+++ /dev/null
@@ -1,1209 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "autocfg"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
-
-[[package]]
-name = "calendrical_calculations"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97f73e95d668625c9b28a3072e6326773785a0cf807de9f3d632778438f3d38"
-dependencies = [
- "core_maths",
- "displaydoc",
-]
-
-[[package]]
-name = "cobs"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
-
-[[package]]
-name = "colored"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
-dependencies = [
- "lazy_static",
- "windows-sys 0.59.0",
-]
-
-[[package]]
-name = "core_maths"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
-dependencies = [
- "libm",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-dependencies = [
- "powerfmt",
-]
-
-[[package]]
-name = "diplomat"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d03b211df3fe764426cab5ac16913c1b37f762002a3e8ecd798435d7c9a4ec57"
-dependencies = [
- "diplomat_core",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "diplomat-runtime"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3f7f678b574473334cb66300ca3bff5db9b894065a668bdc353abc7ca0e2c5"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "diplomat_core"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77bc52d6ad2f9600bea1639059432d4621cb563755875c370cc3ccfe493da99c"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde",
- "smallvec",
- "strck",
- "syn",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "either"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d"
-
-[[package]]
-name = "fixed_decimal"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35943d22b2f19c0cb198ecf915910a8158e94541c89dcc63300d7799d46c2c5e"
-dependencies = [
- "displaydoc",
- "ryu",
- "smallvec",
- "writeable",
-]
-
-[[package]]
-name = "icu_calendar"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f664d19093224c9de27db5d1797b4105ae9545c0c540faf0d351884d1b24ca6"
-dependencies = [
- "calendrical_calculations",
- "displaydoc",
- "icu_calendar_data",
- "icu_locale_core",
- "icu_provider",
- "ixdtf",
- "serde",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_calendar_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd70bb6c7a5d0d24c94fa18309118879bbde09052b18eec96fc75aa4c6dbf659"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_capi"
-version = "2.0.0-beta2"
-dependencies = [
- "diplomat",
- "diplomat-runtime",
- "fixed_decimal",
- "icu_calendar",
- "icu_casemap",
- "icu_collator",
- "icu_collections",
- "icu_datetime",
- "icu_decimal",
- "icu_experimental",
- "icu_list",
- "icu_locale",
- "icu_locale_core",
- "icu_normalizer",
- "icu_plurals",
- "icu_properties",
- "icu_provider",
- "icu_provider_adapters",
- "icu_provider_blob",
- "icu_provider_fs",
- "icu_segmenter",
- "icu_time",
- "libc_alloc",
- "log",
- "potential_utf",
- "serde",
- "simple_logger",
- "tinystr",
- "unicode-bidi",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_casemap"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c7086105e07a4b9df3ee6be1b02d5f55b9348a785e53f4bcc281bed5ea2e9d8"
-dependencies = [
- "displaydoc",
- "icu_casemap_data",
- "icu_collections",
- "icu_locale_core",
- "icu_properties",
- "icu_provider",
- "potential_utf",
- "serde",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_casemap_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c73c14a74f7902d0101a574879a9994b27f34c75b4e6fcc5bc5259d5423b22d4"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_collator"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d668b7743ee4179e4f740875737bbb2d173c2183fbcaecde4d9eb0f7738a5be"
-dependencies = [
- "displaydoc",
- "icu_collator_data",
- "icu_collections",
- "icu_locale_core",
- "icu_normalizer",
- "icu_properties",
- "icu_provider",
- "serde",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "zerovec",
-]
-
-[[package]]
-name = "icu_collator_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdcca8ff65d855418d64ea4b0c77b7406a7b336d9a1af888dbbd6f14a07b5094"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_collections"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63df3227b8f369b3f7cc4003f0bdd9ca0083b871e2672811f699d69b473cc174"
-dependencies = [
- "displaydoc",
- "potential_utf",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_datetime"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4017e92fa1287fb28dc846c75b87b30b38575c2e9edc77b1edd0170fc0d339b2"
-dependencies = [
- "displaydoc",
- "either",
- "fixed_decimal",
- "icu_calendar",
- "icu_datetime_data",
- "icu_decimal",
- "icu_locale_core",
- "icu_pattern",
- "icu_plurals",
- "icu_provider",
- "icu_time",
- "litemap",
- "potential_utf",
- "serde",
- "smallvec",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_datetime_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d182dee1c26553c3cc3c5313f6db0f73127e351fb6efb1c5da589a9a2ff65cfc"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_decimal"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17040a2d0453f9705a1fba94cf034872ca7a469e1316fdce4ee07b0824f05f16"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_decimal_data",
- "icu_locale_core",
- "icu_provider",
- "serde",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_decimal_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f677ebf0e8be740243b1785ca38eb9edf3ec7b998bb11159e02b4a66b732f5d8"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_experimental"
-version = "0.3.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6302d1338eea2364d1fdb8bc95bfdb78486a68bd9041d8c3292150dd6fe64727"
-dependencies = [
- "displaydoc",
- "either",
- "fixed_decimal",
- "icu_collections",
- "icu_decimal",
- "icu_experimental_data",
- "icu_list",
- "icu_locale",
- "icu_locale_core",
- "icu_normalizer",
- "icu_pattern",
- "icu_plurals",
- "icu_properties",
- "icu_provider",
- "litemap",
- "num-bigint",
- "num-rational",
- "num-traits",
- "potential_utf",
- "serde",
- "smallvec",
- "tinystr",
- "writeable",
- "zerofrom",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_experimental_data"
-version = "0.3.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97291689c723850ebbe88f575753a80d824b0973e11c3bfd5dea435912d8f31b"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_list"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f16f8a547c49c00cf117e97a5c8a6536d0c61f2a60bd5c0eeb66b4436d2c69e5"
-dependencies = [
- "displaydoc",
- "icu_list_data",
- "icu_provider",
- "regex-automata",
- "serde",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_list_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27d3e18581b77c335c3d9445e27f62fa6dbec81387a82d55078caf6168dddb13"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_locale"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afa4c80f106c1cf0f1b66e0ae9806f603f1c2c41d004229af1b0c6cebe84c74a"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_locale_data",
- "icu_provider",
- "potential_utf",
- "serde",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_core"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b80161b66511e4eb415ef110c67ea8cab4400b749f9e30c8691fff1354934b6b"
-dependencies = [
- "displaydoc",
- "litemap",
- "serde",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c1adc94a0bde584f8751381c0427d763ef5068fd388d670fabf966569f01465"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_normalizer"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60d836c1ddf0d8f4dabfd30973dce3aea1f551ad09b382d5e7a386deccabbe77"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_normalizer_data",
- "icu_properties",
- "icu_provider",
- "serde",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "write16",
- "zerovec",
-]
-
-[[package]]
-name = "icu_normalizer_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3612f07b19be24caf69deef9d94473b6d2da9493a638c44735464a2dac0c4de6"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_pattern"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "983825f401e6bc4a13c45d552ffd9ad6f3f6b6bc0ec03f31d6835a90a46deb1f"
-dependencies = [
- "displaydoc",
- "either",
- "serde",
- "writeable",
- "yoke",
- "zerovec",
-]
-
-[[package]]
-name = "icu_plurals"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c6b9235b04c1a4acee9cb7a1454a06bcfe62fb042680b3201a11a2c62db500b"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_plurals_data",
- "icu_provider",
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "icu_plurals_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f58d4cbf60eb00771801b654302ed63e389f4fd37aae3b0fa236e5d301726cc6"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_properties"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38e872f460f80a6bc564b3545399898df1fcad0503f9da4486a5109ad0e3fe4"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_properties_data",
- "icu_provider",
- "potential_utf",
- "serde",
- "unicode-bidi",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_properties_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e35a8b7b4647edd7905c9e38c54bf699214fdd143a5df8cecd82d444ec3b94"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_provider"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d462aad52985bb71e3140fcc44e54d816cf7f2c3f25cd9b090cc77a9798504"
-dependencies = [
- "displaydoc",
- "icu_locale_core",
- "log",
- "postcard",
- "serde",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_adapters"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "555fe0430a8eb6539ef2f671bf8ae350472b2e8016acc7581fe7953141132080"
-dependencies = [
- "icu_locale",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_baked"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2794f00ee1999495f4f1a1e35aee8f54fe7cfcbcf909ec05b60522377200aecb"
-dependencies = [
- "icu_provider",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_blob"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5ec853b524f87d69130f427a593dbc8d3fbd90af5559fdf05cc3e08f172f19e"
-dependencies = [
- "icu_provider",
- "postcard",
- "serde",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_fs"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e484b3dd712ed7696e5064b446f99a5d71cc8ef18a5bf1770d0ec62a09a0e693"
-dependencies = [
- "displaydoc",
- "icu_provider",
- "icu_provider_registry",
- "serde",
- "serde-json-core",
-]
-
-[[package]]
-name = "icu_provider_registry"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "932f65eedae4c16546b40fc011329cb8ad2fbd3b217b5f67d6afd835ee0f7d19"
-
-[[package]]
-name = "icu_segmenter"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50edae3dd25f6a6e234202a15eaedd7770f46e2fc2e3db53a8ea6bca699d4ce1"
-dependencies = [
- "core_maths",
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_provider",
- "icu_segmenter_data",
- "potential_utf",
- "serde",
- "utf8_iter",
- "zerovec",
-]
-
-[[package]]
-name = "icu_segmenter_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60bc1890fd5dc85748578463dae295fcb3271e911c7dd431424ed747c29b8cb7"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_time"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b506660b18afcbb7f089d616b79bcb2c58c62ef6b308b8ba09b89b177f0228ec"
-dependencies = [
- "calendrical_calculations",
- "displaydoc",
- "icu_calendar",
- "icu_provider",
- "icu_time_data",
- "ixdtf",
- "serde",
- "tinystr",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_time_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b15e682b25e7f4b790941d29f014e0581e00d9565e052ce0e3476b1f2a94332"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
-
-[[package]]
-name = "ixdtf"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3be3d801e2817c5311a3be4f1e1b2148dcd2b10baadb3a5eade0544a0521ac9"
-dependencies = [
- "displaydoc",
- "utf8_iter",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-
-[[package]]
-name = "libc"
-version = "0.2.170"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
-
-[[package]]
-name = "libc_alloc"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7581282928bc99698341d1de7590964c28db747c164eaac9409432a3eaed098a"
-
-[[package]]
-name = "libm"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
-
-[[package]]
-name = "litemap"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "log"
-version = "0.4.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
-
-[[package]]
-name = "num-bigint"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
-dependencies = [
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
-[[package]]
-name = "num-integer"
-version = "0.1.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
-dependencies = [
- "num-bigint",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "postcard"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8"
-dependencies = [
- "cobs",
- "serde",
-]
-
-[[package]]
-name = "potential_utf"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
-dependencies = [
- "serde",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "powerfmt"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.93"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
-
-[[package]]
-name = "ryu"
-version = "1.0.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
-
-[[package]]
-name = "serde"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde-json-core"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8014aeea272bca0f0779778d43253f2f3375b414185b30e6ecc4d3e4a9994781"
-dependencies = [
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "simple_logger"
-version = "4.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e7e46c8c90251d47d08b28b8a419ffb4aede0f87c2eea95e17d1d5bacbf3ef1"
-dependencies = [
- "colored",
- "log",
- "time",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "strck"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42316e70da376f3d113a68d138a60d8a9883c604fe97942721ec2068dab13a9f"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "time"
-version = "0.3.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
-dependencies = [
- "deranged",
- "itoa",
- "libc",
- "num-conv",
- "num_threads",
- "powerfmt",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-
-[[package]]
-name = "time-macros"
-version = "0.2.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
-dependencies = [
- "num-conv",
- "time-core",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
-dependencies = [
- "displaydoc",
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
-
-[[package]]
-name = "utf16_iter"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.59.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
-dependencies = [
- "windows_aarch64_gnullvm 0.52.6",
- "windows_aarch64_msvc 0.52.6",
- "windows_i686_gnu 0.52.6",
- "windows_i686_gnullvm",
- "windows_i686_msvc 0.52.6",
- "windows_x86_64_gnu 0.52.6",
- "windows_x86_64_gnullvm 0.52.6",
- "windows_x86_64_msvc 0.52.6",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
-
-[[package]]
-name = "write16"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
-
-[[package]]
-name = "writeable"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "yoke"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerotrie"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b7a6cf4865aac8394f19ad46e37f60b929c1ba5eed798b96a32820aa9392929"
-dependencies = [
- "displaydoc",
- "litemap",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e62113720e311984f461c56b00457ae9981c0bc7859d22306cc2ae2f95571c"
-dependencies = [
- "serde",
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml
deleted file mode 100644
index 430c045..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml
+++ /dev/null
@@ -1,330 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
-[package]
-edition = "2021"
-rust-version = "1.81"
-name = "icu_capi"
-version = "2.0.0-beta2"
-authors = ["The ICU4X Project Developers"]
-build = false
-include = [
-    "bindings/**/*",
-    "!bindings/dart/**/*",
-    "src/**/*",
-    "tests/**/*",
-    "Cargo.toml",
-    "LICENSE",
-    "README.md",
-]
-autolib = false
-autobins = false
-autoexamples = false
-autotests = false
-autobenches = false
-description = "C interface to ICU4X"
-homepage = "https://icu4x.unicode.org"
-readme = "README.md"
-categories = ["internationalization"]
-license = "Unicode-3.0"
-repository = "https://github.com/unicode-org/icu4x"
-
-[package.metadata.cargo-all-features]
-denylist = [
-    "looping_panic_handler",
-    "libc_alloc",
-]
-max_combination_size = 2
-
-[package.metadata.docs.rs]
-all-features = true
-
-[features]
-any_provider = []
-buffer_provider = [
-    "dep:icu_provider_blob",
-    "dep:serde",
-    "icu_calendar?/serde",
-    "icu_casemap?/serde",
-    "icu_collator?/serde",
-    "icu_datetime?/serde",
-    "icu_decimal?/serde",
-    "icu_list?/serde",
-    "icu_locale?/serde",
-    "icu_locale_core/serde",
-    "icu_normalizer?/serde",
-    "icu_plurals?/serde",
-    "icu_properties?/serde",
-    "icu_provider/serde",
-    "icu_provider_adapters/serde",
-    "icu_segmenter?/serde",
-    "icu_time?/serde",
-    "icu_experimental?/serde",
-]
-calendar = [
-    "dep:icu_calendar",
-    "dep:icu_time",
-]
-casemap = ["dep:icu_casemap"]
-collator = ["dep:icu_collator"]
-compiled_data = [
-    "icu_calendar?/compiled_data",
-    "icu_casemap?/compiled_data",
-    "icu_collator?/compiled_data",
-    "icu_datetime?/compiled_data",
-    "icu_decimal?/compiled_data",
-    "icu_list?/compiled_data",
-    "icu_locale?/compiled_data",
-    "icu_normalizer?/compiled_data",
-    "icu_plurals?/compiled_data",
-    "icu_properties?/compiled_data",
-    "icu_segmenter?/compiled_data",
-    "icu_time?/compiled_data",
-    "icu_experimental?/compiled_data",
-]
-datetime = [
-    "dep:icu_datetime",
-    "dep:icu_calendar",
-    "dep:icu_time",
-    "dep:icu_decimal",
-    "dep:icu_plurals",
-    "icu_datetime?/experimental",
-]
-decimal = [
-    "dep:icu_decimal",
-    "dep:fixed_decimal",
-]
-default = [
-    "compiled_data",
-    "default_components",
-    "logging",
-    "simple_logger",
-    "std",
-]
-default_components = [
-    "calendar",
-    "casemap",
-    "collator",
-    "datetime",
-    "decimal",
-    "list",
-    "locale",
-    "normalizer",
-    "plurals",
-    "properties",
-    "segmenter",
-    "timezone",
-]
-experimental = ["dep:icu_experimental"]
-libc_alloc = ["dep:libc_alloc"]
-list = ["dep:icu_list"]
-locale = ["dep:icu_locale"]
-logging = [
-    "icu_provider/logging",
-    "dep:log",
-    "diplomat-runtime/log",
-    "std",
-]
-looping_panic_handler = []
-normalizer = [
-    "dep:icu_normalizer",
-    "icu_normalizer?/utf8_iter",
-    "icu_normalizer?/utf16_iter",
-]
-plurals = [
-    "dep:icu_plurals",
-    "dep:fixed_decimal",
-]
-properties = [
-    "dep:icu_properties",
-    "dep:icu_collections",
-    "dep:unicode-bidi",
-]
-provider_fs = [
-    "dep:icu_provider_fs",
-    "buffer_provider",
-    "std",
-]
-segmenter = ["dep:icu_segmenter"]
-simple_logger = [
-    "dep:simple_logger",
-    "logging",
-]
-std = []
-timezone = [
-    "dep:icu_time",
-    "dep:icu_calendar",
-]
-
-[lib]
-name = "icu_capi"
-path = "src/lib.rs"
-
-[dependencies.diplomat]
-version = "0.10.0"
-default-features = false
-
-[dependencies.diplomat-runtime]
-version = "0.10.0"
-default-features = false
-
-[dependencies.fixed_decimal]
-version = "0.7.0"
-features = ["ryu"]
-optional = true
-default-features = false
-
-[dependencies.icu_calendar]
-version = "~2.0.0-beta2"
-features = [
-    "alloc",
-    "ixdtf",
-]
-optional = true
-default-features = false
-
-[dependencies.icu_casemap]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_collator]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_collections]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_datetime]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_decimal]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_experimental]
-version = "~0.3.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_list]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_locale]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_locale_core]
-version = "2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_normalizer]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_plurals]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_properties]
-version = "~2.0.0-beta2"
-features = [
-    "alloc",
-    "unicode_bidi",
-]
-optional = true
-default-features = false
-
-[dependencies.icu_provider]
-version = "2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_provider_adapters]
-version = "~2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_provider_blob]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.icu_segmenter]
-version = "~2.0.0-beta2"
-features = ["auto"]
-optional = true
-default-features = false
-
-[dependencies.icu_time]
-version = "~2.0.0-beta2"
-features = [
-    "alloc",
-    "ixdtf",
-]
-optional = true
-default-features = false
-
-[dependencies.log]
-version = "0.4.17"
-optional = true
-default-features = false
-
-[dependencies.potential_utf]
-version = "0.1.1"
-features = ["writeable"]
-default-features = false
-
-[dependencies.serde]
-version = "1.0.110"
-optional = true
-default-features = false
-
-[dependencies.tinystr]
-version = "0.8.0"
-default-features = false
-
-[dependencies.unicode-bidi]
-version = "0.3.11"
-optional = true
-default-features = false
-
-[dependencies.writeable]
-version = "0.6.0"
-default-features = false
-
-[dependencies.zerovec]
-version = "0.11.1"
-default-features = false
-
-[target.'cfg(not(any(target_arch = "wasm32", target_os = "none")))'.dependencies.icu_provider_fs]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libc_alloc]
-version = "1.0.6"
-features = ["global"]
-optional = true
-default-features = false
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies.simple_logger]
-version = "4.0.0"
-optional = true
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml.orig
deleted file mode 100644
index 6e861b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/Cargo.toml.orig
+++ /dev/null
@@ -1,161 +0,0 @@
-# This file is part of ICU4X. For terms of use, please see the file
-# called LICENSE at the top level of the ICU4X source tree
-# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-[package]
-name = "icu_capi"
-description = "C interface to ICU4X"
-license = "Unicode-3.0"
-include = [
-    "bindings/**/*",
-    "!bindings/dart/**/*", # not yet stable
-    "src/**/*",
-    "tests/**/*",
-    "Cargo.toml",
-    "LICENSE",
-    "README.md"
-]
-
-authors.workspace = true
-categories.workspace = true
-edition.workspace = true
-homepage.workspace = true
-repository.workspace = true
-rust-version.workspace = true
-version.workspace = true
-
-[package.metadata.docs.rs]
-all-features = true
-
-[package.metadata.cargo-all-features]
-# These features don't build on std targets
-denylist = ["looping_panic_handler", "libc_alloc"]
-# This has a lot of features, run a reduced test that is likely to catch 99% of bugs
-max_combination_size = 2
-
-[features]
-default = ["compiled_data", "default_components", "logging", "simple_logger", "std"]
-any_provider = []
-buffer_provider = [
-    "dep:icu_provider_blob",
-    "dep:serde",
-    "icu_calendar?/serde",
-    "icu_casemap?/serde",
-    "icu_collator?/serde",
-    "icu_datetime?/serde",
-    "icu_decimal?/serde",
-    "icu_list?/serde",
-    "icu_locale?/serde",
-    "icu_locale_core/serde",
-    "icu_normalizer?/serde",
-    "icu_plurals?/serde",
-    "icu_properties?/serde",
-    "icu_provider/serde",
-    "icu_provider_adapters/serde",
-    "icu_segmenter?/serde",
-    "icu_time?/serde",
-    "icu_experimental?/serde",
-]
-provider_fs = ["dep:icu_provider_fs", "buffer_provider", "std"]
-logging = ["icu_provider/logging", "dep:log", "diplomat-runtime/log", "std"]
-simple_logger = ["dep:simple_logger", "logging"]
-
-# Components
-default_components = [
-    "calendar",
-    "casemap",
-    "collator",
-    "datetime",
-    "decimal",
-    "list",
-    "locale",
-    "normalizer",
-    "plurals",
-    "properties",
-    "segmenter",
-    "timezone"
-]
-
-calendar = ["dep:icu_calendar", "dep:icu_time"]
-casemap = ["dep:icu_casemap"]
-collator = ["dep:icu_collator"]
-# collections = ["dep:icu_collections"] # Not useful on its own: use properties
-datetime = ["dep:icu_datetime", "dep:icu_calendar", "dep:icu_time", "dep:icu_decimal", "dep:icu_plurals", "icu_datetime?/experimental"]
-decimal = ["dep:icu_decimal", "dep:fixed_decimal"]
-experimental = ["dep:icu_experimental"]
-list = ["dep:icu_list"]
-locale = ["dep:icu_locale"]
-normalizer = ["dep:icu_normalizer", "icu_normalizer?/utf8_iter", "icu_normalizer?/utf16_iter"]
-plurals = ["dep:icu_plurals", "dep:fixed_decimal"]
-properties = ["dep:icu_properties", "dep:icu_collections", "dep:unicode-bidi"]
-segmenter = ["dep:icu_segmenter"]
-timezone = ["dep:icu_time", "dep:icu_calendar"]
-
-compiled_data = [
-    "icu_calendar?/compiled_data",
-    "icu_casemap?/compiled_data",
-    "icu_collator?/compiled_data",
-    "icu_datetime?/compiled_data",
-    "icu_decimal?/compiled_data",
-    "icu_list?/compiled_data",
-    "icu_locale?/compiled_data",
-    "icu_normalizer?/compiled_data",
-    "icu_plurals?/compiled_data",
-    "icu_properties?/compiled_data",
-    "icu_segmenter?/compiled_data",
-    "icu_time?/compiled_data",
-    "icu_experimental?/compiled_data",
-]
-
-std = []
-# Adds a looping panic handler (useful for no_std targets)
-looping_panic_handler = []
-# Uses malloc as the global allocator (useful for no_std targets)
-libc_alloc = ["dep:libc_alloc"]
-
-[dependencies]
-# Mandatory ICU4X components and utils
-icu_locale_core = { workspace = true }
-icu_provider = { workspace = true }
-icu_provider_adapters = { workspace = true }
-
-tinystr = { workspace = true }
-potential_utf = { workspace = true, features = ["writeable"]}
-writeable = { workspace = true }
-
-# Diplomat
-diplomat = { workspace = true }
-diplomat-runtime = { workspace = true }
-
-# Optional ICU4X components and their dependent utils
-fixed_decimal = { workspace = true, features = ["ryu"] , optional = true }
-icu_calendar = { workspace = true, features = ["alloc", "ixdtf"], optional = true }
-icu_casemap = { workspace = true, optional = true }
-icu_collator = { workspace = true, optional = true }
-icu_collections = { workspace = true, optional = true }
-icu_datetime = { workspace = true, optional = true }
-icu_decimal = { workspace = true, optional = true }
-icu_list = { workspace = true, optional = true }
-icu_locale = { workspace = true, optional = true }
-icu_normalizer = { workspace = true, optional = true }
-icu_plurals = { workspace = true, optional = true }
-icu_properties = { workspace = true, features = ["alloc", "unicode_bidi"], optional = true }
-icu_segmenter = { workspace = true, features = ["auto"], optional = true }
-icu_time = { workspace = true, features = ["alloc", "ixdtf"], optional = true }
-icu_experimental = { workspace = true, optional = true }
-
-# Optional ICU4X features (not components)
-icu_provider_blob = { workspace = true, optional = true }
-serde = { workspace = true, optional = true }
-unicode-bidi = { workspace = true, optional = true }
-log = { workspace = true, optional = true }
-zerovec = { workspace = true }
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-# Logging uses diplomat_runtime bindings in wasm, we only need this for native
-simple_logger = { workspace = true, optional = true }
-libc_alloc = { workspace = true, features = ["global"], optional = true }
-
-[target.'cfg(not(any(target_arch = "wasm32", target_os = "none")))'.dependencies]
-icu_provider_fs = { workspace = true, optional = true }
-
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/LICENSE b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/LICENSE
deleted file mode 100644
index c9be601..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/LICENSE
+++ /dev/null
@@ -1,46 +0,0 @@
-UNICODE LICENSE V3
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright © 2020-2024 Unicode, Inc.
-
-NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
-SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
-TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
-DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of data files and any associated documentation (the "Data Files") or
-software and any associated documentation (the "Software") to deal in the
-Data Files or Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, and/or sell
-copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that either (a)
-this copyright and permission notice appear with all copies of the Data
-Files or Software, or (b) this copyright and permission notice appear in
-associated Documentation.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
-THIRD PARTY RIGHTS.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
-BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
-FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written
-authorization of the copyright holder.
-
-SPDX-License-Identifier: Unicode-3.0
-
-—
-
-Portions of ICU4X may have been adapted from ICU4C and/or ICU4J.
-ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/README.md b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/README.md
deleted file mode 100644
index 7aa7461..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# icu_capi [![crates.io](https://img.shields.io/crates/v/icu_capi)](https://crates.io/crates/icu_capi)
-
-<!-- cargo-rdme start -->
-
-This crate contains the source of truth for the [Diplomat](https://github.com/rust-diplomat/diplomat)-generated
-FFI bindings. This generates the C, C++, JavaScript, and TypeScript bindings. This crate also contains the `extern "C"`
-FFI for ICU4X.
-
-While the types in this crate are public, APIs from this crate are *not intended to be used from Rust*
-and as such this crate may unpredictably change its Rust API across compatible semver versions. The `extern "C"` APIs exposed
-by this crate, while not directly documented, are stable within the same major semver version, as are the bindings exposed under
-the `cpp/` and `js/` folders.
-
-This crate may still be explored for documentation on docs.rs, and there are language-specific docs available as well.
-C++, Dart, and TypeScript headers contain inline documentation, which is available pre-rendered: [C++], [TypeScript].
-
-This crate is `no_std`-compatible. If you wish to use it in `no_std` mode, you must write a wrapper crate that defines an allocator
-and a panic hook in order to compile as a C library.
-
-More information on using ICU4X from C++ can be found in [our tutorial].
-
-[our tutorial]: https://github.com/unicode-org/icu4x/blob/main/tutorials/cpp.md
-[TypeScript]: https://unicode-org.github.io/icu4x/tsdoc
-[C++]: https://unicode-org.github.io/icu4x/cppdoc
-
-<!-- cargo-rdme end -->
-
-## More Information
-
-For more information on development, authorship, contributing etc. please visit [`ICU4X home page`](https://github.com/unicode-org/icu4x).
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.d.h
deleted file mode 100644
index 6e3d65f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.d.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef AnyCalendarKind_D_H
-#define AnyCalendarKind_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum AnyCalendarKind {
-  AnyCalendarKind_Iso = 0,
-  AnyCalendarKind_Gregorian = 1,
-  AnyCalendarKind_Buddhist = 2,
-  AnyCalendarKind_Japanese = 3,
-  AnyCalendarKind_JapaneseExtended = 4,
-  AnyCalendarKind_Ethiopian = 5,
-  AnyCalendarKind_EthiopianAmeteAlem = 6,
-  AnyCalendarKind_Indian = 7,
-  AnyCalendarKind_Coptic = 8,
-  AnyCalendarKind_Dangi = 9,
-  AnyCalendarKind_Chinese = 10,
-  AnyCalendarKind_Hebrew = 11,
-  AnyCalendarKind_IslamicCivil = 12,
-  AnyCalendarKind_IslamicObservational = 13,
-  AnyCalendarKind_IslamicTabular = 14,
-  AnyCalendarKind_IslamicUmmAlQura = 15,
-  AnyCalendarKind_Persian = 16,
-  AnyCalendarKind_Roc = 17,
-} AnyCalendarKind;
-
-typedef struct AnyCalendarKind_option {union { AnyCalendarKind ok; }; bool is_ok; } AnyCalendarKind_option;
-
-
-
-#endif // AnyCalendarKind_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.h
deleted file mode 100644
index 62aede5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/AnyCalendarKind.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef AnyCalendarKind_H
-#define AnyCalendarKind_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Locale.d.h"
-
-#include "AnyCalendarKind.d.h"
-
-
-
-
-
-
-typedef struct icu4x_AnyCalendarKind_get_for_locale_mv1_result {union {AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_locale_mv1_result;
-icu4x_AnyCalendarKind_get_for_locale_mv1_result icu4x_AnyCalendarKind_get_for_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_AnyCalendarKind_get_for_bcp47_mv1_result {union {AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_bcp47_mv1_result;
-icu4x_AnyCalendarKind_get_for_bcp47_mv1_result icu4x_AnyCalendarKind_get_for_bcp47_mv1(DiplomatStringView s);
-
-void icu4x_AnyCalendarKind_bcp47_mv1(AnyCalendarKind self, DiplomatWrite* write);
-
-
-
-
-
-
-#endif // AnyCalendarKind_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.d.h
deleted file mode 100644
index 4583697..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Bidi_D_H
-#define Bidi_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Bidi Bidi;
-
-
-
-
-#endif // Bidi_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.h
deleted file mode 100644
index b357060e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Bidi.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef Bidi_H
-#define Bidi_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "BidiInfo.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "ReorderedIndexMap.d.h"
-
-#include "Bidi.d.h"
-
-
-
-
-
-
-Bidi* icu4x_Bidi_create_mv1(void);
-
-typedef struct icu4x_Bidi_create_with_provider_mv1_result {union {Bidi* ok; DataError err;}; bool is_ok;} icu4x_Bidi_create_with_provider_mv1_result;
-icu4x_Bidi_create_with_provider_mv1_result icu4x_Bidi_create_with_provider_mv1(const DataProvider* provider);
-
-BidiInfo* icu4x_Bidi_for_text_utf8_mv1(const Bidi* self, DiplomatStringView text, OptionU8 default_level);
-
-ReorderedIndexMap* icu4x_Bidi_reorder_visual_mv1(const Bidi* self, DiplomatU8View levels);
-
-bool icu4x_Bidi_level_is_rtl_mv1(uint8_t level);
-
-bool icu4x_Bidi_level_is_ltr_mv1(uint8_t level);
-
-uint8_t icu4x_Bidi_level_rtl_mv1(void);
-
-uint8_t icu4x_Bidi_level_ltr_mv1(void);
-
-
-void icu4x_Bidi_destroy_mv1(Bidi* self);
-
-
-
-
-
-#endif // Bidi_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.d.h
deleted file mode 100644
index 66c71f86..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.d.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef BidiClass_D_H
-#define BidiClass_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum BidiClass {
-  BidiClass_LeftToRight = 0,
-  BidiClass_RightToLeft = 1,
-  BidiClass_EuropeanNumber = 2,
-  BidiClass_EuropeanSeparator = 3,
-  BidiClass_EuropeanTerminator = 4,
-  BidiClass_ArabicNumber = 5,
-  BidiClass_CommonSeparator = 6,
-  BidiClass_ParagraphSeparator = 7,
-  BidiClass_SegmentSeparator = 8,
-  BidiClass_WhiteSpace = 9,
-  BidiClass_OtherNeutral = 10,
-  BidiClass_LeftToRightEmbedding = 11,
-  BidiClass_LeftToRightOverride = 12,
-  BidiClass_ArabicLetter = 13,
-  BidiClass_RightToLeftEmbedding = 14,
-  BidiClass_RightToLeftOverride = 15,
-  BidiClass_PopDirectionalFormat = 16,
-  BidiClass_NonspacingMark = 17,
-  BidiClass_BoundaryNeutral = 18,
-  BidiClass_FirstStrongIsolate = 19,
-  BidiClass_LeftToRightIsolate = 20,
-  BidiClass_RightToLeftIsolate = 21,
-  BidiClass_PopDirectionalIsolate = 22,
-} BidiClass;
-
-typedef struct BidiClass_option {union { BidiClass ok; }; bool is_ok; } BidiClass_option;
-
-
-
-#endif // BidiClass_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.h
deleted file mode 100644
index 5bfe737..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiClass.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef BidiClass_H
-#define BidiClass_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "BidiClass.d.h"
-
-
-
-
-
-
-BidiClass icu4x_BidiClass_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_BidiClass_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_long_name_mv1_result;
-icu4x_BidiClass_long_name_mv1_result icu4x_BidiClass_long_name_mv1(BidiClass self);
-
-typedef struct icu4x_BidiClass_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_short_name_mv1_result;
-icu4x_BidiClass_short_name_mv1_result icu4x_BidiClass_short_name_mv1(BidiClass self);
-
-uint8_t icu4x_BidiClass_to_integer_value_mv1(BidiClass self);
-
-typedef struct icu4x_BidiClass_from_integer_value_mv1_result {union {BidiClass ok; }; bool is_ok;} icu4x_BidiClass_from_integer_value_mv1_result;
-icu4x_BidiClass_from_integer_value_mv1_result icu4x_BidiClass_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // BidiClass_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.d.h
deleted file mode 100644
index f312c2c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef BidiDirection_D_H
-#define BidiDirection_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum BidiDirection {
-  BidiDirection_Ltr = 0,
-  BidiDirection_Rtl = 1,
-  BidiDirection_Mixed = 2,
-} BidiDirection;
-
-typedef struct BidiDirection_option {union { BidiDirection ok; }; bool is_ok; } BidiDirection_option;
-
-
-
-#endif // BidiDirection_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.h
deleted file mode 100644
index a21e231..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiDirection.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef BidiDirection_H
-#define BidiDirection_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "BidiDirection.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // BidiDirection_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.d.h
deleted file mode 100644
index eb8d3492..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef BidiInfo_D_H
-#define BidiInfo_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct BidiInfo BidiInfo;
-
-
-
-
-#endif // BidiInfo_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.h
deleted file mode 100644
index fcc6675..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiInfo.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef BidiInfo_H
-#define BidiInfo_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "BidiParagraph.d.h"
-
-#include "BidiInfo.d.h"
-
-
-
-
-
-
-size_t icu4x_BidiInfo_paragraph_count_mv1(const BidiInfo* self);
-
-BidiParagraph* icu4x_BidiInfo_paragraph_at_mv1(const BidiInfo* self, size_t n);
-
-size_t icu4x_BidiInfo_size_mv1(const BidiInfo* self);
-
-uint8_t icu4x_BidiInfo_level_at_mv1(const BidiInfo* self, size_t pos);
-
-
-void icu4x_BidiInfo_destroy_mv1(BidiInfo* self);
-
-
-
-
-
-#endif // BidiInfo_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.d.h
deleted file mode 100644
index 03735a2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef BidiMirroringGlyph_D_H
-#define BidiMirroringGlyph_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "BidiPairedBracketType.d.h"
-
-
-
-
-typedef struct BidiMirroringGlyph {
-  OptionChar mirroring_glyph;
-  bool mirrored;
-  BidiPairedBracketType paired_bracket_type;
-} BidiMirroringGlyph;
-
-typedef struct BidiMirroringGlyph_option {union { BidiMirroringGlyph ok; }; bool is_ok; } BidiMirroringGlyph_option;
-
-
-
-#endif // BidiMirroringGlyph_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.h
deleted file mode 100644
index 1aebcac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiMirroringGlyph.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef BidiMirroringGlyph_H
-#define BidiMirroringGlyph_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "BidiMirroringGlyph.d.h"
-
-
-
-
-
-
-BidiMirroringGlyph icu4x_BidiMirroringGlyph_for_char_mv1(char32_t ch);
-
-
-
-
-
-
-#endif // BidiMirroringGlyph_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.d.h
deleted file mode 100644
index 28209541..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef BidiPairedBracketType_D_H
-#define BidiPairedBracketType_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum BidiPairedBracketType {
-  BidiPairedBracketType_Open = 0,
-  BidiPairedBracketType_Close = 1,
-  BidiPairedBracketType_None = 2,
-} BidiPairedBracketType;
-
-typedef struct BidiPairedBracketType_option {union { BidiPairedBracketType ok; }; bool is_ok; } BidiPairedBracketType_option;
-
-
-
-#endif // BidiPairedBracketType_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.h
deleted file mode 100644
index 243ee55a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiPairedBracketType.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef BidiPairedBracketType_H
-#define BidiPairedBracketType_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "BidiPairedBracketType.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // BidiPairedBracketType_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.d.h
deleted file mode 100644
index cd3061f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef BidiParagraph_D_H
-#define BidiParagraph_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct BidiParagraph BidiParagraph;
-
-
-
-
-#endif // BidiParagraph_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.h
deleted file mode 100644
index 6b7b290..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/BidiParagraph.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef BidiParagraph_H
-#define BidiParagraph_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "BidiDirection.d.h"
-
-#include "BidiParagraph.d.h"
-
-
-
-
-
-
-bool icu4x_BidiParagraph_set_paragraph_in_text_mv1(BidiParagraph* self, size_t n);
-
-BidiDirection icu4x_BidiParagraph_direction_mv1(const BidiParagraph* self);
-
-size_t icu4x_BidiParagraph_size_mv1(const BidiParagraph* self);
-
-size_t icu4x_BidiParagraph_range_start_mv1(const BidiParagraph* self);
-
-size_t icu4x_BidiParagraph_range_end_mv1(const BidiParagraph* self);
-
-typedef struct icu4x_BidiParagraph_reorder_line_mv1_result { bool is_ok;} icu4x_BidiParagraph_reorder_line_mv1_result;
-icu4x_BidiParagraph_reorder_line_mv1_result icu4x_BidiParagraph_reorder_line_mv1(const BidiParagraph* self, size_t range_start, size_t range_end, DiplomatWrite* write);
-
-uint8_t icu4x_BidiParagraph_level_at_mv1(const BidiParagraph* self, size_t pos);
-
-
-void icu4x_BidiParagraph_destroy_mv1(BidiParagraph* self);
-
-
-
-
-
-#endif // BidiParagraph_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.d.h
deleted file mode 100644
index d748ff0c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Calendar_D_H
-#define Calendar_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Calendar Calendar;
-
-
-
-
-#endif // Calendar_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.h
deleted file mode 100644
index 7bb2c22..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Calendar.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef Calendar_H
-#define Calendar_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "AnyCalendarKind.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-
-#include "Calendar.d.h"
-
-
-
-
-
-
-typedef struct icu4x_Calendar_create_for_locale_mv1_result {union {Calendar* ok; DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_mv1_result;
-icu4x_Calendar_create_for_locale_mv1_result icu4x_Calendar_create_for_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_Calendar_create_for_kind_mv1_result {union {Calendar* ok; DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_mv1_result;
-icu4x_Calendar_create_for_kind_mv1_result icu4x_Calendar_create_for_kind_mv1(AnyCalendarKind kind);
-
-typedef struct icu4x_Calendar_create_for_locale_with_provider_mv1_result {union {Calendar* ok; DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_with_provider_mv1_result;
-icu4x_Calendar_create_for_locale_with_provider_mv1_result icu4x_Calendar_create_for_locale_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_Calendar_create_for_kind_with_provider_mv1_result {union {Calendar* ok; DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_with_provider_mv1_result;
-icu4x_Calendar_create_for_kind_with_provider_mv1_result icu4x_Calendar_create_for_kind_with_provider_mv1(const DataProvider* provider, AnyCalendarKind kind);
-
-AnyCalendarKind icu4x_Calendar_kind_mv1(const Calendar* self);
-
-
-void icu4x_Calendar_destroy_mv1(Calendar* self);
-
-
-
-
-
-#endif // Calendar_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.d.h
deleted file mode 100644
index 0247f0e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef CalendarError_D_H
-#define CalendarError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CalendarError {
-  CalendarError_Unknown = 0,
-  CalendarError_OutOfRange = 1,
-  CalendarError_UnknownEra = 2,
-  CalendarError_UnknownMonthCode = 3,
-} CalendarError;
-
-typedef struct CalendarError_option {union { CalendarError ok; }; bool is_ok; } CalendarError_option;
-
-
-
-#endif // CalendarError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.h
deleted file mode 100644
index ac9be6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CalendarError_H
-#define CalendarError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CalendarError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CalendarError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.d.h
deleted file mode 100644
index e0850590..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.d.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef CalendarParseError_D_H
-#define CalendarParseError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CalendarParseError {
-  CalendarParseError_Unknown = 0,
-  CalendarParseError_InvalidSyntax = 1,
-  CalendarParseError_OutOfRange = 2,
-  CalendarParseError_MissingFields = 3,
-  CalendarParseError_UnknownCalendar = 4,
-} CalendarParseError;
-
-typedef struct CalendarParseError_option {union { CalendarParseError ok; }; bool is_ok; } CalendarParseError_option;
-
-
-
-#endif // CalendarParseError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.h
deleted file mode 100644
index 6f0ed1c9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CalendarParseError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CalendarParseError_H
-#define CalendarParseError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CalendarParseError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CalendarParseError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.d.h
deleted file mode 100644
index f74945c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.d.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef CanonicalCombiningClass_D_H
-#define CanonicalCombiningClass_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CanonicalCombiningClass {
-  CanonicalCombiningClass_NotReordered = 0,
-  CanonicalCombiningClass_Overlay = 1,
-  CanonicalCombiningClass_HanReading = 6,
-  CanonicalCombiningClass_Nukta = 7,
-  CanonicalCombiningClass_KanaVoicing = 8,
-  CanonicalCombiningClass_Virama = 9,
-  CanonicalCombiningClass_CCC10 = 10,
-  CanonicalCombiningClass_CCC11 = 11,
-  CanonicalCombiningClass_CCC12 = 12,
-  CanonicalCombiningClass_CCC13 = 13,
-  CanonicalCombiningClass_CCC14 = 14,
-  CanonicalCombiningClass_CCC15 = 15,
-  CanonicalCombiningClass_CCC16 = 16,
-  CanonicalCombiningClass_CCC17 = 17,
-  CanonicalCombiningClass_CCC18 = 18,
-  CanonicalCombiningClass_CCC19 = 19,
-  CanonicalCombiningClass_CCC20 = 20,
-  CanonicalCombiningClass_CCC21 = 21,
-  CanonicalCombiningClass_CCC22 = 22,
-  CanonicalCombiningClass_CCC23 = 23,
-  CanonicalCombiningClass_CCC24 = 24,
-  CanonicalCombiningClass_CCC25 = 25,
-  CanonicalCombiningClass_CCC26 = 26,
-  CanonicalCombiningClass_CCC27 = 27,
-  CanonicalCombiningClass_CCC28 = 28,
-  CanonicalCombiningClass_CCC29 = 29,
-  CanonicalCombiningClass_CCC30 = 30,
-  CanonicalCombiningClass_CCC31 = 31,
-  CanonicalCombiningClass_CCC32 = 32,
-  CanonicalCombiningClass_CCC33 = 33,
-  CanonicalCombiningClass_CCC34 = 34,
-  CanonicalCombiningClass_CCC35 = 35,
-  CanonicalCombiningClass_CCC36 = 36,
-  CanonicalCombiningClass_CCC84 = 84,
-  CanonicalCombiningClass_CCC91 = 91,
-  CanonicalCombiningClass_CCC103 = 103,
-  CanonicalCombiningClass_CCC107 = 107,
-  CanonicalCombiningClass_CCC118 = 118,
-  CanonicalCombiningClass_CCC122 = 122,
-  CanonicalCombiningClass_CCC129 = 129,
-  CanonicalCombiningClass_CCC130 = 130,
-  CanonicalCombiningClass_CCC132 = 132,
-  CanonicalCombiningClass_CCC133 = 133,
-  CanonicalCombiningClass_AttachedBelowLeft = 200,
-  CanonicalCombiningClass_AttachedBelow = 202,
-  CanonicalCombiningClass_AttachedAbove = 214,
-  CanonicalCombiningClass_AttachedAboveRight = 216,
-  CanonicalCombiningClass_BelowLeft = 218,
-  CanonicalCombiningClass_Below = 220,
-  CanonicalCombiningClass_BelowRight = 222,
-  CanonicalCombiningClass_Left = 224,
-  CanonicalCombiningClass_Right = 226,
-  CanonicalCombiningClass_AboveLeft = 228,
-  CanonicalCombiningClass_Above = 230,
-  CanonicalCombiningClass_AboveRight = 232,
-  CanonicalCombiningClass_DoubleBelow = 233,
-  CanonicalCombiningClass_DoubleAbove = 234,
-  CanonicalCombiningClass_IotaSubscript = 240,
-} CanonicalCombiningClass;
-
-typedef struct CanonicalCombiningClass_option {union { CanonicalCombiningClass ok; }; bool is_ok; } CanonicalCombiningClass_option;
-
-
-
-#endif // CanonicalCombiningClass_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.h
deleted file mode 100644
index 228a11a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClass.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef CanonicalCombiningClass_H
-#define CanonicalCombiningClass_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CanonicalCombiningClass.d.h"
-
-
-
-
-
-
-CanonicalCombiningClass icu4x_CanonicalCombiningClass_for_char_mv1(char32_t ch);
-
-uint8_t icu4x_CanonicalCombiningClass_to_integer_value_mv1(CanonicalCombiningClass self);
-
-typedef struct icu4x_CanonicalCombiningClass_from_integer_value_mv1_result {union {CanonicalCombiningClass ok; }; bool is_ok;} icu4x_CanonicalCombiningClass_from_integer_value_mv1_result;
-icu4x_CanonicalCombiningClass_from_integer_value_mv1_result icu4x_CanonicalCombiningClass_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // CanonicalCombiningClass_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.d.h
deleted file mode 100644
index f12c485..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CanonicalCombiningClassMap_D_H
-#define CanonicalCombiningClassMap_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CanonicalCombiningClassMap CanonicalCombiningClassMap;
-
-
-
-
-#endif // CanonicalCombiningClassMap_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.h
deleted file mode 100644
index 9f93451..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalCombiningClassMap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef CanonicalCombiningClassMap_H
-#define CanonicalCombiningClassMap_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "CanonicalCombiningClassMap.d.h"
-
-
-
-
-
-
-CanonicalCombiningClassMap* icu4x_CanonicalCombiningClassMap_create_mv1(void);
-
-typedef struct icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result {union {CanonicalCombiningClassMap* ok; DataError err;}; bool is_ok;} icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result;
-icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result icu4x_CanonicalCombiningClassMap_create_with_provider_mv1(const DataProvider* provider);
-
-uint8_t icu4x_CanonicalCombiningClassMap_get_mv1(const CanonicalCombiningClassMap* self, char32_t ch);
-
-
-void icu4x_CanonicalCombiningClassMap_destroy_mv1(CanonicalCombiningClassMap* self);
-
-
-
-
-
-#endif // CanonicalCombiningClassMap_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.d.h
deleted file mode 100644
index 4de668d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CanonicalComposition_D_H
-#define CanonicalComposition_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CanonicalComposition CanonicalComposition;
-
-
-
-
-#endif // CanonicalComposition_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.h
deleted file mode 100644
index 3d09786..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalComposition.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef CanonicalComposition_H
-#define CanonicalComposition_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "CanonicalComposition.d.h"
-
-
-
-
-
-
-CanonicalComposition* icu4x_CanonicalComposition_create_mv1(void);
-
-typedef struct icu4x_CanonicalComposition_create_with_provider_mv1_result {union {CanonicalComposition* ok; DataError err;}; bool is_ok;} icu4x_CanonicalComposition_create_with_provider_mv1_result;
-icu4x_CanonicalComposition_create_with_provider_mv1_result icu4x_CanonicalComposition_create_with_provider_mv1(const DataProvider* provider);
-
-char32_t icu4x_CanonicalComposition_compose_mv1(const CanonicalComposition* self, char32_t starter, char32_t second);
-
-
-void icu4x_CanonicalComposition_destroy_mv1(CanonicalComposition* self);
-
-
-
-
-
-#endif // CanonicalComposition_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.d.h
deleted file mode 100644
index b3ea8072..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CanonicalDecomposition_D_H
-#define CanonicalDecomposition_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CanonicalDecomposition CanonicalDecomposition;
-
-
-
-
-#endif // CanonicalDecomposition_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.h
deleted file mode 100644
index 4304b872..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CanonicalDecomposition.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef CanonicalDecomposition_H
-#define CanonicalDecomposition_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Decomposed.d.h"
-
-#include "CanonicalDecomposition.d.h"
-
-
-
-
-
-
-CanonicalDecomposition* icu4x_CanonicalDecomposition_create_mv1(void);
-
-typedef struct icu4x_CanonicalDecomposition_create_with_provider_mv1_result {union {CanonicalDecomposition* ok; DataError err;}; bool is_ok;} icu4x_CanonicalDecomposition_create_with_provider_mv1_result;
-icu4x_CanonicalDecomposition_create_with_provider_mv1_result icu4x_CanonicalDecomposition_create_with_provider_mv1(const DataProvider* provider);
-
-Decomposed icu4x_CanonicalDecomposition_decompose_mv1(const CanonicalDecomposition* self, char32_t c);
-
-
-void icu4x_CanonicalDecomposition_destroy_mv1(CanonicalDecomposition* self);
-
-
-
-
-
-#endif // CanonicalDecomposition_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.d.h
deleted file mode 100644
index eb538de..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CaseMapCloser_D_H
-#define CaseMapCloser_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CaseMapCloser CaseMapCloser;
-
-
-
-
-#endif // CaseMapCloser_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.h
deleted file mode 100644
index c706c1a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapCloser.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef CaseMapCloser_H
-#define CaseMapCloser_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointSetBuilder.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "CaseMapCloser.d.h"
-
-
-
-
-
-
-typedef struct icu4x_CaseMapCloser_create_mv1_result {union {CaseMapCloser* ok; DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_mv1_result;
-icu4x_CaseMapCloser_create_mv1_result icu4x_CaseMapCloser_create_mv1(void);
-
-typedef struct icu4x_CaseMapCloser_create_with_provider_mv1_result {union {CaseMapCloser* ok; DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_with_provider_mv1_result;
-icu4x_CaseMapCloser_create_with_provider_mv1_result icu4x_CaseMapCloser_create_with_provider_mv1(const DataProvider* provider);
-
-void icu4x_CaseMapCloser_add_case_closure_to_mv1(const CaseMapCloser* self, char32_t c, CodePointSetBuilder* builder);
-
-bool icu4x_CaseMapCloser_add_string_case_closure_to_mv1(const CaseMapCloser* self, DiplomatStringView s, CodePointSetBuilder* builder);
-
-
-void icu4x_CaseMapCloser_destroy_mv1(CaseMapCloser* self);
-
-
-
-
-
-#endif // CaseMapCloser_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.d.h
deleted file mode 100644
index 740162ca..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CaseMapper_D_H
-#define CaseMapper_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CaseMapper CaseMapper;
-
-
-
-
-#endif // CaseMapper_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.h
deleted file mode 100644
index 61a102e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CaseMapper.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef CaseMapper_H
-#define CaseMapper_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointSetBuilder.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "TitlecaseOptionsV1.d.h"
-
-#include "CaseMapper.d.h"
-
-
-
-
-
-
-CaseMapper* icu4x_CaseMapper_create_mv1(void);
-
-typedef struct icu4x_CaseMapper_create_with_provider_mv1_result {union {CaseMapper* ok; DataError err;}; bool is_ok;} icu4x_CaseMapper_create_with_provider_mv1_result;
-icu4x_CaseMapper_create_with_provider_mv1_result icu4x_CaseMapper_create_with_provider_mv1(const DataProvider* provider);
-
-void icu4x_CaseMapper_lowercase_mv1(const CaseMapper* self, DiplomatStringView s, const Locale* locale, DiplomatWrite* write);
-
-void icu4x_CaseMapper_uppercase_mv1(const CaseMapper* self, DiplomatStringView s, const Locale* locale, DiplomatWrite* write);
-
-void icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(const CaseMapper* self, DiplomatStringView s, const Locale* locale, TitlecaseOptionsV1 options, DiplomatWrite* write);
-
-void icu4x_CaseMapper_fold_mv1(const CaseMapper* self, DiplomatStringView s, DiplomatWrite* write);
-
-void icu4x_CaseMapper_fold_turkic_mv1(const CaseMapper* self, DiplomatStringView s, DiplomatWrite* write);
-
-void icu4x_CaseMapper_add_case_closure_to_mv1(const CaseMapper* self, char32_t c, CodePointSetBuilder* builder);
-
-char32_t icu4x_CaseMapper_simple_lowercase_mv1(const CaseMapper* self, char32_t ch);
-
-char32_t icu4x_CaseMapper_simple_uppercase_mv1(const CaseMapper* self, char32_t ch);
-
-char32_t icu4x_CaseMapper_simple_titlecase_mv1(const CaseMapper* self, char32_t ch);
-
-char32_t icu4x_CaseMapper_simple_fold_mv1(const CaseMapper* self, char32_t ch);
-
-char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const CaseMapper* self, char32_t ch);
-
-
-void icu4x_CaseMapper_destroy_mv1(CaseMapper* self);
-
-
-
-
-
-#endif // CaseMapper_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.d.h
deleted file mode 100644
index 1058d893..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CodePointMapData16_D_H
-#define CodePointMapData16_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointMapData16 CodePointMapData16;
-
-
-
-
-#endif // CodePointMapData16_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.h
deleted file mode 100644
index cc4f6ec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData16.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef CodePointMapData16_H
-#define CodePointMapData16_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointRangeIterator.d.h"
-#include "CodePointSetData.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "CodePointMapData16.d.h"
-
-
-
-
-
-
-uint16_t icu4x_CodePointMapData16_get_mv1(const CodePointMapData16* self, char32_t cp);
-
-CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_mv1(const CodePointMapData16* self, uint16_t value);
-
-CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(const CodePointMapData16* self, uint16_t value);
-
-CodePointSetData* icu4x_CodePointMapData16_get_set_for_value_mv1(const CodePointMapData16* self, uint16_t value);
-
-CodePointMapData16* icu4x_CodePointMapData16_create_script_mv1(void);
-
-typedef struct icu4x_CodePointMapData16_create_script_with_provider_mv1_result {union {CodePointMapData16* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData16_create_script_with_provider_mv1_result;
-icu4x_CodePointMapData16_create_script_with_provider_mv1_result icu4x_CodePointMapData16_create_script_with_provider_mv1(const DataProvider* provider);
-
-
-void icu4x_CodePointMapData16_destroy_mv1(CodePointMapData16* self);
-
-
-
-
-
-#endif // CodePointMapData16_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.d.h
deleted file mode 100644
index b2c2a0e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CodePointMapData8_D_H
-#define CodePointMapData8_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointMapData8 CodePointMapData8;
-
-
-
-
-#endif // CodePointMapData8_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.h
deleted file mode 100644
index d9ee364..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointMapData8.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef CodePointMapData8_H
-#define CodePointMapData8_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointRangeIterator.d.h"
-#include "CodePointSetData.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "GeneralCategoryGroup.d.h"
-
-#include "CodePointMapData8.d.h"
-
-
-
-
-
-
-uint8_t icu4x_CodePointMapData8_get_mv1(const CodePointMapData8* self, char32_t cp);
-
-CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_mv1(const CodePointMapData8* self, uint8_t value);
-
-CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(const CodePointMapData8* self, uint8_t value);
-
-CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_group_mv1(const CodePointMapData8* self, GeneralCategoryGroup group);
-
-CodePointSetData* icu4x_CodePointMapData8_get_set_for_value_mv1(const CodePointMapData8* self, uint8_t value);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_general_category_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result icu4x_CodePointMapData8_create_general_category_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_bidi_class_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_east_asian_width_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_hangul_syllable_type_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_indic_syllabic_category_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_line_break_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result icu4x_CodePointMapData8_create_line_break_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_grapheme_cluster_break_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_word_break_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result icu4x_CodePointMapData8_create_word_break_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_sentence_break_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_joining_type_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result icu4x_CodePointMapData8_create_joining_type_with_provider_mv1(const DataProvider* provider);
-
-CodePointMapData8* icu4x_CodePointMapData8_create_canonical_combining_class_mv1(void);
-
-typedef struct icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result {union {CodePointMapData8* ok; DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result;
-icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1(const DataProvider* provider);
-
-
-void icu4x_CodePointMapData8_destroy_mv1(CodePointMapData8* self);
-
-
-
-
-
-#endif // CodePointMapData8_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.d.h
deleted file mode 100644
index 997b58a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CodePointRangeIterator_D_H
-#define CodePointRangeIterator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointRangeIterator CodePointRangeIterator;
-
-
-
-
-#endif // CodePointRangeIterator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.h
deleted file mode 100644
index 9950b76..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIterator.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef CodePointRangeIterator_H
-#define CodePointRangeIterator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointRangeIteratorResult.d.h"
-
-#include "CodePointRangeIterator.d.h"
-
-
-
-
-
-
-CodePointRangeIteratorResult icu4x_CodePointRangeIterator_next_mv1(CodePointRangeIterator* self);
-
-
-void icu4x_CodePointRangeIterator_destroy_mv1(CodePointRangeIterator* self);
-
-
-
-
-
-#endif // CodePointRangeIterator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.d.h
deleted file mode 100644
index 0a3ad0f45f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef CodePointRangeIteratorResult_D_H
-#define CodePointRangeIteratorResult_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointRangeIteratorResult {
-  char32_t start;
-  char32_t end;
-  bool done;
-} CodePointRangeIteratorResult;
-
-typedef struct CodePointRangeIteratorResult_option {union { CodePointRangeIteratorResult ok; }; bool is_ok; } CodePointRangeIteratorResult_option;
-
-
-
-#endif // CodePointRangeIteratorResult_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.h
deleted file mode 100644
index 50e41ef..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointRangeIteratorResult.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CodePointRangeIteratorResult_H
-#define CodePointRangeIteratorResult_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CodePointRangeIteratorResult.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CodePointRangeIteratorResult_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.d.h
deleted file mode 100644
index 1e916f5f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CodePointSetBuilder_D_H
-#define CodePointSetBuilder_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointSetBuilder CodePointSetBuilder;
-
-
-
-
-#endif // CodePointSetBuilder_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.h
deleted file mode 100644
index eb2dbc4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetBuilder.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef CodePointSetBuilder_H
-#define CodePointSetBuilder_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointSetData.d.h"
-
-#include "CodePointSetBuilder.d.h"
-
-
-
-
-
-
-CodePointSetBuilder* icu4x_CodePointSetBuilder_create_mv1(void);
-
-CodePointSetData* icu4x_CodePointSetBuilder_build_mv1(CodePointSetBuilder* self);
-
-void icu4x_CodePointSetBuilder_complement_mv1(CodePointSetBuilder* self);
-
-bool icu4x_CodePointSetBuilder_is_empty_mv1(const CodePointSetBuilder* self);
-
-void icu4x_CodePointSetBuilder_add_char_mv1(CodePointSetBuilder* self, char32_t ch);
-
-void icu4x_CodePointSetBuilder_add_inclusive_range_mv1(CodePointSetBuilder* self, char32_t start, char32_t end);
-
-void icu4x_CodePointSetBuilder_add_set_mv1(CodePointSetBuilder* self, const CodePointSetData* data);
-
-void icu4x_CodePointSetBuilder_remove_char_mv1(CodePointSetBuilder* self, char32_t ch);
-
-void icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(CodePointSetBuilder* self, char32_t start, char32_t end);
-
-void icu4x_CodePointSetBuilder_remove_set_mv1(CodePointSetBuilder* self, const CodePointSetData* data);
-
-void icu4x_CodePointSetBuilder_retain_char_mv1(CodePointSetBuilder* self, char32_t ch);
-
-void icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(CodePointSetBuilder* self, char32_t start, char32_t end);
-
-void icu4x_CodePointSetBuilder_retain_set_mv1(CodePointSetBuilder* self, const CodePointSetData* data);
-
-void icu4x_CodePointSetBuilder_complement_char_mv1(CodePointSetBuilder* self, char32_t ch);
-
-void icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(CodePointSetBuilder* self, char32_t start, char32_t end);
-
-void icu4x_CodePointSetBuilder_complement_set_mv1(CodePointSetBuilder* self, const CodePointSetData* data);
-
-
-void icu4x_CodePointSetBuilder_destroy_mv1(CodePointSetBuilder* self);
-
-
-
-
-
-#endif // CodePointSetBuilder_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.d.h
deleted file mode 100644
index 02f8fd1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CodePointSetData_D_H
-#define CodePointSetData_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct CodePointSetData CodePointSetData;
-
-
-
-
-#endif // CodePointSetData_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.h
deleted file mode 100644
index e1477d88..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CodePointSetData.h
+++ /dev/null
@@ -1,501 +0,0 @@
-#ifndef CodePointSetData_H
-#define CodePointSetData_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointRangeIterator.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "GeneralCategoryGroup.d.h"
-
-#include "CodePointSetData.d.h"
-
-
-
-
-
-
-bool icu4x_CodePointSetData_contains_mv1(const CodePointSetData* self, char32_t cp);
-
-CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_mv1(const CodePointSetData* self);
-
-CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_complemented_mv1(const CodePointSetData* self);
-
-CodePointSetData* icu4x_CodePointSetData_create_general_category_group_mv1(GeneralCategoryGroup group);
-
-typedef struct icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result;
-icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result icu4x_CodePointSetData_create_general_category_group_with_provider_mv1(const DataProvider* provider, uint32_t group);
-
-bool icu4x_CodePointSetData_ascii_hex_digit_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_ascii_hex_digit_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result;
-icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_alnum_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_alnum_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_alnum_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_alnum_with_provider_mv1_result;
-icu4x_CodePointSetData_create_alnum_with_provider_mv1_result icu4x_CodePointSetData_create_alnum_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_alphabetic_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_alphabetic_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result;
-icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result icu4x_CodePointSetData_create_alphabetic_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_bidi_control_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_bidi_control_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result;
-icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result icu4x_CodePointSetData_create_bidi_control_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_bidi_mirrored_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_bidi_mirrored_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result;
-icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_blank_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_blank_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_blank_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_blank_with_provider_mv1_result;
-icu4x_CodePointSetData_create_blank_with_provider_mv1_result icu4x_CodePointSetData_create_blank_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_cased_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_cased_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_cased_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_cased_with_provider_mv1_result;
-icu4x_CodePointSetData_create_cased_with_provider_mv1_result icu4x_CodePointSetData_create_cased_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_case_ignorable_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_case_ignorable_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result;
-icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_full_composition_exclusion_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_full_composition_exclusion_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result;
-icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_casefolded_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_casefolded_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_casemapped_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_casemapped_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_nfkc_casefolded_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_lowercased_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_lowercased_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_titlecased_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_titlecased_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_changes_when_uppercased_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_changes_when_uppercased_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result;
-icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_dash_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_dash_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_dash_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_dash_with_provider_mv1_result;
-icu4x_CodePointSetData_create_dash_with_provider_mv1_result icu4x_CodePointSetData_create_dash_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_deprecated_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_deprecated_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result;
-icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result icu4x_CodePointSetData_create_deprecated_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_default_ignorable_code_point_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_default_ignorable_code_point_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result;
-icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_diacritic_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_diacritic_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result;
-icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result icu4x_CodePointSetData_create_diacritic_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_emoji_modifier_base_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_emoji_modifier_base_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result;
-icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_emoji_component_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_emoji_component_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result;
-icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_component_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_emoji_modifier_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_emoji_modifier_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result;
-icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_emoji_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_emoji_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_emoji_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_with_provider_mv1_result;
-icu4x_CodePointSetData_create_emoji_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_emoji_presentation_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_emoji_presentation_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result;
-icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_extender_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_extender_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_extender_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_extender_with_provider_mv1_result;
-icu4x_CodePointSetData_create_extender_with_provider_mv1_result icu4x_CodePointSetData_create_extender_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_extended_pictographic_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_extended_pictographic_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result;
-icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_graph_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_graph_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_graph_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_graph_with_provider_mv1_result;
-icu4x_CodePointSetData_create_graph_with_provider_mv1_result icu4x_CodePointSetData_create_graph_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_grapheme_base_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_grapheme_base_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result;
-icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_grapheme_extend_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_grapheme_extend_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result;
-icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_grapheme_link_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_grapheme_link_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result;
-icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_hex_digit_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_hex_digit_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result;
-icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result icu4x_CodePointSetData_create_hex_digit_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_hyphen_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_hyphen_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result;
-icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result icu4x_CodePointSetData_create_hyphen_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_id_continue_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_id_continue_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result;
-icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result icu4x_CodePointSetData_create_id_continue_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_ideographic_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_ideographic_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result;
-icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result icu4x_CodePointSetData_create_ideographic_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_id_start_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_id_start_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_id_start_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_id_start_with_provider_mv1_result;
-icu4x_CodePointSetData_create_id_start_with_provider_mv1_result icu4x_CodePointSetData_create_id_start_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_ids_binary_operator_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_ids_binary_operator_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result;
-icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_ids_trinary_operator_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_ids_trinary_operator_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result;
-icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_join_control_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_join_control_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_join_control_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_join_control_with_provider_mv1_result;
-icu4x_CodePointSetData_create_join_control_with_provider_mv1_result icu4x_CodePointSetData_create_join_control_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_logical_order_exception_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_logical_order_exception_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result;
-icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_lowercase_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_lowercase_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result;
-icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result icu4x_CodePointSetData_create_lowercase_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_math_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_math_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_math_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_math_with_provider_mv1_result;
-icu4x_CodePointSetData_create_math_with_provider_mv1_result icu4x_CodePointSetData_create_math_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_noncharacter_code_point_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_noncharacter_code_point_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result;
-icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_nfc_inert_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_nfc_inert_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result;
-icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_nfd_inert_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_nfd_inert_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result;
-icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_nfkc_inert_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_nfkc_inert_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result;
-icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_nfkd_inert_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_nfkd_inert_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result;
-icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_pattern_syntax_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_pattern_syntax_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result;
-icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_pattern_white_space_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_pattern_white_space_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result;
-icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_prepended_concatenation_mark_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_prepended_concatenation_mark_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result;
-icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_print_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_print_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_print_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_print_with_provider_mv1_result;
-icu4x_CodePointSetData_create_print_with_provider_mv1_result icu4x_CodePointSetData_create_print_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_quotation_mark_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_quotation_mark_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result;
-icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_radical_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_radical_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_radical_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_radical_with_provider_mv1_result;
-icu4x_CodePointSetData_create_radical_with_provider_mv1_result icu4x_CodePointSetData_create_radical_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_regional_indicator_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_regional_indicator_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result;
-icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_soft_dotted_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_soft_dotted_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result;
-icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_segment_starter_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_segment_starter_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result;
-icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result icu4x_CodePointSetData_create_segment_starter_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_case_sensitive_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_case_sensitive_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result;
-icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_sentence_terminal_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_sentence_terminal_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result;
-icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_terminal_punctuation_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_terminal_punctuation_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result;
-icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_unified_ideograph_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_unified_ideograph_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result;
-icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_uppercase_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_uppercase_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result;
-icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result icu4x_CodePointSetData_create_uppercase_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_variation_selector_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_variation_selector_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result;
-icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result icu4x_CodePointSetData_create_variation_selector_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_white_space_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_white_space_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_white_space_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_white_space_with_provider_mv1_result;
-icu4x_CodePointSetData_create_white_space_with_provider_mv1_result icu4x_CodePointSetData_create_white_space_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_xdigit_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_xdigit_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result;
-icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result icu4x_CodePointSetData_create_xdigit_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_xid_continue_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_xid_continue_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result;
-icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result icu4x_CodePointSetData_create_xid_continue_with_provider_mv1(const DataProvider* provider);
-
-bool icu4x_CodePointSetData_xid_start_for_char_mv1(char32_t ch);
-
-CodePointSetData* icu4x_CodePointSetData_create_xid_start_mv1(void);
-
-typedef struct icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result;
-icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result icu4x_CodePointSetData_create_xid_start_with_provider_mv1(const DataProvider* provider);
-
-typedef struct icu4x_CodePointSetData_create_for_ecma262_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_for_ecma262_mv1_result;
-icu4x_CodePointSetData_create_for_ecma262_mv1_result icu4x_CodePointSetData_create_for_ecma262_mv1(DiplomatStringView property_name);
-
-typedef struct icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result {union {CodePointSetData* ok; DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result;
-icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1(const DataProvider* provider, DiplomatStringView property_name);
-
-
-void icu4x_CodePointSetData_destroy_mv1(CodePointSetData* self);
-
-
-
-
-
-#endif // CodePointSetData_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.d.h
deleted file mode 100644
index 4f80279..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Collator_D_H
-#define Collator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Collator Collator;
-
-
-
-
-#endif // Collator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.h
deleted file mode 100644
index 4af63e6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Collator.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef Collator_H
-#define Collator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CollatorOptionsV1.d.h"
-#include "CollatorResolvedOptionsV1.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-
-#include "Collator.d.h"
-
-
-
-
-
-
-typedef struct icu4x_Collator_create_v1_mv1_result {union {Collator* ok; DataError err;}; bool is_ok;} icu4x_Collator_create_v1_mv1_result;
-icu4x_Collator_create_v1_mv1_result icu4x_Collator_create_v1_mv1(const Locale* locale, CollatorOptionsV1 options);
-
-typedef struct icu4x_Collator_create_v1_with_provider_mv1_result {union {Collator* ok; DataError err;}; bool is_ok;} icu4x_Collator_create_v1_with_provider_mv1_result;
-icu4x_Collator_create_v1_with_provider_mv1_result icu4x_Collator_create_v1_with_provider_mv1(const DataProvider* provider, const Locale* locale, CollatorOptionsV1 options);
-
-int8_t icu4x_Collator_compare_utf8_mv1(const Collator* self, DiplomatStringView left, DiplomatStringView right);
-
-int8_t icu4x_Collator_compare_utf16_mv1(const Collator* self, DiplomatString16View left, DiplomatString16View right);
-
-CollatorResolvedOptionsV1 icu4x_Collator_resolved_options_v1_mv1(const Collator* self);
-
-
-void icu4x_Collator_destroy_mv1(Collator* self);
-
-
-
-
-
-#endif // Collator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.d.h
deleted file mode 100644
index 24f7aae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorAlternateHandling_D_H
-#define CollatorAlternateHandling_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorAlternateHandling {
-  CollatorAlternateHandling_NonIgnorable = 0,
-  CollatorAlternateHandling_Shifted = 1,
-} CollatorAlternateHandling;
-
-typedef struct CollatorAlternateHandling_option {union { CollatorAlternateHandling ok; }; bool is_ok; } CollatorAlternateHandling_option;
-
-
-
-#endif // CollatorAlternateHandling_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.h
deleted file mode 100644
index 8ce84d3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorAlternateHandling.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorAlternateHandling_H
-#define CollatorAlternateHandling_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorAlternateHandling.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorAlternateHandling_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.d.h
deleted file mode 100644
index 0ca179f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorBackwardSecondLevel_D_H
-#define CollatorBackwardSecondLevel_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorBackwardSecondLevel {
-  CollatorBackwardSecondLevel_Off = 0,
-  CollatorBackwardSecondLevel_On = 1,
-} CollatorBackwardSecondLevel;
-
-typedef struct CollatorBackwardSecondLevel_option {union { CollatorBackwardSecondLevel ok; }; bool is_ok; } CollatorBackwardSecondLevel_option;
-
-
-
-#endif // CollatorBackwardSecondLevel_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.h
deleted file mode 100644
index dda21c9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorBackwardSecondLevel.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorBackwardSecondLevel_H
-#define CollatorBackwardSecondLevel_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorBackwardSecondLevel.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorBackwardSecondLevel_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.d.h
deleted file mode 100644
index 6c0dc7a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef CollatorCaseFirst_D_H
-#define CollatorCaseFirst_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorCaseFirst {
-  CollatorCaseFirst_Off = 0,
-  CollatorCaseFirst_Lower = 1,
-  CollatorCaseFirst_Upper = 2,
-} CollatorCaseFirst;
-
-typedef struct CollatorCaseFirst_option {union { CollatorCaseFirst ok; }; bool is_ok; } CollatorCaseFirst_option;
-
-
-
-#endif // CollatorCaseFirst_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.h
deleted file mode 100644
index d048726..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseFirst.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorCaseFirst_H
-#define CollatorCaseFirst_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorCaseFirst.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorCaseFirst_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.d.h
deleted file mode 100644
index d5bbdd8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorCaseLevel_D_H
-#define CollatorCaseLevel_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorCaseLevel {
-  CollatorCaseLevel_Off = 0,
-  CollatorCaseLevel_On = 1,
-} CollatorCaseLevel;
-
-typedef struct CollatorCaseLevel_option {union { CollatorCaseLevel ok; }; bool is_ok; } CollatorCaseLevel_option;
-
-
-
-#endif // CollatorCaseLevel_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.h
deleted file mode 100644
index d6a3188..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorCaseLevel.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorCaseLevel_H
-#define CollatorCaseLevel_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorCaseLevel.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorCaseLevel_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.d.h
deleted file mode 100644
index 2323a7c5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef CollatorMaxVariable_D_H
-#define CollatorMaxVariable_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorMaxVariable {
-  CollatorMaxVariable_Space = 0,
-  CollatorMaxVariable_Punctuation = 1,
-  CollatorMaxVariable_Symbol = 2,
-  CollatorMaxVariable_Currency = 3,
-} CollatorMaxVariable;
-
-typedef struct CollatorMaxVariable_option {union { CollatorMaxVariable ok; }; bool is_ok; } CollatorMaxVariable_option;
-
-
-
-#endif // CollatorMaxVariable_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.h
deleted file mode 100644
index cd9f262..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorMaxVariable.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorMaxVariable_H
-#define CollatorMaxVariable_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorMaxVariable.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorMaxVariable_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.d.h
deleted file mode 100644
index ff45b9c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorNumericOrdering_D_H
-#define CollatorNumericOrdering_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorNumericOrdering {
-  CollatorNumericOrdering_Off = 0,
-  CollatorNumericOrdering_On = 1,
-} CollatorNumericOrdering;
-
-typedef struct CollatorNumericOrdering_option {union { CollatorNumericOrdering ok; }; bool is_ok; } CollatorNumericOrdering_option;
-
-
-
-#endif // CollatorNumericOrdering_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.h
deleted file mode 100644
index f48eaba3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorNumericOrdering.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorNumericOrdering_H
-#define CollatorNumericOrdering_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorNumericOrdering.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorNumericOrdering_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.d.h
deleted file mode 100644
index 960c3c2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.d.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef CollatorOptionsV1_D_H
-#define CollatorOptionsV1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CollatorAlternateHandling.d.h"
-#include "CollatorBackwardSecondLevel.d.h"
-#include "CollatorCaseLevel.d.h"
-#include "CollatorMaxVariable.d.h"
-#include "CollatorStrength.d.h"
-
-
-
-
-typedef struct CollatorOptionsV1 {
-  CollatorStrength_option strength;
-  CollatorAlternateHandling_option alternate_handling;
-  CollatorMaxVariable_option max_variable;
-  CollatorCaseLevel_option case_level;
-  CollatorBackwardSecondLevel_option backward_second_level;
-} CollatorOptionsV1;
-
-typedef struct CollatorOptionsV1_option {union { CollatorOptionsV1 ok; }; bool is_ok; } CollatorOptionsV1_option;
-
-
-
-#endif // CollatorOptionsV1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.h
deleted file mode 100644
index 26fd092..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorOptionsV1.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorOptionsV1_H
-#define CollatorOptionsV1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorOptionsV1.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorOptionsV1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.d.h
deleted file mode 100644
index ba3c280..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.d.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef CollatorResolvedOptionsV1_D_H
-#define CollatorResolvedOptionsV1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CollatorAlternateHandling.d.h"
-#include "CollatorBackwardSecondLevel.d.h"
-#include "CollatorCaseFirst.d.h"
-#include "CollatorCaseLevel.d.h"
-#include "CollatorMaxVariable.d.h"
-#include "CollatorNumericOrdering.d.h"
-#include "CollatorStrength.d.h"
-
-
-
-
-typedef struct CollatorResolvedOptionsV1 {
-  CollatorStrength strength;
-  CollatorAlternateHandling alternate_handling;
-  CollatorCaseFirst case_first;
-  CollatorMaxVariable max_variable;
-  CollatorCaseLevel case_level;
-  CollatorNumericOrdering numeric;
-  CollatorBackwardSecondLevel backward_second_level;
-} CollatorResolvedOptionsV1;
-
-typedef struct CollatorResolvedOptionsV1_option {union { CollatorResolvedOptionsV1 ok; }; bool is_ok; } CollatorResolvedOptionsV1_option;
-
-
-
-#endif // CollatorResolvedOptionsV1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.h
deleted file mode 100644
index 7df0185..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorResolvedOptionsV1.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorResolvedOptionsV1_H
-#define CollatorResolvedOptionsV1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorResolvedOptionsV1.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorResolvedOptionsV1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.d.h
deleted file mode 100644
index b5edb26..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.d.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef CollatorStrength_D_H
-#define CollatorStrength_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum CollatorStrength {
-  CollatorStrength_Primary = 0,
-  CollatorStrength_Secondary = 1,
-  CollatorStrength_Tertiary = 2,
-  CollatorStrength_Quaternary = 3,
-  CollatorStrength_Identical = 4,
-} CollatorStrength;
-
-typedef struct CollatorStrength_option {union { CollatorStrength ok; }; bool is_ok; } CollatorStrength_option;
-
-
-
-#endif // CollatorStrength_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.h
deleted file mode 100644
index 421856ad..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/CollatorStrength.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef CollatorStrength_H
-#define CollatorStrength_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "CollatorStrength.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // CollatorStrength_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.d.h
deleted file mode 100644
index f3a3afa1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ComposingNormalizer_D_H
-#define ComposingNormalizer_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ComposingNormalizer ComposingNormalizer;
-
-
-
-
-#endif // ComposingNormalizer_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.h
deleted file mode 100644
index 4c2880c9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ComposingNormalizer.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef ComposingNormalizer_H
-#define ComposingNormalizer_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "ComposingNormalizer.d.h"
-
-
-
-
-
-
-ComposingNormalizer* icu4x_ComposingNormalizer_create_nfc_mv1(void);
-
-typedef struct icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result {union {ComposingNormalizer* ok; DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result;
-icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(const DataProvider* provider);
-
-ComposingNormalizer* icu4x_ComposingNormalizer_create_nfkc_mv1(void);
-
-typedef struct icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result {union {ComposingNormalizer* ok; DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result;
-icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(const DataProvider* provider);
-
-void icu4x_ComposingNormalizer_normalize_mv1(const ComposingNormalizer* self, DiplomatStringView s, DiplomatWrite* write);
-
-bool icu4x_ComposingNormalizer_is_normalized_utf8_mv1(const ComposingNormalizer* self, DiplomatStringView s);
-
-bool icu4x_ComposingNormalizer_is_normalized_utf16_mv1(const ComposingNormalizer* self, DiplomatString16View s);
-
-size_t icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(const ComposingNormalizer* self, DiplomatStringView s);
-
-size_t icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(const ComposingNormalizer* self, DiplomatString16View s);
-
-
-void icu4x_ComposingNormalizer_destroy_mv1(ComposingNormalizer* self);
-
-
-
-
-
-#endif // ComposingNormalizer_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.d.h
deleted file mode 100644
index f474e42..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.d.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef DataError_D_H
-#define DataError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DataError {
-  DataError_Unknown = 0,
-  DataError_MarkerNotFound = 1,
-  DataError_IdentifierNotFound = 2,
-  DataError_InvalidRequest = 3,
-  DataError_InconsistentData = 4,
-  DataError_Downcast = 5,
-  DataError_Deserialize = 6,
-  DataError_Custom = 7,
-  DataError_Io = 8,
-} DataError;
-
-typedef struct DataError_option {union { DataError ok; }; bool is_ok; } DataError_option;
-
-
-
-#endif // DataError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.h
deleted file mode 100644
index efeb4cf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DataError_H
-#define DataError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DataError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DataError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.d.h
deleted file mode 100644
index fd7c83a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DataProvider_D_H
-#define DataProvider_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DataProvider DataProvider;
-
-
-
-
-#endif // DataProvider_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.h
deleted file mode 100644
index a27390b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DataProvider.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef DataProvider_H
-#define DataProvider_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "LocaleFallbacker.d.h"
-
-#include "DataProvider.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DataProvider_from_fs_mv1_result {union {DataProvider* ok; DataError err;}; bool is_ok;} icu4x_DataProvider_from_fs_mv1_result;
-icu4x_DataProvider_from_fs_mv1_result icu4x_DataProvider_from_fs_mv1(DiplomatStringView path);
-
-typedef struct icu4x_DataProvider_from_byte_slice_mv1_result {union {DataProvider* ok; DataError err;}; bool is_ok;} icu4x_DataProvider_from_byte_slice_mv1_result;
-icu4x_DataProvider_from_byte_slice_mv1_result icu4x_DataProvider_from_byte_slice_mv1(DiplomatU8View blob);
-
-typedef struct icu4x_DataProvider_fork_by_key_mv1_result {union { DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_key_mv1_result;
-icu4x_DataProvider_fork_by_key_mv1_result icu4x_DataProvider_fork_by_key_mv1(DataProvider* self, DataProvider* other);
-
-typedef struct icu4x_DataProvider_fork_by_locale_mv1_result {union { DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_locale_mv1_result;
-icu4x_DataProvider_fork_by_locale_mv1_result icu4x_DataProvider_fork_by_locale_mv1(DataProvider* self, DataProvider* other);
-
-typedef struct icu4x_DataProvider_enable_locale_fallback_with_mv1_result {union { DataError err;}; bool is_ok;} icu4x_DataProvider_enable_locale_fallback_with_mv1_result;
-icu4x_DataProvider_enable_locale_fallback_with_mv1_result icu4x_DataProvider_enable_locale_fallback_with_mv1(DataProvider* self, const LocaleFallbacker* fallbacker);
-
-
-void icu4x_DataProvider_destroy_mv1(DataProvider* self);
-
-
-
-
-
-#endif // DataProvider_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.d.h
deleted file mode 100644
index ecd2b27..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Date_D_H
-#define Date_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Date Date;
-
-
-
-
-#endif // Date_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.h
deleted file mode 100644
index 868cffe5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Date.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef Date_H
-#define Date_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Calendar.d.h"
-#include "CalendarError.d.h"
-#include "CalendarParseError.d.h"
-#include "IsoDate.d.h"
-#include "WeekCalculator.d.h"
-#include "WeekOf.d.h"
-#include "Weekday.d.h"
-
-#include "Date.d.h"
-
-
-
-
-
-
-typedef struct icu4x_Date_from_iso_in_calendar_mv1_result {union {Date* ok; CalendarError err;}; bool is_ok;} icu4x_Date_from_iso_in_calendar_mv1_result;
-icu4x_Date_from_iso_in_calendar_mv1_result icu4x_Date_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, const Calendar* calendar);
-
-typedef struct icu4x_Date_from_codes_in_calendar_mv1_result {union {Date* ok; CalendarError err;}; bool is_ok;} icu4x_Date_from_codes_in_calendar_mv1_result;
-icu4x_Date_from_codes_in_calendar_mv1_result icu4x_Date_from_codes_in_calendar_mv1(DiplomatStringView era_code, int32_t year, DiplomatStringView month_code, uint8_t day, const Calendar* calendar);
-
-typedef struct icu4x_Date_from_string_mv1_result {union {Date* ok; CalendarParseError err;}; bool is_ok;} icu4x_Date_from_string_mv1_result;
-icu4x_Date_from_string_mv1_result icu4x_Date_from_string_mv1(DiplomatStringView v, const Calendar* calendar);
-
-Date* icu4x_Date_to_calendar_mv1(const Date* self, const Calendar* calendar);
-
-IsoDate* icu4x_Date_to_iso_mv1(const Date* self);
-
-uint16_t icu4x_Date_day_of_year_mv1(const Date* self);
-
-uint8_t icu4x_Date_day_of_month_mv1(const Date* self);
-
-Weekday icu4x_Date_day_of_week_mv1(const Date* self);
-
-uint8_t icu4x_Date_week_of_month_mv1(const Date* self, Weekday first_weekday);
-
-WeekOf icu4x_Date_week_of_year_mv1(const Date* self, const WeekCalculator* calculator);
-
-uint8_t icu4x_Date_ordinal_month_mv1(const Date* self);
-
-void icu4x_Date_month_code_mv1(const Date* self, DiplomatWrite* write);
-
-uint8_t icu4x_Date_month_number_mv1(const Date* self);
-
-bool icu4x_Date_month_is_leap_mv1(const Date* self);
-
-int32_t icu4x_Date_year_in_era_mv1(const Date* self);
-
-int32_t icu4x_Date_extended_year_mv1(const Date* self);
-
-void icu4x_Date_era_mv1(const Date* self, DiplomatWrite* write);
-
-uint8_t icu4x_Date_months_in_year_mv1(const Date* self);
-
-uint8_t icu4x_Date_days_in_month_mv1(const Date* self);
-
-uint16_t icu4x_Date_days_in_year_mv1(const Date* self);
-
-Calendar* icu4x_Date_calendar_mv1(const Date* self);
-
-
-void icu4x_Date_destroy_mv1(Date* self);
-
-
-
-
-
-#endif // Date_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.d.h
deleted file mode 100644
index da3607f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DateFormatter_D_H
-#define DateFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DateFormatter DateFormatter;
-
-
-
-
-#endif // DateFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.h
deleted file mode 100644
index 366e785..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateFormatter.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef DateFormatter_H
-#define DateFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Calendar.d.h"
-#include "DataProvider.d.h"
-#include "Date.d.h"
-#include "DateTimeFormatError.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-
-#include "DateFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DateFormatter_create_with_length_mv1_result {union {DateFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_mv1_result;
-icu4x_DateFormatter_create_with_length_mv1_result icu4x_DateFormatter_create_with_length_mv1(const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_DateFormatter_create_with_length_and_provider_mv1_result {union {DateFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_and_provider_mv1_result;
-icu4x_DateFormatter_create_with_length_and_provider_mv1_result icu4x_DateFormatter_create_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_DateFormatter_format_mv1_result {union { DateTimeFormatError err;}; bool is_ok;} icu4x_DateFormatter_format_mv1_result;
-icu4x_DateFormatter_format_mv1_result icu4x_DateFormatter_format_mv1(const DateFormatter* self, const Date* value, DiplomatWrite* write);
-
-typedef struct icu4x_DateFormatter_format_iso_mv1_result {union { DateTimeFormatError err;}; bool is_ok;} icu4x_DateFormatter_format_iso_mv1_result;
-icu4x_DateFormatter_format_iso_mv1_result icu4x_DateFormatter_format_iso_mv1(const DateFormatter* self, const IsoDate* value, DiplomatWrite* write);
-
-Calendar* icu4x_DateFormatter_calendar_mv1(const DateFormatter* self);
-
-
-void icu4x_DateFormatter_destroy_mv1(DateFormatter* self);
-
-
-
-
-
-#endif // DateFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.d.h
deleted file mode 100644
index 0226539..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef DateTime_D_H
-#define DateTime_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Date.d.h"
-#include "Time.d.h"
-
-
-
-
-typedef struct DateTime {
-  Date* date;
-  Time* time;
-} DateTime;
-
-typedef struct DateTime_option {union { DateTime ok; }; bool is_ok; } DateTime_option;
-
-
-
-#endif // DateTime_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.h
deleted file mode 100644
index 278ee26f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTime.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef DateTime_H
-#define DateTime_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Calendar.d.h"
-#include "CalendarParseError.d.h"
-
-#include "DateTime.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DateTime_from_string_mv1_result {union {DateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_DateTime_from_string_mv1_result;
-icu4x_DateTime_from_string_mv1_result icu4x_DateTime_from_string_mv1(DiplomatStringView v, const Calendar* calendar);
-
-
-
-
-
-
-#endif // DateTime_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.d.h
deleted file mode 100644
index 41ce282..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeAlignment_D_H
-#define DateTimeAlignment_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DateTimeAlignment {
-  DateTimeAlignment_Auto = 0,
-  DateTimeAlignment_Column = 1,
-} DateTimeAlignment;
-
-typedef struct DateTimeAlignment_option {union { DateTimeAlignment ok; }; bool is_ok; } DateTimeAlignment_option;
-
-
-
-#endif // DateTimeAlignment_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.h
deleted file mode 100644
index c718de92..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeAlignment.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeAlignment_H
-#define DateTimeAlignment_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DateTimeAlignment.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DateTimeAlignment_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.d.h
deleted file mode 100644
index 08c39df2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.d.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef DateTimeFormatError_D_H
-#define DateTimeFormatError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DateTimeFormatError {
-  DateTimeFormatError_Unknown = 0,
-  DateTimeFormatError_MissingInputField = 1,
-  DateTimeFormatError_ZoneInfoMissingFields = 2,
-  DateTimeFormatError_InvalidEra = 3,
-  DateTimeFormatError_InvalidMonthCode = 4,
-  DateTimeFormatError_InvalidCyclicYear = 5,
-  DateTimeFormatError_NamesNotLoaded = 16,
-  DateTimeFormatError_DecimalFormatterNotLoaded = 17,
-  DateTimeFormatError_UnsupportedField = 18,
-} DateTimeFormatError;
-
-typedef struct DateTimeFormatError_option {union { DateTimeFormatError ok; }; bool is_ok; } DateTimeFormatError_option;
-
-
-
-#endif // DateTimeFormatError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.h
deleted file mode 100644
index 55a9eccc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeFormatError_H
-#define DateTimeFormatError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DateTimeFormatError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DateTimeFormatError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.d.h
deleted file mode 100644
index 50486dc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DateTimeFormatter_D_H
-#define DateTimeFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DateTimeFormatter DateTimeFormatter;
-
-
-
-
-#endif // DateTimeFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.h
deleted file mode 100644
index 499282b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatter.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DateTimeFormatter_H
-#define DateTimeFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "Date.d.h"
-#include "DateTimeAlignment.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "DateTimeMismatchedCalendarError.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-#include "Time.d.h"
-#include "TimePrecision.d.h"
-#include "YearStyle.d.h"
-
-#include "DateTimeFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DateTimeFormatter_create_dt_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_dt_mv1_result;
-icu4x_DateTimeFormatter_create_dt_mv1_result icu4x_DateTimeFormatter_create_dt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result icu4x_DateTimeFormatter_create_dt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_mdt_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdt_mv1_result;
-icu4x_DateTimeFormatter_create_mdt_mv1_result icu4x_DateTimeFormatter_create_mdt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result icu4x_DateTimeFormatter_create_mdt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_ymdt_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdt_mv1_result;
-icu4x_DateTimeFormatter_create_ymdt_mv1_result icu4x_DateTimeFormatter_create_ymdt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatter_create_det_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_det_mv1_result;
-icu4x_DateTimeFormatter_create_det_mv1_result icu4x_DateTimeFormatter_create_det_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_det_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_det_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_det_with_provider_mv1_result icu4x_DateTimeFormatter_create_det_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_mdet_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdet_mv1_result;
-icu4x_DateTimeFormatter_create_mdet_mv1_result icu4x_DateTimeFormatter_create_mdet_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result icu4x_DateTimeFormatter_create_mdet_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_ymdet_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdet_mv1_result;
-icu4x_DateTimeFormatter_create_ymdet_mv1_result icu4x_DateTimeFormatter_create_ymdet_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatter_create_et_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_et_mv1_result;
-icu4x_DateTimeFormatter_create_et_mv1_result icu4x_DateTimeFormatter_create_et_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatter_create_et_with_provider_mv1_result {union {DateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_et_with_provider_mv1_result;
-icu4x_DateTimeFormatter_create_et_with_provider_mv1_result icu4x_DateTimeFormatter_create_et_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-void icu4x_DateTimeFormatter_format_iso_mv1(const DateTimeFormatter* self, const IsoDate* date, const Time* time, DiplomatWrite* write);
-
-typedef struct icu4x_DateTimeFormatter_format_same_calendar_mv1_result {union { DateTimeMismatchedCalendarError err;}; bool is_ok;} icu4x_DateTimeFormatter_format_same_calendar_mv1_result;
-icu4x_DateTimeFormatter_format_same_calendar_mv1_result icu4x_DateTimeFormatter_format_same_calendar_mv1(const DateTimeFormatter* self, const Date* date, const Time* time, DiplomatWrite* write);
-
-
-void icu4x_DateTimeFormatter_destroy_mv1(DateTimeFormatter* self);
-
-
-
-
-
-#endif // DateTimeFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.d.h
deleted file mode 100644
index a9c2877..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DateTimeFormatterGregorian_D_H
-#define DateTimeFormatterGregorian_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DateTimeFormatterGregorian DateTimeFormatterGregorian;
-
-
-
-
-#endif // DateTimeFormatterGregorian_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.h
deleted file mode 100644
index a9740bb0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterGregorian.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef DateTimeFormatterGregorian_H
-#define DateTimeFormatterGregorian_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "DateTimeAlignment.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-#include "Time.d.h"
-#include "TimePrecision.d.h"
-#include "YearStyle.d.h"
-
-#include "DateTimeFormatterGregorian.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_dt_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_dt_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_dt_mv1_result icu4x_DateTimeFormatterGregorian_create_dt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result icu4x_DateTimeFormatterGregorian_create_mdt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdt_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_det_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_det_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_det_mv1_result icu4x_DateTimeFormatterGregorian_create_det_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result icu4x_DateTimeFormatterGregorian_create_mdet_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdet_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment, YearStyle_option year_style);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_et_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_et_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_et_mv1_result icu4x_DateTimeFormatterGregorian_create_et_mv1(const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-typedef struct icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result {union {DateTimeFormatterGregorian* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result;
-icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength_option length, TimePrecision_option time_precision, DateTimeAlignment_option alignment);
-
-void icu4x_DateTimeFormatterGregorian_format_iso_mv1(const DateTimeFormatterGregorian* self, const IsoDate* date, const Time* time, DiplomatWrite* write);
-
-
-void icu4x_DateTimeFormatterGregorian_destroy_mv1(DateTimeFormatterGregorian* self);
-
-
-
-
-
-#endif // DateTimeFormatterGregorian_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.d.h
deleted file mode 100644
index 7c71cdd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.d.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef DateTimeFormatterLoadError_D_H
-#define DateTimeFormatterLoadError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DateTimeFormatterLoadError {
-  DateTimeFormatterLoadError_Unknown = 0,
-  DateTimeFormatterLoadError_UnsupportedLength = 2051,
-  DateTimeFormatterLoadError_DuplicateField = 2057,
-  DateTimeFormatterLoadError_TypeTooSpecific = 2058,
-  DateTimeFormatterLoadError_DataMarkerNotFound = 1,
-  DateTimeFormatterLoadError_DataIdentifierNotFound = 2,
-  DateTimeFormatterLoadError_DataInvalidRequest = 3,
-  DateTimeFormatterLoadError_DataInconsistentData = 4,
-  DateTimeFormatterLoadError_DataDowncast = 5,
-  DateTimeFormatterLoadError_DataDeserialize = 6,
-  DateTimeFormatterLoadError_DataCustom = 7,
-  DateTimeFormatterLoadError_DataIo = 8,
-} DateTimeFormatterLoadError;
-
-typedef struct DateTimeFormatterLoadError_option {union { DateTimeFormatterLoadError ok; }; bool is_ok; } DateTimeFormatterLoadError_option;
-
-
-
-#endif // DateTimeFormatterLoadError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.h
deleted file mode 100644
index b98f57c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeFormatterLoadError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeFormatterLoadError_H
-#define DateTimeFormatterLoadError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DateTimeFormatterLoadError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DateTimeFormatterLoadError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.d.h
deleted file mode 100644
index de4357e0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef DateTimeLength_D_H
-#define DateTimeLength_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DateTimeLength {
-  DateTimeLength_Long = 0,
-  DateTimeLength_Medium = 1,
-  DateTimeLength_Short = 2,
-} DateTimeLength;
-
-typedef struct DateTimeLength_option {union { DateTimeLength ok; }; bool is_ok; } DateTimeLength_option;
-
-
-
-#endif // DateTimeLength_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.h
deleted file mode 100644
index 4951fd5e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeLength.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeLength_H
-#define DateTimeLength_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DateTimeLength.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DateTimeLength_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.d.h
deleted file mode 100644
index c33599a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef DateTimeMismatchedCalendarError_D_H
-#define DateTimeMismatchedCalendarError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "AnyCalendarKind.d.h"
-
-
-
-
-typedef struct DateTimeMismatchedCalendarError {
-  AnyCalendarKind this_kind;
-  AnyCalendarKind_option date_kind;
-} DateTimeMismatchedCalendarError;
-
-typedef struct DateTimeMismatchedCalendarError_option {union { DateTimeMismatchedCalendarError ok; }; bool is_ok; } DateTimeMismatchedCalendarError_option;
-
-
-
-#endif // DateTimeMismatchedCalendarError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.h
deleted file mode 100644
index 99c2b233..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DateTimeMismatchedCalendarError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DateTimeMismatchedCalendarError_H
-#define DateTimeMismatchedCalendarError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DateTimeMismatchedCalendarError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DateTimeMismatchedCalendarError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.d.h
deleted file mode 100644
index 5b18ecd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Decimal_D_H
-#define Decimal_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Decimal Decimal;
-
-
-
-
-#endif // Decimal_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.h
deleted file mode 100644
index 0e1a574..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decimal.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef Decimal_H
-#define Decimal_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "FixedDecimalParseError.d.h"
-#include "FixedDecimalRoundingIncrement.d.h"
-#include "FixedDecimalSign.d.h"
-#include "FixedDecimalSignDisplay.d.h"
-#include "FixedDecimalSignedRoundingMode.d.h"
-
-#include "Decimal.d.h"
-
-
-
-
-
-
-Decimal* icu4x_Decimal_from_int32_mv1(int32_t v);
-
-Decimal* icu4x_Decimal_from_uint32_mv1(uint32_t v);
-
-Decimal* icu4x_Decimal_from_int64_mv1(int64_t v);
-
-Decimal* icu4x_Decimal_from_uint64_mv1(uint64_t v);
-
-typedef struct icu4x_Decimal_from_double_with_integer_precision_mv1_result {union {Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_integer_precision_mv1_result;
-icu4x_Decimal_from_double_with_integer_precision_mv1_result icu4x_Decimal_from_double_with_integer_precision_mv1(double f);
-
-typedef struct icu4x_Decimal_from_double_with_lower_magnitude_mv1_result {union {Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_lower_magnitude_mv1_result;
-icu4x_Decimal_from_double_with_lower_magnitude_mv1_result icu4x_Decimal_from_double_with_lower_magnitude_mv1(double f, int16_t magnitude);
-
-typedef struct icu4x_Decimal_from_double_with_significant_digits_mv1_result {union {Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_significant_digits_mv1_result;
-icu4x_Decimal_from_double_with_significant_digits_mv1_result icu4x_Decimal_from_double_with_significant_digits_mv1(double f, uint8_t digits);
-
-typedef struct icu4x_Decimal_from_double_with_round_trip_precision_mv1_result {union {Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_round_trip_precision_mv1_result;
-icu4x_Decimal_from_double_with_round_trip_precision_mv1_result icu4x_Decimal_from_double_with_round_trip_precision_mv1(double f);
-
-typedef struct icu4x_Decimal_from_string_mv1_result {union {Decimal* ok; FixedDecimalParseError err;}; bool is_ok;} icu4x_Decimal_from_string_mv1_result;
-icu4x_Decimal_from_string_mv1_result icu4x_Decimal_from_string_mv1(DiplomatStringView v);
-
-uint8_t icu4x_Decimal_digit_at_mv1(const Decimal* self, int16_t magnitude);
-
-int16_t icu4x_Decimal_magnitude_start_mv1(const Decimal* self);
-
-int16_t icu4x_Decimal_magnitude_end_mv1(const Decimal* self);
-
-int16_t icu4x_Decimal_nonzero_magnitude_start_mv1(const Decimal* self);
-
-int16_t icu4x_Decimal_nonzero_magnitude_end_mv1(const Decimal* self);
-
-bool icu4x_Decimal_is_zero_mv1(const Decimal* self);
-
-void icu4x_Decimal_multiply_pow10_mv1(Decimal* self, int16_t power);
-
-FixedDecimalSign icu4x_Decimal_sign_mv1(const Decimal* self);
-
-void icu4x_Decimal_set_sign_mv1(Decimal* self, FixedDecimalSign sign);
-
-void icu4x_Decimal_apply_sign_display_mv1(Decimal* self, FixedDecimalSignDisplay sign_display);
-
-void icu4x_Decimal_trim_start_mv1(Decimal* self);
-
-void icu4x_Decimal_trim_end_mv1(Decimal* self);
-
-void icu4x_Decimal_trim_end_if_integer_mv1(Decimal* self);
-
-void icu4x_Decimal_pad_start_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_pad_end_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_set_max_position_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_round_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_ceil_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_expand_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_floor_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_trunc_mv1(Decimal* self, int16_t position);
-
-void icu4x_Decimal_round_with_mode_mv1(Decimal* self, int16_t position, FixedDecimalSignedRoundingMode mode);
-
-void icu4x_Decimal_round_with_mode_and_increment_mv1(Decimal* self, int16_t position, FixedDecimalSignedRoundingMode mode, FixedDecimalRoundingIncrement increment);
-
-typedef struct icu4x_Decimal_concatenate_end_mv1_result { bool is_ok;} icu4x_Decimal_concatenate_end_mv1_result;
-icu4x_Decimal_concatenate_end_mv1_result icu4x_Decimal_concatenate_end_mv1(Decimal* self, Decimal* other);
-
-void icu4x_Decimal_to_string_mv1(const Decimal* self, DiplomatWrite* write);
-
-
-void icu4x_Decimal_destroy_mv1(Decimal* self);
-
-
-
-
-
-#endif // Decimal_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.d.h
deleted file mode 100644
index daf5bd6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DecimalFormatter_D_H
-#define DecimalFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DecimalFormatter DecimalFormatter;
-
-
-
-
-#endif // DecimalFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.h
deleted file mode 100644
index 570b5b3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalFormatter.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef DecimalFormatter_H
-#define DecimalFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Decimal.d.h"
-#include "DecimalGroupingStrategy.d.h"
-#include "Locale.d.h"
-
-#include "DecimalFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result {union {DecimalFormatter* ok; DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result;
-icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(const Locale* locale, DecimalGroupingStrategy_option grouping_strategy);
-
-typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result {union {DecimalFormatter* ok; DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result;
-icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(const DataProvider* provider, const Locale* locale, DecimalGroupingStrategy_option grouping_strategy);
-
-typedef struct icu4x_DecimalFormatter_create_with_manual_data_mv1_result {union {DecimalFormatter* ok; DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_manual_data_mv1_result;
-icu4x_DecimalFormatter_create_with_manual_data_mv1_result icu4x_DecimalFormatter_create_with_manual_data_mv1(DiplomatStringView plus_sign_prefix, DiplomatStringView plus_sign_suffix, DiplomatStringView minus_sign_prefix, DiplomatStringView minus_sign_suffix, DiplomatStringView decimal_separator, DiplomatStringView grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, DiplomatCharView digits, DecimalGroupingStrategy_option grouping_strategy);
-
-void icu4x_DecimalFormatter_format_mv1(const DecimalFormatter* self, const Decimal* value, DiplomatWrite* write);
-
-
-void icu4x_DecimalFormatter_destroy_mv1(DecimalFormatter* self);
-
-
-
-
-
-#endif // DecimalFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.d.h
deleted file mode 100644
index ad77251..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef DecimalGroupingStrategy_D_H
-#define DecimalGroupingStrategy_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DecimalGroupingStrategy {
-  DecimalGroupingStrategy_Auto = 0,
-  DecimalGroupingStrategy_Never = 1,
-  DecimalGroupingStrategy_Always = 2,
-  DecimalGroupingStrategy_Min2 = 3,
-} DecimalGroupingStrategy;
-
-typedef struct DecimalGroupingStrategy_option {union { DecimalGroupingStrategy ok; }; bool is_ok; } DecimalGroupingStrategy_option;
-
-
-
-#endif // DecimalGroupingStrategy_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.h
deleted file mode 100644
index b96103a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecimalGroupingStrategy.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DecimalGroupingStrategy_H
-#define DecimalGroupingStrategy_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DecimalGroupingStrategy.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DecimalGroupingStrategy_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.d.h
deleted file mode 100644
index e4c72f1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef Decomposed_D_H
-#define Decomposed_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Decomposed {
-  char32_t first;
-  char32_t second;
-} Decomposed;
-
-typedef struct Decomposed_option {union { Decomposed ok; }; bool is_ok; } Decomposed_option;
-
-
-
-#endif // Decomposed_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.h
deleted file mode 100644
index af5c08ee..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Decomposed.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef Decomposed_H
-#define Decomposed_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "Decomposed.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // Decomposed_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.d.h
deleted file mode 100644
index d9a26ad..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef DecomposingNormalizer_D_H
-#define DecomposingNormalizer_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct DecomposingNormalizer DecomposingNormalizer;
-
-
-
-
-#endif // DecomposingNormalizer_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.h
deleted file mode 100644
index 42ee92a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DecomposingNormalizer.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef DecomposingNormalizer_H
-#define DecomposingNormalizer_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "DecomposingNormalizer.d.h"
-
-
-
-
-
-
-DecomposingNormalizer* icu4x_DecomposingNormalizer_create_nfd_mv1(void);
-
-typedef struct icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result {union {DecomposingNormalizer* ok; DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result;
-icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1(const DataProvider* provider);
-
-DecomposingNormalizer* icu4x_DecomposingNormalizer_create_nfkd_mv1(void);
-
-typedef struct icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result {union {DecomposingNormalizer* ok; DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result;
-icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1(const DataProvider* provider);
-
-void icu4x_DecomposingNormalizer_normalize_mv1(const DecomposingNormalizer* self, DiplomatStringView s, DiplomatWrite* write);
-
-bool icu4x_DecomposingNormalizer_is_normalized_mv1(const DecomposingNormalizer* self, DiplomatStringView s);
-
-bool icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(const DecomposingNormalizer* self, DiplomatString16View s);
-
-size_t icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(const DecomposingNormalizer* self, DiplomatStringView s);
-
-size_t icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(const DecomposingNormalizer* self, DiplomatString16View s);
-
-
-void icu4x_DecomposingNormalizer_destroy_mv1(DecomposingNormalizer* self);
-
-
-
-
-
-#endif // DecomposingNormalizer_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.d.h
deleted file mode 100644
index 8b4a494..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DisplayNamesFallback_D_H
-#define DisplayNamesFallback_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DisplayNamesFallback {
-  DisplayNamesFallback_Code = 0,
-  DisplayNamesFallback_None = 1,
-} DisplayNamesFallback;
-
-typedef struct DisplayNamesFallback_option {union { DisplayNamesFallback ok; }; bool is_ok; } DisplayNamesFallback_option;
-
-
-
-#endif // DisplayNamesFallback_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.h
deleted file mode 100644
index 42edd84..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesFallback.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DisplayNamesFallback_H
-#define DisplayNamesFallback_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DisplayNamesFallback.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DisplayNamesFallback_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.d.h
deleted file mode 100644
index 32e1e43..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef DisplayNamesOptionsV1_D_H
-#define DisplayNamesOptionsV1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DisplayNamesFallback.d.h"
-#include "DisplayNamesStyle.d.h"
-#include "LanguageDisplay.d.h"
-
-
-
-
-typedef struct DisplayNamesOptionsV1 {
-  DisplayNamesStyle_option style;
-  DisplayNamesFallback_option fallback;
-  LanguageDisplay_option language_display;
-} DisplayNamesOptionsV1;
-
-typedef struct DisplayNamesOptionsV1_option {union { DisplayNamesOptionsV1 ok; }; bool is_ok; } DisplayNamesOptionsV1_option;
-
-
-
-#endif // DisplayNamesOptionsV1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.h
deleted file mode 100644
index 0753e0d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesOptionsV1.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DisplayNamesOptionsV1_H
-#define DisplayNamesOptionsV1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DisplayNamesOptionsV1.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DisplayNamesOptionsV1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.d.h
deleted file mode 100644
index df7ac78..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef DisplayNamesStyle_D_H
-#define DisplayNamesStyle_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum DisplayNamesStyle {
-  DisplayNamesStyle_Narrow = 0,
-  DisplayNamesStyle_Short = 1,
-  DisplayNamesStyle_Long = 2,
-  DisplayNamesStyle_Menu = 3,
-} DisplayNamesStyle;
-
-typedef struct DisplayNamesStyle_option {union { DisplayNamesStyle ok; }; bool is_ok; } DisplayNamesStyle_option;
-
-
-
-#endif // DisplayNamesStyle_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.h
deleted file mode 100644
index 9452b85..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/DisplayNamesStyle.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef DisplayNamesStyle_H
-#define DisplayNamesStyle_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "DisplayNamesStyle.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // DisplayNamesStyle_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.d.h
deleted file mode 100644
index 03e8ceb6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef EastAsianWidth_D_H
-#define EastAsianWidth_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum EastAsianWidth {
-  EastAsianWidth_Neutral = 0,
-  EastAsianWidth_Ambiguous = 1,
-  EastAsianWidth_Halfwidth = 2,
-  EastAsianWidth_Fullwidth = 3,
-  EastAsianWidth_Narrow = 4,
-  EastAsianWidth_Wide = 5,
-} EastAsianWidth;
-
-typedef struct EastAsianWidth_option {union { EastAsianWidth ok; }; bool is_ok; } EastAsianWidth_option;
-
-
-
-#endif // EastAsianWidth_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.h
deleted file mode 100644
index 4d18b76..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EastAsianWidth.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EastAsianWidth_H
-#define EastAsianWidth_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "EastAsianWidth.d.h"
-
-
-
-
-
-
-EastAsianWidth icu4x_EastAsianWidth_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_EastAsianWidth_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_long_name_mv1_result;
-icu4x_EastAsianWidth_long_name_mv1_result icu4x_EastAsianWidth_long_name_mv1(EastAsianWidth self);
-
-typedef struct icu4x_EastAsianWidth_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_short_name_mv1_result;
-icu4x_EastAsianWidth_short_name_mv1_result icu4x_EastAsianWidth_short_name_mv1(EastAsianWidth self);
-
-uint8_t icu4x_EastAsianWidth_to_integer_value_mv1(EastAsianWidth self);
-
-typedef struct icu4x_EastAsianWidth_from_integer_value_mv1_result {union {EastAsianWidth ok; }; bool is_ok;} icu4x_EastAsianWidth_from_integer_value_mv1_result;
-icu4x_EastAsianWidth_from_integer_value_mv1_result icu4x_EastAsianWidth_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // EastAsianWidth_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.d.h
deleted file mode 100644
index 304930ed..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef EmojiSetData_D_H
-#define EmojiSetData_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct EmojiSetData EmojiSetData;
-
-
-
-
-#endif // EmojiSetData_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.h
deleted file mode 100644
index b9e72bc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/EmojiSetData.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EmojiSetData_H
-#define EmojiSetData_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "EmojiSetData.d.h"
-
-
-
-
-
-
-bool icu4x_EmojiSetData_contains_str_mv1(const EmojiSetData* self, DiplomatStringView s);
-
-bool icu4x_EmojiSetData_contains_mv1(const EmojiSetData* self, char32_t cp);
-
-EmojiSetData* icu4x_EmojiSetData_create_basic_mv1(void);
-
-typedef struct icu4x_EmojiSetData_create_basic_with_provider_mv1_result {union {EmojiSetData* ok; DataError err;}; bool is_ok;} icu4x_EmojiSetData_create_basic_with_provider_mv1_result;
-icu4x_EmojiSetData_create_basic_with_provider_mv1_result icu4x_EmojiSetData_create_basic_with_provider_mv1(const DataProvider* provider);
-
-
-void icu4x_EmojiSetData_destroy_mv1(EmojiSetData* self);
-
-
-
-
-
-#endif // EmojiSetData_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.d.h
deleted file mode 100644
index 3cca2db4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ExemplarCharacters_D_H
-#define ExemplarCharacters_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ExemplarCharacters ExemplarCharacters;
-
-
-
-
-#endif // ExemplarCharacters_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.h
deleted file mode 100644
index dba3a40..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ExemplarCharacters.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef ExemplarCharacters_H
-#define ExemplarCharacters_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-
-#include "ExemplarCharacters.d.h"
-
-
-
-
-
-
-bool icu4x_ExemplarCharacters_contains_str_mv1(const ExemplarCharacters* self, DiplomatStringView s);
-
-bool icu4x_ExemplarCharacters_contains_mv1(const ExemplarCharacters* self, char32_t cp);
-
-typedef struct icu4x_ExemplarCharacters_create_main_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_main_mv1_result;
-icu4x_ExemplarCharacters_create_main_mv1_result icu4x_ExemplarCharacters_create_main_mv1(const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_main_with_provider_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_main_with_provider_mv1_result;
-icu4x_ExemplarCharacters_create_main_with_provider_mv1_result icu4x_ExemplarCharacters_create_main_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_auxiliary_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_auxiliary_mv1_result;
-icu4x_ExemplarCharacters_create_auxiliary_mv1_result icu4x_ExemplarCharacters_create_auxiliary_mv1(const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result;
-icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_punctuation_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_punctuation_mv1_result;
-icu4x_ExemplarCharacters_create_punctuation_mv1_result icu4x_ExemplarCharacters_create_punctuation_mv1(const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result;
-icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_numbers_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_numbers_mv1_result;
-icu4x_ExemplarCharacters_create_numbers_mv1_result icu4x_ExemplarCharacters_create_numbers_mv1(const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result;
-icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result icu4x_ExemplarCharacters_create_numbers_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_index_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_index_mv1_result;
-icu4x_ExemplarCharacters_create_index_mv1_result icu4x_ExemplarCharacters_create_index_mv1(const Locale* locale);
-
-typedef struct icu4x_ExemplarCharacters_create_index_with_provider_mv1_result {union {ExemplarCharacters* ok; DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_index_with_provider_mv1_result;
-icu4x_ExemplarCharacters_create_index_with_provider_mv1_result icu4x_ExemplarCharacters_create_index_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-
-void icu4x_ExemplarCharacters_destroy_mv1(ExemplarCharacters* self);
-
-
-
-
-
-#endif // ExemplarCharacters_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.d.h
deleted file mode 100644
index ebd8565..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.d.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef FixedDecimalLimitError_D_H
-#define FixedDecimalLimitError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalLimitError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.h
deleted file mode 100644
index a355151..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalLimitError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalLimitError_H
-#define FixedDecimalLimitError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalLimitError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalLimitError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.d.h
deleted file mode 100644
index 084d523..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef FixedDecimalParseError_D_H
-#define FixedDecimalParseError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum FixedDecimalParseError {
-  FixedDecimalParseError_Unknown = 0,
-  FixedDecimalParseError_Limit = 1,
-  FixedDecimalParseError_Syntax = 2,
-} FixedDecimalParseError;
-
-typedef struct FixedDecimalParseError_option {union { FixedDecimalParseError ok; }; bool is_ok; } FixedDecimalParseError_option;
-
-
-
-#endif // FixedDecimalParseError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.h
deleted file mode 100644
index 58cb3e6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalParseError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalParseError_H
-#define FixedDecimalParseError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalParseError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalParseError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.d.h
deleted file mode 100644
index 5248a4a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef FixedDecimalRoundingIncrement_D_H
-#define FixedDecimalRoundingIncrement_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum FixedDecimalRoundingIncrement {
-  FixedDecimalRoundingIncrement_MultiplesOf1 = 0,
-  FixedDecimalRoundingIncrement_MultiplesOf2 = 1,
-  FixedDecimalRoundingIncrement_MultiplesOf5 = 2,
-  FixedDecimalRoundingIncrement_MultiplesOf25 = 3,
-} FixedDecimalRoundingIncrement;
-
-typedef struct FixedDecimalRoundingIncrement_option {union { FixedDecimalRoundingIncrement ok; }; bool is_ok; } FixedDecimalRoundingIncrement_option;
-
-
-
-#endif // FixedDecimalRoundingIncrement_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.h
deleted file mode 100644
index 3a18ffb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalRoundingIncrement.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalRoundingIncrement_H
-#define FixedDecimalRoundingIncrement_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalRoundingIncrement.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalRoundingIncrement_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.d.h
deleted file mode 100644
index 3a3e1e29..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef FixedDecimalSign_D_H
-#define FixedDecimalSign_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum FixedDecimalSign {
-  FixedDecimalSign_None = 0,
-  FixedDecimalSign_Negative = 1,
-  FixedDecimalSign_Positive = 2,
-} FixedDecimalSign;
-
-typedef struct FixedDecimalSign_option {union { FixedDecimalSign ok; }; bool is_ok; } FixedDecimalSign_option;
-
-
-
-#endif // FixedDecimalSign_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.h
deleted file mode 100644
index 21b3a51..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSign.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalSign_H
-#define FixedDecimalSign_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalSign.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalSign_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.d.h
deleted file mode 100644
index b92fc8e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.d.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef FixedDecimalSignDisplay_D_H
-#define FixedDecimalSignDisplay_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum FixedDecimalSignDisplay {
-  FixedDecimalSignDisplay_Auto = 0,
-  FixedDecimalSignDisplay_Never = 1,
-  FixedDecimalSignDisplay_Always = 2,
-  FixedDecimalSignDisplay_ExceptZero = 3,
-  FixedDecimalSignDisplay_Negative = 4,
-} FixedDecimalSignDisplay;
-
-typedef struct FixedDecimalSignDisplay_option {union { FixedDecimalSignDisplay ok; }; bool is_ok; } FixedDecimalSignDisplay_option;
-
-
-
-#endif // FixedDecimalSignDisplay_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.h
deleted file mode 100644
index 71581af1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignDisplay.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalSignDisplay_H
-#define FixedDecimalSignDisplay_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalSignDisplay.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalSignDisplay_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.d.h
deleted file mode 100644
index 388a092c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.d.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef FixedDecimalSignedRoundingMode_D_H
-#define FixedDecimalSignedRoundingMode_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum FixedDecimalSignedRoundingMode {
-  FixedDecimalSignedRoundingMode_Expand = 0,
-  FixedDecimalSignedRoundingMode_Trunc = 1,
-  FixedDecimalSignedRoundingMode_HalfExpand = 2,
-  FixedDecimalSignedRoundingMode_HalfTrunc = 3,
-  FixedDecimalSignedRoundingMode_HalfEven = 4,
-  FixedDecimalSignedRoundingMode_Ceil = 5,
-  FixedDecimalSignedRoundingMode_Floor = 6,
-  FixedDecimalSignedRoundingMode_HalfCeil = 7,
-  FixedDecimalSignedRoundingMode_HalfFloor = 8,
-} FixedDecimalSignedRoundingMode;
-
-typedef struct FixedDecimalSignedRoundingMode_option {union { FixedDecimalSignedRoundingMode ok; }; bool is_ok; } FixedDecimalSignedRoundingMode_option;
-
-
-
-#endif // FixedDecimalSignedRoundingMode_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.h
deleted file mode 100644
index 77bcbbb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/FixedDecimalSignedRoundingMode.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FixedDecimalSignedRoundingMode_H
-#define FixedDecimalSignedRoundingMode_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "FixedDecimalSignedRoundingMode.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // FixedDecimalSignedRoundingMode_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.d.h
deleted file mode 100644
index f71824d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.d.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef GeneralCategory_D_H
-#define GeneralCategory_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum GeneralCategory {
-  GeneralCategory_Unassigned = 0,
-  GeneralCategory_UppercaseLetter = 1,
-  GeneralCategory_LowercaseLetter = 2,
-  GeneralCategory_TitlecaseLetter = 3,
-  GeneralCategory_ModifierLetter = 4,
-  GeneralCategory_OtherLetter = 5,
-  GeneralCategory_NonspacingMark = 6,
-  GeneralCategory_SpacingMark = 8,
-  GeneralCategory_EnclosingMark = 7,
-  GeneralCategory_DecimalNumber = 9,
-  GeneralCategory_LetterNumber = 10,
-  GeneralCategory_OtherNumber = 11,
-  GeneralCategory_SpaceSeparator = 12,
-  GeneralCategory_LineSeparator = 13,
-  GeneralCategory_ParagraphSeparator = 14,
-  GeneralCategory_Control = 15,
-  GeneralCategory_Format = 16,
-  GeneralCategory_PrivateUse = 17,
-  GeneralCategory_Surrogate = 18,
-  GeneralCategory_DashPunctuation = 19,
-  GeneralCategory_OpenPunctuation = 20,
-  GeneralCategory_ClosePunctuation = 21,
-  GeneralCategory_ConnectorPunctuation = 22,
-  GeneralCategory_InitialPunctuation = 28,
-  GeneralCategory_FinalPunctuation = 29,
-  GeneralCategory_OtherPunctuation = 23,
-  GeneralCategory_MathSymbol = 24,
-  GeneralCategory_CurrencySymbol = 25,
-  GeneralCategory_ModifierSymbol = 26,
-  GeneralCategory_OtherSymbol = 27,
-} GeneralCategory;
-
-typedef struct GeneralCategory_option {union { GeneralCategory ok; }; bool is_ok; } GeneralCategory_option;
-
-
-
-#endif // GeneralCategory_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.h
deleted file mode 100644
index 5f5b6ef0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategory.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef GeneralCategory_H
-#define GeneralCategory_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "GeneralCategoryGroup.d.h"
-
-#include "GeneralCategory.d.h"
-
-
-
-
-
-
-GeneralCategory icu4x_GeneralCategory_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_GeneralCategory_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_long_name_mv1_result;
-icu4x_GeneralCategory_long_name_mv1_result icu4x_GeneralCategory_long_name_mv1(GeneralCategory self);
-
-typedef struct icu4x_GeneralCategory_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_short_name_mv1_result;
-icu4x_GeneralCategory_short_name_mv1_result icu4x_GeneralCategory_short_name_mv1(GeneralCategory self);
-
-uint8_t icu4x_GeneralCategory_to_integer_value_mv1(GeneralCategory self);
-
-GeneralCategoryGroup icu4x_GeneralCategory_to_group_mv1(GeneralCategory self);
-
-typedef struct icu4x_GeneralCategory_from_integer_value_mv1_result {union {GeneralCategory ok; }; bool is_ok;} icu4x_GeneralCategory_from_integer_value_mv1_result;
-icu4x_GeneralCategory_from_integer_value_mv1_result icu4x_GeneralCategory_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // GeneralCategory_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.d.h
deleted file mode 100644
index 3d2b217..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.d.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef GeneralCategoryGroup_D_H
-#define GeneralCategoryGroup_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GeneralCategoryGroup {
-  uint32_t mask;
-} GeneralCategoryGroup;
-
-typedef struct GeneralCategoryGroup_option {union { GeneralCategoryGroup ok; }; bool is_ok; } GeneralCategoryGroup_option;
-
-
-
-#endif // GeneralCategoryGroup_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.h
deleted file mode 100644
index f7cc0f3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryGroup.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef GeneralCategoryGroup_H
-#define GeneralCategoryGroup_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "GeneralCategory.d.h"
-
-#include "GeneralCategoryGroup.d.h"
-
-
-
-
-
-
-bool icu4x_GeneralCategoryGroup_contains_mv1(GeneralCategoryGroup self, GeneralCategory val);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_complement_mv1(GeneralCategoryGroup self);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_all_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_empty_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_union_mv1(GeneralCategoryGroup self, GeneralCategoryGroup other);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_intersection_mv1(GeneralCategoryGroup self, GeneralCategoryGroup other);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_cased_letter_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_letter_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_mark_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_number_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_separator_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_other_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_punctuation_mv1(void);
-
-GeneralCategoryGroup icu4x_GeneralCategoryGroup_symbol_mv1(void);
-
-
-
-
-
-
-#endif // GeneralCategoryGroup_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.d.h
deleted file mode 100644
index b3ae043..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GeneralCategoryNameToGroupMapper_D_H
-#define GeneralCategoryNameToGroupMapper_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GeneralCategoryNameToGroupMapper GeneralCategoryNameToGroupMapper;
-
-
-
-
-#endif // GeneralCategoryNameToGroupMapper_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.h
deleted file mode 100644
index 14321a85..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GeneralCategoryNameToGroupMapper.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef GeneralCategoryNameToGroupMapper_H
-#define GeneralCategoryNameToGroupMapper_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "GeneralCategoryGroup.d.h"
-
-#include "GeneralCategoryNameToGroupMapper.d.h"
-
-
-
-
-
-
-GeneralCategoryGroup icu4x_GeneralCategoryNameToGroupMapper_get_strict_mv1(const GeneralCategoryNameToGroupMapper* self, DiplomatStringView name);
-
-GeneralCategoryGroup icu4x_GeneralCategoryNameToGroupMapper_get_loose_mv1(const GeneralCategoryNameToGroupMapper* self, DiplomatStringView name);
-
-GeneralCategoryNameToGroupMapper* icu4x_GeneralCategoryNameToGroupMapper_create_mv1(void);
-
-typedef struct icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result {union {GeneralCategoryNameToGroupMapper* ok; DataError err;}; bool is_ok;} icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result;
-icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1(const DataProvider* provider);
-
-
-void icu4x_GeneralCategoryNameToGroupMapper_destroy_mv1(GeneralCategoryNameToGroupMapper* self);
-
-
-
-
-
-#endif // GeneralCategoryNameToGroupMapper_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.d.h
deleted file mode 100644
index 83842181..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.d.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef GraphemeClusterBreak_D_H
-#define GraphemeClusterBreak_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum GraphemeClusterBreak {
-  GraphemeClusterBreak_Other = 0,
-  GraphemeClusterBreak_Control = 1,
-  GraphemeClusterBreak_CR = 2,
-  GraphemeClusterBreak_Extend = 3,
-  GraphemeClusterBreak_L = 4,
-  GraphemeClusterBreak_LF = 5,
-  GraphemeClusterBreak_LV = 6,
-  GraphemeClusterBreak_LVT = 7,
-  GraphemeClusterBreak_T = 8,
-  GraphemeClusterBreak_V = 9,
-  GraphemeClusterBreak_SpacingMark = 10,
-  GraphemeClusterBreak_Prepend = 11,
-  GraphemeClusterBreak_RegionalIndicator = 12,
-  GraphemeClusterBreak_EBase = 13,
-  GraphemeClusterBreak_EBaseGAZ = 14,
-  GraphemeClusterBreak_EModifier = 15,
-  GraphemeClusterBreak_GlueAfterZwj = 16,
-  GraphemeClusterBreak_ZWJ = 17,
-} GraphemeClusterBreak;
-
-typedef struct GraphemeClusterBreak_option {union { GraphemeClusterBreak ok; }; bool is_ok; } GraphemeClusterBreak_option;
-
-
-
-#endif // GraphemeClusterBreak_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.h
deleted file mode 100644
index b87551f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreak.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef GraphemeClusterBreak_H
-#define GraphemeClusterBreak_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "GraphemeClusterBreak.d.h"
-
-
-
-
-
-
-GraphemeClusterBreak icu4x_GraphemeClusterBreak_for_char_mv1(char32_t ch);
-
-uint8_t icu4x_GraphemeClusterBreak_to_integer_value_mv1(GraphemeClusterBreak self);
-
-typedef struct icu4x_GraphemeClusterBreak_from_integer_value_mv1_result {union {GraphemeClusterBreak ok; }; bool is_ok;} icu4x_GraphemeClusterBreak_from_integer_value_mv1_result;
-icu4x_GraphemeClusterBreak_from_integer_value_mv1_result icu4x_GraphemeClusterBreak_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // GraphemeClusterBreak_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.d.h
deleted file mode 100644
index b3a09f60..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorLatin1_D_H
-#define GraphemeClusterBreakIteratorLatin1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GraphemeClusterBreakIteratorLatin1 GraphemeClusterBreakIteratorLatin1;
-
-
-
-
-#endif // GraphemeClusterBreakIteratorLatin1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.h
deleted file mode 100644
index 09c42b1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorLatin1.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorLatin1_H
-#define GraphemeClusterBreakIteratorLatin1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "GraphemeClusterBreakIteratorLatin1.d.h"
-
-
-
-
-
-
-int32_t icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(GraphemeClusterBreakIteratorLatin1* self);
-
-
-void icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(GraphemeClusterBreakIteratorLatin1* self);
-
-
-
-
-
-#endif // GraphemeClusterBreakIteratorLatin1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.d.h
deleted file mode 100644
index 3621efa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorUtf16_D_H
-#define GraphemeClusterBreakIteratorUtf16_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GraphemeClusterBreakIteratorUtf16 GraphemeClusterBreakIteratorUtf16;
-
-
-
-
-#endif // GraphemeClusterBreakIteratorUtf16_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.h
deleted file mode 100644
index 2f6123a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf16.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorUtf16_H
-#define GraphemeClusterBreakIteratorUtf16_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "GraphemeClusterBreakIteratorUtf16.d.h"
-
-
-
-
-
-
-int32_t icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(GraphemeClusterBreakIteratorUtf16* self);
-
-
-void icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(GraphemeClusterBreakIteratorUtf16* self);
-
-
-
-
-
-#endif // GraphemeClusterBreakIteratorUtf16_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.d.h
deleted file mode 100644
index fd07f79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorUtf8_D_H
-#define GraphemeClusterBreakIteratorUtf8_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GraphemeClusterBreakIteratorUtf8 GraphemeClusterBreakIteratorUtf8;
-
-
-
-
-#endif // GraphemeClusterBreakIteratorUtf8_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.h
deleted file mode 100644
index 1784adf8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterBreakIteratorUtf8.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef GraphemeClusterBreakIteratorUtf8_H
-#define GraphemeClusterBreakIteratorUtf8_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "GraphemeClusterBreakIteratorUtf8.d.h"
-
-
-
-
-
-
-int32_t icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(GraphemeClusterBreakIteratorUtf8* self);
-
-
-void icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(GraphemeClusterBreakIteratorUtf8* self);
-
-
-
-
-
-#endif // GraphemeClusterBreakIteratorUtf8_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.d.h
deleted file mode 100644
index 5ab7ed1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GraphemeClusterSegmenter_D_H
-#define GraphemeClusterSegmenter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GraphemeClusterSegmenter GraphemeClusterSegmenter;
-
-
-
-
-#endif // GraphemeClusterSegmenter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.h
deleted file mode 100644
index ccbc4019..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GraphemeClusterSegmenter.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef GraphemeClusterSegmenter_H
-#define GraphemeClusterSegmenter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "GraphemeClusterBreakIteratorLatin1.d.h"
-#include "GraphemeClusterBreakIteratorUtf16.d.h"
-#include "GraphemeClusterBreakIteratorUtf8.d.h"
-
-#include "GraphemeClusterSegmenter.d.h"
-
-
-
-
-
-
-GraphemeClusterSegmenter* icu4x_GraphemeClusterSegmenter_create_mv1(void);
-
-typedef struct icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result {union {GraphemeClusterSegmenter* ok; DataError err;}; bool is_ok;} icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result;
-icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result icu4x_GraphemeClusterSegmenter_create_with_provider_mv1(const DataProvider* provider);
-
-GraphemeClusterBreakIteratorUtf8* icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(const GraphemeClusterSegmenter* self, DiplomatStringView input);
-
-GraphemeClusterBreakIteratorUtf16* icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(const GraphemeClusterSegmenter* self, DiplomatString16View input);
-
-GraphemeClusterBreakIteratorLatin1* icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(const GraphemeClusterSegmenter* self, DiplomatU8View input);
-
-
-void icu4x_GraphemeClusterSegmenter_destroy_mv1(GraphemeClusterSegmenter* self);
-
-
-
-
-
-#endif // GraphemeClusterSegmenter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.d.h
deleted file mode 100644
index a7ba48b6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GregorianDateFormatter_D_H
-#define GregorianDateFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GregorianDateFormatter GregorianDateFormatter;
-
-
-
-
-#endif // GregorianDateFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.h
deleted file mode 100644
index 1404181..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianDateFormatter.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef GregorianDateFormatter_H
-#define GregorianDateFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-
-#include "GregorianDateFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_GregorianDateFormatter_create_with_length_mv1_result {union {GregorianDateFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_mv1_result;
-icu4x_GregorianDateFormatter_create_with_length_mv1_result icu4x_GregorianDateFormatter_create_with_length_mv1(const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result {union {GregorianDateFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result;
-icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength length);
-
-void icu4x_GregorianDateFormatter_format_iso_mv1(const GregorianDateFormatter* self, const IsoDate* value, DiplomatWrite* write);
-
-
-void icu4x_GregorianDateFormatter_destroy_mv1(GregorianDateFormatter* self);
-
-
-
-
-
-#endif // GregorianDateFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.d.h
deleted file mode 100644
index e6b4d026..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GregorianZonedDateTimeFormatter_D_H
-#define GregorianZonedDateTimeFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct GregorianZonedDateTimeFormatter GregorianZonedDateTimeFormatter;
-
-
-
-
-#endif // GregorianZonedDateTimeFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.h
deleted file mode 100644
index 36c0cd8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/GregorianZonedDateTimeFormatter.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef GregorianZonedDateTimeFormatter_H
-#define GregorianZonedDateTimeFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "DateTimeFormatError.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-#include "Time.d.h"
-#include "TimeZoneInfo.d.h"
-
-#include "GregorianZonedDateTimeFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result {union {GregorianZonedDateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result;
-icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1(const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result {union {GregorianZonedDateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result;
-icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result {union { DateTimeFormatError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result;
-icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1(const GregorianZonedDateTimeFormatter* self, const IsoDate* date, const Time* time, const TimeZoneInfo* zone, DiplomatWrite* write);
-
-
-void icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(GregorianZonedDateTimeFormatter* self);
-
-
-
-
-
-#endif // GregorianZonedDateTimeFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.d.h
deleted file mode 100644
index 122312c6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef HangulSyllableType_D_H
-#define HangulSyllableType_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum HangulSyllableType {
-  HangulSyllableType_NotApplicable = 0,
-  HangulSyllableType_LeadingJamo = 1,
-  HangulSyllableType_VowelJamo = 2,
-  HangulSyllableType_TrailingJamo = 3,
-  HangulSyllableType_LeadingVowelSyllable = 4,
-  HangulSyllableType_LeadingVowelTrailingSyllable = 5,
-} HangulSyllableType;
-
-typedef struct HangulSyllableType_option {union { HangulSyllableType ok; }; bool is_ok; } HangulSyllableType_option;
-
-
-
-#endif // HangulSyllableType_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.h
deleted file mode 100644
index 9857f8d4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/HangulSyllableType.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef HangulSyllableType_H
-#define HangulSyllableType_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "HangulSyllableType.d.h"
-
-
-
-
-
-
-HangulSyllableType icu4x_HangulSyllableType_for_char_mv1(char32_t ch);
-
-uint8_t icu4x_HangulSyllableType_to_integer_value_mv1(HangulSyllableType self);
-
-typedef struct icu4x_HangulSyllableType_from_integer_value_mv1_result {union {HangulSyllableType ok; }; bool is_ok;} icu4x_HangulSyllableType_from_integer_value_mv1_result;
-icu4x_HangulSyllableType_from_integer_value_mv1_result icu4x_HangulSyllableType_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // HangulSyllableType_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.d.h
deleted file mode 100644
index f697af8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef IanaParser_D_H
-#define IanaParser_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct IanaParser IanaParser;
-
-
-
-
-#endif // IanaParser_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.h
deleted file mode 100644
index 52adb34..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParser.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef IanaParser_H
-#define IanaParser_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "TimeZone.d.h"
-#include "TimeZoneIterator.d.h"
-
-#include "IanaParser.d.h"
-
-
-
-
-
-
-IanaParser* icu4x_IanaParser_create_mv1(void);
-
-typedef struct icu4x_IanaParser_create_with_provider_mv1_result {union {IanaParser* ok; DataError err;}; bool is_ok;} icu4x_IanaParser_create_with_provider_mv1_result;
-icu4x_IanaParser_create_with_provider_mv1_result icu4x_IanaParser_create_with_provider_mv1(const DataProvider* provider);
-
-TimeZone* icu4x_IanaParser_parse_mv1(const IanaParser* self, DiplomatStringView value);
-
-TimeZoneIterator* icu4x_IanaParser_iter_mv1(const IanaParser* self);
-
-
-void icu4x_IanaParser_destroy_mv1(IanaParser* self);
-
-
-
-
-
-#endif // IanaParser_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.d.h
deleted file mode 100644
index 32d15a524..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef IanaParserExtended_D_H
-#define IanaParserExtended_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct IanaParserExtended IanaParserExtended;
-
-
-
-
-#endif // IanaParserExtended_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.h
deleted file mode 100644
index 26a1ad8f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IanaParserExtended.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef IanaParserExtended_H
-#define IanaParserExtended_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "TimeZoneAndCanonicalAndNormalized.d.h"
-#include "TimeZoneAndCanonicalAndNormalizedIterator.d.h"
-#include "TimeZoneAndCanonicalIterator.d.h"
-
-#include "IanaParserExtended.d.h"
-
-
-
-
-
-
-IanaParserExtended* icu4x_IanaParserExtended_create_mv1(void);
-
-typedef struct icu4x_IanaParserExtended_create_with_provider_mv1_result {union {IanaParserExtended* ok; DataError err;}; bool is_ok;} icu4x_IanaParserExtended_create_with_provider_mv1_result;
-icu4x_IanaParserExtended_create_with_provider_mv1_result icu4x_IanaParserExtended_create_with_provider_mv1(const DataProvider* provider);
-
-TimeZoneAndCanonicalAndNormalized icu4x_IanaParserExtended_parse_mv1(const IanaParserExtended* self, DiplomatStringView value);
-
-TimeZoneAndCanonicalIterator* icu4x_IanaParserExtended_iter_mv1(const IanaParserExtended* self);
-
-TimeZoneAndCanonicalAndNormalizedIterator* icu4x_IanaParserExtended_iter_all_mv1(const IanaParserExtended* self);
-
-
-void icu4x_IanaParserExtended_destroy_mv1(IanaParserExtended* self);
-
-
-
-
-
-#endif // IanaParserExtended_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.d.h
deleted file mode 100644
index 7dd8148..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.d.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef IndicSyllabicCategory_D_H
-#define IndicSyllabicCategory_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum IndicSyllabicCategory {
-  IndicSyllabicCategory_Other = 0,
-  IndicSyllabicCategory_Avagraha = 1,
-  IndicSyllabicCategory_Bindu = 2,
-  IndicSyllabicCategory_BrahmiJoiningNumber = 3,
-  IndicSyllabicCategory_CantillationMark = 4,
-  IndicSyllabicCategory_Consonant = 5,
-  IndicSyllabicCategory_ConsonantDead = 6,
-  IndicSyllabicCategory_ConsonantFinal = 7,
-  IndicSyllabicCategory_ConsonantHeadLetter = 8,
-  IndicSyllabicCategory_ConsonantInitialPostfixed = 9,
-  IndicSyllabicCategory_ConsonantKiller = 10,
-  IndicSyllabicCategory_ConsonantMedial = 11,
-  IndicSyllabicCategory_ConsonantPlaceholder = 12,
-  IndicSyllabicCategory_ConsonantPrecedingRepha = 13,
-  IndicSyllabicCategory_ConsonantPrefixed = 14,
-  IndicSyllabicCategory_ConsonantSucceedingRepha = 15,
-  IndicSyllabicCategory_ConsonantSubjoined = 16,
-  IndicSyllabicCategory_ConsonantWithStacker = 17,
-  IndicSyllabicCategory_GeminationMark = 18,
-  IndicSyllabicCategory_InvisibleStacker = 19,
-  IndicSyllabicCategory_Joiner = 20,
-  IndicSyllabicCategory_ModifyingLetter = 21,
-  IndicSyllabicCategory_NonJoiner = 22,
-  IndicSyllabicCategory_Nukta = 23,
-  IndicSyllabicCategory_Number = 24,
-  IndicSyllabicCategory_NumberJoiner = 25,
-  IndicSyllabicCategory_PureKiller = 26,
-  IndicSyllabicCategory_RegisterShifter = 27,
-  IndicSyllabicCategory_SyllableModifier = 28,
-  IndicSyllabicCategory_ToneLetter = 29,
-  IndicSyllabicCategory_ToneMark = 30,
-  IndicSyllabicCategory_Virama = 31,
-  IndicSyllabicCategory_Visarga = 32,
-  IndicSyllabicCategory_Vowel = 33,
-  IndicSyllabicCategory_VowelDependent = 34,
-  IndicSyllabicCategory_VowelIndependent = 35,
-  IndicSyllabicCategory_ReorderingKiller = 36,
-} IndicSyllabicCategory;
-
-typedef struct IndicSyllabicCategory_option {union { IndicSyllabicCategory ok; }; bool is_ok; } IndicSyllabicCategory_option;
-
-
-
-#endif // IndicSyllabicCategory_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.h
deleted file mode 100644
index 003f6e6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IndicSyllabicCategory.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef IndicSyllabicCategory_H
-#define IndicSyllabicCategory_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "IndicSyllabicCategory.d.h"
-
-
-
-
-
-
-IndicSyllabicCategory icu4x_IndicSyllabicCategory_for_char_mv1(char32_t ch);
-
-uint8_t icu4x_IndicSyllabicCategory_to_integer_value_mv1(IndicSyllabicCategory self);
-
-typedef struct icu4x_IndicSyllabicCategory_from_integer_value_mv1_result {union {IndicSyllabicCategory ok; }; bool is_ok;} icu4x_IndicSyllabicCategory_from_integer_value_mv1_result;
-icu4x_IndicSyllabicCategory_from_integer_value_mv1_result icu4x_IndicSyllabicCategory_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // IndicSyllabicCategory_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.d.h
deleted file mode 100644
index 56173c6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef IsoDate_D_H
-#define IsoDate_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct IsoDate IsoDate;
-
-
-
-
-#endif // IsoDate_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.h
deleted file mode 100644
index af97f8e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDate.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef IsoDate_H
-#define IsoDate_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Calendar.d.h"
-#include "CalendarError.d.h"
-#include "CalendarParseError.d.h"
-#include "Date.d.h"
-#include "WeekCalculator.d.h"
-#include "WeekOf.d.h"
-#include "Weekday.d.h"
-
-#include "IsoDate.d.h"
-
-
-
-
-
-
-typedef struct icu4x_IsoDate_create_mv1_result {union {IsoDate* ok; CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result;
-icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day);
-
-typedef struct icu4x_IsoDate_from_string_mv1_result {union {IsoDate* ok; CalendarParseError err;}; bool is_ok;} icu4x_IsoDate_from_string_mv1_result;
-icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(DiplomatStringView v);
-
-Date* icu4x_IsoDate_to_calendar_mv1(const IsoDate* self, const Calendar* calendar);
-
-Date* icu4x_IsoDate_to_any_mv1(const IsoDate* self);
-
-uint16_t icu4x_IsoDate_day_of_year_mv1(const IsoDate* self);
-
-uint8_t icu4x_IsoDate_day_of_month_mv1(const IsoDate* self);
-
-Weekday icu4x_IsoDate_day_of_week_mv1(const IsoDate* self);
-
-uint8_t icu4x_IsoDate_week_of_month_mv1(const IsoDate* self, Weekday first_weekday);
-
-WeekOf icu4x_IsoDate_week_of_year_mv1(const IsoDate* self, const WeekCalculator* calculator);
-
-uint8_t icu4x_IsoDate_month_mv1(const IsoDate* self);
-
-int32_t icu4x_IsoDate_year_mv1(const IsoDate* self);
-
-bool icu4x_IsoDate_is_in_leap_year_mv1(const IsoDate* self);
-
-uint8_t icu4x_IsoDate_months_in_year_mv1(const IsoDate* self);
-
-uint8_t icu4x_IsoDate_days_in_month_mv1(const IsoDate* self);
-
-uint16_t icu4x_IsoDate_days_in_year_mv1(const IsoDate* self);
-
-
-void icu4x_IsoDate_destroy_mv1(IsoDate* self);
-
-
-
-
-
-#endif // IsoDate_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.d.h
deleted file mode 100644
index 846a46c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef IsoDateTime_D_H
-#define IsoDateTime_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "IsoDate.d.h"
-#include "Time.d.h"
-
-
-
-
-typedef struct IsoDateTime {
-  IsoDate* date;
-  Time* time;
-} IsoDateTime;
-
-typedef struct IsoDateTime_option {union { IsoDateTime ok; }; bool is_ok; } IsoDateTime_option;
-
-
-
-#endif // IsoDateTime_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.h
deleted file mode 100644
index 0347864f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/IsoDateTime.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef IsoDateTime_H
-#define IsoDateTime_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CalendarParseError.d.h"
-
-#include "IsoDateTime.d.h"
-
-
-
-
-
-
-typedef struct icu4x_IsoDateTime_from_string_mv1_result {union {IsoDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_IsoDateTime_from_string_mv1_result;
-icu4x_IsoDateTime_from_string_mv1_result icu4x_IsoDateTime_from_string_mv1(DiplomatStringView v);
-
-
-
-
-
-
-#endif // IsoDateTime_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.d.h
deleted file mode 100644
index d616850..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef JoiningType_D_H
-#define JoiningType_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum JoiningType {
-  JoiningType_NonJoining = 0,
-  JoiningType_JoinCausing = 1,
-  JoiningType_DualJoining = 2,
-  JoiningType_LeftJoining = 3,
-  JoiningType_RightJoining = 4,
-  JoiningType_Transparent = 5,
-} JoiningType;
-
-typedef struct JoiningType_option {union { JoiningType ok; }; bool is_ok; } JoiningType_option;
-
-
-
-#endif // JoiningType_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.h
deleted file mode 100644
index 119c80cd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/JoiningType.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef JoiningType_H
-#define JoiningType_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "JoiningType.d.h"
-
-
-
-
-
-
-JoiningType icu4x_JoiningType_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_JoiningType_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_JoiningType_long_name_mv1_result;
-icu4x_JoiningType_long_name_mv1_result icu4x_JoiningType_long_name_mv1(JoiningType self);
-
-typedef struct icu4x_JoiningType_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_JoiningType_short_name_mv1_result;
-icu4x_JoiningType_short_name_mv1_result icu4x_JoiningType_short_name_mv1(JoiningType self);
-
-uint8_t icu4x_JoiningType_to_integer_value_mv1(JoiningType self);
-
-typedef struct icu4x_JoiningType_from_integer_value_mv1_result {union {JoiningType ok; }; bool is_ok;} icu4x_JoiningType_from_integer_value_mv1_result;
-icu4x_JoiningType_from_integer_value_mv1_result icu4x_JoiningType_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // JoiningType_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.d.h
deleted file mode 100644
index f81c27f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LanguageDisplay_D_H
-#define LanguageDisplay_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LanguageDisplay {
-  LanguageDisplay_Dialect = 0,
-  LanguageDisplay_Standard = 1,
-} LanguageDisplay;
-
-typedef struct LanguageDisplay_option {union { LanguageDisplay ok; }; bool is_ok; } LanguageDisplay_option;
-
-
-
-#endif // LanguageDisplay_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.h
deleted file mode 100644
index d8b25f36..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LanguageDisplay.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LanguageDisplay_H
-#define LanguageDisplay_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LanguageDisplay.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LanguageDisplay_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.d.h
deleted file mode 100644
index ba936b6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef LeadingAdjustment_D_H
-#define LeadingAdjustment_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LeadingAdjustment {
-  LeadingAdjustment_Auto = 0,
-  LeadingAdjustment_None = 1,
-  LeadingAdjustment_ToCased = 2,
-} LeadingAdjustment;
-
-typedef struct LeadingAdjustment_option {union { LeadingAdjustment ok; }; bool is_ok; } LeadingAdjustment_option;
-
-
-
-#endif // LeadingAdjustment_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.h
deleted file mode 100644
index 9a3976fa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LeadingAdjustment.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LeadingAdjustment_H
-#define LeadingAdjustment_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LeadingAdjustment.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LeadingAdjustment_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.d.h
deleted file mode 100644
index fa633ab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.d.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef LineBreak_D_H
-#define LineBreak_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LineBreak {
-  LineBreak_Unknown = 0,
-  LineBreak_Ambiguous = 1,
-  LineBreak_Alphabetic = 2,
-  LineBreak_BreakBoth = 3,
-  LineBreak_BreakAfter = 4,
-  LineBreak_BreakBefore = 5,
-  LineBreak_MandatoryBreak = 6,
-  LineBreak_ContingentBreak = 7,
-  LineBreak_ClosePunctuation = 8,
-  LineBreak_CombiningMark = 9,
-  LineBreak_CarriageReturn = 10,
-  LineBreak_Exclamation = 11,
-  LineBreak_Glue = 12,
-  LineBreak_Hyphen = 13,
-  LineBreak_Ideographic = 14,
-  LineBreak_Inseparable = 15,
-  LineBreak_InfixNumeric = 16,
-  LineBreak_LineFeed = 17,
-  LineBreak_Nonstarter = 18,
-  LineBreak_Numeric = 19,
-  LineBreak_OpenPunctuation = 20,
-  LineBreak_PostfixNumeric = 21,
-  LineBreak_PrefixNumeric = 22,
-  LineBreak_Quotation = 23,
-  LineBreak_ComplexContext = 24,
-  LineBreak_Surrogate = 25,
-  LineBreak_Space = 26,
-  LineBreak_BreakSymbols = 27,
-  LineBreak_ZWSpace = 28,
-  LineBreak_NextLine = 29,
-  LineBreak_WordJoiner = 30,
-  LineBreak_H2 = 31,
-  LineBreak_H3 = 32,
-  LineBreak_JL = 33,
-  LineBreak_JT = 34,
-  LineBreak_JV = 35,
-  LineBreak_CloseParenthesis = 36,
-  LineBreak_ConditionalJapaneseStarter = 37,
-  LineBreak_HebrewLetter = 38,
-  LineBreak_RegionalIndicator = 39,
-  LineBreak_EBase = 40,
-  LineBreak_EModifier = 41,
-  LineBreak_ZWJ = 42,
-  LineBreak_Aksara = 43,
-  LineBreak_AksaraPrebase = 44,
-  LineBreak_AksaraStart = 45,
-  LineBreak_ViramaFinal = 46,
-  LineBreak_Virama = 47,
-} LineBreak;
-
-typedef struct LineBreak_option {union { LineBreak ok; }; bool is_ok; } LineBreak_option;
-
-
-
-#endif // LineBreak_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.h
deleted file mode 100644
index f1a5954..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreak.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef LineBreak_H
-#define LineBreak_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreak.d.h"
-
-
-
-
-
-
-LineBreak icu4x_LineBreak_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_LineBreak_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_long_name_mv1_result;
-icu4x_LineBreak_long_name_mv1_result icu4x_LineBreak_long_name_mv1(LineBreak self);
-
-typedef struct icu4x_LineBreak_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_short_name_mv1_result;
-icu4x_LineBreak_short_name_mv1_result icu4x_LineBreak_short_name_mv1(LineBreak self);
-
-uint8_t icu4x_LineBreak_to_integer_value_mv1(LineBreak self);
-
-typedef struct icu4x_LineBreak_from_integer_value_mv1_result {union {LineBreak ok; }; bool is_ok;} icu4x_LineBreak_from_integer_value_mv1_result;
-icu4x_LineBreak_from_integer_value_mv1_result icu4x_LineBreak_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // LineBreak_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.d.h
deleted file mode 100644
index 7ede506..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LineBreakIteratorLatin1_D_H
-#define LineBreakIteratorLatin1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LineBreakIteratorLatin1 LineBreakIteratorLatin1;
-
-
-
-
-#endif // LineBreakIteratorLatin1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.h
deleted file mode 100644
index 6458354..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorLatin1.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef LineBreakIteratorLatin1_H
-#define LineBreakIteratorLatin1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakIteratorLatin1.d.h"
-
-
-
-
-
-
-int32_t icu4x_LineBreakIteratorLatin1_next_mv1(LineBreakIteratorLatin1* self);
-
-
-void icu4x_LineBreakIteratorLatin1_destroy_mv1(LineBreakIteratorLatin1* self);
-
-
-
-
-
-#endif // LineBreakIteratorLatin1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.d.h
deleted file mode 100644
index f4b13cf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LineBreakIteratorUtf16_D_H
-#define LineBreakIteratorUtf16_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LineBreakIteratorUtf16 LineBreakIteratorUtf16;
-
-
-
-
-#endif // LineBreakIteratorUtf16_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.h
deleted file mode 100644
index 3d59b99..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf16.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef LineBreakIteratorUtf16_H
-#define LineBreakIteratorUtf16_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakIteratorUtf16.d.h"
-
-
-
-
-
-
-int32_t icu4x_LineBreakIteratorUtf16_next_mv1(LineBreakIteratorUtf16* self);
-
-
-void icu4x_LineBreakIteratorUtf16_destroy_mv1(LineBreakIteratorUtf16* self);
-
-
-
-
-
-#endif // LineBreakIteratorUtf16_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.d.h
deleted file mode 100644
index be9a7cd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LineBreakIteratorUtf8_D_H
-#define LineBreakIteratorUtf8_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LineBreakIteratorUtf8 LineBreakIteratorUtf8;
-
-
-
-
-#endif // LineBreakIteratorUtf8_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.h
deleted file mode 100644
index 8af885b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakIteratorUtf8.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef LineBreakIteratorUtf8_H
-#define LineBreakIteratorUtf8_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakIteratorUtf8.d.h"
-
-
-
-
-
-
-int32_t icu4x_LineBreakIteratorUtf8_next_mv1(LineBreakIteratorUtf8* self);
-
-
-void icu4x_LineBreakIteratorUtf8_destroy_mv1(LineBreakIteratorUtf8* self);
-
-
-
-
-
-#endif // LineBreakIteratorUtf8_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.d.h
deleted file mode 100644
index 2523e6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef LineBreakOptionsV2_D_H
-#define LineBreakOptionsV2_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "LineBreakStrictness.d.h"
-#include "LineBreakWordOption.d.h"
-
-
-
-
-typedef struct LineBreakOptionsV2 {
-  LineBreakStrictness_option strictness;
-  LineBreakWordOption_option word_option;
-} LineBreakOptionsV2;
-
-typedef struct LineBreakOptionsV2_option {union { LineBreakOptionsV2 ok; }; bool is_ok; } LineBreakOptionsV2_option;
-
-
-
-#endif // LineBreakOptionsV2_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.h
deleted file mode 100644
index 91904c8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakOptionsV2.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LineBreakOptionsV2_H
-#define LineBreakOptionsV2_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakOptionsV2.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LineBreakOptionsV2_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.d.h
deleted file mode 100644
index 372ed49..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef LineBreakStrictness_D_H
-#define LineBreakStrictness_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LineBreakStrictness {
-  LineBreakStrictness_Loose = 0,
-  LineBreakStrictness_Normal = 1,
-  LineBreakStrictness_Strict = 2,
-  LineBreakStrictness_Anywhere = 3,
-} LineBreakStrictness;
-
-typedef struct LineBreakStrictness_option {union { LineBreakStrictness ok; }; bool is_ok; } LineBreakStrictness_option;
-
-
-
-#endif // LineBreakStrictness_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.h
deleted file mode 100644
index 5022e0fa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakStrictness.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LineBreakStrictness_H
-#define LineBreakStrictness_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakStrictness.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LineBreakStrictness_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.d.h
deleted file mode 100644
index d1ce11d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef LineBreakWordOption_D_H
-#define LineBreakWordOption_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LineBreakWordOption {
-  LineBreakWordOption_Normal = 0,
-  LineBreakWordOption_BreakAll = 1,
-  LineBreakWordOption_KeepAll = 2,
-} LineBreakWordOption;
-
-typedef struct LineBreakWordOption_option {union { LineBreakWordOption ok; }; bool is_ok; } LineBreakWordOption_option;
-
-
-
-#endif // LineBreakWordOption_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.h
deleted file mode 100644
index 8bd8d93..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineBreakWordOption.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LineBreakWordOption_H
-#define LineBreakWordOption_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LineBreakWordOption.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LineBreakWordOption_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.d.h
deleted file mode 100644
index 8479171..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LineSegmenter_D_H
-#define LineSegmenter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LineSegmenter LineSegmenter;
-
-
-
-
-#endif // LineSegmenter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.h
deleted file mode 100644
index 7249642..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LineSegmenter.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef LineSegmenter_H
-#define LineSegmenter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "LineBreakIteratorLatin1.d.h"
-#include "LineBreakIteratorUtf16.d.h"
-#include "LineBreakIteratorUtf8.d.h"
-#include "LineBreakOptionsV2.d.h"
-#include "Locale.d.h"
-
-#include "LineSegmenter.d.h"
-
-
-
-
-
-
-LineSegmenter* icu4x_LineSegmenter_create_auto_mv1(void);
-
-LineSegmenter* icu4x_LineSegmenter_create_lstm_mv1(void);
-
-LineSegmenter* icu4x_LineSegmenter_create_dictionary_mv1(void);
-
-LineSegmenter* icu4x_LineSegmenter_create_auto_with_options_v2_mv1(const Locale* content_locale, LineBreakOptionsV2 options);
-
-typedef struct icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result {union {LineSegmenter* ok; DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result;
-icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1(const DataProvider* provider, const Locale* content_locale, LineBreakOptionsV2 options);
-
-LineSegmenter* icu4x_LineSegmenter_create_lstm_with_options_v2_mv1(const Locale* content_locale, LineBreakOptionsV2 options);
-
-typedef struct icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result {union {LineSegmenter* ok; DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result;
-icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1(const DataProvider* provider, const Locale* content_locale, LineBreakOptionsV2 options);
-
-LineSegmenter* icu4x_LineSegmenter_create_dictionary_with_options_v2_mv1(const Locale* content_locale, LineBreakOptionsV2 options);
-
-typedef struct icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result {union {LineSegmenter* ok; DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result;
-icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1(const DataProvider* provider, const Locale* content_locale, LineBreakOptionsV2 options);
-
-LineBreakIteratorUtf8* icu4x_LineSegmenter_segment_utf8_mv1(const LineSegmenter* self, DiplomatStringView input);
-
-LineBreakIteratorUtf16* icu4x_LineSegmenter_segment_utf16_mv1(const LineSegmenter* self, DiplomatString16View input);
-
-LineBreakIteratorLatin1* icu4x_LineSegmenter_segment_latin1_mv1(const LineSegmenter* self, DiplomatU8View input);
-
-
-void icu4x_LineSegmenter_destroy_mv1(LineSegmenter* self);
-
-
-
-
-
-#endif // LineSegmenter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.d.h
deleted file mode 100644
index 58ad75c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ListFormatter_D_H
-#define ListFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ListFormatter ListFormatter;
-
-
-
-
-#endif // ListFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.h
deleted file mode 100644
index 101439a6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListFormatter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef ListFormatter_H
-#define ListFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "ListLength.d.h"
-#include "Locale.d.h"
-
-#include "ListFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_ListFormatter_create_and_with_length_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_mv1_result;
-icu4x_ListFormatter_create_and_with_length_mv1_result icu4x_ListFormatter_create_and_with_length_mv1(const Locale* locale, ListLength length);
-
-typedef struct icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result;
-icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result icu4x_ListFormatter_create_and_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, ListLength length);
-
-typedef struct icu4x_ListFormatter_create_or_with_length_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_mv1_result;
-icu4x_ListFormatter_create_or_with_length_mv1_result icu4x_ListFormatter_create_or_with_length_mv1(const Locale* locale, ListLength length);
-
-typedef struct icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result;
-icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result icu4x_ListFormatter_create_or_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, ListLength length);
-
-typedef struct icu4x_ListFormatter_create_unit_with_length_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_mv1_result;
-icu4x_ListFormatter_create_unit_with_length_mv1_result icu4x_ListFormatter_create_unit_with_length_mv1(const Locale* locale, ListLength length);
-
-typedef struct icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result {union {ListFormatter* ok; DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result;
-icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, ListLength length);
-
-void icu4x_ListFormatter_format_utf8_mv1(const ListFormatter* self, DiplomatStringsView list, DiplomatWrite* write);
-
-void icu4x_ListFormatter_format_utf16_mv1(const ListFormatter* self, DiplomatStrings16View list, DiplomatWrite* write);
-
-
-void icu4x_ListFormatter_destroy_mv1(ListFormatter* self);
-
-
-
-
-
-#endif // ListFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.d.h
deleted file mode 100644
index a3c7a09..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef ListLength_D_H
-#define ListLength_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum ListLength {
-  ListLength_Wide = 0,
-  ListLength_Short = 1,
-  ListLength_Narrow = 2,
-} ListLength;
-
-typedef struct ListLength_option {union { ListLength ok; }; bool is_ok; } ListLength_option;
-
-
-
-#endif // ListLength_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.h
deleted file mode 100644
index b47420ee..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ListLength.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef ListLength_H
-#define ListLength_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "ListLength.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // ListLength_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.d.h
deleted file mode 100644
index df01ae7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Locale_D_H
-#define Locale_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Locale Locale;
-
-
-
-
-#endif // Locale_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.h
deleted file mode 100644
index 198760a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Locale.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef Locale_H
-#define Locale_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "LocaleParseError.d.h"
-
-#include "Locale.d.h"
-
-
-
-
-
-
-typedef struct icu4x_Locale_from_string_mv1_result {union {Locale* ok; LocaleParseError err;}; bool is_ok;} icu4x_Locale_from_string_mv1_result;
-icu4x_Locale_from_string_mv1_result icu4x_Locale_from_string_mv1(DiplomatStringView name);
-
-Locale* icu4x_Locale_und_mv1(void);
-
-Locale* icu4x_Locale_clone_mv1(const Locale* self);
-
-void icu4x_Locale_basename_mv1(const Locale* self, DiplomatWrite* write);
-
-typedef struct icu4x_Locale_get_unicode_extension_mv1_result { bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result;
-icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(const Locale* self, DiplomatStringView s, DiplomatWrite* write);
-
-void icu4x_Locale_language_mv1(const Locale* self, DiplomatWrite* write);
-
-typedef struct icu4x_Locale_set_language_mv1_result {union { LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_language_mv1_result;
-icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(Locale* self, DiplomatStringView s);
-
-typedef struct icu4x_Locale_region_mv1_result { bool is_ok;} icu4x_Locale_region_mv1_result;
-icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(const Locale* self, DiplomatWrite* write);
-
-typedef struct icu4x_Locale_set_region_mv1_result {union { LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_region_mv1_result;
-icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(Locale* self, DiplomatStringView s);
-
-typedef struct icu4x_Locale_script_mv1_result { bool is_ok;} icu4x_Locale_script_mv1_result;
-icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(const Locale* self, DiplomatWrite* write);
-
-typedef struct icu4x_Locale_set_script_mv1_result {union { LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_script_mv1_result;
-icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(Locale* self, DiplomatStringView s);
-
-typedef struct icu4x_Locale_normalize_mv1_result {union { LocaleParseError err;}; bool is_ok;} icu4x_Locale_normalize_mv1_result;
-icu4x_Locale_normalize_mv1_result icu4x_Locale_normalize_mv1(DiplomatStringView s, DiplomatWrite* write);
-
-void icu4x_Locale_to_string_mv1(const Locale* self, DiplomatWrite* write);
-
-bool icu4x_Locale_normalizing_eq_mv1(const Locale* self, DiplomatStringView other);
-
-int8_t icu4x_Locale_compare_to_string_mv1(const Locale* self, DiplomatStringView other);
-
-int8_t icu4x_Locale_compare_to_mv1(const Locale* self, const Locale* other);
-
-
-void icu4x_Locale_destroy_mv1(Locale* self);
-
-
-
-
-
-#endif // Locale_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.d.h
deleted file mode 100644
index f890abf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleCanonicalizer_D_H
-#define LocaleCanonicalizer_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleCanonicalizer LocaleCanonicalizer;
-
-
-
-
-#endif // LocaleCanonicalizer_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.h
deleted file mode 100644
index 215bd81..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleCanonicalizer.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef LocaleCanonicalizer_H
-#define LocaleCanonicalizer_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "TransformResult.d.h"
-
-#include "LocaleCanonicalizer.d.h"
-
-
-
-
-
-
-LocaleCanonicalizer* icu4x_LocaleCanonicalizer_create_common_mv1(void);
-
-typedef struct icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result {union {LocaleCanonicalizer* ok; DataError err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result;
-icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result icu4x_LocaleCanonicalizer_create_common_with_provider_mv1(const DataProvider* provider);
-
-LocaleCanonicalizer* icu4x_LocaleCanonicalizer_create_extended_mv1(void);
-
-typedef struct icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result {union {LocaleCanonicalizer* ok; DataError err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result;
-icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1(const DataProvider* provider);
-
-TransformResult icu4x_LocaleCanonicalizer_canonicalize_mv1(const LocaleCanonicalizer* self, Locale* locale);
-
-
-void icu4x_LocaleCanonicalizer_destroy_mv1(LocaleCanonicalizer* self);
-
-
-
-
-
-#endif // LocaleCanonicalizer_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.d.h
deleted file mode 100644
index a0d2867..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef LocaleDirection_D_H
-#define LocaleDirection_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LocaleDirection {
-  LocaleDirection_LeftToRight = 0,
-  LocaleDirection_RightToLeft = 1,
-  LocaleDirection_Unknown = 2,
-} LocaleDirection;
-
-typedef struct LocaleDirection_option {union { LocaleDirection ok; }; bool is_ok; } LocaleDirection_option;
-
-
-
-#endif // LocaleDirection_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.h
deleted file mode 100644
index 3d081b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirection.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleDirection_H
-#define LocaleDirection_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LocaleDirection.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LocaleDirection_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.d.h
deleted file mode 100644
index 5c8145c79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleDirectionality_D_H
-#define LocaleDirectionality_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleDirectionality LocaleDirectionality;
-
-
-
-
-#endif // LocaleDirectionality_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.h
deleted file mode 100644
index 134a4f0a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDirectionality.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef LocaleDirectionality_H
-#define LocaleDirectionality_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "LocaleDirection.d.h"
-
-#include "LocaleDirectionality.d.h"
-
-
-
-
-
-
-LocaleDirectionality* icu4x_LocaleDirectionality_create_common_mv1(void);
-
-typedef struct icu4x_LocaleDirectionality_create_common_with_provider_mv1_result {union {LocaleDirectionality* ok; DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_common_with_provider_mv1_result;
-icu4x_LocaleDirectionality_create_common_with_provider_mv1_result icu4x_LocaleDirectionality_create_common_with_provider_mv1(const DataProvider* provider);
-
-LocaleDirectionality* icu4x_LocaleDirectionality_create_extended_mv1(void);
-
-typedef struct icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result {union {LocaleDirectionality* ok; DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result;
-icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result icu4x_LocaleDirectionality_create_extended_with_provider_mv1(const DataProvider* provider);
-
-LocaleDirection icu4x_LocaleDirectionality_get_mv1(const LocaleDirectionality* self, const Locale* locale);
-
-bool icu4x_LocaleDirectionality_is_left_to_right_mv1(const LocaleDirectionality* self, const Locale* locale);
-
-bool icu4x_LocaleDirectionality_is_right_to_left_mv1(const LocaleDirectionality* self, const Locale* locale);
-
-
-void icu4x_LocaleDirectionality_destroy_mv1(LocaleDirectionality* self);
-
-
-
-
-
-#endif // LocaleDirectionality_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.d.h
deleted file mode 100644
index 892c03d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleDisplayNamesFormatter_D_H
-#define LocaleDisplayNamesFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleDisplayNamesFormatter LocaleDisplayNamesFormatter;
-
-
-
-
-#endif // LocaleDisplayNamesFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.h
deleted file mode 100644
index 888309d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleDisplayNamesFormatter.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef LocaleDisplayNamesFormatter_H
-#define LocaleDisplayNamesFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "DisplayNamesOptionsV1.d.h"
-#include "Locale.d.h"
-
-#include "LocaleDisplayNamesFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result {union {LocaleDisplayNamesFormatter* ok; DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result;
-icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(const Locale* locale, DisplayNamesOptionsV1 options);
-
-typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result {union {LocaleDisplayNamesFormatter* ok; DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result;
-icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1(const DataProvider* provider, const Locale* locale, DisplayNamesOptionsV1 options);
-
-void icu4x_LocaleDisplayNamesFormatter_of_mv1(const LocaleDisplayNamesFormatter* self, const Locale* locale, DiplomatWrite* write);
-
-
-void icu4x_LocaleDisplayNamesFormatter_destroy_mv1(LocaleDisplayNamesFormatter* self);
-
-
-
-
-
-#endif // LocaleDisplayNamesFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.d.h
deleted file mode 100644
index e5ebf0f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleExpander_D_H
-#define LocaleExpander_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleExpander LocaleExpander;
-
-
-
-
-#endif // LocaleExpander_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.h
deleted file mode 100644
index b8f7c7b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleExpander.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef LocaleExpander_H
-#define LocaleExpander_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "TransformResult.d.h"
-
-#include "LocaleExpander.d.h"
-
-
-
-
-
-
-LocaleExpander* icu4x_LocaleExpander_create_common_mv1(void);
-
-typedef struct icu4x_LocaleExpander_create_common_with_provider_mv1_result {union {LocaleExpander* ok; DataError err;}; bool is_ok;} icu4x_LocaleExpander_create_common_with_provider_mv1_result;
-icu4x_LocaleExpander_create_common_with_provider_mv1_result icu4x_LocaleExpander_create_common_with_provider_mv1(const DataProvider* provider);
-
-LocaleExpander* icu4x_LocaleExpander_create_extended_mv1(void);
-
-typedef struct icu4x_LocaleExpander_create_extended_with_provider_mv1_result {union {LocaleExpander* ok; DataError err;}; bool is_ok;} icu4x_LocaleExpander_create_extended_with_provider_mv1_result;
-icu4x_LocaleExpander_create_extended_with_provider_mv1_result icu4x_LocaleExpander_create_extended_with_provider_mv1(const DataProvider* provider);
-
-TransformResult icu4x_LocaleExpander_maximize_mv1(const LocaleExpander* self, Locale* locale);
-
-TransformResult icu4x_LocaleExpander_minimize_mv1(const LocaleExpander* self, Locale* locale);
-
-TransformResult icu4x_LocaleExpander_minimize_favor_script_mv1(const LocaleExpander* self, Locale* locale);
-
-
-void icu4x_LocaleExpander_destroy_mv1(LocaleExpander* self);
-
-
-
-
-
-#endif // LocaleExpander_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.d.h
deleted file mode 100644
index 167ffb51..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleFallbackConfig_D_H
-#define LocaleFallbackConfig_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "LocaleFallbackPriority.d.h"
-
-
-
-
-typedef struct LocaleFallbackConfig {
-  LocaleFallbackPriority priority;
-} LocaleFallbackConfig;
-
-typedef struct LocaleFallbackConfig_option {union { LocaleFallbackConfig ok; }; bool is_ok; } LocaleFallbackConfig_option;
-
-
-
-#endif // LocaleFallbackConfig_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.h
deleted file mode 100644
index 50c3791..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackConfig.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleFallbackConfig_H
-#define LocaleFallbackConfig_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LocaleFallbackConfig.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LocaleFallbackConfig_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.d.h
deleted file mode 100644
index 6176949b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleFallbackIterator_D_H
-#define LocaleFallbackIterator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleFallbackIterator LocaleFallbackIterator;
-
-
-
-
-#endif // LocaleFallbackIterator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.h
deleted file mode 100644
index b41abb0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackIterator.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef LocaleFallbackIterator_H
-#define LocaleFallbackIterator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Locale.d.h"
-
-#include "LocaleFallbackIterator.d.h"
-
-
-
-
-
-
-Locale* icu4x_LocaleFallbackIterator_next_mv1(LocaleFallbackIterator* self);
-
-
-void icu4x_LocaleFallbackIterator_destroy_mv1(LocaleFallbackIterator* self);
-
-
-
-
-
-#endif // LocaleFallbackIterator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.d.h
deleted file mode 100644
index 505cc56b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleFallbackPriority_D_H
-#define LocaleFallbackPriority_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LocaleFallbackPriority {
-  LocaleFallbackPriority_Language = 0,
-  LocaleFallbackPriority_Region = 1,
-} LocaleFallbackPriority;
-
-typedef struct LocaleFallbackPriority_option {union { LocaleFallbackPriority ok; }; bool is_ok; } LocaleFallbackPriority_option;
-
-
-
-#endif // LocaleFallbackPriority_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.h
deleted file mode 100644
index 6f4c74d4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackPriority.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleFallbackPriority_H
-#define LocaleFallbackPriority_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LocaleFallbackPriority.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LocaleFallbackPriority_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.d.h
deleted file mode 100644
index 9ccf1521..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleFallbacker_D_H
-#define LocaleFallbacker_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleFallbacker LocaleFallbacker;
-
-
-
-
-#endif // LocaleFallbacker_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.h
deleted file mode 100644
index 6ebca22..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbacker.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef LocaleFallbacker_H
-#define LocaleFallbacker_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "LocaleFallbackConfig.d.h"
-#include "LocaleFallbackerWithConfig.d.h"
-
-#include "LocaleFallbacker.d.h"
-
-
-
-
-
-
-LocaleFallbacker* icu4x_LocaleFallbacker_create_mv1(void);
-
-typedef struct icu4x_LocaleFallbacker_create_with_provider_mv1_result {union {LocaleFallbacker* ok; DataError err;}; bool is_ok;} icu4x_LocaleFallbacker_create_with_provider_mv1_result;
-icu4x_LocaleFallbacker_create_with_provider_mv1_result icu4x_LocaleFallbacker_create_with_provider_mv1(const DataProvider* provider);
-
-LocaleFallbacker* icu4x_LocaleFallbacker_without_data_mv1(void);
-
-LocaleFallbackerWithConfig* icu4x_LocaleFallbacker_for_config_mv1(const LocaleFallbacker* self, LocaleFallbackConfig config);
-
-
-void icu4x_LocaleFallbacker_destroy_mv1(LocaleFallbacker* self);
-
-
-
-
-
-#endif // LocaleFallbacker_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.d.h
deleted file mode 100644
index b3ce302..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LocaleFallbackerWithConfig_D_H
-#define LocaleFallbackerWithConfig_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct LocaleFallbackerWithConfig LocaleFallbackerWithConfig;
-
-
-
-
-#endif // LocaleFallbackerWithConfig_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.h
deleted file mode 100644
index 38e5b27f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleFallbackerWithConfig.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef LocaleFallbackerWithConfig_H
-#define LocaleFallbackerWithConfig_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Locale.d.h"
-#include "LocaleFallbackIterator.d.h"
-
-#include "LocaleFallbackerWithConfig.d.h"
-
-
-
-
-
-
-LocaleFallbackIterator* icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(const LocaleFallbackerWithConfig* self, const Locale* locale);
-
-
-void icu4x_LocaleFallbackerWithConfig_destroy_mv1(LocaleFallbackerWithConfig* self);
-
-
-
-
-
-#endif // LocaleFallbackerWithConfig_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.d.h
deleted file mode 100644
index 0fdeccf2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef LocaleParseError_D_H
-#define LocaleParseError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum LocaleParseError {
-  LocaleParseError_Unknown = 0,
-  LocaleParseError_Language = 1,
-  LocaleParseError_Subtag = 2,
-  LocaleParseError_Extension = 3,
-} LocaleParseError;
-
-typedef struct LocaleParseError_option {union { LocaleParseError ok; }; bool is_ok; } LocaleParseError_option;
-
-
-
-#endif // LocaleParseError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.h
deleted file mode 100644
index fececc3b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/LocaleParseError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LocaleParseError_H
-#define LocaleParseError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "LocaleParseError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // LocaleParseError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.d.h
deleted file mode 100644
index 2d217e1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Logger_D_H
-#define Logger_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Logger Logger;
-
-
-
-
-#endif // Logger_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.h
deleted file mode 100644
index c17ae55b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Logger.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef Logger_H
-#define Logger_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "Logger.d.h"
-
-
-
-
-
-
-bool icu4x_Logger_init_simple_logger_mv1(void);
-
-
-void icu4x_Logger_destroy_mv1(Logger* self);
-
-
-
-
-
-#endif // Logger_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.d.h
deleted file mode 100644
index 8c47e3e4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef MeasureUnit_D_H
-#define MeasureUnit_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct MeasureUnit MeasureUnit;
-
-
-
-
-#endif // MeasureUnit_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.h
deleted file mode 100644
index cbd9e8e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnit.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef MeasureUnit_H
-#define MeasureUnit_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "MeasureUnit.d.h"
-
-
-
-
-
-
-
-void icu4x_MeasureUnit_destroy_mv1(MeasureUnit* self);
-
-
-
-
-
-#endif // MeasureUnit_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.d.h
deleted file mode 100644
index 588d8d6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef MeasureUnitParser_D_H
-#define MeasureUnitParser_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct MeasureUnitParser MeasureUnitParser;
-
-
-
-
-#endif // MeasureUnitParser_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.h
deleted file mode 100644
index 29e0d5d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/MeasureUnitParser.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef MeasureUnitParser_H
-#define MeasureUnitParser_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "MeasureUnit.d.h"
-
-#include "MeasureUnitParser.d.h"
-
-
-
-
-
-
-MeasureUnit* icu4x_MeasureUnitParser_parse_mv1(const MeasureUnitParser* self, DiplomatStringView unit_id);
-
-
-void icu4x_MeasureUnitParser_destroy_mv1(MeasureUnitParser* self);
-
-
-
-
-
-#endif // MeasureUnitParser_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.d.h
deleted file mode 100644
index 22a1085..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef NoCalendarFormatter_D_H
-#define NoCalendarFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct NoCalendarFormatter NoCalendarFormatter;
-
-
-
-
-#endif // NoCalendarFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.h
deleted file mode 100644
index 966c6e5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/NoCalendarFormatter.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef NoCalendarFormatter_H
-#define NoCalendarFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "Locale.d.h"
-#include "Time.d.h"
-
-#include "NoCalendarFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_NoCalendarFormatter_create_with_length_mv1_result {union {NoCalendarFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_NoCalendarFormatter_create_with_length_mv1_result;
-icu4x_NoCalendarFormatter_create_with_length_mv1_result icu4x_NoCalendarFormatter_create_with_length_mv1(const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result {union {NoCalendarFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result;
-icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength length);
-
-void icu4x_NoCalendarFormatter_format_mv1(const NoCalendarFormatter* self, const Time* value, DiplomatWrite* write);
-
-
-void icu4x_NoCalendarFormatter_destroy_mv1(NoCalendarFormatter* self);
-
-
-
-
-
-#endif // NoCalendarFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.d.h
deleted file mode 100644
index 58e74d83..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef PluralCategories_D_H
-#define PluralCategories_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct PluralCategories {
-  bool zero;
-  bool one;
-  bool two;
-  bool few;
-  bool many;
-  bool other;
-} PluralCategories;
-
-typedef struct PluralCategories_option {union { PluralCategories ok; }; bool is_ok; } PluralCategories_option;
-
-
-
-#endif // PluralCategories_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.h
deleted file mode 100644
index 93d43b3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategories.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef PluralCategories_H
-#define PluralCategories_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "PluralCategories.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // PluralCategories_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.d.h
deleted file mode 100644
index 4f2e777c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef PluralCategory_D_H
-#define PluralCategory_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum PluralCategory {
-  PluralCategory_Zero = 0,
-  PluralCategory_One = 1,
-  PluralCategory_Two = 2,
-  PluralCategory_Few = 3,
-  PluralCategory_Many = 4,
-  PluralCategory_Other = 5,
-} PluralCategory;
-
-typedef struct PluralCategory_option {union { PluralCategory ok; }; bool is_ok; } PluralCategory_option;
-
-
-
-#endif // PluralCategory_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.h
deleted file mode 100644
index d782ea67..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralCategory.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef PluralCategory_H
-#define PluralCategory_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "PluralCategory.d.h"
-
-
-
-
-
-
-typedef struct icu4x_PluralCategory_get_for_cldr_string_mv1_result {union {PluralCategory ok; }; bool is_ok;} icu4x_PluralCategory_get_for_cldr_string_mv1_result;
-icu4x_PluralCategory_get_for_cldr_string_mv1_result icu4x_PluralCategory_get_for_cldr_string_mv1(DiplomatStringView s);
-
-
-
-
-
-
-#endif // PluralCategory_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.d.h
deleted file mode 100644
index 2a059e8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef PluralOperands_D_H
-#define PluralOperands_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct PluralOperands PluralOperands;
-
-
-
-
-#endif // PluralOperands_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.h
deleted file mode 100644
index a15995b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralOperands.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef PluralOperands_H
-#define PluralOperands_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Decimal.d.h"
-#include "FixedDecimalParseError.d.h"
-
-#include "PluralOperands.d.h"
-
-
-
-
-
-
-typedef struct icu4x_PluralOperands_from_string_mv1_result {union {PluralOperands* ok; FixedDecimalParseError err;}; bool is_ok;} icu4x_PluralOperands_from_string_mv1_result;
-icu4x_PluralOperands_from_string_mv1_result icu4x_PluralOperands_from_string_mv1(DiplomatStringView s);
-
-PluralOperands* icu4x_PluralOperands_from_int64_mv1(int64_t i);
-
-PluralOperands* icu4x_PluralOperands_from_fixed_decimal_mv1(const Decimal* x);
-
-
-void icu4x_PluralOperands_destroy_mv1(PluralOperands* self);
-
-
-
-
-
-#endif // PluralOperands_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.d.h
deleted file mode 100644
index be35d773..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef PluralRules_D_H
-#define PluralRules_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct PluralRules PluralRules;
-
-
-
-
-#endif // PluralRules_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.h
deleted file mode 100644
index f0ac027..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PluralRules.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef PluralRules_H
-#define PluralRules_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "PluralCategories.d.h"
-#include "PluralCategory.d.h"
-#include "PluralOperands.d.h"
-
-#include "PluralRules.d.h"
-
-
-
-
-
-
-typedef struct icu4x_PluralRules_create_cardinal_mv1_result {union {PluralRules* ok; DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_mv1_result;
-icu4x_PluralRules_create_cardinal_mv1_result icu4x_PluralRules_create_cardinal_mv1(const Locale* locale);
-
-typedef struct icu4x_PluralRules_create_cardinal_with_provider_mv1_result {union {PluralRules* ok; DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_with_provider_mv1_result;
-icu4x_PluralRules_create_cardinal_with_provider_mv1_result icu4x_PluralRules_create_cardinal_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-typedef struct icu4x_PluralRules_create_ordinal_mv1_result {union {PluralRules* ok; DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_mv1_result;
-icu4x_PluralRules_create_ordinal_mv1_result icu4x_PluralRules_create_ordinal_mv1(const Locale* locale);
-
-typedef struct icu4x_PluralRules_create_ordinal_with_provider_mv1_result {union {PluralRules* ok; DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_with_provider_mv1_result;
-icu4x_PluralRules_create_ordinal_with_provider_mv1_result icu4x_PluralRules_create_ordinal_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-PluralCategory icu4x_PluralRules_category_for_mv1(const PluralRules* self, const PluralOperands* op);
-
-PluralCategories icu4x_PluralRules_categories_mv1(const PluralRules* self);
-
-
-void icu4x_PluralRules_destroy_mv1(PluralRules* self);
-
-
-
-
-
-#endif // PluralRules_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.d.h
deleted file mode 100644
index 8800307..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef PropertyValueNameToEnumMapper_D_H
-#define PropertyValueNameToEnumMapper_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct PropertyValueNameToEnumMapper PropertyValueNameToEnumMapper;
-
-
-
-
-#endif // PropertyValueNameToEnumMapper_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.h
deleted file mode 100644
index 43a1c3e7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/PropertyValueNameToEnumMapper.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef PropertyValueNameToEnumMapper_H
-#define PropertyValueNameToEnumMapper_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-
-#include "PropertyValueNameToEnumMapper.d.h"
-
-
-
-
-
-
-int16_t icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(const PropertyValueNameToEnumMapper* self, DiplomatStringView name);
-
-int16_t icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(const PropertyValueNameToEnumMapper* self, DiplomatStringView name);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_general_category_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_bidi_class_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_line_break_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_word_break_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_sentence_break_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1(const DataProvider* provider);
-
-PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_script_mv1(void);
-
-typedef struct icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result {union {PropertyValueNameToEnumMapper* ok; DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result;
-icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1(const DataProvider* provider);
-
-
-void icu4x_PropertyValueNameToEnumMapper_destroy_mv1(PropertyValueNameToEnumMapper* self);
-
-
-
-
-
-#endif // PropertyValueNameToEnumMapper_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.d.h
deleted file mode 100644
index 1f08a21..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef RegionDisplayNames_D_H
-#define RegionDisplayNames_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct RegionDisplayNames RegionDisplayNames;
-
-
-
-
-#endif // RegionDisplayNames_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.h
deleted file mode 100644
index 4738930..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/RegionDisplayNames.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef RegionDisplayNames_H
-#define RegionDisplayNames_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "DisplayNamesOptionsV1.d.h"
-#include "Locale.d.h"
-#include "LocaleParseError.d.h"
-
-#include "RegionDisplayNames.d.h"
-
-
-
-
-
-
-typedef struct icu4x_RegionDisplayNames_create_v1_mv1_result {union {RegionDisplayNames* ok; DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_v1_mv1_result;
-icu4x_RegionDisplayNames_create_v1_mv1_result icu4x_RegionDisplayNames_create_v1_mv1(const Locale* locale, DisplayNamesOptionsV1 options);
-
-typedef struct icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result {union {RegionDisplayNames* ok; DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result;
-icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result icu4x_RegionDisplayNames_create_v1_with_provider_mv1(const DataProvider* provider, const Locale* locale, DisplayNamesOptionsV1 options);
-
-typedef struct icu4x_RegionDisplayNames_of_mv1_result {union { LocaleParseError err;}; bool is_ok;} icu4x_RegionDisplayNames_of_mv1_result;
-icu4x_RegionDisplayNames_of_mv1_result icu4x_RegionDisplayNames_of_mv1(const RegionDisplayNames* self, DiplomatStringView region, DiplomatWrite* write);
-
-
-void icu4x_RegionDisplayNames_destroy_mv1(RegionDisplayNames* self);
-
-
-
-
-
-#endif // RegionDisplayNames_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.d.h
deleted file mode 100644
index b938f33..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ReorderedIndexMap_D_H
-#define ReorderedIndexMap_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ReorderedIndexMap ReorderedIndexMap;
-
-
-
-
-#endif // ReorderedIndexMap_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.h
deleted file mode 100644
index a3402947..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ReorderedIndexMap.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ReorderedIndexMap_H
-#define ReorderedIndexMap_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "ReorderedIndexMap.d.h"
-
-
-
-
-
-
-DiplomatUsizeView icu4x_ReorderedIndexMap_as_slice_mv1(const ReorderedIndexMap* self);
-
-size_t icu4x_ReorderedIndexMap_len_mv1(const ReorderedIndexMap* self);
-
-bool icu4x_ReorderedIndexMap_is_empty_mv1(const ReorderedIndexMap* self);
-
-size_t icu4x_ReorderedIndexMap_get_mv1(const ReorderedIndexMap* self, size_t index);
-
-
-void icu4x_ReorderedIndexMap_destroy_mv1(ReorderedIndexMap* self);
-
-
-
-
-
-#endif // ReorderedIndexMap_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.d.h
deleted file mode 100644
index 23f6564..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.d.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef Script_D_H
-#define Script_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum Script {
-  Script_Adlam = 167,
-  Script_Ahom = 161,
-  Script_AnatolianHieroglyphs = 156,
-  Script_Arabic = 2,
-  Script_Armenian = 3,
-  Script_Avestan = 117,
-  Script_Balinese = 62,
-  Script_Bamum = 130,
-  Script_BassaVah = 134,
-  Script_Batak = 63,
-  Script_Bengali = 4,
-  Script_Bhaiksuki = 168,
-  Script_Bopomofo = 5,
-  Script_Brahmi = 65,
-  Script_Braille = 46,
-  Script_Buginese = 55,
-  Script_Buhid = 44,
-  Script_CanadianAboriginal = 40,
-  Script_Carian = 104,
-  Script_CaucasianAlbanian = 159,
-  Script_Chakma = 118,
-  Script_Cham = 66,
-  Script_Cherokee = 6,
-  Script_Chorasmian = 189,
-  Script_Common = 0,
-  Script_Coptic = 7,
-  Script_Cuneiform = 101,
-  Script_Cypriot = 47,
-  Script_CyproMinoan = 193,
-  Script_Cyrillic = 8,
-  Script_Deseret = 9,
-  Script_Devanagari = 10,
-  Script_DivesAkuru = 190,
-  Script_Dogra = 178,
-  Script_Duployan = 135,
-  Script_EgyptianHieroglyphs = 71,
-  Script_Elbasan = 136,
-  Script_Elymaic = 185,
-  Script_Ethiopian = 11,
-  Script_Georgian = 12,
-  Script_Glagolitic = 56,
-  Script_Gothic = 13,
-  Script_Grantha = 137,
-  Script_Greek = 14,
-  Script_Gujarati = 15,
-  Script_GunjalaGondi = 179,
-  Script_Gurmukhi = 16,
-  Script_Han = 17,
-  Script_Hangul = 18,
-  Script_HanifiRohingya = 182,
-  Script_Hanunoo = 43,
-  Script_Hatran = 162,
-  Script_Hebrew = 19,
-  Script_Hiragana = 20,
-  Script_ImperialAramaic = 116,
-  Script_Inherited = 1,
-  Script_InscriptionalPahlavi = 122,
-  Script_InscriptionalParthian = 125,
-  Script_Javanese = 78,
-  Script_Kaithi = 120,
-  Script_Kannada = 21,
-  Script_Katakana = 22,
-  Script_Kawi = 198,
-  Script_KayahLi = 79,
-  Script_Kharoshthi = 57,
-  Script_KhitanSmallScript = 191,
-  Script_Khmer = 23,
-  Script_Khojki = 157,
-  Script_Khudawadi = 145,
-  Script_Lao = 24,
-  Script_Latin = 25,
-  Script_Lepcha = 82,
-  Script_Limbu = 48,
-  Script_LinearA = 83,
-  Script_LinearB = 49,
-  Script_Lisu = 131,
-  Script_Lycian = 107,
-  Script_Lydian = 108,
-  Script_Mahajani = 160,
-  Script_Makasar = 180,
-  Script_Malayalam = 26,
-  Script_Mandaic = 84,
-  Script_Manichaean = 121,
-  Script_Marchen = 169,
-  Script_MasaramGondi = 175,
-  Script_Medefaidrin = 181,
-  Script_MeeteiMayek = 115,
-  Script_MendeKikakui = 140,
-  Script_MeroiticCursive = 141,
-  Script_MeroiticHieroglyphs = 86,
-  Script_Miao = 92,
-  Script_Modi = 163,
-  Script_Mongolian = 27,
-  Script_Mro = 149,
-  Script_Multani = 164,
-  Script_Myanmar = 28,
-  Script_Nabataean = 143,
-  Script_NagMundari = 199,
-  Script_Nandinagari = 187,
-  Script_Nastaliq = 200,
-  Script_NewTaiLue = 59,
-  Script_Newa = 170,
-  Script_Nko = 87,
-  Script_Nushu = 150,
-  Script_NyiakengPuachueHmong = 186,
-  Script_Ogham = 29,
-  Script_OlChiki = 109,
-  Script_OldHungarian = 76,
-  Script_OldItalic = 30,
-  Script_OldNorthArabian = 142,
-  Script_OldPermic = 89,
-  Script_OldPersian = 61,
-  Script_OldSogdian = 184,
-  Script_OldSouthArabian = 133,
-  Script_OldTurkic = 88,
-  Script_OldUyghur = 194,
-  Script_Oriya = 31,
-  Script_Osage = 171,
-  Script_Osmanya = 50,
-  Script_PahawhHmong = 75,
-  Script_Palmyrene = 144,
-  Script_PauCinHau = 165,
-  Script_PhagsPa = 90,
-  Script_Phoenician = 91,
-  Script_PsalterPahlavi = 123,
-  Script_Rejang = 110,
-  Script_Runic = 32,
-  Script_Samaritan = 126,
-  Script_Saurashtra = 111,
-  Script_Sharada = 151,
-  Script_Shavian = 51,
-  Script_Siddham = 166,
-  Script_SignWriting = 112,
-  Script_Sinhala = 33,
-  Script_Sogdian = 183,
-  Script_SoraSompeng = 152,
-  Script_Soyombo = 176,
-  Script_Sundanese = 113,
-  Script_SylotiNagri = 58,
-  Script_Syriac = 34,
-  Script_Tagalog = 42,
-  Script_Tagbanwa = 45,
-  Script_TaiLe = 52,
-  Script_TaiTham = 106,
-  Script_TaiViet = 127,
-  Script_Takri = 153,
-  Script_Tamil = 35,
-  Script_Tangsa = 195,
-  Script_Tangut = 154,
-  Script_Telugu = 36,
-  Script_Thaana = 37,
-  Script_Thai = 38,
-  Script_Tibetan = 39,
-  Script_Tifinagh = 60,
-  Script_Tirhuta = 158,
-  Script_Toto = 196,
-  Script_Ugaritic = 53,
-  Script_Unknown = 103,
-  Script_Vai = 99,
-  Script_Vithkuqi = 197,
-  Script_Wancho = 188,
-  Script_WarangCiti = 146,
-  Script_Yezidi = 192,
-  Script_Yi = 41,
-  Script_ZanabazarSquare = 177,
-} Script;
-
-typedef struct Script_option {union { Script ok; }; bool is_ok; } Script_option;
-
-
-
-#endif // Script_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.h
deleted file mode 100644
index 6388ba8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Script.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef Script_H
-#define Script_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "Script.d.h"
-
-
-
-
-
-
-Script icu4x_Script_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_Script_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_Script_long_name_mv1_result;
-icu4x_Script_long_name_mv1_result icu4x_Script_long_name_mv1(Script self);
-
-typedef struct icu4x_Script_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_Script_short_name_mv1_result;
-icu4x_Script_short_name_mv1_result icu4x_Script_short_name_mv1(Script self);
-
-uint16_t icu4x_Script_to_integer_value_mv1(Script self);
-
-typedef struct icu4x_Script_from_integer_value_mv1_result {union {Script ok; }; bool is_ok;} icu4x_Script_from_integer_value_mv1_result;
-icu4x_Script_from_integer_value_mv1_result icu4x_Script_from_integer_value_mv1(uint16_t other);
-
-
-
-
-
-
-#endif // Script_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.d.h
deleted file mode 100644
index 4815d1dc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ScriptExtensionsSet_D_H
-#define ScriptExtensionsSet_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ScriptExtensionsSet ScriptExtensionsSet;
-
-
-
-
-#endif // ScriptExtensionsSet_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.h
deleted file mode 100644
index 05e9f1fa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptExtensionsSet.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef ScriptExtensionsSet_H
-#define ScriptExtensionsSet_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "ScriptExtensionsSet.d.h"
-
-
-
-
-
-
-bool icu4x_ScriptExtensionsSet_contains_mv1(const ScriptExtensionsSet* self, uint16_t script);
-
-size_t icu4x_ScriptExtensionsSet_count_mv1(const ScriptExtensionsSet* self);
-
-typedef struct icu4x_ScriptExtensionsSet_script_at_mv1_result {union {uint16_t ok; }; bool is_ok;} icu4x_ScriptExtensionsSet_script_at_mv1_result;
-icu4x_ScriptExtensionsSet_script_at_mv1_result icu4x_ScriptExtensionsSet_script_at_mv1(const ScriptExtensionsSet* self, size_t index);
-
-
-void icu4x_ScriptExtensionsSet_destroy_mv1(ScriptExtensionsSet* self);
-
-
-
-
-
-#endif // ScriptExtensionsSet_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.d.h
deleted file mode 100644
index eb464fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ScriptWithExtensions_D_H
-#define ScriptWithExtensions_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ScriptWithExtensions ScriptWithExtensions;
-
-
-
-
-#endif // ScriptWithExtensions_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.h
deleted file mode 100644
index 6caf6d6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensions.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ScriptWithExtensions_H
-#define ScriptWithExtensions_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointRangeIterator.d.h"
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "ScriptWithExtensionsBorrowed.d.h"
-
-#include "ScriptWithExtensions.d.h"
-
-
-
-
-
-
-ScriptWithExtensions* icu4x_ScriptWithExtensions_create_mv1(void);
-
-typedef struct icu4x_ScriptWithExtensions_create_with_provider_mv1_result {union {ScriptWithExtensions* ok; DataError err;}; bool is_ok;} icu4x_ScriptWithExtensions_create_with_provider_mv1_result;
-icu4x_ScriptWithExtensions_create_with_provider_mv1_result icu4x_ScriptWithExtensions_create_with_provider_mv1(const DataProvider* provider);
-
-uint16_t icu4x_ScriptWithExtensions_get_script_val_mv1(const ScriptWithExtensions* self, char32_t ch);
-
-bool icu4x_ScriptWithExtensions_has_script_mv1(const ScriptWithExtensions* self, char32_t ch, uint16_t script);
-
-ScriptWithExtensionsBorrowed* icu4x_ScriptWithExtensions_as_borrowed_mv1(const ScriptWithExtensions* self);
-
-CodePointRangeIterator* icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(const ScriptWithExtensions* self, uint16_t script);
-
-
-void icu4x_ScriptWithExtensions_destroy_mv1(ScriptWithExtensions* self);
-
-
-
-
-
-#endif // ScriptWithExtensions_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.d.h
deleted file mode 100644
index 5d14676..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ScriptWithExtensionsBorrowed_D_H
-#define ScriptWithExtensionsBorrowed_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ScriptWithExtensionsBorrowed ScriptWithExtensionsBorrowed;
-
-
-
-
-#endif // ScriptWithExtensionsBorrowed_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.h
deleted file mode 100644
index 02f2084..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ScriptWithExtensionsBorrowed.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef ScriptWithExtensionsBorrowed_H
-#define ScriptWithExtensionsBorrowed_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CodePointSetData.d.h"
-#include "ScriptExtensionsSet.d.h"
-
-#include "ScriptWithExtensionsBorrowed.d.h"
-
-
-
-
-
-
-uint16_t icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(const ScriptWithExtensionsBorrowed* self, char32_t ch);
-
-ScriptExtensionsSet* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(const ScriptWithExtensionsBorrowed* self, char32_t ch);
-
-bool icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(const ScriptWithExtensionsBorrowed* self, char32_t ch, uint16_t script);
-
-CodePointSetData* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(const ScriptWithExtensionsBorrowed* self, uint16_t script);
-
-
-void icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(ScriptWithExtensionsBorrowed* self);
-
-
-
-
-
-#endif // ScriptWithExtensionsBorrowed_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.d.h
deleted file mode 100644
index fd4d976..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SegmenterWordType_D_H
-#define SegmenterWordType_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum SegmenterWordType {
-  SegmenterWordType_None = 0,
-  SegmenterWordType_Number = 1,
-  SegmenterWordType_Letter = 2,
-} SegmenterWordType;
-
-typedef struct SegmenterWordType_option {union { SegmenterWordType ok; }; bool is_ok; } SegmenterWordType_option;
-
-
-
-#endif // SegmenterWordType_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.h
deleted file mode 100644
index 0742f6c91..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SegmenterWordType.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef SegmenterWordType_H
-#define SegmenterWordType_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "SegmenterWordType.d.h"
-
-
-
-
-
-
-bool icu4x_SegmenterWordType_is_word_like_mv1(SegmenterWordType self);
-
-
-
-
-
-
-#endif // SegmenterWordType_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.d.h
deleted file mode 100644
index 2cd0ddc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.d.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef SentenceBreak_D_H
-#define SentenceBreak_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum SentenceBreak {
-  SentenceBreak_Other = 0,
-  SentenceBreak_ATerm = 1,
-  SentenceBreak_Close = 2,
-  SentenceBreak_Format = 3,
-  SentenceBreak_Lower = 4,
-  SentenceBreak_Numeric = 5,
-  SentenceBreak_OLetter = 6,
-  SentenceBreak_Sep = 7,
-  SentenceBreak_Sp = 8,
-  SentenceBreak_STerm = 9,
-  SentenceBreak_Upper = 10,
-  SentenceBreak_CR = 11,
-  SentenceBreak_Extend = 12,
-  SentenceBreak_LF = 13,
-  SentenceBreak_SContinue = 14,
-} SentenceBreak;
-
-typedef struct SentenceBreak_option {union { SentenceBreak ok; }; bool is_ok; } SentenceBreak_option;
-
-
-
-#endif // SentenceBreak_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.h
deleted file mode 100644
index c838753..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreak.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef SentenceBreak_H
-#define SentenceBreak_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "SentenceBreak.d.h"
-
-
-
-
-
-
-SentenceBreak icu4x_SentenceBreak_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_SentenceBreak_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_SentenceBreak_long_name_mv1_result;
-icu4x_SentenceBreak_long_name_mv1_result icu4x_SentenceBreak_long_name_mv1(SentenceBreak self);
-
-typedef struct icu4x_SentenceBreak_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_SentenceBreak_short_name_mv1_result;
-icu4x_SentenceBreak_short_name_mv1_result icu4x_SentenceBreak_short_name_mv1(SentenceBreak self);
-
-uint8_t icu4x_SentenceBreak_to_integer_value_mv1(SentenceBreak self);
-
-typedef struct icu4x_SentenceBreak_from_integer_value_mv1_result {union {SentenceBreak ok; }; bool is_ok;} icu4x_SentenceBreak_from_integer_value_mv1_result;
-icu4x_SentenceBreak_from_integer_value_mv1_result icu4x_SentenceBreak_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // SentenceBreak_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.d.h
deleted file mode 100644
index 70f2bcd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SentenceBreakIteratorLatin1_D_H
-#define SentenceBreakIteratorLatin1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct SentenceBreakIteratorLatin1 SentenceBreakIteratorLatin1;
-
-
-
-
-#endif // SentenceBreakIteratorLatin1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.h
deleted file mode 100644
index a6c4c51..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorLatin1.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef SentenceBreakIteratorLatin1_H
-#define SentenceBreakIteratorLatin1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "SentenceBreakIteratorLatin1.d.h"
-
-
-
-
-
-
-int32_t icu4x_SentenceBreakIteratorLatin1_next_mv1(SentenceBreakIteratorLatin1* self);
-
-
-void icu4x_SentenceBreakIteratorLatin1_destroy_mv1(SentenceBreakIteratorLatin1* self);
-
-
-
-
-
-#endif // SentenceBreakIteratorLatin1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.d.h
deleted file mode 100644
index d6517bf31..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SentenceBreakIteratorUtf16_D_H
-#define SentenceBreakIteratorUtf16_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct SentenceBreakIteratorUtf16 SentenceBreakIteratorUtf16;
-
-
-
-
-#endif // SentenceBreakIteratorUtf16_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.h
deleted file mode 100644
index e2e38fd6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf16.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef SentenceBreakIteratorUtf16_H
-#define SentenceBreakIteratorUtf16_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "SentenceBreakIteratorUtf16.d.h"
-
-
-
-
-
-
-int32_t icu4x_SentenceBreakIteratorUtf16_next_mv1(SentenceBreakIteratorUtf16* self);
-
-
-void icu4x_SentenceBreakIteratorUtf16_destroy_mv1(SentenceBreakIteratorUtf16* self);
-
-
-
-
-
-#endif // SentenceBreakIteratorUtf16_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.d.h
deleted file mode 100644
index 9aa878cc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SentenceBreakIteratorUtf8_D_H
-#define SentenceBreakIteratorUtf8_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct SentenceBreakIteratorUtf8 SentenceBreakIteratorUtf8;
-
-
-
-
-#endif // SentenceBreakIteratorUtf8_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.h
deleted file mode 100644
index e77bbe6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceBreakIteratorUtf8.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef SentenceBreakIteratorUtf8_H
-#define SentenceBreakIteratorUtf8_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "SentenceBreakIteratorUtf8.d.h"
-
-
-
-
-
-
-int32_t icu4x_SentenceBreakIteratorUtf8_next_mv1(SentenceBreakIteratorUtf8* self);
-
-
-void icu4x_SentenceBreakIteratorUtf8_destroy_mv1(SentenceBreakIteratorUtf8* self);
-
-
-
-
-
-#endif // SentenceBreakIteratorUtf8_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.d.h
deleted file mode 100644
index b9c56f63..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SentenceSegmenter_D_H
-#define SentenceSegmenter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct SentenceSegmenter SentenceSegmenter;
-
-
-
-
-#endif // SentenceSegmenter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.h
deleted file mode 100644
index c47565a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/SentenceSegmenter.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef SentenceSegmenter_H
-#define SentenceSegmenter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "SentenceBreakIteratorLatin1.d.h"
-#include "SentenceBreakIteratorUtf16.d.h"
-#include "SentenceBreakIteratorUtf8.d.h"
-
-#include "SentenceSegmenter.d.h"
-
-
-
-
-
-
-SentenceSegmenter* icu4x_SentenceSegmenter_create_mv1(void);
-
-typedef struct icu4x_SentenceSegmenter_create_with_content_locale_mv1_result {union {SentenceSegmenter* ok; DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_with_content_locale_mv1_result;
-icu4x_SentenceSegmenter_create_with_content_locale_mv1_result icu4x_SentenceSegmenter_create_with_content_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result {union {SentenceSegmenter* ok; DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result;
-icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-SentenceBreakIteratorUtf8* icu4x_SentenceSegmenter_segment_utf8_mv1(const SentenceSegmenter* self, DiplomatStringView input);
-
-SentenceBreakIteratorUtf16* icu4x_SentenceSegmenter_segment_utf16_mv1(const SentenceSegmenter* self, DiplomatString16View input);
-
-SentenceBreakIteratorLatin1* icu4x_SentenceSegmenter_segment_latin1_mv1(const SentenceSegmenter* self, DiplomatU8View input);
-
-
-void icu4x_SentenceSegmenter_destroy_mv1(SentenceSegmenter* self);
-
-
-
-
-
-#endif // SentenceSegmenter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.d.h
deleted file mode 100644
index ae7a5be..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Time_D_H
-#define Time_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct Time Time;
-
-
-
-
-#endif // Time_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.h
deleted file mode 100644
index 3829f52..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Time.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef Time_H
-#define Time_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CalendarError.d.h"
-#include "CalendarParseError.d.h"
-
-#include "Time.d.h"
-
-
-
-
-
-
-typedef struct icu4x_Time_create_mv1_result {union {Time* ok; CalendarError err;}; bool is_ok;} icu4x_Time_create_mv1_result;
-icu4x_Time_create_mv1_result icu4x_Time_create_mv1(uint8_t hour, uint8_t minute, uint8_t second, uint32_t subsecond);
-
-typedef struct icu4x_Time_from_string_mv1_result {union {Time* ok; CalendarParseError err;}; bool is_ok;} icu4x_Time_from_string_mv1_result;
-icu4x_Time_from_string_mv1_result icu4x_Time_from_string_mv1(DiplomatStringView v);
-
-typedef struct icu4x_Time_midnight_mv1_result {union {Time* ok; CalendarError err;}; bool is_ok;} icu4x_Time_midnight_mv1_result;
-icu4x_Time_midnight_mv1_result icu4x_Time_midnight_mv1(void);
-
-uint8_t icu4x_Time_hour_mv1(const Time* self);
-
-uint8_t icu4x_Time_minute_mv1(const Time* self);
-
-uint8_t icu4x_Time_second_mv1(const Time* self);
-
-uint32_t icu4x_Time_subsecond_mv1(const Time* self);
-
-
-void icu4x_Time_destroy_mv1(Time* self);
-
-
-
-
-
-#endif // Time_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.d.h
deleted file mode 100644
index d0c9510..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.d.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef TimePrecision_D_H
-#define TimePrecision_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum TimePrecision {
-  TimePrecision_Hour = 0,
-  TimePrecision_Minute = 1,
-  TimePrecision_MinuteOptional = 2,
-  TimePrecision_Second = 3,
-  TimePrecision_Subsecond1 = 4,
-  TimePrecision_Subsecond2 = 5,
-  TimePrecision_Subsecond3 = 6,
-  TimePrecision_Subsecond4 = 7,
-  TimePrecision_Subsecond5 = 8,
-  TimePrecision_Subsecond6 = 9,
-  TimePrecision_Subsecond7 = 10,
-  TimePrecision_Subsecond8 = 11,
-  TimePrecision_Subsecond9 = 12,
-} TimePrecision;
-
-typedef struct TimePrecision_option {union { TimePrecision ok; }; bool is_ok; } TimePrecision_option;
-
-
-
-#endif // TimePrecision_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.h
deleted file mode 100644
index 9cf06363..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimePrecision.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TimePrecision_H
-#define TimePrecision_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TimePrecision.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TimePrecision_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.d.h
deleted file mode 100644
index 021382db..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TimeZone_D_H
-#define TimeZone_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TimeZone TimeZone;
-
-
-
-
-#endif // TimeZone_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.h
deleted file mode 100644
index fe40db9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZone.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef TimeZone_H
-#define TimeZone_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZoneInfo.d.h"
-#include "UtcOffset.d.h"
-
-#include "TimeZone.d.h"
-
-
-
-
-
-
-TimeZone* icu4x_TimeZone_unknown_mv1(void);
-
-TimeZone* icu4x_TimeZone_create_from_bcp47_mv1(DiplomatStringView id);
-
-TimeZoneInfo* icu4x_TimeZone_with_offset_mv1(const TimeZone* self, const UtcOffset* offset);
-
-TimeZoneInfo* icu4x_TimeZone_without_offset_mv1(const TimeZone* self);
-
-
-void icu4x_TimeZone_destroy_mv1(TimeZone* self);
-
-
-
-
-
-#endif // TimeZone_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.d.h
deleted file mode 100644
index bdb292ab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef TimeZoneAndCanonical_D_H
-#define TimeZoneAndCanonical_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZone.d.h"
-
-
-
-
-typedef struct TimeZoneAndCanonical {
-  TimeZone* time_zone;
-  DiplomatStringView canonical;
-} TimeZoneAndCanonical;
-
-typedef struct TimeZoneAndCanonical_option {union { TimeZoneAndCanonical ok; }; bool is_ok; } TimeZoneAndCanonical_option;
-
-
-
-#endif // TimeZoneAndCanonical_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.h
deleted file mode 100644
index cba517c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonical.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TimeZoneAndCanonical_H
-#define TimeZoneAndCanonical_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TimeZoneAndCanonical.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TimeZoneAndCanonical_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.d.h
deleted file mode 100644
index cfbca07..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef TimeZoneAndCanonicalAndNormalized_D_H
-#define TimeZoneAndCanonicalAndNormalized_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZone.d.h"
-
-
-
-
-typedef struct TimeZoneAndCanonicalAndNormalized {
-  TimeZone* time_zone;
-  DiplomatStringView canonical;
-  DiplomatStringView normalized;
-} TimeZoneAndCanonicalAndNormalized;
-
-typedef struct TimeZoneAndCanonicalAndNormalized_option {union { TimeZoneAndCanonicalAndNormalized ok; }; bool is_ok; } TimeZoneAndCanonicalAndNormalized_option;
-
-
-
-#endif // TimeZoneAndCanonicalAndNormalized_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.h
deleted file mode 100644
index f84d3b2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalized.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TimeZoneAndCanonicalAndNormalized_H
-#define TimeZoneAndCanonicalAndNormalized_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TimeZoneAndCanonicalAndNormalized.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TimeZoneAndCanonicalAndNormalized_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.d.h
deleted file mode 100644
index fb83714..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TimeZoneAndCanonicalAndNormalizedIterator_D_H
-#define TimeZoneAndCanonicalAndNormalizedIterator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TimeZoneAndCanonicalAndNormalizedIterator TimeZoneAndCanonicalAndNormalizedIterator;
-
-
-
-
-#endif // TimeZoneAndCanonicalAndNormalizedIterator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.h
deleted file mode 100644
index 440fddc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalAndNormalizedIterator.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef TimeZoneAndCanonicalAndNormalizedIterator_H
-#define TimeZoneAndCanonicalAndNormalizedIterator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZoneAndCanonicalAndNormalized.d.h"
-
-#include "TimeZoneAndCanonicalAndNormalizedIterator.d.h"
-
-
-
-
-
-
-typedef struct icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result {union {TimeZoneAndCanonicalAndNormalized ok; }; bool is_ok;} icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result;
-icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1(TimeZoneAndCanonicalAndNormalizedIterator* self);
-
-
-void icu4x_TimeZoneAndCanonicalAndNormalizedIterator_destroy_mv1(TimeZoneAndCanonicalAndNormalizedIterator* self);
-
-
-
-
-
-#endif // TimeZoneAndCanonicalAndNormalizedIterator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.d.h
deleted file mode 100644
index b64bf18..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TimeZoneAndCanonicalIterator_D_H
-#define TimeZoneAndCanonicalIterator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TimeZoneAndCanonicalIterator TimeZoneAndCanonicalIterator;
-
-
-
-
-#endif // TimeZoneAndCanonicalIterator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.h
deleted file mode 100644
index 8b87b17..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneAndCanonicalIterator.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef TimeZoneAndCanonicalIterator_H
-#define TimeZoneAndCanonicalIterator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZoneAndCanonical.d.h"
-
-#include "TimeZoneAndCanonicalIterator.d.h"
-
-
-
-
-
-
-typedef struct icu4x_TimeZoneAndCanonicalIterator_next_mv1_result {union {TimeZoneAndCanonical ok; }; bool is_ok;} icu4x_TimeZoneAndCanonicalIterator_next_mv1_result;
-icu4x_TimeZoneAndCanonicalIterator_next_mv1_result icu4x_TimeZoneAndCanonicalIterator_next_mv1(TimeZoneAndCanonicalIterator* self);
-
-
-void icu4x_TimeZoneAndCanonicalIterator_destroy_mv1(TimeZoneAndCanonicalIterator* self);
-
-
-
-
-
-#endif // TimeZoneAndCanonicalIterator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.d.h
deleted file mode 100644
index 2eff6b7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TimeZoneInfo_D_H
-#define TimeZoneInfo_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TimeZoneInfo TimeZoneInfo;
-
-
-
-
-#endif // TimeZoneInfo_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.h
deleted file mode 100644
index 3269a0c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInfo.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef TimeZoneInfo_H
-#define TimeZoneInfo_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "IsoDate.d.h"
-#include "IsoDateTime.d.h"
-#include "Time.d.h"
-#include "TimeZone.d.h"
-#include "TimeZoneVariant.d.h"
-#include "UtcOffset.d.h"
-#include "UtcOffsetCalculator.d.h"
-
-#include "TimeZoneInfo.d.h"
-
-
-
-
-
-
-TimeZoneInfo* icu4x_TimeZoneInfo_utc_mv1(void);
-
-TimeZoneInfo* icu4x_TimeZoneInfo_from_parts_mv1(const TimeZone* time_zone_id, const UtcOffset* offset, TimeZoneVariant_option zone_variant);
-
-TimeZone* icu4x_TimeZoneInfo_time_zone_id_mv1(const TimeZoneInfo* self);
-
-TimeZoneInfo* icu4x_TimeZoneInfo_at_time_mv1(const TimeZoneInfo* self, const IsoDate* date, const Time* time);
-
-typedef struct icu4x_TimeZoneInfo_local_time_mv1_result {union {IsoDateTime ok; }; bool is_ok;} icu4x_TimeZoneInfo_local_time_mv1_result;
-icu4x_TimeZoneInfo_local_time_mv1_result icu4x_TimeZoneInfo_local_time_mv1(const TimeZoneInfo* self);
-
-TimeZoneInfo* icu4x_TimeZoneInfo_with_zone_variant_mv1(const TimeZoneInfo* self, TimeZoneVariant time_zone_variant);
-
-typedef struct icu4x_TimeZoneInfo_infer_zone_variant_mv1_result { bool is_ok;} icu4x_TimeZoneInfo_infer_zone_variant_mv1_result;
-icu4x_TimeZoneInfo_infer_zone_variant_mv1_result icu4x_TimeZoneInfo_infer_zone_variant_mv1(TimeZoneInfo* self, const UtcOffsetCalculator* offset_calculator);
-
-typedef struct icu4x_TimeZoneInfo_zone_variant_mv1_result {union {TimeZoneVariant ok; }; bool is_ok;} icu4x_TimeZoneInfo_zone_variant_mv1_result;
-icu4x_TimeZoneInfo_zone_variant_mv1_result icu4x_TimeZoneInfo_zone_variant_mv1(const TimeZoneInfo* self);
-
-
-void icu4x_TimeZoneInfo_destroy_mv1(TimeZoneInfo* self);
-
-
-
-
-
-#endif // TimeZoneInfo_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.d.h
deleted file mode 100644
index bc49ba6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.d.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef TimeZoneInvalidOffsetError_D_H
-#define TimeZoneInvalidOffsetError_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TimeZoneInvalidOffsetError_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.h
deleted file mode 100644
index 71a921ad..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneInvalidOffsetError.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TimeZoneInvalidOffsetError_H
-#define TimeZoneInvalidOffsetError_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TimeZoneInvalidOffsetError.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TimeZoneInvalidOffsetError_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.d.h
deleted file mode 100644
index 411db4e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TimeZoneIterator_D_H
-#define TimeZoneIterator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TimeZoneIterator TimeZoneIterator;
-
-
-
-
-#endif // TimeZoneIterator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.h
deleted file mode 100644
index 532b29f7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneIterator.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef TimeZoneIterator_H
-#define TimeZoneIterator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "TimeZone.d.h"
-
-#include "TimeZoneIterator.d.h"
-
-
-
-
-
-
-TimeZone* icu4x_TimeZoneIterator_next_mv1(TimeZoneIterator* self);
-
-
-void icu4x_TimeZoneIterator_destroy_mv1(TimeZoneIterator* self);
-
-
-
-
-
-#endif // TimeZoneIterator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.d.h
deleted file mode 100644
index 025eb49..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TimeZoneVariant_D_H
-#define TimeZoneVariant_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum TimeZoneVariant {
-  TimeZoneVariant_Standard = 0,
-  TimeZoneVariant_Daylight = 1,
-} TimeZoneVariant;
-
-typedef struct TimeZoneVariant_option {union { TimeZoneVariant ok; }; bool is_ok; } TimeZoneVariant_option;
-
-
-
-#endif // TimeZoneVariant_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.h
deleted file mode 100644
index 18ed5371..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TimeZoneVariant.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef TimeZoneVariant_H
-#define TimeZoneVariant_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TimeZoneVariant.d.h"
-
-
-
-
-
-
-TimeZoneVariant icu4x_TimeZoneVariant_from_rearguard_isdst_mv1(TimeZoneVariant self, bool isdst);
-
-
-
-
-
-
-#endif // TimeZoneVariant_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.d.h
deleted file mode 100644
index ba209352..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef TitlecaseMapper_D_H
-#define TitlecaseMapper_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct TitlecaseMapper TitlecaseMapper;
-
-
-
-
-#endif // TitlecaseMapper_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.h
deleted file mode 100644
index f486fdd8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseMapper.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef TitlecaseMapper_H
-#define TitlecaseMapper_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "TitlecaseOptionsV1.d.h"
-
-#include "TitlecaseMapper.d.h"
-
-
-
-
-
-
-typedef struct icu4x_TitlecaseMapper_create_mv1_result {union {TitlecaseMapper* ok; DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_mv1_result;
-icu4x_TitlecaseMapper_create_mv1_result icu4x_TitlecaseMapper_create_mv1(void);
-
-typedef struct icu4x_TitlecaseMapper_create_with_provider_mv1_result {union {TitlecaseMapper* ok; DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_with_provider_mv1_result;
-icu4x_TitlecaseMapper_create_with_provider_mv1_result icu4x_TitlecaseMapper_create_with_provider_mv1(const DataProvider* provider);
-
-void icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(const TitlecaseMapper* self, DiplomatStringView s, const Locale* locale, TitlecaseOptionsV1 options, DiplomatWrite* write);
-
-
-void icu4x_TitlecaseMapper_destroy_mv1(TitlecaseMapper* self);
-
-
-
-
-
-#endif // TitlecaseMapper_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.d.h
deleted file mode 100644
index eb4de22..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.d.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef TitlecaseOptionsV1_D_H
-#define TitlecaseOptionsV1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "LeadingAdjustment.d.h"
-#include "TrailingCase.d.h"
-
-
-
-
-typedef struct TitlecaseOptionsV1 {
-  LeadingAdjustment_option leading_adjustment;
-  TrailingCase_option trailing_case;
-} TitlecaseOptionsV1;
-
-typedef struct TitlecaseOptionsV1_option {union { TitlecaseOptionsV1 ok; }; bool is_ok; } TitlecaseOptionsV1_option;
-
-
-
-#endif // TitlecaseOptionsV1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.h
deleted file mode 100644
index dd295f3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TitlecaseOptionsV1.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef TitlecaseOptionsV1_H
-#define TitlecaseOptionsV1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TitlecaseOptionsV1.d.h"
-
-
-
-
-
-
-TitlecaseOptionsV1 icu4x_TitlecaseOptionsV1_default_mv1(void);
-
-
-
-
-
-
-#endif // TitlecaseOptionsV1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.d.h
deleted file mode 100644
index 8c442d5a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TrailingCase_D_H
-#define TrailingCase_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum TrailingCase {
-  TrailingCase_Lower = 0,
-  TrailingCase_Unchanged = 1,
-} TrailingCase;
-
-typedef struct TrailingCase_option {union { TrailingCase ok; }; bool is_ok; } TrailingCase_option;
-
-
-
-#endif // TrailingCase_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.h
deleted file mode 100644
index 7981c7fb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TrailingCase.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TrailingCase_H
-#define TrailingCase_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TrailingCase.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TrailingCase_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.d.h
deleted file mode 100644
index 0f6f91e5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.d.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TransformResult_D_H
-#define TransformResult_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum TransformResult {
-  TransformResult_Modified = 0,
-  TransformResult_Unmodified = 1,
-} TransformResult;
-
-typedef struct TransformResult_option {union { TransformResult ok; }; bool is_ok; } TransformResult_option;
-
-
-
-#endif // TransformResult_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.h
deleted file mode 100644
index 05aeeaf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/TransformResult.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TransformResult_H
-#define TransformResult_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "TransformResult.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // TransformResult_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.d.h
deleted file mode 100644
index a9fcc07..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef UnitsConverter_D_H
-#define UnitsConverter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct UnitsConverter UnitsConverter;
-
-
-
-
-#endif // UnitsConverter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.h
deleted file mode 100644
index 5ff09fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverter.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef UnitsConverter_H
-#define UnitsConverter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "UnitsConverter.d.h"
-
-
-
-
-
-
-double icu4x_UnitsConverter_convert_double_mv1(const UnitsConverter* self, double value);
-
-UnitsConverter* icu4x_UnitsConverter_clone_mv1(const UnitsConverter* self);
-
-
-void icu4x_UnitsConverter_destroy_mv1(UnitsConverter* self);
-
-
-
-
-
-#endif // UnitsConverter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.d.h
deleted file mode 100644
index 8063144..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef UnitsConverterFactory_D_H
-#define UnitsConverterFactory_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct UnitsConverterFactory UnitsConverterFactory;
-
-
-
-
-#endif // UnitsConverterFactory_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.h
deleted file mode 100644
index b2d6aeb5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UnitsConverterFactory.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef UnitsConverterFactory_H
-#define UnitsConverterFactory_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "MeasureUnit.d.h"
-#include "MeasureUnitParser.d.h"
-#include "UnitsConverter.d.h"
-
-#include "UnitsConverterFactory.d.h"
-
-
-
-
-
-
-UnitsConverterFactory* icu4x_UnitsConverterFactory_create_mv1(void);
-
-typedef struct icu4x_UnitsConverterFactory_create_with_provider_mv1_result {union {UnitsConverterFactory* ok; DataError err;}; bool is_ok;} icu4x_UnitsConverterFactory_create_with_provider_mv1_result;
-icu4x_UnitsConverterFactory_create_with_provider_mv1_result icu4x_UnitsConverterFactory_create_with_provider_mv1(const DataProvider* provider);
-
-UnitsConverter* icu4x_UnitsConverterFactory_converter_mv1(const UnitsConverterFactory* self, const MeasureUnit* from, const MeasureUnit* to);
-
-MeasureUnitParser* icu4x_UnitsConverterFactory_parser_mv1(const UnitsConverterFactory* self);
-
-
-void icu4x_UnitsConverterFactory_destroy_mv1(UnitsConverterFactory* self);
-
-
-
-
-
-#endif // UnitsConverterFactory_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.d.h
deleted file mode 100644
index 8436be1d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef UtcOffset_D_H
-#define UtcOffset_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct UtcOffset UtcOffset;
-
-
-
-
-#endif // UtcOffset_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.h
deleted file mode 100644
index 144431a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffset.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef UtcOffset_H
-#define UtcOffset_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "UtcOffset.d.h"
-
-
-
-
-
-
-typedef struct icu4x_UtcOffset_from_seconds_mv1_result {union {UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_seconds_mv1_result;
-icu4x_UtcOffset_from_seconds_mv1_result icu4x_UtcOffset_from_seconds_mv1(int32_t seconds);
-
-UtcOffset* icu4x_UtcOffset_from_eighths_of_hour_mv1(int8_t eighths_of_hour);
-
-typedef struct icu4x_UtcOffset_from_string_mv1_result {union {UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_string_mv1_result;
-icu4x_UtcOffset_from_string_mv1_result icu4x_UtcOffset_from_string_mv1(DiplomatStringView offset);
-
-int8_t icu4x_UtcOffset_eighths_of_hour_mv1(const UtcOffset* self);
-
-int32_t icu4x_UtcOffset_seconds_mv1(const UtcOffset* self);
-
-bool icu4x_UtcOffset_is_non_negative_mv1(const UtcOffset* self);
-
-bool icu4x_UtcOffset_is_zero_mv1(const UtcOffset* self);
-
-int32_t icu4x_UtcOffset_hours_part_mv1(const UtcOffset* self);
-
-uint32_t icu4x_UtcOffset_minutes_part_mv1(const UtcOffset* self);
-
-uint32_t icu4x_UtcOffset_seconds_part_mv1(const UtcOffset* self);
-
-
-void icu4x_UtcOffset_destroy_mv1(UtcOffset* self);
-
-
-
-
-
-#endif // UtcOffset_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.d.h
deleted file mode 100644
index 9fd3c85..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef UtcOffsetCalculator_D_H
-#define UtcOffsetCalculator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct UtcOffsetCalculator UtcOffsetCalculator;
-
-
-
-
-#endif // UtcOffsetCalculator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.h
deleted file mode 100644
index b237fc75..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsetCalculator.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef UtcOffsetCalculator_H
-#define UtcOffsetCalculator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "IsoDate.d.h"
-#include "Time.d.h"
-#include "TimeZone.d.h"
-#include "UtcOffsets.d.h"
-
-#include "UtcOffsetCalculator.d.h"
-
-
-
-
-
-
-UtcOffsetCalculator* icu4x_UtcOffsetCalculator_create_mv1(void);
-
-typedef struct icu4x_UtcOffsetCalculator_create_with_provider_mv1_result {union {UtcOffsetCalculator* ok; DataError err;}; bool is_ok;} icu4x_UtcOffsetCalculator_create_with_provider_mv1_result;
-icu4x_UtcOffsetCalculator_create_with_provider_mv1_result icu4x_UtcOffsetCalculator_create_with_provider_mv1(const DataProvider* provider);
-
-typedef struct icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result {union {UtcOffsets ok; }; bool is_ok;} icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result;
-icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1(const UtcOffsetCalculator* self, const TimeZone* time_zone, const IsoDate* local_date, const Time* local_time);
-
-
-void icu4x_UtcOffsetCalculator_destroy_mv1(UtcOffsetCalculator* self);
-
-
-
-
-
-#endif // UtcOffsetCalculator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.d.h
deleted file mode 100644
index dc6ac3ac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef UtcOffsets_D_H
-#define UtcOffsets_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "UtcOffset.d.h"
-
-
-
-
-typedef struct UtcOffsets {
-  UtcOffset* standard;
-  UtcOffset* daylight;
-} UtcOffsets;
-
-typedef struct UtcOffsets_option {union { UtcOffsets ok; }; bool is_ok; } UtcOffsets_option;
-
-
-
-#endif // UtcOffsets_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.h
deleted file mode 100644
index 60151ec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/UtcOffsets.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef UtcOffsets_H
-#define UtcOffsets_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "UtcOffsets.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // UtcOffsets_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.d.h
deleted file mode 100644
index 0a73f347..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WeekCalculator_D_H
-#define WeekCalculator_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WeekCalculator WeekCalculator;
-
-
-
-
-#endif // WeekCalculator_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.h
deleted file mode 100644
index 68c7745..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekCalculator.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef WeekCalculator_H
-#define WeekCalculator_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "Weekday.d.h"
-#include "WeekendContainsDay.d.h"
-
-#include "WeekCalculator.d.h"
-
-
-
-
-
-
-typedef struct icu4x_WeekCalculator_create_mv1_result {union {WeekCalculator* ok; DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_mv1_result;
-icu4x_WeekCalculator_create_mv1_result icu4x_WeekCalculator_create_mv1(const Locale* locale);
-
-typedef struct icu4x_WeekCalculator_create_with_provider_mv1_result {union {WeekCalculator* ok; DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_with_provider_mv1_result;
-icu4x_WeekCalculator_create_with_provider_mv1_result icu4x_WeekCalculator_create_with_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-WeekCalculator* icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(Weekday first_weekday, uint8_t min_week_days);
-
-Weekday icu4x_WeekCalculator_first_weekday_mv1(const WeekCalculator* self);
-
-uint8_t icu4x_WeekCalculator_min_week_days_mv1(const WeekCalculator* self);
-
-WeekendContainsDay icu4x_WeekCalculator_weekend_mv1(const WeekCalculator* self);
-
-
-void icu4x_WeekCalculator_destroy_mv1(WeekCalculator* self);
-
-
-
-
-
-#endif // WeekCalculator_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.d.h
deleted file mode 100644
index aa4af95..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef WeekOf_D_H
-#define WeekOf_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "WeekRelativeUnit.d.h"
-
-
-
-
-typedef struct WeekOf {
-  uint8_t week;
-  WeekRelativeUnit unit;
-} WeekOf;
-
-typedef struct WeekOf_option {union { WeekOf ok; }; bool is_ok; } WeekOf_option;
-
-
-
-#endif // WeekOf_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.h
deleted file mode 100644
index 06791ca..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekOf.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef WeekOf_H
-#define WeekOf_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "WeekOf.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // WeekOf_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.d.h
deleted file mode 100644
index 016925e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef WeekRelativeUnit_D_H
-#define WeekRelativeUnit_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum WeekRelativeUnit {
-  WeekRelativeUnit_Previous = 0,
-  WeekRelativeUnit_Current = 1,
-  WeekRelativeUnit_Next = 2,
-} WeekRelativeUnit;
-
-typedef struct WeekRelativeUnit_option {union { WeekRelativeUnit ok; }; bool is_ok; } WeekRelativeUnit_option;
-
-
-
-#endif // WeekRelativeUnit_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.h
deleted file mode 100644
index d15a7242..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekRelativeUnit.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef WeekRelativeUnit_H
-#define WeekRelativeUnit_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "WeekRelativeUnit.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // WeekRelativeUnit_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.d.h
deleted file mode 100644
index ed4e331..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.d.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef Weekday_D_H
-#define Weekday_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum Weekday {
-  Weekday_Monday = 1,
-  Weekday_Tuesday = 2,
-  Weekday_Wednesday = 3,
-  Weekday_Thursday = 4,
-  Weekday_Friday = 5,
-  Weekday_Saturday = 6,
-  Weekday_Sunday = 7,
-} Weekday;
-
-typedef struct Weekday_option {union { Weekday ok; }; bool is_ok; } Weekday_option;
-
-
-
-#endif // Weekday_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.h
deleted file mode 100644
index a59eb18..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/Weekday.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef Weekday_H
-#define Weekday_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "Weekday.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // Weekday_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.d.h
deleted file mode 100644
index 40541ec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.d.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef WeekendContainsDay_D_H
-#define WeekendContainsDay_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WeekendContainsDay {
-  bool monday;
-  bool tuesday;
-  bool wednesday;
-  bool thursday;
-  bool friday;
-  bool saturday;
-  bool sunday;
-} WeekendContainsDay;
-
-typedef struct WeekendContainsDay_option {union { WeekendContainsDay ok; }; bool is_ok; } WeekendContainsDay_option;
-
-
-
-#endif // WeekendContainsDay_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.h
deleted file mode 100644
index fa55bd71..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WeekendContainsDay.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef WeekendContainsDay_H
-#define WeekendContainsDay_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "WeekendContainsDay.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // WeekendContainsDay_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.d.h
deleted file mode 100644
index b7657f83..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WindowsParser_D_H
-#define WindowsParser_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WindowsParser WindowsParser;
-
-
-
-
-#endif // WindowsParser_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.h
deleted file mode 100644
index d6ce3c29..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WindowsParser.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef WindowsParser_H
-#define WindowsParser_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "TimeZone.d.h"
-
-#include "WindowsParser.d.h"
-
-
-
-
-
-
-WindowsParser* icu4x_WindowsParser_create_mv1(void);
-
-typedef struct icu4x_WindowsParser_create_with_provider_mv1_result {union {WindowsParser* ok; DataError err;}; bool is_ok;} icu4x_WindowsParser_create_with_provider_mv1_result;
-icu4x_WindowsParser_create_with_provider_mv1_result icu4x_WindowsParser_create_with_provider_mv1(const DataProvider* provider);
-
-TimeZone* icu4x_WindowsParser_parse_mv1(const WindowsParser* self, DiplomatStringView value, DiplomatStringView region);
-
-
-void icu4x_WindowsParser_destroy_mv1(WindowsParser* self);
-
-
-
-
-
-#endif // WindowsParser_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.d.h
deleted file mode 100644
index 752a50b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.d.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef WordBreak_D_H
-#define WordBreak_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum WordBreak {
-  WordBreak_Other = 0,
-  WordBreak_ALetter = 1,
-  WordBreak_Format = 2,
-  WordBreak_Katakana = 3,
-  WordBreak_MidLetter = 4,
-  WordBreak_MidNum = 5,
-  WordBreak_Numeric = 6,
-  WordBreak_ExtendNumLet = 7,
-  WordBreak_CR = 8,
-  WordBreak_Extend = 9,
-  WordBreak_LF = 10,
-  WordBreak_MidNumLet = 11,
-  WordBreak_Newline = 12,
-  WordBreak_RegionalIndicator = 13,
-  WordBreak_HebrewLetter = 14,
-  WordBreak_SingleQuote = 15,
-  WordBreak_DoubleQuote = 16,
-  WordBreak_EBase = 17,
-  WordBreak_EBaseGAZ = 18,
-  WordBreak_EModifier = 19,
-  WordBreak_GlueAfterZwj = 20,
-  WordBreak_ZWJ = 21,
-  WordBreak_WSegSpace = 22,
-} WordBreak;
-
-typedef struct WordBreak_option {union { WordBreak ok; }; bool is_ok; } WordBreak_option;
-
-
-
-#endif // WordBreak_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.h
deleted file mode 100644
index 004e7d9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreak.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef WordBreak_H
-#define WordBreak_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "WordBreak.d.h"
-
-
-
-
-
-
-WordBreak icu4x_WordBreak_for_char_mv1(char32_t ch);
-
-typedef struct icu4x_WordBreak_long_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_WordBreak_long_name_mv1_result;
-icu4x_WordBreak_long_name_mv1_result icu4x_WordBreak_long_name_mv1(WordBreak self);
-
-typedef struct icu4x_WordBreak_short_name_mv1_result {union {DiplomatStringView ok; }; bool is_ok;} icu4x_WordBreak_short_name_mv1_result;
-icu4x_WordBreak_short_name_mv1_result icu4x_WordBreak_short_name_mv1(WordBreak self);
-
-uint8_t icu4x_WordBreak_to_integer_value_mv1(WordBreak self);
-
-typedef struct icu4x_WordBreak_from_integer_value_mv1_result {union {WordBreak ok; }; bool is_ok;} icu4x_WordBreak_from_integer_value_mv1_result;
-icu4x_WordBreak_from_integer_value_mv1_result icu4x_WordBreak_from_integer_value_mv1(uint8_t other);
-
-
-
-
-
-
-#endif // WordBreak_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.d.h
deleted file mode 100644
index 7e5a36a0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WordBreakIteratorLatin1_D_H
-#define WordBreakIteratorLatin1_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WordBreakIteratorLatin1 WordBreakIteratorLatin1;
-
-
-
-
-#endif // WordBreakIteratorLatin1_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.h
deleted file mode 100644
index 81505c3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorLatin1.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef WordBreakIteratorLatin1_H
-#define WordBreakIteratorLatin1_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "SegmenterWordType.d.h"
-
-#include "WordBreakIteratorLatin1.d.h"
-
-
-
-
-
-
-int32_t icu4x_WordBreakIteratorLatin1_next_mv1(WordBreakIteratorLatin1* self);
-
-SegmenterWordType icu4x_WordBreakIteratorLatin1_word_type_mv1(const WordBreakIteratorLatin1* self);
-
-bool icu4x_WordBreakIteratorLatin1_is_word_like_mv1(const WordBreakIteratorLatin1* self);
-
-
-void icu4x_WordBreakIteratorLatin1_destroy_mv1(WordBreakIteratorLatin1* self);
-
-
-
-
-
-#endif // WordBreakIteratorLatin1_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.d.h
deleted file mode 100644
index 86f79bc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WordBreakIteratorUtf16_D_H
-#define WordBreakIteratorUtf16_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WordBreakIteratorUtf16 WordBreakIteratorUtf16;
-
-
-
-
-#endif // WordBreakIteratorUtf16_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.h
deleted file mode 100644
index 791563d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf16.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef WordBreakIteratorUtf16_H
-#define WordBreakIteratorUtf16_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "SegmenterWordType.d.h"
-
-#include "WordBreakIteratorUtf16.d.h"
-
-
-
-
-
-
-int32_t icu4x_WordBreakIteratorUtf16_next_mv1(WordBreakIteratorUtf16* self);
-
-SegmenterWordType icu4x_WordBreakIteratorUtf16_word_type_mv1(const WordBreakIteratorUtf16* self);
-
-bool icu4x_WordBreakIteratorUtf16_is_word_like_mv1(const WordBreakIteratorUtf16* self);
-
-
-void icu4x_WordBreakIteratorUtf16_destroy_mv1(WordBreakIteratorUtf16* self);
-
-
-
-
-
-#endif // WordBreakIteratorUtf16_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.d.h
deleted file mode 100644
index a5e3a1e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WordBreakIteratorUtf8_D_H
-#define WordBreakIteratorUtf8_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WordBreakIteratorUtf8 WordBreakIteratorUtf8;
-
-
-
-
-#endif // WordBreakIteratorUtf8_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.h
deleted file mode 100644
index e8188ed..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordBreakIteratorUtf8.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef WordBreakIteratorUtf8_H
-#define WordBreakIteratorUtf8_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "SegmenterWordType.d.h"
-
-#include "WordBreakIteratorUtf8.d.h"
-
-
-
-
-
-
-int32_t icu4x_WordBreakIteratorUtf8_next_mv1(WordBreakIteratorUtf8* self);
-
-SegmenterWordType icu4x_WordBreakIteratorUtf8_word_type_mv1(const WordBreakIteratorUtf8* self);
-
-bool icu4x_WordBreakIteratorUtf8_is_word_like_mv1(const WordBreakIteratorUtf8* self);
-
-
-void icu4x_WordBreakIteratorUtf8_destroy_mv1(WordBreakIteratorUtf8* self);
-
-
-
-
-
-#endif // WordBreakIteratorUtf8_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.d.h
deleted file mode 100644
index d35399d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef WordSegmenter_D_H
-#define WordSegmenter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct WordSegmenter WordSegmenter;
-
-
-
-
-#endif // WordSegmenter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.h
deleted file mode 100644
index 39481735..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/WordSegmenter.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef WordSegmenter_H
-#define WordSegmenter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataError.d.h"
-#include "DataProvider.d.h"
-#include "Locale.d.h"
-#include "WordBreakIteratorLatin1.d.h"
-#include "WordBreakIteratorUtf16.d.h"
-#include "WordBreakIteratorUtf8.d.h"
-
-#include "WordSegmenter.d.h"
-
-
-
-
-
-
-WordSegmenter* icu4x_WordSegmenter_create_auto_mv1(void);
-
-typedef struct icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result;
-icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result icu4x_WordSegmenter_create_auto_with_content_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result;
-icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-WordSegmenter* icu4x_WordSegmenter_create_lstm_mv1(void);
-
-typedef struct icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result;
-icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result icu4x_WordSegmenter_create_lstm_with_content_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result;
-icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-WordSegmenter* icu4x_WordSegmenter_create_dictionary_mv1(void);
-
-typedef struct icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result;
-icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1(const Locale* locale);
-
-typedef struct icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result {union {WordSegmenter* ok; DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result;
-icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1(const DataProvider* provider, const Locale* locale);
-
-WordBreakIteratorUtf8* icu4x_WordSegmenter_segment_utf8_mv1(const WordSegmenter* self, DiplomatStringView input);
-
-WordBreakIteratorUtf16* icu4x_WordSegmenter_segment_utf16_mv1(const WordSegmenter* self, DiplomatString16View input);
-
-WordBreakIteratorLatin1* icu4x_WordSegmenter_segment_latin1_mv1(const WordSegmenter* self, DiplomatU8View input);
-
-
-void icu4x_WordSegmenter_destroy_mv1(WordSegmenter* self);
-
-
-
-
-
-#endif // WordSegmenter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.d.h
deleted file mode 100644
index 3ca3bcb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.d.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef YearStyle_D_H
-#define YearStyle_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef enum YearStyle {
-  YearStyle_Auto = 0,
-  YearStyle_Full = 1,
-  YearStyle_WithEra = 2,
-} YearStyle;
-
-typedef struct YearStyle_option {union { YearStyle ok; }; bool is_ok; } YearStyle_option;
-
-
-
-#endif // YearStyle_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.h
deleted file mode 100644
index 21ce8a6a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/YearStyle.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef YearStyle_H
-#define YearStyle_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-#include "YearStyle.d.h"
-
-
-
-
-
-
-
-
-
-
-
-#endif // YearStyle_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.d.h
deleted file mode 100644
index c5834ef..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef ZonedDateTime_D_H
-#define ZonedDateTime_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Date.d.h"
-#include "Time.d.h"
-#include "TimeZoneInfo.d.h"
-
-
-
-
-typedef struct ZonedDateTime {
-  Date* date;
-  Time* time;
-  TimeZoneInfo* zone;
-} ZonedDateTime;
-
-typedef struct ZonedDateTime_option {union { ZonedDateTime ok; }; bool is_ok; } ZonedDateTime_option;
-
-
-
-#endif // ZonedDateTime_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.h
deleted file mode 100644
index 27eb671..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTime.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef ZonedDateTime_H
-#define ZonedDateTime_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "Calendar.d.h"
-#include "CalendarParseError.d.h"
-#include "IanaParser.d.h"
-#include "UtcOffsetCalculator.d.h"
-
-#include "ZonedDateTime.d.h"
-
-
-
-
-
-
-typedef struct icu4x_ZonedDateTime_from_string_mv1_result {union {ZonedDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_from_string_mv1_result;
-icu4x_ZonedDateTime_from_string_mv1_result icu4x_ZonedDateTime_from_string_mv1(DiplomatStringView v, const Calendar* calendar, const IanaParser* iana_parser, const UtcOffsetCalculator* offset_calculator);
-
-typedef struct icu4x_ZonedDateTime_location_only_from_string_mv1_result {union {ZonedDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_location_only_from_string_mv1_result;
-icu4x_ZonedDateTime_location_only_from_string_mv1_result icu4x_ZonedDateTime_location_only_from_string_mv1(DiplomatStringView v, const Calendar* calendar, const IanaParser* iana_parser);
-
-typedef struct icu4x_ZonedDateTime_offset_only_from_string_mv1_result {union {ZonedDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_offset_only_from_string_mv1_result;
-icu4x_ZonedDateTime_offset_only_from_string_mv1_result icu4x_ZonedDateTime_offset_only_from_string_mv1(DiplomatStringView v, const Calendar* calendar);
-
-typedef struct icu4x_ZonedDateTime_loose_from_string_mv1_result {union {ZonedDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_loose_from_string_mv1_result;
-icu4x_ZonedDateTime_loose_from_string_mv1_result icu4x_ZonedDateTime_loose_from_string_mv1(DiplomatStringView v, const Calendar* calendar, const IanaParser* iana_parser);
-
-
-
-
-
-
-#endif // ZonedDateTime_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.d.h
deleted file mode 100644
index 98414048e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.d.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef ZonedDateTimeFormatter_D_H
-#define ZonedDateTimeFormatter_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-
-
-
-
-typedef struct ZonedDateTimeFormatter ZonedDateTimeFormatter;
-
-
-
-
-#endif // ZonedDateTimeFormatter_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.h
deleted file mode 100644
index 3753b9a9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedDateTimeFormatter.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef ZonedDateTimeFormatter_H
-#define ZonedDateTimeFormatter_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "DataProvider.d.h"
-#include "Date.d.h"
-#include "DateTimeFormatError.d.h"
-#include "DateTimeFormatterLoadError.d.h"
-#include "DateTimeLength.d.h"
-#include "IsoDate.d.h"
-#include "Locale.d.h"
-#include "Time.d.h"
-#include "TimeZoneInfo.d.h"
-
-#include "ZonedDateTimeFormatter.d.h"
-
-
-
-
-
-
-typedef struct icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result {union {ZonedDateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result;
-icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result icu4x_ZonedDateTimeFormatter_create_with_length_mv1(const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result {union {ZonedDateTimeFormatter* ok; DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result;
-icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1(const DataProvider* provider, const Locale* locale, DateTimeLength length);
-
-typedef struct icu4x_ZonedDateTimeFormatter_format_mv1_result {union { DateTimeFormatError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_mv1_result;
-icu4x_ZonedDateTimeFormatter_format_mv1_result icu4x_ZonedDateTimeFormatter_format_mv1(const ZonedDateTimeFormatter* self, const Date* date, const Time* time, const TimeZoneInfo* zone, DiplomatWrite* write);
-
-typedef struct icu4x_ZonedDateTimeFormatter_format_iso_mv1_result {union { DateTimeFormatError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_iso_mv1_result;
-icu4x_ZonedDateTimeFormatter_format_iso_mv1_result icu4x_ZonedDateTimeFormatter_format_iso_mv1(const ZonedDateTimeFormatter* self, const IsoDate* date, const Time* time, const TimeZoneInfo* zone, DiplomatWrite* write);
-
-
-void icu4x_ZonedDateTimeFormatter_destroy_mv1(ZonedDateTimeFormatter* self);
-
-
-
-
-
-#endif // ZonedDateTimeFormatter_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.d.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.d.h
deleted file mode 100644
index ed1ac6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.d.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef ZonedIsoDateTime_D_H
-#define ZonedIsoDateTime_D_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "IsoDate.d.h"
-#include "Time.d.h"
-#include "TimeZoneInfo.d.h"
-
-
-
-
-typedef struct ZonedIsoDateTime {
-  IsoDate* date;
-  Time* time;
-  TimeZoneInfo* zone;
-} ZonedIsoDateTime;
-
-typedef struct ZonedIsoDateTime_option {union { ZonedIsoDateTime ok; }; bool is_ok; } ZonedIsoDateTime_option;
-
-
-
-#endif // ZonedIsoDateTime_D_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.h
deleted file mode 100644
index 0dc1a37..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/ZonedIsoDateTime.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef ZonedIsoDateTime_H
-#define ZonedIsoDateTime_H
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include "diplomat_runtime.h"
-
-#include "CalendarParseError.d.h"
-#include "IanaParser.d.h"
-#include "UtcOffsetCalculator.d.h"
-
-#include "ZonedIsoDateTime.d.h"
-
-
-
-
-
-
-typedef struct icu4x_ZonedIsoDateTime_from_string_mv1_result {union {ZonedIsoDateTime ok; CalendarParseError err;}; bool is_ok;} icu4x_ZonedIsoDateTime_from_string_mv1_result;
-icu4x_ZonedIsoDateTime_from_string_mv1_result icu4x_ZonedIsoDateTime_from_string_mv1(DiplomatStringView v, const IanaParser* iana_parser, const UtcOffsetCalculator* offset_calculator);
-
-
-
-
-
-
-#endif // ZonedIsoDateTime_H
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/diplomat_runtime.h b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/diplomat_runtime.h
deleted file mode 100644
index de89990..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/c/diplomat_runtime.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef DIPLOMAT_RUNTIME_C_H
-#define DIPLOMAT_RUNTIME_C_H
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-
-// These come from `uchar.h`, which is not available on all platforms.
-// Redefining them in C is no problem, however in >C++11 they are fundamental
-// types, which don't like being redefined. 
-#if !(__cplusplus >= 201100) 
-// https://en.cppreference.com/w/c/string/multibyte/char16_t
-typedef uint_least16_t char16_t;
-// https://en.cppreference.com/w/c/string/multibyte/char32_t
-typedef uint_least32_t char32_t;
-#endif
-
-static_assert(sizeof(char) == sizeof(uint8_t), "your architecture's `char` is not 8 bits");
-static_assert(sizeof(char16_t) == sizeof(uint16_t), "your architecture's `char16_t` is not 16 bits");
-static_assert(sizeof(char32_t) == sizeof(uint32_t), "your architecture's `char32_t` is not 32 bits");
-
-typedef struct DiplomatWrite {
-    void* context;
-    char* buf;
-    size_t len;
-    size_t cap;
-    bool grow_failed;
-    void (*flush)(struct DiplomatWrite*);
-    bool (*grow)(struct DiplomatWrite*, size_t);
-} DiplomatWrite;
-
-bool diplomat_is_str(const char* buf, size_t len);
-
-#define MAKE_SLICES(name, c_ty) \
-    typedef struct Diplomat##name##View { \
-        const c_ty* data; \
-        size_t len; \
-    } Diplomat##name##View; \
-    typedef struct Diplomat##name##ViewMut { \
-        c_ty* data; \
-        size_t len; \
-    } Diplomat##name##ViewMut; \
-    typedef struct Diplomat##name##Array { \
-        const c_ty* data; \
-        size_t len; \
-    } Diplomat##name##Array;
-
-#define MAKE_SLICES_AND_OPTIONS(name, c_ty) \
-    MAKE_SLICES(name, c_ty) \
-    typedef struct Option##name {union { c_ty ok; }; bool is_ok; } Option##name; \
-    typedef struct Option##name##View {union { Diplomat##name##View ok; }; bool is_ok; } Option##name##View; \
-    typedef struct Option##name##ViewMut {union { Diplomat##name##ViewMut ok; }; bool is_ok; } Option##name##ViewMut; \
-    typedef struct Option##name##Array {union { Diplomat##name##Array ok; }; bool is_ok; } Option##name##Array; \
-
-MAKE_SLICES_AND_OPTIONS(I8, int8_t)
-MAKE_SLICES_AND_OPTIONS(U8, uint8_t)
-MAKE_SLICES_AND_OPTIONS(I16, int16_t)
-MAKE_SLICES_AND_OPTIONS(U16, uint16_t)
-MAKE_SLICES_AND_OPTIONS(I32, int32_t)
-MAKE_SLICES_AND_OPTIONS(U32, uint32_t)
-MAKE_SLICES_AND_OPTIONS(I64, int64_t)
-MAKE_SLICES_AND_OPTIONS(U64, uint64_t)
-MAKE_SLICES_AND_OPTIONS(Isize, intptr_t)
-MAKE_SLICES_AND_OPTIONS(Usize, size_t)
-MAKE_SLICES_AND_OPTIONS(F32, float)
-MAKE_SLICES_AND_OPTIONS(F64, double)
-MAKE_SLICES_AND_OPTIONS(Bool, bool)
-MAKE_SLICES_AND_OPTIONS(Char, char32_t)
-MAKE_SLICES_AND_OPTIONS(String, char)
-MAKE_SLICES_AND_OPTIONS(String16, char16_t)
-MAKE_SLICES_AND_OPTIONS(Strings, DiplomatStringView)
-MAKE_SLICES_AND_OPTIONS(Strings16, DiplomatString16View)
-
-DiplomatWrite diplomat_simple_write(char* buf, size_t buf_size);
-
-DiplomatWrite* diplomat_buffer_write_create(size_t cap);
-char* diplomat_buffer_write_get_bytes(DiplomatWrite* t);
-size_t diplomat_buffer_write_len(DiplomatWrite* t);
-void diplomat_buffer_write_destroy(DiplomatWrite* t);
-
-#endif
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/diplomat_runtime.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/diplomat_runtime.hpp
deleted file mode 100644
index 3974b6a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/diplomat_runtime.hpp
+++ /dev/null
@@ -1,275 +0,0 @@
-#ifndef DIPLOMAT_RUNTIME_CPP_H
-#define DIPLOMAT_RUNTIME_CPP_H
-
-#include <optional>
-#include <string>
-#include <type_traits>
-#include <variant>
-#include <cstdint>
-#include <functional>
-
-#if __cplusplus >= 202002L
-#include <span>
-#else
-#include <array>
-#endif
-
-namespace diplomat {
-
-namespace capi {
-extern "C" {
-
-static_assert(sizeof(char) == sizeof(uint8_t), "your architecture's `char` is not 8 bits");
-static_assert(sizeof(char16_t) == sizeof(uint16_t), "your architecture's `char16_t` is not 16 bits");
-static_assert(sizeof(char32_t) == sizeof(uint32_t), "your architecture's `char32_t` is not 32 bits");
-
-typedef struct DiplomatWrite {
-    void* context;
-    char* buf;
-    size_t len;
-    size_t cap;
-    bool grow_failed;
-    void (*flush)(struct DiplomatWrite*);
-    bool (*grow)(struct DiplomatWrite*, size_t);
-} DiplomatWrite;
-
-bool diplomat_is_str(const char* buf, size_t len);
-
-#define MAKE_SLICES(name, c_ty) \
-    typedef struct Diplomat##name##View { \
-        const c_ty* data; \
-        size_t len; \
-    } Diplomat##name##View; \
-    typedef struct Diplomat##name##ViewMut { \
-        c_ty* data; \
-        size_t len; \
-    } Diplomat##name##ViewMut; \
-    typedef struct Diplomat##name##Array { \
-        const c_ty* data; \
-        size_t len; \
-    } Diplomat##name##Array;
-
-#define MAKE_SLICES_AND_OPTIONS(name, c_ty) \
-    MAKE_SLICES(name, c_ty) \
-    typedef struct Option##name {union { c_ty ok; }; bool is_ok; } Option##name; \
-    typedef struct Option##name##View {union { Diplomat##name##View ok; }; bool is_ok; } Option##name##View; \
-    typedef struct Option##name##ViewMut {union { Diplomat##name##ViewMut ok; }; bool is_ok; } Option##name##ViewMut; \
-    typedef struct Option##name##Array {union { Diplomat##name##Array ok; }; bool is_ok; } Option##name##Array; \
-
-MAKE_SLICES_AND_OPTIONS(I8, int8_t)
-MAKE_SLICES_AND_OPTIONS(U8, uint8_t)
-MAKE_SLICES_AND_OPTIONS(I16, int16_t)
-MAKE_SLICES_AND_OPTIONS(U16, uint16_t)
-MAKE_SLICES_AND_OPTIONS(I32, int32_t)
-MAKE_SLICES_AND_OPTIONS(U32, uint32_t)
-MAKE_SLICES_AND_OPTIONS(I64, int64_t)
-MAKE_SLICES_AND_OPTIONS(U64, uint64_t)
-MAKE_SLICES_AND_OPTIONS(Isize, intptr_t)
-MAKE_SLICES_AND_OPTIONS(Usize, size_t)
-MAKE_SLICES_AND_OPTIONS(F32, float)
-MAKE_SLICES_AND_OPTIONS(F64, double)
-MAKE_SLICES_AND_OPTIONS(Bool, bool)
-MAKE_SLICES_AND_OPTIONS(Char, char32_t)
-MAKE_SLICES_AND_OPTIONS(String, char)
-MAKE_SLICES_AND_OPTIONS(String16, char16_t)
-MAKE_SLICES_AND_OPTIONS(Strings, DiplomatStringView)
-MAKE_SLICES_AND_OPTIONS(Strings16, DiplomatString16View)
-
-} // extern "C"
-} // namespace capi
-
-extern "C" inline void _flush(capi::DiplomatWrite* w) {
-  std::string* string = reinterpret_cast<std::string*>(w->context);
-  string->resize(w->len);
-}
-
-extern "C" inline bool _grow(capi::DiplomatWrite* w, uintptr_t requested) {
-  std::string* string = reinterpret_cast<std::string*>(w->context);
-  string->resize(requested);
-  w->cap = string->length();
-  w->buf = &(*string)[0];
-  return true;
-}
-
-inline capi::DiplomatWrite WriteFromString(std::string& string) {
-  capi::DiplomatWrite w;
-  w.context = &string;
-  w.buf = &string[0];
-  w.len = string.length();
-  w.cap = string.length();
-  // Will never become true, as _grow is infallible.
-  w.grow_failed = false;
-  w.flush = _flush;
-  w.grow = _grow;
-  return w;
-}
-
-template<class T> struct Ok {
-  T inner;
-  Ok(T&& i): inner(std::forward<T>(i)) {}
-  // We don't want to expose an lvalue-capable constructor in general
-  // however there is no problem doing this for trivially copyable types
-  template<typename X = T, typename = typename std::enable_if<std::is_trivially_copyable<X>::value>::type>
-  Ok(T i): inner(i) {}
-  Ok() = default;
-  Ok(Ok&&) noexcept = default;
-  Ok(const Ok &) = default;
-  Ok& operator=(const Ok&) = default;
-  Ok& operator=(Ok&&) noexcept = default;
-};
-
-template<class T> struct Err {
-  T inner;
-  Err(T&& i): inner(std::forward<T>(i)) {}
-  // We don't want to expose an lvalue-capable constructor in general
-  // however there is no problem doing this for trivially copyable types
-  template<typename X = T, typename = typename std::enable_if<std::is_trivially_copyable<X>::value>::type>
-  Err(T i): inner(i) {}
-  Err() = default;
-  Err(Err&&) noexcept = default;
-  Err(const Err &) = default;
-  Err& operator=(const Err&) = default;
-  Err& operator=(Err&&) noexcept = default;
-};
-
-template<class T, class E>
-class result {
-private:
-    std::variant<Ok<T>, Err<E>> val;
-public:
-  result(Ok<T>&& v): val(std::move(v)) {}
-  result(Err<E>&& v): val(std::move(v)) {}
-  result() = default;
-  result(const result &) = default;
-  result& operator=(const result&) = default;
-  result& operator=(result&&) noexcept = default;
-  result(result &&) noexcept = default;
-  ~result() = default;
-  bool is_ok() const {
-    return std::holds_alternative<Ok<T>>(this->val);
-  }
-  bool is_err() const {
-    return std::holds_alternative<Err<E>>(this->val);
-  }
-
-  std::optional<T> ok() && {
-    if (!this->is_ok()) {
-      return std::nullopt;
-    }
-    return std::make_optional(std::move(std::get<Ok<T>>(std::move(this->val)).inner));
-  }
-  std::optional<E> err() && {
-    if (!this->is_err()) {
-      return std::nullopt;
-    }
-    return std::make_optional(std::move(std::get<Err<E>>(std::move(this->val)).inner));
-  }
-
-  void set_ok(T&& t) {
-    this->val = Ok<T>(std::move(t));
-  }
-
-  void set_err(E&& e) {
-    this->val = Err<E>(std::move(e));
-  }
-
-  template<typename T2>
-  result<T2, E> replace_ok(T2&& t) {
-    if (this->is_err()) {
-      return result<T2, E>(Err<E>(std::get<Err<E>>(std::move(this->val))));
-    } else {
-      return result<T2, E>(Ok<T2>(std::move(t)));
-    }
-  }
-};
-
-class Utf8Error {};
-
-// Use custom std::span on C++17, otherwise use std::span
-#if __cplusplus >= 202002L
-
-template<class T> using span = std::span<T>;
-
-#else // __cplusplus < 202002L
-
-// C++-17-compatible std::span
-template<class T>
-class span {
-
-public:
-  constexpr span(T* data, size_t size)
-    : data_(data), size_(size) {}
-  template<size_t N>
-  constexpr span(std::array<typename std::remove_const<T>::type, N>& arr)
-    : data_(const_cast<T*>(arr.data())), size_(N) {}
-  constexpr T* data() const noexcept {
-    return this->data_;
-  }
-  constexpr size_t size() const noexcept {
-    return this->size_;
-  }
-private:
-  T* data_;
-  size_t size_;
-};
-
-#endif // __cplusplus >= 202002L
-
-// Interop between std::function & our C Callback wrapper type
-
-template <typename T> struct fn_traits;
-template <typename Ret, typename... Args> struct fn_traits<std::function<Ret(Args...)>> {
-    using fn_ptr_t = Ret(Args...);
-    using function_t = std::function<fn_ptr_t>;
-    using ret = Ret;
-
-    template <typename T, typename = void>
-    struct as_ffi {
-      using type = T;
-    };
-
-    template <typename T>
-    struct as_ffi<T, std::void_t<decltype(&T::AsFFI)>> {
-      using type = decltype(std::declval<T>().AsFFI());
-    };
-
-    template<typename T>
-    using as_ffi_t = typename as_ffi<T>::type;
-
-    template<typename T>
-    using replace_string_view_t = std::conditional_t<std::is_same_v<T, std::string_view>, capi::DiplomatStringView, T>;
-
-    template<typename T>
-    using replace_fn_t = replace_string_view_t<as_ffi_t<T>>;
-
-    // For a given T, creates a function that take in the C ABI version & return the C++ type.
-    template<typename T>
-    static T replace(replace_fn_t<T> val) {
-        if constexpr(std::is_same_v<T, std::string_view>)   {
-            return std::string_view{val.data, val.len};
-        } else if constexpr(!std::is_same_v<T, as_ffi_t<T>>) {
-            return T::FromFFI(val);
-        }
-        else {
-            return val;
-        }
-    }
-
-    static Ret c_run_callback(const void *cb, replace_fn_t<Args>... args) {
-        return (*reinterpret_cast<const function_t *>(cb))(replace<Args>(args)...);
-    }
-
-    static void c_delete(const void *cb) {
-        delete reinterpret_cast<const function_t *>(cb);
-    }
-
-    fn_traits(function_t) {} // Allows less clunky construction (avoids decltype)
-};
-
-// additional deduction guide required
-template<class T>
-fn_traits(T) -> fn_traits<T>;
-
-} // namespace diplomat
-
-#endif
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.d.hpp
deleted file mode 100644
index 5c4a9fd6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.d.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef icu4x_AnyCalendarKind_D_HPP
-#define icu4x_AnyCalendarKind_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Locale; }
-class Locale;
-class AnyCalendarKind;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum AnyCalendarKind {
-      AnyCalendarKind_Iso = 0,
-      AnyCalendarKind_Gregorian = 1,
-      AnyCalendarKind_Buddhist = 2,
-      AnyCalendarKind_Japanese = 3,
-      AnyCalendarKind_JapaneseExtended = 4,
-      AnyCalendarKind_Ethiopian = 5,
-      AnyCalendarKind_EthiopianAmeteAlem = 6,
-      AnyCalendarKind_Indian = 7,
-      AnyCalendarKind_Coptic = 8,
-      AnyCalendarKind_Dangi = 9,
-      AnyCalendarKind_Chinese = 10,
-      AnyCalendarKind_Hebrew = 11,
-      AnyCalendarKind_IslamicCivil = 12,
-      AnyCalendarKind_IslamicObservational = 13,
-      AnyCalendarKind_IslamicTabular = 14,
-      AnyCalendarKind_IslamicUmmAlQura = 15,
-      AnyCalendarKind_Persian = 16,
-      AnyCalendarKind_Roc = 17,
-    };
-    
-    typedef struct AnyCalendarKind_option {union { AnyCalendarKind ok; }; bool is_ok; } AnyCalendarKind_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class AnyCalendarKind {
-public:
-  enum Value {
-    Iso = 0,
-    Gregorian = 1,
-    Buddhist = 2,
-    Japanese = 3,
-    JapaneseExtended = 4,
-    Ethiopian = 5,
-    EthiopianAmeteAlem = 6,
-    Indian = 7,
-    Coptic = 8,
-    Dangi = 9,
-    Chinese = 10,
-    Hebrew = 11,
-    IslamicCivil = 12,
-    IslamicObservational = 13,
-    IslamicTabular = 14,
-    IslamicUmmAlQura = 15,
-    Persian = 16,
-    Roc = 17,
-  };
-
-  AnyCalendarKind() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr AnyCalendarKind(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static std::optional<icu4x::AnyCalendarKind> get_for_locale(const icu4x::Locale& locale);
-
-  inline static std::optional<icu4x::AnyCalendarKind> get_for_bcp47(std::string_view s);
-
-  inline std::string bcp47();
-
-  inline icu4x::capi::AnyCalendarKind AsFFI() const;
-  inline static icu4x::AnyCalendarKind FromFFI(icu4x::capi::AnyCalendarKind c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_AnyCalendarKind_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.hpp
deleted file mode 100644
index dea86bc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/AnyCalendarKind.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef icu4x_AnyCalendarKind_HPP
-#define icu4x_AnyCalendarKind_HPP
-
-#include "AnyCalendarKind.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_AnyCalendarKind_get_for_locale_mv1_result {union {icu4x::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_locale_mv1_result;
-    icu4x_AnyCalendarKind_get_for_locale_mv1_result icu4x_AnyCalendarKind_get_for_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_AnyCalendarKind_get_for_bcp47_mv1_result {union {icu4x::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_bcp47_mv1_result;
-    icu4x_AnyCalendarKind_get_for_bcp47_mv1_result icu4x_AnyCalendarKind_get_for_bcp47_mv1(diplomat::capi::DiplomatStringView s);
-    
-    void icu4x_AnyCalendarKind_bcp47_mv1(icu4x::capi::AnyCalendarKind self, diplomat::capi::DiplomatWrite* write);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::AnyCalendarKind icu4x::AnyCalendarKind::AsFFI() const {
-  return static_cast<icu4x::capi::AnyCalendarKind>(value);
-}
-
-inline icu4x::AnyCalendarKind icu4x::AnyCalendarKind::FromFFI(icu4x::capi::AnyCalendarKind c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::AnyCalendarKind_Iso:
-    case icu4x::capi::AnyCalendarKind_Gregorian:
-    case icu4x::capi::AnyCalendarKind_Buddhist:
-    case icu4x::capi::AnyCalendarKind_Japanese:
-    case icu4x::capi::AnyCalendarKind_JapaneseExtended:
-    case icu4x::capi::AnyCalendarKind_Ethiopian:
-    case icu4x::capi::AnyCalendarKind_EthiopianAmeteAlem:
-    case icu4x::capi::AnyCalendarKind_Indian:
-    case icu4x::capi::AnyCalendarKind_Coptic:
-    case icu4x::capi::AnyCalendarKind_Dangi:
-    case icu4x::capi::AnyCalendarKind_Chinese:
-    case icu4x::capi::AnyCalendarKind_Hebrew:
-    case icu4x::capi::AnyCalendarKind_IslamicCivil:
-    case icu4x::capi::AnyCalendarKind_IslamicObservational:
-    case icu4x::capi::AnyCalendarKind_IslamicTabular:
-    case icu4x::capi::AnyCalendarKind_IslamicUmmAlQura:
-    case icu4x::capi::AnyCalendarKind_Persian:
-    case icu4x::capi::AnyCalendarKind_Roc:
-      return static_cast<icu4x::AnyCalendarKind::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline std::optional<icu4x::AnyCalendarKind> icu4x::AnyCalendarKind::get_for_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_AnyCalendarKind_get_for_locale_mv1(locale.AsFFI());
-  return result.is_ok ? std::optional<icu4x::AnyCalendarKind>(icu4x::AnyCalendarKind::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline std::optional<icu4x::AnyCalendarKind> icu4x::AnyCalendarKind::get_for_bcp47(std::string_view s) {
-  auto result = icu4x::capi::icu4x_AnyCalendarKind_get_for_bcp47_mv1({s.data(), s.size()});
-  return result.is_ok ? std::optional<icu4x::AnyCalendarKind>(icu4x::AnyCalendarKind::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline std::string icu4x::AnyCalendarKind::bcp47() {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_AnyCalendarKind_bcp47_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-#endif // icu4x_AnyCalendarKind_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.d.hpp
deleted file mode 100644
index 76023527..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_Bidi_D_HPP
-#define icu4x_Bidi_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Bidi; }
-class Bidi;
-namespace capi { struct BidiInfo; }
-class BidiInfo;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct ReorderedIndexMap; }
-class ReorderedIndexMap;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Bidi;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Bidi {
-public:
-
-  inline static std::unique_ptr<icu4x::Bidi> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::unique_ptr<icu4x::BidiInfo> for_text(std::string_view text, std::optional<uint8_t> default_level) const;
-
-  inline std::unique_ptr<icu4x::ReorderedIndexMap> reorder_visual(diplomat::span<const uint8_t> levels) const;
-
-  inline static bool level_is_rtl(uint8_t level);
-
-  inline static bool level_is_ltr(uint8_t level);
-
-  inline static uint8_t level_rtl();
-
-  inline static uint8_t level_ltr();
-
-  inline const icu4x::capi::Bidi* AsFFI() const;
-  inline icu4x::capi::Bidi* AsFFI();
-  inline static const icu4x::Bidi* FromFFI(const icu4x::capi::Bidi* ptr);
-  inline static icu4x::Bidi* FromFFI(icu4x::capi::Bidi* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Bidi() = delete;
-  Bidi(const icu4x::Bidi&) = delete;
-  Bidi(icu4x::Bidi&&) noexcept = delete;
-  Bidi operator=(const icu4x::Bidi&) = delete;
-  Bidi operator=(icu4x::Bidi&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Bidi_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.hpp
deleted file mode 100644
index f7b0472..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Bidi.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef icu4x_Bidi_HPP
-#define icu4x_Bidi_HPP
-
-#include "Bidi.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "BidiInfo.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "ReorderedIndexMap.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::Bidi* icu4x_Bidi_create_mv1(void);
-    
-    typedef struct icu4x_Bidi_create_with_provider_mv1_result {union {icu4x::capi::Bidi* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Bidi_create_with_provider_mv1_result;
-    icu4x_Bidi_create_with_provider_mv1_result icu4x_Bidi_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::BidiInfo* icu4x_Bidi_for_text_utf8_mv1(const icu4x::capi::Bidi* self, diplomat::capi::DiplomatStringView text, diplomat::capi::OptionU8 default_level);
-    
-    icu4x::capi::ReorderedIndexMap* icu4x_Bidi_reorder_visual_mv1(const icu4x::capi::Bidi* self, diplomat::capi::DiplomatU8View levels);
-    
-    bool icu4x_Bidi_level_is_rtl_mv1(uint8_t level);
-    
-    bool icu4x_Bidi_level_is_ltr_mv1(uint8_t level);
-    
-    uint8_t icu4x_Bidi_level_rtl_mv1(void);
-    
-    uint8_t icu4x_Bidi_level_ltr_mv1(void);
-    
-    
-    void icu4x_Bidi_destroy_mv1(Bidi* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::Bidi> icu4x::Bidi::create() {
-  auto result = icu4x::capi::icu4x_Bidi_create_mv1();
-  return std::unique_ptr<icu4x::Bidi>(icu4x::Bidi::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError> icu4x::Bidi::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_Bidi_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Bidi>>(std::unique_ptr<icu4x::Bidi>(icu4x::Bidi::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::BidiInfo> icu4x::Bidi::for_text(std::string_view text, std::optional<uint8_t> default_level) const {
-  auto result = icu4x::capi::icu4x_Bidi_for_text_utf8_mv1(this->AsFFI(),
-    {text.data(), text.size()},
-    default_level.has_value() ? (diplomat::capi::OptionU8{ { default_level.value() }, true }) : (diplomat::capi::OptionU8{ {}, false }));
-  return std::unique_ptr<icu4x::BidiInfo>(icu4x::BidiInfo::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::ReorderedIndexMap> icu4x::Bidi::reorder_visual(diplomat::span<const uint8_t> levels) const {
-  auto result = icu4x::capi::icu4x_Bidi_reorder_visual_mv1(this->AsFFI(),
-    {levels.data(), levels.size()});
-  return std::unique_ptr<icu4x::ReorderedIndexMap>(icu4x::ReorderedIndexMap::FromFFI(result));
-}
-
-inline bool icu4x::Bidi::level_is_rtl(uint8_t level) {
-  auto result = icu4x::capi::icu4x_Bidi_level_is_rtl_mv1(level);
-  return result;
-}
-
-inline bool icu4x::Bidi::level_is_ltr(uint8_t level) {
-  auto result = icu4x::capi::icu4x_Bidi_level_is_ltr_mv1(level);
-  return result;
-}
-
-inline uint8_t icu4x::Bidi::level_rtl() {
-  auto result = icu4x::capi::icu4x_Bidi_level_rtl_mv1();
-  return result;
-}
-
-inline uint8_t icu4x::Bidi::level_ltr() {
-  auto result = icu4x::capi::icu4x_Bidi_level_ltr_mv1();
-  return result;
-}
-
-inline const icu4x::capi::Bidi* icu4x::Bidi::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Bidi*>(this);
-}
-
-inline icu4x::capi::Bidi* icu4x::Bidi::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Bidi*>(this);
-}
-
-inline const icu4x::Bidi* icu4x::Bidi::FromFFI(const icu4x::capi::Bidi* ptr) {
-  return reinterpret_cast<const icu4x::Bidi*>(ptr);
-}
-
-inline icu4x::Bidi* icu4x::Bidi::FromFFI(icu4x::capi::Bidi* ptr) {
-  return reinterpret_cast<icu4x::Bidi*>(ptr);
-}
-
-inline void icu4x::Bidi::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Bidi_destroy_mv1(reinterpret_cast<icu4x::capi::Bidi*>(ptr));
-}
-
-
-#endif // icu4x_Bidi_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.d.hpp
deleted file mode 100644
index 7e666f7b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.d.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef icu4x_BidiClass_D_HPP
-#define icu4x_BidiClass_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class BidiClass;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum BidiClass {
-      BidiClass_LeftToRight = 0,
-      BidiClass_RightToLeft = 1,
-      BidiClass_EuropeanNumber = 2,
-      BidiClass_EuropeanSeparator = 3,
-      BidiClass_EuropeanTerminator = 4,
-      BidiClass_ArabicNumber = 5,
-      BidiClass_CommonSeparator = 6,
-      BidiClass_ParagraphSeparator = 7,
-      BidiClass_SegmentSeparator = 8,
-      BidiClass_WhiteSpace = 9,
-      BidiClass_OtherNeutral = 10,
-      BidiClass_LeftToRightEmbedding = 11,
-      BidiClass_LeftToRightOverride = 12,
-      BidiClass_ArabicLetter = 13,
-      BidiClass_RightToLeftEmbedding = 14,
-      BidiClass_RightToLeftOverride = 15,
-      BidiClass_PopDirectionalFormat = 16,
-      BidiClass_NonspacingMark = 17,
-      BidiClass_BoundaryNeutral = 18,
-      BidiClass_FirstStrongIsolate = 19,
-      BidiClass_LeftToRightIsolate = 20,
-      BidiClass_RightToLeftIsolate = 21,
-      BidiClass_PopDirectionalIsolate = 22,
-    };
-    
-    typedef struct BidiClass_option {union { BidiClass ok; }; bool is_ok; } BidiClass_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class BidiClass {
-public:
-  enum Value {
-    LeftToRight = 0,
-    RightToLeft = 1,
-    EuropeanNumber = 2,
-    EuropeanSeparator = 3,
-    EuropeanTerminator = 4,
-    ArabicNumber = 5,
-    CommonSeparator = 6,
-    ParagraphSeparator = 7,
-    SegmentSeparator = 8,
-    WhiteSpace = 9,
-    OtherNeutral = 10,
-    LeftToRightEmbedding = 11,
-    LeftToRightOverride = 12,
-    ArabicLetter = 13,
-    RightToLeftEmbedding = 14,
-    RightToLeftOverride = 15,
-    PopDirectionalFormat = 16,
-    NonspacingMark = 17,
-    BoundaryNeutral = 18,
-    FirstStrongIsolate = 19,
-    LeftToRightIsolate = 20,
-    RightToLeftIsolate = 21,
-    PopDirectionalIsolate = 22,
-  };
-
-  BidiClass() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr BidiClass(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::BidiClass for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::BidiClass> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::BidiClass AsFFI() const;
-  inline static icu4x::BidiClass FromFFI(icu4x::capi::BidiClass c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_BidiClass_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.hpp
deleted file mode 100644
index 0e56d33d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiClass.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef icu4x_BidiClass_HPP
-#define icu4x_BidiClass_HPP
-
-#include "BidiClass.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::BidiClass icu4x_BidiClass_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_BidiClass_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_long_name_mv1_result;
-    icu4x_BidiClass_long_name_mv1_result icu4x_BidiClass_long_name_mv1(icu4x::capi::BidiClass self);
-    
-    typedef struct icu4x_BidiClass_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_short_name_mv1_result;
-    icu4x_BidiClass_short_name_mv1_result icu4x_BidiClass_short_name_mv1(icu4x::capi::BidiClass self);
-    
-    uint8_t icu4x_BidiClass_to_integer_value_mv1(icu4x::capi::BidiClass self);
-    
-    typedef struct icu4x_BidiClass_from_integer_value_mv1_result {union {icu4x::capi::BidiClass ok; }; bool is_ok;} icu4x_BidiClass_from_integer_value_mv1_result;
-    icu4x_BidiClass_from_integer_value_mv1_result icu4x_BidiClass_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::BidiClass icu4x::BidiClass::AsFFI() const {
-  return static_cast<icu4x::capi::BidiClass>(value);
-}
-
-inline icu4x::BidiClass icu4x::BidiClass::FromFFI(icu4x::capi::BidiClass c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::BidiClass_LeftToRight:
-    case icu4x::capi::BidiClass_RightToLeft:
-    case icu4x::capi::BidiClass_EuropeanNumber:
-    case icu4x::capi::BidiClass_EuropeanSeparator:
-    case icu4x::capi::BidiClass_EuropeanTerminator:
-    case icu4x::capi::BidiClass_ArabicNumber:
-    case icu4x::capi::BidiClass_CommonSeparator:
-    case icu4x::capi::BidiClass_ParagraphSeparator:
-    case icu4x::capi::BidiClass_SegmentSeparator:
-    case icu4x::capi::BidiClass_WhiteSpace:
-    case icu4x::capi::BidiClass_OtherNeutral:
-    case icu4x::capi::BidiClass_LeftToRightEmbedding:
-    case icu4x::capi::BidiClass_LeftToRightOverride:
-    case icu4x::capi::BidiClass_ArabicLetter:
-    case icu4x::capi::BidiClass_RightToLeftEmbedding:
-    case icu4x::capi::BidiClass_RightToLeftOverride:
-    case icu4x::capi::BidiClass_PopDirectionalFormat:
-    case icu4x::capi::BidiClass_NonspacingMark:
-    case icu4x::capi::BidiClass_BoundaryNeutral:
-    case icu4x::capi::BidiClass_FirstStrongIsolate:
-    case icu4x::capi::BidiClass_LeftToRightIsolate:
-    case icu4x::capi::BidiClass_RightToLeftIsolate:
-    case icu4x::capi::BidiClass_PopDirectionalIsolate:
-      return static_cast<icu4x::BidiClass::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::BidiClass icu4x::BidiClass::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_BidiClass_for_char_mv1(ch);
-  return icu4x::BidiClass::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::BidiClass::long_name() {
-  auto result = icu4x::capi::icu4x_BidiClass_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::BidiClass::short_name() {
-  auto result = icu4x::capi::icu4x_BidiClass_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::BidiClass::to_integer_value() {
-  auto result = icu4x::capi::icu4x_BidiClass_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::BidiClass> icu4x::BidiClass::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_BidiClass_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::BidiClass>(icu4x::BidiClass::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_BidiClass_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.d.hpp
deleted file mode 100644
index 899e13a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_BidiDirection_D_HPP
-#define icu4x_BidiDirection_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum BidiDirection {
-      BidiDirection_Ltr = 0,
-      BidiDirection_Rtl = 1,
-      BidiDirection_Mixed = 2,
-    };
-    
-    typedef struct BidiDirection_option {union { BidiDirection ok; }; bool is_ok; } BidiDirection_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class BidiDirection {
-public:
-  enum Value {
-    Ltr = 0,
-    Rtl = 1,
-    Mixed = 2,
-  };
-
-  BidiDirection() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr BidiDirection(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::BidiDirection AsFFI() const;
-  inline static icu4x::BidiDirection FromFFI(icu4x::capi::BidiDirection c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_BidiDirection_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.hpp
deleted file mode 100644
index 81e126d8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiDirection.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_BidiDirection_HPP
-#define icu4x_BidiDirection_HPP
-
-#include "BidiDirection.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::BidiDirection icu4x::BidiDirection::AsFFI() const {
-  return static_cast<icu4x::capi::BidiDirection>(value);
-}
-
-inline icu4x::BidiDirection icu4x::BidiDirection::FromFFI(icu4x::capi::BidiDirection c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::BidiDirection_Ltr:
-    case icu4x::capi::BidiDirection_Rtl:
-    case icu4x::capi::BidiDirection_Mixed:
-      return static_cast<icu4x::BidiDirection::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_BidiDirection_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.d.hpp
deleted file mode 100644
index 0ad7c8b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.d.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef icu4x_BidiInfo_D_HPP
-#define icu4x_BidiInfo_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct BidiParagraph; }
-class BidiParagraph;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct BidiInfo;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class BidiInfo {
-public:
-
-  inline size_t paragraph_count() const;
-
-  inline std::unique_ptr<icu4x::BidiParagraph> paragraph_at(size_t n) const;
-
-  inline size_t size() const;
-
-  inline uint8_t level_at(size_t pos) const;
-
-  inline const icu4x::capi::BidiInfo* AsFFI() const;
-  inline icu4x::capi::BidiInfo* AsFFI();
-  inline static const icu4x::BidiInfo* FromFFI(const icu4x::capi::BidiInfo* ptr);
-  inline static icu4x::BidiInfo* FromFFI(icu4x::capi::BidiInfo* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  BidiInfo() = delete;
-  BidiInfo(const icu4x::BidiInfo&) = delete;
-  BidiInfo(icu4x::BidiInfo&&) noexcept = delete;
-  BidiInfo operator=(const icu4x::BidiInfo&) = delete;
-  BidiInfo operator=(icu4x::BidiInfo&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_BidiInfo_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.hpp
deleted file mode 100644
index 7ee6df27..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiInfo.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef icu4x_BidiInfo_HPP
-#define icu4x_BidiInfo_HPP
-
-#include "BidiInfo.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "BidiParagraph.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    size_t icu4x_BidiInfo_paragraph_count_mv1(const icu4x::capi::BidiInfo* self);
-    
-    icu4x::capi::BidiParagraph* icu4x_BidiInfo_paragraph_at_mv1(const icu4x::capi::BidiInfo* self, size_t n);
-    
-    size_t icu4x_BidiInfo_size_mv1(const icu4x::capi::BidiInfo* self);
-    
-    uint8_t icu4x_BidiInfo_level_at_mv1(const icu4x::capi::BidiInfo* self, size_t pos);
-    
-    
-    void icu4x_BidiInfo_destroy_mv1(BidiInfo* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline size_t icu4x::BidiInfo::paragraph_count() const {
-  auto result = icu4x::capi::icu4x_BidiInfo_paragraph_count_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::unique_ptr<icu4x::BidiParagraph> icu4x::BidiInfo::paragraph_at(size_t n) const {
-  auto result = icu4x::capi::icu4x_BidiInfo_paragraph_at_mv1(this->AsFFI(),
-    n);
-  return std::unique_ptr<icu4x::BidiParagraph>(icu4x::BidiParagraph::FromFFI(result));
-}
-
-inline size_t icu4x::BidiInfo::size() const {
-  auto result = icu4x::capi::icu4x_BidiInfo_size_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::BidiInfo::level_at(size_t pos) const {
-  auto result = icu4x::capi::icu4x_BidiInfo_level_at_mv1(this->AsFFI(),
-    pos);
-  return result;
-}
-
-inline const icu4x::capi::BidiInfo* icu4x::BidiInfo::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::BidiInfo*>(this);
-}
-
-inline icu4x::capi::BidiInfo* icu4x::BidiInfo::AsFFI() {
-  return reinterpret_cast<icu4x::capi::BidiInfo*>(this);
-}
-
-inline const icu4x::BidiInfo* icu4x::BidiInfo::FromFFI(const icu4x::capi::BidiInfo* ptr) {
-  return reinterpret_cast<const icu4x::BidiInfo*>(ptr);
-}
-
-inline icu4x::BidiInfo* icu4x::BidiInfo::FromFFI(icu4x::capi::BidiInfo* ptr) {
-  return reinterpret_cast<icu4x::BidiInfo*>(ptr);
-}
-
-inline void icu4x::BidiInfo::operator delete(void* ptr) {
-  icu4x::capi::icu4x_BidiInfo_destroy_mv1(reinterpret_cast<icu4x::capi::BidiInfo*>(ptr));
-}
-
-
-#endif // icu4x_BidiInfo_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.d.hpp
deleted file mode 100644
index 4cd85b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_BidiMirroringGlyph_D_HPP
-#define icu4x_BidiMirroringGlyph_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "BidiPairedBracketType.d.hpp"
-
-namespace icu4x {
-struct BidiMirroringGlyph;
-class BidiPairedBracketType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct BidiMirroringGlyph {
-      diplomat::capi::OptionChar mirroring_glyph;
-      bool mirrored;
-      icu4x::capi::BidiPairedBracketType paired_bracket_type;
-    };
-    
-    typedef struct BidiMirroringGlyph_option {union { BidiMirroringGlyph ok; }; bool is_ok; } BidiMirroringGlyph_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct BidiMirroringGlyph {
-  std::optional<char32_t> mirroring_glyph;
-  bool mirrored;
-  icu4x::BidiPairedBracketType paired_bracket_type;
-
-  inline static icu4x::BidiMirroringGlyph for_char(char32_t ch);
-
-  inline icu4x::capi::BidiMirroringGlyph AsFFI() const;
-  inline static icu4x::BidiMirroringGlyph FromFFI(icu4x::capi::BidiMirroringGlyph c_struct);
-};
-
-} // namespace
-#endif // icu4x_BidiMirroringGlyph_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.hpp
deleted file mode 100644
index 2e7257b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiMirroringGlyph.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_BidiMirroringGlyph_HPP
-#define icu4x_BidiMirroringGlyph_HPP
-
-#include "BidiMirroringGlyph.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "BidiPairedBracketType.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::BidiMirroringGlyph icu4x_BidiMirroringGlyph_for_char_mv1(char32_t ch);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::BidiMirroringGlyph icu4x::BidiMirroringGlyph::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_BidiMirroringGlyph_for_char_mv1(ch);
-  return icu4x::BidiMirroringGlyph::FromFFI(result);
-}
-
-
-inline icu4x::capi::BidiMirroringGlyph icu4x::BidiMirroringGlyph::AsFFI() const {
-  return icu4x::capi::BidiMirroringGlyph {
-    /* .mirroring_glyph = */ mirroring_glyph.has_value() ? (diplomat::capi::OptionChar{ { mirroring_glyph.value() }, true }) : (diplomat::capi::OptionChar{ {}, false }),
-    /* .mirrored = */ mirrored,
-    /* .paired_bracket_type = */ paired_bracket_type.AsFFI(),
-  };
-}
-
-inline icu4x::BidiMirroringGlyph icu4x::BidiMirroringGlyph::FromFFI(icu4x::capi::BidiMirroringGlyph c_struct) {
-  return icu4x::BidiMirroringGlyph {
-    /* .mirroring_glyph = */ c_struct.mirroring_glyph.is_ok ? std::optional(c_struct.mirroring_glyph.ok) : std::nullopt,
-    /* .mirrored = */ c_struct.mirrored,
-    /* .paired_bracket_type = */ icu4x::BidiPairedBracketType::FromFFI(c_struct.paired_bracket_type),
-  };
-}
-
-
-#endif // icu4x_BidiMirroringGlyph_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.d.hpp
deleted file mode 100644
index 577dde76..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_BidiPairedBracketType_D_HPP
-#define icu4x_BidiPairedBracketType_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum BidiPairedBracketType {
-      BidiPairedBracketType_Open = 0,
-      BidiPairedBracketType_Close = 1,
-      BidiPairedBracketType_None = 2,
-    };
-    
-    typedef struct BidiPairedBracketType_option {union { BidiPairedBracketType ok; }; bool is_ok; } BidiPairedBracketType_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class BidiPairedBracketType {
-public:
-  enum Value {
-    Open = 0,
-    Close = 1,
-    None = 2,
-  };
-
-  BidiPairedBracketType() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr BidiPairedBracketType(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::BidiPairedBracketType AsFFI() const;
-  inline static icu4x::BidiPairedBracketType FromFFI(icu4x::capi::BidiPairedBracketType c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_BidiPairedBracketType_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.hpp
deleted file mode 100644
index 5e23c42..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiPairedBracketType.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_BidiPairedBracketType_HPP
-#define icu4x_BidiPairedBracketType_HPP
-
-#include "BidiPairedBracketType.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::BidiPairedBracketType icu4x::BidiPairedBracketType::AsFFI() const {
-  return static_cast<icu4x::capi::BidiPairedBracketType>(value);
-}
-
-inline icu4x::BidiPairedBracketType icu4x::BidiPairedBracketType::FromFFI(icu4x::capi::BidiPairedBracketType c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::BidiPairedBracketType_Open:
-    case icu4x::capi::BidiPairedBracketType_Close:
-    case icu4x::capi::BidiPairedBracketType_None:
-      return static_cast<icu4x::BidiPairedBracketType::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_BidiPairedBracketType_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.d.hpp
deleted file mode 100644
index bb79d125..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.d.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_BidiParagraph_D_HPP
-#define icu4x_BidiParagraph_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class BidiDirection;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct BidiParagraph;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class BidiParagraph {
-public:
-
-  inline bool set_paragraph_in_text(size_t n);
-
-  inline icu4x::BidiDirection direction() const;
-
-  inline size_t size() const;
-
-  inline size_t range_start() const;
-
-  inline size_t range_end() const;
-
-  inline std::optional<std::string> reorder_line(size_t range_start, size_t range_end) const;
-
-  inline uint8_t level_at(size_t pos) const;
-
-  inline const icu4x::capi::BidiParagraph* AsFFI() const;
-  inline icu4x::capi::BidiParagraph* AsFFI();
-  inline static const icu4x::BidiParagraph* FromFFI(const icu4x::capi::BidiParagraph* ptr);
-  inline static icu4x::BidiParagraph* FromFFI(icu4x::capi::BidiParagraph* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  BidiParagraph() = delete;
-  BidiParagraph(const icu4x::BidiParagraph&) = delete;
-  BidiParagraph(icu4x::BidiParagraph&&) noexcept = delete;
-  BidiParagraph operator=(const icu4x::BidiParagraph&) = delete;
-  BidiParagraph operator=(icu4x::BidiParagraph&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_BidiParagraph_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.hpp
deleted file mode 100644
index 40485f48..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/BidiParagraph.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef icu4x_BidiParagraph_HPP
-#define icu4x_BidiParagraph_HPP
-
-#include "BidiParagraph.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "BidiDirection.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_BidiParagraph_set_paragraph_in_text_mv1(icu4x::capi::BidiParagraph* self, size_t n);
-    
-    icu4x::capi::BidiDirection icu4x_BidiParagraph_direction_mv1(const icu4x::capi::BidiParagraph* self);
-    
-    size_t icu4x_BidiParagraph_size_mv1(const icu4x::capi::BidiParagraph* self);
-    
-    size_t icu4x_BidiParagraph_range_start_mv1(const icu4x::capi::BidiParagraph* self);
-    
-    size_t icu4x_BidiParagraph_range_end_mv1(const icu4x::capi::BidiParagraph* self);
-    
-    typedef struct icu4x_BidiParagraph_reorder_line_mv1_result { bool is_ok;} icu4x_BidiParagraph_reorder_line_mv1_result;
-    icu4x_BidiParagraph_reorder_line_mv1_result icu4x_BidiParagraph_reorder_line_mv1(const icu4x::capi::BidiParagraph* self, size_t range_start, size_t range_end, diplomat::capi::DiplomatWrite* write);
-    
-    uint8_t icu4x_BidiParagraph_level_at_mv1(const icu4x::capi::BidiParagraph* self, size_t pos);
-    
-    
-    void icu4x_BidiParagraph_destroy_mv1(BidiParagraph* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::BidiParagraph::set_paragraph_in_text(size_t n) {
-  auto result = icu4x::capi::icu4x_BidiParagraph_set_paragraph_in_text_mv1(this->AsFFI(),
-    n);
-  return result;
-}
-
-inline icu4x::BidiDirection icu4x::BidiParagraph::direction() const {
-  auto result = icu4x::capi::icu4x_BidiParagraph_direction_mv1(this->AsFFI());
-  return icu4x::BidiDirection::FromFFI(result);
-}
-
-inline size_t icu4x::BidiParagraph::size() const {
-  auto result = icu4x::capi::icu4x_BidiParagraph_size_mv1(this->AsFFI());
-  return result;
-}
-
-inline size_t icu4x::BidiParagraph::range_start() const {
-  auto result = icu4x::capi::icu4x_BidiParagraph_range_start_mv1(this->AsFFI());
-  return result;
-}
-
-inline size_t icu4x::BidiParagraph::range_end() const {
-  auto result = icu4x::capi::icu4x_BidiParagraph_range_end_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<std::string> icu4x::BidiParagraph::reorder_line(size_t range_start, size_t range_end) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_BidiParagraph_reorder_line_mv1(this->AsFFI(),
-    range_start,
-    range_end,
-    &write);
-  return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
-}
-
-inline uint8_t icu4x::BidiParagraph::level_at(size_t pos) const {
-  auto result = icu4x::capi::icu4x_BidiParagraph_level_at_mv1(this->AsFFI(),
-    pos);
-  return result;
-}
-
-inline const icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::BidiParagraph*>(this);
-}
-
-inline icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() {
-  return reinterpret_cast<icu4x::capi::BidiParagraph*>(this);
-}
-
-inline const icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(const icu4x::capi::BidiParagraph* ptr) {
-  return reinterpret_cast<const icu4x::BidiParagraph*>(ptr);
-}
-
-inline icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(icu4x::capi::BidiParagraph* ptr) {
-  return reinterpret_cast<icu4x::BidiParagraph*>(ptr);
-}
-
-inline void icu4x::BidiParagraph::operator delete(void* ptr) {
-  icu4x::capi::icu4x_BidiParagraph_destroy_mv1(reinterpret_cast<icu4x::capi::BidiParagraph*>(ptr));
-}
-
-
-#endif // icu4x_BidiParagraph_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.d.hpp
deleted file mode 100644
index c4eb415e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.d.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef icu4x_Calendar_D_HPP
-#define icu4x_Calendar_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-class AnyCalendarKind;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Calendar;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Calendar {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_locale(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_kind(icu4x::AnyCalendarKind kind);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_locale_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_kind_with_provider(const icu4x::DataProvider& provider, icu4x::AnyCalendarKind kind);
-
-  inline icu4x::AnyCalendarKind kind() const;
-
-  inline const icu4x::capi::Calendar* AsFFI() const;
-  inline icu4x::capi::Calendar* AsFFI();
-  inline static const icu4x::Calendar* FromFFI(const icu4x::capi::Calendar* ptr);
-  inline static icu4x::Calendar* FromFFI(icu4x::capi::Calendar* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Calendar() = delete;
-  Calendar(const icu4x::Calendar&) = delete;
-  Calendar(icu4x::Calendar&&) noexcept = delete;
-  Calendar operator=(const icu4x::Calendar&) = delete;
-  Calendar operator=(icu4x::Calendar&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Calendar_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.hpp
deleted file mode 100644
index 4180887..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Calendar.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef icu4x_Calendar_HPP
-#define icu4x_Calendar_HPP
-
-#include "Calendar.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "AnyCalendarKind.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_Calendar_create_for_locale_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_mv1_result;
-    icu4x_Calendar_create_for_locale_mv1_result icu4x_Calendar_create_for_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_Calendar_create_for_kind_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_mv1_result;
-    icu4x_Calendar_create_for_kind_mv1_result icu4x_Calendar_create_for_kind_mv1(icu4x::capi::AnyCalendarKind kind);
-    
-    typedef struct icu4x_Calendar_create_for_locale_with_provider_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_with_provider_mv1_result;
-    icu4x_Calendar_create_for_locale_with_provider_mv1_result icu4x_Calendar_create_for_locale_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_Calendar_create_for_kind_with_provider_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_with_provider_mv1_result;
-    icu4x_Calendar_create_for_kind_with_provider_mv1_result icu4x_Calendar_create_for_kind_with_provider_mv1(const icu4x::capi::DataProvider* provider, icu4x::capi::AnyCalendarKind kind);
-    
-    icu4x::capi::AnyCalendarKind icu4x_Calendar_kind_mv1(const icu4x::capi::Calendar* self);
-    
-    
-    void icu4x_Calendar_destroy_mv1(Calendar* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_Calendar_create_for_locale_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_kind(icu4x::AnyCalendarKind kind) {
-  auto result = icu4x::capi::icu4x_Calendar_create_for_kind_mv1(kind.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_locale_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_Calendar_create_for_locale_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_kind_with_provider(const icu4x::DataProvider& provider, icu4x::AnyCalendarKind kind) {
-  auto result = icu4x::capi::icu4x_Calendar_create_for_kind_with_provider_mv1(provider.AsFFI(),
-    kind.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::AnyCalendarKind icu4x::Calendar::kind() const {
-  auto result = icu4x::capi::icu4x_Calendar_kind_mv1(this->AsFFI());
-  return icu4x::AnyCalendarKind::FromFFI(result);
-}
-
-inline const icu4x::capi::Calendar* icu4x::Calendar::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Calendar*>(this);
-}
-
-inline icu4x::capi::Calendar* icu4x::Calendar::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Calendar*>(this);
-}
-
-inline const icu4x::Calendar* icu4x::Calendar::FromFFI(const icu4x::capi::Calendar* ptr) {
-  return reinterpret_cast<const icu4x::Calendar*>(ptr);
-}
-
-inline icu4x::Calendar* icu4x::Calendar::FromFFI(icu4x::capi::Calendar* ptr) {
-  return reinterpret_cast<icu4x::Calendar*>(ptr);
-}
-
-inline void icu4x::Calendar::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Calendar_destroy_mv1(reinterpret_cast<icu4x::capi::Calendar*>(ptr));
-}
-
-
-#endif // icu4x_Calendar_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.d.hpp
deleted file mode 100644
index 3b53370f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_CalendarError_D_HPP
-#define icu4x_CalendarError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CalendarError {
-      CalendarError_Unknown = 0,
-      CalendarError_OutOfRange = 1,
-      CalendarError_UnknownEra = 2,
-      CalendarError_UnknownMonthCode = 3,
-    };
-    
-    typedef struct CalendarError_option {union { CalendarError ok; }; bool is_ok; } CalendarError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CalendarError {
-public:
-  enum Value {
-    Unknown = 0,
-    OutOfRange = 1,
-    UnknownEra = 2,
-    UnknownMonthCode = 3,
-  };
-
-  CalendarError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CalendarError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CalendarError AsFFI() const;
-  inline static icu4x::CalendarError FromFFI(icu4x::capi::CalendarError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CalendarError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.hpp
deleted file mode 100644
index c124092a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarError.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_CalendarError_HPP
-#define icu4x_CalendarError_HPP
-
-#include "CalendarError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CalendarError icu4x::CalendarError::AsFFI() const {
-  return static_cast<icu4x::capi::CalendarError>(value);
-}
-
-inline icu4x::CalendarError icu4x::CalendarError::FromFFI(icu4x::capi::CalendarError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CalendarError_Unknown:
-    case icu4x::capi::CalendarError_OutOfRange:
-    case icu4x::capi::CalendarError_UnknownEra:
-    case icu4x::capi::CalendarError_UnknownMonthCode:
-      return static_cast<icu4x::CalendarError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CalendarError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.d.hpp
deleted file mode 100644
index d296341..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_CalendarParseError_D_HPP
-#define icu4x_CalendarParseError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CalendarParseError {
-      CalendarParseError_Unknown = 0,
-      CalendarParseError_InvalidSyntax = 1,
-      CalendarParseError_OutOfRange = 2,
-      CalendarParseError_MissingFields = 3,
-      CalendarParseError_UnknownCalendar = 4,
-    };
-    
-    typedef struct CalendarParseError_option {union { CalendarParseError ok; }; bool is_ok; } CalendarParseError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CalendarParseError {
-public:
-  enum Value {
-    Unknown = 0,
-    InvalidSyntax = 1,
-    OutOfRange = 2,
-    MissingFields = 3,
-    UnknownCalendar = 4,
-  };
-
-  CalendarParseError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CalendarParseError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CalendarParseError AsFFI() const;
-  inline static icu4x::CalendarParseError FromFFI(icu4x::capi::CalendarParseError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CalendarParseError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.hpp
deleted file mode 100644
index d640c698..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CalendarParseError.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_CalendarParseError_HPP
-#define icu4x_CalendarParseError_HPP
-
-#include "CalendarParseError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CalendarParseError icu4x::CalendarParseError::AsFFI() const {
-  return static_cast<icu4x::capi::CalendarParseError>(value);
-}
-
-inline icu4x::CalendarParseError icu4x::CalendarParseError::FromFFI(icu4x::capi::CalendarParseError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CalendarParseError_Unknown:
-    case icu4x::capi::CalendarParseError_InvalidSyntax:
-    case icu4x::capi::CalendarParseError_OutOfRange:
-    case icu4x::capi::CalendarParseError_MissingFields:
-    case icu4x::capi::CalendarParseError_UnknownCalendar:
-      return static_cast<icu4x::CalendarParseError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CalendarParseError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.d.hpp
deleted file mode 100644
index ffa17424..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.d.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef icu4x_CanonicalCombiningClass_D_HPP
-#define icu4x_CanonicalCombiningClass_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class CanonicalCombiningClass;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum CanonicalCombiningClass {
-      CanonicalCombiningClass_NotReordered = 0,
-      CanonicalCombiningClass_Overlay = 1,
-      CanonicalCombiningClass_HanReading = 6,
-      CanonicalCombiningClass_Nukta = 7,
-      CanonicalCombiningClass_KanaVoicing = 8,
-      CanonicalCombiningClass_Virama = 9,
-      CanonicalCombiningClass_CCC10 = 10,
-      CanonicalCombiningClass_CCC11 = 11,
-      CanonicalCombiningClass_CCC12 = 12,
-      CanonicalCombiningClass_CCC13 = 13,
-      CanonicalCombiningClass_CCC14 = 14,
-      CanonicalCombiningClass_CCC15 = 15,
-      CanonicalCombiningClass_CCC16 = 16,
-      CanonicalCombiningClass_CCC17 = 17,
-      CanonicalCombiningClass_CCC18 = 18,
-      CanonicalCombiningClass_CCC19 = 19,
-      CanonicalCombiningClass_CCC20 = 20,
-      CanonicalCombiningClass_CCC21 = 21,
-      CanonicalCombiningClass_CCC22 = 22,
-      CanonicalCombiningClass_CCC23 = 23,
-      CanonicalCombiningClass_CCC24 = 24,
-      CanonicalCombiningClass_CCC25 = 25,
-      CanonicalCombiningClass_CCC26 = 26,
-      CanonicalCombiningClass_CCC27 = 27,
-      CanonicalCombiningClass_CCC28 = 28,
-      CanonicalCombiningClass_CCC29 = 29,
-      CanonicalCombiningClass_CCC30 = 30,
-      CanonicalCombiningClass_CCC31 = 31,
-      CanonicalCombiningClass_CCC32 = 32,
-      CanonicalCombiningClass_CCC33 = 33,
-      CanonicalCombiningClass_CCC34 = 34,
-      CanonicalCombiningClass_CCC35 = 35,
-      CanonicalCombiningClass_CCC36 = 36,
-      CanonicalCombiningClass_CCC84 = 84,
-      CanonicalCombiningClass_CCC91 = 91,
-      CanonicalCombiningClass_CCC103 = 103,
-      CanonicalCombiningClass_CCC107 = 107,
-      CanonicalCombiningClass_CCC118 = 118,
-      CanonicalCombiningClass_CCC122 = 122,
-      CanonicalCombiningClass_CCC129 = 129,
-      CanonicalCombiningClass_CCC130 = 130,
-      CanonicalCombiningClass_CCC132 = 132,
-      CanonicalCombiningClass_CCC133 = 133,
-      CanonicalCombiningClass_AttachedBelowLeft = 200,
-      CanonicalCombiningClass_AttachedBelow = 202,
-      CanonicalCombiningClass_AttachedAbove = 214,
-      CanonicalCombiningClass_AttachedAboveRight = 216,
-      CanonicalCombiningClass_BelowLeft = 218,
-      CanonicalCombiningClass_Below = 220,
-      CanonicalCombiningClass_BelowRight = 222,
-      CanonicalCombiningClass_Left = 224,
-      CanonicalCombiningClass_Right = 226,
-      CanonicalCombiningClass_AboveLeft = 228,
-      CanonicalCombiningClass_Above = 230,
-      CanonicalCombiningClass_AboveRight = 232,
-      CanonicalCombiningClass_DoubleBelow = 233,
-      CanonicalCombiningClass_DoubleAbove = 234,
-      CanonicalCombiningClass_IotaSubscript = 240,
-    };
-    
-    typedef struct CanonicalCombiningClass_option {union { CanonicalCombiningClass ok; }; bool is_ok; } CanonicalCombiningClass_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CanonicalCombiningClass {
-public:
-  enum Value {
-    NotReordered = 0,
-    Overlay = 1,
-    HanReading = 6,
-    Nukta = 7,
-    KanaVoicing = 8,
-    Virama = 9,
-    CCC10 = 10,
-    CCC11 = 11,
-    CCC12 = 12,
-    CCC13 = 13,
-    CCC14 = 14,
-    CCC15 = 15,
-    CCC16 = 16,
-    CCC17 = 17,
-    CCC18 = 18,
-    CCC19 = 19,
-    CCC20 = 20,
-    CCC21 = 21,
-    CCC22 = 22,
-    CCC23 = 23,
-    CCC24 = 24,
-    CCC25 = 25,
-    CCC26 = 26,
-    CCC27 = 27,
-    CCC28 = 28,
-    CCC29 = 29,
-    CCC30 = 30,
-    CCC31 = 31,
-    CCC32 = 32,
-    CCC33 = 33,
-    CCC34 = 34,
-    CCC35 = 35,
-    CCC36 = 36,
-    CCC84 = 84,
-    CCC91 = 91,
-    CCC103 = 103,
-    CCC107 = 107,
-    CCC118 = 118,
-    CCC122 = 122,
-    CCC129 = 129,
-    CCC130 = 130,
-    CCC132 = 132,
-    CCC133 = 133,
-    AttachedBelowLeft = 200,
-    AttachedBelow = 202,
-    AttachedAbove = 214,
-    AttachedAboveRight = 216,
-    BelowLeft = 218,
-    Below = 220,
-    BelowRight = 222,
-    Left = 224,
-    Right = 226,
-    AboveLeft = 228,
-    Above = 230,
-    AboveRight = 232,
-    DoubleBelow = 233,
-    DoubleAbove = 234,
-    IotaSubscript = 240,
-  };
-
-  CanonicalCombiningClass() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CanonicalCombiningClass(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::CanonicalCombiningClass for_char(char32_t ch);
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::CanonicalCombiningClass> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::CanonicalCombiningClass AsFFI() const;
-  inline static icu4x::CanonicalCombiningClass FromFFI(icu4x::capi::CanonicalCombiningClass c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CanonicalCombiningClass_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.hpp
deleted file mode 100644
index b928a7b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClass.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef icu4x_CanonicalCombiningClass_HPP
-#define icu4x_CanonicalCombiningClass_HPP
-
-#include "CanonicalCombiningClass.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CanonicalCombiningClass icu4x_CanonicalCombiningClass_for_char_mv1(char32_t ch);
-    
-    uint8_t icu4x_CanonicalCombiningClass_to_integer_value_mv1(icu4x::capi::CanonicalCombiningClass self);
-    
-    typedef struct icu4x_CanonicalCombiningClass_from_integer_value_mv1_result {union {icu4x::capi::CanonicalCombiningClass ok; }; bool is_ok;} icu4x_CanonicalCombiningClass_from_integer_value_mv1_result;
-    icu4x_CanonicalCombiningClass_from_integer_value_mv1_result icu4x_CanonicalCombiningClass_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CanonicalCombiningClass icu4x::CanonicalCombiningClass::AsFFI() const {
-  return static_cast<icu4x::capi::CanonicalCombiningClass>(value);
-}
-
-inline icu4x::CanonicalCombiningClass icu4x::CanonicalCombiningClass::FromFFI(icu4x::capi::CanonicalCombiningClass c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CanonicalCombiningClass_NotReordered:
-    case icu4x::capi::CanonicalCombiningClass_Overlay:
-    case icu4x::capi::CanonicalCombiningClass_HanReading:
-    case icu4x::capi::CanonicalCombiningClass_Nukta:
-    case icu4x::capi::CanonicalCombiningClass_KanaVoicing:
-    case icu4x::capi::CanonicalCombiningClass_Virama:
-    case icu4x::capi::CanonicalCombiningClass_CCC10:
-    case icu4x::capi::CanonicalCombiningClass_CCC11:
-    case icu4x::capi::CanonicalCombiningClass_CCC12:
-    case icu4x::capi::CanonicalCombiningClass_CCC13:
-    case icu4x::capi::CanonicalCombiningClass_CCC14:
-    case icu4x::capi::CanonicalCombiningClass_CCC15:
-    case icu4x::capi::CanonicalCombiningClass_CCC16:
-    case icu4x::capi::CanonicalCombiningClass_CCC17:
-    case icu4x::capi::CanonicalCombiningClass_CCC18:
-    case icu4x::capi::CanonicalCombiningClass_CCC19:
-    case icu4x::capi::CanonicalCombiningClass_CCC20:
-    case icu4x::capi::CanonicalCombiningClass_CCC21:
-    case icu4x::capi::CanonicalCombiningClass_CCC22:
-    case icu4x::capi::CanonicalCombiningClass_CCC23:
-    case icu4x::capi::CanonicalCombiningClass_CCC24:
-    case icu4x::capi::CanonicalCombiningClass_CCC25:
-    case icu4x::capi::CanonicalCombiningClass_CCC26:
-    case icu4x::capi::CanonicalCombiningClass_CCC27:
-    case icu4x::capi::CanonicalCombiningClass_CCC28:
-    case icu4x::capi::CanonicalCombiningClass_CCC29:
-    case icu4x::capi::CanonicalCombiningClass_CCC30:
-    case icu4x::capi::CanonicalCombiningClass_CCC31:
-    case icu4x::capi::CanonicalCombiningClass_CCC32:
-    case icu4x::capi::CanonicalCombiningClass_CCC33:
-    case icu4x::capi::CanonicalCombiningClass_CCC34:
-    case icu4x::capi::CanonicalCombiningClass_CCC35:
-    case icu4x::capi::CanonicalCombiningClass_CCC36:
-    case icu4x::capi::CanonicalCombiningClass_CCC84:
-    case icu4x::capi::CanonicalCombiningClass_CCC91:
-    case icu4x::capi::CanonicalCombiningClass_CCC103:
-    case icu4x::capi::CanonicalCombiningClass_CCC107:
-    case icu4x::capi::CanonicalCombiningClass_CCC118:
-    case icu4x::capi::CanonicalCombiningClass_CCC122:
-    case icu4x::capi::CanonicalCombiningClass_CCC129:
-    case icu4x::capi::CanonicalCombiningClass_CCC130:
-    case icu4x::capi::CanonicalCombiningClass_CCC132:
-    case icu4x::capi::CanonicalCombiningClass_CCC133:
-    case icu4x::capi::CanonicalCombiningClass_AttachedBelowLeft:
-    case icu4x::capi::CanonicalCombiningClass_AttachedBelow:
-    case icu4x::capi::CanonicalCombiningClass_AttachedAbove:
-    case icu4x::capi::CanonicalCombiningClass_AttachedAboveRight:
-    case icu4x::capi::CanonicalCombiningClass_BelowLeft:
-    case icu4x::capi::CanonicalCombiningClass_Below:
-    case icu4x::capi::CanonicalCombiningClass_BelowRight:
-    case icu4x::capi::CanonicalCombiningClass_Left:
-    case icu4x::capi::CanonicalCombiningClass_Right:
-    case icu4x::capi::CanonicalCombiningClass_AboveLeft:
-    case icu4x::capi::CanonicalCombiningClass_Above:
-    case icu4x::capi::CanonicalCombiningClass_AboveRight:
-    case icu4x::capi::CanonicalCombiningClass_DoubleBelow:
-    case icu4x::capi::CanonicalCombiningClass_DoubleAbove:
-    case icu4x::capi::CanonicalCombiningClass_IotaSubscript:
-      return static_cast<icu4x::CanonicalCombiningClass::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::CanonicalCombiningClass icu4x::CanonicalCombiningClass::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClass_for_char_mv1(ch);
-  return icu4x::CanonicalCombiningClass::FromFFI(result);
-}
-
-inline uint8_t icu4x::CanonicalCombiningClass::to_integer_value() {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClass_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::CanonicalCombiningClass> icu4x::CanonicalCombiningClass::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClass_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::CanonicalCombiningClass>(icu4x::CanonicalCombiningClass::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_CanonicalCombiningClass_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp
deleted file mode 100644
index f4faad0e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_CanonicalCombiningClassMap_D_HPP
-#define icu4x_CanonicalCombiningClassMap_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CanonicalCombiningClassMap; }
-class CanonicalCombiningClassMap;
-namespace capi { struct DataProvider; }
-class DataProvider;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CanonicalCombiningClassMap;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CanonicalCombiningClassMap {
-public:
-
-  inline static std::unique_ptr<icu4x::CanonicalCombiningClassMap> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline uint8_t get(char32_t ch) const;
-
-  inline const icu4x::capi::CanonicalCombiningClassMap* AsFFI() const;
-  inline icu4x::capi::CanonicalCombiningClassMap* AsFFI();
-  inline static const icu4x::CanonicalCombiningClassMap* FromFFI(const icu4x::capi::CanonicalCombiningClassMap* ptr);
-  inline static icu4x::CanonicalCombiningClassMap* FromFFI(icu4x::capi::CanonicalCombiningClassMap* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CanonicalCombiningClassMap() = delete;
-  CanonicalCombiningClassMap(const icu4x::CanonicalCombiningClassMap&) = delete;
-  CanonicalCombiningClassMap(icu4x::CanonicalCombiningClassMap&&) noexcept = delete;
-  CanonicalCombiningClassMap operator=(const icu4x::CanonicalCombiningClassMap&) = delete;
-  CanonicalCombiningClassMap operator=(icu4x::CanonicalCombiningClassMap&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CanonicalCombiningClassMap_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp
deleted file mode 100644
index 214b64e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef icu4x_CanonicalCombiningClassMap_HPP
-#define icu4x_CanonicalCombiningClassMap_HPP
-
-#include "CanonicalCombiningClassMap.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CanonicalCombiningClassMap* icu4x_CanonicalCombiningClassMap_create_mv1(void);
-    
-    typedef struct icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result {union {icu4x::capi::CanonicalCombiningClassMap* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result;
-    icu4x_CanonicalCombiningClassMap_create_with_provider_mv1_result icu4x_CanonicalCombiningClassMap_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    uint8_t icu4x_CanonicalCombiningClassMap_get_mv1(const icu4x::capi::CanonicalCombiningClassMap* self, char32_t ch);
-    
-    
-    void icu4x_CanonicalCombiningClassMap_destroy_mv1(CanonicalCombiningClassMap* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::CanonicalCombiningClassMap> icu4x::CanonicalCombiningClassMap::create() {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClassMap_create_mv1();
-  return std::unique_ptr<icu4x::CanonicalCombiningClassMap>(icu4x::CanonicalCombiningClassMap::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError> icu4x::CanonicalCombiningClassMap::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClassMap_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalCombiningClassMap>>(std::unique_ptr<icu4x::CanonicalCombiningClassMap>(icu4x::CanonicalCombiningClassMap::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline uint8_t icu4x::CanonicalCombiningClassMap::get(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CanonicalCombiningClassMap_get_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline const icu4x::capi::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CanonicalCombiningClassMap*>(this);
-}
-
-inline icu4x::capi::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CanonicalCombiningClassMap*>(this);
-}
-
-inline const icu4x::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::FromFFI(const icu4x::capi::CanonicalCombiningClassMap* ptr) {
-  return reinterpret_cast<const icu4x::CanonicalCombiningClassMap*>(ptr);
-}
-
-inline icu4x::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::FromFFI(icu4x::capi::CanonicalCombiningClassMap* ptr) {
-  return reinterpret_cast<icu4x::CanonicalCombiningClassMap*>(ptr);
-}
-
-inline void icu4x::CanonicalCombiningClassMap::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CanonicalCombiningClassMap_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalCombiningClassMap*>(ptr));
-}
-
-
-#endif // icu4x_CanonicalCombiningClassMap_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.d.hpp
deleted file mode 100644
index 1a664ab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_CanonicalComposition_D_HPP
-#define icu4x_CanonicalComposition_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CanonicalComposition; }
-class CanonicalComposition;
-namespace capi { struct DataProvider; }
-class DataProvider;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CanonicalComposition;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CanonicalComposition {
-public:
-
-  inline static std::unique_ptr<icu4x::CanonicalComposition> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline char32_t compose(char32_t starter, char32_t second) const;
-
-  inline const icu4x::capi::CanonicalComposition* AsFFI() const;
-  inline icu4x::capi::CanonicalComposition* AsFFI();
-  inline static const icu4x::CanonicalComposition* FromFFI(const icu4x::capi::CanonicalComposition* ptr);
-  inline static icu4x::CanonicalComposition* FromFFI(icu4x::capi::CanonicalComposition* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CanonicalComposition() = delete;
-  CanonicalComposition(const icu4x::CanonicalComposition&) = delete;
-  CanonicalComposition(icu4x::CanonicalComposition&&) noexcept = delete;
-  CanonicalComposition operator=(const icu4x::CanonicalComposition&) = delete;
-  CanonicalComposition operator=(icu4x::CanonicalComposition&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CanonicalComposition_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.hpp
deleted file mode 100644
index 3dc9a8e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalComposition.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef icu4x_CanonicalComposition_HPP
-#define icu4x_CanonicalComposition_HPP
-
-#include "CanonicalComposition.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CanonicalComposition* icu4x_CanonicalComposition_create_mv1(void);
-    
-    typedef struct icu4x_CanonicalComposition_create_with_provider_mv1_result {union {icu4x::capi::CanonicalComposition* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalComposition_create_with_provider_mv1_result;
-    icu4x_CanonicalComposition_create_with_provider_mv1_result icu4x_CanonicalComposition_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    char32_t icu4x_CanonicalComposition_compose_mv1(const icu4x::capi::CanonicalComposition* self, char32_t starter, char32_t second);
-    
-    
-    void icu4x_CanonicalComposition_destroy_mv1(CanonicalComposition* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::CanonicalComposition> icu4x::CanonicalComposition::create() {
-  auto result = icu4x::capi::icu4x_CanonicalComposition_create_mv1();
-  return std::unique_ptr<icu4x::CanonicalComposition>(icu4x::CanonicalComposition::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError> icu4x::CanonicalComposition::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CanonicalComposition_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalComposition>>(std::unique_ptr<icu4x::CanonicalComposition>(icu4x::CanonicalComposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline char32_t icu4x::CanonicalComposition::compose(char32_t starter, char32_t second) const {
-  auto result = icu4x::capi::icu4x_CanonicalComposition_compose_mv1(this->AsFFI(),
-    starter,
-    second);
-  return result;
-}
-
-inline const icu4x::capi::CanonicalComposition* icu4x::CanonicalComposition::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CanonicalComposition*>(this);
-}
-
-inline icu4x::capi::CanonicalComposition* icu4x::CanonicalComposition::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CanonicalComposition*>(this);
-}
-
-inline const icu4x::CanonicalComposition* icu4x::CanonicalComposition::FromFFI(const icu4x::capi::CanonicalComposition* ptr) {
-  return reinterpret_cast<const icu4x::CanonicalComposition*>(ptr);
-}
-
-inline icu4x::CanonicalComposition* icu4x::CanonicalComposition::FromFFI(icu4x::capi::CanonicalComposition* ptr) {
-  return reinterpret_cast<icu4x::CanonicalComposition*>(ptr);
-}
-
-inline void icu4x::CanonicalComposition::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CanonicalComposition_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalComposition*>(ptr));
-}
-
-
-#endif // icu4x_CanonicalComposition_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp
deleted file mode 100644
index 651ff2b7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef icu4x_CanonicalDecomposition_D_HPP
-#define icu4x_CanonicalDecomposition_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CanonicalDecomposition; }
-class CanonicalDecomposition;
-namespace capi { struct DataProvider; }
-class DataProvider;
-struct Decomposed;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CanonicalDecomposition;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CanonicalDecomposition {
-public:
-
-  inline static std::unique_ptr<icu4x::CanonicalDecomposition> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline icu4x::Decomposed decompose(char32_t c) const;
-
-  inline const icu4x::capi::CanonicalDecomposition* AsFFI() const;
-  inline icu4x::capi::CanonicalDecomposition* AsFFI();
-  inline static const icu4x::CanonicalDecomposition* FromFFI(const icu4x::capi::CanonicalDecomposition* ptr);
-  inline static icu4x::CanonicalDecomposition* FromFFI(icu4x::capi::CanonicalDecomposition* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CanonicalDecomposition() = delete;
-  CanonicalDecomposition(const icu4x::CanonicalDecomposition&) = delete;
-  CanonicalDecomposition(icu4x::CanonicalDecomposition&&) noexcept = delete;
-  CanonicalDecomposition operator=(const icu4x::CanonicalDecomposition&) = delete;
-  CanonicalDecomposition operator=(icu4x::CanonicalDecomposition&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CanonicalDecomposition_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.hpp
deleted file mode 100644
index 552ee98..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CanonicalDecomposition.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef icu4x_CanonicalDecomposition_HPP
-#define icu4x_CanonicalDecomposition_HPP
-
-#include "CanonicalDecomposition.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Decomposed.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CanonicalDecomposition* icu4x_CanonicalDecomposition_create_mv1(void);
-    
-    typedef struct icu4x_CanonicalDecomposition_create_with_provider_mv1_result {union {icu4x::capi::CanonicalDecomposition* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalDecomposition_create_with_provider_mv1_result;
-    icu4x_CanonicalDecomposition_create_with_provider_mv1_result icu4x_CanonicalDecomposition_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::Decomposed icu4x_CanonicalDecomposition_decompose_mv1(const icu4x::capi::CanonicalDecomposition* self, char32_t c);
-    
-    
-    void icu4x_CanonicalDecomposition_destroy_mv1(CanonicalDecomposition* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::CanonicalDecomposition> icu4x::CanonicalDecomposition::create() {
-  auto result = icu4x::capi::icu4x_CanonicalDecomposition_create_mv1();
-  return std::unique_ptr<icu4x::CanonicalDecomposition>(icu4x::CanonicalDecomposition::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError> icu4x::CanonicalDecomposition::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CanonicalDecomposition_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalDecomposition>>(std::unique_ptr<icu4x::CanonicalDecomposition>(icu4x::CanonicalDecomposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::Decomposed icu4x::CanonicalDecomposition::decompose(char32_t c) const {
-  auto result = icu4x::capi::icu4x_CanonicalDecomposition_decompose_mv1(this->AsFFI(),
-    c);
-  return icu4x::Decomposed::FromFFI(result);
-}
-
-inline const icu4x::capi::CanonicalDecomposition* icu4x::CanonicalDecomposition::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CanonicalDecomposition*>(this);
-}
-
-inline icu4x::capi::CanonicalDecomposition* icu4x::CanonicalDecomposition::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CanonicalDecomposition*>(this);
-}
-
-inline const icu4x::CanonicalDecomposition* icu4x::CanonicalDecomposition::FromFFI(const icu4x::capi::CanonicalDecomposition* ptr) {
-  return reinterpret_cast<const icu4x::CanonicalDecomposition*>(ptr);
-}
-
-inline icu4x::CanonicalDecomposition* icu4x::CanonicalDecomposition::FromFFI(icu4x::capi::CanonicalDecomposition* ptr) {
-  return reinterpret_cast<icu4x::CanonicalDecomposition*>(ptr);
-}
-
-inline void icu4x::CanonicalDecomposition::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CanonicalDecomposition_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalDecomposition*>(ptr));
-}
-
-
-#endif // icu4x_CanonicalDecomposition_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.d.hpp
deleted file mode 100644
index 2f23467..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.d.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_CaseMapCloser_D_HPP
-#define icu4x_CaseMapCloser_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CaseMapCloser; }
-class CaseMapCloser;
-namespace capi { struct CodePointSetBuilder; }
-class CodePointSetBuilder;
-namespace capi { struct DataProvider; }
-class DataProvider;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CaseMapCloser;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CaseMapCloser {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const;
-
-  inline bool add_string_case_closure_to(std::string_view s, icu4x::CodePointSetBuilder& builder) const;
-
-  inline const icu4x::capi::CaseMapCloser* AsFFI() const;
-  inline icu4x::capi::CaseMapCloser* AsFFI();
-  inline static const icu4x::CaseMapCloser* FromFFI(const icu4x::capi::CaseMapCloser* ptr);
-  inline static icu4x::CaseMapCloser* FromFFI(icu4x::capi::CaseMapCloser* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CaseMapCloser() = delete;
-  CaseMapCloser(const icu4x::CaseMapCloser&) = delete;
-  CaseMapCloser(icu4x::CaseMapCloser&&) noexcept = delete;
-  CaseMapCloser operator=(const icu4x::CaseMapCloser&) = delete;
-  CaseMapCloser operator=(icu4x::CaseMapCloser&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CaseMapCloser_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.hpp
deleted file mode 100644
index ac203a09..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapCloser.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef icu4x_CaseMapCloser_HPP
-#define icu4x_CaseMapCloser_HPP
-
-#include "CaseMapCloser.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointSetBuilder.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_CaseMapCloser_create_mv1_result {union {icu4x::capi::CaseMapCloser* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_mv1_result;
-    icu4x_CaseMapCloser_create_mv1_result icu4x_CaseMapCloser_create_mv1(void);
-    
-    typedef struct icu4x_CaseMapCloser_create_with_provider_mv1_result {union {icu4x::capi::CaseMapCloser* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_with_provider_mv1_result;
-    icu4x_CaseMapCloser_create_with_provider_mv1_result icu4x_CaseMapCloser_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    void icu4x_CaseMapCloser_add_case_closure_to_mv1(const icu4x::capi::CaseMapCloser* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder);
-    
-    bool icu4x_CaseMapCloser_add_string_case_closure_to_mv1(const icu4x::capi::CaseMapCloser* self, diplomat::capi::DiplomatStringView s, icu4x::capi::CodePointSetBuilder* builder);
-    
-    
-    void icu4x_CaseMapCloser_destroy_mv1(CaseMapCloser* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> icu4x::CaseMapCloser::create() {
-  auto result = icu4x::capi::icu4x_CaseMapCloser_create_mv1();
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CaseMapCloser>>(std::unique_ptr<icu4x::CaseMapCloser>(icu4x::CaseMapCloser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> icu4x::CaseMapCloser::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CaseMapCloser_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CaseMapCloser>>(std::unique_ptr<icu4x::CaseMapCloser>(icu4x::CaseMapCloser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline void icu4x::CaseMapCloser::add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const {
-  icu4x::capi::icu4x_CaseMapCloser_add_case_closure_to_mv1(this->AsFFI(),
-    c,
-    builder.AsFFI());
-}
-
-inline bool icu4x::CaseMapCloser::add_string_case_closure_to(std::string_view s, icu4x::CodePointSetBuilder& builder) const {
-  auto result = icu4x::capi::icu4x_CaseMapCloser_add_string_case_closure_to_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    builder.AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::CaseMapCloser* icu4x::CaseMapCloser::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CaseMapCloser*>(this);
-}
-
-inline icu4x::capi::CaseMapCloser* icu4x::CaseMapCloser::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CaseMapCloser*>(this);
-}
-
-inline const icu4x::CaseMapCloser* icu4x::CaseMapCloser::FromFFI(const icu4x::capi::CaseMapCloser* ptr) {
-  return reinterpret_cast<const icu4x::CaseMapCloser*>(ptr);
-}
-
-inline icu4x::CaseMapCloser* icu4x::CaseMapCloser::FromFFI(icu4x::capi::CaseMapCloser* ptr) {
-  return reinterpret_cast<icu4x::CaseMapCloser*>(ptr);
-}
-
-inline void icu4x::CaseMapCloser::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CaseMapCloser_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapCloser*>(ptr));
-}
-
-
-#endif // icu4x_CaseMapCloser_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.d.hpp
deleted file mode 100644
index 57705b4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.d.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef icu4x_CaseMapper_D_HPP
-#define icu4x_CaseMapper_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CaseMapper; }
-class CaseMapper;
-namespace capi { struct CodePointSetBuilder; }
-class CodePointSetBuilder;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-struct TitlecaseOptionsV1;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CaseMapper;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CaseMapper {
-public:
-
-  inline static std::unique_ptr<icu4x::CaseMapper> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> lowercase(std::string_view s, const icu4x::Locale& locale) const;
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> uppercase(std::string_view s, const icu4x::Locale& locale) const;
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_with_only_case_data_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const;
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> fold(std::string_view s) const;
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> fold_turkic(std::string_view s) const;
-
-  inline void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const;
-
-  inline char32_t simple_lowercase(char32_t ch) const;
-
-  inline char32_t simple_uppercase(char32_t ch) const;
-
-  inline char32_t simple_titlecase(char32_t ch) const;
-
-  inline char32_t simple_fold(char32_t ch) const;
-
-  inline char32_t simple_fold_turkic(char32_t ch) const;
-
-  inline const icu4x::capi::CaseMapper* AsFFI() const;
-  inline icu4x::capi::CaseMapper* AsFFI();
-  inline static const icu4x::CaseMapper* FromFFI(const icu4x::capi::CaseMapper* ptr);
-  inline static icu4x::CaseMapper* FromFFI(icu4x::capi::CaseMapper* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CaseMapper() = delete;
-  CaseMapper(const icu4x::CaseMapper&) = delete;
-  CaseMapper(icu4x::CaseMapper&&) noexcept = delete;
-  CaseMapper operator=(const icu4x::CaseMapper&) = delete;
-  CaseMapper operator=(icu4x::CaseMapper&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CaseMapper_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.hpp
deleted file mode 100644
index b8ed1d2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CaseMapper.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef icu4x_CaseMapper_HPP
-#define icu4x_CaseMapper_HPP
-
-#include "CaseMapper.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointSetBuilder.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "TitlecaseOptionsV1.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CaseMapper* icu4x_CaseMapper_create_mv1(void);
-    
-    typedef struct icu4x_CaseMapper_create_with_provider_mv1_result {union {icu4x::capi::CaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapper_create_with_provider_mv1_result;
-    icu4x_CaseMapper_create_with_provider_mv1_result icu4x_CaseMapper_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    void icu4x_CaseMapper_lowercase_mv1(const icu4x::capi::CaseMapper* self, diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_CaseMapper_uppercase_mv1(const icu4x::capi::CaseMapper* self, diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(const icu4x::capi::CaseMapper* self, diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_CaseMapper_fold_mv1(const icu4x::capi::CaseMapper* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_CaseMapper_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_CaseMapper_add_case_closure_to_mv1(const icu4x::capi::CaseMapper* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder);
-    
-    char32_t icu4x_CaseMapper_simple_lowercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
-    
-    char32_t icu4x_CaseMapper_simple_uppercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
-    
-    char32_t icu4x_CaseMapper_simple_titlecase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
-    
-    char32_t icu4x_CaseMapper_simple_fold_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
-    
-    char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
-    
-    
-    void icu4x_CaseMapper_destroy_mv1(CaseMapper* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::CaseMapper> icu4x::CaseMapper::create() {
-  auto result = icu4x::capi::icu4x_CaseMapper_create_mv1();
-  return std::unique_ptr<icu4x::CaseMapper>(icu4x::CaseMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError> icu4x::CaseMapper::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CaseMapper_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CaseMapper>>(std::unique_ptr<icu4x::CaseMapper>(icu4x::CaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::lowercase(std::string_view s, const icu4x::Locale& locale) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    locale.AsFFI(),
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::uppercase(std::string_view s, const icu4x::Locale& locale) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    locale.AsFFI(),
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::titlecase_segment_with_only_case_data_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    locale.AsFFI(),
-    options.AsFFI(),
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::fold(std::string_view s) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::fold_turkic(std::string_view s) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline void icu4x::CaseMapper::add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const {
-  icu4x::capi::icu4x_CaseMapper_add_case_closure_to_mv1(this->AsFFI(),
-    c,
-    builder.AsFFI());
-}
-
-inline char32_t icu4x::CaseMapper::simple_lowercase(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline char32_t icu4x::CaseMapper::simple_uppercase(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline char32_t icu4x::CaseMapper::simple_titlecase(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline char32_t icu4x::CaseMapper::simple_fold(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline char32_t icu4x::CaseMapper::simple_fold_turkic(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline const icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CaseMapper*>(this);
-}
-
-inline icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CaseMapper*>(this);
-}
-
-inline const icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(const icu4x::capi::CaseMapper* ptr) {
-  return reinterpret_cast<const icu4x::CaseMapper*>(ptr);
-}
-
-inline icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(icu4x::capi::CaseMapper* ptr) {
-  return reinterpret_cast<icu4x::CaseMapper*>(ptr);
-}
-
-inline void icu4x::CaseMapper::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapper*>(ptr));
-}
-
-
-#endif // icu4x_CaseMapper_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.d.hpp
deleted file mode 100644
index cd9534a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_CodePointMapData16_D_HPP
-#define icu4x_CodePointMapData16_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointMapData16; }
-class CodePointMapData16;
-namespace capi { struct CodePointRangeIterator; }
-class CodePointRangeIterator;
-namespace capi { struct CodePointSetData; }
-class CodePointSetData;
-namespace capi { struct DataProvider; }
-class DataProvider;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointMapData16;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CodePointMapData16 {
-public:
-
-  inline uint16_t get(char32_t cp) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value(uint16_t value) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value_complemented(uint16_t value) const;
-
-  inline std::unique_ptr<icu4x::CodePointSetData> get_set_for_value(uint16_t value) const;
-
-  inline static std::unique_ptr<icu4x::CodePointMapData16> create_script();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError> create_script_with_provider(const icu4x::DataProvider& provider);
-
-  inline const icu4x::capi::CodePointMapData16* AsFFI() const;
-  inline icu4x::capi::CodePointMapData16* AsFFI();
-  inline static const icu4x::CodePointMapData16* FromFFI(const icu4x::capi::CodePointMapData16* ptr);
-  inline static icu4x::CodePointMapData16* FromFFI(icu4x::capi::CodePointMapData16* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CodePointMapData16() = delete;
-  CodePointMapData16(const icu4x::CodePointMapData16&) = delete;
-  CodePointMapData16(icu4x::CodePointMapData16&&) noexcept = delete;
-  CodePointMapData16 operator=(const icu4x::CodePointMapData16&) = delete;
-  CodePointMapData16 operator=(icu4x::CodePointMapData16&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CodePointMapData16_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.hpp
deleted file mode 100644
index 27067df5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData16.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef icu4x_CodePointMapData16_HPP
-#define icu4x_CodePointMapData16_HPP
-
-#include "CodePointMapData16.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointRangeIterator.hpp"
-#include "CodePointSetData.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    uint16_t icu4x_CodePointMapData16_get_mv1(const icu4x::capi::CodePointMapData16* self, char32_t cp);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointMapData16_get_set_for_value_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value);
-    
-    icu4x::capi::CodePointMapData16* icu4x_CodePointMapData16_create_script_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData16_create_script_with_provider_mv1_result {union {icu4x::capi::CodePointMapData16* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData16_create_script_with_provider_mv1_result;
-    icu4x_CodePointMapData16_create_script_with_provider_mv1_result icu4x_CodePointMapData16_create_script_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    
-    void icu4x_CodePointMapData16_destroy_mv1(CodePointMapData16* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline uint16_t icu4x::CodePointMapData16::get(char32_t cp) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_get_mv1(this->AsFFI(),
-    cp);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData16::iter_ranges_for_value(uint16_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_iter_ranges_for_value_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData16::iter_ranges_for_value_complemented(uint16_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointMapData16::get_set_for_value(uint16_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_get_set_for_value_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData16> icu4x::CodePointMapData16::create_script() {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_create_script_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData16>(icu4x::CodePointMapData16::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError> icu4x::CodePointMapData16::create_script_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData16_create_script_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData16>>(std::unique_ptr<icu4x::CodePointMapData16>(icu4x::CodePointMapData16::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::CodePointMapData16* icu4x::CodePointMapData16::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CodePointMapData16*>(this);
-}
-
-inline icu4x::capi::CodePointMapData16* icu4x::CodePointMapData16::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CodePointMapData16*>(this);
-}
-
-inline const icu4x::CodePointMapData16* icu4x::CodePointMapData16::FromFFI(const icu4x::capi::CodePointMapData16* ptr) {
-  return reinterpret_cast<const icu4x::CodePointMapData16*>(ptr);
-}
-
-inline icu4x::CodePointMapData16* icu4x::CodePointMapData16::FromFFI(icu4x::capi::CodePointMapData16* ptr) {
-  return reinterpret_cast<icu4x::CodePointMapData16*>(ptr);
-}
-
-inline void icu4x::CodePointMapData16::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CodePointMapData16_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointMapData16*>(ptr));
-}
-
-
-#endif // icu4x_CodePointMapData16_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.d.hpp
deleted file mode 100644
index c924a27..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.d.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef icu4x_CodePointMapData8_D_HPP
-#define icu4x_CodePointMapData8_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointMapData8; }
-class CodePointMapData8;
-namespace capi { struct CodePointRangeIterator; }
-class CodePointRangeIterator;
-namespace capi { struct CodePointSetData; }
-class CodePointSetData;
-namespace capi { struct DataProvider; }
-class DataProvider;
-struct GeneralCategoryGroup;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointMapData8;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CodePointMapData8 {
-public:
-
-  inline uint8_t get(char32_t cp) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value(uint8_t value) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value_complemented(uint8_t value) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_group(icu4x::GeneralCategoryGroup group) const;
-
-  inline std::unique_ptr<icu4x::CodePointSetData> get_set_for_value(uint8_t value) const;
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_general_category();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_general_category_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_bidi_class();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_bidi_class_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_east_asian_width();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_east_asian_width_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_hangul_syllable_type();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_hangul_syllable_type_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_indic_syllabic_category();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_indic_syllabic_category_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_line_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_line_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_grapheme_cluster_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_grapheme_cluster_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_word_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_word_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_sentence_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_sentence_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_joining_type();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_joining_type_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::CodePointMapData8> create_canonical_combining_class();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_canonical_combining_class_with_provider(const icu4x::DataProvider& provider);
-
-  inline const icu4x::capi::CodePointMapData8* AsFFI() const;
-  inline icu4x::capi::CodePointMapData8* AsFFI();
-  inline static const icu4x::CodePointMapData8* FromFFI(const icu4x::capi::CodePointMapData8* ptr);
-  inline static icu4x::CodePointMapData8* FromFFI(icu4x::capi::CodePointMapData8* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CodePointMapData8() = delete;
-  CodePointMapData8(const icu4x::CodePointMapData8&) = delete;
-  CodePointMapData8(icu4x::CodePointMapData8&&) noexcept = delete;
-  CodePointMapData8 operator=(const icu4x::CodePointMapData8&) = delete;
-  CodePointMapData8 operator=(icu4x::CodePointMapData8&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CodePointMapData8_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.hpp
deleted file mode 100644
index a0cdded..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointMapData8.hpp
+++ /dev/null
@@ -1,258 +0,0 @@
-#ifndef icu4x_CodePointMapData8_HPP
-#define icu4x_CodePointMapData8_HPP
-
-#include "CodePointMapData8.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointRangeIterator.hpp"
-#include "CodePointSetData.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "GeneralCategoryGroup.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    uint8_t icu4x_CodePointMapData8_get_mv1(const icu4x::capi::CodePointMapData8* self, char32_t cp);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_group_mv1(const icu4x::capi::CodePointMapData8* self, icu4x::capi::GeneralCategoryGroup group);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointMapData8_get_set_for_value_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_general_category_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_general_category_with_provider_mv1_result icu4x_CodePointMapData8_create_general_category_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_bidi_class_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1_result icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_east_asian_width_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1_result icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_hangul_syllable_type_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1_result icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_indic_syllabic_category_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1_result icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_line_break_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_line_break_with_provider_mv1_result icu4x_CodePointMapData8_create_line_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_grapheme_cluster_break_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1_result icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_word_break_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_word_break_with_provider_mv1_result icu4x_CodePointMapData8_create_word_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_sentence_break_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1_result icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_joining_type_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_joining_type_with_provider_mv1_result icu4x_CodePointMapData8_create_joining_type_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::CodePointMapData8* icu4x_CodePointMapData8_create_canonical_combining_class_mv1(void);
-    
-    typedef struct icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result;
-    icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1_result icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    
-    void icu4x_CodePointMapData8_destroy_mv1(CodePointMapData8* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline uint8_t icu4x::CodePointMapData8::get(char32_t cp) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_get_mv1(this->AsFFI(),
-    cp);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_value(uint8_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_value_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_value_complemented(uint8_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_group(icu4x::GeneralCategoryGroup group) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_group_mv1(this->AsFFI(),
-    group.AsFFI());
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointMapData8::get_set_for_value(uint8_t value) const {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_get_set_for_value_mv1(this->AsFFI(),
-    value);
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_general_category() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_general_category_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_general_category_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_general_category_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_bidi_class() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_bidi_class_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_bidi_class_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_east_asian_width() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_east_asian_width_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_east_asian_width_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_hangul_syllable_type() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_hangul_syllable_type_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_hangul_syllable_type_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_indic_syllabic_category() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_indic_syllabic_category_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_indic_syllabic_category_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_line_break() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_line_break_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_line_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_line_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_grapheme_cluster_break() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_grapheme_cluster_break_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_grapheme_cluster_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_word_break() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_word_break_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_word_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_word_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_sentence_break() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_sentence_break_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_sentence_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_joining_type() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_joining_type_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_joining_type_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_joining_type_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::CodePointMapData8> icu4x::CodePointMapData8::create_canonical_combining_class() {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_canonical_combining_class_mv1();
-  return std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::create_canonical_combining_class_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::CodePointMapData8* icu4x::CodePointMapData8::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CodePointMapData8*>(this);
-}
-
-inline icu4x::capi::CodePointMapData8* icu4x::CodePointMapData8::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CodePointMapData8*>(this);
-}
-
-inline const icu4x::CodePointMapData8* icu4x::CodePointMapData8::FromFFI(const icu4x::capi::CodePointMapData8* ptr) {
-  return reinterpret_cast<const icu4x::CodePointMapData8*>(ptr);
-}
-
-inline icu4x::CodePointMapData8* icu4x::CodePointMapData8::FromFFI(icu4x::capi::CodePointMapData8* ptr) {
-  return reinterpret_cast<icu4x::CodePointMapData8*>(ptr);
-}
-
-inline void icu4x::CodePointMapData8::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CodePointMapData8_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointMapData8*>(ptr));
-}
-
-
-#endif // icu4x_CodePointMapData8_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp
deleted file mode 100644
index 3f99d24..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_CodePointRangeIterator_D_HPP
-#define icu4x_CodePointRangeIterator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-struct CodePointRangeIteratorResult;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointRangeIterator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CodePointRangeIterator {
-public:
-
-  inline icu4x::CodePointRangeIteratorResult next();
-
-  inline const icu4x::capi::CodePointRangeIterator* AsFFI() const;
-  inline icu4x::capi::CodePointRangeIterator* AsFFI();
-  inline static const icu4x::CodePointRangeIterator* FromFFI(const icu4x::capi::CodePointRangeIterator* ptr);
-  inline static icu4x::CodePointRangeIterator* FromFFI(icu4x::capi::CodePointRangeIterator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CodePointRangeIterator() = delete;
-  CodePointRangeIterator(const icu4x::CodePointRangeIterator&) = delete;
-  CodePointRangeIterator(icu4x::CodePointRangeIterator&&) noexcept = delete;
-  CodePointRangeIterator operator=(const icu4x::CodePointRangeIterator&) = delete;
-  CodePointRangeIterator operator=(icu4x::CodePointRangeIterator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CodePointRangeIterator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.hpp
deleted file mode 100644
index 4c09151d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIterator.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_CodePointRangeIterator_HPP
-#define icu4x_CodePointRangeIterator_HPP
-
-#include "CodePointRangeIterator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointRangeIteratorResult.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CodePointRangeIteratorResult icu4x_CodePointRangeIterator_next_mv1(icu4x::capi::CodePointRangeIterator* self);
-    
-    
-    void icu4x_CodePointRangeIterator_destroy_mv1(CodePointRangeIterator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::CodePointRangeIteratorResult icu4x::CodePointRangeIterator::next() {
-  auto result = icu4x::capi::icu4x_CodePointRangeIterator_next_mv1(this->AsFFI());
-  return icu4x::CodePointRangeIteratorResult::FromFFI(result);
-}
-
-inline const icu4x::capi::CodePointRangeIterator* icu4x::CodePointRangeIterator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CodePointRangeIterator*>(this);
-}
-
-inline icu4x::capi::CodePointRangeIterator* icu4x::CodePointRangeIterator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CodePointRangeIterator*>(this);
-}
-
-inline const icu4x::CodePointRangeIterator* icu4x::CodePointRangeIterator::FromFFI(const icu4x::capi::CodePointRangeIterator* ptr) {
-  return reinterpret_cast<const icu4x::CodePointRangeIterator*>(ptr);
-}
-
-inline icu4x::CodePointRangeIterator* icu4x::CodePointRangeIterator::FromFFI(icu4x::capi::CodePointRangeIterator* ptr) {
-  return reinterpret_cast<icu4x::CodePointRangeIterator*>(ptr);
-}
-
-inline void icu4x::CodePointRangeIterator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CodePointRangeIterator_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointRangeIterator*>(ptr));
-}
-
-
-#endif // icu4x_CodePointRangeIterator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp
deleted file mode 100644
index 7bd1214..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_CodePointRangeIteratorResult_D_HPP
-#define icu4x_CodePointRangeIteratorResult_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointRangeIteratorResult {
-      char32_t start;
-      char32_t end;
-      bool done;
-    };
-    
-    typedef struct CodePointRangeIteratorResult_option {union { CodePointRangeIteratorResult ok; }; bool is_ok; } CodePointRangeIteratorResult_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct CodePointRangeIteratorResult {
-  char32_t start;
-  char32_t end;
-  bool done;
-
-  inline icu4x::capi::CodePointRangeIteratorResult AsFFI() const;
-  inline static icu4x::CodePointRangeIteratorResult FromFFI(icu4x::capi::CodePointRangeIteratorResult c_struct);
-};
-
-} // namespace
-#endif // icu4x_CodePointRangeIteratorResult_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp
deleted file mode 100644
index 892d97d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef icu4x_CodePointRangeIteratorResult_HPP
-#define icu4x_CodePointRangeIteratorResult_HPP
-
-#include "CodePointRangeIteratorResult.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::CodePointRangeIteratorResult icu4x::CodePointRangeIteratorResult::AsFFI() const {
-  return icu4x::capi::CodePointRangeIteratorResult {
-    /* .start = */ start,
-    /* .end = */ end,
-    /* .done = */ done,
-  };
-}
-
-inline icu4x::CodePointRangeIteratorResult icu4x::CodePointRangeIteratorResult::FromFFI(icu4x::capi::CodePointRangeIteratorResult c_struct) {
-  return icu4x::CodePointRangeIteratorResult {
-    /* .start = */ c_struct.start,
-    /* .end = */ c_struct.end,
-    /* .done = */ c_struct.done,
-  };
-}
-
-
-#endif // icu4x_CodePointRangeIteratorResult_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp
deleted file mode 100644
index f3fc0584..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef icu4x_CodePointSetBuilder_D_HPP
-#define icu4x_CodePointSetBuilder_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointSetBuilder; }
-class CodePointSetBuilder;
-namespace capi { struct CodePointSetData; }
-class CodePointSetData;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointSetBuilder;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CodePointSetBuilder {
-public:
-
-  inline static std::unique_ptr<icu4x::CodePointSetBuilder> create();
-
-  inline std::unique_ptr<icu4x::CodePointSetData> build();
-
-  inline void complement();
-
-  inline bool is_empty() const;
-
-  inline void add_char(char32_t ch);
-
-  inline void add_inclusive_range(char32_t start, char32_t end);
-
-  inline void add_set(const icu4x::CodePointSetData& data);
-
-  inline void remove_char(char32_t ch);
-
-  inline void remove_inclusive_range(char32_t start, char32_t end);
-
-  inline void remove_set(const icu4x::CodePointSetData& data);
-
-  inline void retain_char(char32_t ch);
-
-  inline void retain_inclusive_range(char32_t start, char32_t end);
-
-  inline void retain_set(const icu4x::CodePointSetData& data);
-
-  inline void complement_char(char32_t ch);
-
-  inline void complement_inclusive_range(char32_t start, char32_t end);
-
-  inline void complement_set(const icu4x::CodePointSetData& data);
-
-  inline const icu4x::capi::CodePointSetBuilder* AsFFI() const;
-  inline icu4x::capi::CodePointSetBuilder* AsFFI();
-  inline static const icu4x::CodePointSetBuilder* FromFFI(const icu4x::capi::CodePointSetBuilder* ptr);
-  inline static icu4x::CodePointSetBuilder* FromFFI(icu4x::capi::CodePointSetBuilder* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CodePointSetBuilder() = delete;
-  CodePointSetBuilder(const icu4x::CodePointSetBuilder&) = delete;
-  CodePointSetBuilder(icu4x::CodePointSetBuilder&&) noexcept = delete;
-  CodePointSetBuilder operator=(const icu4x::CodePointSetBuilder&) = delete;
-  CodePointSetBuilder operator=(icu4x::CodePointSetBuilder&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CodePointSetBuilder_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.hpp
deleted file mode 100644
index 6a023c83..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetBuilder.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-#ifndef icu4x_CodePointSetBuilder_HPP
-#define icu4x_CodePointSetBuilder_HPP
-
-#include "CodePointSetBuilder.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointSetData.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::CodePointSetBuilder* icu4x_CodePointSetBuilder_create_mv1(void);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetBuilder_build_mv1(icu4x::capi::CodePointSetBuilder* self);
-    
-    void icu4x_CodePointSetBuilder_complement_mv1(icu4x::capi::CodePointSetBuilder* self);
-    
-    bool icu4x_CodePointSetBuilder_is_empty_mv1(const icu4x::capi::CodePointSetBuilder* self);
-    
-    void icu4x_CodePointSetBuilder_add_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch);
-    
-    void icu4x_CodePointSetBuilder_add_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end);
-    
-    void icu4x_CodePointSetBuilder_add_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data);
-    
-    void icu4x_CodePointSetBuilder_remove_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch);
-    
-    void icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end);
-    
-    void icu4x_CodePointSetBuilder_remove_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data);
-    
-    void icu4x_CodePointSetBuilder_retain_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch);
-    
-    void icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end);
-    
-    void icu4x_CodePointSetBuilder_retain_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data);
-    
-    void icu4x_CodePointSetBuilder_complement_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch);
-    
-    void icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end);
-    
-    void icu4x_CodePointSetBuilder_complement_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data);
-    
-    
-    void icu4x_CodePointSetBuilder_destroy_mv1(CodePointSetBuilder* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::CodePointSetBuilder> icu4x::CodePointSetBuilder::create() {
-  auto result = icu4x::capi::icu4x_CodePointSetBuilder_create_mv1();
-  return std::unique_ptr<icu4x::CodePointSetBuilder>(icu4x::CodePointSetBuilder::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetBuilder::build() {
-  auto result = icu4x::capi::icu4x_CodePointSetBuilder_build_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline void icu4x::CodePointSetBuilder::complement() {
-  icu4x::capi::icu4x_CodePointSetBuilder_complement_mv1(this->AsFFI());
-}
-
-inline bool icu4x::CodePointSetBuilder::is_empty() const {
-  auto result = icu4x::capi::icu4x_CodePointSetBuilder_is_empty_mv1(this->AsFFI());
-  return result;
-}
-
-inline void icu4x::CodePointSetBuilder::add_char(char32_t ch) {
-  icu4x::capi::icu4x_CodePointSetBuilder_add_char_mv1(this->AsFFI(),
-    ch);
-}
-
-inline void icu4x::CodePointSetBuilder::add_inclusive_range(char32_t start, char32_t end) {
-  icu4x::capi::icu4x_CodePointSetBuilder_add_inclusive_range_mv1(this->AsFFI(),
-    start,
-    end);
-}
-
-inline void icu4x::CodePointSetBuilder::add_set(const icu4x::CodePointSetData& data) {
-  icu4x::capi::icu4x_CodePointSetBuilder_add_set_mv1(this->AsFFI(),
-    data.AsFFI());
-}
-
-inline void icu4x::CodePointSetBuilder::remove_char(char32_t ch) {
-  icu4x::capi::icu4x_CodePointSetBuilder_remove_char_mv1(this->AsFFI(),
-    ch);
-}
-
-inline void icu4x::CodePointSetBuilder::remove_inclusive_range(char32_t start, char32_t end) {
-  icu4x::capi::icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(this->AsFFI(),
-    start,
-    end);
-}
-
-inline void icu4x::CodePointSetBuilder::remove_set(const icu4x::CodePointSetData& data) {
-  icu4x::capi::icu4x_CodePointSetBuilder_remove_set_mv1(this->AsFFI(),
-    data.AsFFI());
-}
-
-inline void icu4x::CodePointSetBuilder::retain_char(char32_t ch) {
-  icu4x::capi::icu4x_CodePointSetBuilder_retain_char_mv1(this->AsFFI(),
-    ch);
-}
-
-inline void icu4x::CodePointSetBuilder::retain_inclusive_range(char32_t start, char32_t end) {
-  icu4x::capi::icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(this->AsFFI(),
-    start,
-    end);
-}
-
-inline void icu4x::CodePointSetBuilder::retain_set(const icu4x::CodePointSetData& data) {
-  icu4x::capi::icu4x_CodePointSetBuilder_retain_set_mv1(this->AsFFI(),
-    data.AsFFI());
-}
-
-inline void icu4x::CodePointSetBuilder::complement_char(char32_t ch) {
-  icu4x::capi::icu4x_CodePointSetBuilder_complement_char_mv1(this->AsFFI(),
-    ch);
-}
-
-inline void icu4x::CodePointSetBuilder::complement_inclusive_range(char32_t start, char32_t end) {
-  icu4x::capi::icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(this->AsFFI(),
-    start,
-    end);
-}
-
-inline void icu4x::CodePointSetBuilder::complement_set(const icu4x::CodePointSetData& data) {
-  icu4x::capi::icu4x_CodePointSetBuilder_complement_set_mv1(this->AsFFI(),
-    data.AsFFI());
-}
-
-inline const icu4x::capi::CodePointSetBuilder* icu4x::CodePointSetBuilder::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CodePointSetBuilder*>(this);
-}
-
-inline icu4x::capi::CodePointSetBuilder* icu4x::CodePointSetBuilder::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CodePointSetBuilder*>(this);
-}
-
-inline const icu4x::CodePointSetBuilder* icu4x::CodePointSetBuilder::FromFFI(const icu4x::capi::CodePointSetBuilder* ptr) {
-  return reinterpret_cast<const icu4x::CodePointSetBuilder*>(ptr);
-}
-
-inline icu4x::CodePointSetBuilder* icu4x::CodePointSetBuilder::FromFFI(icu4x::capi::CodePointSetBuilder* ptr) {
-  return reinterpret_cast<icu4x::CodePointSetBuilder*>(ptr);
-}
-
-inline void icu4x::CodePointSetBuilder::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CodePointSetBuilder_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointSetBuilder*>(ptr));
-}
-
-
-#endif // icu4x_CodePointSetBuilder_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.d.hpp
deleted file mode 100644
index d3600b8a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.d.hpp
+++ /dev/null
@@ -1,454 +0,0 @@
-#ifndef icu4x_CodePointSetData_D_HPP
-#define icu4x_CodePointSetData_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointRangeIterator; }
-class CodePointRangeIterator;
-namespace capi { struct CodePointSetData; }
-class CodePointSetData;
-namespace capi { struct DataProvider; }
-class DataProvider;
-struct GeneralCategoryGroup;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CodePointSetData;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CodePointSetData {
-public:
-
-  inline bool contains(char32_t cp) const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges() const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_complemented() const;
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_general_category_group(icu4x::GeneralCategoryGroup group);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_general_category_group_with_provider(const icu4x::DataProvider& provider, uint32_t group);
-
-  inline static bool ascii_hex_digit_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_ascii_hex_digit();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_ascii_hex_digit_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool alnum_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_alnum();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_alnum_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool alphabetic_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_alphabetic();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_alphabetic_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool bidi_control_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_bidi_control();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_bidi_control_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool bidi_mirrored_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_bidi_mirrored();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_bidi_mirrored_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool blank_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_blank();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_blank_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool cased_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_cased();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_cased_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool case_ignorable_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_case_ignorable();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_case_ignorable_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool full_composition_exclusion_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_full_composition_exclusion();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_full_composition_exclusion_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_casefolded_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_casefolded();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_casefolded_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_casemapped_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_casemapped();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_casemapped_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_nfkc_casefolded_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_nfkc_casefolded();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_nfkc_casefolded_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_lowercased_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_lowercased();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_lowercased_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_titlecased_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_titlecased();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_titlecased_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool changes_when_uppercased_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_changes_when_uppercased();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_changes_when_uppercased_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool dash_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_dash();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_dash_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool deprecated_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_deprecated();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_deprecated_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool default_ignorable_code_point_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_default_ignorable_code_point();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_default_ignorable_code_point_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool diacritic_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_diacritic();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_diacritic_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool emoji_modifier_base_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_emoji_modifier_base();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_emoji_modifier_base_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool emoji_component_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_emoji_component();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_emoji_component_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool emoji_modifier_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_emoji_modifier();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_emoji_modifier_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool emoji_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_emoji();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_emoji_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool emoji_presentation_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_emoji_presentation();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_emoji_presentation_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool extender_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_extender();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_extender_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool extended_pictographic_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_extended_pictographic();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_extended_pictographic_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool graph_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_graph();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_graph_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool grapheme_base_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_grapheme_base();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_grapheme_base_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool grapheme_extend_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_grapheme_extend();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_grapheme_extend_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool grapheme_link_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_grapheme_link();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_grapheme_link_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool hex_digit_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_hex_digit();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_hex_digit_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool hyphen_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_hyphen();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_hyphen_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool id_continue_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_id_continue();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_id_continue_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool ideographic_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_ideographic();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_ideographic_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool id_start_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_id_start();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_id_start_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool ids_binary_operator_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_ids_binary_operator();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_ids_binary_operator_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool ids_trinary_operator_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_ids_trinary_operator();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_ids_trinary_operator_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool join_control_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_join_control();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_join_control_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool logical_order_exception_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_logical_order_exception();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_logical_order_exception_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool lowercase_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_lowercase();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_lowercase_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool math_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_math();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_math_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool noncharacter_code_point_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_noncharacter_code_point();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_noncharacter_code_point_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool nfc_inert_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_nfc_inert();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_nfc_inert_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool nfd_inert_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_nfd_inert();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_nfd_inert_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool nfkc_inert_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_nfkc_inert();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_nfkc_inert_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool nfkd_inert_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_nfkd_inert();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_nfkd_inert_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool pattern_syntax_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_pattern_syntax();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_pattern_syntax_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool pattern_white_space_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_pattern_white_space();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_pattern_white_space_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool prepended_concatenation_mark_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_prepended_concatenation_mark();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_prepended_concatenation_mark_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool print_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_print();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_print_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool quotation_mark_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_quotation_mark();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_quotation_mark_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool radical_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_radical();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_radical_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool regional_indicator_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_regional_indicator();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_regional_indicator_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool soft_dotted_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_soft_dotted();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_soft_dotted_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool segment_starter_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_segment_starter();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_segment_starter_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool case_sensitive_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_case_sensitive();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_case_sensitive_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool sentence_terminal_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_sentence_terminal();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_sentence_terminal_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool terminal_punctuation_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_terminal_punctuation();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_terminal_punctuation_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool unified_ideograph_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_unified_ideograph();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_unified_ideograph_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool uppercase_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_uppercase();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_uppercase_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool variation_selector_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_variation_selector();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_variation_selector_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool white_space_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_white_space();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_white_space_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool xdigit_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_xdigit();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_xdigit_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool xid_continue_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_xid_continue();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_xid_continue_with_provider(const icu4x::DataProvider& provider);
-
-  inline static bool xid_start_for_char(char32_t ch);
-
-  inline static std::unique_ptr<icu4x::CodePointSetData> create_xid_start();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_xid_start_with_provider(const icu4x::DataProvider& provider);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_for_ecma262(std::string_view property_name);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> create_for_ecma262_with_provider(const icu4x::DataProvider& provider, std::string_view property_name);
-
-  inline const icu4x::capi::CodePointSetData* AsFFI() const;
-  inline icu4x::capi::CodePointSetData* AsFFI();
-  inline static const icu4x::CodePointSetData* FromFFI(const icu4x::capi::CodePointSetData* ptr);
-  inline static icu4x::CodePointSetData* FromFFI(icu4x::capi::CodePointSetData* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  CodePointSetData() = delete;
-  CodePointSetData(const icu4x::CodePointSetData&) = delete;
-  CodePointSetData(icu4x::CodePointSetData&&) noexcept = delete;
-  CodePointSetData operator=(const icu4x::CodePointSetData&) = delete;
-  CodePointSetData operator=(icu4x::CodePointSetData&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_CodePointSetData_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.hpp
deleted file mode 100644
index c1b01f8c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CodePointSetData.hpp
+++ /dev/null
@@ -1,1537 +0,0 @@
-#ifndef icu4x_CodePointSetData_HPP
-#define icu4x_CodePointSetData_HPP
-
-#include "CodePointSetData.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointRangeIterator.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "GeneralCategoryGroup.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_CodePointSetData_contains_mv1(const icu4x::capi::CodePointSetData* self, char32_t cp);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_mv1(const icu4x::capi::CodePointSetData* self);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_complemented_mv1(const icu4x::capi::CodePointSetData* self);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_general_category_group_mv1(icu4x::capi::GeneralCategoryGroup group);
-    
-    typedef struct icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_general_category_group_with_provider_mv1_result icu4x_CodePointSetData_create_general_category_group_with_provider_mv1(const icu4x::capi::DataProvider* provider, uint32_t group);
-    
-    bool icu4x_CodePointSetData_ascii_hex_digit_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_ascii_hex_digit_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1_result icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_alnum_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_alnum_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_alnum_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_alnum_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_alnum_with_provider_mv1_result icu4x_CodePointSetData_create_alnum_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_alphabetic_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_alphabetic_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_alphabetic_with_provider_mv1_result icu4x_CodePointSetData_create_alphabetic_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_bidi_control_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_bidi_control_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_bidi_control_with_provider_mv1_result icu4x_CodePointSetData_create_bidi_control_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_bidi_mirrored_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_bidi_mirrored_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1_result icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_blank_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_blank_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_blank_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_blank_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_blank_with_provider_mv1_result icu4x_CodePointSetData_create_blank_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_cased_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_cased_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_cased_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_cased_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_cased_with_provider_mv1_result icu4x_CodePointSetData_create_cased_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_case_ignorable_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_case_ignorable_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1_result icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_full_composition_exclusion_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_full_composition_exclusion_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1_result icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_casefolded_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_casefolded_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_casemapped_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_casemapped_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_nfkc_casefolded_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_lowercased_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_lowercased_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_titlecased_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_titlecased_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_changes_when_uppercased_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_changes_when_uppercased_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1_result icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_dash_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_dash_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_dash_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_dash_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_dash_with_provider_mv1_result icu4x_CodePointSetData_create_dash_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_deprecated_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_deprecated_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_deprecated_with_provider_mv1_result icu4x_CodePointSetData_create_deprecated_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_default_ignorable_code_point_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_default_ignorable_code_point_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1_result icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_diacritic_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_diacritic_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_diacritic_with_provider_mv1_result icu4x_CodePointSetData_create_diacritic_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_emoji_modifier_base_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_emoji_modifier_base_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_emoji_component_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_emoji_component_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_emoji_component_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_component_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_emoji_modifier_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_emoji_modifier_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_emoji_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_emoji_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_emoji_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_emoji_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_emoji_presentation_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_emoji_presentation_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1_result icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_extender_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_extender_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_extender_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_extender_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_extender_with_provider_mv1_result icu4x_CodePointSetData_create_extender_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_extended_pictographic_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_extended_pictographic_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1_result icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_graph_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_graph_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_graph_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_graph_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_graph_with_provider_mv1_result icu4x_CodePointSetData_create_graph_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_grapheme_base_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_grapheme_base_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_grapheme_extend_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_grapheme_extend_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_grapheme_link_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_grapheme_link_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1_result icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_hex_digit_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_hex_digit_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_hex_digit_with_provider_mv1_result icu4x_CodePointSetData_create_hex_digit_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_hyphen_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_hyphen_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_hyphen_with_provider_mv1_result icu4x_CodePointSetData_create_hyphen_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_id_continue_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_id_continue_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_id_continue_with_provider_mv1_result icu4x_CodePointSetData_create_id_continue_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_ideographic_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_ideographic_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_ideographic_with_provider_mv1_result icu4x_CodePointSetData_create_ideographic_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_id_start_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_id_start_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_id_start_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_id_start_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_id_start_with_provider_mv1_result icu4x_CodePointSetData_create_id_start_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_ids_binary_operator_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_ids_binary_operator_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1_result icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_ids_trinary_operator_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_ids_trinary_operator_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1_result icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_join_control_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_join_control_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_join_control_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_join_control_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_join_control_with_provider_mv1_result icu4x_CodePointSetData_create_join_control_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_logical_order_exception_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_logical_order_exception_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1_result icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_lowercase_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_lowercase_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_lowercase_with_provider_mv1_result icu4x_CodePointSetData_create_lowercase_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_math_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_math_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_math_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_math_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_math_with_provider_mv1_result icu4x_CodePointSetData_create_math_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_noncharacter_code_point_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_noncharacter_code_point_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1_result icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_nfc_inert_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_nfc_inert_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_nfd_inert_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_nfd_inert_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_nfkc_inert_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_nfkc_inert_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_nfkd_inert_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_nfkd_inert_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1_result icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_pattern_syntax_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_pattern_syntax_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1_result icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_pattern_white_space_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_pattern_white_space_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1_result icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_prepended_concatenation_mark_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_prepended_concatenation_mark_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1_result icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_print_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_print_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_print_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_print_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_print_with_provider_mv1_result icu4x_CodePointSetData_create_print_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_quotation_mark_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_quotation_mark_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1_result icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_radical_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_radical_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_radical_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_radical_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_radical_with_provider_mv1_result icu4x_CodePointSetData_create_radical_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_regional_indicator_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_regional_indicator_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1_result icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_soft_dotted_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_soft_dotted_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1_result icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_segment_starter_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_segment_starter_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_segment_starter_with_provider_mv1_result icu4x_CodePointSetData_create_segment_starter_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_case_sensitive_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_case_sensitive_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1_result icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_sentence_terminal_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_sentence_terminal_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1_result icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_terminal_punctuation_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_terminal_punctuation_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1_result icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_unified_ideograph_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_unified_ideograph_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1_result icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_uppercase_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_uppercase_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_uppercase_with_provider_mv1_result icu4x_CodePointSetData_create_uppercase_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_variation_selector_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_variation_selector_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_variation_selector_with_provider_mv1_result icu4x_CodePointSetData_create_variation_selector_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_white_space_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_white_space_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_white_space_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_white_space_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_white_space_with_provider_mv1_result icu4x_CodePointSetData_create_white_space_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_xdigit_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_xdigit_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_xdigit_with_provider_mv1_result icu4x_CodePointSetData_create_xdigit_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_xid_continue_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_xid_continue_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_xid_continue_with_provider_mv1_result icu4x_CodePointSetData_create_xid_continue_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    bool icu4x_CodePointSetData_xid_start_for_char_mv1(char32_t ch);
-    
-    icu4x::capi::CodePointSetData* icu4x_CodePointSetData_create_xid_start_mv1(void);
-    
-    typedef struct icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_xid_start_with_provider_mv1_result icu4x_CodePointSetData_create_xid_start_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    typedef struct icu4x_CodePointSetData_create_for_ecma262_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_for_ecma262_mv1_result;
-    icu4x_CodePointSetData_create_for_ecma262_mv1_result icu4x_CodePointSetData_create_for_ecma262_mv1(diplomat::capi::DiplomatStringView property_name);
-    
-    typedef struct icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result;
-    icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1_result icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1(const icu4x::capi::DataProvider* provider, diplomat::capi::DiplomatStringView property_name);
-    
-    
-    void icu4x_CodePointSetData_destroy_mv1(CodePointSetData* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::CodePointSetData::contains(char32_t cp) const {
-  auto result = icu4x::capi::icu4x_CodePointSetData_contains_mv1(this->AsFFI(),
-    cp);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointSetData::iter_ranges() const {
-  auto result = icu4x::capi::icu4x_CodePointSetData_iter_ranges_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointSetData::iter_ranges_complemented() const {
-  auto result = icu4x::capi::icu4x_CodePointSetData_iter_ranges_complemented_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_general_category_group(icu4x::GeneralCategoryGroup group) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_general_category_group_mv1(group.AsFFI());
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_general_category_group_with_provider(const icu4x::DataProvider& provider, uint32_t group) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_general_category_group_with_provider_mv1(provider.AsFFI(),
-    group);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::ascii_hex_digit_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_ascii_hex_digit_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_ascii_hex_digit() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ascii_hex_digit_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_ascii_hex_digit_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::alnum_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_alnum_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_alnum() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_alnum_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_alnum_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_alnum_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::alphabetic_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_alphabetic_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_alphabetic() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_alphabetic_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_alphabetic_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_alphabetic_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::bidi_control_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_bidi_control_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_bidi_control() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_bidi_control_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_bidi_control_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_bidi_control_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::bidi_mirrored_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_bidi_mirrored_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_bidi_mirrored() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_bidi_mirrored_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_bidi_mirrored_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::blank_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_blank_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_blank() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_blank_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_blank_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_blank_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::cased_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_cased_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_cased() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_cased_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_cased_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_cased_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::case_ignorable_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_case_ignorable_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_case_ignorable() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_case_ignorable_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_case_ignorable_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::full_composition_exclusion_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_full_composition_exclusion_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_full_composition_exclusion() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_full_composition_exclusion_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_full_composition_exclusion_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_casefolded_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_casefolded_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_casefolded() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_casefolded_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_casefolded_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_casemapped_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_casemapped_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_casemapped() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_casemapped_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_casemapped_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_nfkc_casefolded_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_nfkc_casefolded_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_nfkc_casefolded() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_nfkc_casefolded_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_lowercased_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_lowercased_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_lowercased() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_lowercased_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_lowercased_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_titlecased_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_titlecased_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_titlecased() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_titlecased_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_titlecased_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::changes_when_uppercased_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_changes_when_uppercased_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_changes_when_uppercased() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_uppercased_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_changes_when_uppercased_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::dash_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_dash_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_dash() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_dash_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_dash_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_dash_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::deprecated_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_deprecated_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_deprecated() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_deprecated_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_deprecated_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_deprecated_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::default_ignorable_code_point_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_default_ignorable_code_point_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_default_ignorable_code_point() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_default_ignorable_code_point_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_default_ignorable_code_point_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::diacritic_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_diacritic_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_diacritic() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_diacritic_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_diacritic_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_diacritic_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::emoji_modifier_base_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_emoji_modifier_base_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_emoji_modifier_base() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_modifier_base_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_emoji_modifier_base_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::emoji_component_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_emoji_component_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_emoji_component() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_component_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_emoji_component_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_component_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::emoji_modifier_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_emoji_modifier_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_emoji_modifier() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_modifier_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_emoji_modifier_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::emoji_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_emoji_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_emoji() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_emoji_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::emoji_presentation_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_emoji_presentation_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_emoji_presentation() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_presentation_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_emoji_presentation_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::extender_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_extender_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_extender() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_extender_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_extender_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_extender_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::extended_pictographic_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_extended_pictographic_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_extended_pictographic() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_extended_pictographic_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_extended_pictographic_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::graph_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_graph_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_graph() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_graph_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_graph_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_graph_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::grapheme_base_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_grapheme_base_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_grapheme_base() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_base_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_grapheme_base_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::grapheme_extend_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_grapheme_extend_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_grapheme_extend() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_extend_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_grapheme_extend_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::grapheme_link_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_grapheme_link_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_grapheme_link() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_link_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_grapheme_link_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::hex_digit_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_hex_digit_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_hex_digit() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_hex_digit_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_hex_digit_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_hex_digit_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::hyphen_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_hyphen_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_hyphen() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_hyphen_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_hyphen_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_hyphen_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::id_continue_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_id_continue_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_id_continue() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_id_continue_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_id_continue_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_id_continue_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::ideographic_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_ideographic_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_ideographic() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ideographic_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_ideographic_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ideographic_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::id_start_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_id_start_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_id_start() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_id_start_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_id_start_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_id_start_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::ids_binary_operator_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_ids_binary_operator_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_ids_binary_operator() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ids_binary_operator_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_ids_binary_operator_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::ids_trinary_operator_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_ids_trinary_operator_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_ids_trinary_operator() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ids_trinary_operator_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_ids_trinary_operator_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::join_control_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_join_control_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_join_control() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_join_control_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_join_control_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_join_control_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::logical_order_exception_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_logical_order_exception_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_logical_order_exception() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_logical_order_exception_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_logical_order_exception_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::lowercase_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_lowercase_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_lowercase() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_lowercase_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_lowercase_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_lowercase_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::math_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_math_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_math() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_math_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_math_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_math_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::noncharacter_code_point_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_noncharacter_code_point_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_noncharacter_code_point() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_noncharacter_code_point_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_noncharacter_code_point_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::nfc_inert_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_nfc_inert_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_nfc_inert() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfc_inert_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_nfc_inert_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::nfd_inert_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_nfd_inert_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_nfd_inert() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfd_inert_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_nfd_inert_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::nfkc_inert_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_nfkc_inert_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_nfkc_inert() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfkc_inert_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_nfkc_inert_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::nfkd_inert_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_nfkd_inert_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_nfkd_inert() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfkd_inert_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_nfkd_inert_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::pattern_syntax_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_pattern_syntax_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_pattern_syntax() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_pattern_syntax_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_pattern_syntax_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::pattern_white_space_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_pattern_white_space_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_pattern_white_space() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_pattern_white_space_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_pattern_white_space_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::prepended_concatenation_mark_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_prepended_concatenation_mark_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_prepended_concatenation_mark() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_prepended_concatenation_mark_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_prepended_concatenation_mark_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::print_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_print_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_print() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_print_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_print_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_print_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::quotation_mark_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_quotation_mark_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_quotation_mark() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_quotation_mark_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_quotation_mark_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::radical_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_radical_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_radical() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_radical_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_radical_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_radical_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::regional_indicator_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_regional_indicator_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_regional_indicator() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_regional_indicator_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_regional_indicator_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::soft_dotted_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_soft_dotted_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_soft_dotted() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_soft_dotted_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_soft_dotted_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::segment_starter_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_segment_starter_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_segment_starter() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_segment_starter_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_segment_starter_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_segment_starter_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::case_sensitive_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_case_sensitive_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_case_sensitive() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_case_sensitive_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_case_sensitive_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::sentence_terminal_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_sentence_terminal_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_sentence_terminal() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_sentence_terminal_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_sentence_terminal_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::terminal_punctuation_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_terminal_punctuation_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_terminal_punctuation() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_terminal_punctuation_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_terminal_punctuation_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::unified_ideograph_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_unified_ideograph_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_unified_ideograph() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_unified_ideograph_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_unified_ideograph_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::uppercase_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_uppercase_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_uppercase() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_uppercase_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_uppercase_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_uppercase_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::variation_selector_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_variation_selector_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_variation_selector() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_variation_selector_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_variation_selector_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_variation_selector_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::white_space_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_white_space_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_white_space() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_white_space_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_white_space_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_white_space_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::xdigit_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_xdigit_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_xdigit() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xdigit_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_xdigit_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xdigit_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::xid_continue_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_xid_continue_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_xid_continue() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xid_continue_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_xid_continue_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xid_continue_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline bool icu4x::CodePointSetData::xid_start_for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_xid_start_for_char_mv1(ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetData::create_xid_start() {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xid_start_mv1();
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_xid_start_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_xid_start_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_for_ecma262(std::string_view property_name) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_for_ecma262_mv1({property_name.data(), property_name.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::create_for_ecma262_with_provider(const icu4x::DataProvider& provider, std::string_view property_name) {
-  auto result = icu4x::capi::icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1(provider.AsFFI(),
-    {property_name.data(), property_name.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::CodePointSetData* icu4x::CodePointSetData::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::CodePointSetData*>(this);
-}
-
-inline icu4x::capi::CodePointSetData* icu4x::CodePointSetData::AsFFI() {
-  return reinterpret_cast<icu4x::capi::CodePointSetData*>(this);
-}
-
-inline const icu4x::CodePointSetData* icu4x::CodePointSetData::FromFFI(const icu4x::capi::CodePointSetData* ptr) {
-  return reinterpret_cast<const icu4x::CodePointSetData*>(ptr);
-}
-
-inline icu4x::CodePointSetData* icu4x::CodePointSetData::FromFFI(icu4x::capi::CodePointSetData* ptr) {
-  return reinterpret_cast<icu4x::CodePointSetData*>(ptr);
-}
-
-inline void icu4x::CodePointSetData::operator delete(void* ptr) {
-  icu4x::capi::icu4x_CodePointSetData_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointSetData*>(ptr));
-}
-
-
-#endif // icu4x_CodePointSetData_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.d.hpp
deleted file mode 100644
index e62d41c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_Collator_D_HPP
-#define icu4x_Collator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Collator; }
-class Collator;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-struct CollatorOptionsV1;
-struct CollatorResolvedOptionsV1;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Collator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Collator {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> create_v1(const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options);
-
-  inline int8_t compare(std::string_view left, std::string_view right) const;
-
-  inline int8_t compare16(std::u16string_view left, std::u16string_view right) const;
-
-  inline icu4x::CollatorResolvedOptionsV1 resolved_options_v1() const;
-
-  inline const icu4x::capi::Collator* AsFFI() const;
-  inline icu4x::capi::Collator* AsFFI();
-  inline static const icu4x::Collator* FromFFI(const icu4x::capi::Collator* ptr);
-  inline static icu4x::Collator* FromFFI(icu4x::capi::Collator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Collator() = delete;
-  Collator(const icu4x::Collator&) = delete;
-  Collator(icu4x::Collator&&) noexcept = delete;
-  Collator operator=(const icu4x::Collator&) = delete;
-  Collator operator=(icu4x::Collator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Collator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.hpp
deleted file mode 100644
index 26be48e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Collator.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef icu4x_Collator_HPP
-#define icu4x_Collator_HPP
-
-#include "Collator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CollatorOptionsV1.hpp"
-#include "CollatorResolvedOptionsV1.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_Collator_create_v1_mv1_result {union {icu4x::capi::Collator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Collator_create_v1_mv1_result;
-    icu4x_Collator_create_v1_mv1_result icu4x_Collator_create_v1_mv1(const icu4x::capi::Locale* locale, icu4x::capi::CollatorOptionsV1 options);
-    
-    typedef struct icu4x_Collator_create_v1_with_provider_mv1_result {union {icu4x::capi::Collator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Collator_create_v1_with_provider_mv1_result;
-    icu4x_Collator_create_v1_with_provider_mv1_result icu4x_Collator_create_v1_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::CollatorOptionsV1 options);
-    
-    int8_t icu4x_Collator_compare_utf8_mv1(const icu4x::capi::Collator* self, diplomat::capi::DiplomatStringView left, diplomat::capi::DiplomatStringView right);
-    
-    int8_t icu4x_Collator_compare_utf16_mv1(const icu4x::capi::Collator* self, diplomat::capi::DiplomatString16View left, diplomat::capi::DiplomatString16View right);
-    
-    icu4x::capi::CollatorResolvedOptionsV1 icu4x_Collator_resolved_options_v1_mv1(const icu4x::capi::Collator* self);
-    
-    
-    void icu4x_Collator_destroy_mv1(Collator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> icu4x::Collator::create_v1(const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_Collator_create_v1_mv1(locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Collator>>(std::unique_ptr<icu4x::Collator>(icu4x::Collator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> icu4x::Collator::create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_Collator_create_v1_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Collator>>(std::unique_ptr<icu4x::Collator>(icu4x::Collator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline int8_t icu4x::Collator::compare(std::string_view left, std::string_view right) const {
-  auto result = icu4x::capi::icu4x_Collator_compare_utf8_mv1(this->AsFFI(),
-    {left.data(), left.size()},
-    {right.data(), right.size()});
-  return result;
-}
-
-inline int8_t icu4x::Collator::compare16(std::u16string_view left, std::u16string_view right) const {
-  auto result = icu4x::capi::icu4x_Collator_compare_utf16_mv1(this->AsFFI(),
-    {left.data(), left.size()},
-    {right.data(), right.size()});
-  return result;
-}
-
-inline icu4x::CollatorResolvedOptionsV1 icu4x::Collator::resolved_options_v1() const {
-  auto result = icu4x::capi::icu4x_Collator_resolved_options_v1_mv1(this->AsFFI());
-  return icu4x::CollatorResolvedOptionsV1::FromFFI(result);
-}
-
-inline const icu4x::capi::Collator* icu4x::Collator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Collator*>(this);
-}
-
-inline icu4x::capi::Collator* icu4x::Collator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Collator*>(this);
-}
-
-inline const icu4x::Collator* icu4x::Collator::FromFFI(const icu4x::capi::Collator* ptr) {
-  return reinterpret_cast<const icu4x::Collator*>(ptr);
-}
-
-inline icu4x::Collator* icu4x::Collator::FromFFI(icu4x::capi::Collator* ptr) {
-  return reinterpret_cast<icu4x::Collator*>(ptr);
-}
-
-inline void icu4x::Collator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Collator_destroy_mv1(reinterpret_cast<icu4x::capi::Collator*>(ptr));
-}
-
-
-#endif // icu4x_Collator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp
deleted file mode 100644
index 435f86a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_CollatorAlternateHandling_D_HPP
-#define icu4x_CollatorAlternateHandling_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorAlternateHandling {
-      CollatorAlternateHandling_NonIgnorable = 0,
-      CollatorAlternateHandling_Shifted = 1,
-    };
-    
-    typedef struct CollatorAlternateHandling_option {union { CollatorAlternateHandling ok; }; bool is_ok; } CollatorAlternateHandling_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorAlternateHandling {
-public:
-  enum Value {
-    NonIgnorable = 0,
-    Shifted = 1,
-  };
-
-  CollatorAlternateHandling() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorAlternateHandling(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorAlternateHandling AsFFI() const;
-  inline static icu4x::CollatorAlternateHandling FromFFI(icu4x::capi::CollatorAlternateHandling c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorAlternateHandling_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.hpp
deleted file mode 100644
index ab2501e6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorAlternateHandling.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_CollatorAlternateHandling_HPP
-#define icu4x_CollatorAlternateHandling_HPP
-
-#include "CollatorAlternateHandling.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorAlternateHandling icu4x::CollatorAlternateHandling::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorAlternateHandling>(value);
-}
-
-inline icu4x::CollatorAlternateHandling icu4x::CollatorAlternateHandling::FromFFI(icu4x::capi::CollatorAlternateHandling c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorAlternateHandling_NonIgnorable:
-    case icu4x::capi::CollatorAlternateHandling_Shifted:
-      return static_cast<icu4x::CollatorAlternateHandling::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorAlternateHandling_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp
deleted file mode 100644
index 216d6882..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_CollatorBackwardSecondLevel_D_HPP
-#define icu4x_CollatorBackwardSecondLevel_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorBackwardSecondLevel {
-      CollatorBackwardSecondLevel_Off = 0,
-      CollatorBackwardSecondLevel_On = 1,
-    };
-    
-    typedef struct CollatorBackwardSecondLevel_option {union { CollatorBackwardSecondLevel ok; }; bool is_ok; } CollatorBackwardSecondLevel_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorBackwardSecondLevel {
-public:
-  enum Value {
-    Off = 0,
-    On = 1,
-  };
-
-  CollatorBackwardSecondLevel() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorBackwardSecondLevel(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorBackwardSecondLevel AsFFI() const;
-  inline static icu4x::CollatorBackwardSecondLevel FromFFI(icu4x::capi::CollatorBackwardSecondLevel c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorBackwardSecondLevel_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp
deleted file mode 100644
index 88159eb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_CollatorBackwardSecondLevel_HPP
-#define icu4x_CollatorBackwardSecondLevel_HPP
-
-#include "CollatorBackwardSecondLevel.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorBackwardSecondLevel icu4x::CollatorBackwardSecondLevel::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorBackwardSecondLevel>(value);
-}
-
-inline icu4x::CollatorBackwardSecondLevel icu4x::CollatorBackwardSecondLevel::FromFFI(icu4x::capi::CollatorBackwardSecondLevel c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorBackwardSecondLevel_Off:
-    case icu4x::capi::CollatorBackwardSecondLevel_On:
-      return static_cast<icu4x::CollatorBackwardSecondLevel::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorBackwardSecondLevel_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp
deleted file mode 100644
index 703df060..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_CollatorCaseFirst_D_HPP
-#define icu4x_CollatorCaseFirst_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorCaseFirst {
-      CollatorCaseFirst_Off = 0,
-      CollatorCaseFirst_Lower = 1,
-      CollatorCaseFirst_Upper = 2,
-    };
-    
-    typedef struct CollatorCaseFirst_option {union { CollatorCaseFirst ok; }; bool is_ok; } CollatorCaseFirst_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorCaseFirst {
-public:
-  enum Value {
-    Off = 0,
-    Lower = 1,
-    Upper = 2,
-  };
-
-  CollatorCaseFirst() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorCaseFirst(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorCaseFirst AsFFI() const;
-  inline static icu4x::CollatorCaseFirst FromFFI(icu4x::capi::CollatorCaseFirst c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorCaseFirst_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.hpp
deleted file mode 100644
index ff65b3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseFirst.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_CollatorCaseFirst_HPP
-#define icu4x_CollatorCaseFirst_HPP
-
-#include "CollatorCaseFirst.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorCaseFirst icu4x::CollatorCaseFirst::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorCaseFirst>(value);
-}
-
-inline icu4x::CollatorCaseFirst icu4x::CollatorCaseFirst::FromFFI(icu4x::capi::CollatorCaseFirst c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorCaseFirst_Off:
-    case icu4x::capi::CollatorCaseFirst_Lower:
-    case icu4x::capi::CollatorCaseFirst_Upper:
-      return static_cast<icu4x::CollatorCaseFirst::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorCaseFirst_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp
deleted file mode 100644
index 57832f02..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_CollatorCaseLevel_D_HPP
-#define icu4x_CollatorCaseLevel_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorCaseLevel {
-      CollatorCaseLevel_Off = 0,
-      CollatorCaseLevel_On = 1,
-    };
-    
-    typedef struct CollatorCaseLevel_option {union { CollatorCaseLevel ok; }; bool is_ok; } CollatorCaseLevel_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorCaseLevel {
-public:
-  enum Value {
-    Off = 0,
-    On = 1,
-  };
-
-  CollatorCaseLevel() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorCaseLevel(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorCaseLevel AsFFI() const;
-  inline static icu4x::CollatorCaseLevel FromFFI(icu4x::capi::CollatorCaseLevel c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorCaseLevel_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.hpp
deleted file mode 100644
index 4e5c837..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorCaseLevel.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_CollatorCaseLevel_HPP
-#define icu4x_CollatorCaseLevel_HPP
-
-#include "CollatorCaseLevel.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorCaseLevel icu4x::CollatorCaseLevel::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorCaseLevel>(value);
-}
-
-inline icu4x::CollatorCaseLevel icu4x::CollatorCaseLevel::FromFFI(icu4x::capi::CollatorCaseLevel c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorCaseLevel_Off:
-    case icu4x::capi::CollatorCaseLevel_On:
-      return static_cast<icu4x::CollatorCaseLevel::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorCaseLevel_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp
deleted file mode 100644
index 9008c78f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_CollatorMaxVariable_D_HPP
-#define icu4x_CollatorMaxVariable_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorMaxVariable {
-      CollatorMaxVariable_Space = 0,
-      CollatorMaxVariable_Punctuation = 1,
-      CollatorMaxVariable_Symbol = 2,
-      CollatorMaxVariable_Currency = 3,
-    };
-    
-    typedef struct CollatorMaxVariable_option {union { CollatorMaxVariable ok; }; bool is_ok; } CollatorMaxVariable_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorMaxVariable {
-public:
-  enum Value {
-    Space = 0,
-    Punctuation = 1,
-    Symbol = 2,
-    Currency = 3,
-  };
-
-  CollatorMaxVariable() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorMaxVariable(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorMaxVariable AsFFI() const;
-  inline static icu4x::CollatorMaxVariable FromFFI(icu4x::capi::CollatorMaxVariable c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorMaxVariable_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.hpp
deleted file mode 100644
index 46302868..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorMaxVariable.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_CollatorMaxVariable_HPP
-#define icu4x_CollatorMaxVariable_HPP
-
-#include "CollatorMaxVariable.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorMaxVariable icu4x::CollatorMaxVariable::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorMaxVariable>(value);
-}
-
-inline icu4x::CollatorMaxVariable icu4x::CollatorMaxVariable::FromFFI(icu4x::capi::CollatorMaxVariable c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorMaxVariable_Space:
-    case icu4x::capi::CollatorMaxVariable_Punctuation:
-    case icu4x::capi::CollatorMaxVariable_Symbol:
-    case icu4x::capi::CollatorMaxVariable_Currency:
-      return static_cast<icu4x::CollatorMaxVariable::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorMaxVariable_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.d.hpp
deleted file mode 100644
index 21808e21..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_CollatorNumericOrdering_D_HPP
-#define icu4x_CollatorNumericOrdering_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorNumericOrdering {
-      CollatorNumericOrdering_Off = 0,
-      CollatorNumericOrdering_On = 1,
-    };
-    
-    typedef struct CollatorNumericOrdering_option {union { CollatorNumericOrdering ok; }; bool is_ok; } CollatorNumericOrdering_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorNumericOrdering {
-public:
-  enum Value {
-    Off = 0,
-    On = 1,
-  };
-
-  CollatorNumericOrdering() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorNumericOrdering(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorNumericOrdering AsFFI() const;
-  inline static icu4x::CollatorNumericOrdering FromFFI(icu4x::capi::CollatorNumericOrdering c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorNumericOrdering_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.hpp
deleted file mode 100644
index fb7dee3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorNumericOrdering.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_CollatorNumericOrdering_HPP
-#define icu4x_CollatorNumericOrdering_HPP
-
-#include "CollatorNumericOrdering.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorNumericOrdering icu4x::CollatorNumericOrdering::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorNumericOrdering>(value);
-}
-
-inline icu4x::CollatorNumericOrdering icu4x::CollatorNumericOrdering::FromFFI(icu4x::capi::CollatorNumericOrdering c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorNumericOrdering_Off:
-    case icu4x::capi::CollatorNumericOrdering_On:
-      return static_cast<icu4x::CollatorNumericOrdering::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorNumericOrdering_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp
deleted file mode 100644
index a216a66..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_CollatorOptionsV1_D_HPP
-#define icu4x_CollatorOptionsV1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CollatorAlternateHandling.d.hpp"
-#include "CollatorBackwardSecondLevel.d.hpp"
-#include "CollatorCaseLevel.d.hpp"
-#include "CollatorMaxVariable.d.hpp"
-#include "CollatorStrength.d.hpp"
-
-namespace icu4x {
-class CollatorAlternateHandling;
-class CollatorBackwardSecondLevel;
-class CollatorCaseLevel;
-class CollatorMaxVariable;
-class CollatorStrength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CollatorOptionsV1 {
-      icu4x::capi::CollatorStrength_option strength;
-      icu4x::capi::CollatorAlternateHandling_option alternate_handling;
-      icu4x::capi::CollatorMaxVariable_option max_variable;
-      icu4x::capi::CollatorCaseLevel_option case_level;
-      icu4x::capi::CollatorBackwardSecondLevel_option backward_second_level;
-    };
-    
-    typedef struct CollatorOptionsV1_option {union { CollatorOptionsV1 ok; }; bool is_ok; } CollatorOptionsV1_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct CollatorOptionsV1 {
-  std::optional<icu4x::CollatorStrength> strength;
-  std::optional<icu4x::CollatorAlternateHandling> alternate_handling;
-  std::optional<icu4x::CollatorMaxVariable> max_variable;
-  std::optional<icu4x::CollatorCaseLevel> case_level;
-  std::optional<icu4x::CollatorBackwardSecondLevel> backward_second_level;
-
-  inline icu4x::capi::CollatorOptionsV1 AsFFI() const;
-  inline static icu4x::CollatorOptionsV1 FromFFI(icu4x::capi::CollatorOptionsV1 c_struct);
-};
-
-} // namespace
-#endif // icu4x_CollatorOptionsV1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.hpp
deleted file mode 100644
index 8343f92..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorOptionsV1.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef icu4x_CollatorOptionsV1_HPP
-#define icu4x_CollatorOptionsV1_HPP
-
-#include "CollatorOptionsV1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CollatorAlternateHandling.hpp"
-#include "CollatorBackwardSecondLevel.hpp"
-#include "CollatorCaseLevel.hpp"
-#include "CollatorMaxVariable.hpp"
-#include "CollatorStrength.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::CollatorOptionsV1 icu4x::CollatorOptionsV1::AsFFI() const {
-  return icu4x::capi::CollatorOptionsV1 {
-    /* .strength = */ strength.has_value() ? (icu4x::capi::CollatorStrength_option{ { strength.value().AsFFI() }, true }) : (icu4x::capi::CollatorStrength_option{ {}, false }),
-    /* .alternate_handling = */ alternate_handling.has_value() ? (icu4x::capi::CollatorAlternateHandling_option{ { alternate_handling.value().AsFFI() }, true }) : (icu4x::capi::CollatorAlternateHandling_option{ {}, false }),
-    /* .max_variable = */ max_variable.has_value() ? (icu4x::capi::CollatorMaxVariable_option{ { max_variable.value().AsFFI() }, true }) : (icu4x::capi::CollatorMaxVariable_option{ {}, false }),
-    /* .case_level = */ case_level.has_value() ? (icu4x::capi::CollatorCaseLevel_option{ { case_level.value().AsFFI() }, true }) : (icu4x::capi::CollatorCaseLevel_option{ {}, false }),
-    /* .backward_second_level = */ backward_second_level.has_value() ? (icu4x::capi::CollatorBackwardSecondLevel_option{ { backward_second_level.value().AsFFI() }, true }) : (icu4x::capi::CollatorBackwardSecondLevel_option{ {}, false }),
-  };
-}
-
-inline icu4x::CollatorOptionsV1 icu4x::CollatorOptionsV1::FromFFI(icu4x::capi::CollatorOptionsV1 c_struct) {
-  return icu4x::CollatorOptionsV1 {
-    /* .strength = */ c_struct.strength.is_ok ? std::optional(icu4x::CollatorStrength::FromFFI(c_struct.strength.ok)) : std::nullopt,
-    /* .alternate_handling = */ c_struct.alternate_handling.is_ok ? std::optional(icu4x::CollatorAlternateHandling::FromFFI(c_struct.alternate_handling.ok)) : std::nullopt,
-    /* .max_variable = */ c_struct.max_variable.is_ok ? std::optional(icu4x::CollatorMaxVariable::FromFFI(c_struct.max_variable.ok)) : std::nullopt,
-    /* .case_level = */ c_struct.case_level.is_ok ? std::optional(icu4x::CollatorCaseLevel::FromFFI(c_struct.case_level.ok)) : std::nullopt,
-    /* .backward_second_level = */ c_struct.backward_second_level.is_ok ? std::optional(icu4x::CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level.ok)) : std::nullopt,
-  };
-}
-
-
-#endif // icu4x_CollatorOptionsV1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp
deleted file mode 100644
index a1078aa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_CollatorResolvedOptionsV1_D_HPP
-#define icu4x_CollatorResolvedOptionsV1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CollatorAlternateHandling.d.hpp"
-#include "CollatorBackwardSecondLevel.d.hpp"
-#include "CollatorCaseFirst.d.hpp"
-#include "CollatorCaseLevel.d.hpp"
-#include "CollatorMaxVariable.d.hpp"
-#include "CollatorNumericOrdering.d.hpp"
-#include "CollatorStrength.d.hpp"
-
-namespace icu4x {
-class CollatorAlternateHandling;
-class CollatorBackwardSecondLevel;
-class CollatorCaseFirst;
-class CollatorCaseLevel;
-class CollatorMaxVariable;
-class CollatorNumericOrdering;
-class CollatorStrength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct CollatorResolvedOptionsV1 {
-      icu4x::capi::CollatorStrength strength;
-      icu4x::capi::CollatorAlternateHandling alternate_handling;
-      icu4x::capi::CollatorCaseFirst case_first;
-      icu4x::capi::CollatorMaxVariable max_variable;
-      icu4x::capi::CollatorCaseLevel case_level;
-      icu4x::capi::CollatorNumericOrdering numeric;
-      icu4x::capi::CollatorBackwardSecondLevel backward_second_level;
-    };
-    
-    typedef struct CollatorResolvedOptionsV1_option {union { CollatorResolvedOptionsV1 ok; }; bool is_ok; } CollatorResolvedOptionsV1_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct CollatorResolvedOptionsV1 {
-  icu4x::CollatorStrength strength;
-  icu4x::CollatorAlternateHandling alternate_handling;
-  icu4x::CollatorCaseFirst case_first;
-  icu4x::CollatorMaxVariable max_variable;
-  icu4x::CollatorCaseLevel case_level;
-  icu4x::CollatorNumericOrdering numeric;
-  icu4x::CollatorBackwardSecondLevel backward_second_level;
-
-  inline icu4x::capi::CollatorResolvedOptionsV1 AsFFI() const;
-  inline static icu4x::CollatorResolvedOptionsV1 FromFFI(icu4x::capi::CollatorResolvedOptionsV1 c_struct);
-};
-
-} // namespace
-#endif // icu4x_CollatorResolvedOptionsV1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp
deleted file mode 100644
index 789cc8f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef icu4x_CollatorResolvedOptionsV1_HPP
-#define icu4x_CollatorResolvedOptionsV1_HPP
-
-#include "CollatorResolvedOptionsV1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CollatorAlternateHandling.hpp"
-#include "CollatorBackwardSecondLevel.hpp"
-#include "CollatorCaseFirst.hpp"
-#include "CollatorCaseLevel.hpp"
-#include "CollatorMaxVariable.hpp"
-#include "CollatorNumericOrdering.hpp"
-#include "CollatorStrength.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::CollatorResolvedOptionsV1 icu4x::CollatorResolvedOptionsV1::AsFFI() const {
-  return icu4x::capi::CollatorResolvedOptionsV1 {
-    /* .strength = */ strength.AsFFI(),
-    /* .alternate_handling = */ alternate_handling.AsFFI(),
-    /* .case_first = */ case_first.AsFFI(),
-    /* .max_variable = */ max_variable.AsFFI(),
-    /* .case_level = */ case_level.AsFFI(),
-    /* .numeric = */ numeric.AsFFI(),
-    /* .backward_second_level = */ backward_second_level.AsFFI(),
-  };
-}
-
-inline icu4x::CollatorResolvedOptionsV1 icu4x::CollatorResolvedOptionsV1::FromFFI(icu4x::capi::CollatorResolvedOptionsV1 c_struct) {
-  return icu4x::CollatorResolvedOptionsV1 {
-    /* .strength = */ icu4x::CollatorStrength::FromFFI(c_struct.strength),
-    /* .alternate_handling = */ icu4x::CollatorAlternateHandling::FromFFI(c_struct.alternate_handling),
-    /* .case_first = */ icu4x::CollatorCaseFirst::FromFFI(c_struct.case_first),
-    /* .max_variable = */ icu4x::CollatorMaxVariable::FromFFI(c_struct.max_variable),
-    /* .case_level = */ icu4x::CollatorCaseLevel::FromFFI(c_struct.case_level),
-    /* .numeric = */ icu4x::CollatorNumericOrdering::FromFFI(c_struct.numeric),
-    /* .backward_second_level = */ icu4x::CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level),
-  };
-}
-
-
-#endif // icu4x_CollatorResolvedOptionsV1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.d.hpp
deleted file mode 100644
index d2ae431b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_CollatorStrength_D_HPP
-#define icu4x_CollatorStrength_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum CollatorStrength {
-      CollatorStrength_Primary = 0,
-      CollatorStrength_Secondary = 1,
-      CollatorStrength_Tertiary = 2,
-      CollatorStrength_Quaternary = 3,
-      CollatorStrength_Identical = 4,
-    };
-    
-    typedef struct CollatorStrength_option {union { CollatorStrength ok; }; bool is_ok; } CollatorStrength_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class CollatorStrength {
-public:
-  enum Value {
-    Primary = 0,
-    Secondary = 1,
-    Tertiary = 2,
-    Quaternary = 3,
-    Identical = 4,
-  };
-
-  CollatorStrength() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr CollatorStrength(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::CollatorStrength AsFFI() const;
-  inline static icu4x::CollatorStrength FromFFI(icu4x::capi::CollatorStrength c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_CollatorStrength_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.hpp
deleted file mode 100644
index d353402d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/CollatorStrength.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_CollatorStrength_HPP
-#define icu4x_CollatorStrength_HPP
-
-#include "CollatorStrength.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::CollatorStrength icu4x::CollatorStrength::AsFFI() const {
-  return static_cast<icu4x::capi::CollatorStrength>(value);
-}
-
-inline icu4x::CollatorStrength icu4x::CollatorStrength::FromFFI(icu4x::capi::CollatorStrength c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::CollatorStrength_Primary:
-    case icu4x::capi::CollatorStrength_Secondary:
-    case icu4x::capi::CollatorStrength_Tertiary:
-    case icu4x::capi::CollatorStrength_Quaternary:
-    case icu4x::capi::CollatorStrength_Identical:
-      return static_cast<icu4x::CollatorStrength::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_CollatorStrength_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.d.hpp
deleted file mode 100644
index 82422b4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.d.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef icu4x_ComposingNormalizer_D_HPP
-#define icu4x_ComposingNormalizer_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct ComposingNormalizer; }
-class ComposingNormalizer;
-namespace capi { struct DataProvider; }
-class DataProvider;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ComposingNormalizer;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ComposingNormalizer {
-public:
-
-  inline static std::unique_ptr<icu4x::ComposingNormalizer> create_nfc();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> create_nfc_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::ComposingNormalizer> create_nfkc();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> create_nfkc_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::string normalize(std::string_view s) const;
-
-  inline bool is_normalized(std::string_view s) const;
-
-  inline bool is_normalized16(std::u16string_view s) const;
-
-  inline size_t is_normalized_up_to(std::string_view s) const;
-
-  inline size_t is_normalized16_up_to(std::u16string_view s) const;
-
-  inline const icu4x::capi::ComposingNormalizer* AsFFI() const;
-  inline icu4x::capi::ComposingNormalizer* AsFFI();
-  inline static const icu4x::ComposingNormalizer* FromFFI(const icu4x::capi::ComposingNormalizer* ptr);
-  inline static icu4x::ComposingNormalizer* FromFFI(icu4x::capi::ComposingNormalizer* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ComposingNormalizer() = delete;
-  ComposingNormalizer(const icu4x::ComposingNormalizer&) = delete;
-  ComposingNormalizer(icu4x::ComposingNormalizer&&) noexcept = delete;
-  ComposingNormalizer operator=(const icu4x::ComposingNormalizer&) = delete;
-  ComposingNormalizer operator=(icu4x::ComposingNormalizer&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ComposingNormalizer_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.hpp
deleted file mode 100644
index 31056843..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ComposingNormalizer.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef icu4x_ComposingNormalizer_HPP
-#define icu4x_ComposingNormalizer_HPP
-
-#include "ComposingNormalizer.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::ComposingNormalizer* icu4x_ComposingNormalizer_create_nfc_mv1(void);
-    
-    typedef struct icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result;
-    icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::ComposingNormalizer* icu4x_ComposingNormalizer_create_nfkc_mv1(void);
-    
-    typedef struct icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result;
-    icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    void icu4x_ComposingNormalizer_normalize_mv1(const icu4x::capi::ComposingNormalizer* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    bool icu4x_ComposingNormalizer_is_normalized_utf8_mv1(const icu4x::capi::ComposingNormalizer* self, diplomat::capi::DiplomatStringView s);
-    
-    bool icu4x_ComposingNormalizer_is_normalized_utf16_mv1(const icu4x::capi::ComposingNormalizer* self, diplomat::capi::DiplomatString16View s);
-    
-    size_t icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, diplomat::capi::DiplomatStringView s);
-    
-    size_t icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, diplomat::capi::DiplomatString16View s);
-    
-    
-    void icu4x_ComposingNormalizer_destroy_mv1(ComposingNormalizer* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::ComposingNormalizer> icu4x::ComposingNormalizer::create_nfc() {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfc_mv1();
-  return std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> icu4x::ComposingNormalizer::create_nfc_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ComposingNormalizer>>(std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::ComposingNormalizer> icu4x::ComposingNormalizer::create_nfkc() {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfkc_mv1();
-  return std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> icu4x::ComposingNormalizer::create_nfkc_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ComposingNormalizer>>(std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::ComposingNormalizer::normalize(std::string_view s) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_ComposingNormalizer_normalize_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    &write);
-  return output;
-}
-
-inline bool icu4x::ComposingNormalizer::is_normalized(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline bool icu4x::ComposingNormalizer::is_normalized16(std::u16string_view s) const {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline size_t icu4x::ComposingNormalizer::is_normalized_up_to(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline size_t icu4x::ComposingNormalizer::is_normalized16_up_to(std::u16string_view s) const {
-  auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline const icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ComposingNormalizer*>(this);
-}
-
-inline icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ComposingNormalizer*>(this);
-}
-
-inline const icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(const icu4x::capi::ComposingNormalizer* ptr) {
-  return reinterpret_cast<const icu4x::ComposingNormalizer*>(ptr);
-}
-
-inline icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(icu4x::capi::ComposingNormalizer* ptr) {
-  return reinterpret_cast<icu4x::ComposingNormalizer*>(ptr);
-}
-
-inline void icu4x::ComposingNormalizer::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ComposingNormalizer_destroy_mv1(reinterpret_cast<icu4x::capi::ComposingNormalizer*>(ptr));
-}
-
-
-#endif // icu4x_ComposingNormalizer_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.d.hpp
deleted file mode 100644
index bd0ed46..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_DataError_D_HPP
-#define icu4x_DataError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DataError {
-      DataError_Unknown = 0,
-      DataError_MarkerNotFound = 1,
-      DataError_IdentifierNotFound = 2,
-      DataError_InvalidRequest = 3,
-      DataError_InconsistentData = 4,
-      DataError_Downcast = 5,
-      DataError_Deserialize = 6,
-      DataError_Custom = 7,
-      DataError_Io = 8,
-    };
-    
-    typedef struct DataError_option {union { DataError ok; }; bool is_ok; } DataError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DataError {
-public:
-  enum Value {
-    Unknown = 0,
-    MarkerNotFound = 1,
-    IdentifierNotFound = 2,
-    InvalidRequest = 3,
-    InconsistentData = 4,
-    Downcast = 5,
-    Deserialize = 6,
-    Custom = 7,
-    Io = 8,
-  };
-
-  DataError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DataError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DataError AsFFI() const;
-  inline static icu4x::DataError FromFFI(icu4x::capi::DataError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DataError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.hpp
deleted file mode 100644
index 601d07a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataError.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_DataError_HPP
-#define icu4x_DataError_HPP
-
-#include "DataError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DataError icu4x::DataError::AsFFI() const {
-  return static_cast<icu4x::capi::DataError>(value);
-}
-
-inline icu4x::DataError icu4x::DataError::FromFFI(icu4x::capi::DataError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DataError_Unknown:
-    case icu4x::capi::DataError_MarkerNotFound:
-    case icu4x::capi::DataError_IdentifierNotFound:
-    case icu4x::capi::DataError_InvalidRequest:
-    case icu4x::capi::DataError_InconsistentData:
-    case icu4x::capi::DataError_Downcast:
-    case icu4x::capi::DataError_Deserialize:
-    case icu4x::capi::DataError_Custom:
-    case icu4x::capi::DataError_Io:
-      return static_cast<icu4x::DataError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DataError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.d.hpp
deleted file mode 100644
index 3ccb8c4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.d.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_DataProvider_D_HPP
-#define icu4x_DataProvider_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct LocaleFallbacker; }
-class LocaleFallbacker;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DataProvider;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DataProvider {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> from_fs(std::string_view path);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> from_byte_slice(diplomat::span<const uint8_t> blob);
-
-  inline diplomat::result<std::monostate, icu4x::DataError> fork_by_key(icu4x::DataProvider& other);
-
-  inline diplomat::result<std::monostate, icu4x::DataError> fork_by_locale(icu4x::DataProvider& other);
-
-  inline diplomat::result<std::monostate, icu4x::DataError> enable_locale_fallback_with(const icu4x::LocaleFallbacker& fallbacker);
-
-  inline const icu4x::capi::DataProvider* AsFFI() const;
-  inline icu4x::capi::DataProvider* AsFFI();
-  inline static const icu4x::DataProvider* FromFFI(const icu4x::capi::DataProvider* ptr);
-  inline static icu4x::DataProvider* FromFFI(icu4x::capi::DataProvider* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DataProvider() = delete;
-  DataProvider(const icu4x::DataProvider&) = delete;
-  DataProvider(icu4x::DataProvider&&) noexcept = delete;
-  DataProvider operator=(const icu4x::DataProvider&) = delete;
-  DataProvider operator=(icu4x::DataProvider&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DataProvider_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.hpp
deleted file mode 100644
index 8d5d3f5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DataProvider.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef icu4x_DataProvider_HPP
-#define icu4x_DataProvider_HPP
-
-#include "DataProvider.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "LocaleFallbacker.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DataProvider_from_fs_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_fs_mv1_result;
-    icu4x_DataProvider_from_fs_mv1_result icu4x_DataProvider_from_fs_mv1(diplomat::capi::DiplomatStringView path);
-    
-    typedef struct icu4x_DataProvider_from_byte_slice_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_byte_slice_mv1_result;
-    icu4x_DataProvider_from_byte_slice_mv1_result icu4x_DataProvider_from_byte_slice_mv1(diplomat::capi::DiplomatU8View blob);
-    
-    typedef struct icu4x_DataProvider_fork_by_key_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_key_mv1_result;
-    icu4x_DataProvider_fork_by_key_mv1_result icu4x_DataProvider_fork_by_key_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other);
-    
-    typedef struct icu4x_DataProvider_fork_by_locale_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_locale_mv1_result;
-    icu4x_DataProvider_fork_by_locale_mv1_result icu4x_DataProvider_fork_by_locale_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other);
-    
-    typedef struct icu4x_DataProvider_enable_locale_fallback_with_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_enable_locale_fallback_with_mv1_result;
-    icu4x_DataProvider_enable_locale_fallback_with_mv1_result icu4x_DataProvider_enable_locale_fallback_with_mv1(icu4x::capi::DataProvider* self, const icu4x::capi::LocaleFallbacker* fallbacker);
-    
-    
-    void icu4x_DataProvider_destroy_mv1(DataProvider* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> icu4x::DataProvider::from_fs(std::string_view path) {
-  auto result = icu4x::capi::icu4x_DataProvider_from_fs_mv1({path.data(), path.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DataProvider>>(std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> icu4x::DataProvider::from_byte_slice(diplomat::span<const uint8_t> blob) {
-  auto result = icu4x::capi::icu4x_DataProvider_from_byte_slice_mv1({blob.data(), blob.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DataProvider>>(std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::fork_by_key(icu4x::DataProvider& other) {
-  auto result = icu4x::capi::icu4x_DataProvider_fork_by_key_mv1(this->AsFFI(),
-    other.AsFFI());
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::fork_by_locale(icu4x::DataProvider& other) {
-  auto result = icu4x::capi::icu4x_DataProvider_fork_by_locale_mv1(this->AsFFI(),
-    other.AsFFI());
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::enable_locale_fallback_with(const icu4x::LocaleFallbacker& fallbacker) {
-  auto result = icu4x::capi::icu4x_DataProvider_enable_locale_fallback_with_mv1(this->AsFFI(),
-    fallbacker.AsFFI());
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DataProvider*>(this);
-}
-
-inline icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DataProvider*>(this);
-}
-
-inline const icu4x::DataProvider* icu4x::DataProvider::FromFFI(const icu4x::capi::DataProvider* ptr) {
-  return reinterpret_cast<const icu4x::DataProvider*>(ptr);
-}
-
-inline icu4x::DataProvider* icu4x::DataProvider::FromFFI(icu4x::capi::DataProvider* ptr) {
-  return reinterpret_cast<icu4x::DataProvider*>(ptr);
-}
-
-inline void icu4x::DataProvider::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DataProvider_destroy_mv1(reinterpret_cast<icu4x::capi::DataProvider*>(ptr));
-}
-
-
-#endif // icu4x_DataProvider_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.d.hpp
deleted file mode 100644
index 8c5686d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.d.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef icu4x_Date_D_HPP
-#define icu4x_Date_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct WeekCalculator; }
-class WeekCalculator;
-struct WeekOf;
-class CalendarError;
-class CalendarParseError;
-class Weekday;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Date;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Date {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const icu4x::Calendar& calendar);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::Calendar& calendar);
-
-  inline std::unique_ptr<icu4x::Date> to_calendar(const icu4x::Calendar& calendar) const;
-
-  inline std::unique_ptr<icu4x::IsoDate> to_iso() const;
-
-  inline uint16_t day_of_year() const;
-
-  inline uint8_t day_of_month() const;
-
-  inline icu4x::Weekday day_of_week() const;
-
-  inline uint8_t week_of_month(icu4x::Weekday first_weekday) const;
-
-  inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const;
-
-  inline uint8_t ordinal_month() const;
-
-  inline std::string month_code() const;
-
-  inline uint8_t month_number() const;
-
-  inline bool month_is_leap() const;
-
-  inline int32_t year_in_era() const;
-
-  inline int32_t extended_year() const;
-
-  inline std::string era() const;
-
-  inline uint8_t months_in_year() const;
-
-  inline uint8_t days_in_month() const;
-
-  inline uint16_t days_in_year() const;
-
-  inline std::unique_ptr<icu4x::Calendar> calendar() const;
-
-  inline const icu4x::capi::Date* AsFFI() const;
-  inline icu4x::capi::Date* AsFFI();
-  inline static const icu4x::Date* FromFFI(const icu4x::capi::Date* ptr);
-  inline static icu4x::Date* FromFFI(icu4x::capi::Date* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Date() = delete;
-  Date(const icu4x::Date&) = delete;
-  Date(icu4x::Date&&) noexcept = delete;
-  Date operator=(const icu4x::Date&) = delete;
-  Date operator=(icu4x::Date&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Date_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.hpp
deleted file mode 100644
index bd1e016..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Date.hpp
+++ /dev/null
@@ -1,222 +0,0 @@
-#ifndef icu4x_Date_HPP
-#define icu4x_Date_HPP
-
-#include "Date.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Calendar.hpp"
-#include "CalendarError.hpp"
-#include "CalendarParseError.hpp"
-#include "IsoDate.hpp"
-#include "WeekCalculator.hpp"
-#include "WeekOf.hpp"
-#include "Weekday.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_Date_from_iso_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_iso_in_calendar_mv1_result;
-    icu4x_Date_from_iso_in_calendar_mv1_result icu4x_Date_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, const icu4x::capi::Calendar* calendar);
-    
-    typedef struct icu4x_Date_from_codes_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_codes_in_calendar_mv1_result;
-    icu4x_Date_from_codes_in_calendar_mv1_result icu4x_Date_from_codes_in_calendar_mv1(diplomat::capi::DiplomatStringView era_code, int32_t year, diplomat::capi::DiplomatStringView month_code, uint8_t day, const icu4x::capi::Calendar* calendar);
-    
-    typedef struct icu4x_Date_from_string_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_Date_from_string_mv1_result;
-    icu4x_Date_from_string_mv1_result icu4x_Date_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar);
-    
-    icu4x::capi::Date* icu4x_Date_to_calendar_mv1(const icu4x::capi::Date* self, const icu4x::capi::Calendar* calendar);
-    
-    icu4x::capi::IsoDate* icu4x_Date_to_iso_mv1(const icu4x::capi::Date* self);
-    
-    uint16_t icu4x_Date_day_of_year_mv1(const icu4x::capi::Date* self);
-    
-    uint8_t icu4x_Date_day_of_month_mv1(const icu4x::capi::Date* self);
-    
-    icu4x::capi::Weekday icu4x_Date_day_of_week_mv1(const icu4x::capi::Date* self);
-    
-    uint8_t icu4x_Date_week_of_month_mv1(const icu4x::capi::Date* self, icu4x::capi::Weekday first_weekday);
-    
-    icu4x::capi::WeekOf icu4x_Date_week_of_year_mv1(const icu4x::capi::Date* self, const icu4x::capi::WeekCalculator* calculator);
-    
-    uint8_t icu4x_Date_ordinal_month_mv1(const icu4x::capi::Date* self);
-    
-    void icu4x_Date_month_code_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write);
-    
-    uint8_t icu4x_Date_month_number_mv1(const icu4x::capi::Date* self);
-    
-    bool icu4x_Date_month_is_leap_mv1(const icu4x::capi::Date* self);
-    
-    int32_t icu4x_Date_year_in_era_mv1(const icu4x::capi::Date* self);
-    
-    int32_t icu4x_Date_extended_year_mv1(const icu4x::capi::Date* self);
-    
-    void icu4x_Date_era_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write);
-    
-    uint8_t icu4x_Date_months_in_year_mv1(const icu4x::capi::Date* self);
-    
-    uint8_t icu4x_Date_days_in_month_mv1(const icu4x::capi::Date* self);
-    
-    uint16_t icu4x_Date_days_in_year_mv1(const icu4x::capi::Date* self);
-    
-    icu4x::capi::Calendar* icu4x_Date_calendar_mv1(const icu4x::capi::Date* self);
-    
-    
-    void icu4x_Date_destroy_mv1(Date* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const icu4x::Calendar& calendar) {
-  auto result = icu4x::capi::icu4x_Date_from_iso_in_calendar_mv1(year,
-    month,
-    day,
-    calendar.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar) {
-  auto result = icu4x::capi::icu4x_Date_from_codes_in_calendar_mv1({era_code.data(), era_code.size()},
-    year,
-    {month_code.data(), month_code.size()},
-    day,
-    calendar.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError> icu4x::Date::from_string(std::string_view v, const icu4x::Calendar& calendar) {
-  auto result = icu4x::capi::icu4x_Date_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::Date> icu4x::Date::to_calendar(const icu4x::Calendar& calendar) const {
-  auto result = icu4x::capi::icu4x_Date_to_calendar_mv1(this->AsFFI(),
-    calendar.AsFFI());
-  return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::IsoDate> icu4x::Date::to_iso() const {
-  auto result = icu4x::capi::icu4x_Date_to_iso_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result));
-}
-
-inline uint16_t icu4x::Date::day_of_year() const {
-  auto result = icu4x::capi::icu4x_Date_day_of_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::Date::day_of_month() const {
-  auto result = icu4x::capi::icu4x_Date_day_of_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::Weekday icu4x::Date::day_of_week() const {
-  auto result = icu4x::capi::icu4x_Date_day_of_week_mv1(this->AsFFI());
-  return icu4x::Weekday::FromFFI(result);
-}
-
-inline uint8_t icu4x::Date::week_of_month(icu4x::Weekday first_weekday) const {
-  auto result = icu4x::capi::icu4x_Date_week_of_month_mv1(this->AsFFI(),
-    first_weekday.AsFFI());
-  return result;
-}
-
-inline icu4x::WeekOf icu4x::Date::week_of_year(const icu4x::WeekCalculator& calculator) const {
-  auto result = icu4x::capi::icu4x_Date_week_of_year_mv1(this->AsFFI(),
-    calculator.AsFFI());
-  return icu4x::WeekOf::FromFFI(result);
-}
-
-inline uint8_t icu4x::Date::ordinal_month() const {
-  auto result = icu4x::capi::icu4x_Date_ordinal_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::string icu4x::Date::month_code() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Date_month_code_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline uint8_t icu4x::Date::month_number() const {
-  auto result = icu4x::capi::icu4x_Date_month_number_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::Date::month_is_leap() const {
-  auto result = icu4x::capi::icu4x_Date_month_is_leap_mv1(this->AsFFI());
-  return result;
-}
-
-inline int32_t icu4x::Date::year_in_era() const {
-  auto result = icu4x::capi::icu4x_Date_year_in_era_mv1(this->AsFFI());
-  return result;
-}
-
-inline int32_t icu4x::Date::extended_year() const {
-  auto result = icu4x::capi::icu4x_Date_extended_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::string icu4x::Date::era() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Date_era_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline uint8_t icu4x::Date::months_in_year() const {
-  auto result = icu4x::capi::icu4x_Date_months_in_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::Date::days_in_month() const {
-  auto result = icu4x::capi::icu4x_Date_days_in_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint16_t icu4x::Date::days_in_year() const {
-  auto result = icu4x::capi::icu4x_Date_days_in_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::unique_ptr<icu4x::Calendar> icu4x::Date::calendar() const {
-  auto result = icu4x::capi::icu4x_Date_calendar_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result));
-}
-
-inline const icu4x::capi::Date* icu4x::Date::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Date*>(this);
-}
-
-inline icu4x::capi::Date* icu4x::Date::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Date*>(this);
-}
-
-inline const icu4x::Date* icu4x::Date::FromFFI(const icu4x::capi::Date* ptr) {
-  return reinterpret_cast<const icu4x::Date*>(ptr);
-}
-
-inline icu4x::Date* icu4x::Date::FromFFI(icu4x::capi::Date* ptr) {
-  return reinterpret_cast<icu4x::Date*>(ptr);
-}
-
-inline void icu4x::Date::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Date_destroy_mv1(reinterpret_cast<icu4x::capi::Date*>(ptr));
-}
-
-
-#endif // icu4x_Date_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.d.hpp
deleted file mode 100644
index fe6c13e3e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_DateFormatter_D_HPP
-#define icu4x_DateFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct DateFormatter; }
-class DateFormatter;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-class DateTimeFormatError;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DateFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline diplomat::result<std::string, icu4x::DateTimeFormatError> format(const icu4x::Date& value) const;
-
-  inline diplomat::result<std::string, icu4x::DateTimeFormatError> format_iso(const icu4x::IsoDate& value) const;
-
-  inline std::unique_ptr<icu4x::Calendar> calendar() const;
-
-  inline const icu4x::capi::DateFormatter* AsFFI() const;
-  inline icu4x::capi::DateFormatter* AsFFI();
-  inline static const icu4x::DateFormatter* FromFFI(const icu4x::capi::DateFormatter* ptr);
-  inline static icu4x::DateFormatter* FromFFI(icu4x::capi::DateFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DateFormatter() = delete;
-  DateFormatter(const icu4x::DateFormatter&) = delete;
-  DateFormatter(icu4x::DateFormatter&&) noexcept = delete;
-  DateFormatter operator=(const icu4x::DateFormatter&) = delete;
-  DateFormatter operator=(icu4x::DateFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DateFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.hpp
deleted file mode 100644
index 27f57270..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateFormatter.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef icu4x_DateFormatter_HPP
-#define icu4x_DateFormatter_HPP
-
-#include "DateFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Calendar.hpp"
-#include "DataProvider.hpp"
-#include "Date.hpp"
-#include "DateTimeFormatError.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DateFormatter_create_with_length_mv1_result {union {icu4x::capi::DateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_mv1_result;
-    icu4x_DateFormatter_create_with_length_mv1_result icu4x_DateFormatter_create_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_DateFormatter_create_with_length_and_provider_mv1_result {union {icu4x::capi::DateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_and_provider_mv1_result;
-    icu4x_DateFormatter_create_with_length_and_provider_mv1_result icu4x_DateFormatter_create_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_DateFormatter_format_mv1_result {union { icu4x::capi::DateTimeFormatError err;}; bool is_ok;} icu4x_DateFormatter_format_mv1_result;
-    icu4x_DateFormatter_format_mv1_result icu4x_DateFormatter_format_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::Date* value, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_DateFormatter_format_iso_mv1_result {union { icu4x::capi::DateTimeFormatError err;}; bool is_ok;} icu4x_DateFormatter_format_iso_mv1_result;
-    icu4x_DateFormatter_format_iso_mv1_result icu4x_DateFormatter_format_iso_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write);
-    
-    icu4x::capi::Calendar* icu4x_DateFormatter_calendar_mv1(const icu4x::capi::DateFormatter* self);
-    
-    
-    void icu4x_DateFormatter_destroy_mv1(DateFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatter::create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_DateFormatter_create_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatter>>(std::unique_ptr<icu4x::DateFormatter>(icu4x::DateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatter::create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_DateFormatter_create_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatter>>(std::unique_ptr<icu4x::DateFormatter>(icu4x::DateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeFormatError> icu4x::DateFormatter::format(const icu4x::Date& value) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_DateFormatter_format_mv1(this->AsFFI(),
-    value.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Err<icu4x::DateTimeFormatError>(icu4x::DateTimeFormatError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeFormatError> icu4x::DateFormatter::format_iso(const icu4x::IsoDate& value) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_DateFormatter_format_iso_mv1(this->AsFFI(),
-    value.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Err<icu4x::DateTimeFormatError>(icu4x::DateTimeFormatError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::Calendar> icu4x::DateFormatter::calendar() const {
-  auto result = icu4x::capi::icu4x_DateFormatter_calendar_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result));
-}
-
-inline const icu4x::capi::DateFormatter* icu4x::DateFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DateFormatter*>(this);
-}
-
-inline icu4x::capi::DateFormatter* icu4x::DateFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DateFormatter*>(this);
-}
-
-inline const icu4x::DateFormatter* icu4x::DateFormatter::FromFFI(const icu4x::capi::DateFormatter* ptr) {
-  return reinterpret_cast<const icu4x::DateFormatter*>(ptr);
-}
-
-inline icu4x::DateFormatter* icu4x::DateFormatter::FromFFI(icu4x::capi::DateFormatter* ptr) {
-  return reinterpret_cast<icu4x::DateFormatter*>(ptr);
-}
-
-inline void icu4x::DateFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DateFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::DateFormatter*>(ptr));
-}
-
-
-#endif // icu4x_DateFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.d.hpp
deleted file mode 100644
index a0a9170b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_DateTime_D_HPP
-#define icu4x_DateTime_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct Time; }
-class Time;
-struct DateTime;
-class CalendarParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DateTime {
-      icu4x::capi::Date* date;
-      icu4x::capi::Time* time;
-    };
-    
-    typedef struct DateTime_option {union { DateTime ok; }; bool is_ok; } DateTime_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct DateTime {
-  std::unique_ptr<icu4x::Date> date;
-  std::unique_ptr<icu4x::Time> time;
-
-  inline static diplomat::result<icu4x::DateTime, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::Calendar& calendar);
-
-  inline icu4x::capi::DateTime AsFFI() const;
-  inline static icu4x::DateTime FromFFI(icu4x::capi::DateTime c_struct);
-};
-
-} // namespace
-#endif // icu4x_DateTime_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.hpp
deleted file mode 100644
index 91a7ad3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTime.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef icu4x_DateTime_HPP
-#define icu4x_DateTime_HPP
-
-#include "DateTime.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Calendar.hpp"
-#include "CalendarParseError.hpp"
-#include "Date.hpp"
-#include "Time.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DateTime_from_string_mv1_result {union {icu4x::capi::DateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_DateTime_from_string_mv1_result;
-    icu4x_DateTime_from_string_mv1_result icu4x_DateTime_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<icu4x::DateTime, icu4x::CalendarParseError> icu4x::DateTime::from_string(std::string_view v, const icu4x::Calendar& calendar) {
-  auto result = icu4x::capi::icu4x_DateTime_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::DateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::DateTime>(icu4x::DateTime::FromFFI(result.ok))) : diplomat::result<icu4x::DateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-
-inline icu4x::capi::DateTime icu4x::DateTime::AsFFI() const {
-  return icu4x::capi::DateTime {
-    /* .date = */ date->AsFFI(),
-    /* .time = */ time->AsFFI(),
-  };
-}
-
-inline icu4x::DateTime icu4x::DateTime::FromFFI(icu4x::capi::DateTime c_struct) {
-  return icu4x::DateTime {
-    /* .date = */ std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(c_struct.date)),
-    /* .time = */ std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(c_struct.time)),
-  };
-}
-
-
-#endif // icu4x_DateTime_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.d.hpp
deleted file mode 100644
index d120654..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_DateTimeAlignment_D_HPP
-#define icu4x_DateTimeAlignment_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DateTimeAlignment {
-      DateTimeAlignment_Auto = 0,
-      DateTimeAlignment_Column = 1,
-    };
-    
-    typedef struct DateTimeAlignment_option {union { DateTimeAlignment ok; }; bool is_ok; } DateTimeAlignment_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeAlignment {
-public:
-  enum Value {
-    Auto = 0,
-    Column = 1,
-  };
-
-  DateTimeAlignment() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DateTimeAlignment(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DateTimeAlignment AsFFI() const;
-  inline static icu4x::DateTimeAlignment FromFFI(icu4x::capi::DateTimeAlignment c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DateTimeAlignment_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.hpp
deleted file mode 100644
index d5293b149..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeAlignment.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_DateTimeAlignment_HPP
-#define icu4x_DateTimeAlignment_HPP
-
-#include "DateTimeAlignment.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DateTimeAlignment icu4x::DateTimeAlignment::AsFFI() const {
-  return static_cast<icu4x::capi::DateTimeAlignment>(value);
-}
-
-inline icu4x::DateTimeAlignment icu4x::DateTimeAlignment::FromFFI(icu4x::capi::DateTimeAlignment c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DateTimeAlignment_Auto:
-    case icu4x::capi::DateTimeAlignment_Column:
-      return static_cast<icu4x::DateTimeAlignment::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DateTimeAlignment_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.d.hpp
deleted file mode 100644
index 92ba818..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_DateTimeFormatError_D_HPP
-#define icu4x_DateTimeFormatError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DateTimeFormatError {
-      DateTimeFormatError_Unknown = 0,
-      DateTimeFormatError_MissingInputField = 1,
-      DateTimeFormatError_ZoneInfoMissingFields = 2,
-      DateTimeFormatError_InvalidEra = 3,
-      DateTimeFormatError_InvalidMonthCode = 4,
-      DateTimeFormatError_InvalidCyclicYear = 5,
-      DateTimeFormatError_NamesNotLoaded = 16,
-      DateTimeFormatError_DecimalFormatterNotLoaded = 17,
-      DateTimeFormatError_UnsupportedField = 18,
-    };
-    
-    typedef struct DateTimeFormatError_option {union { DateTimeFormatError ok; }; bool is_ok; } DateTimeFormatError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeFormatError {
-public:
-  enum Value {
-    Unknown = 0,
-    MissingInputField = 1,
-    ZoneInfoMissingFields = 2,
-    InvalidEra = 3,
-    InvalidMonthCode = 4,
-    InvalidCyclicYear = 5,
-    NamesNotLoaded = 16,
-    DecimalFormatterNotLoaded = 17,
-    UnsupportedField = 18,
-  };
-
-  DateTimeFormatError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DateTimeFormatError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DateTimeFormatError AsFFI() const;
-  inline static icu4x::DateTimeFormatError FromFFI(icu4x::capi::DateTimeFormatError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DateTimeFormatError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.hpp
deleted file mode 100644
index 0382fe1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatError.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_DateTimeFormatError_HPP
-#define icu4x_DateTimeFormatError_HPP
-
-#include "DateTimeFormatError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DateTimeFormatError icu4x::DateTimeFormatError::AsFFI() const {
-  return static_cast<icu4x::capi::DateTimeFormatError>(value);
-}
-
-inline icu4x::DateTimeFormatError icu4x::DateTimeFormatError::FromFFI(icu4x::capi::DateTimeFormatError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DateTimeFormatError_Unknown:
-    case icu4x::capi::DateTimeFormatError_MissingInputField:
-    case icu4x::capi::DateTimeFormatError_ZoneInfoMissingFields:
-    case icu4x::capi::DateTimeFormatError_InvalidEra:
-    case icu4x::capi::DateTimeFormatError_InvalidMonthCode:
-    case icu4x::capi::DateTimeFormatError_InvalidCyclicYear:
-    case icu4x::capi::DateTimeFormatError_NamesNotLoaded:
-    case icu4x::capi::DateTimeFormatError_DecimalFormatterNotLoaded:
-    case icu4x::capi::DateTimeFormatError_UnsupportedField:
-      return static_cast<icu4x::DateTimeFormatError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DateTimeFormatError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.d.hpp
deleted file mode 100644
index e342ad7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.d.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef icu4x_DateTimeFormatter_D_HPP
-#define icu4x_DateTimeFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct DateTimeFormatter; }
-class DateTimeFormatter;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct Time; }
-class Time;
-struct DateTimeMismatchedCalendarError;
-class DateTimeAlignment;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-class TimePrecision;
-class YearStyle;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DateTimeFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_dt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_dt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_mdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_mdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_ymdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_ymdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_det(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_det_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_mdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_mdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_ymdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_ymdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_et(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_et_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline std::string format_iso(const icu4x::IsoDate& date, const icu4x::Time& time) const;
-
-  inline diplomat::result<std::string, icu4x::DateTimeMismatchedCalendarError> format_same_calendar(const icu4x::Date& date, const icu4x::Time& time) const;
-
-  inline const icu4x::capi::DateTimeFormatter* AsFFI() const;
-  inline icu4x::capi::DateTimeFormatter* AsFFI();
-  inline static const icu4x::DateTimeFormatter* FromFFI(const icu4x::capi::DateTimeFormatter* ptr);
-  inline static icu4x::DateTimeFormatter* FromFFI(icu4x::capi::DateTimeFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DateTimeFormatter() = delete;
-  DateTimeFormatter(const icu4x::DateTimeFormatter&) = delete;
-  DateTimeFormatter(icu4x::DateTimeFormatter&&) noexcept = delete;
-  DateTimeFormatter operator=(const icu4x::DateTimeFormatter&) = delete;
-  DateTimeFormatter operator=(icu4x::DateTimeFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DateTimeFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.hpp
deleted file mode 100644
index 07f600a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatter.hpp
+++ /dev/null
@@ -1,249 +0,0 @@
-#ifndef icu4x_DateTimeFormatter_HPP
-#define icu4x_DateTimeFormatter_HPP
-
-#include "DateTimeFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "Date.hpp"
-#include "DateTimeAlignment.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "DateTimeMismatchedCalendarError.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-#include "Time.hpp"
-#include "TimePrecision.hpp"
-#include "YearStyle.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DateTimeFormatter_create_dt_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_dt_mv1_result;
-    icu4x_DateTimeFormatter_create_dt_mv1_result icu4x_DateTimeFormatter_create_dt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_dt_with_provider_mv1_result icu4x_DateTimeFormatter_create_dt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_mdt_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdt_mv1_result;
-    icu4x_DateTimeFormatter_create_mdt_mv1_result icu4x_DateTimeFormatter_create_mdt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_mdt_with_provider_mv1_result icu4x_DateTimeFormatter_create_mdt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_ymdt_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdt_mv1_result;
-    icu4x_DateTimeFormatter_create_ymdt_mv1_result icu4x_DateTimeFormatter_create_ymdt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1_result icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatter_create_det_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_det_mv1_result;
-    icu4x_DateTimeFormatter_create_det_mv1_result icu4x_DateTimeFormatter_create_det_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_det_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_det_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_det_with_provider_mv1_result icu4x_DateTimeFormatter_create_det_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_mdet_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdet_mv1_result;
-    icu4x_DateTimeFormatter_create_mdet_mv1_result icu4x_DateTimeFormatter_create_mdet_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_mdet_with_provider_mv1_result icu4x_DateTimeFormatter_create_mdet_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_ymdet_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdet_mv1_result;
-    icu4x_DateTimeFormatter_create_ymdet_mv1_result icu4x_DateTimeFormatter_create_ymdet_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1_result icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatter_create_et_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_et_mv1_result;
-    icu4x_DateTimeFormatter_create_et_mv1_result icu4x_DateTimeFormatter_create_et_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatter_create_et_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatter_create_et_with_provider_mv1_result;
-    icu4x_DateTimeFormatter_create_et_with_provider_mv1_result icu4x_DateTimeFormatter_create_et_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    void icu4x_DateTimeFormatter_format_iso_mv1(const icu4x::capi::DateTimeFormatter* self, const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_DateTimeFormatter_format_same_calendar_mv1_result {union { icu4x::capi::DateTimeMismatchedCalendarError err;}; bool is_ok;} icu4x_DateTimeFormatter_format_same_calendar_mv1_result;
-    icu4x_DateTimeFormatter_format_same_calendar_mv1_result icu4x_DateTimeFormatter_format_same_calendar_mv1(const icu4x::capi::DateTimeFormatter* self, const icu4x::capi::Date* date, const icu4x::capi::Time* time, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_DateTimeFormatter_destroy_mv1(DateTimeFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_dt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_dt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_dt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_dt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_mdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_mdt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_mdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_mdt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_ymdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_ymdt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_ymdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_det(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_det_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_det_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_det_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_mdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_mdet_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_mdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_mdet_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_ymdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_ymdet_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_ymdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_et(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_et_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatter::create_et_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_create_et_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::DateTimeFormatter::format_iso(const icu4x::IsoDate& date, const icu4x::Time& time) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_DateTimeFormatter_format_iso_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    &write);
-  return output;
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeMismatchedCalendarError> icu4x::DateTimeFormatter::format_same_calendar(const icu4x::Date& date, const icu4x::Time& time) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_DateTimeFormatter_format_same_calendar_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeMismatchedCalendarError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeMismatchedCalendarError>(diplomat::Err<icu4x::DateTimeMismatchedCalendarError>(icu4x::DateTimeMismatchedCalendarError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::DateTimeFormatter* icu4x::DateTimeFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DateTimeFormatter*>(this);
-}
-
-inline icu4x::capi::DateTimeFormatter* icu4x::DateTimeFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DateTimeFormatter*>(this);
-}
-
-inline const icu4x::DateTimeFormatter* icu4x::DateTimeFormatter::FromFFI(const icu4x::capi::DateTimeFormatter* ptr) {
-  return reinterpret_cast<const icu4x::DateTimeFormatter*>(ptr);
-}
-
-inline icu4x::DateTimeFormatter* icu4x::DateTimeFormatter::FromFFI(icu4x::capi::DateTimeFormatter* ptr) {
-  return reinterpret_cast<icu4x::DateTimeFormatter*>(ptr);
-}
-
-inline void icu4x::DateTimeFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::DateTimeFormatter*>(ptr));
-}
-
-
-#endif // icu4x_DateTimeFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.d.hpp
deleted file mode 100644
index f1c1d659..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.d.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef icu4x_DateTimeFormatterGregorian_D_HPP
-#define icu4x_DateTimeFormatterGregorian_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct DateTimeFormatterGregorian; }
-class DateTimeFormatterGregorian;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct Time; }
-class Time;
-class DateTimeAlignment;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-class TimePrecision;
-class YearStyle;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DateTimeFormatterGregorian;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeFormatterGregorian {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_dt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_dt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_mdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_mdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_ymdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_ymdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_det(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_det_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_mdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_mdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_ymdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_ymdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_et(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> create_et_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment);
-
-  inline std::string format_iso(const icu4x::IsoDate& date, const icu4x::Time& time) const;
-
-  inline const icu4x::capi::DateTimeFormatterGregorian* AsFFI() const;
-  inline icu4x::capi::DateTimeFormatterGregorian* AsFFI();
-  inline static const icu4x::DateTimeFormatterGregorian* FromFFI(const icu4x::capi::DateTimeFormatterGregorian* ptr);
-  inline static icu4x::DateTimeFormatterGregorian* FromFFI(icu4x::capi::DateTimeFormatterGregorian* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DateTimeFormatterGregorian() = delete;
-  DateTimeFormatterGregorian(const icu4x::DateTimeFormatterGregorian&) = delete;
-  DateTimeFormatterGregorian(icu4x::DateTimeFormatterGregorian&&) noexcept = delete;
-  DateTimeFormatterGregorian operator=(const icu4x::DateTimeFormatterGregorian&) = delete;
-  DateTimeFormatterGregorian operator=(icu4x::DateTimeFormatterGregorian&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DateTimeFormatterGregorian_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.hpp
deleted file mode 100644
index c34c30a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterGregorian.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-#ifndef icu4x_DateTimeFormatterGregorian_HPP
-#define icu4x_DateTimeFormatterGregorian_HPP
-
-#include "DateTimeFormatterGregorian.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "DateTimeAlignment.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-#include "Time.hpp"
-#include "TimePrecision.hpp"
-#include "YearStyle.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_dt_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_dt_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_dt_mv1_result icu4x_DateTimeFormatterGregorian_create_dt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_mdt_mv1_result icu4x_DateTimeFormatterGregorian_create_mdt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_ymdt_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdt_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_det_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_det_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_det_mv1_result icu4x_DateTimeFormatterGregorian_create_det_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_mdet_mv1_result icu4x_DateTimeFormatterGregorian_create_mdet_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_ymdet_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdet_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_et_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_et_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_et_mv1_result icu4x_DateTimeFormatterGregorian_create_et_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    typedef struct icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result {union {icu4x::capi::DateTimeFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result;
-    icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1_result icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::TimePrecision_option time_precision, icu4x::capi::DateTimeAlignment_option alignment);
-    
-    void icu4x_DateTimeFormatterGregorian_format_iso_mv1(const icu4x::capi::DateTimeFormatterGregorian* self, const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_DateTimeFormatterGregorian_destroy_mv1(DateTimeFormatterGregorian* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_dt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_dt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_dt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_mdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_mdt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_mdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_ymdt(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_ymdt_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_ymdt_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_det(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_det_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_det_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_mdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_mdet_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_mdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_ymdet(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_ymdet_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_ymdet_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
-    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_et(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_et_mv1(locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateTimeFormatterGregorian::create_et_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::TimePrecision> time_precision, std::optional<icu4x::DateTimeAlignment> alignment) {
-  auto result = icu4x::capi::icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
-    time_precision.has_value() ? (icu4x::capi::TimePrecision_option{ { time_precision.value().AsFFI() }, true }) : (icu4x::capi::TimePrecision_option{ {}, false }),
-    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatterGregorian>>(std::unique_ptr<icu4x::DateTimeFormatterGregorian>(icu4x::DateTimeFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::DateTimeFormatterGregorian::format_iso(const icu4x::IsoDate& date, const icu4x::Time& time) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_DateTimeFormatterGregorian_format_iso_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::DateTimeFormatterGregorian* icu4x::DateTimeFormatterGregorian::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DateTimeFormatterGregorian*>(this);
-}
-
-inline icu4x::capi::DateTimeFormatterGregorian* icu4x::DateTimeFormatterGregorian::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DateTimeFormatterGregorian*>(this);
-}
-
-inline const icu4x::DateTimeFormatterGregorian* icu4x::DateTimeFormatterGregorian::FromFFI(const icu4x::capi::DateTimeFormatterGregorian* ptr) {
-  return reinterpret_cast<const icu4x::DateTimeFormatterGregorian*>(ptr);
-}
-
-inline icu4x::DateTimeFormatterGregorian* icu4x::DateTimeFormatterGregorian::FromFFI(icu4x::capi::DateTimeFormatterGregorian* ptr) {
-  return reinterpret_cast<icu4x::DateTimeFormatterGregorian*>(ptr);
-}
-
-inline void icu4x::DateTimeFormatterGregorian::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DateTimeFormatterGregorian_destroy_mv1(reinterpret_cast<icu4x::capi::DateTimeFormatterGregorian*>(ptr));
-}
-
-
-#endif // icu4x_DateTimeFormatterGregorian_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.d.hpp
deleted file mode 100644
index 2f24d79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_DateTimeFormatterLoadError_D_HPP
-#define icu4x_DateTimeFormatterLoadError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DateTimeFormatterLoadError {
-      DateTimeFormatterLoadError_Unknown = 0,
-      DateTimeFormatterLoadError_UnsupportedLength = 2051,
-      DateTimeFormatterLoadError_DuplicateField = 2057,
-      DateTimeFormatterLoadError_TypeTooSpecific = 2058,
-      DateTimeFormatterLoadError_DataMarkerNotFound = 1,
-      DateTimeFormatterLoadError_DataIdentifierNotFound = 2,
-      DateTimeFormatterLoadError_DataInvalidRequest = 3,
-      DateTimeFormatterLoadError_DataInconsistentData = 4,
-      DateTimeFormatterLoadError_DataDowncast = 5,
-      DateTimeFormatterLoadError_DataDeserialize = 6,
-      DateTimeFormatterLoadError_DataCustom = 7,
-      DateTimeFormatterLoadError_DataIo = 8,
-    };
-    
-    typedef struct DateTimeFormatterLoadError_option {union { DateTimeFormatterLoadError ok; }; bool is_ok; } DateTimeFormatterLoadError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeFormatterLoadError {
-public:
-  enum Value {
-    Unknown = 0,
-    UnsupportedLength = 2051,
-    DuplicateField = 2057,
-    TypeTooSpecific = 2058,
-    DataMarkerNotFound = 1,
-    DataIdentifierNotFound = 2,
-    DataInvalidRequest = 3,
-    DataInconsistentData = 4,
-    DataDowncast = 5,
-    DataDeserialize = 6,
-    DataCustom = 7,
-    DataIo = 8,
-  };
-
-  DateTimeFormatterLoadError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DateTimeFormatterLoadError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DateTimeFormatterLoadError AsFFI() const;
-  inline static icu4x::DateTimeFormatterLoadError FromFFI(icu4x::capi::DateTimeFormatterLoadError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DateTimeFormatterLoadError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.hpp
deleted file mode 100644
index 918950c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeFormatterLoadError.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef icu4x_DateTimeFormatterLoadError_HPP
-#define icu4x_DateTimeFormatterLoadError_HPP
-
-#include "DateTimeFormatterLoadError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DateTimeFormatterLoadError icu4x::DateTimeFormatterLoadError::AsFFI() const {
-  return static_cast<icu4x::capi::DateTimeFormatterLoadError>(value);
-}
-
-inline icu4x::DateTimeFormatterLoadError icu4x::DateTimeFormatterLoadError::FromFFI(icu4x::capi::DateTimeFormatterLoadError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DateTimeFormatterLoadError_Unknown:
-    case icu4x::capi::DateTimeFormatterLoadError_UnsupportedLength:
-    case icu4x::capi::DateTimeFormatterLoadError_DuplicateField:
-    case icu4x::capi::DateTimeFormatterLoadError_TypeTooSpecific:
-    case icu4x::capi::DateTimeFormatterLoadError_DataMarkerNotFound:
-    case icu4x::capi::DateTimeFormatterLoadError_DataIdentifierNotFound:
-    case icu4x::capi::DateTimeFormatterLoadError_DataInvalidRequest:
-    case icu4x::capi::DateTimeFormatterLoadError_DataInconsistentData:
-    case icu4x::capi::DateTimeFormatterLoadError_DataDowncast:
-    case icu4x::capi::DateTimeFormatterLoadError_DataDeserialize:
-    case icu4x::capi::DateTimeFormatterLoadError_DataCustom:
-    case icu4x::capi::DateTimeFormatterLoadError_DataIo:
-      return static_cast<icu4x::DateTimeFormatterLoadError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DateTimeFormatterLoadError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.d.hpp
deleted file mode 100644
index 9eda4a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_DateTimeLength_D_HPP
-#define icu4x_DateTimeLength_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DateTimeLength {
-      DateTimeLength_Long = 0,
-      DateTimeLength_Medium = 1,
-      DateTimeLength_Short = 2,
-    };
-    
-    typedef struct DateTimeLength_option {union { DateTimeLength ok; }; bool is_ok; } DateTimeLength_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DateTimeLength {
-public:
-  enum Value {
-    Long = 0,
-    Medium = 1,
-    Short = 2,
-  };
-
-  DateTimeLength() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DateTimeLength(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DateTimeLength AsFFI() const;
-  inline static icu4x::DateTimeLength FromFFI(icu4x::capi::DateTimeLength c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DateTimeLength_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.hpp
deleted file mode 100644
index dd4e1ed1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeLength.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_DateTimeLength_HPP
-#define icu4x_DateTimeLength_HPP
-
-#include "DateTimeLength.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DateTimeLength icu4x::DateTimeLength::AsFFI() const {
-  return static_cast<icu4x::capi::DateTimeLength>(value);
-}
-
-inline icu4x::DateTimeLength icu4x::DateTimeLength::FromFFI(icu4x::capi::DateTimeLength c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DateTimeLength_Long:
-    case icu4x::capi::DateTimeLength_Medium:
-    case icu4x::capi::DateTimeLength_Short:
-      return static_cast<icu4x::DateTimeLength::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DateTimeLength_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.d.hpp
deleted file mode 100644
index 0ee3542..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_DateTimeMismatchedCalendarError_D_HPP
-#define icu4x_DateTimeMismatchedCalendarError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "AnyCalendarKind.d.hpp"
-
-namespace icu4x {
-class AnyCalendarKind;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DateTimeMismatchedCalendarError {
-      icu4x::capi::AnyCalendarKind this_kind;
-      icu4x::capi::AnyCalendarKind_option date_kind;
-    };
-    
-    typedef struct DateTimeMismatchedCalendarError_option {union { DateTimeMismatchedCalendarError ok; }; bool is_ok; } DateTimeMismatchedCalendarError_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct DateTimeMismatchedCalendarError {
-  icu4x::AnyCalendarKind this_kind;
-  std::optional<icu4x::AnyCalendarKind> date_kind;
-
-  inline icu4x::capi::DateTimeMismatchedCalendarError AsFFI() const;
-  inline static icu4x::DateTimeMismatchedCalendarError FromFFI(icu4x::capi::DateTimeMismatchedCalendarError c_struct);
-};
-
-} // namespace
-#endif // icu4x_DateTimeMismatchedCalendarError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.hpp
deleted file mode 100644
index 9bb34ae8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DateTimeMismatchedCalendarError.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef icu4x_DateTimeMismatchedCalendarError_HPP
-#define icu4x_DateTimeMismatchedCalendarError_HPP
-
-#include "DateTimeMismatchedCalendarError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "AnyCalendarKind.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::DateTimeMismatchedCalendarError icu4x::DateTimeMismatchedCalendarError::AsFFI() const {
-  return icu4x::capi::DateTimeMismatchedCalendarError {
-    /* .this_kind = */ this_kind.AsFFI(),
-    /* .date_kind = */ date_kind.has_value() ? (icu4x::capi::AnyCalendarKind_option{ { date_kind.value().AsFFI() }, true }) : (icu4x::capi::AnyCalendarKind_option{ {}, false }),
-  };
-}
-
-inline icu4x::DateTimeMismatchedCalendarError icu4x::DateTimeMismatchedCalendarError::FromFFI(icu4x::capi::DateTimeMismatchedCalendarError c_struct) {
-  return icu4x::DateTimeMismatchedCalendarError {
-    /* .this_kind = */ icu4x::AnyCalendarKind::FromFFI(c_struct.this_kind),
-    /* .date_kind = */ c_struct.date_kind.is_ok ? std::optional(icu4x::AnyCalendarKind::FromFFI(c_struct.date_kind.ok)) : std::nullopt,
-  };
-}
-
-
-#endif // icu4x_DateTimeMismatchedCalendarError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.d.hpp
deleted file mode 100644
index 6f86650..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.d.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef icu4x_Decimal_D_HPP
-#define icu4x_Decimal_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Decimal; }
-class Decimal;
-struct FixedDecimalLimitError;
-class FixedDecimalParseError;
-class FixedDecimalRoundingIncrement;
-class FixedDecimalSign;
-class FixedDecimalSignDisplay;
-class FixedDecimalSignedRoundingMode;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Decimal;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Decimal {
-public:
-
-  inline static std::unique_ptr<icu4x::Decimal> from(int32_t v);
-
-  inline static std::unique_ptr<icu4x::Decimal> from(uint32_t v);
-
-  inline static std::unique_ptr<icu4x::Decimal> from(int64_t v);
-
-  inline static std::unique_ptr<icu4x::Decimal> from(uint64_t v);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> from_double_with_integer_precision(double f);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> from_double_with_lower_magnitude(double f, int16_t magnitude);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> from_double_with_significant_digits(double f, uint8_t digits);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> from_double_with_round_trip_precision(double f);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalParseError> from_string(std::string_view v);
-
-  inline uint8_t digit_at(int16_t magnitude) const;
-
-  inline int16_t magnitude_start() const;
-
-  inline int16_t magnitude_end() const;
-
-  inline int16_t nonzero_magnitude_start() const;
-
-  inline int16_t nonzero_magnitude_end() const;
-
-  inline bool is_zero() const;
-
-  inline void multiply_pow10(int16_t power);
-
-  inline icu4x::FixedDecimalSign sign() const;
-
-  inline void set_sign(icu4x::FixedDecimalSign sign);
-
-  inline void apply_sign_display(icu4x::FixedDecimalSignDisplay sign_display);
-
-  inline void trim_start();
-
-  inline void trim_end();
-
-  inline void trim_end_if_integer();
-
-  inline void pad_start(int16_t position);
-
-  inline void pad_end(int16_t position);
-
-  inline void set_max_position(int16_t position);
-
-  inline void round(int16_t position);
-
-  inline void ceil(int16_t position);
-
-  inline void expand(int16_t position);
-
-  inline void floor(int16_t position);
-
-  inline void trunc(int16_t position);
-
-  inline void round_with_mode(int16_t position, icu4x::FixedDecimalSignedRoundingMode mode);
-
-  inline void round_with_mode_and_increment(int16_t position, icu4x::FixedDecimalSignedRoundingMode mode, icu4x::FixedDecimalRoundingIncrement increment);
-
-  inline diplomat::result<std::monostate, std::monostate> concatenate_end(icu4x::Decimal& other);
-
-  inline std::string to_string() const;
-
-  inline const icu4x::capi::Decimal* AsFFI() const;
-  inline icu4x::capi::Decimal* AsFFI();
-  inline static const icu4x::Decimal* FromFFI(const icu4x::capi::Decimal* ptr);
-  inline static icu4x::Decimal* FromFFI(icu4x::capi::Decimal* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Decimal() = delete;
-  Decimal(const icu4x::Decimal&) = delete;
-  Decimal(icu4x::Decimal&&) noexcept = delete;
-  Decimal operator=(const icu4x::Decimal&) = delete;
-  Decimal operator=(icu4x::Decimal&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Decimal_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.hpp
deleted file mode 100644
index c1e707e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decimal.hpp
+++ /dev/null
@@ -1,305 +0,0 @@
-#ifndef icu4x_Decimal_HPP
-#define icu4x_Decimal_HPP
-
-#include "Decimal.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "FixedDecimalLimitError.hpp"
-#include "FixedDecimalParseError.hpp"
-#include "FixedDecimalRoundingIncrement.hpp"
-#include "FixedDecimalSign.hpp"
-#include "FixedDecimalSignDisplay.hpp"
-#include "FixedDecimalSignedRoundingMode.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::Decimal* icu4x_Decimal_from_int32_mv1(int32_t v);
-    
-    icu4x::capi::Decimal* icu4x_Decimal_from_uint32_mv1(uint32_t v);
-    
-    icu4x::capi::Decimal* icu4x_Decimal_from_int64_mv1(int64_t v);
-    
-    icu4x::capi::Decimal* icu4x_Decimal_from_uint64_mv1(uint64_t v);
-    
-    typedef struct icu4x_Decimal_from_double_with_integer_precision_mv1_result {union {icu4x::capi::Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_integer_precision_mv1_result;
-    icu4x_Decimal_from_double_with_integer_precision_mv1_result icu4x_Decimal_from_double_with_integer_precision_mv1(double f);
-    
-    typedef struct icu4x_Decimal_from_double_with_lower_magnitude_mv1_result {union {icu4x::capi::Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_lower_magnitude_mv1_result;
-    icu4x_Decimal_from_double_with_lower_magnitude_mv1_result icu4x_Decimal_from_double_with_lower_magnitude_mv1(double f, int16_t magnitude);
-    
-    typedef struct icu4x_Decimal_from_double_with_significant_digits_mv1_result {union {icu4x::capi::Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_significant_digits_mv1_result;
-    icu4x_Decimal_from_double_with_significant_digits_mv1_result icu4x_Decimal_from_double_with_significant_digits_mv1(double f, uint8_t digits);
-    
-    typedef struct icu4x_Decimal_from_double_with_round_trip_precision_mv1_result {union {icu4x::capi::Decimal* ok; }; bool is_ok;} icu4x_Decimal_from_double_with_round_trip_precision_mv1_result;
-    icu4x_Decimal_from_double_with_round_trip_precision_mv1_result icu4x_Decimal_from_double_with_round_trip_precision_mv1(double f);
-    
-    typedef struct icu4x_Decimal_from_string_mv1_result {union {icu4x::capi::Decimal* ok; icu4x::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_Decimal_from_string_mv1_result;
-    icu4x_Decimal_from_string_mv1_result icu4x_Decimal_from_string_mv1(diplomat::capi::DiplomatStringView v);
-    
-    uint8_t icu4x_Decimal_digit_at_mv1(const icu4x::capi::Decimal* self, int16_t magnitude);
-    
-    int16_t icu4x_Decimal_magnitude_start_mv1(const icu4x::capi::Decimal* self);
-    
-    int16_t icu4x_Decimal_magnitude_end_mv1(const icu4x::capi::Decimal* self);
-    
-    int16_t icu4x_Decimal_nonzero_magnitude_start_mv1(const icu4x::capi::Decimal* self);
-    
-    int16_t icu4x_Decimal_nonzero_magnitude_end_mv1(const icu4x::capi::Decimal* self);
-    
-    bool icu4x_Decimal_is_zero_mv1(const icu4x::capi::Decimal* self);
-    
-    void icu4x_Decimal_multiply_pow10_mv1(icu4x::capi::Decimal* self, int16_t power);
-    
-    icu4x::capi::FixedDecimalSign icu4x_Decimal_sign_mv1(const icu4x::capi::Decimal* self);
-    
-    void icu4x_Decimal_set_sign_mv1(icu4x::capi::Decimal* self, icu4x::capi::FixedDecimalSign sign);
-    
-    void icu4x_Decimal_apply_sign_display_mv1(icu4x::capi::Decimal* self, icu4x::capi::FixedDecimalSignDisplay sign_display);
-    
-    void icu4x_Decimal_trim_start_mv1(icu4x::capi::Decimal* self);
-    
-    void icu4x_Decimal_trim_end_mv1(icu4x::capi::Decimal* self);
-    
-    void icu4x_Decimal_trim_end_if_integer_mv1(icu4x::capi::Decimal* self);
-    
-    void icu4x_Decimal_pad_start_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_pad_end_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_set_max_position_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_round_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_ceil_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_expand_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_floor_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_trunc_mv1(icu4x::capi::Decimal* self, int16_t position);
-    
-    void icu4x_Decimal_round_with_mode_mv1(icu4x::capi::Decimal* self, int16_t position, icu4x::capi::FixedDecimalSignedRoundingMode mode);
-    
-    void icu4x_Decimal_round_with_mode_and_increment_mv1(icu4x::capi::Decimal* self, int16_t position, icu4x::capi::FixedDecimalSignedRoundingMode mode, icu4x::capi::FixedDecimalRoundingIncrement increment);
-    
-    typedef struct icu4x_Decimal_concatenate_end_mv1_result { bool is_ok;} icu4x_Decimal_concatenate_end_mv1_result;
-    icu4x_Decimal_concatenate_end_mv1_result icu4x_Decimal_concatenate_end_mv1(icu4x::capi::Decimal* self, icu4x::capi::Decimal* other);
-    
-    void icu4x_Decimal_to_string_mv1(const icu4x::capi::Decimal* self, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_Decimal_destroy_mv1(Decimal* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::Decimal> icu4x::Decimal::from(int32_t v) {
-  auto result = icu4x::capi::icu4x_Decimal_from_int32_mv1(v);
-  return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::Decimal> icu4x::Decimal::from(uint32_t v) {
-  auto result = icu4x::capi::icu4x_Decimal_from_uint32_mv1(v);
-  return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::Decimal> icu4x::Decimal::from(int64_t v) {
-  auto result = icu4x::capi::icu4x_Decimal_from_int64_mv1(v);
-  return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::Decimal> icu4x::Decimal::from(uint64_t v) {
-  auto result = icu4x::capi::icu4x_Decimal_from_uint64_mv1(v);
-  return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> icu4x::Decimal::from_double_with_integer_precision(double f) {
-  auto result = icu4x::capi::icu4x_Decimal_from_double_with_integer_precision_mv1(f);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::Decimal>>(std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {}));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> icu4x::Decimal::from_double_with_lower_magnitude(double f, int16_t magnitude) {
-  auto result = icu4x::capi::icu4x_Decimal_from_double_with_lower_magnitude_mv1(f,
-    magnitude);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::Decimal>>(std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {}));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> icu4x::Decimal::from_double_with_significant_digits(double f, uint8_t digits) {
-  auto result = icu4x::capi::icu4x_Decimal_from_double_with_significant_digits_mv1(f,
-    digits);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::Decimal>>(std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {}));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError> icu4x::Decimal::from_double_with_round_trip_precision(double f) {
-  auto result = icu4x::capi::icu4x_Decimal_from_double_with_round_trip_precision_mv1(f);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::Decimal>>(std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {}));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalParseError> icu4x::Decimal::from_string(std::string_view v) {
-  auto result = icu4x::capi::icu4x_Decimal_from_string_mv1({v.data(), v.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<icu4x::Decimal>>(std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Decimal>, icu4x::FixedDecimalParseError>(diplomat::Err<icu4x::FixedDecimalParseError>(icu4x::FixedDecimalParseError::FromFFI(result.err)));
-}
-
-inline uint8_t icu4x::Decimal::digit_at(int16_t magnitude) const {
-  auto result = icu4x::capi::icu4x_Decimal_digit_at_mv1(this->AsFFI(),
-    magnitude);
-  return result;
-}
-
-inline int16_t icu4x::Decimal::magnitude_start() const {
-  auto result = icu4x::capi::icu4x_Decimal_magnitude_start_mv1(this->AsFFI());
-  return result;
-}
-
-inline int16_t icu4x::Decimal::magnitude_end() const {
-  auto result = icu4x::capi::icu4x_Decimal_magnitude_end_mv1(this->AsFFI());
-  return result;
-}
-
-inline int16_t icu4x::Decimal::nonzero_magnitude_start() const {
-  auto result = icu4x::capi::icu4x_Decimal_nonzero_magnitude_start_mv1(this->AsFFI());
-  return result;
-}
-
-inline int16_t icu4x::Decimal::nonzero_magnitude_end() const {
-  auto result = icu4x::capi::icu4x_Decimal_nonzero_magnitude_end_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::Decimal::is_zero() const {
-  auto result = icu4x::capi::icu4x_Decimal_is_zero_mv1(this->AsFFI());
-  return result;
-}
-
-inline void icu4x::Decimal::multiply_pow10(int16_t power) {
-  icu4x::capi::icu4x_Decimal_multiply_pow10_mv1(this->AsFFI(),
-    power);
-}
-
-inline icu4x::FixedDecimalSign icu4x::Decimal::sign() const {
-  auto result = icu4x::capi::icu4x_Decimal_sign_mv1(this->AsFFI());
-  return icu4x::FixedDecimalSign::FromFFI(result);
-}
-
-inline void icu4x::Decimal::set_sign(icu4x::FixedDecimalSign sign) {
-  icu4x::capi::icu4x_Decimal_set_sign_mv1(this->AsFFI(),
-    sign.AsFFI());
-}
-
-inline void icu4x::Decimal::apply_sign_display(icu4x::FixedDecimalSignDisplay sign_display) {
-  icu4x::capi::icu4x_Decimal_apply_sign_display_mv1(this->AsFFI(),
-    sign_display.AsFFI());
-}
-
-inline void icu4x::Decimal::trim_start() {
-  icu4x::capi::icu4x_Decimal_trim_start_mv1(this->AsFFI());
-}
-
-inline void icu4x::Decimal::trim_end() {
-  icu4x::capi::icu4x_Decimal_trim_end_mv1(this->AsFFI());
-}
-
-inline void icu4x::Decimal::trim_end_if_integer() {
-  icu4x::capi::icu4x_Decimal_trim_end_if_integer_mv1(this->AsFFI());
-}
-
-inline void icu4x::Decimal::pad_start(int16_t position) {
-  icu4x::capi::icu4x_Decimal_pad_start_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::pad_end(int16_t position) {
-  icu4x::capi::icu4x_Decimal_pad_end_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::set_max_position(int16_t position) {
-  icu4x::capi::icu4x_Decimal_set_max_position_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::round(int16_t position) {
-  icu4x::capi::icu4x_Decimal_round_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::ceil(int16_t position) {
-  icu4x::capi::icu4x_Decimal_ceil_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::expand(int16_t position) {
-  icu4x::capi::icu4x_Decimal_expand_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::floor(int16_t position) {
-  icu4x::capi::icu4x_Decimal_floor_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::trunc(int16_t position) {
-  icu4x::capi::icu4x_Decimal_trunc_mv1(this->AsFFI(),
-    position);
-}
-
-inline void icu4x::Decimal::round_with_mode(int16_t position, icu4x::FixedDecimalSignedRoundingMode mode) {
-  icu4x::capi::icu4x_Decimal_round_with_mode_mv1(this->AsFFI(),
-    position,
-    mode.AsFFI());
-}
-
-inline void icu4x::Decimal::round_with_mode_and_increment(int16_t position, icu4x::FixedDecimalSignedRoundingMode mode, icu4x::FixedDecimalRoundingIncrement increment) {
-  icu4x::capi::icu4x_Decimal_round_with_mode_and_increment_mv1(this->AsFFI(),
-    position,
-    mode.AsFFI(),
-    increment.AsFFI());
-}
-
-inline diplomat::result<std::monostate, std::monostate> icu4x::Decimal::concatenate_end(icu4x::Decimal& other) {
-  auto result = icu4x::capi::icu4x_Decimal_concatenate_end_mv1(this->AsFFI(),
-    other.AsFFI());
-  return result.is_ok ? diplomat::result<std::monostate, std::monostate>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, std::monostate>(diplomat::Err<std::monostate>());
-}
-
-inline std::string icu4x::Decimal::to_string() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Decimal_to_string_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::Decimal* icu4x::Decimal::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Decimal*>(this);
-}
-
-inline icu4x::capi::Decimal* icu4x::Decimal::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Decimal*>(this);
-}
-
-inline const icu4x::Decimal* icu4x::Decimal::FromFFI(const icu4x::capi::Decimal* ptr) {
-  return reinterpret_cast<const icu4x::Decimal*>(ptr);
-}
-
-inline icu4x::Decimal* icu4x::Decimal::FromFFI(icu4x::capi::Decimal* ptr) {
-  return reinterpret_cast<icu4x::Decimal*>(ptr);
-}
-
-inline void icu4x::Decimal::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Decimal_destroy_mv1(reinterpret_cast<icu4x::capi::Decimal*>(ptr));
-}
-
-
-#endif // icu4x_Decimal_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.d.hpp
deleted file mode 100644
index 69965df..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.d.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef icu4x_DecimalFormatter_D_HPP
-#define icu4x_DecimalFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Decimal; }
-class Decimal;
-namespace capi { struct DecimalFormatter; }
-class DecimalFormatter;
-namespace capi { struct Locale; }
-class Locale;
-class DataError;
-class DecimalGroupingStrategy;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DecimalFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DecimalFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> create_with_grouping_strategy(const icu4x::Locale& locale, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> create_with_grouping_strategy_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy);
-
-  inline std::string format(const icu4x::Decimal& value) const;
-
-  inline const icu4x::capi::DecimalFormatter* AsFFI() const;
-  inline icu4x::capi::DecimalFormatter* AsFFI();
-  inline static const icu4x::DecimalFormatter* FromFFI(const icu4x::capi::DecimalFormatter* ptr);
-  inline static icu4x::DecimalFormatter* FromFFI(icu4x::capi::DecimalFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DecimalFormatter() = delete;
-  DecimalFormatter(const icu4x::DecimalFormatter&) = delete;
-  DecimalFormatter(icu4x::DecimalFormatter&&) noexcept = delete;
-  DecimalFormatter operator=(const icu4x::DecimalFormatter&) = delete;
-  DecimalFormatter operator=(icu4x::DecimalFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DecimalFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.hpp
deleted file mode 100644
index 67430d3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalFormatter.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef icu4x_DecimalFormatter_HPP
-#define icu4x_DecimalFormatter_HPP
-
-#include "DecimalFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Decimal.hpp"
-#include "DecimalGroupingStrategy.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result {union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result;
-    icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
-    
-    typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result {union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result;
-    icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
-    
-    typedef struct icu4x_DecimalFormatter_create_with_manual_data_mv1_result {union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecimalFormatter_create_with_manual_data_mv1_result;
-    icu4x_DecimalFormatter_create_with_manual_data_mv1_result icu4x_DecimalFormatter_create_with_manual_data_mv1(diplomat::capi::DiplomatStringView plus_sign_prefix, diplomat::capi::DiplomatStringView plus_sign_suffix, diplomat::capi::DiplomatStringView minus_sign_prefix, diplomat::capi::DiplomatStringView minus_sign_suffix, diplomat::capi::DiplomatStringView decimal_separator, diplomat::capi::DiplomatStringView grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::capi::DiplomatCharView digits, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
-    
-    void icu4x_DecimalFormatter_format_mv1(const icu4x::capi::DecimalFormatter* self, const icu4x::capi::Decimal* value, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_DecimalFormatter_destroy_mv1(DecimalFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> icu4x::DecimalFormatter::create_with_grouping_strategy(const icu4x::Locale& locale, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy) {
-  auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(locale.AsFFI(),
-    grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() }, true }) : (icu4x::capi::DecimalGroupingStrategy_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecimalFormatter>>(std::unique_ptr<icu4x::DecimalFormatter>(icu4x::DecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> icu4x::DecimalFormatter::create_with_grouping_strategy_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy) {
-  auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() }, true }) : (icu4x::capi::DecimalGroupingStrategy_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecimalFormatter>>(std::unique_ptr<icu4x::DecimalFormatter>(icu4x::DecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError> icu4x::DecimalFormatter::create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy) {
-  auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_manual_data_mv1({plus_sign_prefix.data(), plus_sign_prefix.size()},
-    {plus_sign_suffix.data(), plus_sign_suffix.size()},
-    {minus_sign_prefix.data(), minus_sign_prefix.size()},
-    {minus_sign_suffix.data(), minus_sign_suffix.size()},
-    {decimal_separator.data(), decimal_separator.size()},
-    {grouping_separator.data(), grouping_separator.size()},
-    primary_group_size,
-    secondary_group_size,
-    min_group_size,
-    {digits.data(), digits.size()},
-    grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() }, true }) : (icu4x::capi::DecimalGroupingStrategy_option{ {}, false }));
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecimalFormatter>>(std::unique_ptr<icu4x::DecimalFormatter>(icu4x::DecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::DecimalFormatter::format(const icu4x::Decimal& value) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_DecimalFormatter_format_mv1(this->AsFFI(),
-    value.AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::DecimalFormatter* icu4x::DecimalFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DecimalFormatter*>(this);
-}
-
-inline icu4x::capi::DecimalFormatter* icu4x::DecimalFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DecimalFormatter*>(this);
-}
-
-inline const icu4x::DecimalFormatter* icu4x::DecimalFormatter::FromFFI(const icu4x::capi::DecimalFormatter* ptr) {
-  return reinterpret_cast<const icu4x::DecimalFormatter*>(ptr);
-}
-
-inline icu4x::DecimalFormatter* icu4x::DecimalFormatter::FromFFI(icu4x::capi::DecimalFormatter* ptr) {
-  return reinterpret_cast<icu4x::DecimalFormatter*>(ptr);
-}
-
-inline void icu4x::DecimalFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DecimalFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::DecimalFormatter*>(ptr));
-}
-
-
-#endif // icu4x_DecimalFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.d.hpp
deleted file mode 100644
index db89990..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_DecimalGroupingStrategy_D_HPP
-#define icu4x_DecimalGroupingStrategy_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DecimalGroupingStrategy {
-      DecimalGroupingStrategy_Auto = 0,
-      DecimalGroupingStrategy_Never = 1,
-      DecimalGroupingStrategy_Always = 2,
-      DecimalGroupingStrategy_Min2 = 3,
-    };
-    
-    typedef struct DecimalGroupingStrategy_option {union { DecimalGroupingStrategy ok; }; bool is_ok; } DecimalGroupingStrategy_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DecimalGroupingStrategy {
-public:
-  enum Value {
-    Auto = 0,
-    Never = 1,
-    Always = 2,
-    Min2 = 3,
-  };
-
-  DecimalGroupingStrategy() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DecimalGroupingStrategy(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DecimalGroupingStrategy AsFFI() const;
-  inline static icu4x::DecimalGroupingStrategy FromFFI(icu4x::capi::DecimalGroupingStrategy c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DecimalGroupingStrategy_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.hpp
deleted file mode 100644
index dc3c26b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecimalGroupingStrategy.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_DecimalGroupingStrategy_HPP
-#define icu4x_DecimalGroupingStrategy_HPP
-
-#include "DecimalGroupingStrategy.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DecimalGroupingStrategy icu4x::DecimalGroupingStrategy::AsFFI() const {
-  return static_cast<icu4x::capi::DecimalGroupingStrategy>(value);
-}
-
-inline icu4x::DecimalGroupingStrategy icu4x::DecimalGroupingStrategy::FromFFI(icu4x::capi::DecimalGroupingStrategy c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DecimalGroupingStrategy_Auto:
-    case icu4x::capi::DecimalGroupingStrategy_Never:
-    case icu4x::capi::DecimalGroupingStrategy_Always:
-    case icu4x::capi::DecimalGroupingStrategy_Min2:
-      return static_cast<icu4x::DecimalGroupingStrategy::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DecimalGroupingStrategy_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.d.hpp
deleted file mode 100644
index ba6e7b0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.d.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef icu4x_Decomposed_D_HPP
-#define icu4x_Decomposed_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct Decomposed {
-      char32_t first;
-      char32_t second;
-    };
-    
-    typedef struct Decomposed_option {union { Decomposed ok; }; bool is_ok; } Decomposed_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct Decomposed {
-  char32_t first;
-  char32_t second;
-
-  inline icu4x::capi::Decomposed AsFFI() const;
-  inline static icu4x::Decomposed FromFFI(icu4x::capi::Decomposed c_struct);
-};
-
-} // namespace
-#endif // icu4x_Decomposed_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.hpp
deleted file mode 100644
index 8beb7e9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Decomposed.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_Decomposed_HPP
-#define icu4x_Decomposed_HPP
-
-#include "Decomposed.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::Decomposed icu4x::Decomposed::AsFFI() const {
-  return icu4x::capi::Decomposed {
-    /* .first = */ first,
-    /* .second = */ second,
-  };
-}
-
-inline icu4x::Decomposed icu4x::Decomposed::FromFFI(icu4x::capi::Decomposed c_struct) {
-  return icu4x::Decomposed {
-    /* .first = */ c_struct.first,
-    /* .second = */ c_struct.second,
-  };
-}
-
-
-#endif // icu4x_Decomposed_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp
deleted file mode 100644
index e1c452f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef icu4x_DecomposingNormalizer_D_HPP
-#define icu4x_DecomposingNormalizer_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct DecomposingNormalizer; }
-class DecomposingNormalizer;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DecomposingNormalizer;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DecomposingNormalizer {
-public:
-
-  inline static std::unique_ptr<icu4x::DecomposingNormalizer> create_nfd();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfd_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::DecomposingNormalizer> create_nfkd();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfkd_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::string normalize(std::string_view s) const;
-
-  inline bool is_normalized(std::string_view s) const;
-
-  inline bool is_normalized_utf16(std::u16string_view s) const;
-
-  inline size_t is_normalized_up_to(std::string_view s) const;
-
-  inline size_t is_normalized_utf16_up_to(std::u16string_view s) const;
-
-  inline const icu4x::capi::DecomposingNormalizer* AsFFI() const;
-  inline icu4x::capi::DecomposingNormalizer* AsFFI();
-  inline static const icu4x::DecomposingNormalizer* FromFFI(const icu4x::capi::DecomposingNormalizer* ptr);
-  inline static icu4x::DecomposingNormalizer* FromFFI(icu4x::capi::DecomposingNormalizer* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  DecomposingNormalizer() = delete;
-  DecomposingNormalizer(const icu4x::DecomposingNormalizer&) = delete;
-  DecomposingNormalizer(icu4x::DecomposingNormalizer&&) noexcept = delete;
-  DecomposingNormalizer operator=(const icu4x::DecomposingNormalizer&) = delete;
-  DecomposingNormalizer operator=(icu4x::DecomposingNormalizer&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_DecomposingNormalizer_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.hpp
deleted file mode 100644
index a9ad253..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DecomposingNormalizer.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef icu4x_DecomposingNormalizer_HPP
-#define icu4x_DecomposingNormalizer_HPP
-
-#include "DecomposingNormalizer.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::DecomposingNormalizer* icu4x_DecomposingNormalizer_create_nfd_mv1(void);
-    
-    typedef struct icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result {union {icu4x::capi::DecomposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result;
-    icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1_result icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::DecomposingNormalizer* icu4x_DecomposingNormalizer_create_nfkd_mv1(void);
-    
-    typedef struct icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result {union {icu4x::capi::DecomposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result;
-    icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1_result icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    void icu4x_DecomposingNormalizer_normalize_mv1(const icu4x::capi::DecomposingNormalizer* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    bool icu4x_DecomposingNormalizer_is_normalized_mv1(const icu4x::capi::DecomposingNormalizer* self, diplomat::capi::DiplomatStringView s);
-    
-    bool icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(const icu4x::capi::DecomposingNormalizer* self, diplomat::capi::DiplomatString16View s);
-    
-    size_t icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(const icu4x::capi::DecomposingNormalizer* self, diplomat::capi::DiplomatStringView s);
-    
-    size_t icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(const icu4x::capi::DecomposingNormalizer* self, diplomat::capi::DiplomatString16View s);
-    
-    
-    void icu4x_DecomposingNormalizer_destroy_mv1(DecomposingNormalizer* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::DecomposingNormalizer> icu4x::DecomposingNormalizer::create_nfd() {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfd_mv1();
-  return std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> icu4x::DecomposingNormalizer::create_nfd_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecomposingNormalizer>>(std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::DecomposingNormalizer> icu4x::DecomposingNormalizer::create_nfkd() {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfkd_mv1();
-  return std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> icu4x::DecomposingNormalizer::create_nfkd_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecomposingNormalizer>>(std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::DecomposingNormalizer::normalize(std::string_view s) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_DecomposingNormalizer_normalize_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    &write);
-  return output;
-}
-
-inline bool icu4x::DecomposingNormalizer::is_normalized(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline bool icu4x::DecomposingNormalizer::is_normalized_utf16(std::u16string_view s) const {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline size_t icu4x::DecomposingNormalizer::is_normalized_up_to(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline size_t icu4x::DecomposingNormalizer::is_normalized_utf16_up_to(std::u16string_view s) const {
-  auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline const icu4x::capi::DecomposingNormalizer* icu4x::DecomposingNormalizer::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::DecomposingNormalizer*>(this);
-}
-
-inline icu4x::capi::DecomposingNormalizer* icu4x::DecomposingNormalizer::AsFFI() {
-  return reinterpret_cast<icu4x::capi::DecomposingNormalizer*>(this);
-}
-
-inline const icu4x::DecomposingNormalizer* icu4x::DecomposingNormalizer::FromFFI(const icu4x::capi::DecomposingNormalizer* ptr) {
-  return reinterpret_cast<const icu4x::DecomposingNormalizer*>(ptr);
-}
-
-inline icu4x::DecomposingNormalizer* icu4x::DecomposingNormalizer::FromFFI(icu4x::capi::DecomposingNormalizer* ptr) {
-  return reinterpret_cast<icu4x::DecomposingNormalizer*>(ptr);
-}
-
-inline void icu4x::DecomposingNormalizer::operator delete(void* ptr) {
-  icu4x::capi::icu4x_DecomposingNormalizer_destroy_mv1(reinterpret_cast<icu4x::capi::DecomposingNormalizer*>(ptr));
-}
-
-
-#endif // icu4x_DecomposingNormalizer_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp
deleted file mode 100644
index f000f86..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_DisplayNamesFallback_D_HPP
-#define icu4x_DisplayNamesFallback_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DisplayNamesFallback {
-      DisplayNamesFallback_Code = 0,
-      DisplayNamesFallback_None = 1,
-    };
-    
-    typedef struct DisplayNamesFallback_option {union { DisplayNamesFallback ok; }; bool is_ok; } DisplayNamesFallback_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DisplayNamesFallback {
-public:
-  enum Value {
-    Code = 0,
-    None = 1,
-  };
-
-  DisplayNamesFallback() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DisplayNamesFallback(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DisplayNamesFallback AsFFI() const;
-  inline static icu4x::DisplayNamesFallback FromFFI(icu4x::capi::DisplayNamesFallback c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DisplayNamesFallback_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.hpp
deleted file mode 100644
index 1433802..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesFallback.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_DisplayNamesFallback_HPP
-#define icu4x_DisplayNamesFallback_HPP
-
-#include "DisplayNamesFallback.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DisplayNamesFallback icu4x::DisplayNamesFallback::AsFFI() const {
-  return static_cast<icu4x::capi::DisplayNamesFallback>(value);
-}
-
-inline icu4x::DisplayNamesFallback icu4x::DisplayNamesFallback::FromFFI(icu4x::capi::DisplayNamesFallback c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DisplayNamesFallback_Code:
-    case icu4x::capi::DisplayNamesFallback_None:
-      return static_cast<icu4x::DisplayNamesFallback::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DisplayNamesFallback_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp
deleted file mode 100644
index 82534e0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_DisplayNamesOptionsV1_D_HPP
-#define icu4x_DisplayNamesOptionsV1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DisplayNamesFallback.d.hpp"
-#include "DisplayNamesStyle.d.hpp"
-#include "LanguageDisplay.d.hpp"
-
-namespace icu4x {
-class DisplayNamesFallback;
-class DisplayNamesStyle;
-class LanguageDisplay;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct DisplayNamesOptionsV1 {
-      icu4x::capi::DisplayNamesStyle_option style;
-      icu4x::capi::DisplayNamesFallback_option fallback;
-      icu4x::capi::LanguageDisplay_option language_display;
-    };
-    
-    typedef struct DisplayNamesOptionsV1_option {union { DisplayNamesOptionsV1 ok; }; bool is_ok; } DisplayNamesOptionsV1_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct DisplayNamesOptionsV1 {
-  std::optional<icu4x::DisplayNamesStyle> style;
-  std::optional<icu4x::DisplayNamesFallback> fallback;
-  std::optional<icu4x::LanguageDisplay> language_display;
-
-  inline icu4x::capi::DisplayNamesOptionsV1 AsFFI() const;
-  inline static icu4x::DisplayNamesOptionsV1 FromFFI(icu4x::capi::DisplayNamesOptionsV1 c_struct);
-};
-
-} // namespace
-#endif // icu4x_DisplayNamesOptionsV1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp
deleted file mode 100644
index a6b851d6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_DisplayNamesOptionsV1_HPP
-#define icu4x_DisplayNamesOptionsV1_HPP
-
-#include "DisplayNamesOptionsV1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DisplayNamesFallback.hpp"
-#include "DisplayNamesStyle.hpp"
-#include "LanguageDisplay.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::DisplayNamesOptionsV1 icu4x::DisplayNamesOptionsV1::AsFFI() const {
-  return icu4x::capi::DisplayNamesOptionsV1 {
-    /* .style = */ style.has_value() ? (icu4x::capi::DisplayNamesStyle_option{ { style.value().AsFFI() }, true }) : (icu4x::capi::DisplayNamesStyle_option{ {}, false }),
-    /* .fallback = */ fallback.has_value() ? (icu4x::capi::DisplayNamesFallback_option{ { fallback.value().AsFFI() }, true }) : (icu4x::capi::DisplayNamesFallback_option{ {}, false }),
-    /* .language_display = */ language_display.has_value() ? (icu4x::capi::LanguageDisplay_option{ { language_display.value().AsFFI() }, true }) : (icu4x::capi::LanguageDisplay_option{ {}, false }),
-  };
-}
-
-inline icu4x::DisplayNamesOptionsV1 icu4x::DisplayNamesOptionsV1::FromFFI(icu4x::capi::DisplayNamesOptionsV1 c_struct) {
-  return icu4x::DisplayNamesOptionsV1 {
-    /* .style = */ c_struct.style.is_ok ? std::optional(icu4x::DisplayNamesStyle::FromFFI(c_struct.style.ok)) : std::nullopt,
-    /* .fallback = */ c_struct.fallback.is_ok ? std::optional(icu4x::DisplayNamesFallback::FromFFI(c_struct.fallback.ok)) : std::nullopt,
-    /* .language_display = */ c_struct.language_display.is_ok ? std::optional(icu4x::LanguageDisplay::FromFFI(c_struct.language_display.ok)) : std::nullopt,
-  };
-}
-
-
-#endif // icu4x_DisplayNamesOptionsV1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp
deleted file mode 100644
index bd9c2f5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_DisplayNamesStyle_D_HPP
-#define icu4x_DisplayNamesStyle_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum DisplayNamesStyle {
-      DisplayNamesStyle_Narrow = 0,
-      DisplayNamesStyle_Short = 1,
-      DisplayNamesStyle_Long = 2,
-      DisplayNamesStyle_Menu = 3,
-    };
-    
-    typedef struct DisplayNamesStyle_option {union { DisplayNamesStyle ok; }; bool is_ok; } DisplayNamesStyle_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class DisplayNamesStyle {
-public:
-  enum Value {
-    Narrow = 0,
-    Short = 1,
-    Long = 2,
-    Menu = 3,
-  };
-
-  DisplayNamesStyle() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr DisplayNamesStyle(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::DisplayNamesStyle AsFFI() const;
-  inline static icu4x::DisplayNamesStyle FromFFI(icu4x::capi::DisplayNamesStyle c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_DisplayNamesStyle_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.hpp
deleted file mode 100644
index cfd4a39a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/DisplayNamesStyle.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_DisplayNamesStyle_HPP
-#define icu4x_DisplayNamesStyle_HPP
-
-#include "DisplayNamesStyle.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::DisplayNamesStyle icu4x::DisplayNamesStyle::AsFFI() const {
-  return static_cast<icu4x::capi::DisplayNamesStyle>(value);
-}
-
-inline icu4x::DisplayNamesStyle icu4x::DisplayNamesStyle::FromFFI(icu4x::capi::DisplayNamesStyle c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::DisplayNamesStyle_Narrow:
-    case icu4x::capi::DisplayNamesStyle_Short:
-    case icu4x::capi::DisplayNamesStyle_Long:
-    case icu4x::capi::DisplayNamesStyle_Menu:
-      return static_cast<icu4x::DisplayNamesStyle::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_DisplayNamesStyle_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.d.hpp
deleted file mode 100644
index 4d1ad08..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.d.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef icu4x_EastAsianWidth_D_HPP
-#define icu4x_EastAsianWidth_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class EastAsianWidth;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum EastAsianWidth {
-      EastAsianWidth_Neutral = 0,
-      EastAsianWidth_Ambiguous = 1,
-      EastAsianWidth_Halfwidth = 2,
-      EastAsianWidth_Fullwidth = 3,
-      EastAsianWidth_Narrow = 4,
-      EastAsianWidth_Wide = 5,
-    };
-    
-    typedef struct EastAsianWidth_option {union { EastAsianWidth ok; }; bool is_ok; } EastAsianWidth_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class EastAsianWidth {
-public:
-  enum Value {
-    Neutral = 0,
-    Ambiguous = 1,
-    Halfwidth = 2,
-    Fullwidth = 3,
-    Narrow = 4,
-    Wide = 5,
-  };
-
-  EastAsianWidth() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr EastAsianWidth(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::EastAsianWidth for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::EastAsianWidth> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::EastAsianWidth AsFFI() const;
-  inline static icu4x::EastAsianWidth FromFFI(icu4x::capi::EastAsianWidth c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_EastAsianWidth_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.hpp
deleted file mode 100644
index 54ced8a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EastAsianWidth.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef icu4x_EastAsianWidth_HPP
-#define icu4x_EastAsianWidth_HPP
-
-#include "EastAsianWidth.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::EastAsianWidth icu4x_EastAsianWidth_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_EastAsianWidth_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_long_name_mv1_result;
-    icu4x_EastAsianWidth_long_name_mv1_result icu4x_EastAsianWidth_long_name_mv1(icu4x::capi::EastAsianWidth self);
-    
-    typedef struct icu4x_EastAsianWidth_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_short_name_mv1_result;
-    icu4x_EastAsianWidth_short_name_mv1_result icu4x_EastAsianWidth_short_name_mv1(icu4x::capi::EastAsianWidth self);
-    
-    uint8_t icu4x_EastAsianWidth_to_integer_value_mv1(icu4x::capi::EastAsianWidth self);
-    
-    typedef struct icu4x_EastAsianWidth_from_integer_value_mv1_result {union {icu4x::capi::EastAsianWidth ok; }; bool is_ok;} icu4x_EastAsianWidth_from_integer_value_mv1_result;
-    icu4x_EastAsianWidth_from_integer_value_mv1_result icu4x_EastAsianWidth_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::EastAsianWidth icu4x::EastAsianWidth::AsFFI() const {
-  return static_cast<icu4x::capi::EastAsianWidth>(value);
-}
-
-inline icu4x::EastAsianWidth icu4x::EastAsianWidth::FromFFI(icu4x::capi::EastAsianWidth c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::EastAsianWidth_Neutral:
-    case icu4x::capi::EastAsianWidth_Ambiguous:
-    case icu4x::capi::EastAsianWidth_Halfwidth:
-    case icu4x::capi::EastAsianWidth_Fullwidth:
-    case icu4x::capi::EastAsianWidth_Narrow:
-    case icu4x::capi::EastAsianWidth_Wide:
-      return static_cast<icu4x::EastAsianWidth::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::EastAsianWidth icu4x::EastAsianWidth::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_EastAsianWidth_for_char_mv1(ch);
-  return icu4x::EastAsianWidth::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::EastAsianWidth::long_name() {
-  auto result = icu4x::capi::icu4x_EastAsianWidth_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::EastAsianWidth::short_name() {
-  auto result = icu4x::capi::icu4x_EastAsianWidth_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::EastAsianWidth::to_integer_value() {
-  auto result = icu4x::capi::icu4x_EastAsianWidth_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::EastAsianWidth> icu4x::EastAsianWidth::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_EastAsianWidth_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::EastAsianWidth>(icu4x::EastAsianWidth::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_EastAsianWidth_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.d.hpp
deleted file mode 100644
index 21dcbc1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.d.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_EmojiSetData_D_HPP
-#define icu4x_EmojiSetData_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct EmojiSetData; }
-class EmojiSetData;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct EmojiSetData;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class EmojiSetData {
-public:
-
-  inline bool contains(std::string_view s) const;
-
-  inline bool contains(char32_t cp) const;
-
-  inline static std::unique_ptr<icu4x::EmojiSetData> create_basic();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::EmojiSetData>, icu4x::DataError> create_basic_with_provider(const icu4x::DataProvider& provider);
-
-  inline const icu4x::capi::EmojiSetData* AsFFI() const;
-  inline icu4x::capi::EmojiSetData* AsFFI();
-  inline static const icu4x::EmojiSetData* FromFFI(const icu4x::capi::EmojiSetData* ptr);
-  inline static icu4x::EmojiSetData* FromFFI(icu4x::capi::EmojiSetData* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  EmojiSetData() = delete;
-  EmojiSetData(const icu4x::EmojiSetData&) = delete;
-  EmojiSetData(icu4x::EmojiSetData&&) noexcept = delete;
-  EmojiSetData operator=(const icu4x::EmojiSetData&) = delete;
-  EmojiSetData operator=(icu4x::EmojiSetData&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_EmojiSetData_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.hpp
deleted file mode 100644
index 7f5b7a8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/EmojiSetData.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef icu4x_EmojiSetData_HPP
-#define icu4x_EmojiSetData_HPP
-
-#include "EmojiSetData.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_EmojiSetData_contains_str_mv1(const icu4x::capi::EmojiSetData* self, diplomat::capi::DiplomatStringView s);
-    
-    bool icu4x_EmojiSetData_contains_mv1(const icu4x::capi::EmojiSetData* self, char32_t cp);
-    
-    icu4x::capi::EmojiSetData* icu4x_EmojiSetData_create_basic_mv1(void);
-    
-    typedef struct icu4x_EmojiSetData_create_basic_with_provider_mv1_result {union {icu4x::capi::EmojiSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_EmojiSetData_create_basic_with_provider_mv1_result;
-    icu4x_EmojiSetData_create_basic_with_provider_mv1_result icu4x_EmojiSetData_create_basic_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    
-    void icu4x_EmojiSetData_destroy_mv1(EmojiSetData* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::EmojiSetData::contains(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_EmojiSetData_contains_str_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline bool icu4x::EmojiSetData::contains(char32_t cp) const {
-  auto result = icu4x::capi::icu4x_EmojiSetData_contains_mv1(this->AsFFI(),
-    cp);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::EmojiSetData> icu4x::EmojiSetData::create_basic() {
-  auto result = icu4x::capi::icu4x_EmojiSetData_create_basic_mv1();
-  return std::unique_ptr<icu4x::EmojiSetData>(icu4x::EmojiSetData::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::EmojiSetData>, icu4x::DataError> icu4x::EmojiSetData::create_basic_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_EmojiSetData_create_basic_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::EmojiSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::EmojiSetData>>(std::unique_ptr<icu4x::EmojiSetData>(icu4x::EmojiSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::EmojiSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::EmojiSetData* icu4x::EmojiSetData::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::EmojiSetData*>(this);
-}
-
-inline icu4x::capi::EmojiSetData* icu4x::EmojiSetData::AsFFI() {
-  return reinterpret_cast<icu4x::capi::EmojiSetData*>(this);
-}
-
-inline const icu4x::EmojiSetData* icu4x::EmojiSetData::FromFFI(const icu4x::capi::EmojiSetData* ptr) {
-  return reinterpret_cast<const icu4x::EmojiSetData*>(ptr);
-}
-
-inline icu4x::EmojiSetData* icu4x::EmojiSetData::FromFFI(icu4x::capi::EmojiSetData* ptr) {
-  return reinterpret_cast<icu4x::EmojiSetData*>(ptr);
-}
-
-inline void icu4x::EmojiSetData::operator delete(void* ptr) {
-  icu4x::capi::icu4x_EmojiSetData_destroy_mv1(reinterpret_cast<icu4x::capi::EmojiSetData*>(ptr));
-}
-
-
-#endif // icu4x_EmojiSetData_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.d.hpp
deleted file mode 100644
index f4c8031..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.d.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef icu4x_ExemplarCharacters_D_HPP
-#define icu4x_ExemplarCharacters_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct ExemplarCharacters; }
-class ExemplarCharacters;
-namespace capi { struct Locale; }
-class Locale;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ExemplarCharacters;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ExemplarCharacters {
-public:
-
-  inline bool contains(std::string_view s) const;
-
-  inline bool contains(char32_t cp) const;
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_main(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_main_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_auxiliary(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_auxiliary_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_punctuation(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_punctuation_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_numbers(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_numbers_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_index(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_index_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline const icu4x::capi::ExemplarCharacters* AsFFI() const;
-  inline icu4x::capi::ExemplarCharacters* AsFFI();
-  inline static const icu4x::ExemplarCharacters* FromFFI(const icu4x::capi::ExemplarCharacters* ptr);
-  inline static icu4x::ExemplarCharacters* FromFFI(icu4x::capi::ExemplarCharacters* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ExemplarCharacters() = delete;
-  ExemplarCharacters(const icu4x::ExemplarCharacters&) = delete;
-  ExemplarCharacters(icu4x::ExemplarCharacters&&) noexcept = delete;
-  ExemplarCharacters operator=(const icu4x::ExemplarCharacters&) = delete;
-  ExemplarCharacters operator=(icu4x::ExemplarCharacters&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ExemplarCharacters_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.hpp
deleted file mode 100644
index 541ab62..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ExemplarCharacters.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef icu4x_ExemplarCharacters_HPP
-#define icu4x_ExemplarCharacters_HPP
-
-#include "ExemplarCharacters.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_ExemplarCharacters_contains_str_mv1(const icu4x::capi::ExemplarCharacters* self, diplomat::capi::DiplomatStringView s);
-    
-    bool icu4x_ExemplarCharacters_contains_mv1(const icu4x::capi::ExemplarCharacters* self, char32_t cp);
-    
-    typedef struct icu4x_ExemplarCharacters_create_main_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_main_mv1_result;
-    icu4x_ExemplarCharacters_create_main_mv1_result icu4x_ExemplarCharacters_create_main_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_main_with_provider_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_main_with_provider_mv1_result;
-    icu4x_ExemplarCharacters_create_main_with_provider_mv1_result icu4x_ExemplarCharacters_create_main_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_auxiliary_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_auxiliary_mv1_result;
-    icu4x_ExemplarCharacters_create_auxiliary_mv1_result icu4x_ExemplarCharacters_create_auxiliary_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result;
-    icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1_result icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_punctuation_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_punctuation_mv1_result;
-    icu4x_ExemplarCharacters_create_punctuation_mv1_result icu4x_ExemplarCharacters_create_punctuation_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result;
-    icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1_result icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_numbers_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_numbers_mv1_result;
-    icu4x_ExemplarCharacters_create_numbers_mv1_result icu4x_ExemplarCharacters_create_numbers_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result;
-    icu4x_ExemplarCharacters_create_numbers_with_provider_mv1_result icu4x_ExemplarCharacters_create_numbers_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_index_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_index_mv1_result;
-    icu4x_ExemplarCharacters_create_index_mv1_result icu4x_ExemplarCharacters_create_index_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_ExemplarCharacters_create_index_with_provider_mv1_result {union {icu4x::capi::ExemplarCharacters* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ExemplarCharacters_create_index_with_provider_mv1_result;
-    icu4x_ExemplarCharacters_create_index_with_provider_mv1_result icu4x_ExemplarCharacters_create_index_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    
-    void icu4x_ExemplarCharacters_destroy_mv1(ExemplarCharacters* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::ExemplarCharacters::contains(std::string_view s) const {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_contains_str_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result;
-}
-
-inline bool icu4x::ExemplarCharacters::contains(char32_t cp) const {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_contains_mv1(this->AsFFI(),
-    cp);
-  return result;
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_main(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_main_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_main_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_main_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_auxiliary(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_auxiliary_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_auxiliary_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_punctuation(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_punctuation_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_punctuation_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_numbers(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_numbers_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_numbers_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_numbers_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_index(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_index_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> icu4x::ExemplarCharacters::create_index_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_ExemplarCharacters_create_index_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ExemplarCharacters>>(std::unique_ptr<icu4x::ExemplarCharacters>(icu4x::ExemplarCharacters::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::ExemplarCharacters* icu4x::ExemplarCharacters::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ExemplarCharacters*>(this);
-}
-
-inline icu4x::capi::ExemplarCharacters* icu4x::ExemplarCharacters::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ExemplarCharacters*>(this);
-}
-
-inline const icu4x::ExemplarCharacters* icu4x::ExemplarCharacters::FromFFI(const icu4x::capi::ExemplarCharacters* ptr) {
-  return reinterpret_cast<const icu4x::ExemplarCharacters*>(ptr);
-}
-
-inline icu4x::ExemplarCharacters* icu4x::ExemplarCharacters::FromFFI(icu4x::capi::ExemplarCharacters* ptr) {
-  return reinterpret_cast<icu4x::ExemplarCharacters*>(ptr);
-}
-
-inline void icu4x::ExemplarCharacters::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ExemplarCharacters_destroy_mv1(reinterpret_cast<icu4x::capi::ExemplarCharacters*>(ptr));
-}
-
-
-#endif // icu4x_ExemplarCharacters_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp
deleted file mode 100644
index f128580..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef icu4x_FixedDecimalLimitError_D_HPP
-#define icu4x_FixedDecimalLimitError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct FixedDecimalLimitError {
-
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalLimitError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.hpp
deleted file mode 100644
index 3d256c60..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalLimitError.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef icu4x_FixedDecimalLimitError_HPP
-#define icu4x_FixedDecimalLimitError_HPP
-
-#include "FixedDecimalLimitError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-
-
-#endif // icu4x_FixedDecimalLimitError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp
deleted file mode 100644
index 48e41e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_FixedDecimalParseError_D_HPP
-#define icu4x_FixedDecimalParseError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum FixedDecimalParseError {
-      FixedDecimalParseError_Unknown = 0,
-      FixedDecimalParseError_Limit = 1,
-      FixedDecimalParseError_Syntax = 2,
-    };
-    
-    typedef struct FixedDecimalParseError_option {union { FixedDecimalParseError ok; }; bool is_ok; } FixedDecimalParseError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class FixedDecimalParseError {
-public:
-  enum Value {
-    Unknown = 0,
-    Limit = 1,
-    Syntax = 2,
-  };
-
-  FixedDecimalParseError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr FixedDecimalParseError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::FixedDecimalParseError AsFFI() const;
-  inline static icu4x::FixedDecimalParseError FromFFI(icu4x::capi::FixedDecimalParseError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalParseError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.hpp
deleted file mode 100644
index a8c0a09..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalParseError.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_FixedDecimalParseError_HPP
-#define icu4x_FixedDecimalParseError_HPP
-
-#include "FixedDecimalParseError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::FixedDecimalParseError icu4x::FixedDecimalParseError::AsFFI() const {
-  return static_cast<icu4x::capi::FixedDecimalParseError>(value);
-}
-
-inline icu4x::FixedDecimalParseError icu4x::FixedDecimalParseError::FromFFI(icu4x::capi::FixedDecimalParseError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::FixedDecimalParseError_Unknown:
-    case icu4x::capi::FixedDecimalParseError_Limit:
-    case icu4x::capi::FixedDecimalParseError_Syntax:
-      return static_cast<icu4x::FixedDecimalParseError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_FixedDecimalParseError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp
deleted file mode 100644
index 76ab717..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_FixedDecimalRoundingIncrement_D_HPP
-#define icu4x_FixedDecimalRoundingIncrement_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum FixedDecimalRoundingIncrement {
-      FixedDecimalRoundingIncrement_MultiplesOf1 = 0,
-      FixedDecimalRoundingIncrement_MultiplesOf2 = 1,
-      FixedDecimalRoundingIncrement_MultiplesOf5 = 2,
-      FixedDecimalRoundingIncrement_MultiplesOf25 = 3,
-    };
-    
-    typedef struct FixedDecimalRoundingIncrement_option {union { FixedDecimalRoundingIncrement ok; }; bool is_ok; } FixedDecimalRoundingIncrement_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class FixedDecimalRoundingIncrement {
-public:
-  enum Value {
-    MultiplesOf1 = 0,
-    MultiplesOf2 = 1,
-    MultiplesOf5 = 2,
-    MultiplesOf25 = 3,
-  };
-
-  FixedDecimalRoundingIncrement() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr FixedDecimalRoundingIncrement(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::FixedDecimalRoundingIncrement AsFFI() const;
-  inline static icu4x::FixedDecimalRoundingIncrement FromFFI(icu4x::capi::FixedDecimalRoundingIncrement c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalRoundingIncrement_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp
deleted file mode 100644
index 70d6732..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_FixedDecimalRoundingIncrement_HPP
-#define icu4x_FixedDecimalRoundingIncrement_HPP
-
-#include "FixedDecimalRoundingIncrement.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::FixedDecimalRoundingIncrement icu4x::FixedDecimalRoundingIncrement::AsFFI() const {
-  return static_cast<icu4x::capi::FixedDecimalRoundingIncrement>(value);
-}
-
-inline icu4x::FixedDecimalRoundingIncrement icu4x::FixedDecimalRoundingIncrement::FromFFI(icu4x::capi::FixedDecimalRoundingIncrement c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf1:
-    case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf2:
-    case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf5:
-    case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf25:
-      return static_cast<icu4x::FixedDecimalRoundingIncrement::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_FixedDecimalRoundingIncrement_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.d.hpp
deleted file mode 100644
index 3632b877..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_FixedDecimalSign_D_HPP
-#define icu4x_FixedDecimalSign_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum FixedDecimalSign {
-      FixedDecimalSign_None = 0,
-      FixedDecimalSign_Negative = 1,
-      FixedDecimalSign_Positive = 2,
-    };
-    
-    typedef struct FixedDecimalSign_option {union { FixedDecimalSign ok; }; bool is_ok; } FixedDecimalSign_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class FixedDecimalSign {
-public:
-  enum Value {
-    None = 0,
-    Negative = 1,
-    Positive = 2,
-  };
-
-  FixedDecimalSign() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr FixedDecimalSign(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::FixedDecimalSign AsFFI() const;
-  inline static icu4x::FixedDecimalSign FromFFI(icu4x::capi::FixedDecimalSign c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalSign_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.hpp
deleted file mode 100644
index dddff63..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSign.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_FixedDecimalSign_HPP
-#define icu4x_FixedDecimalSign_HPP
-
-#include "FixedDecimalSign.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::FixedDecimalSign icu4x::FixedDecimalSign::AsFFI() const {
-  return static_cast<icu4x::capi::FixedDecimalSign>(value);
-}
-
-inline icu4x::FixedDecimalSign icu4x::FixedDecimalSign::FromFFI(icu4x::capi::FixedDecimalSign c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::FixedDecimalSign_None:
-    case icu4x::capi::FixedDecimalSign_Negative:
-    case icu4x::capi::FixedDecimalSign_Positive:
-      return static_cast<icu4x::FixedDecimalSign::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_FixedDecimalSign_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp
deleted file mode 100644
index 134ecdd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_FixedDecimalSignDisplay_D_HPP
-#define icu4x_FixedDecimalSignDisplay_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum FixedDecimalSignDisplay {
-      FixedDecimalSignDisplay_Auto = 0,
-      FixedDecimalSignDisplay_Never = 1,
-      FixedDecimalSignDisplay_Always = 2,
-      FixedDecimalSignDisplay_ExceptZero = 3,
-      FixedDecimalSignDisplay_Negative = 4,
-    };
-    
-    typedef struct FixedDecimalSignDisplay_option {union { FixedDecimalSignDisplay ok; }; bool is_ok; } FixedDecimalSignDisplay_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class FixedDecimalSignDisplay {
-public:
-  enum Value {
-    Auto = 0,
-    Never = 1,
-    Always = 2,
-    ExceptZero = 3,
-    Negative = 4,
-  };
-
-  FixedDecimalSignDisplay() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr FixedDecimalSignDisplay(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::FixedDecimalSignDisplay AsFFI() const;
-  inline static icu4x::FixedDecimalSignDisplay FromFFI(icu4x::capi::FixedDecimalSignDisplay c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalSignDisplay_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp
deleted file mode 100644
index de93230..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_FixedDecimalSignDisplay_HPP
-#define icu4x_FixedDecimalSignDisplay_HPP
-
-#include "FixedDecimalSignDisplay.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::FixedDecimalSignDisplay icu4x::FixedDecimalSignDisplay::AsFFI() const {
-  return static_cast<icu4x::capi::FixedDecimalSignDisplay>(value);
-}
-
-inline icu4x::FixedDecimalSignDisplay icu4x::FixedDecimalSignDisplay::FromFFI(icu4x::capi::FixedDecimalSignDisplay c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::FixedDecimalSignDisplay_Auto:
-    case icu4x::capi::FixedDecimalSignDisplay_Never:
-    case icu4x::capi::FixedDecimalSignDisplay_Always:
-    case icu4x::capi::FixedDecimalSignDisplay_ExceptZero:
-    case icu4x::capi::FixedDecimalSignDisplay_Negative:
-      return static_cast<icu4x::FixedDecimalSignDisplay::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_FixedDecimalSignDisplay_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.d.hpp
deleted file mode 100644
index 37f24ba..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_FixedDecimalSignedRoundingMode_D_HPP
-#define icu4x_FixedDecimalSignedRoundingMode_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum FixedDecimalSignedRoundingMode {
-      FixedDecimalSignedRoundingMode_Expand = 0,
-      FixedDecimalSignedRoundingMode_Trunc = 1,
-      FixedDecimalSignedRoundingMode_HalfExpand = 2,
-      FixedDecimalSignedRoundingMode_HalfTrunc = 3,
-      FixedDecimalSignedRoundingMode_HalfEven = 4,
-      FixedDecimalSignedRoundingMode_Ceil = 5,
-      FixedDecimalSignedRoundingMode_Floor = 6,
-      FixedDecimalSignedRoundingMode_HalfCeil = 7,
-      FixedDecimalSignedRoundingMode_HalfFloor = 8,
-    };
-    
-    typedef struct FixedDecimalSignedRoundingMode_option {union { FixedDecimalSignedRoundingMode ok; }; bool is_ok; } FixedDecimalSignedRoundingMode_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class FixedDecimalSignedRoundingMode {
-public:
-  enum Value {
-    Expand = 0,
-    Trunc = 1,
-    HalfExpand = 2,
-    HalfTrunc = 3,
-    HalfEven = 4,
-    Ceil = 5,
-    Floor = 6,
-    HalfCeil = 7,
-    HalfFloor = 8,
-  };
-
-  FixedDecimalSignedRoundingMode() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr FixedDecimalSignedRoundingMode(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::FixedDecimalSignedRoundingMode AsFFI() const;
-  inline static icu4x::FixedDecimalSignedRoundingMode FromFFI(icu4x::capi::FixedDecimalSignedRoundingMode c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_FixedDecimalSignedRoundingMode_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.hpp
deleted file mode 100644
index 0e76018..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/FixedDecimalSignedRoundingMode.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_FixedDecimalSignedRoundingMode_HPP
-#define icu4x_FixedDecimalSignedRoundingMode_HPP
-
-#include "FixedDecimalSignedRoundingMode.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::FixedDecimalSignedRoundingMode icu4x::FixedDecimalSignedRoundingMode::AsFFI() const {
-  return static_cast<icu4x::capi::FixedDecimalSignedRoundingMode>(value);
-}
-
-inline icu4x::FixedDecimalSignedRoundingMode icu4x::FixedDecimalSignedRoundingMode::FromFFI(icu4x::capi::FixedDecimalSignedRoundingMode c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::FixedDecimalSignedRoundingMode_Expand:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_Trunc:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_HalfExpand:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_HalfTrunc:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_HalfEven:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_Ceil:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_Floor:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_HalfCeil:
-    case icu4x::capi::FixedDecimalSignedRoundingMode_HalfFloor:
-      return static_cast<icu4x::FixedDecimalSignedRoundingMode::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_FixedDecimalSignedRoundingMode_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.d.hpp
deleted file mode 100644
index 838a935..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.d.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef icu4x_GeneralCategory_D_HPP
-#define icu4x_GeneralCategory_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-struct GeneralCategoryGroup;
-class GeneralCategory;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum GeneralCategory {
-      GeneralCategory_Unassigned = 0,
-      GeneralCategory_UppercaseLetter = 1,
-      GeneralCategory_LowercaseLetter = 2,
-      GeneralCategory_TitlecaseLetter = 3,
-      GeneralCategory_ModifierLetter = 4,
-      GeneralCategory_OtherLetter = 5,
-      GeneralCategory_NonspacingMark = 6,
-      GeneralCategory_SpacingMark = 8,
-      GeneralCategory_EnclosingMark = 7,
-      GeneralCategory_DecimalNumber = 9,
-      GeneralCategory_LetterNumber = 10,
-      GeneralCategory_OtherNumber = 11,
-      GeneralCategory_SpaceSeparator = 12,
-      GeneralCategory_LineSeparator = 13,
-      GeneralCategory_ParagraphSeparator = 14,
-      GeneralCategory_Control = 15,
-      GeneralCategory_Format = 16,
-      GeneralCategory_PrivateUse = 17,
-      GeneralCategory_Surrogate = 18,
-      GeneralCategory_DashPunctuation = 19,
-      GeneralCategory_OpenPunctuation = 20,
-      GeneralCategory_ClosePunctuation = 21,
-      GeneralCategory_ConnectorPunctuation = 22,
-      GeneralCategory_InitialPunctuation = 28,
-      GeneralCategory_FinalPunctuation = 29,
-      GeneralCategory_OtherPunctuation = 23,
-      GeneralCategory_MathSymbol = 24,
-      GeneralCategory_CurrencySymbol = 25,
-      GeneralCategory_ModifierSymbol = 26,
-      GeneralCategory_OtherSymbol = 27,
-    };
-    
-    typedef struct GeneralCategory_option {union { GeneralCategory ok; }; bool is_ok; } GeneralCategory_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GeneralCategory {
-public:
-  enum Value {
-    Unassigned = 0,
-    UppercaseLetter = 1,
-    LowercaseLetter = 2,
-    TitlecaseLetter = 3,
-    ModifierLetter = 4,
-    OtherLetter = 5,
-    NonspacingMark = 6,
-    SpacingMark = 8,
-    EnclosingMark = 7,
-    DecimalNumber = 9,
-    LetterNumber = 10,
-    OtherNumber = 11,
-    SpaceSeparator = 12,
-    LineSeparator = 13,
-    ParagraphSeparator = 14,
-    Control = 15,
-    Format = 16,
-    PrivateUse = 17,
-    Surrogate = 18,
-    DashPunctuation = 19,
-    OpenPunctuation = 20,
-    ClosePunctuation = 21,
-    ConnectorPunctuation = 22,
-    InitialPunctuation = 28,
-    FinalPunctuation = 29,
-    OtherPunctuation = 23,
-    MathSymbol = 24,
-    CurrencySymbol = 25,
-    ModifierSymbol = 26,
-    OtherSymbol = 27,
-  };
-
-  GeneralCategory() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr GeneralCategory(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::GeneralCategory for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline icu4x::GeneralCategoryGroup to_group();
-
-  inline static std::optional<icu4x::GeneralCategory> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::GeneralCategory AsFFI() const;
-  inline static icu4x::GeneralCategory FromFFI(icu4x::capi::GeneralCategory c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_GeneralCategory_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.hpp
deleted file mode 100644
index f9440283..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategory.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef icu4x_GeneralCategory_HPP
-#define icu4x_GeneralCategory_HPP
-
-#include "GeneralCategory.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "GeneralCategoryGroup.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::GeneralCategory icu4x_GeneralCategory_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_GeneralCategory_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_long_name_mv1_result;
-    icu4x_GeneralCategory_long_name_mv1_result icu4x_GeneralCategory_long_name_mv1(icu4x::capi::GeneralCategory self);
-    
-    typedef struct icu4x_GeneralCategory_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_short_name_mv1_result;
-    icu4x_GeneralCategory_short_name_mv1_result icu4x_GeneralCategory_short_name_mv1(icu4x::capi::GeneralCategory self);
-    
-    uint8_t icu4x_GeneralCategory_to_integer_value_mv1(icu4x::capi::GeneralCategory self);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategory_to_group_mv1(icu4x::capi::GeneralCategory self);
-    
-    typedef struct icu4x_GeneralCategory_from_integer_value_mv1_result {union {icu4x::capi::GeneralCategory ok; }; bool is_ok;} icu4x_GeneralCategory_from_integer_value_mv1_result;
-    icu4x_GeneralCategory_from_integer_value_mv1_result icu4x_GeneralCategory_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::GeneralCategory icu4x::GeneralCategory::AsFFI() const {
-  return static_cast<icu4x::capi::GeneralCategory>(value);
-}
-
-inline icu4x::GeneralCategory icu4x::GeneralCategory::FromFFI(icu4x::capi::GeneralCategory c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::GeneralCategory_Unassigned:
-    case icu4x::capi::GeneralCategory_UppercaseLetter:
-    case icu4x::capi::GeneralCategory_LowercaseLetter:
-    case icu4x::capi::GeneralCategory_TitlecaseLetter:
-    case icu4x::capi::GeneralCategory_ModifierLetter:
-    case icu4x::capi::GeneralCategory_OtherLetter:
-    case icu4x::capi::GeneralCategory_NonspacingMark:
-    case icu4x::capi::GeneralCategory_SpacingMark:
-    case icu4x::capi::GeneralCategory_EnclosingMark:
-    case icu4x::capi::GeneralCategory_DecimalNumber:
-    case icu4x::capi::GeneralCategory_LetterNumber:
-    case icu4x::capi::GeneralCategory_OtherNumber:
-    case icu4x::capi::GeneralCategory_SpaceSeparator:
-    case icu4x::capi::GeneralCategory_LineSeparator:
-    case icu4x::capi::GeneralCategory_ParagraphSeparator:
-    case icu4x::capi::GeneralCategory_Control:
-    case icu4x::capi::GeneralCategory_Format:
-    case icu4x::capi::GeneralCategory_PrivateUse:
-    case icu4x::capi::GeneralCategory_Surrogate:
-    case icu4x::capi::GeneralCategory_DashPunctuation:
-    case icu4x::capi::GeneralCategory_OpenPunctuation:
-    case icu4x::capi::GeneralCategory_ClosePunctuation:
-    case icu4x::capi::GeneralCategory_ConnectorPunctuation:
-    case icu4x::capi::GeneralCategory_InitialPunctuation:
-    case icu4x::capi::GeneralCategory_FinalPunctuation:
-    case icu4x::capi::GeneralCategory_OtherPunctuation:
-    case icu4x::capi::GeneralCategory_MathSymbol:
-    case icu4x::capi::GeneralCategory_CurrencySymbol:
-    case icu4x::capi::GeneralCategory_ModifierSymbol:
-    case icu4x::capi::GeneralCategory_OtherSymbol:
-      return static_cast<icu4x::GeneralCategory::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::GeneralCategory icu4x::GeneralCategory::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_GeneralCategory_for_char_mv1(ch);
-  return icu4x::GeneralCategory::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::GeneralCategory::long_name() {
-  auto result = icu4x::capi::icu4x_GeneralCategory_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::GeneralCategory::short_name() {
-  auto result = icu4x::capi::icu4x_GeneralCategory_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::GeneralCategory::to_integer_value() {
-  auto result = icu4x::capi::icu4x_GeneralCategory_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategory::to_group() {
-  auto result = icu4x::capi::icu4x_GeneralCategory_to_group_mv1(this->AsFFI());
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline std::optional<icu4x::GeneralCategory> icu4x::GeneralCategory::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_GeneralCategory_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::GeneralCategory>(icu4x::GeneralCategory::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_GeneralCategory_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.d.hpp
deleted file mode 100644
index 17440d69..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_GeneralCategoryGroup_D_HPP
-#define icu4x_GeneralCategoryGroup_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-struct GeneralCategoryGroup;
-class GeneralCategory;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct GeneralCategoryGroup {
-      uint32_t mask;
-    };
-    
-    typedef struct GeneralCategoryGroup_option {union { GeneralCategoryGroup ok; }; bool is_ok; } GeneralCategoryGroup_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct GeneralCategoryGroup {
-  uint32_t mask;
-
-  inline bool contains(icu4x::GeneralCategory val);
-
-  inline icu4x::GeneralCategoryGroup complement();
-
-  inline static icu4x::GeneralCategoryGroup all();
-
-  inline static icu4x::GeneralCategoryGroup empty();
-
-  inline icu4x::GeneralCategoryGroup union_(icu4x::GeneralCategoryGroup other);
-
-  inline icu4x::GeneralCategoryGroup intersection(icu4x::GeneralCategoryGroup other);
-
-  inline static icu4x::GeneralCategoryGroup cased_letter();
-
-  inline static icu4x::GeneralCategoryGroup letter();
-
-  inline static icu4x::GeneralCategoryGroup mark();
-
-  inline static icu4x::GeneralCategoryGroup number();
-
-  inline static icu4x::GeneralCategoryGroup separator();
-
-  inline static icu4x::GeneralCategoryGroup other();
-
-  inline static icu4x::GeneralCategoryGroup punctuation();
-
-  inline static icu4x::GeneralCategoryGroup symbol();
-
-  inline icu4x::capi::GeneralCategoryGroup AsFFI() const;
-  inline static icu4x::GeneralCategoryGroup FromFFI(icu4x::capi::GeneralCategoryGroup c_struct);
-};
-
-} // namespace
-#endif // icu4x_GeneralCategoryGroup_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.hpp
deleted file mode 100644
index 4013f7e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryGroup.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-#ifndef icu4x_GeneralCategoryGroup_HPP
-#define icu4x_GeneralCategoryGroup_HPP
-
-#include "GeneralCategoryGroup.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "GeneralCategory.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_GeneralCategoryGroup_contains_mv1(icu4x::capi::GeneralCategoryGroup self, icu4x::capi::GeneralCategory val);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_complement_mv1(icu4x::capi::GeneralCategoryGroup self);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_all_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_empty_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_union_mv1(icu4x::capi::GeneralCategoryGroup self, icu4x::capi::GeneralCategoryGroup other);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_intersection_mv1(icu4x::capi::GeneralCategoryGroup self, icu4x::capi::GeneralCategoryGroup other);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_cased_letter_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_letter_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_mark_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_number_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_separator_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_other_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_punctuation_mv1(void);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryGroup_symbol_mv1(void);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::GeneralCategoryGroup::contains(icu4x::GeneralCategory val) {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_contains_mv1(this->AsFFI(),
-    val.AsFFI());
-  return result;
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::complement() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_complement_mv1(this->AsFFI());
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::all() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_all_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::empty() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_empty_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::union_(icu4x::GeneralCategoryGroup other) {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_union_mv1(this->AsFFI(),
-    other.AsFFI());
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::intersection(icu4x::GeneralCategoryGroup other) {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_intersection_mv1(this->AsFFI(),
-    other.AsFFI());
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::cased_letter() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_cased_letter_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::letter() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_letter_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::mark() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_mark_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::number() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_number_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::separator() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_separator_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::other() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_other_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::punctuation() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_punctuation_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::symbol() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryGroup_symbol_mv1();
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-
-inline icu4x::capi::GeneralCategoryGroup icu4x::GeneralCategoryGroup::AsFFI() const {
-  return icu4x::capi::GeneralCategoryGroup {
-    /* .mask = */ mask,
-  };
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryGroup::FromFFI(icu4x::capi::GeneralCategoryGroup c_struct) {
-  return icu4x::GeneralCategoryGroup {
-    /* .mask = */ c_struct.mask,
-  };
-}
-
-
-#endif // icu4x_GeneralCategoryGroup_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.d.hpp
deleted file mode 100644
index 042b3ec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.d.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_GeneralCategoryNameToGroupMapper_D_HPP
-#define icu4x_GeneralCategoryNameToGroupMapper_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct GeneralCategoryNameToGroupMapper; }
-class GeneralCategoryNameToGroupMapper;
-struct GeneralCategoryGroup;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct GeneralCategoryNameToGroupMapper;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GeneralCategoryNameToGroupMapper {
-public:
-
-  inline icu4x::GeneralCategoryGroup get_strict(std::string_view name) const;
-
-  inline icu4x::GeneralCategoryGroup get_loose(std::string_view name) const;
-
-  inline static std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline const icu4x::capi::GeneralCategoryNameToGroupMapper* AsFFI() const;
-  inline icu4x::capi::GeneralCategoryNameToGroupMapper* AsFFI();
-  inline static const icu4x::GeneralCategoryNameToGroupMapper* FromFFI(const icu4x::capi::GeneralCategoryNameToGroupMapper* ptr);
-  inline static icu4x::GeneralCategoryNameToGroupMapper* FromFFI(icu4x::capi::GeneralCategoryNameToGroupMapper* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GeneralCategoryNameToGroupMapper() = delete;
-  GeneralCategoryNameToGroupMapper(const icu4x::GeneralCategoryNameToGroupMapper&) = delete;
-  GeneralCategoryNameToGroupMapper(icu4x::GeneralCategoryNameToGroupMapper&&) noexcept = delete;
-  GeneralCategoryNameToGroupMapper operator=(const icu4x::GeneralCategoryNameToGroupMapper&) = delete;
-  GeneralCategoryNameToGroupMapper operator=(icu4x::GeneralCategoryNameToGroupMapper&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GeneralCategoryNameToGroupMapper_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.hpp
deleted file mode 100644
index 2aa2e0f9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GeneralCategoryNameToGroupMapper.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef icu4x_GeneralCategoryNameToGroupMapper_HPP
-#define icu4x_GeneralCategoryNameToGroupMapper_HPP
-
-#include "GeneralCategoryNameToGroupMapper.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "GeneralCategoryGroup.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryNameToGroupMapper_get_strict_mv1(const icu4x::capi::GeneralCategoryNameToGroupMapper* self, diplomat::capi::DiplomatStringView name);
-    
-    icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategoryNameToGroupMapper_get_loose_mv1(const icu4x::capi::GeneralCategoryNameToGroupMapper* self, diplomat::capi::DiplomatStringView name);
-    
-    icu4x::capi::GeneralCategoryNameToGroupMapper* icu4x_GeneralCategoryNameToGroupMapper_create_mv1(void);
-    
-    typedef struct icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result {union {icu4x::capi::GeneralCategoryNameToGroupMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result;
-    icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1_result icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    
-    void icu4x_GeneralCategoryNameToGroupMapper_destroy_mv1(GeneralCategoryNameToGroupMapper* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryNameToGroupMapper::get_strict(std::string_view name) const {
-  auto result = icu4x::capi::icu4x_GeneralCategoryNameToGroupMapper_get_strict_mv1(this->AsFFI(),
-    {name.data(), name.size()});
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline icu4x::GeneralCategoryGroup icu4x::GeneralCategoryNameToGroupMapper::get_loose(std::string_view name) const {
-  auto result = icu4x::capi::icu4x_GeneralCategoryNameToGroupMapper_get_loose_mv1(this->AsFFI(),
-    {name.data(), name.size()});
-  return icu4x::GeneralCategoryGroup::FromFFI(result);
-}
-
-inline std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper> icu4x::GeneralCategoryNameToGroupMapper::create() {
-  auto result = icu4x::capi::icu4x_GeneralCategoryNameToGroupMapper_create_mv1();
-  return std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>(icu4x::GeneralCategoryNameToGroupMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>, icu4x::DataError> icu4x::GeneralCategoryNameToGroupMapper::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>>(std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>(icu4x::GeneralCategoryNameToGroupMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToGroupMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::GeneralCategoryNameToGroupMapper* icu4x::GeneralCategoryNameToGroupMapper::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GeneralCategoryNameToGroupMapper*>(this);
-}
-
-inline icu4x::capi::GeneralCategoryNameToGroupMapper* icu4x::GeneralCategoryNameToGroupMapper::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GeneralCategoryNameToGroupMapper*>(this);
-}
-
-inline const icu4x::GeneralCategoryNameToGroupMapper* icu4x::GeneralCategoryNameToGroupMapper::FromFFI(const icu4x::capi::GeneralCategoryNameToGroupMapper* ptr) {
-  return reinterpret_cast<const icu4x::GeneralCategoryNameToGroupMapper*>(ptr);
-}
-
-inline icu4x::GeneralCategoryNameToGroupMapper* icu4x::GeneralCategoryNameToGroupMapper::FromFFI(icu4x::capi::GeneralCategoryNameToGroupMapper* ptr) {
-  return reinterpret_cast<icu4x::GeneralCategoryNameToGroupMapper*>(ptr);
-}
-
-inline void icu4x::GeneralCategoryNameToGroupMapper::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GeneralCategoryNameToGroupMapper_destroy_mv1(reinterpret_cast<icu4x::capi::GeneralCategoryNameToGroupMapper*>(ptr));
-}
-
-
-#endif // icu4x_GeneralCategoryNameToGroupMapper_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.d.hpp
deleted file mode 100644
index 90d9105a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.d.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreak_D_HPP
-#define icu4x_GraphemeClusterBreak_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class GraphemeClusterBreak;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum GraphemeClusterBreak {
-      GraphemeClusterBreak_Other = 0,
-      GraphemeClusterBreak_Control = 1,
-      GraphemeClusterBreak_CR = 2,
-      GraphemeClusterBreak_Extend = 3,
-      GraphemeClusterBreak_L = 4,
-      GraphemeClusterBreak_LF = 5,
-      GraphemeClusterBreak_LV = 6,
-      GraphemeClusterBreak_LVT = 7,
-      GraphemeClusterBreak_T = 8,
-      GraphemeClusterBreak_V = 9,
-      GraphemeClusterBreak_SpacingMark = 10,
-      GraphemeClusterBreak_Prepend = 11,
-      GraphemeClusterBreak_RegionalIndicator = 12,
-      GraphemeClusterBreak_EBase = 13,
-      GraphemeClusterBreak_EBaseGAZ = 14,
-      GraphemeClusterBreak_EModifier = 15,
-      GraphemeClusterBreak_GlueAfterZwj = 16,
-      GraphemeClusterBreak_ZWJ = 17,
-    };
-    
-    typedef struct GraphemeClusterBreak_option {union { GraphemeClusterBreak ok; }; bool is_ok; } GraphemeClusterBreak_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GraphemeClusterBreak {
-public:
-  enum Value {
-    Other = 0,
-    Control = 1,
-    CR = 2,
-    Extend = 3,
-    L = 4,
-    LF = 5,
-    LV = 6,
-    LVT = 7,
-    T = 8,
-    V = 9,
-    SpacingMark = 10,
-    Prepend = 11,
-    RegionalIndicator = 12,
-    EBase = 13,
-    EBaseGAZ = 14,
-    EModifier = 15,
-    GlueAfterZwj = 16,
-    ZWJ = 17,
-  };
-
-  GraphemeClusterBreak() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr GraphemeClusterBreak(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::GraphemeClusterBreak for_char(char32_t ch);
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::GraphemeClusterBreak> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::GraphemeClusterBreak AsFFI() const;
-  inline static icu4x::GraphemeClusterBreak FromFFI(icu4x::capi::GraphemeClusterBreak c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_GraphemeClusterBreak_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.hpp
deleted file mode 100644
index 620b67e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreak.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreak_HPP
-#define icu4x_GraphemeClusterBreak_HPP
-
-#include "GraphemeClusterBreak.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::GraphemeClusterBreak icu4x_GraphemeClusterBreak_for_char_mv1(char32_t ch);
-    
-    uint8_t icu4x_GraphemeClusterBreak_to_integer_value_mv1(icu4x::capi::GraphemeClusterBreak self);
-    
-    typedef struct icu4x_GraphemeClusterBreak_from_integer_value_mv1_result {union {icu4x::capi::GraphemeClusterBreak ok; }; bool is_ok;} icu4x_GraphemeClusterBreak_from_integer_value_mv1_result;
-    icu4x_GraphemeClusterBreak_from_integer_value_mv1_result icu4x_GraphemeClusterBreak_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::GraphemeClusterBreak icu4x::GraphemeClusterBreak::AsFFI() const {
-  return static_cast<icu4x::capi::GraphemeClusterBreak>(value);
-}
-
-inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::FromFFI(icu4x::capi::GraphemeClusterBreak c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::GraphemeClusterBreak_Other:
-    case icu4x::capi::GraphemeClusterBreak_Control:
-    case icu4x::capi::GraphemeClusterBreak_CR:
-    case icu4x::capi::GraphemeClusterBreak_Extend:
-    case icu4x::capi::GraphemeClusterBreak_L:
-    case icu4x::capi::GraphemeClusterBreak_LF:
-    case icu4x::capi::GraphemeClusterBreak_LV:
-    case icu4x::capi::GraphemeClusterBreak_LVT:
-    case icu4x::capi::GraphemeClusterBreak_T:
-    case icu4x::capi::GraphemeClusterBreak_V:
-    case icu4x::capi::GraphemeClusterBreak_SpacingMark:
-    case icu4x::capi::GraphemeClusterBreak_Prepend:
-    case icu4x::capi::GraphemeClusterBreak_RegionalIndicator:
-    case icu4x::capi::GraphemeClusterBreak_EBase:
-    case icu4x::capi::GraphemeClusterBreak_EBaseGAZ:
-    case icu4x::capi::GraphemeClusterBreak_EModifier:
-    case icu4x::capi::GraphemeClusterBreak_GlueAfterZwj:
-    case icu4x::capi::GraphemeClusterBreak_ZWJ:
-      return static_cast<icu4x::GraphemeClusterBreak::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_for_char_mv1(ch);
-  return icu4x::GraphemeClusterBreak::FromFFI(result);
-}
-
-inline uint8_t icu4x::GraphemeClusterBreak::to_integer_value() {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::GraphemeClusterBreak> icu4x::GraphemeClusterBreak::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::GraphemeClusterBreak>(icu4x::GraphemeClusterBreak::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_GraphemeClusterBreak_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp
deleted file mode 100644
index 0a343e7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP
-#define icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct GraphemeClusterBreakIteratorLatin1;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GraphemeClusterBreakIteratorLatin1 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::GraphemeClusterBreakIteratorLatin1* AsFFI() const;
-  inline icu4x::capi::GraphemeClusterBreakIteratorLatin1* AsFFI();
-  inline static const icu4x::GraphemeClusterBreakIteratorLatin1* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr);
-  inline static icu4x::GraphemeClusterBreakIteratorLatin1* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GraphemeClusterBreakIteratorLatin1() = delete;
-  GraphemeClusterBreakIteratorLatin1(const icu4x::GraphemeClusterBreakIteratorLatin1&) = delete;
-  GraphemeClusterBreakIteratorLatin1(icu4x::GraphemeClusterBreakIteratorLatin1&&) noexcept = delete;
-  GraphemeClusterBreakIteratorLatin1 operator=(const icu4x::GraphemeClusterBreakIteratorLatin1&) = delete;
-  GraphemeClusterBreakIteratorLatin1 operator=(icu4x::GraphemeClusterBreakIteratorLatin1&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp
deleted file mode 100644
index 0a43b3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorLatin1_HPP
-#define icu4x_GraphemeClusterBreakIteratorLatin1_HPP
-
-#include "GraphemeClusterBreakIteratorLatin1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorLatin1* self);
-    
-    
-    void icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(GraphemeClusterBreakIteratorLatin1* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::GraphemeClusterBreakIteratorLatin1::next() {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(this);
-}
-
-inline icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(this);
-}
-
-inline const icu4x::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorLatin1*>(ptr);
-}
-
-inline icu4x::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorLatin1*>(ptr);
-}
-
-inline void icu4x::GraphemeClusterBreakIteratorLatin1::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(ptr));
-}
-
-
-#endif // icu4x_GraphemeClusterBreakIteratorLatin1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp
deleted file mode 100644
index 63f49259..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP
-#define icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct GraphemeClusterBreakIteratorUtf16;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GraphemeClusterBreakIteratorUtf16 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::GraphemeClusterBreakIteratorUtf16* AsFFI() const;
-  inline icu4x::capi::GraphemeClusterBreakIteratorUtf16* AsFFI();
-  inline static const icu4x::GraphemeClusterBreakIteratorUtf16* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr);
-  inline static icu4x::GraphemeClusterBreakIteratorUtf16* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GraphemeClusterBreakIteratorUtf16() = delete;
-  GraphemeClusterBreakIteratorUtf16(const icu4x::GraphemeClusterBreakIteratorUtf16&) = delete;
-  GraphemeClusterBreakIteratorUtf16(icu4x::GraphemeClusterBreakIteratorUtf16&&) noexcept = delete;
-  GraphemeClusterBreakIteratorUtf16 operator=(const icu4x::GraphemeClusterBreakIteratorUtf16&) = delete;
-  GraphemeClusterBreakIteratorUtf16 operator=(icu4x::GraphemeClusterBreakIteratorUtf16&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp
deleted file mode 100644
index 1f48363..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorUtf16_HPP
-#define icu4x_GraphemeClusterBreakIteratorUtf16_HPP
-
-#include "GraphemeClusterBreakIteratorUtf16.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorUtf16* self);
-    
-    
-    void icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(GraphemeClusterBreakIteratorUtf16* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::GraphemeClusterBreakIteratorUtf16::next() {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(this);
-}
-
-inline icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(this);
-}
-
-inline const icu4x::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorUtf16*>(ptr);
-}
-
-inline icu4x::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorUtf16*>(ptr);
-}
-
-inline void icu4x::GraphemeClusterBreakIteratorUtf16::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(ptr));
-}
-
-
-#endif // icu4x_GraphemeClusterBreakIteratorUtf16_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp
deleted file mode 100644
index 5fcea2c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP
-#define icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct GraphemeClusterBreakIteratorUtf8;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GraphemeClusterBreakIteratorUtf8 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::GraphemeClusterBreakIteratorUtf8* AsFFI() const;
-  inline icu4x::capi::GraphemeClusterBreakIteratorUtf8* AsFFI();
-  inline static const icu4x::GraphemeClusterBreakIteratorUtf8* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr);
-  inline static icu4x::GraphemeClusterBreakIteratorUtf8* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GraphemeClusterBreakIteratorUtf8() = delete;
-  GraphemeClusterBreakIteratorUtf8(const icu4x::GraphemeClusterBreakIteratorUtf8&) = delete;
-  GraphemeClusterBreakIteratorUtf8(icu4x::GraphemeClusterBreakIteratorUtf8&&) noexcept = delete;
-  GraphemeClusterBreakIteratorUtf8 operator=(const icu4x::GraphemeClusterBreakIteratorUtf8&) = delete;
-  GraphemeClusterBreakIteratorUtf8 operator=(icu4x::GraphemeClusterBreakIteratorUtf8&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp
deleted file mode 100644
index e9d51dfa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_GraphemeClusterBreakIteratorUtf8_HPP
-#define icu4x_GraphemeClusterBreakIteratorUtf8_HPP
-
-#include "GraphemeClusterBreakIteratorUtf8.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorUtf8* self);
-    
-    
-    void icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(GraphemeClusterBreakIteratorUtf8* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::GraphemeClusterBreakIteratorUtf8::next() {
-  auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(this);
-}
-
-inline icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(this);
-}
-
-inline const icu4x::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorUtf8*>(ptr);
-}
-
-inline icu4x::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorUtf8*>(ptr);
-}
-
-inline void icu4x::GraphemeClusterBreakIteratorUtf8::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(ptr));
-}
-
-
-#endif // icu4x_GraphemeClusterBreakIteratorUtf8_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp
deleted file mode 100644
index 266413da..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_GraphemeClusterSegmenter_D_HPP
-#define icu4x_GraphemeClusterSegmenter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct GraphemeClusterBreakIteratorLatin1; }
-class GraphemeClusterBreakIteratorLatin1;
-namespace capi { struct GraphemeClusterBreakIteratorUtf16; }
-class GraphemeClusterBreakIteratorUtf16;
-namespace capi { struct GraphemeClusterBreakIteratorUtf8; }
-class GraphemeClusterBreakIteratorUtf8;
-namespace capi { struct GraphemeClusterSegmenter; }
-class GraphemeClusterSegmenter;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct GraphemeClusterSegmenter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GraphemeClusterSegmenter {
-public:
-
-  inline static std::unique_ptr<icu4x::GraphemeClusterSegmenter> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8> segment(std::string_view input) const;
-
-  inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16> segment16(std::u16string_view input) const;
-
-  inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const;
-
-  inline const icu4x::capi::GraphemeClusterSegmenter* AsFFI() const;
-  inline icu4x::capi::GraphemeClusterSegmenter* AsFFI();
-  inline static const icu4x::GraphemeClusterSegmenter* FromFFI(const icu4x::capi::GraphemeClusterSegmenter* ptr);
-  inline static icu4x::GraphemeClusterSegmenter* FromFFI(icu4x::capi::GraphemeClusterSegmenter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GraphemeClusterSegmenter() = delete;
-  GraphemeClusterSegmenter(const icu4x::GraphemeClusterSegmenter&) = delete;
-  GraphemeClusterSegmenter(icu4x::GraphemeClusterSegmenter&&) noexcept = delete;
-  GraphemeClusterSegmenter operator=(const icu4x::GraphemeClusterSegmenter&) = delete;
-  GraphemeClusterSegmenter operator=(icu4x::GraphemeClusterSegmenter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GraphemeClusterSegmenter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp
deleted file mode 100644
index a9285f24..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef icu4x_GraphemeClusterSegmenter_HPP
-#define icu4x_GraphemeClusterSegmenter_HPP
-
-#include "GraphemeClusterSegmenter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "GraphemeClusterBreakIteratorLatin1.hpp"
-#include "GraphemeClusterBreakIteratorUtf16.hpp"
-#include "GraphemeClusterBreakIteratorUtf8.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::GraphemeClusterSegmenter* icu4x_GraphemeClusterSegmenter_create_mv1(void);
-    
-    typedef struct icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result {union {icu4x::capi::GraphemeClusterSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result;
-    icu4x_GraphemeClusterSegmenter_create_with_provider_mv1_result icu4x_GraphemeClusterSegmenter_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, diplomat::capi::DiplomatStringView input);
-    
-    icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, diplomat::capi::DiplomatString16View input);
-    
-    icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, diplomat::capi::DiplomatU8View input);
-    
-    
-    void icu4x_GraphemeClusterSegmenter_destroy_mv1(GraphemeClusterSegmenter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::GraphemeClusterSegmenter> icu4x::GraphemeClusterSegmenter::create() {
-  auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_create_mv1();
-  return std::unique_ptr<icu4x::GraphemeClusterSegmenter>(icu4x::GraphemeClusterSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError> icu4x::GraphemeClusterSegmenter::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::GraphemeClusterSegmenter>>(std::unique_ptr<icu4x::GraphemeClusterSegmenter>(icu4x::GraphemeClusterSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8> icu4x::GraphemeClusterSegmenter::segment(std::string_view input) const {
-  auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8>(icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16> icu4x::GraphemeClusterSegmenter::segment16(std::u16string_view input) const {
-  auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16>(icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1> icu4x::GraphemeClusterSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const {
-  auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1>(icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(result));
-}
-
-inline const icu4x::capi::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GraphemeClusterSegmenter*>(this);
-}
-
-inline icu4x::capi::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GraphemeClusterSegmenter*>(this);
-}
-
-inline const icu4x::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::FromFFI(const icu4x::capi::GraphemeClusterSegmenter* ptr) {
-  return reinterpret_cast<const icu4x::GraphemeClusterSegmenter*>(ptr);
-}
-
-inline icu4x::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::FromFFI(icu4x::capi::GraphemeClusterSegmenter* ptr) {
-  return reinterpret_cast<icu4x::GraphemeClusterSegmenter*>(ptr);
-}
-
-inline void icu4x::GraphemeClusterSegmenter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GraphemeClusterSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterSegmenter*>(ptr));
-}
-
-
-#endif // icu4x_GraphemeClusterSegmenter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp
deleted file mode 100644
index e876f0e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef icu4x_GregorianDateFormatter_D_HPP
-#define icu4x_GregorianDateFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct GregorianDateFormatter; }
-class GregorianDateFormatter;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct GregorianDateFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GregorianDateFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline std::string format_iso(const icu4x::IsoDate& value) const;
-
-  inline const icu4x::capi::GregorianDateFormatter* AsFFI() const;
-  inline icu4x::capi::GregorianDateFormatter* AsFFI();
-  inline static const icu4x::GregorianDateFormatter* FromFFI(const icu4x::capi::GregorianDateFormatter* ptr);
-  inline static icu4x::GregorianDateFormatter* FromFFI(icu4x::capi::GregorianDateFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GregorianDateFormatter() = delete;
-  GregorianDateFormatter(const icu4x::GregorianDateFormatter&) = delete;
-  GregorianDateFormatter(icu4x::GregorianDateFormatter&&) noexcept = delete;
-  GregorianDateFormatter operator=(const icu4x::GregorianDateFormatter&) = delete;
-  GregorianDateFormatter operator=(icu4x::GregorianDateFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GregorianDateFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.hpp
deleted file mode 100644
index f085e66..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianDateFormatter.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef icu4x_GregorianDateFormatter_HPP
-#define icu4x_GregorianDateFormatter_HPP
-
-#include "GregorianDateFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_GregorianDateFormatter_create_with_length_mv1_result {union {icu4x::capi::GregorianDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_mv1_result;
-    icu4x_GregorianDateFormatter_create_with_length_mv1_result icu4x_GregorianDateFormatter_create_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result {union {icu4x::capi::GregorianDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result;
-    icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1_result icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    void icu4x_GregorianDateFormatter_format_iso_mv1(const icu4x::capi::GregorianDateFormatter* self, const icu4x::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_GregorianDateFormatter_destroy_mv1(GregorianDateFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::GregorianDateFormatter::create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_GregorianDateFormatter_create_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::GregorianDateFormatter>>(std::unique_ptr<icu4x::GregorianDateFormatter>(icu4x::GregorianDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::GregorianDateFormatter::create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::GregorianDateFormatter>>(std::unique_ptr<icu4x::GregorianDateFormatter>(icu4x::GregorianDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::GregorianDateFormatter::format_iso(const icu4x::IsoDate& value) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_GregorianDateFormatter_format_iso_mv1(this->AsFFI(),
-    value.AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::GregorianDateFormatter* icu4x::GregorianDateFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GregorianDateFormatter*>(this);
-}
-
-inline icu4x::capi::GregorianDateFormatter* icu4x::GregorianDateFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GregorianDateFormatter*>(this);
-}
-
-inline const icu4x::GregorianDateFormatter* icu4x::GregorianDateFormatter::FromFFI(const icu4x::capi::GregorianDateFormatter* ptr) {
-  return reinterpret_cast<const icu4x::GregorianDateFormatter*>(ptr);
-}
-
-inline icu4x::GregorianDateFormatter* icu4x::GregorianDateFormatter::FromFFI(icu4x::capi::GregorianDateFormatter* ptr) {
-  return reinterpret_cast<icu4x::GregorianDateFormatter*>(ptr);
-}
-
-inline void icu4x::GregorianDateFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GregorianDateFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::GregorianDateFormatter*>(ptr));
-}
-
-
-#endif // icu4x_GregorianDateFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp
deleted file mode 100644
index 377445a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_GregorianZonedDateTimeFormatter_D_HPP
-#define icu4x_GregorianZonedDateTimeFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct GregorianZonedDateTimeFormatter; }
-class GregorianZonedDateTimeFormatter;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-class DateTimeFormatError;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct GregorianZonedDateTimeFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class GregorianZonedDateTimeFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline diplomat::result<std::string, icu4x::DateTimeFormatError> format_iso(const icu4x::IsoDate& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const;
-
-  inline const icu4x::capi::GregorianZonedDateTimeFormatter* AsFFI() const;
-  inline icu4x::capi::GregorianZonedDateTimeFormatter* AsFFI();
-  inline static const icu4x::GregorianZonedDateTimeFormatter* FromFFI(const icu4x::capi::GregorianZonedDateTimeFormatter* ptr);
-  inline static icu4x::GregorianZonedDateTimeFormatter* FromFFI(icu4x::capi::GregorianZonedDateTimeFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  GregorianZonedDateTimeFormatter() = delete;
-  GregorianZonedDateTimeFormatter(const icu4x::GregorianZonedDateTimeFormatter&) = delete;
-  GregorianZonedDateTimeFormatter(icu4x::GregorianZonedDateTimeFormatter&&) noexcept = delete;
-  GregorianZonedDateTimeFormatter operator=(const icu4x::GregorianZonedDateTimeFormatter&) = delete;
-  GregorianZonedDateTimeFormatter operator=(icu4x::GregorianZonedDateTimeFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_GregorianZonedDateTimeFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp
deleted file mode 100644
index de4a080..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef icu4x_GregorianZonedDateTimeFormatter_HPP
-#define icu4x_GregorianZonedDateTimeFormatter_HPP
-
-#include "GregorianZonedDateTimeFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "DateTimeFormatError.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-#include "Time.hpp"
-#include "TimeZoneInfo.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result {union {icu4x::capi::GregorianZonedDateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result;
-    icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result {union {icu4x::capi::GregorianZonedDateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result;
-    icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result {union { icu4x::capi::DateTimeFormatError err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result;
-    icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1_result icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1(const icu4x::capi::GregorianZonedDateTimeFormatter* self, const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time, const icu4x::capi::TimeZoneInfo* zone, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(GregorianZonedDateTimeFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::GregorianZonedDateTimeFormatter::create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>>(std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>(icu4x::GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::GregorianZonedDateTimeFormatter::create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>>(std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>(icu4x::GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeFormatError> icu4x::GregorianZonedDateTimeFormatter::format_iso(const icu4x::IsoDate& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    zone.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Err<icu4x::DateTimeFormatError>(icu4x::DateTimeFormatError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::GregorianZonedDateTimeFormatter*>(this);
-}
-
-inline icu4x::capi::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::GregorianZonedDateTimeFormatter*>(this);
-}
-
-inline const icu4x::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::FromFFI(const icu4x::capi::GregorianZonedDateTimeFormatter* ptr) {
-  return reinterpret_cast<const icu4x::GregorianZonedDateTimeFormatter*>(ptr);
-}
-
-inline icu4x::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::FromFFI(icu4x::capi::GregorianZonedDateTimeFormatter* ptr) {
-  return reinterpret_cast<icu4x::GregorianZonedDateTimeFormatter*>(ptr);
-}
-
-inline void icu4x::GregorianZonedDateTimeFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::GregorianZonedDateTimeFormatter*>(ptr));
-}
-
-
-#endif // icu4x_GregorianZonedDateTimeFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.d.hpp
deleted file mode 100644
index 8460ac7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.d.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef icu4x_HangulSyllableType_D_HPP
-#define icu4x_HangulSyllableType_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class HangulSyllableType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum HangulSyllableType {
-      HangulSyllableType_NotApplicable = 0,
-      HangulSyllableType_LeadingJamo = 1,
-      HangulSyllableType_VowelJamo = 2,
-      HangulSyllableType_TrailingJamo = 3,
-      HangulSyllableType_LeadingVowelSyllable = 4,
-      HangulSyllableType_LeadingVowelTrailingSyllable = 5,
-    };
-    
-    typedef struct HangulSyllableType_option {union { HangulSyllableType ok; }; bool is_ok; } HangulSyllableType_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class HangulSyllableType {
-public:
-  enum Value {
-    NotApplicable = 0,
-    LeadingJamo = 1,
-    VowelJamo = 2,
-    TrailingJamo = 3,
-    LeadingVowelSyllable = 4,
-    LeadingVowelTrailingSyllable = 5,
-  };
-
-  HangulSyllableType() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr HangulSyllableType(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::HangulSyllableType for_char(char32_t ch);
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::HangulSyllableType> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::HangulSyllableType AsFFI() const;
-  inline static icu4x::HangulSyllableType FromFFI(icu4x::capi::HangulSyllableType c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_HangulSyllableType_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.hpp
deleted file mode 100644
index 69976de2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/HangulSyllableType.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef icu4x_HangulSyllableType_HPP
-#define icu4x_HangulSyllableType_HPP
-
-#include "HangulSyllableType.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::HangulSyllableType icu4x_HangulSyllableType_for_char_mv1(char32_t ch);
-    
-    uint8_t icu4x_HangulSyllableType_to_integer_value_mv1(icu4x::capi::HangulSyllableType self);
-    
-    typedef struct icu4x_HangulSyllableType_from_integer_value_mv1_result {union {icu4x::capi::HangulSyllableType ok; }; bool is_ok;} icu4x_HangulSyllableType_from_integer_value_mv1_result;
-    icu4x_HangulSyllableType_from_integer_value_mv1_result icu4x_HangulSyllableType_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::HangulSyllableType icu4x::HangulSyllableType::AsFFI() const {
-  return static_cast<icu4x::capi::HangulSyllableType>(value);
-}
-
-inline icu4x::HangulSyllableType icu4x::HangulSyllableType::FromFFI(icu4x::capi::HangulSyllableType c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::HangulSyllableType_NotApplicable:
-    case icu4x::capi::HangulSyllableType_LeadingJamo:
-    case icu4x::capi::HangulSyllableType_VowelJamo:
-    case icu4x::capi::HangulSyllableType_TrailingJamo:
-    case icu4x::capi::HangulSyllableType_LeadingVowelSyllable:
-    case icu4x::capi::HangulSyllableType_LeadingVowelTrailingSyllable:
-      return static_cast<icu4x::HangulSyllableType::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::HangulSyllableType icu4x::HangulSyllableType::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_HangulSyllableType_for_char_mv1(ch);
-  return icu4x::HangulSyllableType::FromFFI(result);
-}
-
-inline uint8_t icu4x::HangulSyllableType::to_integer_value() {
-  auto result = icu4x::capi::icu4x_HangulSyllableType_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::HangulSyllableType> icu4x::HangulSyllableType::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_HangulSyllableType_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::HangulSyllableType>(icu4x::HangulSyllableType::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_HangulSyllableType_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.d.hpp
deleted file mode 100644
index 34eb06f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.d.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef icu4x_IanaParser_D_HPP
-#define icu4x_IanaParser_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct IanaParser; }
-class IanaParser;
-namespace capi { struct TimeZone; }
-class TimeZone;
-namespace capi { struct TimeZoneIterator; }
-class TimeZoneIterator;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct IanaParser;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class IanaParser {
-public:
-
-  inline static std::unique_ptr<icu4x::IanaParser> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::IanaParser>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::unique_ptr<icu4x::TimeZone> parse(std::string_view value) const;
-
-  inline std::unique_ptr<icu4x::TimeZoneIterator> iter() const;
-
-  inline const icu4x::capi::IanaParser* AsFFI() const;
-  inline icu4x::capi::IanaParser* AsFFI();
-  inline static const icu4x::IanaParser* FromFFI(const icu4x::capi::IanaParser* ptr);
-  inline static icu4x::IanaParser* FromFFI(icu4x::capi::IanaParser* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  IanaParser() = delete;
-  IanaParser(const icu4x::IanaParser&) = delete;
-  IanaParser(icu4x::IanaParser&&) noexcept = delete;
-  IanaParser operator=(const icu4x::IanaParser&) = delete;
-  IanaParser operator=(icu4x::IanaParser&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_IanaParser_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.hpp
deleted file mode 100644
index c872fa7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParser.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef icu4x_IanaParser_HPP
-#define icu4x_IanaParser_HPP
-
-#include "IanaParser.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "TimeZone.hpp"
-#include "TimeZoneIterator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::IanaParser* icu4x_IanaParser_create_mv1(void);
-    
-    typedef struct icu4x_IanaParser_create_with_provider_mv1_result {union {icu4x::capi::IanaParser* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_IanaParser_create_with_provider_mv1_result;
-    icu4x_IanaParser_create_with_provider_mv1_result icu4x_IanaParser_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::TimeZone* icu4x_IanaParser_parse_mv1(const icu4x::capi::IanaParser* self, diplomat::capi::DiplomatStringView value);
-    
-    icu4x::capi::TimeZoneIterator* icu4x_IanaParser_iter_mv1(const icu4x::capi::IanaParser* self);
-    
-    
-    void icu4x_IanaParser_destroy_mv1(IanaParser* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::IanaParser> icu4x::IanaParser::create() {
-  auto result = icu4x::capi::icu4x_IanaParser_create_mv1();
-  return std::unique_ptr<icu4x::IanaParser>(icu4x::IanaParser::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::IanaParser>, icu4x::DataError> icu4x::IanaParser::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_IanaParser_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IanaParser>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::IanaParser>>(std::unique_ptr<icu4x::IanaParser>(icu4x::IanaParser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IanaParser>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::IanaParser::parse(std::string_view value) const {
-  auto result = icu4x::capi::icu4x_IanaParser_parse_mv1(this->AsFFI(),
-    {value.data(), value.size()});
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneIterator> icu4x::IanaParser::iter() const {
-  auto result = icu4x::capi::icu4x_IanaParser_iter_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneIterator>(icu4x::TimeZoneIterator::FromFFI(result));
-}
-
-inline const icu4x::capi::IanaParser* icu4x::IanaParser::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::IanaParser*>(this);
-}
-
-inline icu4x::capi::IanaParser* icu4x::IanaParser::AsFFI() {
-  return reinterpret_cast<icu4x::capi::IanaParser*>(this);
-}
-
-inline const icu4x::IanaParser* icu4x::IanaParser::FromFFI(const icu4x::capi::IanaParser* ptr) {
-  return reinterpret_cast<const icu4x::IanaParser*>(ptr);
-}
-
-inline icu4x::IanaParser* icu4x::IanaParser::FromFFI(icu4x::capi::IanaParser* ptr) {
-  return reinterpret_cast<icu4x::IanaParser*>(ptr);
-}
-
-inline void icu4x::IanaParser::operator delete(void* ptr) {
-  icu4x::capi::icu4x_IanaParser_destroy_mv1(reinterpret_cast<icu4x::capi::IanaParser*>(ptr));
-}
-
-
-#endif // icu4x_IanaParser_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.d.hpp
deleted file mode 100644
index 803d13d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.d.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef icu4x_IanaParserExtended_D_HPP
-#define icu4x_IanaParserExtended_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct IanaParserExtended; }
-class IanaParserExtended;
-namespace capi { struct TimeZoneAndCanonicalAndNormalizedIterator; }
-class TimeZoneAndCanonicalAndNormalizedIterator;
-namespace capi { struct TimeZoneAndCanonicalIterator; }
-class TimeZoneAndCanonicalIterator;
-struct TimeZoneAndCanonicalAndNormalized;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct IanaParserExtended;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class IanaParserExtended {
-public:
-
-  inline static std::unique_ptr<icu4x::IanaParserExtended> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::IanaParserExtended>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline icu4x::TimeZoneAndCanonicalAndNormalized parse(std::string_view value) const;
-
-  inline std::unique_ptr<icu4x::TimeZoneAndCanonicalIterator> iter() const;
-
-  inline std::unique_ptr<icu4x::TimeZoneAndCanonicalAndNormalizedIterator> iter_all() const;
-
-  inline const icu4x::capi::IanaParserExtended* AsFFI() const;
-  inline icu4x::capi::IanaParserExtended* AsFFI();
-  inline static const icu4x::IanaParserExtended* FromFFI(const icu4x::capi::IanaParserExtended* ptr);
-  inline static icu4x::IanaParserExtended* FromFFI(icu4x::capi::IanaParserExtended* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  IanaParserExtended() = delete;
-  IanaParserExtended(const icu4x::IanaParserExtended&) = delete;
-  IanaParserExtended(icu4x::IanaParserExtended&&) noexcept = delete;
-  IanaParserExtended operator=(const icu4x::IanaParserExtended&) = delete;
-  IanaParserExtended operator=(icu4x::IanaParserExtended&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_IanaParserExtended_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.hpp
deleted file mode 100644
index 40dc66a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IanaParserExtended.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef icu4x_IanaParserExtended_HPP
-#define icu4x_IanaParserExtended_HPP
-
-#include "IanaParserExtended.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "TimeZoneAndCanonicalAndNormalized.hpp"
-#include "TimeZoneAndCanonicalAndNormalizedIterator.hpp"
-#include "TimeZoneAndCanonicalIterator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::IanaParserExtended* icu4x_IanaParserExtended_create_mv1(void);
-    
-    typedef struct icu4x_IanaParserExtended_create_with_provider_mv1_result {union {icu4x::capi::IanaParserExtended* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_IanaParserExtended_create_with_provider_mv1_result;
-    icu4x_IanaParserExtended_create_with_provider_mv1_result icu4x_IanaParserExtended_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::TimeZoneAndCanonicalAndNormalized icu4x_IanaParserExtended_parse_mv1(const icu4x::capi::IanaParserExtended* self, diplomat::capi::DiplomatStringView value);
-    
-    icu4x::capi::TimeZoneAndCanonicalIterator* icu4x_IanaParserExtended_iter_mv1(const icu4x::capi::IanaParserExtended* self);
-    
-    icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* icu4x_IanaParserExtended_iter_all_mv1(const icu4x::capi::IanaParserExtended* self);
-    
-    
-    void icu4x_IanaParserExtended_destroy_mv1(IanaParserExtended* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::IanaParserExtended> icu4x::IanaParserExtended::create() {
-  auto result = icu4x::capi::icu4x_IanaParserExtended_create_mv1();
-  return std::unique_ptr<icu4x::IanaParserExtended>(icu4x::IanaParserExtended::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::IanaParserExtended>, icu4x::DataError> icu4x::IanaParserExtended::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_IanaParserExtended_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IanaParserExtended>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::IanaParserExtended>>(std::unique_ptr<icu4x::IanaParserExtended>(icu4x::IanaParserExtended::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IanaParserExtended>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::TimeZoneAndCanonicalAndNormalized icu4x::IanaParserExtended::parse(std::string_view value) const {
-  auto result = icu4x::capi::icu4x_IanaParserExtended_parse_mv1(this->AsFFI(),
-    {value.data(), value.size()});
-  return icu4x::TimeZoneAndCanonicalAndNormalized::FromFFI(result);
-}
-
-inline std::unique_ptr<icu4x::TimeZoneAndCanonicalIterator> icu4x::IanaParserExtended::iter() const {
-  auto result = icu4x::capi::icu4x_IanaParserExtended_iter_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneAndCanonicalIterator>(icu4x::TimeZoneAndCanonicalIterator::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneAndCanonicalAndNormalizedIterator> icu4x::IanaParserExtended::iter_all() const {
-  auto result = icu4x::capi::icu4x_IanaParserExtended_iter_all_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneAndCanonicalAndNormalizedIterator>(icu4x::TimeZoneAndCanonicalAndNormalizedIterator::FromFFI(result));
-}
-
-inline const icu4x::capi::IanaParserExtended* icu4x::IanaParserExtended::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::IanaParserExtended*>(this);
-}
-
-inline icu4x::capi::IanaParserExtended* icu4x::IanaParserExtended::AsFFI() {
-  return reinterpret_cast<icu4x::capi::IanaParserExtended*>(this);
-}
-
-inline const icu4x::IanaParserExtended* icu4x::IanaParserExtended::FromFFI(const icu4x::capi::IanaParserExtended* ptr) {
-  return reinterpret_cast<const icu4x::IanaParserExtended*>(ptr);
-}
-
-inline icu4x::IanaParserExtended* icu4x::IanaParserExtended::FromFFI(icu4x::capi::IanaParserExtended* ptr) {
-  return reinterpret_cast<icu4x::IanaParserExtended*>(ptr);
-}
-
-inline void icu4x::IanaParserExtended::operator delete(void* ptr) {
-  icu4x::capi::icu4x_IanaParserExtended_destroy_mv1(reinterpret_cast<icu4x::capi::IanaParserExtended*>(ptr));
-}
-
-
-#endif // icu4x_IanaParserExtended_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.d.hpp
deleted file mode 100644
index 5c4fec2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.d.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef icu4x_IndicSyllabicCategory_D_HPP
-#define icu4x_IndicSyllabicCategory_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class IndicSyllabicCategory;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum IndicSyllabicCategory {
-      IndicSyllabicCategory_Other = 0,
-      IndicSyllabicCategory_Avagraha = 1,
-      IndicSyllabicCategory_Bindu = 2,
-      IndicSyllabicCategory_BrahmiJoiningNumber = 3,
-      IndicSyllabicCategory_CantillationMark = 4,
-      IndicSyllabicCategory_Consonant = 5,
-      IndicSyllabicCategory_ConsonantDead = 6,
-      IndicSyllabicCategory_ConsonantFinal = 7,
-      IndicSyllabicCategory_ConsonantHeadLetter = 8,
-      IndicSyllabicCategory_ConsonantInitialPostfixed = 9,
-      IndicSyllabicCategory_ConsonantKiller = 10,
-      IndicSyllabicCategory_ConsonantMedial = 11,
-      IndicSyllabicCategory_ConsonantPlaceholder = 12,
-      IndicSyllabicCategory_ConsonantPrecedingRepha = 13,
-      IndicSyllabicCategory_ConsonantPrefixed = 14,
-      IndicSyllabicCategory_ConsonantSucceedingRepha = 15,
-      IndicSyllabicCategory_ConsonantSubjoined = 16,
-      IndicSyllabicCategory_ConsonantWithStacker = 17,
-      IndicSyllabicCategory_GeminationMark = 18,
-      IndicSyllabicCategory_InvisibleStacker = 19,
-      IndicSyllabicCategory_Joiner = 20,
-      IndicSyllabicCategory_ModifyingLetter = 21,
-      IndicSyllabicCategory_NonJoiner = 22,
-      IndicSyllabicCategory_Nukta = 23,
-      IndicSyllabicCategory_Number = 24,
-      IndicSyllabicCategory_NumberJoiner = 25,
-      IndicSyllabicCategory_PureKiller = 26,
-      IndicSyllabicCategory_RegisterShifter = 27,
-      IndicSyllabicCategory_SyllableModifier = 28,
-      IndicSyllabicCategory_ToneLetter = 29,
-      IndicSyllabicCategory_ToneMark = 30,
-      IndicSyllabicCategory_Virama = 31,
-      IndicSyllabicCategory_Visarga = 32,
-      IndicSyllabicCategory_Vowel = 33,
-      IndicSyllabicCategory_VowelDependent = 34,
-      IndicSyllabicCategory_VowelIndependent = 35,
-      IndicSyllabicCategory_ReorderingKiller = 36,
-    };
-    
-    typedef struct IndicSyllabicCategory_option {union { IndicSyllabicCategory ok; }; bool is_ok; } IndicSyllabicCategory_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class IndicSyllabicCategory {
-public:
-  enum Value {
-    Other = 0,
-    Avagraha = 1,
-    Bindu = 2,
-    BrahmiJoiningNumber = 3,
-    CantillationMark = 4,
-    Consonant = 5,
-    ConsonantDead = 6,
-    ConsonantFinal = 7,
-    ConsonantHeadLetter = 8,
-    ConsonantInitialPostfixed = 9,
-    ConsonantKiller = 10,
-    ConsonantMedial = 11,
-    ConsonantPlaceholder = 12,
-    ConsonantPrecedingRepha = 13,
-    ConsonantPrefixed = 14,
-    ConsonantSucceedingRepha = 15,
-    ConsonantSubjoined = 16,
-    ConsonantWithStacker = 17,
-    GeminationMark = 18,
-    InvisibleStacker = 19,
-    Joiner = 20,
-    ModifyingLetter = 21,
-    NonJoiner = 22,
-    Nukta = 23,
-    Number = 24,
-    NumberJoiner = 25,
-    PureKiller = 26,
-    RegisterShifter = 27,
-    SyllableModifier = 28,
-    ToneLetter = 29,
-    ToneMark = 30,
-    Virama = 31,
-    Visarga = 32,
-    Vowel = 33,
-    VowelDependent = 34,
-    VowelIndependent = 35,
-    ReorderingKiller = 36,
-  };
-
-  IndicSyllabicCategory() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr IndicSyllabicCategory(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::IndicSyllabicCategory for_char(char32_t ch);
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::IndicSyllabicCategory> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::IndicSyllabicCategory AsFFI() const;
-  inline static icu4x::IndicSyllabicCategory FromFFI(icu4x::capi::IndicSyllabicCategory c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_IndicSyllabicCategory_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.hpp
deleted file mode 100644
index ccdd9fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IndicSyllabicCategory.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef icu4x_IndicSyllabicCategory_HPP
-#define icu4x_IndicSyllabicCategory_HPP
-
-#include "IndicSyllabicCategory.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::IndicSyllabicCategory icu4x_IndicSyllabicCategory_for_char_mv1(char32_t ch);
-    
-    uint8_t icu4x_IndicSyllabicCategory_to_integer_value_mv1(icu4x::capi::IndicSyllabicCategory self);
-    
-    typedef struct icu4x_IndicSyllabicCategory_from_integer_value_mv1_result {union {icu4x::capi::IndicSyllabicCategory ok; }; bool is_ok;} icu4x_IndicSyllabicCategory_from_integer_value_mv1_result;
-    icu4x_IndicSyllabicCategory_from_integer_value_mv1_result icu4x_IndicSyllabicCategory_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::IndicSyllabicCategory icu4x::IndicSyllabicCategory::AsFFI() const {
-  return static_cast<icu4x::capi::IndicSyllabicCategory>(value);
-}
-
-inline icu4x::IndicSyllabicCategory icu4x::IndicSyllabicCategory::FromFFI(icu4x::capi::IndicSyllabicCategory c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::IndicSyllabicCategory_Other:
-    case icu4x::capi::IndicSyllabicCategory_Avagraha:
-    case icu4x::capi::IndicSyllabicCategory_Bindu:
-    case icu4x::capi::IndicSyllabicCategory_BrahmiJoiningNumber:
-    case icu4x::capi::IndicSyllabicCategory_CantillationMark:
-    case icu4x::capi::IndicSyllabicCategory_Consonant:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantDead:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantFinal:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantHeadLetter:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantInitialPostfixed:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantKiller:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantMedial:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantPlaceholder:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantPrecedingRepha:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantPrefixed:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantSucceedingRepha:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantSubjoined:
-    case icu4x::capi::IndicSyllabicCategory_ConsonantWithStacker:
-    case icu4x::capi::IndicSyllabicCategory_GeminationMark:
-    case icu4x::capi::IndicSyllabicCategory_InvisibleStacker:
-    case icu4x::capi::IndicSyllabicCategory_Joiner:
-    case icu4x::capi::IndicSyllabicCategory_ModifyingLetter:
-    case icu4x::capi::IndicSyllabicCategory_NonJoiner:
-    case icu4x::capi::IndicSyllabicCategory_Nukta:
-    case icu4x::capi::IndicSyllabicCategory_Number:
-    case icu4x::capi::IndicSyllabicCategory_NumberJoiner:
-    case icu4x::capi::IndicSyllabicCategory_PureKiller:
-    case icu4x::capi::IndicSyllabicCategory_RegisterShifter:
-    case icu4x::capi::IndicSyllabicCategory_SyllableModifier:
-    case icu4x::capi::IndicSyllabicCategory_ToneLetter:
-    case icu4x::capi::IndicSyllabicCategory_ToneMark:
-    case icu4x::capi::IndicSyllabicCategory_Virama:
-    case icu4x::capi::IndicSyllabicCategory_Visarga:
-    case icu4x::capi::IndicSyllabicCategory_Vowel:
-    case icu4x::capi::IndicSyllabicCategory_VowelDependent:
-    case icu4x::capi::IndicSyllabicCategory_VowelIndependent:
-    case icu4x::capi::IndicSyllabicCategory_ReorderingKiller:
-      return static_cast<icu4x::IndicSyllabicCategory::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::IndicSyllabicCategory icu4x::IndicSyllabicCategory::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_IndicSyllabicCategory_for_char_mv1(ch);
-  return icu4x::IndicSyllabicCategory::FromFFI(result);
-}
-
-inline uint8_t icu4x::IndicSyllabicCategory::to_integer_value() {
-  auto result = icu4x::capi::icu4x_IndicSyllabicCategory_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::IndicSyllabicCategory> icu4x::IndicSyllabicCategory::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_IndicSyllabicCategory_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::IndicSyllabicCategory>(icu4x::IndicSyllabicCategory::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_IndicSyllabicCategory_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.d.hpp
deleted file mode 100644
index dad28856..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.d.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef icu4x_IsoDate_D_HPP
-#define icu4x_IsoDate_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct WeekCalculator; }
-class WeekCalculator;
-struct WeekOf;
-class CalendarError;
-class CalendarParseError;
-class Weekday;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct IsoDate;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class IsoDate {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError> create(int32_t year, uint8_t month, uint8_t day);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError> from_string(std::string_view v);
-
-  inline std::unique_ptr<icu4x::Date> to_calendar(const icu4x::Calendar& calendar) const;
-
-  inline std::unique_ptr<icu4x::Date> to_any() const;
-
-  inline uint16_t day_of_year() const;
-
-  inline uint8_t day_of_month() const;
-
-  inline icu4x::Weekday day_of_week() const;
-
-  inline uint8_t week_of_month(icu4x::Weekday first_weekday) const;
-
-  inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const;
-
-  inline uint8_t month() const;
-
-  inline int32_t year() const;
-
-  inline bool is_in_leap_year() const;
-
-  inline uint8_t months_in_year() const;
-
-  inline uint8_t days_in_month() const;
-
-  inline uint16_t days_in_year() const;
-
-  inline const icu4x::capi::IsoDate* AsFFI() const;
-  inline icu4x::capi::IsoDate* AsFFI();
-  inline static const icu4x::IsoDate* FromFFI(const icu4x::capi::IsoDate* ptr);
-  inline static icu4x::IsoDate* FromFFI(icu4x::capi::IsoDate* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  IsoDate() = delete;
-  IsoDate(const icu4x::IsoDate&) = delete;
-  IsoDate(icu4x::IsoDate&&) noexcept = delete;
-  IsoDate operator=(const icu4x::IsoDate&) = delete;
-  IsoDate operator=(icu4x::IsoDate&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_IsoDate_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.hpp
deleted file mode 100644
index 22e3726..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDate.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-#ifndef icu4x_IsoDate_HPP
-#define icu4x_IsoDate_HPP
-
-#include "IsoDate.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Calendar.hpp"
-#include "CalendarError.hpp"
-#include "CalendarParseError.hpp"
-#include "Date.hpp"
-#include "WeekCalculator.hpp"
-#include "WeekOf.hpp"
-#include "Weekday.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_IsoDate_create_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result;
-    icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day);
-    
-    typedef struct icu4x_IsoDate_from_string_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDate_from_string_mv1_result;
-    icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(diplomat::capi::DiplomatStringView v);
-    
-    icu4x::capi::Date* icu4x_IsoDate_to_calendar_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::Calendar* calendar);
-    
-    icu4x::capi::Date* icu4x_IsoDate_to_any_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint16_t icu4x_IsoDate_day_of_year_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint8_t icu4x_IsoDate_day_of_month_mv1(const icu4x::capi::IsoDate* self);
-    
-    icu4x::capi::Weekday icu4x_IsoDate_day_of_week_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint8_t icu4x_IsoDate_week_of_month_mv1(const icu4x::capi::IsoDate* self, icu4x::capi::Weekday first_weekday);
-    
-    icu4x::capi::WeekOf icu4x_IsoDate_week_of_year_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::WeekCalculator* calculator);
-    
-    uint8_t icu4x_IsoDate_month_mv1(const icu4x::capi::IsoDate* self);
-    
-    int32_t icu4x_IsoDate_year_mv1(const icu4x::capi::IsoDate* self);
-    
-    bool icu4x_IsoDate_is_in_leap_year_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint8_t icu4x_IsoDate_months_in_year_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint8_t icu4x_IsoDate_days_in_month_mv1(const icu4x::capi::IsoDate* self);
-    
-    uint16_t icu4x_IsoDate_days_in_year_mv1(const icu4x::capi::IsoDate* self);
-    
-    
-    void icu4x_IsoDate_destroy_mv1(IsoDate* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError> icu4x::IsoDate::create(int32_t year, uint8_t month, uint8_t day) {
-  auto result = icu4x::capi::icu4x_IsoDate_create_mv1(year,
-    month,
-    day);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError> icu4x::IsoDate::from_string(std::string_view v) {
-  auto result = icu4x::capi::icu4x_IsoDate_from_string_mv1({v.data(), v.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_calendar(const icu4x::Calendar& calendar) const {
-  auto result = icu4x::capi::icu4x_IsoDate_to_calendar_mv1(this->AsFFI(),
-    calendar.AsFFI());
-  return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_any() const {
-  auto result = icu4x::capi::icu4x_IsoDate_to_any_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
-}
-
-inline uint16_t icu4x::IsoDate::day_of_year() const {
-  auto result = icu4x::capi::icu4x_IsoDate_day_of_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::IsoDate::day_of_month() const {
-  auto result = icu4x::capi::icu4x_IsoDate_day_of_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::Weekday icu4x::IsoDate::day_of_week() const {
-  auto result = icu4x::capi::icu4x_IsoDate_day_of_week_mv1(this->AsFFI());
-  return icu4x::Weekday::FromFFI(result);
-}
-
-inline uint8_t icu4x::IsoDate::week_of_month(icu4x::Weekday first_weekday) const {
-  auto result = icu4x::capi::icu4x_IsoDate_week_of_month_mv1(this->AsFFI(),
-    first_weekday.AsFFI());
-  return result;
-}
-
-inline icu4x::WeekOf icu4x::IsoDate::week_of_year(const icu4x::WeekCalculator& calculator) const {
-  auto result = icu4x::capi::icu4x_IsoDate_week_of_year_mv1(this->AsFFI(),
-    calculator.AsFFI());
-  return icu4x::WeekOf::FromFFI(result);
-}
-
-inline uint8_t icu4x::IsoDate::month() const {
-  auto result = icu4x::capi::icu4x_IsoDate_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline int32_t icu4x::IsoDate::year() const {
-  auto result = icu4x::capi::icu4x_IsoDate_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::IsoDate::is_in_leap_year() const {
-  auto result = icu4x::capi::icu4x_IsoDate_is_in_leap_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::IsoDate::months_in_year() const {
-  auto result = icu4x::capi::icu4x_IsoDate_months_in_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::IsoDate::days_in_month() const {
-  auto result = icu4x::capi::icu4x_IsoDate_days_in_month_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint16_t icu4x::IsoDate::days_in_year() const {
-  auto result = icu4x::capi::icu4x_IsoDate_days_in_year_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::IsoDate*>(this);
-}
-
-inline icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() {
-  return reinterpret_cast<icu4x::capi::IsoDate*>(this);
-}
-
-inline const icu4x::IsoDate* icu4x::IsoDate::FromFFI(const icu4x::capi::IsoDate* ptr) {
-  return reinterpret_cast<const icu4x::IsoDate*>(ptr);
-}
-
-inline icu4x::IsoDate* icu4x::IsoDate::FromFFI(icu4x::capi::IsoDate* ptr) {
-  return reinterpret_cast<icu4x::IsoDate*>(ptr);
-}
-
-inline void icu4x::IsoDate::operator delete(void* ptr) {
-  icu4x::capi::icu4x_IsoDate_destroy_mv1(reinterpret_cast<icu4x::capi::IsoDate*>(ptr));
-}
-
-
-#endif // icu4x_IsoDate_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.d.hpp
deleted file mode 100644
index 823fd10..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_IsoDateTime_D_HPP
-#define icu4x_IsoDateTime_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Time; }
-class Time;
-struct IsoDateTime;
-class CalendarParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct IsoDateTime {
-      icu4x::capi::IsoDate* date;
-      icu4x::capi::Time* time;
-    };
-    
-    typedef struct IsoDateTime_option {union { IsoDateTime ok; }; bool is_ok; } IsoDateTime_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct IsoDateTime {
-  std::unique_ptr<icu4x::IsoDate> date;
-  std::unique_ptr<icu4x::Time> time;
-
-  inline static diplomat::result<icu4x::IsoDateTime, icu4x::CalendarParseError> from_string(std::string_view v);
-
-  inline icu4x::capi::IsoDateTime AsFFI() const;
-  inline static icu4x::IsoDateTime FromFFI(icu4x::capi::IsoDateTime c_struct);
-};
-
-} // namespace
-#endif // icu4x_IsoDateTime_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.hpp
deleted file mode 100644
index 8b154bc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/IsoDateTime.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef icu4x_IsoDateTime_HPP
-#define icu4x_IsoDateTime_HPP
-
-#include "IsoDateTime.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CalendarParseError.hpp"
-#include "IsoDate.hpp"
-#include "Time.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_IsoDateTime_from_string_mv1_result {union {icu4x::capi::IsoDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDateTime_from_string_mv1_result;
-    icu4x_IsoDateTime_from_string_mv1_result icu4x_IsoDateTime_from_string_mv1(diplomat::capi::DiplomatStringView v);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<icu4x::IsoDateTime, icu4x::CalendarParseError> icu4x::IsoDateTime::from_string(std::string_view v) {
-  auto result = icu4x::capi::icu4x_IsoDateTime_from_string_mv1({v.data(), v.size()});
-  return result.is_ok ? diplomat::result<icu4x::IsoDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::IsoDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-
-inline icu4x::capi::IsoDateTime icu4x::IsoDateTime::AsFFI() const {
-  return icu4x::capi::IsoDateTime {
-    /* .date = */ date->AsFFI(),
-    /* .time = */ time->AsFFI(),
-  };
-}
-
-inline icu4x::IsoDateTime icu4x::IsoDateTime::FromFFI(icu4x::capi::IsoDateTime c_struct) {
-  return icu4x::IsoDateTime {
-    /* .date = */ std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(c_struct.date)),
-    /* .time = */ std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(c_struct.time)),
-  };
-}
-
-
-#endif // icu4x_IsoDateTime_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.d.hpp
deleted file mode 100644
index 79657a2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.d.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef icu4x_JoiningType_D_HPP
-#define icu4x_JoiningType_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class JoiningType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum JoiningType {
-      JoiningType_NonJoining = 0,
-      JoiningType_JoinCausing = 1,
-      JoiningType_DualJoining = 2,
-      JoiningType_LeftJoining = 3,
-      JoiningType_RightJoining = 4,
-      JoiningType_Transparent = 5,
-    };
-    
-    typedef struct JoiningType_option {union { JoiningType ok; }; bool is_ok; } JoiningType_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class JoiningType {
-public:
-  enum Value {
-    NonJoining = 0,
-    JoinCausing = 1,
-    DualJoining = 2,
-    LeftJoining = 3,
-    RightJoining = 4,
-    Transparent = 5,
-  };
-
-  JoiningType() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr JoiningType(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::JoiningType for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::JoiningType> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::JoiningType AsFFI() const;
-  inline static icu4x::JoiningType FromFFI(icu4x::capi::JoiningType c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_JoiningType_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.hpp
deleted file mode 100644
index db943e89..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/JoiningType.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef icu4x_JoiningType_HPP
-#define icu4x_JoiningType_HPP
-
-#include "JoiningType.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::JoiningType icu4x_JoiningType_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_JoiningType_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_JoiningType_long_name_mv1_result;
-    icu4x_JoiningType_long_name_mv1_result icu4x_JoiningType_long_name_mv1(icu4x::capi::JoiningType self);
-    
-    typedef struct icu4x_JoiningType_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_JoiningType_short_name_mv1_result;
-    icu4x_JoiningType_short_name_mv1_result icu4x_JoiningType_short_name_mv1(icu4x::capi::JoiningType self);
-    
-    uint8_t icu4x_JoiningType_to_integer_value_mv1(icu4x::capi::JoiningType self);
-    
-    typedef struct icu4x_JoiningType_from_integer_value_mv1_result {union {icu4x::capi::JoiningType ok; }; bool is_ok;} icu4x_JoiningType_from_integer_value_mv1_result;
-    icu4x_JoiningType_from_integer_value_mv1_result icu4x_JoiningType_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::JoiningType icu4x::JoiningType::AsFFI() const {
-  return static_cast<icu4x::capi::JoiningType>(value);
-}
-
-inline icu4x::JoiningType icu4x::JoiningType::FromFFI(icu4x::capi::JoiningType c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::JoiningType_NonJoining:
-    case icu4x::capi::JoiningType_JoinCausing:
-    case icu4x::capi::JoiningType_DualJoining:
-    case icu4x::capi::JoiningType_LeftJoining:
-    case icu4x::capi::JoiningType_RightJoining:
-    case icu4x::capi::JoiningType_Transparent:
-      return static_cast<icu4x::JoiningType::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::JoiningType icu4x::JoiningType::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_JoiningType_for_char_mv1(ch);
-  return icu4x::JoiningType::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::JoiningType::long_name() {
-  auto result = icu4x::capi::icu4x_JoiningType_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::JoiningType::short_name() {
-  auto result = icu4x::capi::icu4x_JoiningType_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::JoiningType::to_integer_value() {
-  auto result = icu4x::capi::icu4x_JoiningType_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::JoiningType> icu4x::JoiningType::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_JoiningType_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::JoiningType>(icu4x::JoiningType::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_JoiningType_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.d.hpp
deleted file mode 100644
index a6d06b3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_LanguageDisplay_D_HPP
-#define icu4x_LanguageDisplay_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LanguageDisplay {
-      LanguageDisplay_Dialect = 0,
-      LanguageDisplay_Standard = 1,
-    };
-    
-    typedef struct LanguageDisplay_option {union { LanguageDisplay ok; }; bool is_ok; } LanguageDisplay_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LanguageDisplay {
-public:
-  enum Value {
-    Dialect = 0,
-    Standard = 1,
-  };
-
-  LanguageDisplay() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LanguageDisplay(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LanguageDisplay AsFFI() const;
-  inline static icu4x::LanguageDisplay FromFFI(icu4x::capi::LanguageDisplay c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LanguageDisplay_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.hpp
deleted file mode 100644
index fd2554de..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LanguageDisplay.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_LanguageDisplay_HPP
-#define icu4x_LanguageDisplay_HPP
-
-#include "LanguageDisplay.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LanguageDisplay icu4x::LanguageDisplay::AsFFI() const {
-  return static_cast<icu4x::capi::LanguageDisplay>(value);
-}
-
-inline icu4x::LanguageDisplay icu4x::LanguageDisplay::FromFFI(icu4x::capi::LanguageDisplay c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LanguageDisplay_Dialect:
-    case icu4x::capi::LanguageDisplay_Standard:
-      return static_cast<icu4x::LanguageDisplay::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LanguageDisplay_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.d.hpp
deleted file mode 100644
index 346230bc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_LeadingAdjustment_D_HPP
-#define icu4x_LeadingAdjustment_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LeadingAdjustment {
-      LeadingAdjustment_Auto = 0,
-      LeadingAdjustment_None = 1,
-      LeadingAdjustment_ToCased = 2,
-    };
-    
-    typedef struct LeadingAdjustment_option {union { LeadingAdjustment ok; }; bool is_ok; } LeadingAdjustment_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LeadingAdjustment {
-public:
-  enum Value {
-    Auto = 0,
-    None = 1,
-    ToCased = 2,
-  };
-
-  LeadingAdjustment() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LeadingAdjustment(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LeadingAdjustment AsFFI() const;
-  inline static icu4x::LeadingAdjustment FromFFI(icu4x::capi::LeadingAdjustment c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LeadingAdjustment_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.hpp
deleted file mode 100644
index 55c18747..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LeadingAdjustment.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_LeadingAdjustment_HPP
-#define icu4x_LeadingAdjustment_HPP
-
-#include "LeadingAdjustment.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LeadingAdjustment icu4x::LeadingAdjustment::AsFFI() const {
-  return static_cast<icu4x::capi::LeadingAdjustment>(value);
-}
-
-inline icu4x::LeadingAdjustment icu4x::LeadingAdjustment::FromFFI(icu4x::capi::LeadingAdjustment c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LeadingAdjustment_Auto:
-    case icu4x::capi::LeadingAdjustment_None:
-    case icu4x::capi::LeadingAdjustment_ToCased:
-      return static_cast<icu4x::LeadingAdjustment::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LeadingAdjustment_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.d.hpp
deleted file mode 100644
index d1c2c5f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.d.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef icu4x_LineBreak_D_HPP
-#define icu4x_LineBreak_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class LineBreak;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum LineBreak {
-      LineBreak_Unknown = 0,
-      LineBreak_Ambiguous = 1,
-      LineBreak_Alphabetic = 2,
-      LineBreak_BreakBoth = 3,
-      LineBreak_BreakAfter = 4,
-      LineBreak_BreakBefore = 5,
-      LineBreak_MandatoryBreak = 6,
-      LineBreak_ContingentBreak = 7,
-      LineBreak_ClosePunctuation = 8,
-      LineBreak_CombiningMark = 9,
-      LineBreak_CarriageReturn = 10,
-      LineBreak_Exclamation = 11,
-      LineBreak_Glue = 12,
-      LineBreak_Hyphen = 13,
-      LineBreak_Ideographic = 14,
-      LineBreak_Inseparable = 15,
-      LineBreak_InfixNumeric = 16,
-      LineBreak_LineFeed = 17,
-      LineBreak_Nonstarter = 18,
-      LineBreak_Numeric = 19,
-      LineBreak_OpenPunctuation = 20,
-      LineBreak_PostfixNumeric = 21,
-      LineBreak_PrefixNumeric = 22,
-      LineBreak_Quotation = 23,
-      LineBreak_ComplexContext = 24,
-      LineBreak_Surrogate = 25,
-      LineBreak_Space = 26,
-      LineBreak_BreakSymbols = 27,
-      LineBreak_ZWSpace = 28,
-      LineBreak_NextLine = 29,
-      LineBreak_WordJoiner = 30,
-      LineBreak_H2 = 31,
-      LineBreak_H3 = 32,
-      LineBreak_JL = 33,
-      LineBreak_JT = 34,
-      LineBreak_JV = 35,
-      LineBreak_CloseParenthesis = 36,
-      LineBreak_ConditionalJapaneseStarter = 37,
-      LineBreak_HebrewLetter = 38,
-      LineBreak_RegionalIndicator = 39,
-      LineBreak_EBase = 40,
-      LineBreak_EModifier = 41,
-      LineBreak_ZWJ = 42,
-      LineBreak_Aksara = 43,
-      LineBreak_AksaraPrebase = 44,
-      LineBreak_AksaraStart = 45,
-      LineBreak_ViramaFinal = 46,
-      LineBreak_Virama = 47,
-    };
-    
-    typedef struct LineBreak_option {union { LineBreak ok; }; bool is_ok; } LineBreak_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreak {
-public:
-  enum Value {
-    Unknown = 0,
-    Ambiguous = 1,
-    Alphabetic = 2,
-    BreakBoth = 3,
-    BreakAfter = 4,
-    BreakBefore = 5,
-    MandatoryBreak = 6,
-    ContingentBreak = 7,
-    ClosePunctuation = 8,
-    CombiningMark = 9,
-    CarriageReturn = 10,
-    Exclamation = 11,
-    Glue = 12,
-    Hyphen = 13,
-    Ideographic = 14,
-    Inseparable = 15,
-    InfixNumeric = 16,
-    LineFeed = 17,
-    Nonstarter = 18,
-    Numeric = 19,
-    OpenPunctuation = 20,
-    PostfixNumeric = 21,
-    PrefixNumeric = 22,
-    Quotation = 23,
-    ComplexContext = 24,
-    Surrogate = 25,
-    Space = 26,
-    BreakSymbols = 27,
-    ZWSpace = 28,
-    NextLine = 29,
-    WordJoiner = 30,
-    H2 = 31,
-    H3 = 32,
-    JL = 33,
-    JT = 34,
-    JV = 35,
-    CloseParenthesis = 36,
-    ConditionalJapaneseStarter = 37,
-    HebrewLetter = 38,
-    RegionalIndicator = 39,
-    EBase = 40,
-    EModifier = 41,
-    ZWJ = 42,
-    Aksara = 43,
-    AksaraPrebase = 44,
-    AksaraStart = 45,
-    ViramaFinal = 46,
-    Virama = 47,
-  };
-
-  LineBreak() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LineBreak(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::LineBreak for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::LineBreak> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::LineBreak AsFFI() const;
-  inline static icu4x::LineBreak FromFFI(icu4x::capi::LineBreak c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LineBreak_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.hpp
deleted file mode 100644
index 90de431..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreak.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef icu4x_LineBreak_HPP
-#define icu4x_LineBreak_HPP
-
-#include "LineBreak.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LineBreak icu4x_LineBreak_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_LineBreak_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_long_name_mv1_result;
-    icu4x_LineBreak_long_name_mv1_result icu4x_LineBreak_long_name_mv1(icu4x::capi::LineBreak self);
-    
-    typedef struct icu4x_LineBreak_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_short_name_mv1_result;
-    icu4x_LineBreak_short_name_mv1_result icu4x_LineBreak_short_name_mv1(icu4x::capi::LineBreak self);
-    
-    uint8_t icu4x_LineBreak_to_integer_value_mv1(icu4x::capi::LineBreak self);
-    
-    typedef struct icu4x_LineBreak_from_integer_value_mv1_result {union {icu4x::capi::LineBreak ok; }; bool is_ok;} icu4x_LineBreak_from_integer_value_mv1_result;
-    icu4x_LineBreak_from_integer_value_mv1_result icu4x_LineBreak_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LineBreak icu4x::LineBreak::AsFFI() const {
-  return static_cast<icu4x::capi::LineBreak>(value);
-}
-
-inline icu4x::LineBreak icu4x::LineBreak::FromFFI(icu4x::capi::LineBreak c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LineBreak_Unknown:
-    case icu4x::capi::LineBreak_Ambiguous:
-    case icu4x::capi::LineBreak_Alphabetic:
-    case icu4x::capi::LineBreak_BreakBoth:
-    case icu4x::capi::LineBreak_BreakAfter:
-    case icu4x::capi::LineBreak_BreakBefore:
-    case icu4x::capi::LineBreak_MandatoryBreak:
-    case icu4x::capi::LineBreak_ContingentBreak:
-    case icu4x::capi::LineBreak_ClosePunctuation:
-    case icu4x::capi::LineBreak_CombiningMark:
-    case icu4x::capi::LineBreak_CarriageReturn:
-    case icu4x::capi::LineBreak_Exclamation:
-    case icu4x::capi::LineBreak_Glue:
-    case icu4x::capi::LineBreak_Hyphen:
-    case icu4x::capi::LineBreak_Ideographic:
-    case icu4x::capi::LineBreak_Inseparable:
-    case icu4x::capi::LineBreak_InfixNumeric:
-    case icu4x::capi::LineBreak_LineFeed:
-    case icu4x::capi::LineBreak_Nonstarter:
-    case icu4x::capi::LineBreak_Numeric:
-    case icu4x::capi::LineBreak_OpenPunctuation:
-    case icu4x::capi::LineBreak_PostfixNumeric:
-    case icu4x::capi::LineBreak_PrefixNumeric:
-    case icu4x::capi::LineBreak_Quotation:
-    case icu4x::capi::LineBreak_ComplexContext:
-    case icu4x::capi::LineBreak_Surrogate:
-    case icu4x::capi::LineBreak_Space:
-    case icu4x::capi::LineBreak_BreakSymbols:
-    case icu4x::capi::LineBreak_ZWSpace:
-    case icu4x::capi::LineBreak_NextLine:
-    case icu4x::capi::LineBreak_WordJoiner:
-    case icu4x::capi::LineBreak_H2:
-    case icu4x::capi::LineBreak_H3:
-    case icu4x::capi::LineBreak_JL:
-    case icu4x::capi::LineBreak_JT:
-    case icu4x::capi::LineBreak_JV:
-    case icu4x::capi::LineBreak_CloseParenthesis:
-    case icu4x::capi::LineBreak_ConditionalJapaneseStarter:
-    case icu4x::capi::LineBreak_HebrewLetter:
-    case icu4x::capi::LineBreak_RegionalIndicator:
-    case icu4x::capi::LineBreak_EBase:
-    case icu4x::capi::LineBreak_EModifier:
-    case icu4x::capi::LineBreak_ZWJ:
-    case icu4x::capi::LineBreak_Aksara:
-    case icu4x::capi::LineBreak_AksaraPrebase:
-    case icu4x::capi::LineBreak_AksaraStart:
-    case icu4x::capi::LineBreak_ViramaFinal:
-    case icu4x::capi::LineBreak_Virama:
-      return static_cast<icu4x::LineBreak::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::LineBreak icu4x::LineBreak::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_LineBreak_for_char_mv1(ch);
-  return icu4x::LineBreak::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::LineBreak::long_name() {
-  auto result = icu4x::capi::icu4x_LineBreak_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::LineBreak::short_name() {
-  auto result = icu4x::capi::icu4x_LineBreak_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::LineBreak::to_integer_value() {
-  auto result = icu4x::capi::icu4x_LineBreak_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::LineBreak> icu4x::LineBreak::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_LineBreak_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::LineBreak>(icu4x::LineBreak::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_LineBreak_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp
deleted file mode 100644
index 121b188..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_LineBreakIteratorLatin1_D_HPP
-#define icu4x_LineBreakIteratorLatin1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct LineBreakIteratorLatin1;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreakIteratorLatin1 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::LineBreakIteratorLatin1* AsFFI() const;
-  inline icu4x::capi::LineBreakIteratorLatin1* AsFFI();
-  inline static const icu4x::LineBreakIteratorLatin1* FromFFI(const icu4x::capi::LineBreakIteratorLatin1* ptr);
-  inline static icu4x::LineBreakIteratorLatin1* FromFFI(icu4x::capi::LineBreakIteratorLatin1* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LineBreakIteratorLatin1() = delete;
-  LineBreakIteratorLatin1(const icu4x::LineBreakIteratorLatin1&) = delete;
-  LineBreakIteratorLatin1(icu4x::LineBreakIteratorLatin1&&) noexcept = delete;
-  LineBreakIteratorLatin1 operator=(const icu4x::LineBreakIteratorLatin1&) = delete;
-  LineBreakIteratorLatin1 operator=(icu4x::LineBreakIteratorLatin1&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LineBreakIteratorLatin1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp
deleted file mode 100644
index 543ca58..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_LineBreakIteratorLatin1_HPP
-#define icu4x_LineBreakIteratorLatin1_HPP
-
-#include "LineBreakIteratorLatin1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_LineBreakIteratorLatin1_next_mv1(icu4x::capi::LineBreakIteratorLatin1* self);
-    
-    
-    void icu4x_LineBreakIteratorLatin1_destroy_mv1(LineBreakIteratorLatin1* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::LineBreakIteratorLatin1::next() {
-  auto result = icu4x::capi::icu4x_LineBreakIteratorLatin1_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LineBreakIteratorLatin1*>(this);
-}
-
-inline icu4x::capi::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LineBreakIteratorLatin1*>(this);
-}
-
-inline const icu4x::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::FromFFI(const icu4x::capi::LineBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<const icu4x::LineBreakIteratorLatin1*>(ptr);
-}
-
-inline icu4x::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::FromFFI(icu4x::capi::LineBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<icu4x::LineBreakIteratorLatin1*>(ptr);
-}
-
-inline void icu4x::LineBreakIteratorLatin1::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LineBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorLatin1*>(ptr));
-}
-
-
-#endif // icu4x_LineBreakIteratorLatin1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp
deleted file mode 100644
index e8c8380..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_LineBreakIteratorUtf16_D_HPP
-#define icu4x_LineBreakIteratorUtf16_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct LineBreakIteratorUtf16;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreakIteratorUtf16 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::LineBreakIteratorUtf16* AsFFI() const;
-  inline icu4x::capi::LineBreakIteratorUtf16* AsFFI();
-  inline static const icu4x::LineBreakIteratorUtf16* FromFFI(const icu4x::capi::LineBreakIteratorUtf16* ptr);
-  inline static icu4x::LineBreakIteratorUtf16* FromFFI(icu4x::capi::LineBreakIteratorUtf16* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LineBreakIteratorUtf16() = delete;
-  LineBreakIteratorUtf16(const icu4x::LineBreakIteratorUtf16&) = delete;
-  LineBreakIteratorUtf16(icu4x::LineBreakIteratorUtf16&&) noexcept = delete;
-  LineBreakIteratorUtf16 operator=(const icu4x::LineBreakIteratorUtf16&) = delete;
-  LineBreakIteratorUtf16 operator=(icu4x::LineBreakIteratorUtf16&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LineBreakIteratorUtf16_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp
deleted file mode 100644
index 806c943..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_LineBreakIteratorUtf16_HPP
-#define icu4x_LineBreakIteratorUtf16_HPP
-
-#include "LineBreakIteratorUtf16.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_LineBreakIteratorUtf16_next_mv1(icu4x::capi::LineBreakIteratorUtf16* self);
-    
-    
-    void icu4x_LineBreakIteratorUtf16_destroy_mv1(LineBreakIteratorUtf16* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::LineBreakIteratorUtf16::next() {
-  auto result = icu4x::capi::icu4x_LineBreakIteratorUtf16_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LineBreakIteratorUtf16*>(this);
-}
-
-inline icu4x::capi::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LineBreakIteratorUtf16*>(this);
-}
-
-inline const icu4x::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::FromFFI(const icu4x::capi::LineBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<const icu4x::LineBreakIteratorUtf16*>(ptr);
-}
-
-inline icu4x::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::FromFFI(icu4x::capi::LineBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<icu4x::LineBreakIteratorUtf16*>(ptr);
-}
-
-inline void icu4x::LineBreakIteratorUtf16::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LineBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorUtf16*>(ptr));
-}
-
-
-#endif // icu4x_LineBreakIteratorUtf16_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp
deleted file mode 100644
index b22eedb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_LineBreakIteratorUtf8_D_HPP
-#define icu4x_LineBreakIteratorUtf8_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct LineBreakIteratorUtf8;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreakIteratorUtf8 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::LineBreakIteratorUtf8* AsFFI() const;
-  inline icu4x::capi::LineBreakIteratorUtf8* AsFFI();
-  inline static const icu4x::LineBreakIteratorUtf8* FromFFI(const icu4x::capi::LineBreakIteratorUtf8* ptr);
-  inline static icu4x::LineBreakIteratorUtf8* FromFFI(icu4x::capi::LineBreakIteratorUtf8* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LineBreakIteratorUtf8() = delete;
-  LineBreakIteratorUtf8(const icu4x::LineBreakIteratorUtf8&) = delete;
-  LineBreakIteratorUtf8(icu4x::LineBreakIteratorUtf8&&) noexcept = delete;
-  LineBreakIteratorUtf8 operator=(const icu4x::LineBreakIteratorUtf8&) = delete;
-  LineBreakIteratorUtf8 operator=(icu4x::LineBreakIteratorUtf8&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LineBreakIteratorUtf8_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp
deleted file mode 100644
index 0d911e8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_LineBreakIteratorUtf8_HPP
-#define icu4x_LineBreakIteratorUtf8_HPP
-
-#include "LineBreakIteratorUtf8.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_LineBreakIteratorUtf8_next_mv1(icu4x::capi::LineBreakIteratorUtf8* self);
-    
-    
-    void icu4x_LineBreakIteratorUtf8_destroy_mv1(LineBreakIteratorUtf8* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::LineBreakIteratorUtf8::next() {
-  auto result = icu4x::capi::icu4x_LineBreakIteratorUtf8_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LineBreakIteratorUtf8*>(this);
-}
-
-inline icu4x::capi::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LineBreakIteratorUtf8*>(this);
-}
-
-inline const icu4x::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::FromFFI(const icu4x::capi::LineBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<const icu4x::LineBreakIteratorUtf8*>(ptr);
-}
-
-inline icu4x::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::FromFFI(icu4x::capi::LineBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<icu4x::LineBreakIteratorUtf8*>(ptr);
-}
-
-inline void icu4x::LineBreakIteratorUtf8::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LineBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorUtf8*>(ptr));
-}
-
-
-#endif // icu4x_LineBreakIteratorUtf8_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.d.hpp
deleted file mode 100644
index c4a6631..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.d.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef icu4x_LineBreakOptionsV2_D_HPP
-#define icu4x_LineBreakOptionsV2_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LineBreakStrictness.d.hpp"
-#include "LineBreakWordOption.d.hpp"
-
-namespace icu4x {
-class LineBreakStrictness;
-class LineBreakWordOption;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LineBreakOptionsV2 {
-      icu4x::capi::LineBreakStrictness_option strictness;
-      icu4x::capi::LineBreakWordOption_option word_option;
-    };
-    
-    typedef struct LineBreakOptionsV2_option {union { LineBreakOptionsV2 ok; }; bool is_ok; } LineBreakOptionsV2_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct LineBreakOptionsV2 {
-  std::optional<icu4x::LineBreakStrictness> strictness;
-  std::optional<icu4x::LineBreakWordOption> word_option;
-
-  inline icu4x::capi::LineBreakOptionsV2 AsFFI() const;
-  inline static icu4x::LineBreakOptionsV2 FromFFI(icu4x::capi::LineBreakOptionsV2 c_struct);
-};
-
-} // namespace
-#endif // icu4x_LineBreakOptionsV2_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.hpp
deleted file mode 100644
index 1d03e916..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakOptionsV2.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef icu4x_LineBreakOptionsV2_HPP
-#define icu4x_LineBreakOptionsV2_HPP
-
-#include "LineBreakOptionsV2.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LineBreakStrictness.hpp"
-#include "LineBreakWordOption.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::LineBreakOptionsV2 icu4x::LineBreakOptionsV2::AsFFI() const {
-  return icu4x::capi::LineBreakOptionsV2 {
-    /* .strictness = */ strictness.has_value() ? (icu4x::capi::LineBreakStrictness_option{ { strictness.value().AsFFI() }, true }) : (icu4x::capi::LineBreakStrictness_option{ {}, false }),
-    /* .word_option = */ word_option.has_value() ? (icu4x::capi::LineBreakWordOption_option{ { word_option.value().AsFFI() }, true }) : (icu4x::capi::LineBreakWordOption_option{ {}, false }),
-  };
-}
-
-inline icu4x::LineBreakOptionsV2 icu4x::LineBreakOptionsV2::FromFFI(icu4x::capi::LineBreakOptionsV2 c_struct) {
-  return icu4x::LineBreakOptionsV2 {
-    /* .strictness = */ c_struct.strictness.is_ok ? std::optional(icu4x::LineBreakStrictness::FromFFI(c_struct.strictness.ok)) : std::nullopt,
-    /* .word_option = */ c_struct.word_option.is_ok ? std::optional(icu4x::LineBreakWordOption::FromFFI(c_struct.word_option.ok)) : std::nullopt,
-  };
-}
-
-
-#endif // icu4x_LineBreakOptionsV2_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.d.hpp
deleted file mode 100644
index 864a3e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_LineBreakStrictness_D_HPP
-#define icu4x_LineBreakStrictness_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LineBreakStrictness {
-      LineBreakStrictness_Loose = 0,
-      LineBreakStrictness_Normal = 1,
-      LineBreakStrictness_Strict = 2,
-      LineBreakStrictness_Anywhere = 3,
-    };
-    
-    typedef struct LineBreakStrictness_option {union { LineBreakStrictness ok; }; bool is_ok; } LineBreakStrictness_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreakStrictness {
-public:
-  enum Value {
-    Loose = 0,
-    Normal = 1,
-    Strict = 2,
-    Anywhere = 3,
-  };
-
-  LineBreakStrictness() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LineBreakStrictness(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LineBreakStrictness AsFFI() const;
-  inline static icu4x::LineBreakStrictness FromFFI(icu4x::capi::LineBreakStrictness c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LineBreakStrictness_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.hpp
deleted file mode 100644
index d27d206..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakStrictness.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_LineBreakStrictness_HPP
-#define icu4x_LineBreakStrictness_HPP
-
-#include "LineBreakStrictness.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LineBreakStrictness icu4x::LineBreakStrictness::AsFFI() const {
-  return static_cast<icu4x::capi::LineBreakStrictness>(value);
-}
-
-inline icu4x::LineBreakStrictness icu4x::LineBreakStrictness::FromFFI(icu4x::capi::LineBreakStrictness c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LineBreakStrictness_Loose:
-    case icu4x::capi::LineBreakStrictness_Normal:
-    case icu4x::capi::LineBreakStrictness_Strict:
-    case icu4x::capi::LineBreakStrictness_Anywhere:
-      return static_cast<icu4x::LineBreakStrictness::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LineBreakStrictness_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.d.hpp
deleted file mode 100644
index 5acb056..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_LineBreakWordOption_D_HPP
-#define icu4x_LineBreakWordOption_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LineBreakWordOption {
-      LineBreakWordOption_Normal = 0,
-      LineBreakWordOption_BreakAll = 1,
-      LineBreakWordOption_KeepAll = 2,
-    };
-    
-    typedef struct LineBreakWordOption_option {union { LineBreakWordOption ok; }; bool is_ok; } LineBreakWordOption_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineBreakWordOption {
-public:
-  enum Value {
-    Normal = 0,
-    BreakAll = 1,
-    KeepAll = 2,
-  };
-
-  LineBreakWordOption() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LineBreakWordOption(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LineBreakWordOption AsFFI() const;
-  inline static icu4x::LineBreakWordOption FromFFI(icu4x::capi::LineBreakWordOption c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LineBreakWordOption_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.hpp
deleted file mode 100644
index e365dc7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineBreakWordOption.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_LineBreakWordOption_HPP
-#define icu4x_LineBreakWordOption_HPP
-
-#include "LineBreakWordOption.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LineBreakWordOption icu4x::LineBreakWordOption::AsFFI() const {
-  return static_cast<icu4x::capi::LineBreakWordOption>(value);
-}
-
-inline icu4x::LineBreakWordOption icu4x::LineBreakWordOption::FromFFI(icu4x::capi::LineBreakWordOption c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LineBreakWordOption_Normal:
-    case icu4x::capi::LineBreakWordOption_BreakAll:
-    case icu4x::capi::LineBreakWordOption_KeepAll:
-      return static_cast<icu4x::LineBreakWordOption::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LineBreakWordOption_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.d.hpp
deleted file mode 100644
index c6a4507..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.d.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef icu4x_LineSegmenter_D_HPP
-#define icu4x_LineSegmenter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct LineBreakIteratorLatin1; }
-class LineBreakIteratorLatin1;
-namespace capi { struct LineBreakIteratorUtf16; }
-class LineBreakIteratorUtf16;
-namespace capi { struct LineBreakIteratorUtf8; }
-class LineBreakIteratorUtf8;
-namespace capi { struct LineSegmenter; }
-class LineSegmenter;
-namespace capi { struct Locale; }
-class Locale;
-struct LineBreakOptionsV2;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LineSegmenter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LineSegmenter {
-public:
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_auto();
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_lstm();
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_dictionary();
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_auto_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_auto_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_lstm_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_lstm_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline static std::unique_ptr<icu4x::LineSegmenter> create_dictionary_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_dictionary_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options);
-
-  inline std::unique_ptr<icu4x::LineBreakIteratorUtf8> segment(std::string_view input) const;
-
-  inline std::unique_ptr<icu4x::LineBreakIteratorUtf16> segment16(std::u16string_view input) const;
-
-  inline std::unique_ptr<icu4x::LineBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const;
-
-  inline const icu4x::capi::LineSegmenter* AsFFI() const;
-  inline icu4x::capi::LineSegmenter* AsFFI();
-  inline static const icu4x::LineSegmenter* FromFFI(const icu4x::capi::LineSegmenter* ptr);
-  inline static icu4x::LineSegmenter* FromFFI(icu4x::capi::LineSegmenter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LineSegmenter() = delete;
-  LineSegmenter(const icu4x::LineSegmenter&) = delete;
-  LineSegmenter(icu4x::LineSegmenter&&) noexcept = delete;
-  LineSegmenter operator=(const icu4x::LineSegmenter&) = delete;
-  LineSegmenter operator=(icu4x::LineSegmenter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LineSegmenter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.hpp
deleted file mode 100644
index f208ffc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LineSegmenter.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef icu4x_LineSegmenter_HPP
-#define icu4x_LineSegmenter_HPP
-
-#include "LineSegmenter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "LineBreakIteratorLatin1.hpp"
-#include "LineBreakIteratorUtf16.hpp"
-#include "LineBreakIteratorUtf8.hpp"
-#include "LineBreakOptionsV2.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_auto_mv1(void);
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_lstm_mv1(void);
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_dictionary_mv1(void);
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_auto_with_options_v2_mv1(const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    typedef struct icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result;
-    icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_lstm_with_options_v2_mv1(const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    typedef struct icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result;
-    icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    icu4x::capi::LineSegmenter* icu4x_LineSegmenter_create_dictionary_with_options_v2_mv1(const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    typedef struct icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result;
-    icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1_result icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* content_locale, icu4x::capi::LineBreakOptionsV2 options);
-    
-    icu4x::capi::LineBreakIteratorUtf8* icu4x_LineSegmenter_segment_utf8_mv1(const icu4x::capi::LineSegmenter* self, diplomat::capi::DiplomatStringView input);
-    
-    icu4x::capi::LineBreakIteratorUtf16* icu4x_LineSegmenter_segment_utf16_mv1(const icu4x::capi::LineSegmenter* self, diplomat::capi::DiplomatString16View input);
-    
-    icu4x::capi::LineBreakIteratorLatin1* icu4x_LineSegmenter_segment_latin1_mv1(const icu4x::capi::LineSegmenter* self, diplomat::capi::DiplomatU8View input);
-    
-    
-    void icu4x_LineSegmenter_destroy_mv1(LineSegmenter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_auto() {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_auto_mv1();
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_lstm() {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_lstm_mv1();
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_dictionary() {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_dictionary_mv1();
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_auto_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_auto_with_options_v2_mv1(content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_auto_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1(provider.AsFFI(),
-    content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_lstm_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_lstm_with_options_v2_mv1(content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_lstm_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1(provider.AsFFI(),
-    content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LineSegmenter> icu4x::LineSegmenter::create_dictionary_with_options_v2(const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_dictionary_with_options_v2_mv1(content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_dictionary_with_options_v2_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale* content_locale, icu4x::LineBreakOptionsV2 options) {
-  auto result = icu4x::capi::icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1(provider.AsFFI(),
-    content_locale ? content_locale->AsFFI() : nullptr,
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LineBreakIteratorUtf8> icu4x::LineSegmenter::segment(std::string_view input) const {
-  auto result = icu4x::capi::icu4x_LineSegmenter_segment_utf8_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::LineBreakIteratorUtf8>(icu4x::LineBreakIteratorUtf8::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LineBreakIteratorUtf16> icu4x::LineSegmenter::segment16(std::u16string_view input) const {
-  auto result = icu4x::capi::icu4x_LineSegmenter_segment_utf16_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::LineBreakIteratorUtf16>(icu4x::LineBreakIteratorUtf16::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LineBreakIteratorLatin1> icu4x::LineSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const {
-  auto result = icu4x::capi::icu4x_LineSegmenter_segment_latin1_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::LineBreakIteratorLatin1>(icu4x::LineBreakIteratorLatin1::FromFFI(result));
-}
-
-inline const icu4x::capi::LineSegmenter* icu4x::LineSegmenter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LineSegmenter*>(this);
-}
-
-inline icu4x::capi::LineSegmenter* icu4x::LineSegmenter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LineSegmenter*>(this);
-}
-
-inline const icu4x::LineSegmenter* icu4x::LineSegmenter::FromFFI(const icu4x::capi::LineSegmenter* ptr) {
-  return reinterpret_cast<const icu4x::LineSegmenter*>(ptr);
-}
-
-inline icu4x::LineSegmenter* icu4x::LineSegmenter::FromFFI(icu4x::capi::LineSegmenter* ptr) {
-  return reinterpret_cast<icu4x::LineSegmenter*>(ptr);
-}
-
-inline void icu4x::LineSegmenter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LineSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::LineSegmenter*>(ptr));
-}
-
-
-#endif // icu4x_LineSegmenter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.d.hpp
deleted file mode 100644
index f80584a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.d.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef icu4x_ListFormatter_D_HPP
-#define icu4x_ListFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct ListFormatter; }
-class ListFormatter;
-namespace capi { struct Locale; }
-class Locale;
-class DataError;
-class ListLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ListFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ListFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_and_with_length(const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_and_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_or_with_length(const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_or_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_unit_with_length(const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_unit_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length);
-
-  inline std::string format(diplomat::span<const std::string_view> list) const;
-
-  inline std::string format16(diplomat::span<const std::u16string_view> list) const;
-
-  inline const icu4x::capi::ListFormatter* AsFFI() const;
-  inline icu4x::capi::ListFormatter* AsFFI();
-  inline static const icu4x::ListFormatter* FromFFI(const icu4x::capi::ListFormatter* ptr);
-  inline static icu4x::ListFormatter* FromFFI(icu4x::capi::ListFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ListFormatter() = delete;
-  ListFormatter(const icu4x::ListFormatter&) = delete;
-  ListFormatter(icu4x::ListFormatter&&) noexcept = delete;
-  ListFormatter operator=(const icu4x::ListFormatter&) = delete;
-  ListFormatter operator=(icu4x::ListFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ListFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.hpp
deleted file mode 100644
index 31be2a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListFormatter.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef icu4x_ListFormatter_HPP
-#define icu4x_ListFormatter_HPP
-
-#include "ListFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "ListLength.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_ListFormatter_create_and_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_mv1_result;
-    icu4x_ListFormatter_create_and_with_length_mv1_result icu4x_ListFormatter_create_and_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    typedef struct icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result;
-    icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result icu4x_ListFormatter_create_and_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    typedef struct icu4x_ListFormatter_create_or_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_mv1_result;
-    icu4x_ListFormatter_create_or_with_length_mv1_result icu4x_ListFormatter_create_or_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    typedef struct icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result;
-    icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result icu4x_ListFormatter_create_or_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    typedef struct icu4x_ListFormatter_create_unit_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_mv1_result;
-    icu4x_ListFormatter_create_unit_with_length_mv1_result icu4x_ListFormatter_create_unit_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    typedef struct icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result;
-    icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
-    
-    void icu4x_ListFormatter_format_utf8_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStringsView list, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_ListFormatter_format_utf16_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStrings16View list, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_ListFormatter_destroy_mv1(ListFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_and_with_length(const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_and_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_or_with_length(const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_or_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_unit_with_length(const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_unit_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) {
-  auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::ListFormatter::format(diplomat::span<const std::string_view> list) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(),
-    {reinterpret_cast<const diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
-    &write);
-  return output;
-}
-
-inline std::string icu4x::ListFormatter::format16(diplomat::span<const std::u16string_view> list) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(),
-    {reinterpret_cast<const diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ListFormatter*>(this);
-}
-
-inline icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ListFormatter*>(this);
-}
-
-inline const icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(const icu4x::capi::ListFormatter* ptr) {
-  return reinterpret_cast<const icu4x::ListFormatter*>(ptr);
-}
-
-inline icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(icu4x::capi::ListFormatter* ptr) {
-  return reinterpret_cast<icu4x::ListFormatter*>(ptr);
-}
-
-inline void icu4x::ListFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ListFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ListFormatter*>(ptr));
-}
-
-
-#endif // icu4x_ListFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.d.hpp
deleted file mode 100644
index 2e49cb4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_ListLength_D_HPP
-#define icu4x_ListLength_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum ListLength {
-      ListLength_Wide = 0,
-      ListLength_Short = 1,
-      ListLength_Narrow = 2,
-    };
-    
-    typedef struct ListLength_option {union { ListLength ok; }; bool is_ok; } ListLength_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ListLength {
-public:
-  enum Value {
-    Wide = 0,
-    Short = 1,
-    Narrow = 2,
-  };
-
-  ListLength() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr ListLength(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::ListLength AsFFI() const;
-  inline static icu4x::ListLength FromFFI(icu4x::capi::ListLength c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_ListLength_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.hpp
deleted file mode 100644
index 5d93386..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ListLength.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_ListLength_HPP
-#define icu4x_ListLength_HPP
-
-#include "ListLength.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::ListLength icu4x::ListLength::AsFFI() const {
-  return static_cast<icu4x::capi::ListLength>(value);
-}
-
-inline icu4x::ListLength icu4x::ListLength::FromFFI(icu4x::capi::ListLength c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::ListLength_Wide:
-    case icu4x::capi::ListLength_Short:
-    case icu4x::capi::ListLength_Narrow:
-      return static_cast<icu4x::ListLength::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_ListLength_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.d.hpp
deleted file mode 100644
index aac966a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.d.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef icu4x_Locale_D_HPP
-#define icu4x_Locale_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Locale; }
-class Locale;
-class LocaleParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Locale;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Locale {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError> from_string(std::string_view name);
-
-  inline static std::unique_ptr<icu4x::Locale> und();
-
-  inline std::unique_ptr<icu4x::Locale> clone() const;
-
-  inline std::string basename() const;
-
-  inline std::optional<std::string> get_unicode_extension(std::string_view s) const;
-
-  inline std::string language() const;
-
-  inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_language(std::string_view s);
-
-  inline std::optional<std::string> region() const;
-
-  inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_region(std::string_view s);
-
-  inline std::optional<std::string> script() const;
-
-  inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_script(std::string_view s);
-
-  inline static diplomat::result<std::string, icu4x::LocaleParseError> normalize(std::string_view s);
-
-  inline std::string to_string() const;
-
-  inline bool normalizing_eq(std::string_view other) const;
-
-  inline int8_t compare_to_string(std::string_view other) const;
-
-  inline int8_t compare_to(const icu4x::Locale& other) const;
-
-  inline const icu4x::capi::Locale* AsFFI() const;
-  inline icu4x::capi::Locale* AsFFI();
-  inline static const icu4x::Locale* FromFFI(const icu4x::capi::Locale* ptr);
-  inline static icu4x::Locale* FromFFI(icu4x::capi::Locale* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Locale() = delete;
-  Locale(const icu4x::Locale&) = delete;
-  Locale(icu4x::Locale&&) noexcept = delete;
-  Locale operator=(const icu4x::Locale&) = delete;
-  Locale operator=(icu4x::Locale&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Locale_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.hpp
deleted file mode 100644
index 71accc50..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Locale.hpp
+++ /dev/null
@@ -1,197 +0,0 @@
-#ifndef icu4x_Locale_HPP
-#define icu4x_Locale_HPP
-
-#include "Locale.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LocaleParseError.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_Locale_from_string_mv1_result {union {icu4x::capi::Locale* ok; icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_from_string_mv1_result;
-    icu4x_Locale_from_string_mv1_result icu4x_Locale_from_string_mv1(diplomat::capi::DiplomatStringView name);
-    
-    icu4x::capi::Locale* icu4x_Locale_und_mv1(void);
-    
-    icu4x::capi::Locale* icu4x_Locale_clone_mv1(const icu4x::capi::Locale* self);
-    
-    void icu4x_Locale_basename_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_Locale_get_unicode_extension_mv1_result { bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result;
-    icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_Locale_language_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_Locale_set_language_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_language_mv1_result;
-    icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
-    
-    typedef struct icu4x_Locale_region_mv1_result { bool is_ok;} icu4x_Locale_region_mv1_result;
-    icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_Locale_set_region_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_region_mv1_result;
-    icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
-    
-    typedef struct icu4x_Locale_script_mv1_result { bool is_ok;} icu4x_Locale_script_mv1_result;
-    icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_Locale_set_script_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_script_mv1_result;
-    icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
-    
-    typedef struct icu4x_Locale_normalize_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_normalize_mv1_result;
-    icu4x_Locale_normalize_mv1_result icu4x_Locale_normalize_mv1(diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
-    
-    void icu4x_Locale_to_string_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
-    
-    bool icu4x_Locale_normalizing_eq_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView other);
-    
-    int8_t icu4x_Locale_compare_to_string_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView other);
-    
-    int8_t icu4x_Locale_compare_to_mv1(const icu4x::capi::Locale* self, const icu4x::capi::Locale* other);
-    
-    
-    void icu4x_Locale_destroy_mv1(Locale* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError> icu4x::Locale::from_string(std::string_view name) {
-  auto result = icu4x::capi::icu4x_Locale_from_string_mv1({name.data(), name.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError>(diplomat::Ok<std::unique_ptr<icu4x::Locale>>(std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::Locale> icu4x::Locale::und() {
-  auto result = icu4x::capi::icu4x_Locale_und_mv1();
-  return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::Locale> icu4x::Locale::clone() const {
-  auto result = icu4x::capi::icu4x_Locale_clone_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
-}
-
-inline std::string icu4x::Locale::basename() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Locale_basename_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline std::optional<std::string> icu4x::Locale::get_unicode_extension(std::string_view s) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    &write);
-  return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
-}
-
-inline std::string icu4x::Locale::language() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Locale_language_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_language(std::string_view s) {
-  auto result = icu4x::capi::icu4x_Locale_set_language_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline std::optional<std::string> icu4x::Locale::region() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_Locale_region_mv1(this->AsFFI(),
-    &write);
-  return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
-}
-
-inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_region(std::string_view s) {
-  auto result = icu4x::capi::icu4x_Locale_set_region_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline std::optional<std::string> icu4x::Locale::script() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_Locale_script_mv1(this->AsFFI(),
-    &write);
-  return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
-}
-
-inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_script(std::string_view s) {
-  auto result = icu4x::capi::icu4x_Locale_set_script_mv1(this->AsFFI(),
-    {s.data(), s.size()});
-  return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::LocaleParseError> icu4x::Locale::normalize(std::string_view s) {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_Locale_normalize_mv1({s.data(), s.size()},
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::Locale::to_string() const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_Locale_to_string_mv1(this->AsFFI(),
-    &write);
-  return output;
-}
-
-inline bool icu4x::Locale::normalizing_eq(std::string_view other) const {
-  auto result = icu4x::capi::icu4x_Locale_normalizing_eq_mv1(this->AsFFI(),
-    {other.data(), other.size()});
-  return result;
-}
-
-inline int8_t icu4x::Locale::compare_to_string(std::string_view other) const {
-  auto result = icu4x::capi::icu4x_Locale_compare_to_string_mv1(this->AsFFI(),
-    {other.data(), other.size()});
-  return result;
-}
-
-inline int8_t icu4x::Locale::compare_to(const icu4x::Locale& other) const {
-  auto result = icu4x::capi::icu4x_Locale_compare_to_mv1(this->AsFFI(),
-    other.AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::Locale* icu4x::Locale::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Locale*>(this);
-}
-
-inline icu4x::capi::Locale* icu4x::Locale::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Locale*>(this);
-}
-
-inline const icu4x::Locale* icu4x::Locale::FromFFI(const icu4x::capi::Locale* ptr) {
-  return reinterpret_cast<const icu4x::Locale*>(ptr);
-}
-
-inline icu4x::Locale* icu4x::Locale::FromFFI(icu4x::capi::Locale* ptr) {
-  return reinterpret_cast<icu4x::Locale*>(ptr);
-}
-
-inline void icu4x::Locale::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Locale_destroy_mv1(reinterpret_cast<icu4x::capi::Locale*>(ptr));
-}
-
-
-#endif // icu4x_Locale_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp
deleted file mode 100644
index 79a93e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef icu4x_LocaleCanonicalizer_D_HPP
-#define icu4x_LocaleCanonicalizer_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct LocaleCanonicalizer; }
-class LocaleCanonicalizer;
-class DataError;
-class TransformResult;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleCanonicalizer;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleCanonicalizer {
-public:
-
-  inline static std::unique_ptr<icu4x::LocaleCanonicalizer> create_common();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError> create_common_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::LocaleCanonicalizer> create_extended();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError> create_extended_with_provider(const icu4x::DataProvider& provider);
-
-  inline icu4x::TransformResult canonicalize(icu4x::Locale& locale) const;
-
-  inline const icu4x::capi::LocaleCanonicalizer* AsFFI() const;
-  inline icu4x::capi::LocaleCanonicalizer* AsFFI();
-  inline static const icu4x::LocaleCanonicalizer* FromFFI(const icu4x::capi::LocaleCanonicalizer* ptr);
-  inline static icu4x::LocaleCanonicalizer* FromFFI(icu4x::capi::LocaleCanonicalizer* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleCanonicalizer() = delete;
-  LocaleCanonicalizer(const icu4x::LocaleCanonicalizer&) = delete;
-  LocaleCanonicalizer(icu4x::LocaleCanonicalizer&&) noexcept = delete;
-  LocaleCanonicalizer operator=(const icu4x::LocaleCanonicalizer&) = delete;
-  LocaleCanonicalizer operator=(icu4x::LocaleCanonicalizer&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleCanonicalizer_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.hpp
deleted file mode 100644
index c5ab79092..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleCanonicalizer.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef icu4x_LocaleCanonicalizer_HPP
-#define icu4x_LocaleCanonicalizer_HPP
-
-#include "LocaleCanonicalizer.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "TransformResult.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LocaleCanonicalizer* icu4x_LocaleCanonicalizer_create_common_mv1(void);
-    
-    typedef struct icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result {union {icu4x::capi::LocaleCanonicalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result;
-    icu4x_LocaleCanonicalizer_create_common_with_provider_mv1_result icu4x_LocaleCanonicalizer_create_common_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::LocaleCanonicalizer* icu4x_LocaleCanonicalizer_create_extended_mv1(void);
-    
-    typedef struct icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result {union {icu4x::capi::LocaleCanonicalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result;
-    icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1_result icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::TransformResult icu4x_LocaleCanonicalizer_canonicalize_mv1(const icu4x::capi::LocaleCanonicalizer* self, icu4x::capi::Locale* locale);
-    
-    
-    void icu4x_LocaleCanonicalizer_destroy_mv1(LocaleCanonicalizer* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LocaleCanonicalizer> icu4x::LocaleCanonicalizer::create_common() {
-  auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_common_mv1();
-  return std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError> icu4x::LocaleCanonicalizer::create_common_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_common_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleCanonicalizer>>(std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LocaleCanonicalizer> icu4x::LocaleCanonicalizer::create_extended() {
-  auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_extended_mv1();
-  return std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError> icu4x::LocaleCanonicalizer::create_extended_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleCanonicalizer>>(std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::TransformResult icu4x::LocaleCanonicalizer::canonicalize(icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleCanonicalizer_canonicalize_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return icu4x::TransformResult::FromFFI(result);
-}
-
-inline const icu4x::capi::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleCanonicalizer*>(this);
-}
-
-inline icu4x::capi::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleCanonicalizer*>(this);
-}
-
-inline const icu4x::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::FromFFI(const icu4x::capi::LocaleCanonicalizer* ptr) {
-  return reinterpret_cast<const icu4x::LocaleCanonicalizer*>(ptr);
-}
-
-inline icu4x::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::FromFFI(icu4x::capi::LocaleCanonicalizer* ptr) {
-  return reinterpret_cast<icu4x::LocaleCanonicalizer*>(ptr);
-}
-
-inline void icu4x::LocaleCanonicalizer::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleCanonicalizer_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleCanonicalizer*>(ptr));
-}
-
-
-#endif // icu4x_LocaleCanonicalizer_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.d.hpp
deleted file mode 100644
index 8d8abb0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_LocaleDirection_D_HPP
-#define icu4x_LocaleDirection_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LocaleDirection {
-      LocaleDirection_LeftToRight = 0,
-      LocaleDirection_RightToLeft = 1,
-      LocaleDirection_Unknown = 2,
-    };
-    
-    typedef struct LocaleDirection_option {union { LocaleDirection ok; }; bool is_ok; } LocaleDirection_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleDirection {
-public:
-  enum Value {
-    LeftToRight = 0,
-    RightToLeft = 1,
-    Unknown = 2,
-  };
-
-  LocaleDirection() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LocaleDirection(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LocaleDirection AsFFI() const;
-  inline static icu4x::LocaleDirection FromFFI(icu4x::capi::LocaleDirection c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LocaleDirection_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.hpp
deleted file mode 100644
index 203bc23..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirection.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_LocaleDirection_HPP
-#define icu4x_LocaleDirection_HPP
-
-#include "LocaleDirection.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LocaleDirection icu4x::LocaleDirection::AsFFI() const {
-  return static_cast<icu4x::capi::LocaleDirection>(value);
-}
-
-inline icu4x::LocaleDirection icu4x::LocaleDirection::FromFFI(icu4x::capi::LocaleDirection c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LocaleDirection_LeftToRight:
-    case icu4x::capi::LocaleDirection_RightToLeft:
-    case icu4x::capi::LocaleDirection_Unknown:
-      return static_cast<icu4x::LocaleDirection::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LocaleDirection_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.d.hpp
deleted file mode 100644
index 27568b5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.d.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef icu4x_LocaleDirectionality_D_HPP
-#define icu4x_LocaleDirectionality_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct LocaleDirectionality; }
-class LocaleDirectionality;
-class DataError;
-class LocaleDirection;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleDirectionality;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleDirectionality {
-public:
-
-  inline static std::unique_ptr<icu4x::LocaleDirectionality> create_common();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> create_common_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::LocaleDirectionality> create_extended();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> create_extended_with_provider(const icu4x::DataProvider& provider);
-
-  inline icu4x::LocaleDirection get(const icu4x::Locale& locale) const;
-
-  inline bool is_left_to_right(const icu4x::Locale& locale) const;
-
-  inline bool is_right_to_left(const icu4x::Locale& locale) const;
-
-  inline const icu4x::capi::LocaleDirectionality* AsFFI() const;
-  inline icu4x::capi::LocaleDirectionality* AsFFI();
-  inline static const icu4x::LocaleDirectionality* FromFFI(const icu4x::capi::LocaleDirectionality* ptr);
-  inline static icu4x::LocaleDirectionality* FromFFI(icu4x::capi::LocaleDirectionality* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleDirectionality() = delete;
-  LocaleDirectionality(const icu4x::LocaleDirectionality&) = delete;
-  LocaleDirectionality(icu4x::LocaleDirectionality&&) noexcept = delete;
-  LocaleDirectionality operator=(const icu4x::LocaleDirectionality&) = delete;
-  LocaleDirectionality operator=(icu4x::LocaleDirectionality&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleDirectionality_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.hpp
deleted file mode 100644
index 77da95f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDirectionality.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef icu4x_LocaleDirectionality_HPP
-#define icu4x_LocaleDirectionality_HPP
-
-#include "LocaleDirectionality.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "LocaleDirection.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LocaleDirectionality* icu4x_LocaleDirectionality_create_common_mv1(void);
-    
-    typedef struct icu4x_LocaleDirectionality_create_common_with_provider_mv1_result {union {icu4x::capi::LocaleDirectionality* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_common_with_provider_mv1_result;
-    icu4x_LocaleDirectionality_create_common_with_provider_mv1_result icu4x_LocaleDirectionality_create_common_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::LocaleDirectionality* icu4x_LocaleDirectionality_create_extended_mv1(void);
-    
-    typedef struct icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result {union {icu4x::capi::LocaleDirectionality* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result;
-    icu4x_LocaleDirectionality_create_extended_with_provider_mv1_result icu4x_LocaleDirectionality_create_extended_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::LocaleDirection icu4x_LocaleDirectionality_get_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale);
-    
-    bool icu4x_LocaleDirectionality_is_left_to_right_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale);
-    
-    bool icu4x_LocaleDirectionality_is_right_to_left_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale);
-    
-    
-    void icu4x_LocaleDirectionality_destroy_mv1(LocaleDirectionality* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LocaleDirectionality> icu4x::LocaleDirectionality::create_common() {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_create_common_mv1();
-  return std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> icu4x::LocaleDirectionality::create_common_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_create_common_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDirectionality>>(std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LocaleDirectionality> icu4x::LocaleDirectionality::create_extended() {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_create_extended_mv1();
-  return std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> icu4x::LocaleDirectionality::create_extended_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_create_extended_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDirectionality>>(std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::LocaleDirection icu4x::LocaleDirectionality::get(const icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_get_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return icu4x::LocaleDirection::FromFFI(result);
-}
-
-inline bool icu4x::LocaleDirectionality::is_left_to_right(const icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_is_left_to_right_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return result;
-}
-
-inline bool icu4x::LocaleDirectionality::is_right_to_left(const icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleDirectionality_is_right_to_left_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::LocaleDirectionality* icu4x::LocaleDirectionality::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleDirectionality*>(this);
-}
-
-inline icu4x::capi::LocaleDirectionality* icu4x::LocaleDirectionality::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleDirectionality*>(this);
-}
-
-inline const icu4x::LocaleDirectionality* icu4x::LocaleDirectionality::FromFFI(const icu4x::capi::LocaleDirectionality* ptr) {
-  return reinterpret_cast<const icu4x::LocaleDirectionality*>(ptr);
-}
-
-inline icu4x::LocaleDirectionality* icu4x::LocaleDirectionality::FromFFI(icu4x::capi::LocaleDirectionality* ptr) {
-  return reinterpret_cast<icu4x::LocaleDirectionality*>(ptr);
-}
-
-inline void icu4x::LocaleDirectionality::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleDirectionality_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleDirectionality*>(ptr));
-}
-
-
-#endif // icu4x_LocaleDirectionality_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp
deleted file mode 100644
index 71f630a6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_LocaleDisplayNamesFormatter_D_HPP
-#define icu4x_LocaleDisplayNamesFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct LocaleDisplayNamesFormatter; }
-class LocaleDisplayNamesFormatter;
-struct DisplayNamesOptionsV1;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleDisplayNamesFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleDisplayNamesFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> create_v1(const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options);
-
-  inline std::string of(const icu4x::Locale& locale) const;
-
-  inline const icu4x::capi::LocaleDisplayNamesFormatter* AsFFI() const;
-  inline icu4x::capi::LocaleDisplayNamesFormatter* AsFFI();
-  inline static const icu4x::LocaleDisplayNamesFormatter* FromFFI(const icu4x::capi::LocaleDisplayNamesFormatter* ptr);
-  inline static icu4x::LocaleDisplayNamesFormatter* FromFFI(icu4x::capi::LocaleDisplayNamesFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleDisplayNamesFormatter() = delete;
-  LocaleDisplayNamesFormatter(const icu4x::LocaleDisplayNamesFormatter&) = delete;
-  LocaleDisplayNamesFormatter(icu4x::LocaleDisplayNamesFormatter&&) noexcept = delete;
-  LocaleDisplayNamesFormatter operator=(const icu4x::LocaleDisplayNamesFormatter&) = delete;
-  LocaleDisplayNamesFormatter operator=(icu4x::LocaleDisplayNamesFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleDisplayNamesFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp
deleted file mode 100644
index 060abf94..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef icu4x_LocaleDisplayNamesFormatter_HPP
-#define icu4x_LocaleDisplayNamesFormatter_HPP
-
-#include "LocaleDisplayNamesFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "DisplayNamesOptionsV1.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result {union {icu4x::capi::LocaleDisplayNamesFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result;
-    icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DisplayNamesOptionsV1 options);
-    
-    typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result {union {icu4x::capi::LocaleDisplayNamesFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result;
-    icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DisplayNamesOptionsV1 options);
-    
-    void icu4x_LocaleDisplayNamesFormatter_of_mv1(const icu4x::capi::LocaleDisplayNamesFormatter* self, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_LocaleDisplayNamesFormatter_destroy_mv1(LocaleDisplayNamesFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> icu4x::LocaleDisplayNamesFormatter::create_v1(const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>>(std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>(icu4x::LocaleDisplayNamesFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> icu4x::LocaleDisplayNamesFormatter::create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>>(std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>(icu4x::LocaleDisplayNamesFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::LocaleDisplayNamesFormatter::of(const icu4x::Locale& locale) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_LocaleDisplayNamesFormatter_of_mv1(this->AsFFI(),
-    locale.AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleDisplayNamesFormatter*>(this);
-}
-
-inline icu4x::capi::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleDisplayNamesFormatter*>(this);
-}
-
-inline const icu4x::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::FromFFI(const icu4x::capi::LocaleDisplayNamesFormatter* ptr) {
-  return reinterpret_cast<const icu4x::LocaleDisplayNamesFormatter*>(ptr);
-}
-
-inline icu4x::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::FromFFI(icu4x::capi::LocaleDisplayNamesFormatter* ptr) {
-  return reinterpret_cast<icu4x::LocaleDisplayNamesFormatter*>(ptr);
-}
-
-inline void icu4x::LocaleDisplayNamesFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleDisplayNamesFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleDisplayNamesFormatter*>(ptr));
-}
-
-
-#endif // icu4x_LocaleDisplayNamesFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.d.hpp
deleted file mode 100644
index e8f61de..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.d.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef icu4x_LocaleExpander_D_HPP
-#define icu4x_LocaleExpander_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct LocaleExpander; }
-class LocaleExpander;
-class DataError;
-class TransformResult;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleExpander;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleExpander {
-public:
-
-  inline static std::unique_ptr<icu4x::LocaleExpander> create_common();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError> create_common_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::LocaleExpander> create_extended();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError> create_extended_with_provider(const icu4x::DataProvider& provider);
-
-  inline icu4x::TransformResult maximize(icu4x::Locale& locale) const;
-
-  inline icu4x::TransformResult minimize(icu4x::Locale& locale) const;
-
-  inline icu4x::TransformResult minimize_favor_script(icu4x::Locale& locale) const;
-
-  inline const icu4x::capi::LocaleExpander* AsFFI() const;
-  inline icu4x::capi::LocaleExpander* AsFFI();
-  inline static const icu4x::LocaleExpander* FromFFI(const icu4x::capi::LocaleExpander* ptr);
-  inline static icu4x::LocaleExpander* FromFFI(icu4x::capi::LocaleExpander* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleExpander() = delete;
-  LocaleExpander(const icu4x::LocaleExpander&) = delete;
-  LocaleExpander(icu4x::LocaleExpander&&) noexcept = delete;
-  LocaleExpander operator=(const icu4x::LocaleExpander&) = delete;
-  LocaleExpander operator=(icu4x::LocaleExpander&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleExpander_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.hpp
deleted file mode 100644
index 4e847469..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleExpander.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef icu4x_LocaleExpander_HPP
-#define icu4x_LocaleExpander_HPP
-
-#include "LocaleExpander.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "TransformResult.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LocaleExpander* icu4x_LocaleExpander_create_common_mv1(void);
-    
-    typedef struct icu4x_LocaleExpander_create_common_with_provider_mv1_result {union {icu4x::capi::LocaleExpander* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleExpander_create_common_with_provider_mv1_result;
-    icu4x_LocaleExpander_create_common_with_provider_mv1_result icu4x_LocaleExpander_create_common_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::LocaleExpander* icu4x_LocaleExpander_create_extended_mv1(void);
-    
-    typedef struct icu4x_LocaleExpander_create_extended_with_provider_mv1_result {union {icu4x::capi::LocaleExpander* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleExpander_create_extended_with_provider_mv1_result;
-    icu4x_LocaleExpander_create_extended_with_provider_mv1_result icu4x_LocaleExpander_create_extended_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::TransformResult icu4x_LocaleExpander_maximize_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale);
-    
-    icu4x::capi::TransformResult icu4x_LocaleExpander_minimize_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale);
-    
-    icu4x::capi::TransformResult icu4x_LocaleExpander_minimize_favor_script_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale);
-    
-    
-    void icu4x_LocaleExpander_destroy_mv1(LocaleExpander* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LocaleExpander> icu4x::LocaleExpander::create_common() {
-  auto result = icu4x::capi::icu4x_LocaleExpander_create_common_mv1();
-  return std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError> icu4x::LocaleExpander::create_common_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleExpander_create_common_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleExpander>>(std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LocaleExpander> icu4x::LocaleExpander::create_extended() {
-  auto result = icu4x::capi::icu4x_LocaleExpander_create_extended_mv1();
-  return std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError> icu4x::LocaleExpander::create_extended_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleExpander_create_extended_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleExpander>>(std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::TransformResult icu4x::LocaleExpander::maximize(icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleExpander_maximize_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return icu4x::TransformResult::FromFFI(result);
-}
-
-inline icu4x::TransformResult icu4x::LocaleExpander::minimize(icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleExpander_minimize_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return icu4x::TransformResult::FromFFI(result);
-}
-
-inline icu4x::TransformResult icu4x::LocaleExpander::minimize_favor_script(icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleExpander_minimize_favor_script_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return icu4x::TransformResult::FromFFI(result);
-}
-
-inline const icu4x::capi::LocaleExpander* icu4x::LocaleExpander::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleExpander*>(this);
-}
-
-inline icu4x::capi::LocaleExpander* icu4x::LocaleExpander::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleExpander*>(this);
-}
-
-inline const icu4x::LocaleExpander* icu4x::LocaleExpander::FromFFI(const icu4x::capi::LocaleExpander* ptr) {
-  return reinterpret_cast<const icu4x::LocaleExpander*>(ptr);
-}
-
-inline icu4x::LocaleExpander* icu4x::LocaleExpander::FromFFI(icu4x::capi::LocaleExpander* ptr) {
-  return reinterpret_cast<icu4x::LocaleExpander*>(ptr);
-}
-
-inline void icu4x::LocaleExpander::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleExpander_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleExpander*>(ptr));
-}
-
-
-#endif // icu4x_LocaleExpander_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp
deleted file mode 100644
index 54ee522..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_LocaleFallbackConfig_D_HPP
-#define icu4x_LocaleFallbackConfig_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LocaleFallbackPriority.d.hpp"
-
-namespace icu4x {
-class LocaleFallbackPriority;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleFallbackConfig {
-      icu4x::capi::LocaleFallbackPriority priority;
-    };
-    
-    typedef struct LocaleFallbackConfig_option {union { LocaleFallbackConfig ok; }; bool is_ok; } LocaleFallbackConfig_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct LocaleFallbackConfig {
-  icu4x::LocaleFallbackPriority priority;
-
-  inline icu4x::capi::LocaleFallbackConfig AsFFI() const;
-  inline static icu4x::LocaleFallbackConfig FromFFI(icu4x::capi::LocaleFallbackConfig c_struct);
-};
-
-} // namespace
-#endif // icu4x_LocaleFallbackConfig_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.hpp
deleted file mode 100644
index 541553a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackConfig.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_LocaleFallbackConfig_HPP
-#define icu4x_LocaleFallbackConfig_HPP
-
-#include "LocaleFallbackConfig.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LocaleFallbackPriority.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::LocaleFallbackConfig icu4x::LocaleFallbackConfig::AsFFI() const {
-  return icu4x::capi::LocaleFallbackConfig {
-    /* .priority = */ priority.AsFFI(),
-  };
-}
-
-inline icu4x::LocaleFallbackConfig icu4x::LocaleFallbackConfig::FromFFI(icu4x::capi::LocaleFallbackConfig c_struct) {
-  return icu4x::LocaleFallbackConfig {
-    /* .priority = */ icu4x::LocaleFallbackPriority::FromFFI(c_struct.priority),
-  };
-}
-
-
-#endif // icu4x_LocaleFallbackConfig_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp
deleted file mode 100644
index 84d8ea0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_LocaleFallbackIterator_D_HPP
-#define icu4x_LocaleFallbackIterator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Locale; }
-class Locale;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleFallbackIterator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleFallbackIterator {
-public:
-
-  inline std::unique_ptr<icu4x::Locale> next();
-
-  inline const icu4x::capi::LocaleFallbackIterator* AsFFI() const;
-  inline icu4x::capi::LocaleFallbackIterator* AsFFI();
-  inline static const icu4x::LocaleFallbackIterator* FromFFI(const icu4x::capi::LocaleFallbackIterator* ptr);
-  inline static icu4x::LocaleFallbackIterator* FromFFI(icu4x::capi::LocaleFallbackIterator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleFallbackIterator() = delete;
-  LocaleFallbackIterator(const icu4x::LocaleFallbackIterator&) = delete;
-  LocaleFallbackIterator(icu4x::LocaleFallbackIterator&&) noexcept = delete;
-  LocaleFallbackIterator operator=(const icu4x::LocaleFallbackIterator&) = delete;
-  LocaleFallbackIterator operator=(icu4x::LocaleFallbackIterator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleFallbackIterator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.hpp
deleted file mode 100644
index e26b61a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackIterator.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_LocaleFallbackIterator_HPP
-#define icu4x_LocaleFallbackIterator_HPP
-
-#include "LocaleFallbackIterator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Locale.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::Locale* icu4x_LocaleFallbackIterator_next_mv1(icu4x::capi::LocaleFallbackIterator* self);
-    
-    
-    void icu4x_LocaleFallbackIterator_destroy_mv1(LocaleFallbackIterator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::Locale> icu4x::LocaleFallbackIterator::next() {
-  auto result = icu4x::capi::icu4x_LocaleFallbackIterator_next_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
-}
-
-inline const icu4x::capi::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleFallbackIterator*>(this);
-}
-
-inline icu4x::capi::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleFallbackIterator*>(this);
-}
-
-inline const icu4x::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::FromFFI(const icu4x::capi::LocaleFallbackIterator* ptr) {
-  return reinterpret_cast<const icu4x::LocaleFallbackIterator*>(ptr);
-}
-
-inline icu4x::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::FromFFI(icu4x::capi::LocaleFallbackIterator* ptr) {
-  return reinterpret_cast<icu4x::LocaleFallbackIterator*>(ptr);
-}
-
-inline void icu4x::LocaleFallbackIterator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleFallbackIterator_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbackIterator*>(ptr));
-}
-
-
-#endif // icu4x_LocaleFallbackIterator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp
deleted file mode 100644
index 4957eab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_LocaleFallbackPriority_D_HPP
-#define icu4x_LocaleFallbackPriority_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LocaleFallbackPriority {
-      LocaleFallbackPriority_Language = 0,
-      LocaleFallbackPriority_Region = 1,
-    };
-    
-    typedef struct LocaleFallbackPriority_option {union { LocaleFallbackPriority ok; }; bool is_ok; } LocaleFallbackPriority_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleFallbackPriority {
-public:
-  enum Value {
-    Language = 0,
-    Region = 1,
-  };
-
-  LocaleFallbackPriority() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LocaleFallbackPriority(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LocaleFallbackPriority AsFFI() const;
-  inline static icu4x::LocaleFallbackPriority FromFFI(icu4x::capi::LocaleFallbackPriority c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LocaleFallbackPriority_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.hpp
deleted file mode 100644
index be1ef7e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackPriority.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_LocaleFallbackPriority_HPP
-#define icu4x_LocaleFallbackPriority_HPP
-
-#include "LocaleFallbackPriority.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LocaleFallbackPriority icu4x::LocaleFallbackPriority::AsFFI() const {
-  return static_cast<icu4x::capi::LocaleFallbackPriority>(value);
-}
-
-inline icu4x::LocaleFallbackPriority icu4x::LocaleFallbackPriority::FromFFI(icu4x::capi::LocaleFallbackPriority c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LocaleFallbackPriority_Language:
-    case icu4x::capi::LocaleFallbackPriority_Region:
-      return static_cast<icu4x::LocaleFallbackPriority::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LocaleFallbackPriority_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.d.hpp
deleted file mode 100644
index 9f1f193..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.d.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef icu4x_LocaleFallbacker_D_HPP
-#define icu4x_LocaleFallbacker_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct LocaleFallbacker; }
-class LocaleFallbacker;
-namespace capi { struct LocaleFallbackerWithConfig; }
-class LocaleFallbackerWithConfig;
-struct LocaleFallbackConfig;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleFallbacker;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleFallbacker {
-public:
-
-  inline static std::unique_ptr<icu4x::LocaleFallbacker> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::LocaleFallbacker> without_data();
-
-  inline std::unique_ptr<icu4x::LocaleFallbackerWithConfig> for_config(icu4x::LocaleFallbackConfig config) const;
-
-  inline const icu4x::capi::LocaleFallbacker* AsFFI() const;
-  inline icu4x::capi::LocaleFallbacker* AsFFI();
-  inline static const icu4x::LocaleFallbacker* FromFFI(const icu4x::capi::LocaleFallbacker* ptr);
-  inline static icu4x::LocaleFallbacker* FromFFI(icu4x::capi::LocaleFallbacker* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleFallbacker() = delete;
-  LocaleFallbacker(const icu4x::LocaleFallbacker&) = delete;
-  LocaleFallbacker(icu4x::LocaleFallbacker&&) noexcept = delete;
-  LocaleFallbacker operator=(const icu4x::LocaleFallbacker&) = delete;
-  LocaleFallbacker operator=(icu4x::LocaleFallbacker&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleFallbacker_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.hpp
deleted file mode 100644
index de0d11ab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbacker.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef icu4x_LocaleFallbacker_HPP
-#define icu4x_LocaleFallbacker_HPP
-
-#include "LocaleFallbacker.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "LocaleFallbackConfig.hpp"
-#include "LocaleFallbackerWithConfig.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LocaleFallbacker* icu4x_LocaleFallbacker_create_mv1(void);
-    
-    typedef struct icu4x_LocaleFallbacker_create_with_provider_mv1_result {union {icu4x::capi::LocaleFallbacker* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleFallbacker_create_with_provider_mv1_result;
-    icu4x_LocaleFallbacker_create_with_provider_mv1_result icu4x_LocaleFallbacker_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::LocaleFallbacker* icu4x_LocaleFallbacker_without_data_mv1(void);
-    
-    icu4x::capi::LocaleFallbackerWithConfig* icu4x_LocaleFallbacker_for_config_mv1(const icu4x::capi::LocaleFallbacker* self, icu4x::capi::LocaleFallbackConfig config);
-    
-    
-    void icu4x_LocaleFallbacker_destroy_mv1(LocaleFallbacker* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LocaleFallbacker> icu4x::LocaleFallbacker::create() {
-  auto result = icu4x::capi::icu4x_LocaleFallbacker_create_mv1();
-  return std::unique_ptr<icu4x::LocaleFallbacker>(icu4x::LocaleFallbacker::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError> icu4x::LocaleFallbacker::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_LocaleFallbacker_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleFallbacker>>(std::unique_ptr<icu4x::LocaleFallbacker>(icu4x::LocaleFallbacker::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::LocaleFallbacker> icu4x::LocaleFallbacker::without_data() {
-  auto result = icu4x::capi::icu4x_LocaleFallbacker_without_data_mv1();
-  return std::unique_ptr<icu4x::LocaleFallbacker>(icu4x::LocaleFallbacker::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::LocaleFallbackerWithConfig> icu4x::LocaleFallbacker::for_config(icu4x::LocaleFallbackConfig config) const {
-  auto result = icu4x::capi::icu4x_LocaleFallbacker_for_config_mv1(this->AsFFI(),
-    config.AsFFI());
-  return std::unique_ptr<icu4x::LocaleFallbackerWithConfig>(icu4x::LocaleFallbackerWithConfig::FromFFI(result));
-}
-
-inline const icu4x::capi::LocaleFallbacker* icu4x::LocaleFallbacker::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleFallbacker*>(this);
-}
-
-inline icu4x::capi::LocaleFallbacker* icu4x::LocaleFallbacker::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleFallbacker*>(this);
-}
-
-inline const icu4x::LocaleFallbacker* icu4x::LocaleFallbacker::FromFFI(const icu4x::capi::LocaleFallbacker* ptr) {
-  return reinterpret_cast<const icu4x::LocaleFallbacker*>(ptr);
-}
-
-inline icu4x::LocaleFallbacker* icu4x::LocaleFallbacker::FromFFI(icu4x::capi::LocaleFallbacker* ptr) {
-  return reinterpret_cast<icu4x::LocaleFallbacker*>(ptr);
-}
-
-inline void icu4x::LocaleFallbacker::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleFallbacker_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbacker*>(ptr));
-}
-
-
-#endif // icu4x_LocaleFallbacker_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp
deleted file mode 100644
index 6f0a7f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef icu4x_LocaleFallbackerWithConfig_D_HPP
-#define icu4x_LocaleFallbackerWithConfig_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct LocaleFallbackIterator; }
-class LocaleFallbackIterator;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct LocaleFallbackerWithConfig;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleFallbackerWithConfig {
-public:
-
-  inline std::unique_ptr<icu4x::LocaleFallbackIterator> fallback_for_locale(const icu4x::Locale& locale) const;
-
-  inline const icu4x::capi::LocaleFallbackerWithConfig* AsFFI() const;
-  inline icu4x::capi::LocaleFallbackerWithConfig* AsFFI();
-  inline static const icu4x::LocaleFallbackerWithConfig* FromFFI(const icu4x::capi::LocaleFallbackerWithConfig* ptr);
-  inline static icu4x::LocaleFallbackerWithConfig* FromFFI(icu4x::capi::LocaleFallbackerWithConfig* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  LocaleFallbackerWithConfig() = delete;
-  LocaleFallbackerWithConfig(const icu4x::LocaleFallbackerWithConfig&) = delete;
-  LocaleFallbackerWithConfig(icu4x::LocaleFallbackerWithConfig&&) noexcept = delete;
-  LocaleFallbackerWithConfig operator=(const icu4x::LocaleFallbackerWithConfig&) = delete;
-  LocaleFallbackerWithConfig operator=(icu4x::LocaleFallbackerWithConfig&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_LocaleFallbackerWithConfig_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp
deleted file mode 100644
index 63a8456..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef icu4x_LocaleFallbackerWithConfig_HPP
-#define icu4x_LocaleFallbackerWithConfig_HPP
-
-#include "LocaleFallbackerWithConfig.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Locale.hpp"
-#include "LocaleFallbackIterator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::LocaleFallbackIterator* icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(const icu4x::capi::LocaleFallbackerWithConfig* self, const icu4x::capi::Locale* locale);
-    
-    
-    void icu4x_LocaleFallbackerWithConfig_destroy_mv1(LocaleFallbackerWithConfig* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::LocaleFallbackIterator> icu4x::LocaleFallbackerWithConfig::fallback_for_locale(const icu4x::Locale& locale) const {
-  auto result = icu4x::capi::icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(this->AsFFI(),
-    locale.AsFFI());
-  return std::unique_ptr<icu4x::LocaleFallbackIterator>(icu4x::LocaleFallbackIterator::FromFFI(result));
-}
-
-inline const icu4x::capi::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::LocaleFallbackerWithConfig*>(this);
-}
-
-inline icu4x::capi::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::AsFFI() {
-  return reinterpret_cast<icu4x::capi::LocaleFallbackerWithConfig*>(this);
-}
-
-inline const icu4x::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::FromFFI(const icu4x::capi::LocaleFallbackerWithConfig* ptr) {
-  return reinterpret_cast<const icu4x::LocaleFallbackerWithConfig*>(ptr);
-}
-
-inline icu4x::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::FromFFI(icu4x::capi::LocaleFallbackerWithConfig* ptr) {
-  return reinterpret_cast<icu4x::LocaleFallbackerWithConfig*>(ptr);
-}
-
-inline void icu4x::LocaleFallbackerWithConfig::operator delete(void* ptr) {
-  icu4x::capi::icu4x_LocaleFallbackerWithConfig_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbackerWithConfig*>(ptr));
-}
-
-
-#endif // icu4x_LocaleFallbackerWithConfig_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.d.hpp
deleted file mode 100644
index ab3e63d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_LocaleParseError_D_HPP
-#define icu4x_LocaleParseError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum LocaleParseError {
-      LocaleParseError_Unknown = 0,
-      LocaleParseError_Language = 1,
-      LocaleParseError_Subtag = 2,
-      LocaleParseError_Extension = 3,
-    };
-    
-    typedef struct LocaleParseError_option {union { LocaleParseError ok; }; bool is_ok; } LocaleParseError_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class LocaleParseError {
-public:
-  enum Value {
-    Unknown = 0,
-    Language = 1,
-    Subtag = 2,
-    Extension = 3,
-  };
-
-  LocaleParseError() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr LocaleParseError(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::LocaleParseError AsFFI() const;
-  inline static icu4x::LocaleParseError FromFFI(icu4x::capi::LocaleParseError c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_LocaleParseError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.hpp
deleted file mode 100644
index 812b37c9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/LocaleParseError.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef icu4x_LocaleParseError_HPP
-#define icu4x_LocaleParseError_HPP
-
-#include "LocaleParseError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::LocaleParseError icu4x::LocaleParseError::AsFFI() const {
-  return static_cast<icu4x::capi::LocaleParseError>(value);
-}
-
-inline icu4x::LocaleParseError icu4x::LocaleParseError::FromFFI(icu4x::capi::LocaleParseError c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::LocaleParseError_Unknown:
-    case icu4x::capi::LocaleParseError_Language:
-    case icu4x::capi::LocaleParseError_Subtag:
-    case icu4x::capi::LocaleParseError_Extension:
-      return static_cast<icu4x::LocaleParseError::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_LocaleParseError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.d.hpp
deleted file mode 100644
index 7e74ba13..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_Logger_D_HPP
-#define icu4x_Logger_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct Logger;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Logger {
-public:
-
-  inline static bool init_simple_logger();
-
-  inline const icu4x::capi::Logger* AsFFI() const;
-  inline icu4x::capi::Logger* AsFFI();
-  inline static const icu4x::Logger* FromFFI(const icu4x::capi::Logger* ptr);
-  inline static icu4x::Logger* FromFFI(icu4x::capi::Logger* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Logger() = delete;
-  Logger(const icu4x::Logger&) = delete;
-  Logger(icu4x::Logger&&) noexcept = delete;
-  Logger operator=(const icu4x::Logger&) = delete;
-  Logger operator=(icu4x::Logger&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Logger_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.hpp
deleted file mode 100644
index 4a24fac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Logger.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_Logger_HPP
-#define icu4x_Logger_HPP
-
-#include "Logger.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_Logger_init_simple_logger_mv1(void);
-    
-    
-    void icu4x_Logger_destroy_mv1(Logger* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::Logger::init_simple_logger() {
-  auto result = icu4x::capi::icu4x_Logger_init_simple_logger_mv1();
-  return result;
-}
-
-inline const icu4x::capi::Logger* icu4x::Logger::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Logger*>(this);
-}
-
-inline icu4x::capi::Logger* icu4x::Logger::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Logger*>(this);
-}
-
-inline const icu4x::Logger* icu4x::Logger::FromFFI(const icu4x::capi::Logger* ptr) {
-  return reinterpret_cast<const icu4x::Logger*>(ptr);
-}
-
-inline icu4x::Logger* icu4x::Logger::FromFFI(icu4x::capi::Logger* ptr) {
-  return reinterpret_cast<icu4x::Logger*>(ptr);
-}
-
-inline void icu4x::Logger::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Logger_destroy_mv1(reinterpret_cast<icu4x::capi::Logger*>(ptr));
-}
-
-
-#endif // icu4x_Logger_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.d.hpp
deleted file mode 100644
index 13560a7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.d.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_MeasureUnit_D_HPP
-#define icu4x_MeasureUnit_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct MeasureUnit;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class MeasureUnit {
-public:
-
-  inline const icu4x::capi::MeasureUnit* AsFFI() const;
-  inline icu4x::capi::MeasureUnit* AsFFI();
-  inline static const icu4x::MeasureUnit* FromFFI(const icu4x::capi::MeasureUnit* ptr);
-  inline static icu4x::MeasureUnit* FromFFI(icu4x::capi::MeasureUnit* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  MeasureUnit() = delete;
-  MeasureUnit(const icu4x::MeasureUnit&) = delete;
-  MeasureUnit(icu4x::MeasureUnit&&) noexcept = delete;
-  MeasureUnit operator=(const icu4x::MeasureUnit&) = delete;
-  MeasureUnit operator=(icu4x::MeasureUnit&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_MeasureUnit_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.hpp
deleted file mode 100644
index 9dbf4ae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnit.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef icu4x_MeasureUnit_HPP
-#define icu4x_MeasureUnit_HPP
-
-#include "MeasureUnit.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    void icu4x_MeasureUnit_destroy_mv1(MeasureUnit* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline const icu4x::capi::MeasureUnit* icu4x::MeasureUnit::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::MeasureUnit*>(this);
-}
-
-inline icu4x::capi::MeasureUnit* icu4x::MeasureUnit::AsFFI() {
-  return reinterpret_cast<icu4x::capi::MeasureUnit*>(this);
-}
-
-inline const icu4x::MeasureUnit* icu4x::MeasureUnit::FromFFI(const icu4x::capi::MeasureUnit* ptr) {
-  return reinterpret_cast<const icu4x::MeasureUnit*>(ptr);
-}
-
-inline icu4x::MeasureUnit* icu4x::MeasureUnit::FromFFI(icu4x::capi::MeasureUnit* ptr) {
-  return reinterpret_cast<icu4x::MeasureUnit*>(ptr);
-}
-
-inline void icu4x::MeasureUnit::operator delete(void* ptr) {
-  icu4x::capi::icu4x_MeasureUnit_destroy_mv1(reinterpret_cast<icu4x::capi::MeasureUnit*>(ptr));
-}
-
-
-#endif // icu4x_MeasureUnit_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.d.hpp
deleted file mode 100644
index 03d990f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_MeasureUnitParser_D_HPP
-#define icu4x_MeasureUnitParser_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct MeasureUnit; }
-class MeasureUnit;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct MeasureUnitParser;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class MeasureUnitParser {
-public:
-
-  inline std::unique_ptr<icu4x::MeasureUnit> parse(std::string_view unit_id) const;
-
-  inline const icu4x::capi::MeasureUnitParser* AsFFI() const;
-  inline icu4x::capi::MeasureUnitParser* AsFFI();
-  inline static const icu4x::MeasureUnitParser* FromFFI(const icu4x::capi::MeasureUnitParser* ptr);
-  inline static icu4x::MeasureUnitParser* FromFFI(icu4x::capi::MeasureUnitParser* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  MeasureUnitParser() = delete;
-  MeasureUnitParser(const icu4x::MeasureUnitParser&) = delete;
-  MeasureUnitParser(icu4x::MeasureUnitParser&&) noexcept = delete;
-  MeasureUnitParser operator=(const icu4x::MeasureUnitParser&) = delete;
-  MeasureUnitParser operator=(icu4x::MeasureUnitParser&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_MeasureUnitParser_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.hpp
deleted file mode 100644
index 3d96216..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/MeasureUnitParser.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_MeasureUnitParser_HPP
-#define icu4x_MeasureUnitParser_HPP
-
-#include "MeasureUnitParser.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "MeasureUnit.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::MeasureUnit* icu4x_MeasureUnitParser_parse_mv1(const icu4x::capi::MeasureUnitParser* self, diplomat::capi::DiplomatStringView unit_id);
-    
-    
-    void icu4x_MeasureUnitParser_destroy_mv1(MeasureUnitParser* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::MeasureUnit> icu4x::MeasureUnitParser::parse(std::string_view unit_id) const {
-  auto result = icu4x::capi::icu4x_MeasureUnitParser_parse_mv1(this->AsFFI(),
-    {unit_id.data(), unit_id.size()});
-  return std::unique_ptr<icu4x::MeasureUnit>(icu4x::MeasureUnit::FromFFI(result));
-}
-
-inline const icu4x::capi::MeasureUnitParser* icu4x::MeasureUnitParser::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::MeasureUnitParser*>(this);
-}
-
-inline icu4x::capi::MeasureUnitParser* icu4x::MeasureUnitParser::AsFFI() {
-  return reinterpret_cast<icu4x::capi::MeasureUnitParser*>(this);
-}
-
-inline const icu4x::MeasureUnitParser* icu4x::MeasureUnitParser::FromFFI(const icu4x::capi::MeasureUnitParser* ptr) {
-  return reinterpret_cast<const icu4x::MeasureUnitParser*>(ptr);
-}
-
-inline icu4x::MeasureUnitParser* icu4x::MeasureUnitParser::FromFFI(icu4x::capi::MeasureUnitParser* ptr) {
-  return reinterpret_cast<icu4x::MeasureUnitParser*>(ptr);
-}
-
-inline void icu4x::MeasureUnitParser::operator delete(void* ptr) {
-  icu4x::capi::icu4x_MeasureUnitParser_destroy_mv1(reinterpret_cast<icu4x::capi::MeasureUnitParser*>(ptr));
-}
-
-
-#endif // icu4x_MeasureUnitParser_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.d.hpp
deleted file mode 100644
index 8f837b0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.d.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef icu4x_NoCalendarFormatter_D_HPP
-#define icu4x_NoCalendarFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct NoCalendarFormatter; }
-class NoCalendarFormatter;
-namespace capi { struct Time; }
-class Time;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct NoCalendarFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class NoCalendarFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline std::string format(const icu4x::Time& value) const;
-
-  inline const icu4x::capi::NoCalendarFormatter* AsFFI() const;
-  inline icu4x::capi::NoCalendarFormatter* AsFFI();
-  inline static const icu4x::NoCalendarFormatter* FromFFI(const icu4x::capi::NoCalendarFormatter* ptr);
-  inline static icu4x::NoCalendarFormatter* FromFFI(icu4x::capi::NoCalendarFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  NoCalendarFormatter() = delete;
-  NoCalendarFormatter(const icu4x::NoCalendarFormatter&) = delete;
-  NoCalendarFormatter(icu4x::NoCalendarFormatter&&) noexcept = delete;
-  NoCalendarFormatter operator=(const icu4x::NoCalendarFormatter&) = delete;
-  NoCalendarFormatter operator=(icu4x::NoCalendarFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_NoCalendarFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.hpp
deleted file mode 100644
index 8c135b7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/NoCalendarFormatter.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef icu4x_NoCalendarFormatter_HPP
-#define icu4x_NoCalendarFormatter_HPP
-
-#include "NoCalendarFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "Locale.hpp"
-#include "Time.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_NoCalendarFormatter_create_with_length_mv1_result {union {icu4x::capi::NoCalendarFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_NoCalendarFormatter_create_with_length_mv1_result;
-    icu4x_NoCalendarFormatter_create_with_length_mv1_result icu4x_NoCalendarFormatter_create_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result {union {icu4x::capi::NoCalendarFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result;
-    icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1_result icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    void icu4x_NoCalendarFormatter_format_mv1(const icu4x::capi::NoCalendarFormatter* self, const icu4x::capi::Time* value, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_NoCalendarFormatter_destroy_mv1(NoCalendarFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::NoCalendarFormatter::create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_NoCalendarFormatter_create_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::NoCalendarFormatter>>(std::unique_ptr<icu4x::NoCalendarFormatter>(icu4x::NoCalendarFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::NoCalendarFormatter::create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::NoCalendarFormatter>>(std::unique_ptr<icu4x::NoCalendarFormatter>(icu4x::NoCalendarFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::NoCalendarFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline std::string icu4x::NoCalendarFormatter::format(const icu4x::Time& value) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_NoCalendarFormatter_format_mv1(this->AsFFI(),
-    value.AsFFI(),
-    &write);
-  return output;
-}
-
-inline const icu4x::capi::NoCalendarFormatter* icu4x::NoCalendarFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::NoCalendarFormatter*>(this);
-}
-
-inline icu4x::capi::NoCalendarFormatter* icu4x::NoCalendarFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::NoCalendarFormatter*>(this);
-}
-
-inline const icu4x::NoCalendarFormatter* icu4x::NoCalendarFormatter::FromFFI(const icu4x::capi::NoCalendarFormatter* ptr) {
-  return reinterpret_cast<const icu4x::NoCalendarFormatter*>(ptr);
-}
-
-inline icu4x::NoCalendarFormatter* icu4x::NoCalendarFormatter::FromFFI(icu4x::capi::NoCalendarFormatter* ptr) {
-  return reinterpret_cast<icu4x::NoCalendarFormatter*>(ptr);
-}
-
-inline void icu4x::NoCalendarFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_NoCalendarFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::NoCalendarFormatter*>(ptr));
-}
-
-
-#endif // icu4x_NoCalendarFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.d.hpp
deleted file mode 100644
index 11ea674f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.d.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef icu4x_PluralCategories_D_HPP
-#define icu4x_PluralCategories_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct PluralCategories {
-      bool zero;
-      bool one;
-      bool two;
-      bool few;
-      bool many;
-      bool other;
-    };
-    
-    typedef struct PluralCategories_option {union { PluralCategories ok; }; bool is_ok; } PluralCategories_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct PluralCategories {
-  bool zero;
-  bool one;
-  bool two;
-  bool few;
-  bool many;
-  bool other;
-
-  inline icu4x::capi::PluralCategories AsFFI() const;
-  inline static icu4x::PluralCategories FromFFI(icu4x::capi::PluralCategories c_struct);
-};
-
-} // namespace
-#endif // icu4x_PluralCategories_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.hpp
deleted file mode 100644
index ba6b024..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategories.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_PluralCategories_HPP
-#define icu4x_PluralCategories_HPP
-
-#include "PluralCategories.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::PluralCategories icu4x::PluralCategories::AsFFI() const {
-  return icu4x::capi::PluralCategories {
-    /* .zero = */ zero,
-    /* .one = */ one,
-    /* .two = */ two,
-    /* .few = */ few,
-    /* .many = */ many,
-    /* .other = */ other,
-  };
-}
-
-inline icu4x::PluralCategories icu4x::PluralCategories::FromFFI(icu4x::capi::PluralCategories c_struct) {
-  return icu4x::PluralCategories {
-    /* .zero = */ c_struct.zero,
-    /* .one = */ c_struct.one,
-    /* .two = */ c_struct.two,
-    /* .few = */ c_struct.few,
-    /* .many = */ c_struct.many,
-    /* .other = */ c_struct.other,
-  };
-}
-
-
-#endif // icu4x_PluralCategories_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.d.hpp
deleted file mode 100644
index e997cc1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_PluralCategory_D_HPP
-#define icu4x_PluralCategory_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class PluralCategory;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum PluralCategory {
-      PluralCategory_Zero = 0,
-      PluralCategory_One = 1,
-      PluralCategory_Two = 2,
-      PluralCategory_Few = 3,
-      PluralCategory_Many = 4,
-      PluralCategory_Other = 5,
-    };
-    
-    typedef struct PluralCategory_option {union { PluralCategory ok; }; bool is_ok; } PluralCategory_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class PluralCategory {
-public:
-  enum Value {
-    Zero = 0,
-    One = 1,
-    Two = 2,
-    Few = 3,
-    Many = 4,
-    Other = 5,
-  };
-
-  PluralCategory() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr PluralCategory(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static std::optional<icu4x::PluralCategory> get_for_cldr_string(std::string_view s);
-
-  inline icu4x::capi::PluralCategory AsFFI() const;
-  inline static icu4x::PluralCategory FromFFI(icu4x::capi::PluralCategory c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_PluralCategory_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.hpp
deleted file mode 100644
index 57b8b1e1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralCategory.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef icu4x_PluralCategory_HPP
-#define icu4x_PluralCategory_HPP
-
-#include "PluralCategory.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_PluralCategory_get_for_cldr_string_mv1_result {union {icu4x::capi::PluralCategory ok; }; bool is_ok;} icu4x_PluralCategory_get_for_cldr_string_mv1_result;
-    icu4x_PluralCategory_get_for_cldr_string_mv1_result icu4x_PluralCategory_get_for_cldr_string_mv1(diplomat::capi::DiplomatStringView s);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::PluralCategory icu4x::PluralCategory::AsFFI() const {
-  return static_cast<icu4x::capi::PluralCategory>(value);
-}
-
-inline icu4x::PluralCategory icu4x::PluralCategory::FromFFI(icu4x::capi::PluralCategory c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::PluralCategory_Zero:
-    case icu4x::capi::PluralCategory_One:
-    case icu4x::capi::PluralCategory_Two:
-    case icu4x::capi::PluralCategory_Few:
-    case icu4x::capi::PluralCategory_Many:
-    case icu4x::capi::PluralCategory_Other:
-      return static_cast<icu4x::PluralCategory::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline std::optional<icu4x::PluralCategory> icu4x::PluralCategory::get_for_cldr_string(std::string_view s) {
-  auto result = icu4x::capi::icu4x_PluralCategory_get_for_cldr_string_mv1({s.data(), s.size()});
-  return result.is_ok ? std::optional<icu4x::PluralCategory>(icu4x::PluralCategory::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_PluralCategory_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.d.hpp
deleted file mode 100644
index bdd3b0b0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_PluralOperands_D_HPP
-#define icu4x_PluralOperands_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Decimal; }
-class Decimal;
-namespace capi { struct PluralOperands; }
-class PluralOperands;
-class FixedDecimalParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct PluralOperands;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class PluralOperands {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError> from_string(std::string_view s);
-
-  inline static std::unique_ptr<icu4x::PluralOperands> from(int64_t i);
-
-  inline static std::unique_ptr<icu4x::PluralOperands> from_fixed_decimal(const icu4x::Decimal& x);
-
-  inline const icu4x::capi::PluralOperands* AsFFI() const;
-  inline icu4x::capi::PluralOperands* AsFFI();
-  inline static const icu4x::PluralOperands* FromFFI(const icu4x::capi::PluralOperands* ptr);
-  inline static icu4x::PluralOperands* FromFFI(icu4x::capi::PluralOperands* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  PluralOperands() = delete;
-  PluralOperands(const icu4x::PluralOperands&) = delete;
-  PluralOperands(icu4x::PluralOperands&&) noexcept = delete;
-  PluralOperands operator=(const icu4x::PluralOperands&) = delete;
-  PluralOperands operator=(icu4x::PluralOperands&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_PluralOperands_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.hpp
deleted file mode 100644
index d5ab53fa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralOperands.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef icu4x_PluralOperands_HPP
-#define icu4x_PluralOperands_HPP
-
-#include "PluralOperands.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Decimal.hpp"
-#include "FixedDecimalParseError.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_PluralOperands_from_string_mv1_result {union {icu4x::capi::PluralOperands* ok; icu4x::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_PluralOperands_from_string_mv1_result;
-    icu4x_PluralOperands_from_string_mv1_result icu4x_PluralOperands_from_string_mv1(diplomat::capi::DiplomatStringView s);
-    
-    icu4x::capi::PluralOperands* icu4x_PluralOperands_from_int64_mv1(int64_t i);
-    
-    icu4x::capi::PluralOperands* icu4x_PluralOperands_from_fixed_decimal_mv1(const icu4x::capi::Decimal* x);
-    
-    
-    void icu4x_PluralOperands_destroy_mv1(PluralOperands* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError> icu4x::PluralOperands::from_string(std::string_view s) {
-  auto result = icu4x::capi::icu4x_PluralOperands_from_string_mv1({s.data(), s.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<icu4x::PluralOperands>>(std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Err<icu4x::FixedDecimalParseError>(icu4x::FixedDecimalParseError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PluralOperands> icu4x::PluralOperands::from(int64_t i) {
-  auto result = icu4x::capi::icu4x_PluralOperands_from_int64_mv1(i);
-  return std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::PluralOperands> icu4x::PluralOperands::from_fixed_decimal(const icu4x::Decimal& x) {
-  auto result = icu4x::capi::icu4x_PluralOperands_from_fixed_decimal_mv1(x.AsFFI());
-  return std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result));
-}
-
-inline const icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::PluralOperands*>(this);
-}
-
-inline icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() {
-  return reinterpret_cast<icu4x::capi::PluralOperands*>(this);
-}
-
-inline const icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(const icu4x::capi::PluralOperands* ptr) {
-  return reinterpret_cast<const icu4x::PluralOperands*>(ptr);
-}
-
-inline icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(icu4x::capi::PluralOperands* ptr) {
-  return reinterpret_cast<icu4x::PluralOperands*>(ptr);
-}
-
-inline void icu4x::PluralOperands::operator delete(void* ptr) {
-  icu4x::capi::icu4x_PluralOperands_destroy_mv1(reinterpret_cast<icu4x::capi::PluralOperands*>(ptr));
-}
-
-
-#endif // icu4x_PluralOperands_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.d.hpp
deleted file mode 100644
index 81958bf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.d.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef icu4x_PluralRules_D_HPP
-#define icu4x_PluralRules_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct PluralOperands; }
-class PluralOperands;
-namespace capi { struct PluralRules; }
-class PluralRules;
-struct PluralCategories;
-class DataError;
-class PluralCategory;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct PluralRules;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class PluralRules {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_cardinal(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_cardinal_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_ordinal(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_ordinal_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline icu4x::PluralCategory category_for(const icu4x::PluralOperands& op) const;
-
-  inline icu4x::PluralCategories categories() const;
-
-  inline const icu4x::capi::PluralRules* AsFFI() const;
-  inline icu4x::capi::PluralRules* AsFFI();
-  inline static const icu4x::PluralRules* FromFFI(const icu4x::capi::PluralRules* ptr);
-  inline static icu4x::PluralRules* FromFFI(icu4x::capi::PluralRules* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  PluralRules() = delete;
-  PluralRules(const icu4x::PluralRules&) = delete;
-  PluralRules(icu4x::PluralRules&&) noexcept = delete;
-  PluralRules operator=(const icu4x::PluralRules&) = delete;
-  PluralRules operator=(icu4x::PluralRules&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_PluralRules_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.hpp
deleted file mode 100644
index 48cb0650..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PluralRules.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef icu4x_PluralRules_HPP
-#define icu4x_PluralRules_HPP
-
-#include "PluralRules.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "PluralCategories.hpp"
-#include "PluralCategory.hpp"
-#include "PluralOperands.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_PluralRules_create_cardinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_mv1_result;
-    icu4x_PluralRules_create_cardinal_mv1_result icu4x_PluralRules_create_cardinal_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_PluralRules_create_cardinal_with_provider_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_with_provider_mv1_result;
-    icu4x_PluralRules_create_cardinal_with_provider_mv1_result icu4x_PluralRules_create_cardinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_PluralRules_create_ordinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_mv1_result;
-    icu4x_PluralRules_create_ordinal_mv1_result icu4x_PluralRules_create_ordinal_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_PluralRules_create_ordinal_with_provider_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_with_provider_mv1_result;
-    icu4x_PluralRules_create_ordinal_with_provider_mv1_result icu4x_PluralRules_create_ordinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::PluralCategory icu4x_PluralRules_category_for_mv1(const icu4x::capi::PluralRules* self, const icu4x::capi::PluralOperands* op);
-    
-    icu4x::capi::PluralCategories icu4x_PluralRules_categories_mv1(const icu4x::capi::PluralRules* self);
-    
-    
-    void icu4x_PluralRules_destroy_mv1(PluralRules* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_cardinal(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_PluralRules_create_cardinal_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_cardinal_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_PluralRules_create_cardinal_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_ordinal(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_PluralRules_create_ordinal_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_ordinal_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_PluralRules_create_ordinal_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline icu4x::PluralCategory icu4x::PluralRules::category_for(const icu4x::PluralOperands& op) const {
-  auto result = icu4x::capi::icu4x_PluralRules_category_for_mv1(this->AsFFI(),
-    op.AsFFI());
-  return icu4x::PluralCategory::FromFFI(result);
-}
-
-inline icu4x::PluralCategories icu4x::PluralRules::categories() const {
-  auto result = icu4x::capi::icu4x_PluralRules_categories_mv1(this->AsFFI());
-  return icu4x::PluralCategories::FromFFI(result);
-}
-
-inline const icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::PluralRules*>(this);
-}
-
-inline icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() {
-  return reinterpret_cast<icu4x::capi::PluralRules*>(this);
-}
-
-inline const icu4x::PluralRules* icu4x::PluralRules::FromFFI(const icu4x::capi::PluralRules* ptr) {
-  return reinterpret_cast<const icu4x::PluralRules*>(ptr);
-}
-
-inline icu4x::PluralRules* icu4x::PluralRules::FromFFI(icu4x::capi::PluralRules* ptr) {
-  return reinterpret_cast<icu4x::PluralRules*>(ptr);
-}
-
-inline void icu4x::PluralRules::operator delete(void* ptr) {
-  icu4x::capi::icu4x_PluralRules_destroy_mv1(reinterpret_cast<icu4x::capi::PluralRules*>(ptr));
-}
-
-
-#endif // icu4x_PluralRules_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp
deleted file mode 100644
index e1003064a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef icu4x_PropertyValueNameToEnumMapper_D_HPP
-#define icu4x_PropertyValueNameToEnumMapper_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct PropertyValueNameToEnumMapper; }
-class PropertyValueNameToEnumMapper;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct PropertyValueNameToEnumMapper;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class PropertyValueNameToEnumMapper {
-public:
-
-  inline int16_t get_strict(std::string_view name) const;
-
-  inline int16_t get_loose(std::string_view name) const;
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_general_category();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_general_category_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_hangul_syllable_type();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_hangul_syllable_type_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_east_asian_width();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_east_asian_width_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_bidi_class();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_bidi_class_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_indic_syllabic_category();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_indic_syllabic_category_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_line_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_line_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_grapheme_cluster_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_grapheme_cluster_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_word_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_word_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_sentence_break();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_sentence_break_with_provider(const icu4x::DataProvider& provider);
-
-  inline static std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> create_script();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> create_script_with_provider(const icu4x::DataProvider& provider);
-
-  inline const icu4x::capi::PropertyValueNameToEnumMapper* AsFFI() const;
-  inline icu4x::capi::PropertyValueNameToEnumMapper* AsFFI();
-  inline static const icu4x::PropertyValueNameToEnumMapper* FromFFI(const icu4x::capi::PropertyValueNameToEnumMapper* ptr);
-  inline static icu4x::PropertyValueNameToEnumMapper* FromFFI(icu4x::capi::PropertyValueNameToEnumMapper* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  PropertyValueNameToEnumMapper() = delete;
-  PropertyValueNameToEnumMapper(const icu4x::PropertyValueNameToEnumMapper&) = delete;
-  PropertyValueNameToEnumMapper(icu4x::PropertyValueNameToEnumMapper&&) noexcept = delete;
-  PropertyValueNameToEnumMapper operator=(const icu4x::PropertyValueNameToEnumMapper&) = delete;
-  PropertyValueNameToEnumMapper operator=(icu4x::PropertyValueNameToEnumMapper&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_PropertyValueNameToEnumMapper_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp
deleted file mode 100644
index 957dae6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp
+++ /dev/null
@@ -1,216 +0,0 @@
-#ifndef icu4x_PropertyValueNameToEnumMapper_HPP
-#define icu4x_PropertyValueNameToEnumMapper_HPP
-
-#include "PropertyValueNameToEnumMapper.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int16_t icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(const icu4x::capi::PropertyValueNameToEnumMapper* self, diplomat::capi::DiplomatStringView name);
-    
-    int16_t icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(const icu4x::capi::PropertyValueNameToEnumMapper* self, diplomat::capi::DiplomatStringView name);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_general_category_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_bidi_class_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_line_break_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_word_break_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_sentence_break_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::PropertyValueNameToEnumMapper* icu4x_PropertyValueNameToEnumMapper_create_script_mv1(void);
-    
-    typedef struct icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result;
-    icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1_result icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    
-    void icu4x_PropertyValueNameToEnumMapper_destroy_mv1(PropertyValueNameToEnumMapper* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int16_t icu4x::PropertyValueNameToEnumMapper::get_strict(std::string_view name) const {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(this->AsFFI(),
-    {name.data(), name.size()});
-  return result;
-}
-
-inline int16_t icu4x::PropertyValueNameToEnumMapper::get_loose(std::string_view name) const {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(this->AsFFI(),
-    {name.data(), name.size()});
-  return result;
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_general_category() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_general_category_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_general_category_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_hangul_syllable_type() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_hangul_syllable_type_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_east_asian_width() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_east_asian_width_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_bidi_class() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_bidi_class_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_bidi_class_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_indic_syllabic_category() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_indic_syllabic_category_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_line_break() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_line_break_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_line_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_grapheme_cluster_break() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_grapheme_cluster_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_word_break() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_word_break_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_word_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_sentence_break() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_sentence_break_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_sentence_break_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::PropertyValueNameToEnumMapper> icu4x::PropertyValueNameToEnumMapper::create_script() {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_script_mv1();
-  return std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::create_script_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::PropertyValueNameToEnumMapper*>(this);
-}
-
-inline icu4x::capi::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::AsFFI() {
-  return reinterpret_cast<icu4x::capi::PropertyValueNameToEnumMapper*>(this);
-}
-
-inline const icu4x::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::FromFFI(const icu4x::capi::PropertyValueNameToEnumMapper* ptr) {
-  return reinterpret_cast<const icu4x::PropertyValueNameToEnumMapper*>(ptr);
-}
-
-inline icu4x::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::FromFFI(icu4x::capi::PropertyValueNameToEnumMapper* ptr) {
-  return reinterpret_cast<icu4x::PropertyValueNameToEnumMapper*>(ptr);
-}
-
-inline void icu4x::PropertyValueNameToEnumMapper::operator delete(void* ptr) {
-  icu4x::capi::icu4x_PropertyValueNameToEnumMapper_destroy_mv1(reinterpret_cast<icu4x::capi::PropertyValueNameToEnumMapper*>(ptr));
-}
-
-
-#endif // icu4x_PropertyValueNameToEnumMapper_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.d.hpp
deleted file mode 100644
index a40d339..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.d.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_RegionDisplayNames_D_HPP
-#define icu4x_RegionDisplayNames_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct RegionDisplayNames; }
-class RegionDisplayNames;
-struct DisplayNamesOptionsV1;
-class DataError;
-class LocaleParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct RegionDisplayNames;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class RegionDisplayNames {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> create_v1(const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options);
-
-  inline diplomat::result<std::string, icu4x::LocaleParseError> of(std::string_view region) const;
-
-  inline const icu4x::capi::RegionDisplayNames* AsFFI() const;
-  inline icu4x::capi::RegionDisplayNames* AsFFI();
-  inline static const icu4x::RegionDisplayNames* FromFFI(const icu4x::capi::RegionDisplayNames* ptr);
-  inline static icu4x::RegionDisplayNames* FromFFI(icu4x::capi::RegionDisplayNames* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  RegionDisplayNames() = delete;
-  RegionDisplayNames(const icu4x::RegionDisplayNames&) = delete;
-  RegionDisplayNames(icu4x::RegionDisplayNames&&) noexcept = delete;
-  RegionDisplayNames operator=(const icu4x::RegionDisplayNames&) = delete;
-  RegionDisplayNames operator=(icu4x::RegionDisplayNames&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_RegionDisplayNames_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.hpp
deleted file mode 100644
index 1f5a9aac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/RegionDisplayNames.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef icu4x_RegionDisplayNames_HPP
-#define icu4x_RegionDisplayNames_HPP
-
-#include "RegionDisplayNames.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "DisplayNamesOptionsV1.hpp"
-#include "Locale.hpp"
-#include "LocaleParseError.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_RegionDisplayNames_create_v1_mv1_result {union {icu4x::capi::RegionDisplayNames* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_v1_mv1_result;
-    icu4x_RegionDisplayNames_create_v1_mv1_result icu4x_RegionDisplayNames_create_v1_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DisplayNamesOptionsV1 options);
-    
-    typedef struct icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result {union {icu4x::capi::RegionDisplayNames* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result;
-    icu4x_RegionDisplayNames_create_v1_with_provider_mv1_result icu4x_RegionDisplayNames_create_v1_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DisplayNamesOptionsV1 options);
-    
-    typedef struct icu4x_RegionDisplayNames_of_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_RegionDisplayNames_of_mv1_result;
-    icu4x_RegionDisplayNames_of_mv1_result icu4x_RegionDisplayNames_of_mv1(const icu4x::capi::RegionDisplayNames* self, diplomat::capi::DiplomatStringView region, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_RegionDisplayNames_destroy_mv1(RegionDisplayNames* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> icu4x::RegionDisplayNames::create_v1(const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_RegionDisplayNames_create_v1_mv1(locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::RegionDisplayNames>>(std::unique_ptr<icu4x::RegionDisplayNames>(icu4x::RegionDisplayNames::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> icu4x::RegionDisplayNames::create_v1_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options) {
-  auto result = icu4x::capi::icu4x_RegionDisplayNames_create_v1_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    options.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::RegionDisplayNames>>(std::unique_ptr<icu4x::RegionDisplayNames>(icu4x::RegionDisplayNames::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::LocaleParseError> icu4x::RegionDisplayNames::of(std::string_view region) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_RegionDisplayNames_of_mv1(this->AsFFI(),
-    {region.data(), region.size()},
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::RegionDisplayNames* icu4x::RegionDisplayNames::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::RegionDisplayNames*>(this);
-}
-
-inline icu4x::capi::RegionDisplayNames* icu4x::RegionDisplayNames::AsFFI() {
-  return reinterpret_cast<icu4x::capi::RegionDisplayNames*>(this);
-}
-
-inline const icu4x::RegionDisplayNames* icu4x::RegionDisplayNames::FromFFI(const icu4x::capi::RegionDisplayNames* ptr) {
-  return reinterpret_cast<const icu4x::RegionDisplayNames*>(ptr);
-}
-
-inline icu4x::RegionDisplayNames* icu4x::RegionDisplayNames::FromFFI(icu4x::capi::RegionDisplayNames* ptr) {
-  return reinterpret_cast<icu4x::RegionDisplayNames*>(ptr);
-}
-
-inline void icu4x::RegionDisplayNames::operator delete(void* ptr) {
-  icu4x::capi::icu4x_RegionDisplayNames_destroy_mv1(reinterpret_cast<icu4x::capi::RegionDisplayNames*>(ptr));
-}
-
-
-#endif // icu4x_RegionDisplayNames_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp
deleted file mode 100644
index f058958..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_ReorderedIndexMap_D_HPP
-#define icu4x_ReorderedIndexMap_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct ReorderedIndexMap;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ReorderedIndexMap {
-public:
-
-  inline diplomat::span<const size_t> as_slice() const;
-
-  inline size_t len() const;
-
-  inline bool is_empty() const;
-
-  inline size_t get(size_t index) const;
-
-  inline const icu4x::capi::ReorderedIndexMap* AsFFI() const;
-  inline icu4x::capi::ReorderedIndexMap* AsFFI();
-  inline static const icu4x::ReorderedIndexMap* FromFFI(const icu4x::capi::ReorderedIndexMap* ptr);
-  inline static icu4x::ReorderedIndexMap* FromFFI(icu4x::capi::ReorderedIndexMap* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ReorderedIndexMap() = delete;
-  ReorderedIndexMap(const icu4x::ReorderedIndexMap&) = delete;
-  ReorderedIndexMap(icu4x::ReorderedIndexMap&&) noexcept = delete;
-  ReorderedIndexMap operator=(const icu4x::ReorderedIndexMap&) = delete;
-  ReorderedIndexMap operator=(icu4x::ReorderedIndexMap&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ReorderedIndexMap_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.hpp
deleted file mode 100644
index 87bdede..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ReorderedIndexMap.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef icu4x_ReorderedIndexMap_HPP
-#define icu4x_ReorderedIndexMap_HPP
-
-#include "ReorderedIndexMap.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    diplomat::capi::DiplomatUsizeView icu4x_ReorderedIndexMap_as_slice_mv1(const icu4x::capi::ReorderedIndexMap* self);
-    
-    size_t icu4x_ReorderedIndexMap_len_mv1(const icu4x::capi::ReorderedIndexMap* self);
-    
-    bool icu4x_ReorderedIndexMap_is_empty_mv1(const icu4x::capi::ReorderedIndexMap* self);
-    
-    size_t icu4x_ReorderedIndexMap_get_mv1(const icu4x::capi::ReorderedIndexMap* self, size_t index);
-    
-    
-    void icu4x_ReorderedIndexMap_destroy_mv1(ReorderedIndexMap* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::span<const size_t> icu4x::ReorderedIndexMap::as_slice() const {
-  auto result = icu4x::capi::icu4x_ReorderedIndexMap_as_slice_mv1(this->AsFFI());
-  return diplomat::span<const size_t>(result.data, result.len);
-}
-
-inline size_t icu4x::ReorderedIndexMap::len() const {
-  auto result = icu4x::capi::icu4x_ReorderedIndexMap_len_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::ReorderedIndexMap::is_empty() const {
-  auto result = icu4x::capi::icu4x_ReorderedIndexMap_is_empty_mv1(this->AsFFI());
-  return result;
-}
-
-inline size_t icu4x::ReorderedIndexMap::get(size_t index) const {
-  auto result = icu4x::capi::icu4x_ReorderedIndexMap_get_mv1(this->AsFFI(),
-    index);
-  return result;
-}
-
-inline const icu4x::capi::ReorderedIndexMap* icu4x::ReorderedIndexMap::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ReorderedIndexMap*>(this);
-}
-
-inline icu4x::capi::ReorderedIndexMap* icu4x::ReorderedIndexMap::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ReorderedIndexMap*>(this);
-}
-
-inline const icu4x::ReorderedIndexMap* icu4x::ReorderedIndexMap::FromFFI(const icu4x::capi::ReorderedIndexMap* ptr) {
-  return reinterpret_cast<const icu4x::ReorderedIndexMap*>(ptr);
-}
-
-inline icu4x::ReorderedIndexMap* icu4x::ReorderedIndexMap::FromFFI(icu4x::capi::ReorderedIndexMap* ptr) {
-  return reinterpret_cast<icu4x::ReorderedIndexMap*>(ptr);
-}
-
-inline void icu4x::ReorderedIndexMap::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ReorderedIndexMap_destroy_mv1(reinterpret_cast<icu4x::capi::ReorderedIndexMap*>(ptr));
-}
-
-
-#endif // icu4x_ReorderedIndexMap_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.d.hpp
deleted file mode 100644
index 5ba42c7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.d.hpp
+++ /dev/null
@@ -1,387 +0,0 @@
-#ifndef icu4x_Script_D_HPP
-#define icu4x_Script_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class Script;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum Script {
-      Script_Adlam = 167,
-      Script_Ahom = 161,
-      Script_AnatolianHieroglyphs = 156,
-      Script_Arabic = 2,
-      Script_Armenian = 3,
-      Script_Avestan = 117,
-      Script_Balinese = 62,
-      Script_Bamum = 130,
-      Script_BassaVah = 134,
-      Script_Batak = 63,
-      Script_Bengali = 4,
-      Script_Bhaiksuki = 168,
-      Script_Bopomofo = 5,
-      Script_Brahmi = 65,
-      Script_Braille = 46,
-      Script_Buginese = 55,
-      Script_Buhid = 44,
-      Script_CanadianAboriginal = 40,
-      Script_Carian = 104,
-      Script_CaucasianAlbanian = 159,
-      Script_Chakma = 118,
-      Script_Cham = 66,
-      Script_Cherokee = 6,
-      Script_Chorasmian = 189,
-      Script_Common = 0,
-      Script_Coptic = 7,
-      Script_Cuneiform = 101,
-      Script_Cypriot = 47,
-      Script_CyproMinoan = 193,
-      Script_Cyrillic = 8,
-      Script_Deseret = 9,
-      Script_Devanagari = 10,
-      Script_DivesAkuru = 190,
-      Script_Dogra = 178,
-      Script_Duployan = 135,
-      Script_EgyptianHieroglyphs = 71,
-      Script_Elbasan = 136,
-      Script_Elymaic = 185,
-      Script_Ethiopian = 11,
-      Script_Georgian = 12,
-      Script_Glagolitic = 56,
-      Script_Gothic = 13,
-      Script_Grantha = 137,
-      Script_Greek = 14,
-      Script_Gujarati = 15,
-      Script_GunjalaGondi = 179,
-      Script_Gurmukhi = 16,
-      Script_Han = 17,
-      Script_Hangul = 18,
-      Script_HanifiRohingya = 182,
-      Script_Hanunoo = 43,
-      Script_Hatran = 162,
-      Script_Hebrew = 19,
-      Script_Hiragana = 20,
-      Script_ImperialAramaic = 116,
-      Script_Inherited = 1,
-      Script_InscriptionalPahlavi = 122,
-      Script_InscriptionalParthian = 125,
-      Script_Javanese = 78,
-      Script_Kaithi = 120,
-      Script_Kannada = 21,
-      Script_Katakana = 22,
-      Script_Kawi = 198,
-      Script_KayahLi = 79,
-      Script_Kharoshthi = 57,
-      Script_KhitanSmallScript = 191,
-      Script_Khmer = 23,
-      Script_Khojki = 157,
-      Script_Khudawadi = 145,
-      Script_Lao = 24,
-      Script_Latin = 25,
-      Script_Lepcha = 82,
-      Script_Limbu = 48,
-      Script_LinearA = 83,
-      Script_LinearB = 49,
-      Script_Lisu = 131,
-      Script_Lycian = 107,
-      Script_Lydian = 108,
-      Script_Mahajani = 160,
-      Script_Makasar = 180,
-      Script_Malayalam = 26,
-      Script_Mandaic = 84,
-      Script_Manichaean = 121,
-      Script_Marchen = 169,
-      Script_MasaramGondi = 175,
-      Script_Medefaidrin = 181,
-      Script_MeeteiMayek = 115,
-      Script_MendeKikakui = 140,
-      Script_MeroiticCursive = 141,
-      Script_MeroiticHieroglyphs = 86,
-      Script_Miao = 92,
-      Script_Modi = 163,
-      Script_Mongolian = 27,
-      Script_Mro = 149,
-      Script_Multani = 164,
-      Script_Myanmar = 28,
-      Script_Nabataean = 143,
-      Script_NagMundari = 199,
-      Script_Nandinagari = 187,
-      Script_Nastaliq = 200,
-      Script_NewTaiLue = 59,
-      Script_Newa = 170,
-      Script_Nko = 87,
-      Script_Nushu = 150,
-      Script_NyiakengPuachueHmong = 186,
-      Script_Ogham = 29,
-      Script_OlChiki = 109,
-      Script_OldHungarian = 76,
-      Script_OldItalic = 30,
-      Script_OldNorthArabian = 142,
-      Script_OldPermic = 89,
-      Script_OldPersian = 61,
-      Script_OldSogdian = 184,
-      Script_OldSouthArabian = 133,
-      Script_OldTurkic = 88,
-      Script_OldUyghur = 194,
-      Script_Oriya = 31,
-      Script_Osage = 171,
-      Script_Osmanya = 50,
-      Script_PahawhHmong = 75,
-      Script_Palmyrene = 144,
-      Script_PauCinHau = 165,
-      Script_PhagsPa = 90,
-      Script_Phoenician = 91,
-      Script_PsalterPahlavi = 123,
-      Script_Rejang = 110,
-      Script_Runic = 32,
-      Script_Samaritan = 126,
-      Script_Saurashtra = 111,
-      Script_Sharada = 151,
-      Script_Shavian = 51,
-      Script_Siddham = 166,
-      Script_SignWriting = 112,
-      Script_Sinhala = 33,
-      Script_Sogdian = 183,
-      Script_SoraSompeng = 152,
-      Script_Soyombo = 176,
-      Script_Sundanese = 113,
-      Script_SylotiNagri = 58,
-      Script_Syriac = 34,
-      Script_Tagalog = 42,
-      Script_Tagbanwa = 45,
-      Script_TaiLe = 52,
-      Script_TaiTham = 106,
-      Script_TaiViet = 127,
-      Script_Takri = 153,
-      Script_Tamil = 35,
-      Script_Tangsa = 195,
-      Script_Tangut = 154,
-      Script_Telugu = 36,
-      Script_Thaana = 37,
-      Script_Thai = 38,
-      Script_Tibetan = 39,
-      Script_Tifinagh = 60,
-      Script_Tirhuta = 158,
-      Script_Toto = 196,
-      Script_Ugaritic = 53,
-      Script_Unknown = 103,
-      Script_Vai = 99,
-      Script_Vithkuqi = 197,
-      Script_Wancho = 188,
-      Script_WarangCiti = 146,
-      Script_Yezidi = 192,
-      Script_Yi = 41,
-      Script_ZanabazarSquare = 177,
-    };
-    
-    typedef struct Script_option {union { Script ok; }; bool is_ok; } Script_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Script {
-public:
-  enum Value {
-    Adlam = 167,
-    Ahom = 161,
-    AnatolianHieroglyphs = 156,
-    Arabic = 2,
-    Armenian = 3,
-    Avestan = 117,
-    Balinese = 62,
-    Bamum = 130,
-    BassaVah = 134,
-    Batak = 63,
-    Bengali = 4,
-    Bhaiksuki = 168,
-    Bopomofo = 5,
-    Brahmi = 65,
-    Braille = 46,
-    Buginese = 55,
-    Buhid = 44,
-    CanadianAboriginal = 40,
-    Carian = 104,
-    CaucasianAlbanian = 159,
-    Chakma = 118,
-    Cham = 66,
-    Cherokee = 6,
-    Chorasmian = 189,
-    Common = 0,
-    Coptic = 7,
-    Cuneiform = 101,
-    Cypriot = 47,
-    CyproMinoan = 193,
-    Cyrillic = 8,
-    Deseret = 9,
-    Devanagari = 10,
-    DivesAkuru = 190,
-    Dogra = 178,
-    Duployan = 135,
-    EgyptianHieroglyphs = 71,
-    Elbasan = 136,
-    Elymaic = 185,
-    Ethiopian = 11,
-    Georgian = 12,
-    Glagolitic = 56,
-    Gothic = 13,
-    Grantha = 137,
-    Greek = 14,
-    Gujarati = 15,
-    GunjalaGondi = 179,
-    Gurmukhi = 16,
-    Han = 17,
-    Hangul = 18,
-    HanifiRohingya = 182,
-    Hanunoo = 43,
-    Hatran = 162,
-    Hebrew = 19,
-    Hiragana = 20,
-    ImperialAramaic = 116,
-    Inherited = 1,
-    InscriptionalPahlavi = 122,
-    InscriptionalParthian = 125,
-    Javanese = 78,
-    Kaithi = 120,
-    Kannada = 21,
-    Katakana = 22,
-    Kawi = 198,
-    KayahLi = 79,
-    Kharoshthi = 57,
-    KhitanSmallScript = 191,
-    Khmer = 23,
-    Khojki = 157,
-    Khudawadi = 145,
-    Lao = 24,
-    Latin = 25,
-    Lepcha = 82,
-    Limbu = 48,
-    LinearA = 83,
-    LinearB = 49,
-    Lisu = 131,
-    Lycian = 107,
-    Lydian = 108,
-    Mahajani = 160,
-    Makasar = 180,
-    Malayalam = 26,
-    Mandaic = 84,
-    Manichaean = 121,
-    Marchen = 169,
-    MasaramGondi = 175,
-    Medefaidrin = 181,
-    MeeteiMayek = 115,
-    MendeKikakui = 140,
-    MeroiticCursive = 141,
-    MeroiticHieroglyphs = 86,
-    Miao = 92,
-    Modi = 163,
-    Mongolian = 27,
-    Mro = 149,
-    Multani = 164,
-    Myanmar = 28,
-    Nabataean = 143,
-    NagMundari = 199,
-    Nandinagari = 187,
-    Nastaliq = 200,
-    NewTaiLue = 59,
-    Newa = 170,
-    Nko = 87,
-    Nushu = 150,
-    NyiakengPuachueHmong = 186,
-    Ogham = 29,
-    OlChiki = 109,
-    OldHungarian = 76,
-    OldItalic = 30,
-    OldNorthArabian = 142,
-    OldPermic = 89,
-    OldPersian = 61,
-    OldSogdian = 184,
-    OldSouthArabian = 133,
-    OldTurkic = 88,
-    OldUyghur = 194,
-    Oriya = 31,
-    Osage = 171,
-    Osmanya = 50,
-    PahawhHmong = 75,
-    Palmyrene = 144,
-    PauCinHau = 165,
-    PhagsPa = 90,
-    Phoenician = 91,
-    PsalterPahlavi = 123,
-    Rejang = 110,
-    Runic = 32,
-    Samaritan = 126,
-    Saurashtra = 111,
-    Sharada = 151,
-    Shavian = 51,
-    Siddham = 166,
-    SignWriting = 112,
-    Sinhala = 33,
-    Sogdian = 183,
-    SoraSompeng = 152,
-    Soyombo = 176,
-    Sundanese = 113,
-    SylotiNagri = 58,
-    Syriac = 34,
-    Tagalog = 42,
-    Tagbanwa = 45,
-    TaiLe = 52,
-    TaiTham = 106,
-    TaiViet = 127,
-    Takri = 153,
-    Tamil = 35,
-    Tangsa = 195,
-    Tangut = 154,
-    Telugu = 36,
-    Thaana = 37,
-    Thai = 38,
-    Tibetan = 39,
-    Tifinagh = 60,
-    Tirhuta = 158,
-    Toto = 196,
-    Ugaritic = 53,
-    Unknown = 103,
-    Vai = 99,
-    Vithkuqi = 197,
-    Wancho = 188,
-    WarangCiti = 146,
-    Yezidi = 192,
-    Yi = 41,
-    ZanabazarSquare = 177,
-  };
-
-  Script() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr Script(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::Script for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint16_t to_integer_value();
-
-  inline static std::optional<icu4x::Script> from_integer_value(uint16_t other);
-
-  inline icu4x::capi::Script AsFFI() const;
-  inline static icu4x::Script FromFFI(icu4x::capi::Script c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_Script_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.hpp
deleted file mode 100644
index 1c2b4d8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Script.hpp
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef icu4x_Script_HPP
-#define icu4x_Script_HPP
-
-#include "Script.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::Script icu4x_Script_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_Script_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_Script_long_name_mv1_result;
-    icu4x_Script_long_name_mv1_result icu4x_Script_long_name_mv1(icu4x::capi::Script self);
-    
-    typedef struct icu4x_Script_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_Script_short_name_mv1_result;
-    icu4x_Script_short_name_mv1_result icu4x_Script_short_name_mv1(icu4x::capi::Script self);
-    
-    uint16_t icu4x_Script_to_integer_value_mv1(icu4x::capi::Script self);
-    
-    typedef struct icu4x_Script_from_integer_value_mv1_result {union {icu4x::capi::Script ok; }; bool is_ok;} icu4x_Script_from_integer_value_mv1_result;
-    icu4x_Script_from_integer_value_mv1_result icu4x_Script_from_integer_value_mv1(uint16_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::Script icu4x::Script::AsFFI() const {
-  return static_cast<icu4x::capi::Script>(value);
-}
-
-inline icu4x::Script icu4x::Script::FromFFI(icu4x::capi::Script c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::Script_Adlam:
-    case icu4x::capi::Script_Ahom:
-    case icu4x::capi::Script_AnatolianHieroglyphs:
-    case icu4x::capi::Script_Arabic:
-    case icu4x::capi::Script_Armenian:
-    case icu4x::capi::Script_Avestan:
-    case icu4x::capi::Script_Balinese:
-    case icu4x::capi::Script_Bamum:
-    case icu4x::capi::Script_BassaVah:
-    case icu4x::capi::Script_Batak:
-    case icu4x::capi::Script_Bengali:
-    case icu4x::capi::Script_Bhaiksuki:
-    case icu4x::capi::Script_Bopomofo:
-    case icu4x::capi::Script_Brahmi:
-    case icu4x::capi::Script_Braille:
-    case icu4x::capi::Script_Buginese:
-    case icu4x::capi::Script_Buhid:
-    case icu4x::capi::Script_CanadianAboriginal:
-    case icu4x::capi::Script_Carian:
-    case icu4x::capi::Script_CaucasianAlbanian:
-    case icu4x::capi::Script_Chakma:
-    case icu4x::capi::Script_Cham:
-    case icu4x::capi::Script_Cherokee:
-    case icu4x::capi::Script_Chorasmian:
-    case icu4x::capi::Script_Common:
-    case icu4x::capi::Script_Coptic:
-    case icu4x::capi::Script_Cuneiform:
-    case icu4x::capi::Script_Cypriot:
-    case icu4x::capi::Script_CyproMinoan:
-    case icu4x::capi::Script_Cyrillic:
-    case icu4x::capi::Script_Deseret:
-    case icu4x::capi::Script_Devanagari:
-    case icu4x::capi::Script_DivesAkuru:
-    case icu4x::capi::Script_Dogra:
-    case icu4x::capi::Script_Duployan:
-    case icu4x::capi::Script_EgyptianHieroglyphs:
-    case icu4x::capi::Script_Elbasan:
-    case icu4x::capi::Script_Elymaic:
-    case icu4x::capi::Script_Ethiopian:
-    case icu4x::capi::Script_Georgian:
-    case icu4x::capi::Script_Glagolitic:
-    case icu4x::capi::Script_Gothic:
-    case icu4x::capi::Script_Grantha:
-    case icu4x::capi::Script_Greek:
-    case icu4x::capi::Script_Gujarati:
-    case icu4x::capi::Script_GunjalaGondi:
-    case icu4x::capi::Script_Gurmukhi:
-    case icu4x::capi::Script_Han:
-    case icu4x::capi::Script_Hangul:
-    case icu4x::capi::Script_HanifiRohingya:
-    case icu4x::capi::Script_Hanunoo:
-    case icu4x::capi::Script_Hatran:
-    case icu4x::capi::Script_Hebrew:
-    case icu4x::capi::Script_Hiragana:
-    case icu4x::capi::Script_ImperialAramaic:
-    case icu4x::capi::Script_Inherited:
-    case icu4x::capi::Script_InscriptionalPahlavi:
-    case icu4x::capi::Script_InscriptionalParthian:
-    case icu4x::capi::Script_Javanese:
-    case icu4x::capi::Script_Kaithi:
-    case icu4x::capi::Script_Kannada:
-    case icu4x::capi::Script_Katakana:
-    case icu4x::capi::Script_Kawi:
-    case icu4x::capi::Script_KayahLi:
-    case icu4x::capi::Script_Kharoshthi:
-    case icu4x::capi::Script_KhitanSmallScript:
-    case icu4x::capi::Script_Khmer:
-    case icu4x::capi::Script_Khojki:
-    case icu4x::capi::Script_Khudawadi:
-    case icu4x::capi::Script_Lao:
-    case icu4x::capi::Script_Latin:
-    case icu4x::capi::Script_Lepcha:
-    case icu4x::capi::Script_Limbu:
-    case icu4x::capi::Script_LinearA:
-    case icu4x::capi::Script_LinearB:
-    case icu4x::capi::Script_Lisu:
-    case icu4x::capi::Script_Lycian:
-    case icu4x::capi::Script_Lydian:
-    case icu4x::capi::Script_Mahajani:
-    case icu4x::capi::Script_Makasar:
-    case icu4x::capi::Script_Malayalam:
-    case icu4x::capi::Script_Mandaic:
-    case icu4x::capi::Script_Manichaean:
-    case icu4x::capi::Script_Marchen:
-    case icu4x::capi::Script_MasaramGondi:
-    case icu4x::capi::Script_Medefaidrin:
-    case icu4x::capi::Script_MeeteiMayek:
-    case icu4x::capi::Script_MendeKikakui:
-    case icu4x::capi::Script_MeroiticCursive:
-    case icu4x::capi::Script_MeroiticHieroglyphs:
-    case icu4x::capi::Script_Miao:
-    case icu4x::capi::Script_Modi:
-    case icu4x::capi::Script_Mongolian:
-    case icu4x::capi::Script_Mro:
-    case icu4x::capi::Script_Multani:
-    case icu4x::capi::Script_Myanmar:
-    case icu4x::capi::Script_Nabataean:
-    case icu4x::capi::Script_NagMundari:
-    case icu4x::capi::Script_Nandinagari:
-    case icu4x::capi::Script_Nastaliq:
-    case icu4x::capi::Script_NewTaiLue:
-    case icu4x::capi::Script_Newa:
-    case icu4x::capi::Script_Nko:
-    case icu4x::capi::Script_Nushu:
-    case icu4x::capi::Script_NyiakengPuachueHmong:
-    case icu4x::capi::Script_Ogham:
-    case icu4x::capi::Script_OlChiki:
-    case icu4x::capi::Script_OldHungarian:
-    case icu4x::capi::Script_OldItalic:
-    case icu4x::capi::Script_OldNorthArabian:
-    case icu4x::capi::Script_OldPermic:
-    case icu4x::capi::Script_OldPersian:
-    case icu4x::capi::Script_OldSogdian:
-    case icu4x::capi::Script_OldSouthArabian:
-    case icu4x::capi::Script_OldTurkic:
-    case icu4x::capi::Script_OldUyghur:
-    case icu4x::capi::Script_Oriya:
-    case icu4x::capi::Script_Osage:
-    case icu4x::capi::Script_Osmanya:
-    case icu4x::capi::Script_PahawhHmong:
-    case icu4x::capi::Script_Palmyrene:
-    case icu4x::capi::Script_PauCinHau:
-    case icu4x::capi::Script_PhagsPa:
-    case icu4x::capi::Script_Phoenician:
-    case icu4x::capi::Script_PsalterPahlavi:
-    case icu4x::capi::Script_Rejang:
-    case icu4x::capi::Script_Runic:
-    case icu4x::capi::Script_Samaritan:
-    case icu4x::capi::Script_Saurashtra:
-    case icu4x::capi::Script_Sharada:
-    case icu4x::capi::Script_Shavian:
-    case icu4x::capi::Script_Siddham:
-    case icu4x::capi::Script_SignWriting:
-    case icu4x::capi::Script_Sinhala:
-    case icu4x::capi::Script_Sogdian:
-    case icu4x::capi::Script_SoraSompeng:
-    case icu4x::capi::Script_Soyombo:
-    case icu4x::capi::Script_Sundanese:
-    case icu4x::capi::Script_SylotiNagri:
-    case icu4x::capi::Script_Syriac:
-    case icu4x::capi::Script_Tagalog:
-    case icu4x::capi::Script_Tagbanwa:
-    case icu4x::capi::Script_TaiLe:
-    case icu4x::capi::Script_TaiTham:
-    case icu4x::capi::Script_TaiViet:
-    case icu4x::capi::Script_Takri:
-    case icu4x::capi::Script_Tamil:
-    case icu4x::capi::Script_Tangsa:
-    case icu4x::capi::Script_Tangut:
-    case icu4x::capi::Script_Telugu:
-    case icu4x::capi::Script_Thaana:
-    case icu4x::capi::Script_Thai:
-    case icu4x::capi::Script_Tibetan:
-    case icu4x::capi::Script_Tifinagh:
-    case icu4x::capi::Script_Tirhuta:
-    case icu4x::capi::Script_Toto:
-    case icu4x::capi::Script_Ugaritic:
-    case icu4x::capi::Script_Unknown:
-    case icu4x::capi::Script_Vai:
-    case icu4x::capi::Script_Vithkuqi:
-    case icu4x::capi::Script_Wancho:
-    case icu4x::capi::Script_WarangCiti:
-    case icu4x::capi::Script_Yezidi:
-    case icu4x::capi::Script_Yi:
-    case icu4x::capi::Script_ZanabazarSquare:
-      return static_cast<icu4x::Script::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::Script icu4x::Script::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_Script_for_char_mv1(ch);
-  return icu4x::Script::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::Script::long_name() {
-  auto result = icu4x::capi::icu4x_Script_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::Script::short_name() {
-  auto result = icu4x::capi::icu4x_Script_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint16_t icu4x::Script::to_integer_value() {
-  auto result = icu4x::capi::icu4x_Script_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::Script> icu4x::Script::from_integer_value(uint16_t other) {
-  auto result = icu4x::capi::icu4x_Script_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::Script>(icu4x::Script::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_Script_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp
deleted file mode 100644
index 5c00d09a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_ScriptExtensionsSet_D_HPP
-#define icu4x_ScriptExtensionsSet_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct ScriptExtensionsSet;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ScriptExtensionsSet {
-public:
-
-  inline bool contains(uint16_t script) const;
-
-  inline size_t count() const;
-
-  inline std::optional<uint16_t> script_at(size_t index) const;
-
-  inline const icu4x::capi::ScriptExtensionsSet* AsFFI() const;
-  inline icu4x::capi::ScriptExtensionsSet* AsFFI();
-  inline static const icu4x::ScriptExtensionsSet* FromFFI(const icu4x::capi::ScriptExtensionsSet* ptr);
-  inline static icu4x::ScriptExtensionsSet* FromFFI(icu4x::capi::ScriptExtensionsSet* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ScriptExtensionsSet() = delete;
-  ScriptExtensionsSet(const icu4x::ScriptExtensionsSet&) = delete;
-  ScriptExtensionsSet(icu4x::ScriptExtensionsSet&&) noexcept = delete;
-  ScriptExtensionsSet operator=(const icu4x::ScriptExtensionsSet&) = delete;
-  ScriptExtensionsSet operator=(icu4x::ScriptExtensionsSet&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ScriptExtensionsSet_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.hpp
deleted file mode 100644
index 5f8cabe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptExtensionsSet.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef icu4x_ScriptExtensionsSet_HPP
-#define icu4x_ScriptExtensionsSet_HPP
-
-#include "ScriptExtensionsSet.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_ScriptExtensionsSet_contains_mv1(const icu4x::capi::ScriptExtensionsSet* self, uint16_t script);
-    
-    size_t icu4x_ScriptExtensionsSet_count_mv1(const icu4x::capi::ScriptExtensionsSet* self);
-    
-    typedef struct icu4x_ScriptExtensionsSet_script_at_mv1_result {union {uint16_t ok; }; bool is_ok;} icu4x_ScriptExtensionsSet_script_at_mv1_result;
-    icu4x_ScriptExtensionsSet_script_at_mv1_result icu4x_ScriptExtensionsSet_script_at_mv1(const icu4x::capi::ScriptExtensionsSet* self, size_t index);
-    
-    
-    void icu4x_ScriptExtensionsSet_destroy_mv1(ScriptExtensionsSet* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline bool icu4x::ScriptExtensionsSet::contains(uint16_t script) const {
-  auto result = icu4x::capi::icu4x_ScriptExtensionsSet_contains_mv1(this->AsFFI(),
-    script);
-  return result;
-}
-
-inline size_t icu4x::ScriptExtensionsSet::count() const {
-  auto result = icu4x::capi::icu4x_ScriptExtensionsSet_count_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<uint16_t> icu4x::ScriptExtensionsSet::script_at(size_t index) const {
-  auto result = icu4x::capi::icu4x_ScriptExtensionsSet_script_at_mv1(this->AsFFI(),
-    index);
-  return result.is_ok ? std::optional<uint16_t>(result.ok) : std::nullopt;
-}
-
-inline const icu4x::capi::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ScriptExtensionsSet*>(this);
-}
-
-inline icu4x::capi::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ScriptExtensionsSet*>(this);
-}
-
-inline const icu4x::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::FromFFI(const icu4x::capi::ScriptExtensionsSet* ptr) {
-  return reinterpret_cast<const icu4x::ScriptExtensionsSet*>(ptr);
-}
-
-inline icu4x::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::FromFFI(icu4x::capi::ScriptExtensionsSet* ptr) {
-  return reinterpret_cast<icu4x::ScriptExtensionsSet*>(ptr);
-}
-
-inline void icu4x::ScriptExtensionsSet::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ScriptExtensionsSet_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptExtensionsSet*>(ptr));
-}
-
-
-#endif // icu4x_ScriptExtensionsSet_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp
deleted file mode 100644
index a18e37d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_ScriptWithExtensions_D_HPP
-#define icu4x_ScriptWithExtensions_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointRangeIterator; }
-class CodePointRangeIterator;
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct ScriptWithExtensions; }
-class ScriptWithExtensions;
-namespace capi { struct ScriptWithExtensionsBorrowed; }
-class ScriptWithExtensionsBorrowed;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ScriptWithExtensions;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ScriptWithExtensions {
-public:
-
-  inline static std::unique_ptr<icu4x::ScriptWithExtensions> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline uint16_t get_script_val(char32_t ch) const;
-
-  inline bool has_script(char32_t ch, uint16_t script) const;
-
-  inline std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed> as_borrowed() const;
-
-  inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_script(uint16_t script) const;
-
-  inline const icu4x::capi::ScriptWithExtensions* AsFFI() const;
-  inline icu4x::capi::ScriptWithExtensions* AsFFI();
-  inline static const icu4x::ScriptWithExtensions* FromFFI(const icu4x::capi::ScriptWithExtensions* ptr);
-  inline static icu4x::ScriptWithExtensions* FromFFI(icu4x::capi::ScriptWithExtensions* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ScriptWithExtensions() = delete;
-  ScriptWithExtensions(const icu4x::ScriptWithExtensions&) = delete;
-  ScriptWithExtensions(icu4x::ScriptWithExtensions&&) noexcept = delete;
-  ScriptWithExtensions operator=(const icu4x::ScriptWithExtensions&) = delete;
-  ScriptWithExtensions operator=(icu4x::ScriptWithExtensions&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ScriptWithExtensions_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.hpp
deleted file mode 100644
index e802111..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensions.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef icu4x_ScriptWithExtensions_HPP
-#define icu4x_ScriptWithExtensions_HPP
-
-#include "ScriptWithExtensions.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointRangeIterator.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "ScriptWithExtensionsBorrowed.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::ScriptWithExtensions* icu4x_ScriptWithExtensions_create_mv1(void);
-    
-    typedef struct icu4x_ScriptWithExtensions_create_with_provider_mv1_result {union {icu4x::capi::ScriptWithExtensions* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ScriptWithExtensions_create_with_provider_mv1_result;
-    icu4x_ScriptWithExtensions_create_with_provider_mv1_result icu4x_ScriptWithExtensions_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    uint16_t icu4x_ScriptWithExtensions_get_script_val_mv1(const icu4x::capi::ScriptWithExtensions* self, char32_t ch);
-    
-    bool icu4x_ScriptWithExtensions_has_script_mv1(const icu4x::capi::ScriptWithExtensions* self, char32_t ch, uint16_t script);
-    
-    icu4x::capi::ScriptWithExtensionsBorrowed* icu4x_ScriptWithExtensions_as_borrowed_mv1(const icu4x::capi::ScriptWithExtensions* self);
-    
-    icu4x::capi::CodePointRangeIterator* icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(const icu4x::capi::ScriptWithExtensions* self, uint16_t script);
-    
-    
-    void icu4x_ScriptWithExtensions_destroy_mv1(ScriptWithExtensions* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::ScriptWithExtensions> icu4x::ScriptWithExtensions::create() {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_create_mv1();
-  return std::unique_ptr<icu4x::ScriptWithExtensions>(icu4x::ScriptWithExtensions::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError> icu4x::ScriptWithExtensions::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ScriptWithExtensions>>(std::unique_ptr<icu4x::ScriptWithExtensions>(icu4x::ScriptWithExtensions::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline uint16_t icu4x::ScriptWithExtensions::get_script_val(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_get_script_val_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline bool icu4x::ScriptWithExtensions::has_script(char32_t ch, uint16_t script) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_has_script_mv1(this->AsFFI(),
-    ch,
-    script);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed> icu4x::ScriptWithExtensions::as_borrowed() const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_as_borrowed_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed>(icu4x::ScriptWithExtensionsBorrowed::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::ScriptWithExtensions::iter_ranges_for_script(uint16_t script) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(this->AsFFI(),
-    script);
-  return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result));
-}
-
-inline const icu4x::capi::ScriptWithExtensions* icu4x::ScriptWithExtensions::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ScriptWithExtensions*>(this);
-}
-
-inline icu4x::capi::ScriptWithExtensions* icu4x::ScriptWithExtensions::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ScriptWithExtensions*>(this);
-}
-
-inline const icu4x::ScriptWithExtensions* icu4x::ScriptWithExtensions::FromFFI(const icu4x::capi::ScriptWithExtensions* ptr) {
-  return reinterpret_cast<const icu4x::ScriptWithExtensions*>(ptr);
-}
-
-inline icu4x::ScriptWithExtensions* icu4x::ScriptWithExtensions::FromFFI(icu4x::capi::ScriptWithExtensions* ptr) {
-  return reinterpret_cast<icu4x::ScriptWithExtensions*>(ptr);
-}
-
-inline void icu4x::ScriptWithExtensions::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ScriptWithExtensions_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptWithExtensions*>(ptr));
-}
-
-
-#endif // icu4x_ScriptWithExtensions_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp
deleted file mode 100644
index e6a5155..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef icu4x_ScriptWithExtensionsBorrowed_D_HPP
-#define icu4x_ScriptWithExtensionsBorrowed_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct CodePointSetData; }
-class CodePointSetData;
-namespace capi { struct ScriptExtensionsSet; }
-class ScriptExtensionsSet;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ScriptWithExtensionsBorrowed;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ScriptWithExtensionsBorrowed {
-public:
-
-  inline uint16_t get_script_val(char32_t ch) const;
-
-  inline std::unique_ptr<icu4x::ScriptExtensionsSet> get_script_extensions_val(char32_t ch) const;
-
-  inline bool has_script(char32_t ch, uint16_t script) const;
-
-  inline std::unique_ptr<icu4x::CodePointSetData> get_script_extensions_set(uint16_t script) const;
-
-  inline const icu4x::capi::ScriptWithExtensionsBorrowed* AsFFI() const;
-  inline icu4x::capi::ScriptWithExtensionsBorrowed* AsFFI();
-  inline static const icu4x::ScriptWithExtensionsBorrowed* FromFFI(const icu4x::capi::ScriptWithExtensionsBorrowed* ptr);
-  inline static icu4x::ScriptWithExtensionsBorrowed* FromFFI(icu4x::capi::ScriptWithExtensionsBorrowed* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ScriptWithExtensionsBorrowed() = delete;
-  ScriptWithExtensionsBorrowed(const icu4x::ScriptWithExtensionsBorrowed&) = delete;
-  ScriptWithExtensionsBorrowed(icu4x::ScriptWithExtensionsBorrowed&&) noexcept = delete;
-  ScriptWithExtensionsBorrowed operator=(const icu4x::ScriptWithExtensionsBorrowed&) = delete;
-  ScriptWithExtensionsBorrowed operator=(icu4x::ScriptWithExtensionsBorrowed&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ScriptWithExtensionsBorrowed_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp
deleted file mode 100644
index 442d17e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef icu4x_ScriptWithExtensionsBorrowed_HPP
-#define icu4x_ScriptWithExtensionsBorrowed_HPP
-
-#include "ScriptWithExtensionsBorrowed.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CodePointSetData.hpp"
-#include "ScriptExtensionsSet.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    uint16_t icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, char32_t ch);
-    
-    icu4x::capi::ScriptExtensionsSet* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, char32_t ch);
-    
-    bool icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, char32_t ch, uint16_t script);
-    
-    icu4x::capi::CodePointSetData* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, uint16_t script);
-    
-    
-    void icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(ScriptWithExtensionsBorrowed* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline uint16_t icu4x::ScriptWithExtensionsBorrowed::get_script_val(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(this->AsFFI(),
-    ch);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::ScriptExtensionsSet> icu4x::ScriptWithExtensionsBorrowed::get_script_extensions_val(char32_t ch) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(this->AsFFI(),
-    ch);
-  return std::unique_ptr<icu4x::ScriptExtensionsSet>(icu4x::ScriptExtensionsSet::FromFFI(result));
-}
-
-inline bool icu4x::ScriptWithExtensionsBorrowed::has_script(char32_t ch, uint16_t script) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(this->AsFFI(),
-    ch,
-    script);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::CodePointSetData> icu4x::ScriptWithExtensionsBorrowed::get_script_extensions_set(uint16_t script) const {
-  auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(this->AsFFI(),
-    script);
-  return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result));
-}
-
-inline const icu4x::capi::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ScriptWithExtensionsBorrowed*>(this);
-}
-
-inline icu4x::capi::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ScriptWithExtensionsBorrowed*>(this);
-}
-
-inline const icu4x::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::FromFFI(const icu4x::capi::ScriptWithExtensionsBorrowed* ptr) {
-  return reinterpret_cast<const icu4x::ScriptWithExtensionsBorrowed*>(ptr);
-}
-
-inline icu4x::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::FromFFI(icu4x::capi::ScriptWithExtensionsBorrowed* ptr) {
-  return reinterpret_cast<icu4x::ScriptWithExtensionsBorrowed*>(ptr);
-}
-
-inline void icu4x::ScriptWithExtensionsBorrowed::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptWithExtensionsBorrowed*>(ptr));
-}
-
-
-#endif // icu4x_ScriptWithExtensionsBorrowed_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.d.hpp
deleted file mode 100644
index fd45268..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.d.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_SegmenterWordType_D_HPP
-#define icu4x_SegmenterWordType_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum SegmenterWordType {
-      SegmenterWordType_None = 0,
-      SegmenterWordType_Number = 1,
-      SegmenterWordType_Letter = 2,
-    };
-    
-    typedef struct SegmenterWordType_option {union { SegmenterWordType ok; }; bool is_ok; } SegmenterWordType_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SegmenterWordType {
-public:
-  enum Value {
-    None = 0,
-    Number = 1,
-    Letter = 2,
-  };
-
-  SegmenterWordType() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr SegmenterWordType(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline bool is_word_like();
-
-  inline icu4x::capi::SegmenterWordType AsFFI() const;
-  inline static icu4x::SegmenterWordType FromFFI(icu4x::capi::SegmenterWordType c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_SegmenterWordType_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.hpp
deleted file mode 100644
index e01b5523..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SegmenterWordType.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_SegmenterWordType_HPP
-#define icu4x_SegmenterWordType_HPP
-
-#include "SegmenterWordType.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    bool icu4x_SegmenterWordType_is_word_like_mv1(icu4x::capi::SegmenterWordType self);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::SegmenterWordType icu4x::SegmenterWordType::AsFFI() const {
-  return static_cast<icu4x::capi::SegmenterWordType>(value);
-}
-
-inline icu4x::SegmenterWordType icu4x::SegmenterWordType::FromFFI(icu4x::capi::SegmenterWordType c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::SegmenterWordType_None:
-    case icu4x::capi::SegmenterWordType_Number:
-    case icu4x::capi::SegmenterWordType_Letter:
-      return static_cast<icu4x::SegmenterWordType::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline bool icu4x::SegmenterWordType::is_word_like() {
-  auto result = icu4x::capi::icu4x_SegmenterWordType_is_word_like_mv1(this->AsFFI());
-  return result;
-}
-#endif // icu4x_SegmenterWordType_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.d.hpp
deleted file mode 100644
index 2a1ed4f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.d.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef icu4x_SentenceBreak_D_HPP
-#define icu4x_SentenceBreak_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class SentenceBreak;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum SentenceBreak {
-      SentenceBreak_Other = 0,
-      SentenceBreak_ATerm = 1,
-      SentenceBreak_Close = 2,
-      SentenceBreak_Format = 3,
-      SentenceBreak_Lower = 4,
-      SentenceBreak_Numeric = 5,
-      SentenceBreak_OLetter = 6,
-      SentenceBreak_Sep = 7,
-      SentenceBreak_Sp = 8,
-      SentenceBreak_STerm = 9,
-      SentenceBreak_Upper = 10,
-      SentenceBreak_CR = 11,
-      SentenceBreak_Extend = 12,
-      SentenceBreak_LF = 13,
-      SentenceBreak_SContinue = 14,
-    };
-    
-    typedef struct SentenceBreak_option {union { SentenceBreak ok; }; bool is_ok; } SentenceBreak_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SentenceBreak {
-public:
-  enum Value {
-    Other = 0,
-    ATerm = 1,
-    Close = 2,
-    Format = 3,
-    Lower = 4,
-    Numeric = 5,
-    OLetter = 6,
-    Sep = 7,
-    Sp = 8,
-    STerm = 9,
-    Upper = 10,
-    CR = 11,
-    Extend = 12,
-    LF = 13,
-    SContinue = 14,
-  };
-
-  SentenceBreak() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr SentenceBreak(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::SentenceBreak for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::SentenceBreak> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::SentenceBreak AsFFI() const;
-  inline static icu4x::SentenceBreak FromFFI(icu4x::capi::SentenceBreak c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_SentenceBreak_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.hpp
deleted file mode 100644
index d26c66df..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreak.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef icu4x_SentenceBreak_HPP
-#define icu4x_SentenceBreak_HPP
-
-#include "SentenceBreak.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::SentenceBreak icu4x_SentenceBreak_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_SentenceBreak_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_SentenceBreak_long_name_mv1_result;
-    icu4x_SentenceBreak_long_name_mv1_result icu4x_SentenceBreak_long_name_mv1(icu4x::capi::SentenceBreak self);
-    
-    typedef struct icu4x_SentenceBreak_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_SentenceBreak_short_name_mv1_result;
-    icu4x_SentenceBreak_short_name_mv1_result icu4x_SentenceBreak_short_name_mv1(icu4x::capi::SentenceBreak self);
-    
-    uint8_t icu4x_SentenceBreak_to_integer_value_mv1(icu4x::capi::SentenceBreak self);
-    
-    typedef struct icu4x_SentenceBreak_from_integer_value_mv1_result {union {icu4x::capi::SentenceBreak ok; }; bool is_ok;} icu4x_SentenceBreak_from_integer_value_mv1_result;
-    icu4x_SentenceBreak_from_integer_value_mv1_result icu4x_SentenceBreak_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::SentenceBreak icu4x::SentenceBreak::AsFFI() const {
-  return static_cast<icu4x::capi::SentenceBreak>(value);
-}
-
-inline icu4x::SentenceBreak icu4x::SentenceBreak::FromFFI(icu4x::capi::SentenceBreak c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::SentenceBreak_Other:
-    case icu4x::capi::SentenceBreak_ATerm:
-    case icu4x::capi::SentenceBreak_Close:
-    case icu4x::capi::SentenceBreak_Format:
-    case icu4x::capi::SentenceBreak_Lower:
-    case icu4x::capi::SentenceBreak_Numeric:
-    case icu4x::capi::SentenceBreak_OLetter:
-    case icu4x::capi::SentenceBreak_Sep:
-    case icu4x::capi::SentenceBreak_Sp:
-    case icu4x::capi::SentenceBreak_STerm:
-    case icu4x::capi::SentenceBreak_Upper:
-    case icu4x::capi::SentenceBreak_CR:
-    case icu4x::capi::SentenceBreak_Extend:
-    case icu4x::capi::SentenceBreak_LF:
-    case icu4x::capi::SentenceBreak_SContinue:
-      return static_cast<icu4x::SentenceBreak::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::SentenceBreak icu4x::SentenceBreak::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_SentenceBreak_for_char_mv1(ch);
-  return icu4x::SentenceBreak::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::SentenceBreak::long_name() {
-  auto result = icu4x::capi::icu4x_SentenceBreak_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::SentenceBreak::short_name() {
-  auto result = icu4x::capi::icu4x_SentenceBreak_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::SentenceBreak::to_integer_value() {
-  auto result = icu4x::capi::icu4x_SentenceBreak_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::SentenceBreak> icu4x::SentenceBreak::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_SentenceBreak_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::SentenceBreak>(icu4x::SentenceBreak::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_SentenceBreak_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp
deleted file mode 100644
index 07bfabca..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorLatin1_D_HPP
-#define icu4x_SentenceBreakIteratorLatin1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct SentenceBreakIteratorLatin1;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SentenceBreakIteratorLatin1 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::SentenceBreakIteratorLatin1* AsFFI() const;
-  inline icu4x::capi::SentenceBreakIteratorLatin1* AsFFI();
-  inline static const icu4x::SentenceBreakIteratorLatin1* FromFFI(const icu4x::capi::SentenceBreakIteratorLatin1* ptr);
-  inline static icu4x::SentenceBreakIteratorLatin1* FromFFI(icu4x::capi::SentenceBreakIteratorLatin1* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  SentenceBreakIteratorLatin1() = delete;
-  SentenceBreakIteratorLatin1(const icu4x::SentenceBreakIteratorLatin1&) = delete;
-  SentenceBreakIteratorLatin1(icu4x::SentenceBreakIteratorLatin1&&) noexcept = delete;
-  SentenceBreakIteratorLatin1 operator=(const icu4x::SentenceBreakIteratorLatin1&) = delete;
-  SentenceBreakIteratorLatin1 operator=(icu4x::SentenceBreakIteratorLatin1&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_SentenceBreakIteratorLatin1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp
deleted file mode 100644
index cbbdbd0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorLatin1_HPP
-#define icu4x_SentenceBreakIteratorLatin1_HPP
-
-#include "SentenceBreakIteratorLatin1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_SentenceBreakIteratorLatin1_next_mv1(icu4x::capi::SentenceBreakIteratorLatin1* self);
-    
-    
-    void icu4x_SentenceBreakIteratorLatin1_destroy_mv1(SentenceBreakIteratorLatin1* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::SentenceBreakIteratorLatin1::next() {
-  auto result = icu4x::capi::icu4x_SentenceBreakIteratorLatin1_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorLatin1*>(this);
-}
-
-inline icu4x::capi::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::AsFFI() {
-  return reinterpret_cast<icu4x::capi::SentenceBreakIteratorLatin1*>(this);
-}
-
-inline const icu4x::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::FromFFI(const icu4x::capi::SentenceBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<const icu4x::SentenceBreakIteratorLatin1*>(ptr);
-}
-
-inline icu4x::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::FromFFI(icu4x::capi::SentenceBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<icu4x::SentenceBreakIteratorLatin1*>(ptr);
-}
-
-inline void icu4x::SentenceBreakIteratorLatin1::operator delete(void* ptr) {
-  icu4x::capi::icu4x_SentenceBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorLatin1*>(ptr));
-}
-
-
-#endif // icu4x_SentenceBreakIteratorLatin1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp
deleted file mode 100644
index 0f2b555..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorUtf16_D_HPP
-#define icu4x_SentenceBreakIteratorUtf16_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct SentenceBreakIteratorUtf16;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SentenceBreakIteratorUtf16 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::SentenceBreakIteratorUtf16* AsFFI() const;
-  inline icu4x::capi::SentenceBreakIteratorUtf16* AsFFI();
-  inline static const icu4x::SentenceBreakIteratorUtf16* FromFFI(const icu4x::capi::SentenceBreakIteratorUtf16* ptr);
-  inline static icu4x::SentenceBreakIteratorUtf16* FromFFI(icu4x::capi::SentenceBreakIteratorUtf16* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  SentenceBreakIteratorUtf16() = delete;
-  SentenceBreakIteratorUtf16(const icu4x::SentenceBreakIteratorUtf16&) = delete;
-  SentenceBreakIteratorUtf16(icu4x::SentenceBreakIteratorUtf16&&) noexcept = delete;
-  SentenceBreakIteratorUtf16 operator=(const icu4x::SentenceBreakIteratorUtf16&) = delete;
-  SentenceBreakIteratorUtf16 operator=(icu4x::SentenceBreakIteratorUtf16&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_SentenceBreakIteratorUtf16_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp
deleted file mode 100644
index 3c4147c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorUtf16_HPP
-#define icu4x_SentenceBreakIteratorUtf16_HPP
-
-#include "SentenceBreakIteratorUtf16.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_SentenceBreakIteratorUtf16_next_mv1(icu4x::capi::SentenceBreakIteratorUtf16* self);
-    
-    
-    void icu4x_SentenceBreakIteratorUtf16_destroy_mv1(SentenceBreakIteratorUtf16* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::SentenceBreakIteratorUtf16::next() {
-  auto result = icu4x::capi::icu4x_SentenceBreakIteratorUtf16_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorUtf16*>(this);
-}
-
-inline icu4x::capi::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::AsFFI() {
-  return reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf16*>(this);
-}
-
-inline const icu4x::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::FromFFI(const icu4x::capi::SentenceBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<const icu4x::SentenceBreakIteratorUtf16*>(ptr);
-}
-
-inline icu4x::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::FromFFI(icu4x::capi::SentenceBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<icu4x::SentenceBreakIteratorUtf16*>(ptr);
-}
-
-inline void icu4x::SentenceBreakIteratorUtf16::operator delete(void* ptr) {
-  icu4x::capi::icu4x_SentenceBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf16*>(ptr));
-}
-
-
-#endif // icu4x_SentenceBreakIteratorUtf16_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp
deleted file mode 100644
index 7762845..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorUtf8_D_HPP
-#define icu4x_SentenceBreakIteratorUtf8_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct SentenceBreakIteratorUtf8;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SentenceBreakIteratorUtf8 {
-public:
-
-  inline int32_t next();
-
-  inline const icu4x::capi::SentenceBreakIteratorUtf8* AsFFI() const;
-  inline icu4x::capi::SentenceBreakIteratorUtf8* AsFFI();
-  inline static const icu4x::SentenceBreakIteratorUtf8* FromFFI(const icu4x::capi::SentenceBreakIteratorUtf8* ptr);
-  inline static icu4x::SentenceBreakIteratorUtf8* FromFFI(icu4x::capi::SentenceBreakIteratorUtf8* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  SentenceBreakIteratorUtf8() = delete;
-  SentenceBreakIteratorUtf8(const icu4x::SentenceBreakIteratorUtf8&) = delete;
-  SentenceBreakIteratorUtf8(icu4x::SentenceBreakIteratorUtf8&&) noexcept = delete;
-  SentenceBreakIteratorUtf8 operator=(const icu4x::SentenceBreakIteratorUtf8&) = delete;
-  SentenceBreakIteratorUtf8 operator=(icu4x::SentenceBreakIteratorUtf8&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_SentenceBreakIteratorUtf8_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp
deleted file mode 100644
index 34ef2b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_SentenceBreakIteratorUtf8_HPP
-#define icu4x_SentenceBreakIteratorUtf8_HPP
-
-#include "SentenceBreakIteratorUtf8.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_SentenceBreakIteratorUtf8_next_mv1(icu4x::capi::SentenceBreakIteratorUtf8* self);
-    
-    
-    void icu4x_SentenceBreakIteratorUtf8_destroy_mv1(SentenceBreakIteratorUtf8* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::SentenceBreakIteratorUtf8::next() {
-  auto result = icu4x::capi::icu4x_SentenceBreakIteratorUtf8_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorUtf8*>(this);
-}
-
-inline icu4x::capi::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::AsFFI() {
-  return reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf8*>(this);
-}
-
-inline const icu4x::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::FromFFI(const icu4x::capi::SentenceBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<const icu4x::SentenceBreakIteratorUtf8*>(ptr);
-}
-
-inline icu4x::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::FromFFI(icu4x::capi::SentenceBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<icu4x::SentenceBreakIteratorUtf8*>(ptr);
-}
-
-inline void icu4x::SentenceBreakIteratorUtf8::operator delete(void* ptr) {
-  icu4x::capi::icu4x_SentenceBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf8*>(ptr));
-}
-
-
-#endif // icu4x_SentenceBreakIteratorUtf8_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.d.hpp
deleted file mode 100644
index 112ee97..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_SentenceSegmenter_D_HPP
-#define icu4x_SentenceSegmenter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct SentenceBreakIteratorLatin1; }
-class SentenceBreakIteratorLatin1;
-namespace capi { struct SentenceBreakIteratorUtf16; }
-class SentenceBreakIteratorUtf16;
-namespace capi { struct SentenceBreakIteratorUtf8; }
-class SentenceBreakIteratorUtf8;
-namespace capi { struct SentenceSegmenter; }
-class SentenceSegmenter;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct SentenceSegmenter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class SentenceSegmenter {
-public:
-
-  inline static std::unique_ptr<icu4x::SentenceSegmenter> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> create_with_content_locale(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> create_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf8> segment(std::string_view input) const;
-
-  inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf16> segment16(std::u16string_view input) const;
-
-  inline std::unique_ptr<icu4x::SentenceBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const;
-
-  inline const icu4x::capi::SentenceSegmenter* AsFFI() const;
-  inline icu4x::capi::SentenceSegmenter* AsFFI();
-  inline static const icu4x::SentenceSegmenter* FromFFI(const icu4x::capi::SentenceSegmenter* ptr);
-  inline static icu4x::SentenceSegmenter* FromFFI(icu4x::capi::SentenceSegmenter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  SentenceSegmenter() = delete;
-  SentenceSegmenter(const icu4x::SentenceSegmenter&) = delete;
-  SentenceSegmenter(icu4x::SentenceSegmenter&&) noexcept = delete;
-  SentenceSegmenter operator=(const icu4x::SentenceSegmenter&) = delete;
-  SentenceSegmenter operator=(icu4x::SentenceSegmenter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_SentenceSegmenter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.hpp
deleted file mode 100644
index 220bf077..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/SentenceSegmenter.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef icu4x_SentenceSegmenter_HPP
-#define icu4x_SentenceSegmenter_HPP
-
-#include "SentenceSegmenter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "SentenceBreakIteratorLatin1.hpp"
-#include "SentenceBreakIteratorUtf16.hpp"
-#include "SentenceBreakIteratorUtf8.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::SentenceSegmenter* icu4x_SentenceSegmenter_create_mv1(void);
-    
-    typedef struct icu4x_SentenceSegmenter_create_with_content_locale_mv1_result {union {icu4x::capi::SentenceSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_with_content_locale_mv1_result;
-    icu4x_SentenceSegmenter_create_with_content_locale_mv1_result icu4x_SentenceSegmenter_create_with_content_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result {union {icu4x::capi::SentenceSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result;
-    icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1_result icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::SentenceBreakIteratorUtf8* icu4x_SentenceSegmenter_segment_utf8_mv1(const icu4x::capi::SentenceSegmenter* self, diplomat::capi::DiplomatStringView input);
-    
-    icu4x::capi::SentenceBreakIteratorUtf16* icu4x_SentenceSegmenter_segment_utf16_mv1(const icu4x::capi::SentenceSegmenter* self, diplomat::capi::DiplomatString16View input);
-    
-    icu4x::capi::SentenceBreakIteratorLatin1* icu4x_SentenceSegmenter_segment_latin1_mv1(const icu4x::capi::SentenceSegmenter* self, diplomat::capi::DiplomatU8View input);
-    
-    
-    void icu4x_SentenceSegmenter_destroy_mv1(SentenceSegmenter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::SentenceSegmenter> icu4x::SentenceSegmenter::create() {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_create_mv1();
-  return std::unique_ptr<icu4x::SentenceSegmenter>(icu4x::SentenceSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> icu4x::SentenceSegmenter::create_with_content_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_create_with_content_locale_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::SentenceSegmenter>>(std::unique_ptr<icu4x::SentenceSegmenter>(icu4x::SentenceSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> icu4x::SentenceSegmenter::create_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::SentenceSegmenter>>(std::unique_ptr<icu4x::SentenceSegmenter>(icu4x::SentenceSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf8> icu4x::SentenceSegmenter::segment(std::string_view input) const {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_utf8_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::SentenceBreakIteratorUtf8>(icu4x::SentenceBreakIteratorUtf8::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf16> icu4x::SentenceSegmenter::segment16(std::u16string_view input) const {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_utf16_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::SentenceBreakIteratorUtf16>(icu4x::SentenceBreakIteratorUtf16::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::SentenceBreakIteratorLatin1> icu4x::SentenceSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const {
-  auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_latin1_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::SentenceBreakIteratorLatin1>(icu4x::SentenceBreakIteratorLatin1::FromFFI(result));
-}
-
-inline const icu4x::capi::SentenceSegmenter* icu4x::SentenceSegmenter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::SentenceSegmenter*>(this);
-}
-
-inline icu4x::capi::SentenceSegmenter* icu4x::SentenceSegmenter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::SentenceSegmenter*>(this);
-}
-
-inline const icu4x::SentenceSegmenter* icu4x::SentenceSegmenter::FromFFI(const icu4x::capi::SentenceSegmenter* ptr) {
-  return reinterpret_cast<const icu4x::SentenceSegmenter*>(ptr);
-}
-
-inline icu4x::SentenceSegmenter* icu4x::SentenceSegmenter::FromFFI(icu4x::capi::SentenceSegmenter* ptr) {
-  return reinterpret_cast<icu4x::SentenceSegmenter*>(ptr);
-}
-
-inline void icu4x::SentenceSegmenter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_SentenceSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceSegmenter*>(ptr));
-}
-
-
-#endif // icu4x_SentenceSegmenter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.d.hpp
deleted file mode 100644
index 9922e00..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.d.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef icu4x_Time_D_HPP
-#define icu4x_Time_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Time; }
-class Time;
-class CalendarError;
-class CalendarParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct Time;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Time {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t subsecond);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError> from_string(std::string_view v);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> midnight();
-
-  inline uint8_t hour() const;
-
-  inline uint8_t minute() const;
-
-  inline uint8_t second() const;
-
-  inline uint32_t subsecond() const;
-
-  inline const icu4x::capi::Time* AsFFI() const;
-  inline icu4x::capi::Time* AsFFI();
-  inline static const icu4x::Time* FromFFI(const icu4x::capi::Time* ptr);
-  inline static icu4x::Time* FromFFI(icu4x::capi::Time* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  Time() = delete;
-  Time(const icu4x::Time&) = delete;
-  Time(icu4x::Time&&) noexcept = delete;
-  Time operator=(const icu4x::Time&) = delete;
-  Time operator=(icu4x::Time&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_Time_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.hpp
deleted file mode 100644
index 3d19085..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Time.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef icu4x_Time_HPP
-#define icu4x_Time_HPP
-
-#include "Time.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CalendarError.hpp"
-#include "CalendarParseError.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_Time_create_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Time_create_mv1_result;
-    icu4x_Time_create_mv1_result icu4x_Time_create_mv1(uint8_t hour, uint8_t minute, uint8_t second, uint32_t subsecond);
-    
-    typedef struct icu4x_Time_from_string_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_Time_from_string_mv1_result;
-    icu4x_Time_from_string_mv1_result icu4x_Time_from_string_mv1(diplomat::capi::DiplomatStringView v);
-    
-    typedef struct icu4x_Time_midnight_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Time_midnight_mv1_result;
-    icu4x_Time_midnight_mv1_result icu4x_Time_midnight_mv1(void);
-    
-    uint8_t icu4x_Time_hour_mv1(const icu4x::capi::Time* self);
-    
-    uint8_t icu4x_Time_minute_mv1(const icu4x::capi::Time* self);
-    
-    uint8_t icu4x_Time_second_mv1(const icu4x::capi::Time* self);
-    
-    uint32_t icu4x_Time_subsecond_mv1(const icu4x::capi::Time* self);
-    
-    
-    void icu4x_Time_destroy_mv1(Time* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> icu4x::Time::create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t subsecond) {
-  auto result = icu4x::capi::icu4x_Time_create_mv1(hour,
-    minute,
-    second,
-    subsecond);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError> icu4x::Time::from_string(std::string_view v) {
-  auto result = icu4x::capi::icu4x_Time_from_string_mv1({v.data(), v.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> icu4x::Time::midnight() {
-  auto result = icu4x::capi::icu4x_Time_midnight_mv1();
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
-}
-
-inline uint8_t icu4x::Time::hour() const {
-  auto result = icu4x::capi::icu4x_Time_hour_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::Time::minute() const {
-  auto result = icu4x::capi::icu4x_Time_minute_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint8_t icu4x::Time::second() const {
-  auto result = icu4x::capi::icu4x_Time_second_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint32_t icu4x::Time::subsecond() const {
-  auto result = icu4x::capi::icu4x_Time_subsecond_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::Time* icu4x::Time::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::Time*>(this);
-}
-
-inline icu4x::capi::Time* icu4x::Time::AsFFI() {
-  return reinterpret_cast<icu4x::capi::Time*>(this);
-}
-
-inline const icu4x::Time* icu4x::Time::FromFFI(const icu4x::capi::Time* ptr) {
-  return reinterpret_cast<const icu4x::Time*>(ptr);
-}
-
-inline icu4x::Time* icu4x::Time::FromFFI(icu4x::capi::Time* ptr) {
-  return reinterpret_cast<icu4x::Time*>(ptr);
-}
-
-inline void icu4x::Time::operator delete(void* ptr) {
-  icu4x::capi::icu4x_Time_destroy_mv1(reinterpret_cast<icu4x::capi::Time*>(ptr));
-}
-
-
-#endif // icu4x_Time_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.d.hpp
deleted file mode 100644
index 8ab6cc00..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.d.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef icu4x_TimePrecision_D_HPP
-#define icu4x_TimePrecision_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum TimePrecision {
-      TimePrecision_Hour = 0,
-      TimePrecision_Minute = 1,
-      TimePrecision_MinuteOptional = 2,
-      TimePrecision_Second = 3,
-      TimePrecision_Subsecond1 = 4,
-      TimePrecision_Subsecond2 = 5,
-      TimePrecision_Subsecond3 = 6,
-      TimePrecision_Subsecond4 = 7,
-      TimePrecision_Subsecond5 = 8,
-      TimePrecision_Subsecond6 = 9,
-      TimePrecision_Subsecond7 = 10,
-      TimePrecision_Subsecond8 = 11,
-      TimePrecision_Subsecond9 = 12,
-    };
-    
-    typedef struct TimePrecision_option {union { TimePrecision ok; }; bool is_ok; } TimePrecision_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimePrecision {
-public:
-  enum Value {
-    Hour = 0,
-    Minute = 1,
-    MinuteOptional = 2,
-    Second = 3,
-    Subsecond1 = 4,
-    Subsecond2 = 5,
-    Subsecond3 = 6,
-    Subsecond4 = 7,
-    Subsecond5 = 8,
-    Subsecond6 = 9,
-    Subsecond7 = 10,
-    Subsecond8 = 11,
-    Subsecond9 = 12,
-  };
-
-  TimePrecision() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr TimePrecision(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::TimePrecision AsFFI() const;
-  inline static icu4x::TimePrecision FromFFI(icu4x::capi::TimePrecision c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_TimePrecision_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.hpp
deleted file mode 100644
index bd8c85fc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimePrecision.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_TimePrecision_HPP
-#define icu4x_TimePrecision_HPP
-
-#include "TimePrecision.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::TimePrecision icu4x::TimePrecision::AsFFI() const {
-  return static_cast<icu4x::capi::TimePrecision>(value);
-}
-
-inline icu4x::TimePrecision icu4x::TimePrecision::FromFFI(icu4x::capi::TimePrecision c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::TimePrecision_Hour:
-    case icu4x::capi::TimePrecision_Minute:
-    case icu4x::capi::TimePrecision_MinuteOptional:
-    case icu4x::capi::TimePrecision_Second:
-    case icu4x::capi::TimePrecision_Subsecond1:
-    case icu4x::capi::TimePrecision_Subsecond2:
-    case icu4x::capi::TimePrecision_Subsecond3:
-    case icu4x::capi::TimePrecision_Subsecond4:
-    case icu4x::capi::TimePrecision_Subsecond5:
-    case icu4x::capi::TimePrecision_Subsecond6:
-    case icu4x::capi::TimePrecision_Subsecond7:
-    case icu4x::capi::TimePrecision_Subsecond8:
-    case icu4x::capi::TimePrecision_Subsecond9:
-      return static_cast<icu4x::TimePrecision::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_TimePrecision_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.d.hpp
deleted file mode 100644
index 6f417d0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.d.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_TimeZone_D_HPP
-#define icu4x_TimeZone_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct TimeZone; }
-class TimeZone;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-namespace capi { struct UtcOffset; }
-class UtcOffset;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZone;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZone {
-public:
-
-  inline static std::unique_ptr<icu4x::TimeZone> unknown();
-
-  inline static std::unique_ptr<icu4x::TimeZone> create_from_bcp47(std::string_view id);
-
-  inline std::unique_ptr<icu4x::TimeZoneInfo> with_offset(const icu4x::UtcOffset& offset) const;
-
-  inline std::unique_ptr<icu4x::TimeZoneInfo> without_offset() const;
-
-  inline const icu4x::capi::TimeZone* AsFFI() const;
-  inline icu4x::capi::TimeZone* AsFFI();
-  inline static const icu4x::TimeZone* FromFFI(const icu4x::capi::TimeZone* ptr);
-  inline static icu4x::TimeZone* FromFFI(icu4x::capi::TimeZone* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TimeZone() = delete;
-  TimeZone(const icu4x::TimeZone&) = delete;
-  TimeZone(icu4x::TimeZone&&) noexcept = delete;
-  TimeZone operator=(const icu4x::TimeZone&) = delete;
-  TimeZone operator=(icu4x::TimeZone&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TimeZone_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.hpp
deleted file mode 100644
index 516252b4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZone.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef icu4x_TimeZone_HPP
-#define icu4x_TimeZone_HPP
-
-#include "TimeZone.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZoneInfo.hpp"
-#include "UtcOffset.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::TimeZone* icu4x_TimeZone_unknown_mv1(void);
-    
-    icu4x::capi::TimeZone* icu4x_TimeZone_create_from_bcp47_mv1(diplomat::capi::DiplomatStringView id);
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZone_with_offset_mv1(const icu4x::capi::TimeZone* self, const icu4x::capi::UtcOffset* offset);
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZone_without_offset_mv1(const icu4x::capi::TimeZone* self);
-    
-    
-    void icu4x_TimeZone_destroy_mv1(TimeZone* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::TimeZone::unknown() {
-  auto result = icu4x::capi::icu4x_TimeZone_unknown_mv1();
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::TimeZone::create_from_bcp47(std::string_view id) {
-  auto result = icu4x::capi::icu4x_TimeZone_create_from_bcp47_mv1({id.data(), id.size()});
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZone::with_offset(const icu4x::UtcOffset& offset) const {
-  auto result = icu4x::capi::icu4x_TimeZone_with_offset_mv1(this->AsFFI(),
-    offset.AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZone::without_offset() const {
-  auto result = icu4x::capi::icu4x_TimeZone_without_offset_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline const icu4x::capi::TimeZone* icu4x::TimeZone::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TimeZone*>(this);
-}
-
-inline icu4x::capi::TimeZone* icu4x::TimeZone::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TimeZone*>(this);
-}
-
-inline const icu4x::TimeZone* icu4x::TimeZone::FromFFI(const icu4x::capi::TimeZone* ptr) {
-  return reinterpret_cast<const icu4x::TimeZone*>(ptr);
-}
-
-inline icu4x::TimeZone* icu4x::TimeZone::FromFFI(icu4x::capi::TimeZone* ptr) {
-  return reinterpret_cast<icu4x::TimeZone*>(ptr);
-}
-
-inline void icu4x::TimeZone::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TimeZone_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZone*>(ptr));
-}
-
-
-#endif // icu4x_TimeZone_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.d.hpp
deleted file mode 100644
index a5d2c58..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonical_D_HPP
-#define icu4x_TimeZoneAndCanonical_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct TimeZone; }
-class TimeZone;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneAndCanonical {
-      icu4x::capi::TimeZone* time_zone;
-      diplomat::capi::DiplomatStringView canonical;
-    };
-    
-    typedef struct TimeZoneAndCanonical_option {union { TimeZoneAndCanonical ok; }; bool is_ok; } TimeZoneAndCanonical_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct TimeZoneAndCanonical {
-  std::unique_ptr<icu4x::TimeZone> time_zone;
-  std::string_view canonical;
-
-  inline icu4x::capi::TimeZoneAndCanonical AsFFI() const;
-  inline static icu4x::TimeZoneAndCanonical FromFFI(icu4x::capi::TimeZoneAndCanonical c_struct);
-};
-
-} // namespace
-#endif // icu4x_TimeZoneAndCanonical_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.hpp
deleted file mode 100644
index 327d776..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonical.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonical_HPP
-#define icu4x_TimeZoneAndCanonical_HPP
-
-#include "TimeZoneAndCanonical.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZone.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::TimeZoneAndCanonical icu4x::TimeZoneAndCanonical::AsFFI() const {
-  return icu4x::capi::TimeZoneAndCanonical {
-    /* .time_zone = */ time_zone->AsFFI(),
-    /* .canonical = */ {canonical.data(), canonical.size()},
-  };
-}
-
-inline icu4x::TimeZoneAndCanonical icu4x::TimeZoneAndCanonical::FromFFI(icu4x::capi::TimeZoneAndCanonical c_struct) {
-  return icu4x::TimeZoneAndCanonical {
-    /* .time_zone = */ std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(c_struct.time_zone)),
-    /* .canonical = */ std::string_view(c_struct.canonical.data, c_struct.canonical.len),
-  };
-}
-
-
-#endif // icu4x_TimeZoneAndCanonical_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.d.hpp
deleted file mode 100644
index 92ff93b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.d.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalAndNormalized_D_HPP
-#define icu4x_TimeZoneAndCanonicalAndNormalized_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct TimeZone; }
-class TimeZone;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneAndCanonicalAndNormalized {
-      icu4x::capi::TimeZone* time_zone;
-      diplomat::capi::DiplomatStringView canonical;
-      diplomat::capi::DiplomatStringView normalized;
-    };
-    
-    typedef struct TimeZoneAndCanonicalAndNormalized_option {union { TimeZoneAndCanonicalAndNormalized ok; }; bool is_ok; } TimeZoneAndCanonicalAndNormalized_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct TimeZoneAndCanonicalAndNormalized {
-  std::unique_ptr<icu4x::TimeZone> time_zone;
-  std::string_view canonical;
-  std::string_view normalized;
-
-  inline icu4x::capi::TimeZoneAndCanonicalAndNormalized AsFFI() const;
-  inline static icu4x::TimeZoneAndCanonicalAndNormalized FromFFI(icu4x::capi::TimeZoneAndCanonicalAndNormalized c_struct);
-};
-
-} // namespace
-#endif // icu4x_TimeZoneAndCanonicalAndNormalized_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.hpp
deleted file mode 100644
index a124b69..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalized.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalAndNormalized_HPP
-#define icu4x_TimeZoneAndCanonicalAndNormalized_HPP
-
-#include "TimeZoneAndCanonicalAndNormalized.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZone.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::TimeZoneAndCanonicalAndNormalized icu4x::TimeZoneAndCanonicalAndNormalized::AsFFI() const {
-  return icu4x::capi::TimeZoneAndCanonicalAndNormalized {
-    /* .time_zone = */ time_zone->AsFFI(),
-    /* .canonical = */ {canonical.data(), canonical.size()},
-    /* .normalized = */ {normalized.data(), normalized.size()},
-  };
-}
-
-inline icu4x::TimeZoneAndCanonicalAndNormalized icu4x::TimeZoneAndCanonicalAndNormalized::FromFFI(icu4x::capi::TimeZoneAndCanonicalAndNormalized c_struct) {
-  return icu4x::TimeZoneAndCanonicalAndNormalized {
-    /* .time_zone = */ std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(c_struct.time_zone)),
-    /* .canonical = */ std::string_view(c_struct.canonical.data, c_struct.canonical.len),
-    /* .normalized = */ std::string_view(c_struct.normalized.data, c_struct.normalized.len),
-  };
-}
-
-
-#endif // icu4x_TimeZoneAndCanonicalAndNormalized_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.d.hpp
deleted file mode 100644
index a6c02e4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.d.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalAndNormalizedIterator_D_HPP
-#define icu4x_TimeZoneAndCanonicalAndNormalizedIterator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-struct TimeZoneAndCanonicalAndNormalized;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneAndCanonicalAndNormalizedIterator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZoneAndCanonicalAndNormalizedIterator {
-public:
-
-  inline std::optional<icu4x::TimeZoneAndCanonicalAndNormalized> next();
-
-  inline const icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* AsFFI() const;
-  inline icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* AsFFI();
-  inline static const icu4x::TimeZoneAndCanonicalAndNormalizedIterator* FromFFI(const icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* ptr);
-  inline static icu4x::TimeZoneAndCanonicalAndNormalizedIterator* FromFFI(icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TimeZoneAndCanonicalAndNormalizedIterator() = delete;
-  TimeZoneAndCanonicalAndNormalizedIterator(const icu4x::TimeZoneAndCanonicalAndNormalizedIterator&) = delete;
-  TimeZoneAndCanonicalAndNormalizedIterator(icu4x::TimeZoneAndCanonicalAndNormalizedIterator&&) noexcept = delete;
-  TimeZoneAndCanonicalAndNormalizedIterator operator=(const icu4x::TimeZoneAndCanonicalAndNormalizedIterator&) = delete;
-  TimeZoneAndCanonicalAndNormalizedIterator operator=(icu4x::TimeZoneAndCanonicalAndNormalizedIterator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TimeZoneAndCanonicalAndNormalizedIterator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.hpp
deleted file mode 100644
index 2a5db01f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalAndNormalizedIterator.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalAndNormalizedIterator_HPP
-#define icu4x_TimeZoneAndCanonicalAndNormalizedIterator_HPP
-
-#include "TimeZoneAndCanonicalAndNormalizedIterator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZoneAndCanonicalAndNormalized.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result {union {icu4x::capi::TimeZoneAndCanonicalAndNormalized ok; }; bool is_ok;} icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result;
-    icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1_result icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1(icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* self);
-    
-    
-    void icu4x_TimeZoneAndCanonicalAndNormalizedIterator_destroy_mv1(TimeZoneAndCanonicalAndNormalizedIterator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::optional<icu4x::TimeZoneAndCanonicalAndNormalized> icu4x::TimeZoneAndCanonicalAndNormalizedIterator::next() {
-  auto result = icu4x::capi::icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<icu4x::TimeZoneAndCanonicalAndNormalized>(icu4x::TimeZoneAndCanonicalAndNormalized::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline const icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* icu4x::TimeZoneAndCanonicalAndNormalizedIterator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator*>(this);
-}
-
-inline icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* icu4x::TimeZoneAndCanonicalAndNormalizedIterator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator*>(this);
-}
-
-inline const icu4x::TimeZoneAndCanonicalAndNormalizedIterator* icu4x::TimeZoneAndCanonicalAndNormalizedIterator::FromFFI(const icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* ptr) {
-  return reinterpret_cast<const icu4x::TimeZoneAndCanonicalAndNormalizedIterator*>(ptr);
-}
-
-inline icu4x::TimeZoneAndCanonicalAndNormalizedIterator* icu4x::TimeZoneAndCanonicalAndNormalizedIterator::FromFFI(icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator* ptr) {
-  return reinterpret_cast<icu4x::TimeZoneAndCanonicalAndNormalizedIterator*>(ptr);
-}
-
-inline void icu4x::TimeZoneAndCanonicalAndNormalizedIterator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TimeZoneAndCanonicalAndNormalizedIterator_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneAndCanonicalAndNormalizedIterator*>(ptr));
-}
-
-
-#endif // icu4x_TimeZoneAndCanonicalAndNormalizedIterator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.d.hpp
deleted file mode 100644
index 369137e1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.d.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalIterator_D_HPP
-#define icu4x_TimeZoneAndCanonicalIterator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-struct TimeZoneAndCanonical;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneAndCanonicalIterator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZoneAndCanonicalIterator {
-public:
-
-  inline std::optional<icu4x::TimeZoneAndCanonical> next();
-
-  inline const icu4x::capi::TimeZoneAndCanonicalIterator* AsFFI() const;
-  inline icu4x::capi::TimeZoneAndCanonicalIterator* AsFFI();
-  inline static const icu4x::TimeZoneAndCanonicalIterator* FromFFI(const icu4x::capi::TimeZoneAndCanonicalIterator* ptr);
-  inline static icu4x::TimeZoneAndCanonicalIterator* FromFFI(icu4x::capi::TimeZoneAndCanonicalIterator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TimeZoneAndCanonicalIterator() = delete;
-  TimeZoneAndCanonicalIterator(const icu4x::TimeZoneAndCanonicalIterator&) = delete;
-  TimeZoneAndCanonicalIterator(icu4x::TimeZoneAndCanonicalIterator&&) noexcept = delete;
-  TimeZoneAndCanonicalIterator operator=(const icu4x::TimeZoneAndCanonicalIterator&) = delete;
-  TimeZoneAndCanonicalIterator operator=(icu4x::TimeZoneAndCanonicalIterator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TimeZoneAndCanonicalIterator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.hpp
deleted file mode 100644
index 6aa12a1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneAndCanonicalIterator.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_TimeZoneAndCanonicalIterator_HPP
-#define icu4x_TimeZoneAndCanonicalIterator_HPP
-
-#include "TimeZoneAndCanonicalIterator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZoneAndCanonical.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_TimeZoneAndCanonicalIterator_next_mv1_result {union {icu4x::capi::TimeZoneAndCanonical ok; }; bool is_ok;} icu4x_TimeZoneAndCanonicalIterator_next_mv1_result;
-    icu4x_TimeZoneAndCanonicalIterator_next_mv1_result icu4x_TimeZoneAndCanonicalIterator_next_mv1(icu4x::capi::TimeZoneAndCanonicalIterator* self);
-    
-    
-    void icu4x_TimeZoneAndCanonicalIterator_destroy_mv1(TimeZoneAndCanonicalIterator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::optional<icu4x::TimeZoneAndCanonical> icu4x::TimeZoneAndCanonicalIterator::next() {
-  auto result = icu4x::capi::icu4x_TimeZoneAndCanonicalIterator_next_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<icu4x::TimeZoneAndCanonical>(icu4x::TimeZoneAndCanonical::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline const icu4x::capi::TimeZoneAndCanonicalIterator* icu4x::TimeZoneAndCanonicalIterator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TimeZoneAndCanonicalIterator*>(this);
-}
-
-inline icu4x::capi::TimeZoneAndCanonicalIterator* icu4x::TimeZoneAndCanonicalIterator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TimeZoneAndCanonicalIterator*>(this);
-}
-
-inline const icu4x::TimeZoneAndCanonicalIterator* icu4x::TimeZoneAndCanonicalIterator::FromFFI(const icu4x::capi::TimeZoneAndCanonicalIterator* ptr) {
-  return reinterpret_cast<const icu4x::TimeZoneAndCanonicalIterator*>(ptr);
-}
-
-inline icu4x::TimeZoneAndCanonicalIterator* icu4x::TimeZoneAndCanonicalIterator::FromFFI(icu4x::capi::TimeZoneAndCanonicalIterator* ptr) {
-  return reinterpret_cast<icu4x::TimeZoneAndCanonicalIterator*>(ptr);
-}
-
-inline void icu4x::TimeZoneAndCanonicalIterator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TimeZoneAndCanonicalIterator_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneAndCanonicalIterator*>(ptr));
-}
-
-
-#endif // icu4x_TimeZoneAndCanonicalIterator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.d.hpp
deleted file mode 100644
index a6702486..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.d.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef icu4x_TimeZoneInfo_D_HPP
-#define icu4x_TimeZoneInfo_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZone; }
-class TimeZone;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-namespace capi { struct UtcOffset; }
-class UtcOffset;
-namespace capi { struct UtcOffsetCalculator; }
-class UtcOffsetCalculator;
-struct IsoDateTime;
-class TimeZoneVariant;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneInfo;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZoneInfo {
-public:
-
-  inline static std::unique_ptr<icu4x::TimeZoneInfo> utc();
-
-  inline static std::unique_ptr<icu4x::TimeZoneInfo> from_parts(const icu4x::TimeZone& time_zone_id, const icu4x::UtcOffset* offset, std::optional<icu4x::TimeZoneVariant> zone_variant);
-
-  inline std::unique_ptr<icu4x::TimeZone> time_zone_id() const;
-
-  inline std::unique_ptr<icu4x::TimeZoneInfo> at_time(const icu4x::IsoDate& date, const icu4x::Time& time) const;
-
-  inline std::optional<icu4x::IsoDateTime> local_time() const;
-
-  inline std::unique_ptr<icu4x::TimeZoneInfo> with_zone_variant(icu4x::TimeZoneVariant time_zone_variant) const;
-
-  inline std::optional<std::monostate> infer_zone_variant(const icu4x::UtcOffsetCalculator& offset_calculator);
-
-  inline std::optional<icu4x::TimeZoneVariant> zone_variant() const;
-
-  inline const icu4x::capi::TimeZoneInfo* AsFFI() const;
-  inline icu4x::capi::TimeZoneInfo* AsFFI();
-  inline static const icu4x::TimeZoneInfo* FromFFI(const icu4x::capi::TimeZoneInfo* ptr);
-  inline static icu4x::TimeZoneInfo* FromFFI(icu4x::capi::TimeZoneInfo* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TimeZoneInfo() = delete;
-  TimeZoneInfo(const icu4x::TimeZoneInfo&) = delete;
-  TimeZoneInfo(icu4x::TimeZoneInfo&&) noexcept = delete;
-  TimeZoneInfo operator=(const icu4x::TimeZoneInfo&) = delete;
-  TimeZoneInfo operator=(icu4x::TimeZoneInfo&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TimeZoneInfo_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.hpp
deleted file mode 100644
index 04cb287..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInfo.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef icu4x_TimeZoneInfo_HPP
-#define icu4x_TimeZoneInfo_HPP
-
-#include "TimeZoneInfo.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "IsoDate.hpp"
-#include "IsoDateTime.hpp"
-#include "Time.hpp"
-#include "TimeZone.hpp"
-#include "TimeZoneVariant.hpp"
-#include "UtcOffset.hpp"
-#include "UtcOffsetCalculator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZoneInfo_utc_mv1(void);
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZoneInfo_from_parts_mv1(const icu4x::capi::TimeZone* time_zone_id, const icu4x::capi::UtcOffset* offset, icu4x::capi::TimeZoneVariant_option zone_variant);
-    
-    icu4x::capi::TimeZone* icu4x_TimeZoneInfo_time_zone_id_mv1(const icu4x::capi::TimeZoneInfo* self);
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZoneInfo_at_time_mv1(const icu4x::capi::TimeZoneInfo* self, const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time);
-    
-    typedef struct icu4x_TimeZoneInfo_local_time_mv1_result {union {icu4x::capi::IsoDateTime ok; }; bool is_ok;} icu4x_TimeZoneInfo_local_time_mv1_result;
-    icu4x_TimeZoneInfo_local_time_mv1_result icu4x_TimeZoneInfo_local_time_mv1(const icu4x::capi::TimeZoneInfo* self);
-    
-    icu4x::capi::TimeZoneInfo* icu4x_TimeZoneInfo_with_zone_variant_mv1(const icu4x::capi::TimeZoneInfo* self, icu4x::capi::TimeZoneVariant time_zone_variant);
-    
-    typedef struct icu4x_TimeZoneInfo_infer_zone_variant_mv1_result { bool is_ok;} icu4x_TimeZoneInfo_infer_zone_variant_mv1_result;
-    icu4x_TimeZoneInfo_infer_zone_variant_mv1_result icu4x_TimeZoneInfo_infer_zone_variant_mv1(icu4x::capi::TimeZoneInfo* self, const icu4x::capi::UtcOffsetCalculator* offset_calculator);
-    
-    typedef struct icu4x_TimeZoneInfo_zone_variant_mv1_result {union {icu4x::capi::TimeZoneVariant ok; }; bool is_ok;} icu4x_TimeZoneInfo_zone_variant_mv1_result;
-    icu4x_TimeZoneInfo_zone_variant_mv1_result icu4x_TimeZoneInfo_zone_variant_mv1(const icu4x::capi::TimeZoneInfo* self);
-    
-    
-    void icu4x_TimeZoneInfo_destroy_mv1(TimeZoneInfo* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZoneInfo::utc() {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_utc_mv1();
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZoneInfo::from_parts(const icu4x::TimeZone& time_zone_id, const icu4x::UtcOffset* offset, std::optional<icu4x::TimeZoneVariant> zone_variant) {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_from_parts_mv1(time_zone_id.AsFFI(),
-    offset ? offset->AsFFI() : nullptr,
-    zone_variant.has_value() ? (icu4x::capi::TimeZoneVariant_option{ { zone_variant.value().AsFFI() }, true }) : (icu4x::capi::TimeZoneVariant_option{ {}, false }));
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::TimeZoneInfo::time_zone_id() const {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_time_zone_id_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZoneInfo::at_time(const icu4x::IsoDate& date, const icu4x::Time& time) const {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_at_time_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline std::optional<icu4x::IsoDateTime> icu4x::TimeZoneInfo::local_time() const {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_local_time_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline std::unique_ptr<icu4x::TimeZoneInfo> icu4x::TimeZoneInfo::with_zone_variant(icu4x::TimeZoneVariant time_zone_variant) const {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_with_zone_variant_mv1(this->AsFFI(),
-    time_zone_variant.AsFFI());
-  return std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(result));
-}
-
-inline std::optional<std::monostate> icu4x::TimeZoneInfo::infer_zone_variant(const icu4x::UtcOffsetCalculator& offset_calculator) {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_infer_zone_variant_mv1(this->AsFFI(),
-    offset_calculator.AsFFI());
-  return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
-}
-
-inline std::optional<icu4x::TimeZoneVariant> icu4x::TimeZoneInfo::zone_variant() const {
-  auto result = icu4x::capi::icu4x_TimeZoneInfo_zone_variant_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<icu4x::TimeZoneVariant>(icu4x::TimeZoneVariant::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline const icu4x::capi::TimeZoneInfo* icu4x::TimeZoneInfo::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TimeZoneInfo*>(this);
-}
-
-inline icu4x::capi::TimeZoneInfo* icu4x::TimeZoneInfo::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TimeZoneInfo*>(this);
-}
-
-inline const icu4x::TimeZoneInfo* icu4x::TimeZoneInfo::FromFFI(const icu4x::capi::TimeZoneInfo* ptr) {
-  return reinterpret_cast<const icu4x::TimeZoneInfo*>(ptr);
-}
-
-inline icu4x::TimeZoneInfo* icu4x::TimeZoneInfo::FromFFI(icu4x::capi::TimeZoneInfo* ptr) {
-  return reinterpret_cast<icu4x::TimeZoneInfo*>(ptr);
-}
-
-inline void icu4x::TimeZoneInfo::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TimeZoneInfo_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneInfo*>(ptr));
-}
-
-
-#endif // icu4x_TimeZoneInfo_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp
deleted file mode 100644
index ff7725b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef icu4x_TimeZoneInvalidOffsetError_D_HPP
-#define icu4x_TimeZoneInvalidOffsetError_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct TimeZoneInvalidOffsetError {
-
-};
-
-} // namespace
-#endif // icu4x_TimeZoneInvalidOffsetError_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp
deleted file mode 100644
index 4d26adbf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef icu4x_TimeZoneInvalidOffsetError_HPP
-#define icu4x_TimeZoneInvalidOffsetError_HPP
-
-#include "TimeZoneInvalidOffsetError.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-
-
-#endif // icu4x_TimeZoneInvalidOffsetError_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.d.hpp
deleted file mode 100644
index dc3e6c2e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_TimeZoneIterator_D_HPP
-#define icu4x_TimeZoneIterator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct TimeZone; }
-class TimeZone;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TimeZoneIterator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZoneIterator {
-public:
-
-  inline std::unique_ptr<icu4x::TimeZone> next();
-
-  inline const icu4x::capi::TimeZoneIterator* AsFFI() const;
-  inline icu4x::capi::TimeZoneIterator* AsFFI();
-  inline static const icu4x::TimeZoneIterator* FromFFI(const icu4x::capi::TimeZoneIterator* ptr);
-  inline static icu4x::TimeZoneIterator* FromFFI(icu4x::capi::TimeZoneIterator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TimeZoneIterator() = delete;
-  TimeZoneIterator(const icu4x::TimeZoneIterator&) = delete;
-  TimeZoneIterator(icu4x::TimeZoneIterator&&) noexcept = delete;
-  TimeZoneIterator operator=(const icu4x::TimeZoneIterator&) = delete;
-  TimeZoneIterator operator=(icu4x::TimeZoneIterator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TimeZoneIterator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.hpp
deleted file mode 100644
index 1cd8abe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneIterator.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_TimeZoneIterator_HPP
-#define icu4x_TimeZoneIterator_HPP
-
-#include "TimeZoneIterator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZone.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::TimeZone* icu4x_TimeZoneIterator_next_mv1(icu4x::capi::TimeZoneIterator* self);
-    
-    
-    void icu4x_TimeZoneIterator_destroy_mv1(TimeZoneIterator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::TimeZoneIterator::next() {
-  auto result = icu4x::capi::icu4x_TimeZoneIterator_next_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline const icu4x::capi::TimeZoneIterator* icu4x::TimeZoneIterator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TimeZoneIterator*>(this);
-}
-
-inline icu4x::capi::TimeZoneIterator* icu4x::TimeZoneIterator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TimeZoneIterator*>(this);
-}
-
-inline const icu4x::TimeZoneIterator* icu4x::TimeZoneIterator::FromFFI(const icu4x::capi::TimeZoneIterator* ptr) {
-  return reinterpret_cast<const icu4x::TimeZoneIterator*>(ptr);
-}
-
-inline icu4x::TimeZoneIterator* icu4x::TimeZoneIterator::FromFFI(icu4x::capi::TimeZoneIterator* ptr) {
-  return reinterpret_cast<icu4x::TimeZoneIterator*>(ptr);
-}
-
-inline void icu4x::TimeZoneIterator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TimeZoneIterator_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneIterator*>(ptr));
-}
-
-
-#endif // icu4x_TimeZoneIterator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.d.hpp
deleted file mode 100644
index 4d13d81..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.d.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef icu4x_TimeZoneVariant_D_HPP
-#define icu4x_TimeZoneVariant_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class TimeZoneVariant;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum TimeZoneVariant {
-      TimeZoneVariant_Standard = 0,
-      TimeZoneVariant_Daylight = 1,
-    };
-    
-    typedef struct TimeZoneVariant_option {union { TimeZoneVariant ok; }; bool is_ok; } TimeZoneVariant_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TimeZoneVariant {
-public:
-  enum Value {
-    Standard = 0,
-    Daylight = 1,
-  };
-
-  TimeZoneVariant() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr TimeZoneVariant(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::TimeZoneVariant from_rearguard_isdst(bool isdst);
-
-  inline icu4x::capi::TimeZoneVariant AsFFI() const;
-  inline static icu4x::TimeZoneVariant FromFFI(icu4x::capi::TimeZoneVariant c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_TimeZoneVariant_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.hpp
deleted file mode 100644
index 719a6ee..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TimeZoneVariant.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_TimeZoneVariant_HPP
-#define icu4x_TimeZoneVariant_HPP
-
-#include "TimeZoneVariant.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::TimeZoneVariant icu4x_TimeZoneVariant_from_rearguard_isdst_mv1(icu4x::capi::TimeZoneVariant self, bool isdst);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::TimeZoneVariant icu4x::TimeZoneVariant::AsFFI() const {
-  return static_cast<icu4x::capi::TimeZoneVariant>(value);
-}
-
-inline icu4x::TimeZoneVariant icu4x::TimeZoneVariant::FromFFI(icu4x::capi::TimeZoneVariant c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::TimeZoneVariant_Standard:
-    case icu4x::capi::TimeZoneVariant_Daylight:
-      return static_cast<icu4x::TimeZoneVariant::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::TimeZoneVariant icu4x::TimeZoneVariant::from_rearguard_isdst(bool isdst) {
-  auto result = icu4x::capi::icu4x_TimeZoneVariant_from_rearguard_isdst_mv1(this->AsFFI(),
-    isdst);
-  return icu4x::TimeZoneVariant::FromFFI(result);
-}
-#endif // icu4x_TimeZoneVariant_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.d.hpp
deleted file mode 100644
index b5c59ff..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.d.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef icu4x_TitlecaseMapper_D_HPP
-#define icu4x_TitlecaseMapper_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct TitlecaseMapper; }
-class TitlecaseMapper;
-struct TitlecaseOptionsV1;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TitlecaseMapper;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TitlecaseMapper {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const;
-
-  inline const icu4x::capi::TitlecaseMapper* AsFFI() const;
-  inline icu4x::capi::TitlecaseMapper* AsFFI();
-  inline static const icu4x::TitlecaseMapper* FromFFI(const icu4x::capi::TitlecaseMapper* ptr);
-  inline static icu4x::TitlecaseMapper* FromFFI(icu4x::capi::TitlecaseMapper* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  TitlecaseMapper() = delete;
-  TitlecaseMapper(const icu4x::TitlecaseMapper&) = delete;
-  TitlecaseMapper(icu4x::TitlecaseMapper&&) noexcept = delete;
-  TitlecaseMapper operator=(const icu4x::TitlecaseMapper&) = delete;
-  TitlecaseMapper operator=(icu4x::TitlecaseMapper&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_TitlecaseMapper_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.hpp
deleted file mode 100644
index ed693d94..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseMapper.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef icu4x_TitlecaseMapper_HPP
-#define icu4x_TitlecaseMapper_HPP
-
-#include "TitlecaseMapper.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "TitlecaseOptionsV1.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_TitlecaseMapper_create_mv1_result {union {icu4x::capi::TitlecaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_mv1_result;
-    icu4x_TitlecaseMapper_create_mv1_result icu4x_TitlecaseMapper_create_mv1(void);
-    
-    typedef struct icu4x_TitlecaseMapper_create_with_provider_mv1_result {union {icu4x::capi::TitlecaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_with_provider_mv1_result;
-    icu4x_TitlecaseMapper_create_with_provider_mv1_result icu4x_TitlecaseMapper_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    void icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(const icu4x::capi::TitlecaseMapper* self, diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_TitlecaseMapper_destroy_mv1(TitlecaseMapper* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> icu4x::TitlecaseMapper::create() {
-  auto result = icu4x::capi::icu4x_TitlecaseMapper_create_mv1();
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::TitlecaseMapper>>(std::unique_ptr<icu4x::TitlecaseMapper>(icu4x::TitlecaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> icu4x::TitlecaseMapper::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_TitlecaseMapper_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::TitlecaseMapper>>(std::unique_ptr<icu4x::TitlecaseMapper>(icu4x::TitlecaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::TitlecaseMapper::titlecase_segment_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const {
-  if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) {
-    return diplomat::Err<diplomat::Utf8Error>();
-  }
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  icu4x::capi::icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(this->AsFFI(),
-    {s.data(), s.size()},
-    locale.AsFFI(),
-    options.AsFFI(),
-    &write);
-  return diplomat::Ok<std::string>(std::move(output));
-}
-
-inline const icu4x::capi::TitlecaseMapper* icu4x::TitlecaseMapper::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::TitlecaseMapper*>(this);
-}
-
-inline icu4x::capi::TitlecaseMapper* icu4x::TitlecaseMapper::AsFFI() {
-  return reinterpret_cast<icu4x::capi::TitlecaseMapper*>(this);
-}
-
-inline const icu4x::TitlecaseMapper* icu4x::TitlecaseMapper::FromFFI(const icu4x::capi::TitlecaseMapper* ptr) {
-  return reinterpret_cast<const icu4x::TitlecaseMapper*>(ptr);
-}
-
-inline icu4x::TitlecaseMapper* icu4x::TitlecaseMapper::FromFFI(icu4x::capi::TitlecaseMapper* ptr) {
-  return reinterpret_cast<icu4x::TitlecaseMapper*>(ptr);
-}
-
-inline void icu4x::TitlecaseMapper::operator delete(void* ptr) {
-  icu4x::capi::icu4x_TitlecaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::TitlecaseMapper*>(ptr));
-}
-
-
-#endif // icu4x_TitlecaseMapper_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp
deleted file mode 100644
index 75dc022..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_TitlecaseOptionsV1_D_HPP
-#define icu4x_TitlecaseOptionsV1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LeadingAdjustment.d.hpp"
-#include "TrailingCase.d.hpp"
-
-namespace icu4x {
-struct TitlecaseOptionsV1;
-class LeadingAdjustment;
-class TrailingCase;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct TitlecaseOptionsV1 {
-      icu4x::capi::LeadingAdjustment_option leading_adjustment;
-      icu4x::capi::TrailingCase_option trailing_case;
-    };
-    
-    typedef struct TitlecaseOptionsV1_option {union { TitlecaseOptionsV1 ok; }; bool is_ok; } TitlecaseOptionsV1_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct TitlecaseOptionsV1 {
-  std::optional<icu4x::LeadingAdjustment> leading_adjustment;
-  std::optional<icu4x::TrailingCase> trailing_case;
-
-  inline static icu4x::TitlecaseOptionsV1 default_options();
-
-  inline icu4x::capi::TitlecaseOptionsV1 AsFFI() const;
-  inline static icu4x::TitlecaseOptionsV1 FromFFI(icu4x::capi::TitlecaseOptionsV1 c_struct);
-};
-
-} // namespace
-#endif // icu4x_TitlecaseOptionsV1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp
deleted file mode 100644
index f220ca6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef icu4x_TitlecaseOptionsV1_HPP
-#define icu4x_TitlecaseOptionsV1_HPP
-
-#include "TitlecaseOptionsV1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "LeadingAdjustment.hpp"
-#include "TrailingCase.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::TitlecaseOptionsV1 icu4x_TitlecaseOptionsV1_default_mv1(void);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::default_options() {
-  auto result = icu4x::capi::icu4x_TitlecaseOptionsV1_default_mv1();
-  return icu4x::TitlecaseOptionsV1::FromFFI(result);
-}
-
-
-inline icu4x::capi::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::AsFFI() const {
-  return icu4x::capi::TitlecaseOptionsV1 {
-    /* .leading_adjustment = */ leading_adjustment.has_value() ? (icu4x::capi::LeadingAdjustment_option{ { leading_adjustment.value().AsFFI() }, true }) : (icu4x::capi::LeadingAdjustment_option{ {}, false }),
-    /* .trailing_case = */ trailing_case.has_value() ? (icu4x::capi::TrailingCase_option{ { trailing_case.value().AsFFI() }, true }) : (icu4x::capi::TrailingCase_option{ {}, false }),
-  };
-}
-
-inline icu4x::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::FromFFI(icu4x::capi::TitlecaseOptionsV1 c_struct) {
-  return icu4x::TitlecaseOptionsV1 {
-    /* .leading_adjustment = */ c_struct.leading_adjustment.is_ok ? std::optional(icu4x::LeadingAdjustment::FromFFI(c_struct.leading_adjustment.ok)) : std::nullopt,
-    /* .trailing_case = */ c_struct.trailing_case.is_ok ? std::optional(icu4x::TrailingCase::FromFFI(c_struct.trailing_case.ok)) : std::nullopt,
-  };
-}
-
-
-#endif // icu4x_TitlecaseOptionsV1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.d.hpp
deleted file mode 100644
index 1c364a2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_TrailingCase_D_HPP
-#define icu4x_TrailingCase_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum TrailingCase {
-      TrailingCase_Lower = 0,
-      TrailingCase_Unchanged = 1,
-    };
-    
-    typedef struct TrailingCase_option {union { TrailingCase ok; }; bool is_ok; } TrailingCase_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TrailingCase {
-public:
-  enum Value {
-    Lower = 0,
-    Unchanged = 1,
-  };
-
-  TrailingCase() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr TrailingCase(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::TrailingCase AsFFI() const;
-  inline static icu4x::TrailingCase FromFFI(icu4x::capi::TrailingCase c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_TrailingCase_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.hpp
deleted file mode 100644
index ed8647d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TrailingCase.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_TrailingCase_HPP
-#define icu4x_TrailingCase_HPP
-
-#include "TrailingCase.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::TrailingCase icu4x::TrailingCase::AsFFI() const {
-  return static_cast<icu4x::capi::TrailingCase>(value);
-}
-
-inline icu4x::TrailingCase icu4x::TrailingCase::FromFFI(icu4x::capi::TrailingCase c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::TrailingCase_Lower:
-    case icu4x::capi::TrailingCase_Unchanged:
-      return static_cast<icu4x::TrailingCase::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_TrailingCase_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.d.hpp
deleted file mode 100644
index f0d0764..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.d.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef icu4x_TransformResult_D_HPP
-#define icu4x_TransformResult_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum TransformResult {
-      TransformResult_Modified = 0,
-      TransformResult_Unmodified = 1,
-    };
-    
-    typedef struct TransformResult_option {union { TransformResult ok; }; bool is_ok; } TransformResult_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class TransformResult {
-public:
-  enum Value {
-    Modified = 0,
-    Unmodified = 1,
-  };
-
-  TransformResult() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr TransformResult(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::TransformResult AsFFI() const;
-  inline static icu4x::TransformResult FromFFI(icu4x::capi::TransformResult c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_TransformResult_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.hpp
deleted file mode 100644
index 346bdf2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/TransformResult.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef icu4x_TransformResult_HPP
-#define icu4x_TransformResult_HPP
-
-#include "TransformResult.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::TransformResult icu4x::TransformResult::AsFFI() const {
-  return static_cast<icu4x::capi::TransformResult>(value);
-}
-
-inline icu4x::TransformResult icu4x::TransformResult::FromFFI(icu4x::capi::TransformResult c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::TransformResult_Modified:
-    case icu4x::capi::TransformResult_Unmodified:
-      return static_cast<icu4x::TransformResult::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_TransformResult_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.d.hpp
deleted file mode 100644
index 2ef1639..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.d.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef icu4x_UnitsConverter_D_HPP
-#define icu4x_UnitsConverter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct UnitsConverter; }
-class UnitsConverter;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct UnitsConverter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class UnitsConverter {
-public:
-
-  inline double convert(double value) const;
-
-  inline std::unique_ptr<icu4x::UnitsConverter> clone() const;
-
-  inline const icu4x::capi::UnitsConverter* AsFFI() const;
-  inline icu4x::capi::UnitsConverter* AsFFI();
-  inline static const icu4x::UnitsConverter* FromFFI(const icu4x::capi::UnitsConverter* ptr);
-  inline static icu4x::UnitsConverter* FromFFI(icu4x::capi::UnitsConverter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  UnitsConverter() = delete;
-  UnitsConverter(const icu4x::UnitsConverter&) = delete;
-  UnitsConverter(icu4x::UnitsConverter&&) noexcept = delete;
-  UnitsConverter operator=(const icu4x::UnitsConverter&) = delete;
-  UnitsConverter operator=(icu4x::UnitsConverter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_UnitsConverter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.hpp
deleted file mode 100644
index 318740b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverter.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_UnitsConverter_HPP
-#define icu4x_UnitsConverter_HPP
-
-#include "UnitsConverter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    double icu4x_UnitsConverter_convert_double_mv1(const icu4x::capi::UnitsConverter* self, double value);
-    
-    icu4x::capi::UnitsConverter* icu4x_UnitsConverter_clone_mv1(const icu4x::capi::UnitsConverter* self);
-    
-    
-    void icu4x_UnitsConverter_destroy_mv1(UnitsConverter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline double icu4x::UnitsConverter::convert(double value) const {
-  auto result = icu4x::capi::icu4x_UnitsConverter_convert_double_mv1(this->AsFFI(),
-    value);
-  return result;
-}
-
-inline std::unique_ptr<icu4x::UnitsConverter> icu4x::UnitsConverter::clone() const {
-  auto result = icu4x::capi::icu4x_UnitsConverter_clone_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::UnitsConverter>(icu4x::UnitsConverter::FromFFI(result));
-}
-
-inline const icu4x::capi::UnitsConverter* icu4x::UnitsConverter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::UnitsConverter*>(this);
-}
-
-inline icu4x::capi::UnitsConverter* icu4x::UnitsConverter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::UnitsConverter*>(this);
-}
-
-inline const icu4x::UnitsConverter* icu4x::UnitsConverter::FromFFI(const icu4x::capi::UnitsConverter* ptr) {
-  return reinterpret_cast<const icu4x::UnitsConverter*>(ptr);
-}
-
-inline icu4x::UnitsConverter* icu4x::UnitsConverter::FromFFI(icu4x::capi::UnitsConverter* ptr) {
-  return reinterpret_cast<icu4x::UnitsConverter*>(ptr);
-}
-
-inline void icu4x::UnitsConverter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_UnitsConverter_destroy_mv1(reinterpret_cast<icu4x::capi::UnitsConverter*>(ptr));
-}
-
-
-#endif // icu4x_UnitsConverter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp
deleted file mode 100644
index 0705d86..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef icu4x_UnitsConverterFactory_D_HPP
-#define icu4x_UnitsConverterFactory_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct MeasureUnit; }
-class MeasureUnit;
-namespace capi { struct MeasureUnitParser; }
-class MeasureUnitParser;
-namespace capi { struct UnitsConverter; }
-class UnitsConverter;
-namespace capi { struct UnitsConverterFactory; }
-class UnitsConverterFactory;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct UnitsConverterFactory;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class UnitsConverterFactory {
-public:
-
-  inline static std::unique_ptr<icu4x::UnitsConverterFactory> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::unique_ptr<icu4x::UnitsConverter> converter(const icu4x::MeasureUnit& from, const icu4x::MeasureUnit& to) const;
-
-  inline std::unique_ptr<icu4x::MeasureUnitParser> parser() const;
-
-  inline const icu4x::capi::UnitsConverterFactory* AsFFI() const;
-  inline icu4x::capi::UnitsConverterFactory* AsFFI();
-  inline static const icu4x::UnitsConverterFactory* FromFFI(const icu4x::capi::UnitsConverterFactory* ptr);
-  inline static icu4x::UnitsConverterFactory* FromFFI(icu4x::capi::UnitsConverterFactory* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  UnitsConverterFactory() = delete;
-  UnitsConverterFactory(const icu4x::UnitsConverterFactory&) = delete;
-  UnitsConverterFactory(icu4x::UnitsConverterFactory&&) noexcept = delete;
-  UnitsConverterFactory operator=(const icu4x::UnitsConverterFactory&) = delete;
-  UnitsConverterFactory operator=(icu4x::UnitsConverterFactory&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_UnitsConverterFactory_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.hpp
deleted file mode 100644
index e08e352a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UnitsConverterFactory.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef icu4x_UnitsConverterFactory_HPP
-#define icu4x_UnitsConverterFactory_HPP
-
-#include "UnitsConverterFactory.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "MeasureUnit.hpp"
-#include "MeasureUnitParser.hpp"
-#include "UnitsConverter.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::UnitsConverterFactory* icu4x_UnitsConverterFactory_create_mv1(void);
-    
-    typedef struct icu4x_UnitsConverterFactory_create_with_provider_mv1_result {union {icu4x::capi::UnitsConverterFactory* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnitsConverterFactory_create_with_provider_mv1_result;
-    icu4x_UnitsConverterFactory_create_with_provider_mv1_result icu4x_UnitsConverterFactory_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::UnitsConverter* icu4x_UnitsConverterFactory_converter_mv1(const icu4x::capi::UnitsConverterFactory* self, const icu4x::capi::MeasureUnit* from, const icu4x::capi::MeasureUnit* to);
-    
-    icu4x::capi::MeasureUnitParser* icu4x_UnitsConverterFactory_parser_mv1(const icu4x::capi::UnitsConverterFactory* self);
-    
-    
-    void icu4x_UnitsConverterFactory_destroy_mv1(UnitsConverterFactory* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::UnitsConverterFactory> icu4x::UnitsConverterFactory::create() {
-  auto result = icu4x::capi::icu4x_UnitsConverterFactory_create_mv1();
-  return std::unique_ptr<icu4x::UnitsConverterFactory>(icu4x::UnitsConverterFactory::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError> icu4x::UnitsConverterFactory::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_UnitsConverterFactory_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnitsConverterFactory>>(std::unique_ptr<icu4x::UnitsConverterFactory>(icu4x::UnitsConverterFactory::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::UnitsConverter> icu4x::UnitsConverterFactory::converter(const icu4x::MeasureUnit& from, const icu4x::MeasureUnit& to) const {
-  auto result = icu4x::capi::icu4x_UnitsConverterFactory_converter_mv1(this->AsFFI(),
-    from.AsFFI(),
-    to.AsFFI());
-  return std::unique_ptr<icu4x::UnitsConverter>(icu4x::UnitsConverter::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::MeasureUnitParser> icu4x::UnitsConverterFactory::parser() const {
-  auto result = icu4x::capi::icu4x_UnitsConverterFactory_parser_mv1(this->AsFFI());
-  return std::unique_ptr<icu4x::MeasureUnitParser>(icu4x::MeasureUnitParser::FromFFI(result));
-}
-
-inline const icu4x::capi::UnitsConverterFactory* icu4x::UnitsConverterFactory::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::UnitsConverterFactory*>(this);
-}
-
-inline icu4x::capi::UnitsConverterFactory* icu4x::UnitsConverterFactory::AsFFI() {
-  return reinterpret_cast<icu4x::capi::UnitsConverterFactory*>(this);
-}
-
-inline const icu4x::UnitsConverterFactory* icu4x::UnitsConverterFactory::FromFFI(const icu4x::capi::UnitsConverterFactory* ptr) {
-  return reinterpret_cast<const icu4x::UnitsConverterFactory*>(ptr);
-}
-
-inline icu4x::UnitsConverterFactory* icu4x::UnitsConverterFactory::FromFFI(icu4x::capi::UnitsConverterFactory* ptr) {
-  return reinterpret_cast<icu4x::UnitsConverterFactory*>(ptr);
-}
-
-inline void icu4x::UnitsConverterFactory::operator delete(void* ptr) {
-  icu4x::capi::icu4x_UnitsConverterFactory_destroy_mv1(reinterpret_cast<icu4x::capi::UnitsConverterFactory*>(ptr));
-}
-
-
-#endif // icu4x_UnitsConverterFactory_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.d.hpp
deleted file mode 100644
index 92eede7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.d.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef icu4x_UtcOffset_D_HPP
-#define icu4x_UtcOffset_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct UtcOffset; }
-class UtcOffset;
-struct TimeZoneInvalidOffsetError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct UtcOffset;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class UtcOffset {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> from_seconds(int32_t seconds);
-
-  inline static std::unique_ptr<icu4x::UtcOffset> from_eighths_of_hour(int8_t eighths_of_hour);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> from_string(std::string_view offset);
-
-  inline int8_t eighths_of_hour() const;
-
-  inline int32_t seconds() const;
-
-  inline bool is_non_negative() const;
-
-  inline bool is_zero() const;
-
-  inline int32_t hours_part() const;
-
-  inline uint32_t minutes_part() const;
-
-  inline uint32_t seconds_part() const;
-
-  inline const icu4x::capi::UtcOffset* AsFFI() const;
-  inline icu4x::capi::UtcOffset* AsFFI();
-  inline static const icu4x::UtcOffset* FromFFI(const icu4x::capi::UtcOffset* ptr);
-  inline static icu4x::UtcOffset* FromFFI(icu4x::capi::UtcOffset* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  UtcOffset() = delete;
-  UtcOffset(const icu4x::UtcOffset&) = delete;
-  UtcOffset(icu4x::UtcOffset&&) noexcept = delete;
-  UtcOffset operator=(const icu4x::UtcOffset&) = delete;
-  UtcOffset operator=(icu4x::UtcOffset&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_UtcOffset_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.hpp
deleted file mode 100644
index ec54150..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffset.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef icu4x_UtcOffset_HPP
-#define icu4x_UtcOffset_HPP
-
-#include "UtcOffset.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "TimeZoneInvalidOffsetError.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_UtcOffset_from_seconds_mv1_result {union {icu4x::capi::UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_seconds_mv1_result;
-    icu4x_UtcOffset_from_seconds_mv1_result icu4x_UtcOffset_from_seconds_mv1(int32_t seconds);
-    
-    icu4x::capi::UtcOffset* icu4x_UtcOffset_from_eighths_of_hour_mv1(int8_t eighths_of_hour);
-    
-    typedef struct icu4x_UtcOffset_from_string_mv1_result {union {icu4x::capi::UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_string_mv1_result;
-    icu4x_UtcOffset_from_string_mv1_result icu4x_UtcOffset_from_string_mv1(diplomat::capi::DiplomatStringView offset);
-    
-    int8_t icu4x_UtcOffset_eighths_of_hour_mv1(const icu4x::capi::UtcOffset* self);
-    
-    int32_t icu4x_UtcOffset_seconds_mv1(const icu4x::capi::UtcOffset* self);
-    
-    bool icu4x_UtcOffset_is_non_negative_mv1(const icu4x::capi::UtcOffset* self);
-    
-    bool icu4x_UtcOffset_is_zero_mv1(const icu4x::capi::UtcOffset* self);
-    
-    int32_t icu4x_UtcOffset_hours_part_mv1(const icu4x::capi::UtcOffset* self);
-    
-    uint32_t icu4x_UtcOffset_minutes_part_mv1(const icu4x::capi::UtcOffset* self);
-    
-    uint32_t icu4x_UtcOffset_seconds_part_mv1(const icu4x::capi::UtcOffset* self);
-    
-    
-    void icu4x_UtcOffset_destroy_mv1(UtcOffset* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> icu4x::UtcOffset::from_seconds(int32_t seconds) {
-  auto result = icu4x::capi::icu4x_UtcOffset_from_seconds_mv1(seconds);
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<icu4x::UtcOffset>>(std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {}));
-}
-
-inline std::unique_ptr<icu4x::UtcOffset> icu4x::UtcOffset::from_eighths_of_hour(int8_t eighths_of_hour) {
-  auto result = icu4x::capi::icu4x_UtcOffset_from_eighths_of_hour_mv1(eighths_of_hour);
-  return std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> icu4x::UtcOffset::from_string(std::string_view offset) {
-  auto result = icu4x::capi::icu4x_UtcOffset_from_string_mv1({offset.data(), offset.size()});
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<icu4x::UtcOffset>>(std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {}));
-}
-
-inline int8_t icu4x::UtcOffset::eighths_of_hour() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_eighths_of_hour_mv1(this->AsFFI());
-  return result;
-}
-
-inline int32_t icu4x::UtcOffset::seconds() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_seconds_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::UtcOffset::is_non_negative() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_is_non_negative_mv1(this->AsFFI());
-  return result;
-}
-
-inline bool icu4x::UtcOffset::is_zero() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_is_zero_mv1(this->AsFFI());
-  return result;
-}
-
-inline int32_t icu4x::UtcOffset::hours_part() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_hours_part_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint32_t icu4x::UtcOffset::minutes_part() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_minutes_part_mv1(this->AsFFI());
-  return result;
-}
-
-inline uint32_t icu4x::UtcOffset::seconds_part() const {
-  auto result = icu4x::capi::icu4x_UtcOffset_seconds_part_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::UtcOffset* icu4x::UtcOffset::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::UtcOffset*>(this);
-}
-
-inline icu4x::capi::UtcOffset* icu4x::UtcOffset::AsFFI() {
-  return reinterpret_cast<icu4x::capi::UtcOffset*>(this);
-}
-
-inline const icu4x::UtcOffset* icu4x::UtcOffset::FromFFI(const icu4x::capi::UtcOffset* ptr) {
-  return reinterpret_cast<const icu4x::UtcOffset*>(ptr);
-}
-
-inline icu4x::UtcOffset* icu4x::UtcOffset::FromFFI(icu4x::capi::UtcOffset* ptr) {
-  return reinterpret_cast<icu4x::UtcOffset*>(ptr);
-}
-
-inline void icu4x::UtcOffset::operator delete(void* ptr) {
-  icu4x::capi::icu4x_UtcOffset_destroy_mv1(reinterpret_cast<icu4x::capi::UtcOffset*>(ptr));
-}
-
-
-#endif // icu4x_UtcOffset_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.d.hpp
deleted file mode 100644
index 49c593c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.d.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef icu4x_UtcOffsetCalculator_D_HPP
-#define icu4x_UtcOffsetCalculator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZone; }
-class TimeZone;
-namespace capi { struct UtcOffsetCalculator; }
-class UtcOffsetCalculator;
-struct UtcOffsets;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct UtcOffsetCalculator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class UtcOffsetCalculator {
-public:
-
-  inline static std::unique_ptr<icu4x::UtcOffsetCalculator> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::UtcOffsetCalculator>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::optional<icu4x::UtcOffsets> compute_offsets_from_time_zone(const icu4x::TimeZone& time_zone, const icu4x::IsoDate& local_date, const icu4x::Time& local_time) const;
-
-  inline const icu4x::capi::UtcOffsetCalculator* AsFFI() const;
-  inline icu4x::capi::UtcOffsetCalculator* AsFFI();
-  inline static const icu4x::UtcOffsetCalculator* FromFFI(const icu4x::capi::UtcOffsetCalculator* ptr);
-  inline static icu4x::UtcOffsetCalculator* FromFFI(icu4x::capi::UtcOffsetCalculator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  UtcOffsetCalculator() = delete;
-  UtcOffsetCalculator(const icu4x::UtcOffsetCalculator&) = delete;
-  UtcOffsetCalculator(icu4x::UtcOffsetCalculator&&) noexcept = delete;
-  UtcOffsetCalculator operator=(const icu4x::UtcOffsetCalculator&) = delete;
-  UtcOffsetCalculator operator=(icu4x::UtcOffsetCalculator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_UtcOffsetCalculator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.hpp
deleted file mode 100644
index d51a8c4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsetCalculator.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef icu4x_UtcOffsetCalculator_HPP
-#define icu4x_UtcOffsetCalculator_HPP
-
-#include "UtcOffsetCalculator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "IsoDate.hpp"
-#include "Time.hpp"
-#include "TimeZone.hpp"
-#include "UtcOffsets.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::UtcOffsetCalculator* icu4x_UtcOffsetCalculator_create_mv1(void);
-    
-    typedef struct icu4x_UtcOffsetCalculator_create_with_provider_mv1_result {union {icu4x::capi::UtcOffsetCalculator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UtcOffsetCalculator_create_with_provider_mv1_result;
-    icu4x_UtcOffsetCalculator_create_with_provider_mv1_result icu4x_UtcOffsetCalculator_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    typedef struct icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result {union {icu4x::capi::UtcOffsets ok; }; bool is_ok;} icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result;
-    icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1_result icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1(const icu4x::capi::UtcOffsetCalculator* self, const icu4x::capi::TimeZone* time_zone, const icu4x::capi::IsoDate* local_date, const icu4x::capi::Time* local_time);
-    
-    
-    void icu4x_UtcOffsetCalculator_destroy_mv1(UtcOffsetCalculator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::UtcOffsetCalculator> icu4x::UtcOffsetCalculator::create() {
-  auto result = icu4x::capi::icu4x_UtcOffsetCalculator_create_mv1();
-  return std::unique_ptr<icu4x::UtcOffsetCalculator>(icu4x::UtcOffsetCalculator::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::UtcOffsetCalculator>, icu4x::DataError> icu4x::UtcOffsetCalculator::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_UtcOffsetCalculator_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UtcOffsetCalculator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UtcOffsetCalculator>>(std::unique_ptr<icu4x::UtcOffsetCalculator>(icu4x::UtcOffsetCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UtcOffsetCalculator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::optional<icu4x::UtcOffsets> icu4x::UtcOffsetCalculator::compute_offsets_from_time_zone(const icu4x::TimeZone& time_zone, const icu4x::IsoDate& local_date, const icu4x::Time& local_time) const {
-  auto result = icu4x::capi::icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1(this->AsFFI(),
-    time_zone.AsFFI(),
-    local_date.AsFFI(),
-    local_time.AsFFI());
-  return result.is_ok ? std::optional<icu4x::UtcOffsets>(icu4x::UtcOffsets::FromFFI(result.ok)) : std::nullopt;
-}
-
-inline const icu4x::capi::UtcOffsetCalculator* icu4x::UtcOffsetCalculator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::UtcOffsetCalculator*>(this);
-}
-
-inline icu4x::capi::UtcOffsetCalculator* icu4x::UtcOffsetCalculator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::UtcOffsetCalculator*>(this);
-}
-
-inline const icu4x::UtcOffsetCalculator* icu4x::UtcOffsetCalculator::FromFFI(const icu4x::capi::UtcOffsetCalculator* ptr) {
-  return reinterpret_cast<const icu4x::UtcOffsetCalculator*>(ptr);
-}
-
-inline icu4x::UtcOffsetCalculator* icu4x::UtcOffsetCalculator::FromFFI(icu4x::capi::UtcOffsetCalculator* ptr) {
-  return reinterpret_cast<icu4x::UtcOffsetCalculator*>(ptr);
-}
-
-inline void icu4x::UtcOffsetCalculator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_UtcOffsetCalculator_destroy_mv1(reinterpret_cast<icu4x::capi::UtcOffsetCalculator*>(ptr));
-}
-
-
-#endif // icu4x_UtcOffsetCalculator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.d.hpp
deleted file mode 100644
index e3538a0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_UtcOffsets_D_HPP
-#define icu4x_UtcOffsets_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct UtcOffset; }
-class UtcOffset;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct UtcOffsets {
-      icu4x::capi::UtcOffset* standard;
-      icu4x::capi::UtcOffset* daylight;
-    };
-    
-    typedef struct UtcOffsets_option {union { UtcOffsets ok; }; bool is_ok; } UtcOffsets_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct UtcOffsets {
-  std::unique_ptr<icu4x::UtcOffset> standard;
-  std::unique_ptr<icu4x::UtcOffset> daylight;
-
-  inline icu4x::capi::UtcOffsets AsFFI() const;
-  inline static icu4x::UtcOffsets FromFFI(icu4x::capi::UtcOffsets c_struct);
-};
-
-} // namespace
-#endif // icu4x_UtcOffsets_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.hpp
deleted file mode 100644
index 99e2a79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/UtcOffsets.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef icu4x_UtcOffsets_HPP
-#define icu4x_UtcOffsets_HPP
-
-#include "UtcOffsets.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "UtcOffset.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::UtcOffsets icu4x::UtcOffsets::AsFFI() const {
-  return icu4x::capi::UtcOffsets {
-    /* .standard = */ standard->AsFFI(),
-    /* .daylight = */ daylight ? daylight->AsFFI() : nullptr,
-  };
-}
-
-inline icu4x::UtcOffsets icu4x::UtcOffsets::FromFFI(icu4x::capi::UtcOffsets c_struct) {
-  return icu4x::UtcOffsets {
-    /* .standard = */ std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(c_struct.standard)),
-    /* .daylight = */ std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(c_struct.daylight)),
-  };
-}
-
-
-#endif // icu4x_UtcOffsets_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.d.hpp
deleted file mode 100644
index ed11163..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_WeekCalculator_D_HPP
-#define icu4x_WeekCalculator_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct WeekCalculator; }
-class WeekCalculator;
-struct WeekendContainsDay;
-class DataError;
-class Weekday;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WeekCalculator;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WeekCalculator {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> create(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static std::unique_ptr<icu4x::WeekCalculator> from_first_day_of_week_and_min_week_days(icu4x::Weekday first_weekday, uint8_t min_week_days);
-
-  inline icu4x::Weekday first_weekday() const;
-
-  inline uint8_t min_week_days() const;
-
-  inline icu4x::WeekendContainsDay weekend() const;
-
-  inline const icu4x::capi::WeekCalculator* AsFFI() const;
-  inline icu4x::capi::WeekCalculator* AsFFI();
-  inline static const icu4x::WeekCalculator* FromFFI(const icu4x::capi::WeekCalculator* ptr);
-  inline static icu4x::WeekCalculator* FromFFI(icu4x::capi::WeekCalculator* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WeekCalculator() = delete;
-  WeekCalculator(const icu4x::WeekCalculator&) = delete;
-  WeekCalculator(icu4x::WeekCalculator&&) noexcept = delete;
-  WeekCalculator operator=(const icu4x::WeekCalculator&) = delete;
-  WeekCalculator operator=(icu4x::WeekCalculator&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WeekCalculator_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.hpp
deleted file mode 100644
index 895815d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekCalculator.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef icu4x_WeekCalculator_HPP
-#define icu4x_WeekCalculator_HPP
-
-#include "WeekCalculator.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "Weekday.hpp"
-#include "WeekendContainsDay.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_WeekCalculator_create_mv1_result {union {icu4x::capi::WeekCalculator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_mv1_result;
-    icu4x_WeekCalculator_create_mv1_result icu4x_WeekCalculator_create_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_WeekCalculator_create_with_provider_mv1_result {union {icu4x::capi::WeekCalculator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_with_provider_mv1_result;
-    icu4x_WeekCalculator_create_with_provider_mv1_result icu4x_WeekCalculator_create_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::WeekCalculator* icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(icu4x::capi::Weekday first_weekday, uint8_t min_week_days);
-    
-    icu4x::capi::Weekday icu4x_WeekCalculator_first_weekday_mv1(const icu4x::capi::WeekCalculator* self);
-    
-    uint8_t icu4x_WeekCalculator_min_week_days_mv1(const icu4x::capi::WeekCalculator* self);
-    
-    icu4x::capi::WeekendContainsDay icu4x_WeekCalculator_weekend_mv1(const icu4x::capi::WeekCalculator* self);
-    
-    
-    void icu4x_WeekCalculator_destroy_mv1(WeekCalculator* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> icu4x::WeekCalculator::create(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WeekCalculator_create_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WeekCalculator>>(std::unique_ptr<icu4x::WeekCalculator>(icu4x::WeekCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> icu4x::WeekCalculator::create_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WeekCalculator_create_with_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WeekCalculator>>(std::unique_ptr<icu4x::WeekCalculator>(icu4x::WeekCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::WeekCalculator> icu4x::WeekCalculator::from_first_day_of_week_and_min_week_days(icu4x::Weekday first_weekday, uint8_t min_week_days) {
-  auto result = icu4x::capi::icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(first_weekday.AsFFI(),
-    min_week_days);
-  return std::unique_ptr<icu4x::WeekCalculator>(icu4x::WeekCalculator::FromFFI(result));
-}
-
-inline icu4x::Weekday icu4x::WeekCalculator::first_weekday() const {
-  auto result = icu4x::capi::icu4x_WeekCalculator_first_weekday_mv1(this->AsFFI());
-  return icu4x::Weekday::FromFFI(result);
-}
-
-inline uint8_t icu4x::WeekCalculator::min_week_days() const {
-  auto result = icu4x::capi::icu4x_WeekCalculator_min_week_days_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::WeekendContainsDay icu4x::WeekCalculator::weekend() const {
-  auto result = icu4x::capi::icu4x_WeekCalculator_weekend_mv1(this->AsFFI());
-  return icu4x::WeekendContainsDay::FromFFI(result);
-}
-
-inline const icu4x::capi::WeekCalculator* icu4x::WeekCalculator::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WeekCalculator*>(this);
-}
-
-inline icu4x::capi::WeekCalculator* icu4x::WeekCalculator::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WeekCalculator*>(this);
-}
-
-inline const icu4x::WeekCalculator* icu4x::WeekCalculator::FromFFI(const icu4x::capi::WeekCalculator* ptr) {
-  return reinterpret_cast<const icu4x::WeekCalculator*>(ptr);
-}
-
-inline icu4x::WeekCalculator* icu4x::WeekCalculator::FromFFI(icu4x::capi::WeekCalculator* ptr) {
-  return reinterpret_cast<icu4x::WeekCalculator*>(ptr);
-}
-
-inline void icu4x::WeekCalculator::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WeekCalculator_destroy_mv1(reinterpret_cast<icu4x::capi::WeekCalculator*>(ptr));
-}
-
-
-#endif // icu4x_WeekCalculator_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.d.hpp
deleted file mode 100644
index d3acf54..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.d.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef icu4x_WeekOf_D_HPP
-#define icu4x_WeekOf_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "WeekRelativeUnit.d.hpp"
-
-namespace icu4x {
-class WeekRelativeUnit;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WeekOf {
-      uint8_t week;
-      icu4x::capi::WeekRelativeUnit unit;
-    };
-    
-    typedef struct WeekOf_option {union { WeekOf ok; }; bool is_ok; } WeekOf_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct WeekOf {
-  uint8_t week;
-  icu4x::WeekRelativeUnit unit;
-
-  inline icu4x::capi::WeekOf AsFFI() const;
-  inline static icu4x::WeekOf FromFFI(icu4x::capi::WeekOf c_struct);
-};
-
-} // namespace
-#endif // icu4x_WeekOf_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.hpp
deleted file mode 100644
index 0660284..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekOf.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef icu4x_WeekOf_HPP
-#define icu4x_WeekOf_HPP
-
-#include "WeekOf.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "WeekRelativeUnit.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::WeekOf icu4x::WeekOf::AsFFI() const {
-  return icu4x::capi::WeekOf {
-    /* .week = */ week,
-    /* .unit = */ unit.AsFFI(),
-  };
-}
-
-inline icu4x::WeekOf icu4x::WeekOf::FromFFI(icu4x::capi::WeekOf c_struct) {
-  return icu4x::WeekOf {
-    /* .week = */ c_struct.week,
-    /* .unit = */ icu4x::WeekRelativeUnit::FromFFI(c_struct.unit),
-  };
-}
-
-
-#endif // icu4x_WeekOf_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp
deleted file mode 100644
index 301ecb1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_WeekRelativeUnit_D_HPP
-#define icu4x_WeekRelativeUnit_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum WeekRelativeUnit {
-      WeekRelativeUnit_Previous = 0,
-      WeekRelativeUnit_Current = 1,
-      WeekRelativeUnit_Next = 2,
-    };
-    
-    typedef struct WeekRelativeUnit_option {union { WeekRelativeUnit ok; }; bool is_ok; } WeekRelativeUnit_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WeekRelativeUnit {
-public:
-  enum Value {
-    Previous = 0,
-    Current = 1,
-    Next = 2,
-  };
-
-  WeekRelativeUnit() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr WeekRelativeUnit(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::WeekRelativeUnit AsFFI() const;
-  inline static icu4x::WeekRelativeUnit FromFFI(icu4x::capi::WeekRelativeUnit c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_WeekRelativeUnit_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.hpp
deleted file mode 100644
index 2bd3984..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekRelativeUnit.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_WeekRelativeUnit_HPP
-#define icu4x_WeekRelativeUnit_HPP
-
-#include "WeekRelativeUnit.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::WeekRelativeUnit icu4x::WeekRelativeUnit::AsFFI() const {
-  return static_cast<icu4x::capi::WeekRelativeUnit>(value);
-}
-
-inline icu4x::WeekRelativeUnit icu4x::WeekRelativeUnit::FromFFI(icu4x::capi::WeekRelativeUnit c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::WeekRelativeUnit_Previous:
-    case icu4x::capi::WeekRelativeUnit_Current:
-    case icu4x::capi::WeekRelativeUnit_Next:
-      return static_cast<icu4x::WeekRelativeUnit::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_WeekRelativeUnit_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.d.hpp
deleted file mode 100644
index 54ba630..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.d.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef icu4x_Weekday_D_HPP
-#define icu4x_Weekday_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum Weekday {
-      Weekday_Monday = 1,
-      Weekday_Tuesday = 2,
-      Weekday_Wednesday = 3,
-      Weekday_Thursday = 4,
-      Weekday_Friday = 5,
-      Weekday_Saturday = 6,
-      Weekday_Sunday = 7,
-    };
-    
-    typedef struct Weekday_option {union { Weekday ok; }; bool is_ok; } Weekday_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class Weekday {
-public:
-  enum Value {
-    Monday = 1,
-    Tuesday = 2,
-    Wednesday = 3,
-    Thursday = 4,
-    Friday = 5,
-    Saturday = 6,
-    Sunday = 7,
-  };
-
-  Weekday() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr Weekday(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::Weekday AsFFI() const;
-  inline static icu4x::Weekday FromFFI(icu4x::capi::Weekday c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_Weekday_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.hpp
deleted file mode 100644
index cb0f7640..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/Weekday.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef icu4x_Weekday_HPP
-#define icu4x_Weekday_HPP
-
-#include "Weekday.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::Weekday icu4x::Weekday::AsFFI() const {
-  return static_cast<icu4x::capi::Weekday>(value);
-}
-
-inline icu4x::Weekday icu4x::Weekday::FromFFI(icu4x::capi::Weekday c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::Weekday_Monday:
-    case icu4x::capi::Weekday_Tuesday:
-    case icu4x::capi::Weekday_Wednesday:
-    case icu4x::capi::Weekday_Thursday:
-    case icu4x::capi::Weekday_Friday:
-    case icu4x::capi::Weekday_Saturday:
-    case icu4x::capi::Weekday_Sunday:
-      return static_cast<icu4x::Weekday::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_Weekday_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.d.hpp
deleted file mode 100644
index e5cd37b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.d.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef icu4x_WeekendContainsDay_D_HPP
-#define icu4x_WeekendContainsDay_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    struct WeekendContainsDay {
-      bool monday;
-      bool tuesday;
-      bool wednesday;
-      bool thursday;
-      bool friday;
-      bool saturday;
-      bool sunday;
-    };
-    
-    typedef struct WeekendContainsDay_option {union { WeekendContainsDay ok; }; bool is_ok; } WeekendContainsDay_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct WeekendContainsDay {
-  bool monday;
-  bool tuesday;
-  bool wednesday;
-  bool thursday;
-  bool friday;
-  bool saturday;
-  bool sunday;
-
-  inline icu4x::capi::WeekendContainsDay AsFFI() const;
-  inline static icu4x::WeekendContainsDay FromFFI(icu4x::capi::WeekendContainsDay c_struct);
-};
-
-} // namespace
-#endif // icu4x_WeekendContainsDay_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.hpp
deleted file mode 100644
index de9cb9f0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WeekendContainsDay.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef icu4x_WeekendContainsDay_HPP
-#define icu4x_WeekendContainsDay_HPP
-
-#include "WeekendContainsDay.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-
-inline icu4x::capi::WeekendContainsDay icu4x::WeekendContainsDay::AsFFI() const {
-  return icu4x::capi::WeekendContainsDay {
-    /* .monday = */ monday,
-    /* .tuesday = */ tuesday,
-    /* .wednesday = */ wednesday,
-    /* .thursday = */ thursday,
-    /* .friday = */ friday,
-    /* .saturday = */ saturday,
-    /* .sunday = */ sunday,
-  };
-}
-
-inline icu4x::WeekendContainsDay icu4x::WeekendContainsDay::FromFFI(icu4x::capi::WeekendContainsDay c_struct) {
-  return icu4x::WeekendContainsDay {
-    /* .monday = */ c_struct.monday,
-    /* .tuesday = */ c_struct.tuesday,
-    /* .wednesday = */ c_struct.wednesday,
-    /* .thursday = */ c_struct.thursday,
-    /* .friday = */ c_struct.friday,
-    /* .saturday = */ c_struct.saturday,
-    /* .sunday = */ c_struct.sunday,
-  };
-}
-
-
-#endif // icu4x_WeekendContainsDay_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.d.hpp
deleted file mode 100644
index 83c40d1b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.d.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_WindowsParser_D_HPP
-#define icu4x_WindowsParser_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct TimeZone; }
-class TimeZone;
-namespace capi { struct WindowsParser; }
-class WindowsParser;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WindowsParser;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WindowsParser {
-public:
-
-  inline static std::unique_ptr<icu4x::WindowsParser> create();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WindowsParser>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider);
-
-  inline std::unique_ptr<icu4x::TimeZone> parse(std::string_view value, std::string_view region) const;
-
-  inline const icu4x::capi::WindowsParser* AsFFI() const;
-  inline icu4x::capi::WindowsParser* AsFFI();
-  inline static const icu4x::WindowsParser* FromFFI(const icu4x::capi::WindowsParser* ptr);
-  inline static icu4x::WindowsParser* FromFFI(icu4x::capi::WindowsParser* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WindowsParser() = delete;
-  WindowsParser(const icu4x::WindowsParser&) = delete;
-  WindowsParser(icu4x::WindowsParser&&) noexcept = delete;
-  WindowsParser operator=(const icu4x::WindowsParser&) = delete;
-  WindowsParser operator=(icu4x::WindowsParser&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WindowsParser_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.hpp
deleted file mode 100644
index 7d976c4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WindowsParser.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef icu4x_WindowsParser_HPP
-#define icu4x_WindowsParser_HPP
-
-#include "WindowsParser.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "TimeZone.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::WindowsParser* icu4x_WindowsParser_create_mv1(void);
-    
-    typedef struct icu4x_WindowsParser_create_with_provider_mv1_result {union {icu4x::capi::WindowsParser* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WindowsParser_create_with_provider_mv1_result;
-    icu4x_WindowsParser_create_with_provider_mv1_result icu4x_WindowsParser_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
-    
-    icu4x::capi::TimeZone* icu4x_WindowsParser_parse_mv1(const icu4x::capi::WindowsParser* self, diplomat::capi::DiplomatStringView value, diplomat::capi::DiplomatStringView region);
-    
-    
-    void icu4x_WindowsParser_destroy_mv1(WindowsParser* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::WindowsParser> icu4x::WindowsParser::create() {
-  auto result = icu4x::capi::icu4x_WindowsParser_create_mv1();
-  return std::unique_ptr<icu4x::WindowsParser>(icu4x::WindowsParser::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WindowsParser>, icu4x::DataError> icu4x::WindowsParser::create_with_provider(const icu4x::DataProvider& provider) {
-  auto result = icu4x::capi::icu4x_WindowsParser_create_with_provider_mv1(provider.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WindowsParser>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WindowsParser>>(std::unique_ptr<icu4x::WindowsParser>(icu4x::WindowsParser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WindowsParser>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::TimeZone> icu4x::WindowsParser::parse(std::string_view value, std::string_view region) const {
-  auto result = icu4x::capi::icu4x_WindowsParser_parse_mv1(this->AsFFI(),
-    {value.data(), value.size()},
-    {region.data(), region.size()});
-  return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result));
-}
-
-inline const icu4x::capi::WindowsParser* icu4x::WindowsParser::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WindowsParser*>(this);
-}
-
-inline icu4x::capi::WindowsParser* icu4x::WindowsParser::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WindowsParser*>(this);
-}
-
-inline const icu4x::WindowsParser* icu4x::WindowsParser::FromFFI(const icu4x::capi::WindowsParser* ptr) {
-  return reinterpret_cast<const icu4x::WindowsParser*>(ptr);
-}
-
-inline icu4x::WindowsParser* icu4x::WindowsParser::FromFFI(icu4x::capi::WindowsParser* ptr) {
-  return reinterpret_cast<icu4x::WindowsParser*>(ptr);
-}
-
-inline void icu4x::WindowsParser::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WindowsParser_destroy_mv1(reinterpret_cast<icu4x::capi::WindowsParser*>(ptr));
-}
-
-
-#endif // icu4x_WindowsParser_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.d.hpp
deleted file mode 100644
index 4896bb0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.d.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef icu4x_WordBreak_D_HPP
-#define icu4x_WordBreak_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class WordBreak;
-}
-
-
-namespace icu4x {
-namespace capi {
-    enum WordBreak {
-      WordBreak_Other = 0,
-      WordBreak_ALetter = 1,
-      WordBreak_Format = 2,
-      WordBreak_Katakana = 3,
-      WordBreak_MidLetter = 4,
-      WordBreak_MidNum = 5,
-      WordBreak_Numeric = 6,
-      WordBreak_ExtendNumLet = 7,
-      WordBreak_CR = 8,
-      WordBreak_Extend = 9,
-      WordBreak_LF = 10,
-      WordBreak_MidNumLet = 11,
-      WordBreak_Newline = 12,
-      WordBreak_RegionalIndicator = 13,
-      WordBreak_HebrewLetter = 14,
-      WordBreak_SingleQuote = 15,
-      WordBreak_DoubleQuote = 16,
-      WordBreak_EBase = 17,
-      WordBreak_EBaseGAZ = 18,
-      WordBreak_EModifier = 19,
-      WordBreak_GlueAfterZwj = 20,
-      WordBreak_ZWJ = 21,
-      WordBreak_WSegSpace = 22,
-    };
-    
-    typedef struct WordBreak_option {union { WordBreak ok; }; bool is_ok; } WordBreak_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WordBreak {
-public:
-  enum Value {
-    Other = 0,
-    ALetter = 1,
-    Format = 2,
-    Katakana = 3,
-    MidLetter = 4,
-    MidNum = 5,
-    Numeric = 6,
-    ExtendNumLet = 7,
-    CR = 8,
-    Extend = 9,
-    LF = 10,
-    MidNumLet = 11,
-    Newline = 12,
-    RegionalIndicator = 13,
-    HebrewLetter = 14,
-    SingleQuote = 15,
-    DoubleQuote = 16,
-    EBase = 17,
-    EBaseGAZ = 18,
-    EModifier = 19,
-    GlueAfterZwj = 20,
-    ZWJ = 21,
-    WSegSpace = 22,
-  };
-
-  WordBreak() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr WordBreak(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline static icu4x::WordBreak for_char(char32_t ch);
-
-  inline std::optional<std::string_view> long_name();
-
-  inline std::optional<std::string_view> short_name();
-
-  inline uint8_t to_integer_value();
-
-  inline static std::optional<icu4x::WordBreak> from_integer_value(uint8_t other);
-
-  inline icu4x::capi::WordBreak AsFFI() const;
-  inline static icu4x::WordBreak FromFFI(icu4x::capi::WordBreak c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_WordBreak_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.hpp
deleted file mode 100644
index 37b2c21..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreak.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef icu4x_WordBreak_HPP
-#define icu4x_WordBreak_HPP
-
-#include "WordBreak.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::WordBreak icu4x_WordBreak_for_char_mv1(char32_t ch);
-    
-    typedef struct icu4x_WordBreak_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_WordBreak_long_name_mv1_result;
-    icu4x_WordBreak_long_name_mv1_result icu4x_WordBreak_long_name_mv1(icu4x::capi::WordBreak self);
-    
-    typedef struct icu4x_WordBreak_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_WordBreak_short_name_mv1_result;
-    icu4x_WordBreak_short_name_mv1_result icu4x_WordBreak_short_name_mv1(icu4x::capi::WordBreak self);
-    
-    uint8_t icu4x_WordBreak_to_integer_value_mv1(icu4x::capi::WordBreak self);
-    
-    typedef struct icu4x_WordBreak_from_integer_value_mv1_result {union {icu4x::capi::WordBreak ok; }; bool is_ok;} icu4x_WordBreak_from_integer_value_mv1_result;
-    icu4x_WordBreak_from_integer_value_mv1_result icu4x_WordBreak_from_integer_value_mv1(uint8_t other);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::WordBreak icu4x::WordBreak::AsFFI() const {
-  return static_cast<icu4x::capi::WordBreak>(value);
-}
-
-inline icu4x::WordBreak icu4x::WordBreak::FromFFI(icu4x::capi::WordBreak c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::WordBreak_Other:
-    case icu4x::capi::WordBreak_ALetter:
-    case icu4x::capi::WordBreak_Format:
-    case icu4x::capi::WordBreak_Katakana:
-    case icu4x::capi::WordBreak_MidLetter:
-    case icu4x::capi::WordBreak_MidNum:
-    case icu4x::capi::WordBreak_Numeric:
-    case icu4x::capi::WordBreak_ExtendNumLet:
-    case icu4x::capi::WordBreak_CR:
-    case icu4x::capi::WordBreak_Extend:
-    case icu4x::capi::WordBreak_LF:
-    case icu4x::capi::WordBreak_MidNumLet:
-    case icu4x::capi::WordBreak_Newline:
-    case icu4x::capi::WordBreak_RegionalIndicator:
-    case icu4x::capi::WordBreak_HebrewLetter:
-    case icu4x::capi::WordBreak_SingleQuote:
-    case icu4x::capi::WordBreak_DoubleQuote:
-    case icu4x::capi::WordBreak_EBase:
-    case icu4x::capi::WordBreak_EBaseGAZ:
-    case icu4x::capi::WordBreak_EModifier:
-    case icu4x::capi::WordBreak_GlueAfterZwj:
-    case icu4x::capi::WordBreak_ZWJ:
-    case icu4x::capi::WordBreak_WSegSpace:
-      return static_cast<icu4x::WordBreak::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-
-inline icu4x::WordBreak icu4x::WordBreak::for_char(char32_t ch) {
-  auto result = icu4x::capi::icu4x_WordBreak_for_char_mv1(ch);
-  return icu4x::WordBreak::FromFFI(result);
-}
-
-inline std::optional<std::string_view> icu4x::WordBreak::long_name() {
-  auto result = icu4x::capi::icu4x_WordBreak_long_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline std::optional<std::string_view> icu4x::WordBreak::short_name() {
-  auto result = icu4x::capi::icu4x_WordBreak_short_name_mv1(this->AsFFI());
-  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
-}
-
-inline uint8_t icu4x::WordBreak::to_integer_value() {
-  auto result = icu4x::capi::icu4x_WordBreak_to_integer_value_mv1(this->AsFFI());
-  return result;
-}
-
-inline std::optional<icu4x::WordBreak> icu4x::WordBreak::from_integer_value(uint8_t other) {
-  auto result = icu4x::capi::icu4x_WordBreak_from_integer_value_mv1(other);
-  return result.is_ok ? std::optional<icu4x::WordBreak>(icu4x::WordBreak::FromFFI(result.ok)) : std::nullopt;
-}
-#endif // icu4x_WordBreak_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp
deleted file mode 100644
index 035d971..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_WordBreakIteratorLatin1_D_HPP
-#define icu4x_WordBreakIteratorLatin1_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class SegmenterWordType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WordBreakIteratorLatin1;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WordBreakIteratorLatin1 {
-public:
-
-  inline int32_t next();
-
-  inline icu4x::SegmenterWordType word_type() const;
-
-  inline bool is_word_like() const;
-
-  inline const icu4x::capi::WordBreakIteratorLatin1* AsFFI() const;
-  inline icu4x::capi::WordBreakIteratorLatin1* AsFFI();
-  inline static const icu4x::WordBreakIteratorLatin1* FromFFI(const icu4x::capi::WordBreakIteratorLatin1* ptr);
-  inline static icu4x::WordBreakIteratorLatin1* FromFFI(icu4x::capi::WordBreakIteratorLatin1* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WordBreakIteratorLatin1() = delete;
-  WordBreakIteratorLatin1(const icu4x::WordBreakIteratorLatin1&) = delete;
-  WordBreakIteratorLatin1(icu4x::WordBreakIteratorLatin1&&) noexcept = delete;
-  WordBreakIteratorLatin1 operator=(const icu4x::WordBreakIteratorLatin1&) = delete;
-  WordBreakIteratorLatin1 operator=(icu4x::WordBreakIteratorLatin1&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WordBreakIteratorLatin1_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp
deleted file mode 100644
index f891598..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef icu4x_WordBreakIteratorLatin1_HPP
-#define icu4x_WordBreakIteratorLatin1_HPP
-
-#include "WordBreakIteratorLatin1.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "SegmenterWordType.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_WordBreakIteratorLatin1_next_mv1(icu4x::capi::WordBreakIteratorLatin1* self);
-    
-    icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorLatin1_word_type_mv1(const icu4x::capi::WordBreakIteratorLatin1* self);
-    
-    bool icu4x_WordBreakIteratorLatin1_is_word_like_mv1(const icu4x::capi::WordBreakIteratorLatin1* self);
-    
-    
-    void icu4x_WordBreakIteratorLatin1_destroy_mv1(WordBreakIteratorLatin1* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::WordBreakIteratorLatin1::next() {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::SegmenterWordType icu4x::WordBreakIteratorLatin1::word_type() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_word_type_mv1(this->AsFFI());
-  return icu4x::SegmenterWordType::FromFFI(result);
-}
-
-inline bool icu4x::WordBreakIteratorLatin1::is_word_like() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_is_word_like_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WordBreakIteratorLatin1*>(this);
-}
-
-inline icu4x::capi::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WordBreakIteratorLatin1*>(this);
-}
-
-inline const icu4x::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::FromFFI(const icu4x::capi::WordBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<const icu4x::WordBreakIteratorLatin1*>(ptr);
-}
-
-inline icu4x::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::FromFFI(icu4x::capi::WordBreakIteratorLatin1* ptr) {
-  return reinterpret_cast<icu4x::WordBreakIteratorLatin1*>(ptr);
-}
-
-inline void icu4x::WordBreakIteratorLatin1::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WordBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorLatin1*>(ptr));
-}
-
-
-#endif // icu4x_WordBreakIteratorLatin1_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp
deleted file mode 100644
index 9af589a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_WordBreakIteratorUtf16_D_HPP
-#define icu4x_WordBreakIteratorUtf16_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class SegmenterWordType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WordBreakIteratorUtf16;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WordBreakIteratorUtf16 {
-public:
-
-  inline int32_t next();
-
-  inline icu4x::SegmenterWordType word_type() const;
-
-  inline bool is_word_like() const;
-
-  inline const icu4x::capi::WordBreakIteratorUtf16* AsFFI() const;
-  inline icu4x::capi::WordBreakIteratorUtf16* AsFFI();
-  inline static const icu4x::WordBreakIteratorUtf16* FromFFI(const icu4x::capi::WordBreakIteratorUtf16* ptr);
-  inline static icu4x::WordBreakIteratorUtf16* FromFFI(icu4x::capi::WordBreakIteratorUtf16* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WordBreakIteratorUtf16() = delete;
-  WordBreakIteratorUtf16(const icu4x::WordBreakIteratorUtf16&) = delete;
-  WordBreakIteratorUtf16(icu4x::WordBreakIteratorUtf16&&) noexcept = delete;
-  WordBreakIteratorUtf16 operator=(const icu4x::WordBreakIteratorUtf16&) = delete;
-  WordBreakIteratorUtf16 operator=(icu4x::WordBreakIteratorUtf16&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WordBreakIteratorUtf16_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp
deleted file mode 100644
index 96a480f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef icu4x_WordBreakIteratorUtf16_HPP
-#define icu4x_WordBreakIteratorUtf16_HPP
-
-#include "WordBreakIteratorUtf16.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "SegmenterWordType.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_WordBreakIteratorUtf16_next_mv1(icu4x::capi::WordBreakIteratorUtf16* self);
-    
-    icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorUtf16_word_type_mv1(const icu4x::capi::WordBreakIteratorUtf16* self);
-    
-    bool icu4x_WordBreakIteratorUtf16_is_word_like_mv1(const icu4x::capi::WordBreakIteratorUtf16* self);
-    
-    
-    void icu4x_WordBreakIteratorUtf16_destroy_mv1(WordBreakIteratorUtf16* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::WordBreakIteratorUtf16::next() {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::SegmenterWordType icu4x::WordBreakIteratorUtf16::word_type() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_word_type_mv1(this->AsFFI());
-  return icu4x::SegmenterWordType::FromFFI(result);
-}
-
-inline bool icu4x::WordBreakIteratorUtf16::is_word_like() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_is_word_like_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WordBreakIteratorUtf16*>(this);
-}
-
-inline icu4x::capi::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WordBreakIteratorUtf16*>(this);
-}
-
-inline const icu4x::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::FromFFI(const icu4x::capi::WordBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<const icu4x::WordBreakIteratorUtf16*>(ptr);
-}
-
-inline icu4x::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::FromFFI(icu4x::capi::WordBreakIteratorUtf16* ptr) {
-  return reinterpret_cast<icu4x::WordBreakIteratorUtf16*>(ptr);
-}
-
-inline void icu4x::WordBreakIteratorUtf16::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WordBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorUtf16*>(ptr));
-}
-
-
-#endif // icu4x_WordBreakIteratorUtf16_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp
deleted file mode 100644
index 6a15215..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_WordBreakIteratorUtf8_D_HPP
-#define icu4x_WordBreakIteratorUtf8_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-class SegmenterWordType;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WordBreakIteratorUtf8;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WordBreakIteratorUtf8 {
-public:
-
-  inline int32_t next();
-
-  inline icu4x::SegmenterWordType word_type() const;
-
-  inline bool is_word_like() const;
-
-  inline const icu4x::capi::WordBreakIteratorUtf8* AsFFI() const;
-  inline icu4x::capi::WordBreakIteratorUtf8* AsFFI();
-  inline static const icu4x::WordBreakIteratorUtf8* FromFFI(const icu4x::capi::WordBreakIteratorUtf8* ptr);
-  inline static icu4x::WordBreakIteratorUtf8* FromFFI(icu4x::capi::WordBreakIteratorUtf8* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WordBreakIteratorUtf8() = delete;
-  WordBreakIteratorUtf8(const icu4x::WordBreakIteratorUtf8&) = delete;
-  WordBreakIteratorUtf8(icu4x::WordBreakIteratorUtf8&&) noexcept = delete;
-  WordBreakIteratorUtf8 operator=(const icu4x::WordBreakIteratorUtf8&) = delete;
-  WordBreakIteratorUtf8 operator=(icu4x::WordBreakIteratorUtf8&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WordBreakIteratorUtf8_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp
deleted file mode 100644
index 15bbdbb3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef icu4x_WordBreakIteratorUtf8_HPP
-#define icu4x_WordBreakIteratorUtf8_HPP
-
-#include "WordBreakIteratorUtf8.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "SegmenterWordType.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    int32_t icu4x_WordBreakIteratorUtf8_next_mv1(icu4x::capi::WordBreakIteratorUtf8* self);
-    
-    icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorUtf8_word_type_mv1(const icu4x::capi::WordBreakIteratorUtf8* self);
-    
-    bool icu4x_WordBreakIteratorUtf8_is_word_like_mv1(const icu4x::capi::WordBreakIteratorUtf8* self);
-    
-    
-    void icu4x_WordBreakIteratorUtf8_destroy_mv1(WordBreakIteratorUtf8* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline int32_t icu4x::WordBreakIteratorUtf8::next() {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_next_mv1(this->AsFFI());
-  return result;
-}
-
-inline icu4x::SegmenterWordType icu4x::WordBreakIteratorUtf8::word_type() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_word_type_mv1(this->AsFFI());
-  return icu4x::SegmenterWordType::FromFFI(result);
-}
-
-inline bool icu4x::WordBreakIteratorUtf8::is_word_like() const {
-  auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_is_word_like_mv1(this->AsFFI());
-  return result;
-}
-
-inline const icu4x::capi::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WordBreakIteratorUtf8*>(this);
-}
-
-inline icu4x::capi::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WordBreakIteratorUtf8*>(this);
-}
-
-inline const icu4x::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::FromFFI(const icu4x::capi::WordBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<const icu4x::WordBreakIteratorUtf8*>(ptr);
-}
-
-inline icu4x::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::FromFFI(icu4x::capi::WordBreakIteratorUtf8* ptr) {
-  return reinterpret_cast<icu4x::WordBreakIteratorUtf8*>(ptr);
-}
-
-inline void icu4x::WordBreakIteratorUtf8::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WordBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorUtf8*>(ptr));
-}
-
-
-#endif // icu4x_WordBreakIteratorUtf8_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.d.hpp
deleted file mode 100644
index bd9bb5018..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.d.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef icu4x_WordSegmenter_D_HPP
-#define icu4x_WordSegmenter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct WordBreakIteratorLatin1; }
-class WordBreakIteratorLatin1;
-namespace capi { struct WordBreakIteratorUtf16; }
-class WordBreakIteratorUtf16;
-namespace capi { struct WordBreakIteratorUtf8; }
-class WordBreakIteratorUtf8;
-namespace capi { struct WordSegmenter; }
-class WordSegmenter;
-class DataError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct WordSegmenter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class WordSegmenter {
-public:
-
-  inline static std::unique_ptr<icu4x::WordSegmenter> create_auto();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_auto_with_content_locale(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_auto_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static std::unique_ptr<icu4x::WordSegmenter> create_lstm();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_lstm_with_content_locale(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_lstm_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline static std::unique_ptr<icu4x::WordSegmenter> create_dictionary();
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_dictionary_with_content_locale(const icu4x::Locale& locale);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_dictionary_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
-
-  inline std::unique_ptr<icu4x::WordBreakIteratorUtf8> segment(std::string_view input) const;
-
-  inline std::unique_ptr<icu4x::WordBreakIteratorUtf16> segment16(std::u16string_view input) const;
-
-  inline std::unique_ptr<icu4x::WordBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const;
-
-  inline const icu4x::capi::WordSegmenter* AsFFI() const;
-  inline icu4x::capi::WordSegmenter* AsFFI();
-  inline static const icu4x::WordSegmenter* FromFFI(const icu4x::capi::WordSegmenter* ptr);
-  inline static icu4x::WordSegmenter* FromFFI(icu4x::capi::WordSegmenter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  WordSegmenter() = delete;
-  WordSegmenter(const icu4x::WordSegmenter&) = delete;
-  WordSegmenter(icu4x::WordSegmenter&&) noexcept = delete;
-  WordSegmenter operator=(const icu4x::WordSegmenter&) = delete;
-  WordSegmenter operator=(icu4x::WordSegmenter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_WordSegmenter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.hpp
deleted file mode 100644
index 81aa777..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/WordSegmenter.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef icu4x_WordSegmenter_HPP
-#define icu4x_WordSegmenter_HPP
-
-#include "WordSegmenter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataError.hpp"
-#include "DataProvider.hpp"
-#include "Locale.hpp"
-#include "WordBreakIteratorLatin1.hpp"
-#include "WordBreakIteratorUtf16.hpp"
-#include "WordBreakIteratorUtf8.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    icu4x::capi::WordSegmenter* icu4x_WordSegmenter_create_auto_mv1(void);
-    
-    typedef struct icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result;
-    icu4x_WordSegmenter_create_auto_with_content_locale_mv1_result icu4x_WordSegmenter_create_auto_with_content_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result;
-    icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::WordSegmenter* icu4x_WordSegmenter_create_lstm_mv1(void);
-    
-    typedef struct icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result;
-    icu4x_WordSegmenter_create_lstm_with_content_locale_mv1_result icu4x_WordSegmenter_create_lstm_with_content_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result;
-    icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::WordSegmenter* icu4x_WordSegmenter_create_dictionary_mv1(void);
-    
-    typedef struct icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result;
-    icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1_result icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1(const icu4x::capi::Locale* locale);
-    
-    typedef struct icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result;
-    icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1_result icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
-    
-    icu4x::capi::WordBreakIteratorUtf8* icu4x_WordSegmenter_segment_utf8_mv1(const icu4x::capi::WordSegmenter* self, diplomat::capi::DiplomatStringView input);
-    
-    icu4x::capi::WordBreakIteratorUtf16* icu4x_WordSegmenter_segment_utf16_mv1(const icu4x::capi::WordSegmenter* self, diplomat::capi::DiplomatString16View input);
-    
-    icu4x::capi::WordBreakIteratorLatin1* icu4x_WordSegmenter_segment_latin1_mv1(const icu4x::capi::WordSegmenter* self, diplomat::capi::DiplomatU8View input);
-    
-    
-    void icu4x_WordSegmenter_destroy_mv1(WordSegmenter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline std::unique_ptr<icu4x::WordSegmenter> icu4x::WordSegmenter::create_auto() {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_auto_mv1();
-  return std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_auto_with_content_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_auto_with_content_locale_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_auto_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::WordSegmenter> icu4x::WordSegmenter::create_lstm() {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_lstm_mv1();
-  return std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_lstm_with_content_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_lstm_with_content_locale_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_lstm_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::WordSegmenter> icu4x::WordSegmenter::create_dictionary() {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_dictionary_mv1();
-  return std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_dictionary_with_content_locale(const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1(locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_dictionary_with_content_locale_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale) {
-  auto result = icu4x::capi::icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
-}
-
-inline std::unique_ptr<icu4x::WordBreakIteratorUtf8> icu4x::WordSegmenter::segment(std::string_view input) const {
-  auto result = icu4x::capi::icu4x_WordSegmenter_segment_utf8_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::WordBreakIteratorUtf8>(icu4x::WordBreakIteratorUtf8::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::WordBreakIteratorUtf16> icu4x::WordSegmenter::segment16(std::u16string_view input) const {
-  auto result = icu4x::capi::icu4x_WordSegmenter_segment_utf16_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::WordBreakIteratorUtf16>(icu4x::WordBreakIteratorUtf16::FromFFI(result));
-}
-
-inline std::unique_ptr<icu4x::WordBreakIteratorLatin1> icu4x::WordSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const {
-  auto result = icu4x::capi::icu4x_WordSegmenter_segment_latin1_mv1(this->AsFFI(),
-    {input.data(), input.size()});
-  return std::unique_ptr<icu4x::WordBreakIteratorLatin1>(icu4x::WordBreakIteratorLatin1::FromFFI(result));
-}
-
-inline const icu4x::capi::WordSegmenter* icu4x::WordSegmenter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::WordSegmenter*>(this);
-}
-
-inline icu4x::capi::WordSegmenter* icu4x::WordSegmenter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::WordSegmenter*>(this);
-}
-
-inline const icu4x::WordSegmenter* icu4x::WordSegmenter::FromFFI(const icu4x::capi::WordSegmenter* ptr) {
-  return reinterpret_cast<const icu4x::WordSegmenter*>(ptr);
-}
-
-inline icu4x::WordSegmenter* icu4x::WordSegmenter::FromFFI(icu4x::capi::WordSegmenter* ptr) {
-  return reinterpret_cast<icu4x::WordSegmenter*>(ptr);
-}
-
-inline void icu4x::WordSegmenter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_WordSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::WordSegmenter*>(ptr));
-}
-
-
-#endif // icu4x_WordSegmenter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.d.hpp
deleted file mode 100644
index bbf0798..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.d.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef icu4x_YearStyle_D_HPP
-#define icu4x_YearStyle_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    enum YearStyle {
-      YearStyle_Auto = 0,
-      YearStyle_Full = 1,
-      YearStyle_WithEra = 2,
-    };
-    
-    typedef struct YearStyle_option {union { YearStyle ok; }; bool is_ok; } YearStyle_option;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class YearStyle {
-public:
-  enum Value {
-    Auto = 0,
-    Full = 1,
-    WithEra = 2,
-  };
-
-  YearStyle() = default;
-  // Implicit conversions between enum and ::Value
-  constexpr YearStyle(Value v) : value(v) {}
-  constexpr operator Value() const { return value; }
-  // Prevent usage as boolean value
-  explicit operator bool() const = delete;
-
-  inline icu4x::capi::YearStyle AsFFI() const;
-  inline static icu4x::YearStyle FromFFI(icu4x::capi::YearStyle c_enum);
-private:
-    Value value;
-};
-
-} // namespace
-#endif // icu4x_YearStyle_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.hpp
deleted file mode 100644
index 93be6d35..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/YearStyle.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef icu4x_YearStyle_HPP
-#define icu4x_YearStyle_HPP
-
-#include "YearStyle.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline icu4x::capi::YearStyle icu4x::YearStyle::AsFFI() const {
-  return static_cast<icu4x::capi::YearStyle>(value);
-}
-
-inline icu4x::YearStyle icu4x::YearStyle::FromFFI(icu4x::capi::YearStyle c_enum) {
-  switch (c_enum) {
-    case icu4x::capi::YearStyle_Auto:
-    case icu4x::capi::YearStyle_Full:
-    case icu4x::capi::YearStyle_WithEra:
-      return static_cast<icu4x::YearStyle::Value>(c_enum);
-    default:
-      abort();
-  }
-}
-#endif // icu4x_YearStyle_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.d.hpp
deleted file mode 100644
index 1739845b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.d.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef icu4x_ZonedDateTime_D_HPP
-#define icu4x_ZonedDateTime_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct Calendar; }
-class Calendar;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct IanaParser; }
-class IanaParser;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-namespace capi { struct UtcOffsetCalculator; }
-class UtcOffsetCalculator;
-struct ZonedDateTime;
-class CalendarParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ZonedDateTime {
-      icu4x::capi::Date* date;
-      icu4x::capi::Time* time;
-      icu4x::capi::TimeZoneInfo* zone;
-    };
-    
-    typedef struct ZonedDateTime_option {union { ZonedDateTime ok; }; bool is_ok; } ZonedDateTime_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct ZonedDateTime {
-  std::unique_ptr<icu4x::Date> date;
-  std::unique_ptr<icu4x::Time> time;
-  std::unique_ptr<icu4x::TimeZoneInfo> zone;
-
-  inline static diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser, const icu4x::UtcOffsetCalculator& offset_calculator);
-
-  inline static diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> location_only_from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser);
-
-  inline static diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> offset_only_from_string(std::string_view v, const icu4x::Calendar& calendar);
-
-  inline static diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> loose_from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser);
-
-  inline icu4x::capi::ZonedDateTime AsFFI() const;
-  inline static icu4x::ZonedDateTime FromFFI(icu4x::capi::ZonedDateTime c_struct);
-};
-
-} // namespace
-#endif // icu4x_ZonedDateTime_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.hpp
deleted file mode 100644
index 5a923f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTime.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef icu4x_ZonedDateTime_HPP
-#define icu4x_ZonedDateTime_HPP
-
-#include "ZonedDateTime.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "Calendar.hpp"
-#include "CalendarParseError.hpp"
-#include "Date.hpp"
-#include "IanaParser.hpp"
-#include "Time.hpp"
-#include "TimeZoneInfo.hpp"
-#include "UtcOffsetCalculator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_ZonedDateTime_from_string_mv1_result {union {icu4x::capi::ZonedDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_from_string_mv1_result;
-    icu4x_ZonedDateTime_from_string_mv1_result icu4x_ZonedDateTime_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar, const icu4x::capi::IanaParser* iana_parser, const icu4x::capi::UtcOffsetCalculator* offset_calculator);
-    
-    typedef struct icu4x_ZonedDateTime_location_only_from_string_mv1_result {union {icu4x::capi::ZonedDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_location_only_from_string_mv1_result;
-    icu4x_ZonedDateTime_location_only_from_string_mv1_result icu4x_ZonedDateTime_location_only_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar, const icu4x::capi::IanaParser* iana_parser);
-    
-    typedef struct icu4x_ZonedDateTime_offset_only_from_string_mv1_result {union {icu4x::capi::ZonedDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_offset_only_from_string_mv1_result;
-    icu4x_ZonedDateTime_offset_only_from_string_mv1_result icu4x_ZonedDateTime_offset_only_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar);
-    
-    typedef struct icu4x_ZonedDateTime_loose_from_string_mv1_result {union {icu4x::capi::ZonedDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_ZonedDateTime_loose_from_string_mv1_result;
-    icu4x_ZonedDateTime_loose_from_string_mv1_result icu4x_ZonedDateTime_loose_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar, const icu4x::capi::IanaParser* iana_parser);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> icu4x::ZonedDateTime::from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser, const icu4x::UtcOffsetCalculator& offset_calculator) {
-  auto result = icu4x::capi::icu4x_ZonedDateTime_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI(),
-    iana_parser.AsFFI(),
-    offset_calculator.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::ZonedDateTime>(icu4x::ZonedDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> icu4x::ZonedDateTime::location_only_from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser) {
-  auto result = icu4x::capi::icu4x_ZonedDateTime_location_only_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI(),
-    iana_parser.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::ZonedDateTime>(icu4x::ZonedDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> icu4x::ZonedDateTime::offset_only_from_string(std::string_view v, const icu4x::Calendar& calendar) {
-  auto result = icu4x::capi::icu4x_ZonedDateTime_offset_only_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::ZonedDateTime>(icu4x::ZonedDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-inline diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError> icu4x::ZonedDateTime::loose_from_string(std::string_view v, const icu4x::Calendar& calendar, const icu4x::IanaParser& iana_parser) {
-  auto result = icu4x::capi::icu4x_ZonedDateTime_loose_from_string_mv1({v.data(), v.size()},
-    calendar.AsFFI(),
-    iana_parser.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::ZonedDateTime>(icu4x::ZonedDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::ZonedDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-
-inline icu4x::capi::ZonedDateTime icu4x::ZonedDateTime::AsFFI() const {
-  return icu4x::capi::ZonedDateTime {
-    /* .date = */ date->AsFFI(),
-    /* .time = */ time->AsFFI(),
-    /* .zone = */ zone->AsFFI(),
-  };
-}
-
-inline icu4x::ZonedDateTime icu4x::ZonedDateTime::FromFFI(icu4x::capi::ZonedDateTime c_struct) {
-  return icu4x::ZonedDateTime {
-    /* .date = */ std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(c_struct.date)),
-    /* .time = */ std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(c_struct.time)),
-    /* .zone = */ std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(c_struct.zone)),
-  };
-}
-
-
-#endif // icu4x_ZonedDateTime_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp
deleted file mode 100644
index cced2fce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef icu4x_ZonedDateTimeFormatter_D_HPP
-#define icu4x_ZonedDateTimeFormatter_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct DataProvider; }
-class DataProvider;
-namespace capi { struct Date; }
-class Date;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Locale; }
-class Locale;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-namespace capi { struct ZonedDateTimeFormatter; }
-class ZonedDateTimeFormatter;
-class DateTimeFormatError;
-class DateTimeFormatterLoadError;
-class DateTimeLength;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ZonedDateTimeFormatter;
-} // namespace capi
-} // namespace
-
-namespace icu4x {
-class ZonedDateTimeFormatter {
-public:
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline static diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length);
-
-  inline diplomat::result<std::string, icu4x::DateTimeFormatError> format(const icu4x::Date& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const;
-
-  inline diplomat::result<std::string, icu4x::DateTimeFormatError> format_iso(const icu4x::IsoDate& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const;
-
-  inline const icu4x::capi::ZonedDateTimeFormatter* AsFFI() const;
-  inline icu4x::capi::ZonedDateTimeFormatter* AsFFI();
-  inline static const icu4x::ZonedDateTimeFormatter* FromFFI(const icu4x::capi::ZonedDateTimeFormatter* ptr);
-  inline static icu4x::ZonedDateTimeFormatter* FromFFI(icu4x::capi::ZonedDateTimeFormatter* ptr);
-  inline static void operator delete(void* ptr);
-private:
-  ZonedDateTimeFormatter() = delete;
-  ZonedDateTimeFormatter(const icu4x::ZonedDateTimeFormatter&) = delete;
-  ZonedDateTimeFormatter(icu4x::ZonedDateTimeFormatter&&) noexcept = delete;
-  ZonedDateTimeFormatter operator=(const icu4x::ZonedDateTimeFormatter&) = delete;
-  ZonedDateTimeFormatter operator=(icu4x::ZonedDateTimeFormatter&&) noexcept = delete;
-  static void operator delete[](void*, size_t) = delete;
-};
-
-} // namespace
-#endif // icu4x_ZonedDateTimeFormatter_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp
deleted file mode 100644
index eb6de69..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef icu4x_ZonedDateTimeFormatter_HPP
-#define icu4x_ZonedDateTimeFormatter_HPP
-
-#include "ZonedDateTimeFormatter.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "DataProvider.hpp"
-#include "Date.hpp"
-#include "DateTimeFormatError.hpp"
-#include "DateTimeFormatterLoadError.hpp"
-#include "DateTimeLength.hpp"
-#include "IsoDate.hpp"
-#include "Locale.hpp"
-#include "Time.hpp"
-#include "TimeZoneInfo.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result {union {icu4x::capi::ZonedDateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result;
-    icu4x_ZonedDateTimeFormatter_create_with_length_mv1_result icu4x_ZonedDateTimeFormatter_create_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result {union {icu4x::capi::ZonedDateTimeFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result;
-    icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1_result icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength length);
-    
-    typedef struct icu4x_ZonedDateTimeFormatter_format_mv1_result {union { icu4x::capi::DateTimeFormatError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_mv1_result;
-    icu4x_ZonedDateTimeFormatter_format_mv1_result icu4x_ZonedDateTimeFormatter_format_mv1(const icu4x::capi::ZonedDateTimeFormatter* self, const icu4x::capi::Date* date, const icu4x::capi::Time* time, const icu4x::capi::TimeZoneInfo* zone, diplomat::capi::DiplomatWrite* write);
-    
-    typedef struct icu4x_ZonedDateTimeFormatter_format_iso_mv1_result {union { icu4x::capi::DateTimeFormatError err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_iso_mv1_result;
-    icu4x_ZonedDateTimeFormatter_format_iso_mv1_result icu4x_ZonedDateTimeFormatter_format_iso_mv1(const icu4x::capi::ZonedDateTimeFormatter* self, const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time, const icu4x::capi::TimeZoneInfo* zone, diplomat::capi::DiplomatWrite* write);
-    
-    
-    void icu4x_ZonedDateTimeFormatter_destroy_mv1(ZonedDateTimeFormatter* self);
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateTimeFormatter::create_with_length(const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_create_with_length_mv1(locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateTimeFormatter>>(std::unique_ptr<icu4x::ZonedDateTimeFormatter>(icu4x::ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateTimeFormatter::create_with_length_and_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateTimeLength length) {
-  auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1(provider.AsFFI(),
-    locale.AsFFI(),
-    length.AsFFI());
-  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateTimeFormatter>>(std::unique_ptr<icu4x::ZonedDateTimeFormatter>(icu4x::ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeFormatError> icu4x::ZonedDateTimeFormatter::format(const icu4x::Date& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_format_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    zone.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Err<icu4x::DateTimeFormatError>(icu4x::DateTimeFormatError::FromFFI(result.err)));
-}
-
-inline diplomat::result<std::string, icu4x::DateTimeFormatError> icu4x::ZonedDateTimeFormatter::format_iso(const icu4x::IsoDate& date, const icu4x::Time& time, const icu4x::TimeZoneInfo& zone) const {
-  std::string output;
-  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
-  auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_format_iso_mv1(this->AsFFI(),
-    date.AsFFI(),
-    time.AsFFI(),
-    zone.AsFFI(),
-    &write);
-  return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeFormatError>(diplomat::Err<icu4x::DateTimeFormatError>(icu4x::DateTimeFormatError::FromFFI(result.err)));
-}
-
-inline const icu4x::capi::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::AsFFI() const {
-  return reinterpret_cast<const icu4x::capi::ZonedDateTimeFormatter*>(this);
-}
-
-inline icu4x::capi::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::AsFFI() {
-  return reinterpret_cast<icu4x::capi::ZonedDateTimeFormatter*>(this);
-}
-
-inline const icu4x::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::FromFFI(const icu4x::capi::ZonedDateTimeFormatter* ptr) {
-  return reinterpret_cast<const icu4x::ZonedDateTimeFormatter*>(ptr);
-}
-
-inline icu4x::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::FromFFI(icu4x::capi::ZonedDateTimeFormatter* ptr) {
-  return reinterpret_cast<icu4x::ZonedDateTimeFormatter*>(ptr);
-}
-
-inline void icu4x::ZonedDateTimeFormatter::operator delete(void* ptr) {
-  icu4x::capi::icu4x_ZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ZonedDateTimeFormatter*>(ptr));
-}
-
-
-#endif // icu4x_ZonedDateTimeFormatter_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.d.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.d.hpp
deleted file mode 100644
index 9d00712e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.d.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef icu4x_ZonedIsoDateTime_D_HPP
-#define icu4x_ZonedIsoDateTime_D_HPP
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-
-namespace icu4x {
-namespace capi { struct IanaParser; }
-class IanaParser;
-namespace capi { struct IsoDate; }
-class IsoDate;
-namespace capi { struct Time; }
-class Time;
-namespace capi { struct TimeZoneInfo; }
-class TimeZoneInfo;
-namespace capi { struct UtcOffsetCalculator; }
-class UtcOffsetCalculator;
-struct ZonedIsoDateTime;
-class CalendarParseError;
-}
-
-
-namespace icu4x {
-namespace capi {
-    struct ZonedIsoDateTime {
-      icu4x::capi::IsoDate* date;
-      icu4x::capi::Time* time;
-      icu4x::capi::TimeZoneInfo* zone;
-    };
-    
-    typedef struct ZonedIsoDateTime_option {union { ZonedIsoDateTime ok; }; bool is_ok; } ZonedIsoDateTime_option;
-} // namespace capi
-} // namespace
-
-
-namespace icu4x {
-struct ZonedIsoDateTime {
-  std::unique_ptr<icu4x::IsoDate> date;
-  std::unique_ptr<icu4x::Time> time;
-  std::unique_ptr<icu4x::TimeZoneInfo> zone;
-
-  inline static diplomat::result<icu4x::ZonedIsoDateTime, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::IanaParser& iana_parser, const icu4x::UtcOffsetCalculator& offset_calculator);
-
-  inline icu4x::capi::ZonedIsoDateTime AsFFI() const;
-  inline static icu4x::ZonedIsoDateTime FromFFI(icu4x::capi::ZonedIsoDateTime c_struct);
-};
-
-} // namespace
-#endif // icu4x_ZonedIsoDateTime_D_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.hpp b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.hpp
deleted file mode 100644
index 9d5ea0e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/cpp/icu4x/ZonedIsoDateTime.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef icu4x_ZonedIsoDateTime_HPP
-#define icu4x_ZonedIsoDateTime_HPP
-
-#include "ZonedIsoDateTime.d.hpp"
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <memory>
-#include <functional>
-#include <optional>
-#include "../diplomat_runtime.hpp"
-#include "CalendarParseError.hpp"
-#include "IanaParser.hpp"
-#include "IsoDate.hpp"
-#include "Time.hpp"
-#include "TimeZoneInfo.hpp"
-#include "UtcOffsetCalculator.hpp"
-
-
-namespace icu4x {
-namespace capi {
-    extern "C" {
-    
-    typedef struct icu4x_ZonedIsoDateTime_from_string_mv1_result {union {icu4x::capi::ZonedIsoDateTime ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_ZonedIsoDateTime_from_string_mv1_result;
-    icu4x_ZonedIsoDateTime_from_string_mv1_result icu4x_ZonedIsoDateTime_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::IanaParser* iana_parser, const icu4x::capi::UtcOffsetCalculator* offset_calculator);
-    
-    
-    } // extern "C"
-} // namespace capi
-} // namespace
-
-inline diplomat::result<icu4x::ZonedIsoDateTime, icu4x::CalendarParseError> icu4x::ZonedIsoDateTime::from_string(std::string_view v, const icu4x::IanaParser& iana_parser, const icu4x::UtcOffsetCalculator& offset_calculator) {
-  auto result = icu4x::capi::icu4x_ZonedIsoDateTime_from_string_mv1({v.data(), v.size()},
-    iana_parser.AsFFI(),
-    offset_calculator.AsFFI());
-  return result.is_ok ? diplomat::result<icu4x::ZonedIsoDateTime, icu4x::CalendarParseError>(diplomat::Ok<icu4x::ZonedIsoDateTime>(icu4x::ZonedIsoDateTime::FromFFI(result.ok))) : diplomat::result<icu4x::ZonedIsoDateTime, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err)));
-}
-
-
-inline icu4x::capi::ZonedIsoDateTime icu4x::ZonedIsoDateTime::AsFFI() const {
-  return icu4x::capi::ZonedIsoDateTime {
-    /* .date = */ date->AsFFI(),
-    /* .time = */ time->AsFFI(),
-    /* .zone = */ zone->AsFFI(),
-  };
-}
-
-inline icu4x::ZonedIsoDateTime icu4x::ZonedIsoDateTime::FromFFI(icu4x::capi::ZonedIsoDateTime c_struct) {
-  return icu4x::ZonedIsoDateTime {
-    /* .date = */ std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(c_struct.date)),
-    /* .time = */ std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(c_struct.time)),
-    /* .zone = */ std::unique_ptr<icu4x::TimeZoneInfo>(icu4x::TimeZoneInfo::FromFFI(c_struct.zone)),
-  };
-}
-
-
-#endif // icu4x_ZonedIsoDateTime_HPP
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.d.ts
deleted file mode 100644
index 03c1aeb1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AnyCalendarKind } from "icu4x"
-export function bcp47(anyCalendarKind: AnyCalendarKind);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.mjs
deleted file mode 100644
index 1a86bf4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/AnyCalendarKind.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-import { AnyCalendarKind } from "icu4x"
-export function bcp47(anyCalendarKind) {
-    
-    let out = anyCalendarKind.bcp47;
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.d.ts
deleted file mode 100644
index 7169f4676..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { CaseMapper } from "icu4x"
-import { Locale } from "icu4x"
-import { TitlecaseOptions } from "icu4x"
-export function lowercase(s: string, localeName: string);
-export function uppercase(s: string, localeName: string);
-export function titlecaseSegmentWithOnlyCaseData(s: string, localeName: string, optionsLeadingAdjustment: LeadingAdjustment, optionsTrailingCase: TrailingCase);
-export function fold(s: string);
-export function foldTurkic(s: string);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.mjs
deleted file mode 100644
index aa315c9b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/CaseMapper.mjs
+++ /dev/null
@@ -1,59 +0,0 @@
-import { CaseMapper } from "icu4x"
-import { Locale } from "icu4x"
-import { TitlecaseOptions } from "icu4x"
-export function lowercase(s, localeName) {
-    
-    let caseMapper = new CaseMapper();
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = caseMapper.lowercase(s,locale);
-    
-
-    return out;
-}
-export function uppercase(s, localeName) {
-    
-    let caseMapper = new CaseMapper();
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = caseMapper.uppercase(s,locale);
-    
-
-    return out;
-}
-export function titlecaseSegmentWithOnlyCaseData(s, localeName, optionsLeadingAdjustment, optionsTrailingCase) {
-    
-    let caseMapper = new CaseMapper();
-    
-    let locale = Locale.fromString(localeName);
-    
-    let options = TitlecaseOptions.fromFields({
-        leadingAdjustment: optionsLeadingAdjustment,
-        trailingCase: optionsTrailingCase
-    });
-    
-    let out = caseMapper.titlecaseSegmentWithOnlyCaseData(s,locale,options);
-    
-
-    return out;
-}
-export function fold(s) {
-    
-    let caseMapper = new CaseMapper();
-    
-    let out = caseMapper.fold(s);
-    
-
-    return out;
-}
-export function foldTurkic(s) {
-    
-    let caseMapper = new CaseMapper();
-    
-    let out = caseMapper.foldTurkic(s);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.d.ts
deleted file mode 100644
index 03ae5f3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { ComposingNormalizer } from "icu4x"
-export function normalize(s: string);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.mjs
deleted file mode 100644
index b6dc60a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ComposingNormalizer.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ComposingNormalizer } from "icu4x"
-export function normalize(s) {
-    
-    let composingNormalizer = ComposingNormalizer.createNfc();
-    
-    let out = composingNormalizer.normalize(s);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.d.ts
deleted file mode 100644
index c14782280..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { Locale } from "icu4x"
-export function monthCode(dateYear: number, dateMonth: number, dateDay: number, dateCalendarLocaleName: string);
-export function era(dateYear: number, dateMonth: number, dateDay: number, dateCalendarLocaleName: string);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.mjs
deleted file mode 100644
index bd5a1fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Date.mjs
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { Locale } from "icu4x"
-export function monthCode(dateYear, dateMonth, dateDay, dateCalendarLocaleName) {
-    
-    let dateCalendarLocale = Locale.fromString(dateCalendarLocaleName);
-    
-    let dateCalendar = Calendar.createForLocale(dateCalendarLocale);
-    
-    let date = Date.fromIsoInCalendar(dateYear,dateMonth,dateDay,dateCalendar);
-    
-    let out = date.monthCode;
-    
-
-    return out;
-}
-export function era(dateYear, dateMonth, dateDay, dateCalendarLocaleName) {
-    
-    let dateCalendarLocale = Locale.fromString(dateCalendarLocaleName);
-    
-    let dateCalendar = Calendar.createForLocale(dateCalendarLocale);
-    
-    let date = Date.fromIsoInCalendar(dateYear,dateMonth,dateDay,dateCalendar);
-    
-    let out = date.era;
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.d.ts
deleted file mode 100644
index 96e43c3a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { DateFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-export function format(dateFormatterLocaleName: string, dateFormatterLength: DateTimeLength, valueYear: number, valueMonth: number, valueDay: number, valueCalendarLocaleName: string);
-export function formatIso(dateFormatterLocaleName: string, dateFormatterLength: DateTimeLength, valueYear: number, valueMonth: number, valueDay: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.mjs
deleted file mode 100644
index 84f85513..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateFormatter.mjs
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { DateFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-export function format(dateFormatterLocaleName, dateFormatterLength, valueYear, valueMonth, valueDay, valueCalendarLocaleName) {
-    
-    let dateFormatterLocale = Locale.fromString(dateFormatterLocaleName);
-    
-    let dateFormatter = DateFormatter.createWithLength(dateFormatterLocale,dateFormatterLength);
-    
-    let valueCalendarLocale = Locale.fromString(valueCalendarLocaleName);
-    
-    let valueCalendar = Calendar.createForLocale(valueCalendarLocale);
-    
-    let value = Date.fromIsoInCalendar(valueYear,valueMonth,valueDay,valueCalendar);
-    
-    let out = dateFormatter.format(value);
-    
-
-    return out;
-}
-export function formatIso(dateFormatterLocaleName, dateFormatterLength, valueYear, valueMonth, valueDay) {
-    
-    let dateFormatterLocale = Locale.fromString(dateFormatterLocaleName);
-    
-    let dateFormatter = DateFormatter.createWithLength(dateFormatterLocale,dateFormatterLength);
-    
-    let value = new IsoDate(valueYear,valueMonth,valueDay);
-    
-    let out = dateFormatter.formatIso(value);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.d.ts
deleted file mode 100644
index e2029d8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { DateTimeFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-export function formatIso(dateTimeFormatterLocaleName: string, dateTimeFormatterLength: DateTimeLength, dateTimeFormatterTimePrecision: TimePrecision, dateTimeFormatterAlignment: DateTimeAlignment, dateTimeFormatterYearStyle: YearStyle, dateYear: number, dateMonth: number, dateDay: number, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number);
-export function formatSameCalendar(dateTimeFormatterLocaleName: string, dateTimeFormatterLength: DateTimeLength, dateTimeFormatterTimePrecision: TimePrecision, dateTimeFormatterAlignment: DateTimeAlignment, dateTimeFormatterYearStyle: YearStyle, dateYear: number, dateMonth: number, dateDay: number, dateCalendarLocaleName: string, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.mjs
deleted file mode 100644
index ce55cbe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatter.mjs
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { DateTimeFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-export function formatIso(dateTimeFormatterLocaleName, dateTimeFormatterLength, dateTimeFormatterTimePrecision, dateTimeFormatterAlignment, dateTimeFormatterYearStyle, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond) {
-    
-    let dateTimeFormatterLocale = Locale.fromString(dateTimeFormatterLocaleName);
-    
-    let dateTimeFormatter = DateTimeFormatter.createYmdt(dateTimeFormatterLocale,dateTimeFormatterLength,dateTimeFormatterTimePrecision,dateTimeFormatterAlignment,dateTimeFormatterYearStyle);
-    
-    let date = new IsoDate(dateYear,dateMonth,dateDay);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let out = dateTimeFormatter.formatIso(date,time);
-    
-
-    return out;
-}
-export function formatSameCalendar(dateTimeFormatterLocaleName, dateTimeFormatterLength, dateTimeFormatterTimePrecision, dateTimeFormatterAlignment, dateTimeFormatterYearStyle, dateYear, dateMonth, dateDay, dateCalendarLocaleName, timeHour, timeMinute, timeSecond, timeSubsecond) {
-    
-    let dateTimeFormatterLocale = Locale.fromString(dateTimeFormatterLocaleName);
-    
-    let dateTimeFormatter = DateTimeFormatter.createYmdt(dateTimeFormatterLocale,dateTimeFormatterLength,dateTimeFormatterTimePrecision,dateTimeFormatterAlignment,dateTimeFormatterYearStyle);
-    
-    let dateCalendarLocale = Locale.fromString(dateCalendarLocaleName);
-    
-    let dateCalendar = Calendar.createForLocale(dateCalendarLocale);
-    
-    let date = Date.fromIsoInCalendar(dateYear,dateMonth,dateDay,dateCalendar);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let out = dateTimeFormatter.formatSameCalendar(date,time);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.d.ts
deleted file mode 100644
index 7e7ea3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { DateTimeFormatterGregorian } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-export function formatIso(dateTimeFormatterGregorianLocaleName: string, dateTimeFormatterGregorianLength: DateTimeLength, dateTimeFormatterGregorianTimePrecision: TimePrecision, dateTimeFormatterGregorianAlignment: DateTimeAlignment, dateTimeFormatterGregorianYearStyle: YearStyle, dateYear: number, dateMonth: number, dateDay: number, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.mjs
deleted file mode 100644
index 90a8025..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DateTimeFormatterGregorian.mjs
+++ /dev/null
@@ -1,19 +0,0 @@
-import { DateTimeFormatterGregorian } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-export function formatIso(dateTimeFormatterGregorianLocaleName, dateTimeFormatterGregorianLength, dateTimeFormatterGregorianTimePrecision, dateTimeFormatterGregorianAlignment, dateTimeFormatterGregorianYearStyle, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond) {
-    
-    let dateTimeFormatterGregorianLocale = Locale.fromString(dateTimeFormatterGregorianLocaleName);
-    
-    let dateTimeFormatterGregorian = DateTimeFormatterGregorian.createYmdt(dateTimeFormatterGregorianLocale,dateTimeFormatterGregorianLength,dateTimeFormatterGregorianTimePrecision,dateTimeFormatterGregorianAlignment,dateTimeFormatterGregorianYearStyle);
-    
-    let date = new IsoDate(dateYear,dateMonth,dateDay);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let out = dateTimeFormatterGregorian.formatIso(date,time);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.d.ts
deleted file mode 100644
index 1f9a1d68..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Decimal } from "icu4x"
-export function toString(decimalF: number, decimalMagnitude: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.mjs
deleted file mode 100644
index 033d6d7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Decimal.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Decimal } from "icu4x"
-export function toString(decimalF, decimalMagnitude) {
-    
-    let decimal = Decimal.fromNumberWithLowerMagnitude(decimalF,decimalMagnitude);
-    
-    let out = decimal.toString();
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.d.ts
deleted file mode 100644
index 51eb7943..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Decimal } from "icu4x"
-import { DecimalFormatter } from "icu4x"
-import { Locale } from "icu4x"
-export function format(decimalFormatterLocaleName: string, decimalFormatterGroupingStrategy: DecimalGroupingStrategy, valueF: number, valueMagnitude: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.mjs
deleted file mode 100644
index 56dc6b0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecimalFormatter.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Decimal } from "icu4x"
-import { DecimalFormatter } from "icu4x"
-import { Locale } from "icu4x"
-export function format(decimalFormatterLocaleName, decimalFormatterGroupingStrategy, valueF, valueMagnitude) {
-    
-    let decimalFormatterLocale = Locale.fromString(decimalFormatterLocaleName);
-    
-    let decimalFormatter = DecimalFormatter.createWithGroupingStrategy(decimalFormatterLocale,decimalFormatterGroupingStrategy);
-    
-    let value = Decimal.fromNumberWithLowerMagnitude(valueF,valueMagnitude);
-    
-    let out = decimalFormatter.format(value);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.d.ts
deleted file mode 100644
index f22941d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { DecomposingNormalizer } from "icu4x"
-export function normalize(s: string);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.mjs
deleted file mode 100644
index 6698626..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/DecomposingNormalizer.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-import { DecomposingNormalizer } from "icu4x"
-export function normalize(s) {
-    
-    let decomposingNormalizer = DecomposingNormalizer.createNfd();
-    
-    let out = decomposingNormalizer.normalize(s);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.d.ts
deleted file mode 100644
index 462b5e15..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { GregorianDateFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-export function formatIso(gregorianDateFormatterLocaleName: string, gregorianDateFormatterLength: DateTimeLength, valueYear: number, valueMonth: number, valueDay: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.mjs
deleted file mode 100644
index 28f7012..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianDateFormatter.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import { GregorianDateFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-export function formatIso(gregorianDateFormatterLocaleName, gregorianDateFormatterLength, valueYear, valueMonth, valueDay) {
-    
-    let gregorianDateFormatterLocale = Locale.fromString(gregorianDateFormatterLocaleName);
-    
-    let gregorianDateFormatter = GregorianDateFormatter.createWithLength(gregorianDateFormatterLocale,gregorianDateFormatterLength);
-    
-    let value = new IsoDate(valueYear,valueMonth,valueDay);
-    
-    let out = gregorianDateFormatter.formatIso(value);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.d.ts
deleted file mode 100644
index 7c8601d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { GregorianZonedDateTimeFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-import { TimeZone } from "icu4x"
-import { TimeZoneInfo } from "icu4x"
-import { UtcOffset } from "icu4x"
-export function formatIso(gregorianZonedDateTimeFormatterLocaleName: string, gregorianZonedDateTimeFormatterLength: DateTimeLength, dateYear: number, dateMonth: number, dateDay: number, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number, zoneTimeZoneIdId: string, zoneOffsetOffset: string, zoneZoneVariant: TimeZoneVariant);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.mjs
deleted file mode 100644
index d66f9b0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/GregorianZonedDateTimeFormatter.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-import { GregorianZonedDateTimeFormatter } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-import { TimeZone } from "icu4x"
-import { TimeZoneInfo } from "icu4x"
-import { UtcOffset } from "icu4x"
-export function formatIso(gregorianZonedDateTimeFormatterLocaleName, gregorianZonedDateTimeFormatterLength, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond, zoneTimeZoneIdId, zoneOffsetOffset, zoneZoneVariant) {
-    
-    let gregorianZonedDateTimeFormatterLocale = Locale.fromString(gregorianZonedDateTimeFormatterLocaleName);
-    
-    let gregorianZonedDateTimeFormatter = GregorianZonedDateTimeFormatter.createWithLength(gregorianZonedDateTimeFormatterLocale,gregorianZonedDateTimeFormatterLength);
-    
-    let date = new IsoDate(dateYear,dateMonth,dateDay);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let zoneTimeZoneId = TimeZone.createFromBcp47(zoneTimeZoneIdId);
-    
-    let zoneOffset = UtcOffset.fromString(zoneOffsetOffset);
-    
-    let zone = new TimeZoneInfo(zoneTimeZoneId,zoneOffset,zoneZoneVariant);
-    
-    let out = gregorianZonedDateTimeFormatter.formatIso(date,time,zone);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.d.ts
deleted file mode 100644
index dacbc4c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { ListFormatter } from "icu4x"
-import { Locale } from "icu4x"
-export function format(listFormatterLocaleName: string, listFormatterLength: ListLength, list: Array<string>);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.mjs
deleted file mode 100644
index fb1af6d1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ListFormatter.mjs
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ListFormatter } from "icu4x"
-import { Locale } from "icu4x"
-export function format(listFormatterLocaleName, listFormatterLength, list) {
-    
-    let listFormatterLocale = Locale.fromString(listFormatterLocaleName);
-    
-    let listFormatter = ListFormatter.createAndWithLength(listFormatterLocale,listFormatterLength);
-    
-    let out = listFormatter.format(list);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.d.ts
deleted file mode 100644
index 24a4228..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Locale } from "icu4x"
-export function basename(localeName: string);
-export function getUnicodeExtension(localeName: string, s: string);
-export function language(localeName: string);
-export function region(localeName: string);
-export function script(localeName: string);
-export function normalize(s: string);
-export function toString(localeName: string);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.mjs
deleted file mode 100644
index a10bd37..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/Locale.mjs
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Locale } from "icu4x"
-export function basename(localeName) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.basename;
-    
-
-    return out;
-}
-export function getUnicodeExtension(localeName, s) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.getUnicodeExtension(s);
-    
-
-    return out;
-}
-export function language(localeName) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.language;
-    
-
-    return out;
-}
-export function region(localeName) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.region;
-    
-
-    return out;
-}
-export function script(localeName) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.script;
-    
-
-    return out;
-}
-export function normalize(s) {
-    
-    let out = Locale.normalize(s);
-    
-
-    return out;
-}
-export function toString(localeName) {
-    
-    let locale = Locale.fromString(localeName);
-    
-    let out = locale.toString();
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.d.ts
deleted file mode 100644
index 89692200..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Locale } from "icu4x"
-import { NoCalendarFormatter } from "icu4x"
-import { Time } from "icu4x"
-export function format(noCalendarFormatterLocaleName: string, noCalendarFormatterLength: DateTimeLength, valueHour: number, valueMinute: number, valueSecond: number, valueSubsecond: number);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.mjs
deleted file mode 100644
index b82e634..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/NoCalendarFormatter.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Locale } from "icu4x"
-import { NoCalendarFormatter } from "icu4x"
-import { Time } from "icu4x"
-export function format(noCalendarFormatterLocaleName, noCalendarFormatterLength, valueHour, valueMinute, valueSecond, valueSubsecond) {
-    
-    let noCalendarFormatterLocale = Locale.fromString(noCalendarFormatterLocaleName);
-    
-    let noCalendarFormatter = NoCalendarFormatter.createWithLength(noCalendarFormatterLocale,noCalendarFormatterLength);
-    
-    let value = new Time(valueHour,valueMinute,valueSecond,valueSubsecond);
-    
-    let out = noCalendarFormatter.format(value);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.d.ts
deleted file mode 100644
index d651180..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Locale } from "icu4x"
-import { TitlecaseMapper } from "icu4x"
-import { TitlecaseOptions } from "icu4x"
-export function titlecaseSegment(s: string, localeName: string, optionsLeadingAdjustment: LeadingAdjustment, optionsTrailingCase: TrailingCase);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.mjs
deleted file mode 100644
index 57efa44d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/TitlecaseMapper.mjs
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Locale } from "icu4x"
-import { TitlecaseMapper } from "icu4x"
-import { TitlecaseOptions } from "icu4x"
-export function titlecaseSegment(s, localeName, optionsLeadingAdjustment, optionsTrailingCase) {
-    
-    let titlecaseMapper = new TitlecaseMapper();
-    
-    let locale = Locale.fromString(localeName);
-    
-    let options = TitlecaseOptions.fromFields({
-        leadingAdjustment: optionsLeadingAdjustment,
-        trailingCase: optionsTrailingCase
-    });
-    
-    let out = titlecaseMapper.titlecaseSegment(s,locale,options);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/WordSegmenter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/WordSegmenter.mjs
deleted file mode 100644
index 9589a443..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/WordSegmenter.mjs
+++ /dev/null
@@ -1,53 +0,0 @@
-import { lib } from "./index.mjs";
-
-export default {
-	"WordSegmenter.segment": {
-		func: (model, text) => {
-			var segmenter;
-			switch (model) {
-				case "Auto":
-					segmenter = lib.WordSegmenter.createAuto();
-					break;
-				case "LSTM":
-					segmenter = lib.WordSegmenter.createLstm();
-					break;
-				case "Dictionary":
-					segmenter = lib.WordSegmenter.createDictionary();
-			}
-			
-			let last = 0;
-			const iter = segmenter.segment(text);
-
-			const segments = [];
-			
-			while (true) {
-				const next = iter.next();
-
-				if (next === -1) {
-					segments.push(text.slice(last));
-					break;
-				}
-
-				segments.push(text.slice(last, next));
-				last = next;
-			}
-			
-			return segments.join(" . ");
-		},
-		funcName: "WordSegmenter.segment",
-		parameters: [
-			{
-				name: "Model Type (Auto, LSTM, or Dictionary)",
-				type: "string",
-				typeUse: "string",
-				defaultValue: "Auto"
-			},
-			{
-				name: "Text",
-				type: "string",
-				typeUse: "string",
-				defaultValue: "โดยที่การยอมรับนับถือเกียรติศักดิ์ประจำตัว และสิทธิเท่าเทียมกันและโอนมิได้ของบรรดา สมาชิก ทั้ง หลายแห่งครอบครัว มนุษย์เป็นหลักมูลเหตุแห่งอิสรภาพ ความยุติธรรม และสันติภาพในโลก"
-			}
-		]
-	}
-};
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.d.ts
deleted file mode 100644
index dbd0ece..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-import { TimeZone } from "icu4x"
-import { TimeZoneInfo } from "icu4x"
-import { UtcOffset } from "icu4x"
-import { ZonedDateTimeFormatter } from "icu4x"
-export function format(zonedDateTimeFormatterLocaleName: string, zonedDateTimeFormatterLength: DateTimeLength, dateYear: number, dateMonth: number, dateDay: number, dateCalendarLocaleName: string, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number, zoneTimeZoneIdId: string, zoneOffsetOffset: string, zoneZoneVariant: TimeZoneVariant);
-export function formatIso(zonedDateTimeFormatterLocaleName: string, zonedDateTimeFormatterLength: DateTimeLength, dateYear: number, dateMonth: number, dateDay: number, timeHour: number, timeMinute: number, timeSecond: number, timeSubsecond: number, zoneTimeZoneIdId: string, zoneOffsetOffset: string, zoneZoneVariant: TimeZoneVariant);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.mjs
deleted file mode 100644
index cee6de7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/ZonedDateTimeFormatter.mjs
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Calendar } from "icu4x"
-import { Date } from "icu4x"
-import { IsoDate } from "icu4x"
-import { Locale } from "icu4x"
-import { Time } from "icu4x"
-import { TimeZone } from "icu4x"
-import { TimeZoneInfo } from "icu4x"
-import { UtcOffset } from "icu4x"
-import { ZonedDateTimeFormatter } from "icu4x"
-export function format(zonedDateTimeFormatterLocaleName, zonedDateTimeFormatterLength, dateYear, dateMonth, dateDay, dateCalendarLocaleName, timeHour, timeMinute, timeSecond, timeSubsecond, zoneTimeZoneIdId, zoneOffsetOffset, zoneZoneVariant) {
-    
-    let zonedDateTimeFormatterLocale = Locale.fromString(zonedDateTimeFormatterLocaleName);
-    
-    let zonedDateTimeFormatter = ZonedDateTimeFormatter.createWithLength(zonedDateTimeFormatterLocale,zonedDateTimeFormatterLength);
-    
-    let dateCalendarLocale = Locale.fromString(dateCalendarLocaleName);
-    
-    let dateCalendar = Calendar.createForLocale(dateCalendarLocale);
-    
-    let date = Date.fromIsoInCalendar(dateYear,dateMonth,dateDay,dateCalendar);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let zoneTimeZoneId = TimeZone.createFromBcp47(zoneTimeZoneIdId);
-    
-    let zoneOffset = UtcOffset.fromString(zoneOffsetOffset);
-    
-    let zone = new TimeZoneInfo(zoneTimeZoneId,zoneOffset,zoneZoneVariant);
-    
-    let out = zonedDateTimeFormatter.format(date,time,zone);
-    
-
-    return out;
-}
-export function formatIso(zonedDateTimeFormatterLocaleName, zonedDateTimeFormatterLength, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond, zoneTimeZoneIdId, zoneOffsetOffset, zoneZoneVariant) {
-    
-    let zonedDateTimeFormatterLocale = Locale.fromString(zonedDateTimeFormatterLocaleName);
-    
-    let zonedDateTimeFormatter = ZonedDateTimeFormatter.createWithLength(zonedDateTimeFormatterLocale,zonedDateTimeFormatterLength);
-    
-    let date = new IsoDate(dateYear,dateMonth,dateDay);
-    
-    let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond);
-    
-    let zoneTimeZoneId = TimeZone.createFromBcp47(zoneTimeZoneIdId);
-    
-    let zoneOffset = UtcOffset.fromString(zoneOffsetOffset);
-    
-    let zone = new TimeZoneInfo(zoneTimeZoneId,zoneOffset,zoneZoneVariant);
-    
-    let out = zonedDateTimeFormatter.formatIso(date,time,zone);
-    
-
-    return out;
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/index.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/index.mjs
deleted file mode 100644
index 6ffeb830..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/index.mjs
+++ /dev/null
@@ -1,1151 +0,0 @@
-export * as lib from "icu4x";
-import * as CaseMapperDemo from "./CaseMapper.mjs";
-export * as CaseMapperDemo from "./CaseMapper.mjs";
-import * as TitlecaseMapperDemo from "./TitlecaseMapper.mjs";
-export * as TitlecaseMapperDemo from "./TitlecaseMapper.mjs";
-import * as DateDemo from "./Date.mjs";
-export * as DateDemo from "./Date.mjs";
-import * as DateFormatterDemo from "./DateFormatter.mjs";
-export * as DateFormatterDemo from "./DateFormatter.mjs";
-import * as GregorianDateFormatterDemo from "./GregorianDateFormatter.mjs";
-export * as GregorianDateFormatterDemo from "./GregorianDateFormatter.mjs";
-import * as NoCalendarFormatterDemo from "./NoCalendarFormatter.mjs";
-export * as NoCalendarFormatterDemo from "./NoCalendarFormatter.mjs";
-import * as DecimalFormatterDemo from "./DecimalFormatter.mjs";
-export * as DecimalFormatterDemo from "./DecimalFormatter.mjs";
-import * as DecimalDemo from "./Decimal.mjs";
-export * as DecimalDemo from "./Decimal.mjs";
-import * as ListFormatterDemo from "./ListFormatter.mjs";
-export * as ListFormatterDemo from "./ListFormatter.mjs";
-import * as LocaleDemo from "./Locale.mjs";
-export * as LocaleDemo from "./Locale.mjs";
-import * as DateTimeFormatterDemo from "./DateTimeFormatter.mjs";
-export * as DateTimeFormatterDemo from "./DateTimeFormatter.mjs";
-import * as DateTimeFormatterGregorianDemo from "./DateTimeFormatterGregorian.mjs";
-export * as DateTimeFormatterGregorianDemo from "./DateTimeFormatterGregorian.mjs";
-import * as ComposingNormalizerDemo from "./ComposingNormalizer.mjs";
-export * as ComposingNormalizerDemo from "./ComposingNormalizer.mjs";
-import * as DecomposingNormalizerDemo from "./DecomposingNormalizer.mjs";
-export * as DecomposingNormalizerDemo from "./DecomposingNormalizer.mjs";
-import * as GregorianZonedDateTimeFormatterDemo from "./GregorianZonedDateTimeFormatter.mjs";
-export * as GregorianZonedDateTimeFormatterDemo from "./GregorianZonedDateTimeFormatter.mjs";
-import * as ZonedDateTimeFormatterDemo from "./ZonedDateTimeFormatter.mjs";
-export * as ZonedDateTimeFormatterDemo from "./ZonedDateTimeFormatter.mjs";
-import * as AnyCalendarKindDemo from "./AnyCalendarKind.mjs";
-export * as AnyCalendarKindDemo from "./AnyCalendarKind.mjs";
-
-import RenderTerminiWordSegmenter from "./WordSegmenter.mjs";
-
-
-let termini = Object.assign({
-    "CaseMapper.lowercase": {
-        func: CaseMapperDemo.lowercase,
-        // For avoiding webpacking minifying issues:
-        funcName: "CaseMapper.lowercase",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "CaseMapper.uppercase": {
-        func: CaseMapperDemo.uppercase,
-        // For avoiding webpacking minifying issues:
-        funcName: "CaseMapper.uppercase",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "CaseMapper.titlecaseSegmentWithOnlyCaseData": {
-        func: CaseMapperDemo.titlecaseSegmentWithOnlyCaseData,
-        // For avoiding webpacking minifying issues:
-        funcName: "CaseMapper.titlecaseSegmentWithOnlyCaseData",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Options:LeadingAdjustment",
-                type: "LeadingAdjustment",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Options:TrailingCase",
-                type: "TrailingCase",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    },
-
-    "CaseMapper.fold": {
-        func: CaseMapperDemo.fold,
-        // For avoiding webpacking minifying issues:
-        funcName: "CaseMapper.fold",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "CaseMapper.foldTurkic": {
-        func: CaseMapperDemo.foldTurkic,
-        // For avoiding webpacking minifying issues:
-        funcName: "CaseMapper.foldTurkic",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "TitlecaseMapper.titlecaseSegment": {
-        func: TitlecaseMapperDemo.titlecaseSegment,
-        // For avoiding webpacking minifying issues:
-        funcName: "TitlecaseMapper.titlecaseSegment",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Options:LeadingAdjustment",
-                type: "LeadingAdjustment",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Options:TrailingCase",
-                type: "TrailingCase",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    },
-
-    "Date.monthCode": {
-        func: DateDemo.monthCode,
-        // For avoiding webpacking minifying issues:
-        funcName: "Date.monthCode",
-        parameters: [
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Calendar:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Date.era": {
-        func: DateDemo.era,
-        // For avoiding webpacking minifying issues:
-        funcName: "Date.era",
-        parameters: [
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Calendar:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "DateFormatter.format": {
-        func: DateFormatterDemo.format,
-        // For avoiding webpacking minifying issues:
-        funcName: "DateFormatter.format",
-        parameters: [
-            
-            {
-                name: "DateFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DateFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Value:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Calendar:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "DateFormatter.formatIso": {
-        func: DateFormatterDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "DateFormatter.formatIso",
-        parameters: [
-            
-            {
-                name: "DateFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DateFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Value:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Day",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "GregorianDateFormatter.formatIso": {
-        func: GregorianDateFormatterDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "GregorianDateFormatter.formatIso",
-        parameters: [
-            
-            {
-                name: "GregorianDateFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "GregorianDateFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Value:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Day",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "NoCalendarFormatter.format": {
-        func: NoCalendarFormatterDemo.format,
-        // For avoiding webpacking minifying issues:
-        funcName: "NoCalendarFormatter.format",
-        parameters: [
-            
-            {
-                name: "NoCalendarFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "NoCalendarFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Value:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Subsecond",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "DecimalFormatter.format": {
-        func: DecimalFormatterDemo.format,
-        // For avoiding webpacking minifying issues:
-        funcName: "DecimalFormatter.format",
-        parameters: [
-            
-            {
-                name: "DecimalFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DecimalFormatter:GroupingStrategy",
-                type: "DecimalGroupingStrategy",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Value:F",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Value:Magnitude",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "Decimal.toString": {
-        func: DecimalDemo.toString,
-        // For avoiding webpacking minifying issues:
-        funcName: "Decimal.toString",
-        parameters: [
-            
-            {
-                name: "Decimal:F",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Decimal:Magnitude",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "ListFormatter.format": {
-        func: ListFormatterDemo.format,
-        // For avoiding webpacking minifying issues:
-        funcName: "ListFormatter.format",
-        parameters: [
-            
-            {
-                name: "ListFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "ListFormatter:Length",
-                type: "ListLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "List",
-                type: "Array<string>",
-                typeUse: "Array<string>"
-            }
-            
-        ]
-    },
-
-    "Locale.basename": {
-        func: LocaleDemo.basename,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.basename",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.getUnicodeExtension": {
-        func: LocaleDemo.getUnicodeExtension,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.getUnicodeExtension",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.language": {
-        func: LocaleDemo.language,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.language",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.region": {
-        func: LocaleDemo.region,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.region",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.script": {
-        func: LocaleDemo.script,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.script",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.normalize": {
-        func: LocaleDemo.normalize,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.normalize",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "Locale.toString": {
-        func: LocaleDemo.toString,
-        // For avoiding webpacking minifying issues:
-        funcName: "Locale.toString",
-        parameters: [
-            
-            {
-                name: "Locale:Name",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "DateTimeFormatter.formatIso": {
-        func: DateTimeFormatterDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "DateTimeFormatter.formatIso",
-        parameters: [
-            
-            {
-                name: "DateTimeFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DateTimeFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:TimePrecision",
-                type: "TimePrecision",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:Alignment",
-                type: "DateTimeAlignment",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:YearStyle",
-                type: "YearStyle",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "DateTimeFormatter.formatSameCalendar": {
-        func: DateTimeFormatterDemo.formatSameCalendar,
-        // For avoiding webpacking minifying issues:
-        funcName: "DateTimeFormatter.formatSameCalendar",
-        parameters: [
-            
-            {
-                name: "DateTimeFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DateTimeFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:TimePrecision",
-                type: "TimePrecision",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:Alignment",
-                type: "DateTimeAlignment",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatter:YearStyle",
-                type: "YearStyle",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Calendar:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "DateTimeFormatterGregorian.formatIso": {
-        func: DateTimeFormatterGregorianDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "DateTimeFormatterGregorian.formatIso",
-        parameters: [
-            
-            {
-                name: "DateTimeFormatterGregorian:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "DateTimeFormatterGregorian:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatterGregorian:TimePrecision",
-                type: "TimePrecision",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatterGregorian:Alignment",
-                type: "DateTimeAlignment",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "DateTimeFormatterGregorian:YearStyle",
-                type: "YearStyle",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            }
-            
-        ]
-    },
-
-    "ComposingNormalizer.normalize": {
-        func: ComposingNormalizerDemo.normalize,
-        // For avoiding webpacking minifying issues:
-        funcName: "ComposingNormalizer.normalize",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "DecomposingNormalizer.normalize": {
-        func: DecomposingNormalizerDemo.normalize,
-        // For avoiding webpacking minifying issues:
-        funcName: "DecomposingNormalizer.normalize",
-        parameters: [
-            
-            {
-                name: "S",
-                type: "string",
-                typeUse: "string"
-            }
-            
-        ]
-    },
-
-    "GregorianZonedDateTimeFormatter.formatIso": {
-        func: GregorianZonedDateTimeFormatterDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "GregorianZonedDateTimeFormatter.formatIso",
-        parameters: [
-            
-            {
-                name: "GregorianZonedDateTimeFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "GregorianZonedDateTimeFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Zone:TimeZoneId:Id",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:Offset:Offset",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:ZoneVariant",
-                type: "TimeZoneVariant",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    },
-
-    "ZonedDateTimeFormatter.format": {
-        func: ZonedDateTimeFormatterDemo.format,
-        // For avoiding webpacking minifying issues:
-        funcName: "ZonedDateTimeFormatter.format",
-        parameters: [
-            
-            {
-                name: "ZonedDateTimeFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "ZonedDateTimeFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Calendar:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Zone:TimeZoneId:Id",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:Offset:Offset",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:ZoneVariant",
-                type: "TimeZoneVariant",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    },
-
-    "ZonedDateTimeFormatter.formatIso": {
-        func: ZonedDateTimeFormatterDemo.formatIso,
-        // For avoiding webpacking minifying issues:
-        funcName: "ZonedDateTimeFormatter.formatIso",
-        parameters: [
-            
-            {
-                name: "ZonedDateTimeFormatter:Locale:Name",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "ZonedDateTimeFormatter:Length",
-                type: "DateTimeLength",
-                typeUse: "enumerator"
-            },
-            
-            {
-                name: "Date:Year",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Month",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Date:Day",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Hour",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Minute",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Second",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Time:Subsecond",
-                type: "number",
-                typeUse: "number"
-            },
-            
-            {
-                name: "Zone:TimeZoneId:Id",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:Offset:Offset",
-                type: "string",
-                typeUse: "string"
-            },
-            
-            {
-                name: "Zone:ZoneVariant",
-                type: "TimeZoneVariant",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    },
-
-    "AnyCalendarKind.bcp47": {
-        func: AnyCalendarKindDemo.bcp47,
-        // For avoiding webpacking minifying issues:
-        funcName: "AnyCalendarKind.bcp47",
-        parameters: [
-            
-            {
-                name: "AnyCalendarKind",
-                type: "AnyCalendarKind",
-                typeUse: "enumerator"
-            }
-            
-        ]
-    }
-}, RenderTerminiWordSegmenter);
-
-export const RenderInfo = {
-    "termini": termini
-};
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/rendering.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/rendering.mjs
deleted file mode 100644
index 28eeba8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/rendering.mjs
+++ /dev/null
@@ -1,271 +0,0 @@
-function generateTemplate(className, variable, selector) {
-    if (className[variable] === undefined) {
-        className[variable] = document.querySelector(selector).content;
-    }
-}
-
-class ParameterTemplate extends HTMLElement {
-    default = null;
-
-    inputElement = null;
-
-    static baseTemplate;
-    constructor(options = {}, className, selector, defaultValue=null, ...args) {
-        super();
-        generateTemplate(ParameterTemplate, "baseTemplate", "#parameter");
-        generateTemplate(className, "template", selector);
-        let baseClone = ParameterTemplate.baseTemplate.cloneNode(true);
-
-        let clone = className["template"].cloneNode(true);
-
-        this.initialize(clone, ...args);
-
-        this.inputElement = clone.querySelector("*[data-oninput]");
-        if (this.inputElement !== null) {
-            this.inputElement.addEventListener("input", this.input.bind(this));
-        }
-        
-        clone.slot = "parameter";
-        baseClone.appendChild(clone);
-
-        const shadowRoot = this.attachShadow({ mode: "open" });
-        shadowRoot.appendChild(baseClone);
-
-        if ("defaultValue" in options) {
-            this.default = options.defaultValue;
-            this.setValue(options.defaultValue);
-        } else if (this.default === null) {
-            this.default = defaultValue;
-        }
-    }
-
-    setValue(v) {
-        if (this.inputElement !== null) {
-            this.inputElement.value = v;
-        }
-    }
-
-    getEventValue(event) {
-        return event.target.value;
-    }
-
-    input(event) {
-        this.dispatchEvent(new CustomEvent("parameter-input", {
-            detail: this.getEventValue(event)
-        }));
-    }
-
-    initialize(clone) {
-
-    }
-}
-
-customElements.define("terminus-param", ParameterTemplate);
-
-class BooleanTemplate extends ParameterTemplate {
-    static template;
-    constructor(options) {
-        super(options, BooleanTemplate, "template#boolean", false);
-    }
-
-    getEventValue(event) {
-        return event.target.checked;
-    }
-
-    setValue(v) {
-        this.inputElement.checked = v;
-    }
-}
-
-customElements.define("terminus-param-boolean", BooleanTemplate);
-
-class NumberTemplate extends ParameterTemplate {
-    static template;
-    constructor(options) {
-        super(options, NumberTemplate, "template#number", 0);
-    }
-    
-    getEventValue(event) {
-        return parseFloat(event.target.value);
-    }
-}
-
-customElements.define("terminus-param-number", NumberTemplate);
-
-class StringTemplate extends ParameterTemplate {
-    static template;
-    constructor(options) {
-        super(options, StringTemplate, "template#string", "");
-    }
-}
-
-customElements.define("terminus-param-string", StringTemplate);
-
-class StringArrayTemplate extends ParameterTemplate {
-    static template;
-    constructor(options) {
-        super(options, StringArrayTemplate, "template#string-array", []);
-    }
-
-    getEventValue(event) {
-        return event.target.value.split(",");
-    }
-}
-
-customElements.define("terminus-param-string-array", StringArrayTemplate);
-
-class EnumOption extends HTMLElement {
-    static template;
-    constructor(optionText) {
-        super();
-        generateTemplate(EnumOption, "template", "template#enum-option");
-        let clone = EnumOption.template.cloneNode(true);
-
-        clone.querySelector("slot[name='option-text']").parentElement.innerText = optionText;
-        
-        this.append(...clone.children);
-    }
-}
-
-customElements.define("terminus-enum-option", EnumOption);
-
-class EnumTemplate extends ParameterTemplate {
-    static template;
-
-    #enumType;
-    constructor(options, enumType) {
-        super(options, EnumTemplate, "template#enum", null, enumType);
-        this.#enumType = enumType;
-    }
-
-    initialize(clone, enumType) {
-        let options = clone.querySelector("*[data-options]");
-        
-        for (let entry of enumType.getAllEntries()) {
-            
-            if (this.default === null) {
-                this.default = entry[0];
-            }
-            options.append(...(new EnumOption(entry[0])).children);
-        }
-    }
-
-    getEventValue(event) {
-        return this.#enumType[event.target.value];
-    }
-}
-
-customElements.define("terminus-param-enum", EnumTemplate);
-
-class TerminusParams extends HTMLElement {
-    #params = [];
-
-    constructor(library, evaluateExternal, params){
-        super();
-
-        for (var i = 0; i < params.length; i++) {
-            let param = params[i];
-            let paramName = document.createElement("span");
-            paramName.slot = "param-name";
-            paramName.innerText = param.name;
-
-            var newChild;
-
-            switch (param.typeUse) {
-                case "string":
-                    newChild = new StringTemplate(param);
-                    this.#params[i] = "";
-                    break;
-                case "boolean":
-                    newChild = new BooleanTemplate(param);
-                    this.#params[i] = false;
-                    break;
-                case "number":
-                    newChild = new NumberTemplate(param);
-                    this.#params[i] = 0;
-                    break;
-                case "Array<string>":
-                    newChild = new StringArrayTemplate(param);
-                    this.#params[i] = [];
-                    break;
-                case "enumerator":
-                    newChild = new EnumTemplate(param, library[param.type]);
-                    this.#params[i] = newChild.default
-                    break;
-                case "external":
-                    let updateParamEvent = (value) => {
-                        this.#params[i] = value;
-                    };
-                    evaluateExternal(param, updateParamEvent);
-                    break;
-                default:
-                    console.error("Unrecognized parameter: ", param);
-                    break;
-            }
-
-            newChild.addEventListener("parameter-input", this.input.bind(this, i));
-            this.#params[i] = newChild.default;
-
-            newChild.appendChild(paramName);
-            this.appendChild(newChild);
-        }
-    }
-
-    input(paramIdx, event) {
-        this.#params[paramIdx] = event.detail;
-    }
-
-    get paramArray() {
-        return this.#params;
-    }
-}
-
-customElements.define("terminus-params", TerminusParams);
-
-export class TerminusRender extends HTMLElement {
-    static template;
-
-    #func = null;
-    #parameters;
-    #output;
-    constructor(library, evaluateExternal, terminus) {
-        super();
-        generateTemplate(TerminusRender, "template", "template#terminus");
-        let clone = TerminusRender.template.cloneNode(true);
-
-        this.id = terminus.funcName;
-
-        this.#func = terminus.func;
-
-        let button = clone.querySelector("*[data-submit]");
-        button.addEventListener("click", this.submit.bind(this));
-
-        let funcText = document.createElement("span");
-        funcText.slot = "func-name";
-        funcText.innerText = terminus.funcName;
-        this.appendChild(funcText);
-
-        this.#parameters = new TerminusParams(library, evaluateExternal, terminus.parameters);
-        this.#parameters.slot = "parameters";
-        this.appendChild(this.#parameters);
-
-        this.#output = document.createElement("span");
-        this.#output.slot = "output";
-
-        this.appendChild(this.#output);
-
-        const shadowRoot = this.attachShadow({ mode: "open" });
-        shadowRoot.appendChild(clone);
-    }
-
-    submit() {
-        try {
-            this.#output.innerText = this.#func(...this.#parameters.paramArray);
-        } catch(e) {
-            this.#output.innerText = e;
-            throw e;
-        }
-    }
-}
-
-customElements.define("terminus-render", TerminusRender);
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/runtime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/runtime.mjs
deleted file mode 100644
index 043f2c7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/runtime.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-import { RenderInfo, lib } from "../index.mjs";
-import { TerminusRender } from "./rendering.mjs";
-
-let params = new URLSearchParams(window.location.search);
-
-let func = params.get("func");
-
-let terminus = new TerminusRender(lib, (param, updateParamEvent) => {
-    console.error(`Unrecognized parameter type ${param}`);
-}, RenderInfo.termini[func]);
-
-document.getElementById("render").appendChild(terminus);
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/template.html b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/template.html
deleted file mode 100644
index 6973061..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/demo_gen/rendering/template.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <script src="runtime.mjs" type="module"></script>
-    </head>
-    <body>
-        <div id="render"></div>
-        <template id="terminus">
-            <div>
-                <h1><slot name="func-name"></slot></h1>
-                <slot name="parameters"></slot>
-                <button type="submit" data-submit>Submit</button>
-                <div>
-                    Output
-                    <p><slot name="output">Output Shown Here</slot></p>
-                </div>
-            </div>
-        </template>
-
-        <template id="parameter">
-            <div>
-                <slot name="param-name"></slot>
-                <slot name="parameter"></slot>
-            </div>
-        </template>
-
-        <template id="enum">
-            <select data-oninput data-options>
-                <!-- Select doesn't evaluate anything other than option nodes, so to allow dropdowns (in addition to other HTML elements), we just search for data-options to append options to.-->
-            </select>
-        </template>
-
-        <template id="enum-option">
-            <option>
-                <slot name="option-text"></slot>
-            </option>
-        </template>
-
-        <template id="string">
-            <input type="text" data-oninput/>
-        </template>
-
-        <template id="string-array">
-            <textarea data-oninput></textarea>
-        </template>
-
-        <template id="number">
-            <!-- Floats not supported by the example ICU4XFixedDecimal type for whatever reason. -->
-            <input type="number" data-oninput/>
-        </template>
-
-        <template id="boolean">
-            <input type="checkbox" id="bool" data-oninput/>
-        </template>
-	</body>
-</html>
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.d.ts
deleted file mode 100644
index 91c32fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.d.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-// generated by diplomat-tool
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** The various calendar types currently supported by [`Calendar`]
-*
-*See the [Rust documentation for `AnyCalendarKind`](https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html) for more information.
-*/
-
-
-export class AnyCalendarKind {
-    
-
-    static fromValue(value : AnyCalendarKind | string) : AnyCalendarKind; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Iso : AnyCalendarKind;
-    static Gregorian : AnyCalendarKind;
-    static Buddhist : AnyCalendarKind;
-    static Japanese : AnyCalendarKind;
-    static JapaneseExtended : AnyCalendarKind;
-    static Ethiopian : AnyCalendarKind;
-    static EthiopianAmeteAlem : AnyCalendarKind;
-    static Indian : AnyCalendarKind;
-    static Coptic : AnyCalendarKind;
-    static Dangi : AnyCalendarKind;
-    static Chinese : AnyCalendarKind;
-    static Hebrew : AnyCalendarKind;
-    static IslamicCivil : AnyCalendarKind;
-    static IslamicObservational : AnyCalendarKind;
-    static IslamicTabular : AnyCalendarKind;
-    static IslamicUmmAlQura : AnyCalendarKind;
-    static Persian : AnyCalendarKind;
-    static Roc : AnyCalendarKind;
-
-    static getForLocale(locale: Locale): AnyCalendarKind | null;
-
-    static getForBcp47(s: string): AnyCalendarKind | null;
-
-    get bcp47(): string;
-
-    constructor(value: AnyCalendarKind | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.mjs
deleted file mode 100644
index 86f6888..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/AnyCalendarKind.mjs
+++ /dev/null
@@ -1,174 +0,0 @@
-// generated by diplomat-tool
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** The various calendar types currently supported by [`Calendar`]
-*
-*See the [Rust documentation for `AnyCalendarKind`](https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html) for more information.
-*/
-
-
-export class AnyCalendarKind {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Iso", 0],
-        ["Gregorian", 1],
-        ["Buddhist", 2],
-        ["Japanese", 3],
-        ["JapaneseExtended", 4],
-        ["Ethiopian", 5],
-        ["EthiopianAmeteAlem", 6],
-        ["Indian", 7],
-        ["Coptic", 8],
-        ["Dangi", 9],
-        ["Chinese", 10],
-        ["Hebrew", 11],
-        ["IslamicCivil", 12],
-        ["IslamicObservational", 13],
-        ["IslamicTabular", 14],
-        ["IslamicUmmAlQura", 15],
-        ["Persian", 16],
-        ["Roc", 17]
-    ]);
-
-    static getAllEntries() {
-        return AnyCalendarKind.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return AnyCalendarKind.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof AnyCalendarKind) {
-            return value;
-        }
-
-        let intVal = AnyCalendarKind.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return AnyCalendarKind.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a AnyCalendarKind and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new AnyCalendarKind(value);
-    }
-
-    get value() {
-        return [...AnyCalendarKind.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-    ];
-
-    static Iso = AnyCalendarKind.#objectValues[0];
-    static Gregorian = AnyCalendarKind.#objectValues[1];
-    static Buddhist = AnyCalendarKind.#objectValues[2];
-    static Japanese = AnyCalendarKind.#objectValues[3];
-    static JapaneseExtended = AnyCalendarKind.#objectValues[4];
-    static Ethiopian = AnyCalendarKind.#objectValues[5];
-    static EthiopianAmeteAlem = AnyCalendarKind.#objectValues[6];
-    static Indian = AnyCalendarKind.#objectValues[7];
-    static Coptic = AnyCalendarKind.#objectValues[8];
-    static Dangi = AnyCalendarKind.#objectValues[9];
-    static Chinese = AnyCalendarKind.#objectValues[10];
-    static Hebrew = AnyCalendarKind.#objectValues[11];
-    static IslamicCivil = AnyCalendarKind.#objectValues[12];
-    static IslamicObservational = AnyCalendarKind.#objectValues[13];
-    static IslamicTabular = AnyCalendarKind.#objectValues[14];
-    static IslamicUmmAlQura = AnyCalendarKind.#objectValues[15];
-    static Persian = AnyCalendarKind.#objectValues[16];
-    static Roc = AnyCalendarKind.#objectValues[17];
-
-    static getForLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_AnyCalendarKind_get_for_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static getForBcp47(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_AnyCalendarKind_get_for_bcp47_mv1(diplomatReceive.buffer, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new AnyCalendarKind(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    get bcp47() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_AnyCalendarKind_bcp47_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.d.ts
deleted file mode 100644
index 6920a6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { BidiInfo } from "./BidiInfo"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { ReorderedIndexMap } from "./ReorderedIndexMap"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Bidi object, containing loaded bidi data
-*
-*See the [Rust documentation for `BidiClassAdapter`](https://docs.rs/icu/latest/icu/properties/bidi/struct.BidiClassAdapter.html) for more information.
-*
-*See the [Rust documentation for `BidiClass`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiClass.html) for more information.
-*/
-
-
-export class Bidi {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): Bidi;
-
-    forText(text: string, defaultLevel: number | null): BidiInfo;
-
-    reorderVisual(levels: Array<number>): ReorderedIndexMap;
-
-    static levelIsRtl(level: number): boolean;
-
-    static levelIsLtr(level: number): boolean;
-
-    static levelRtl(): number;
-
-    static levelLtr(): number;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.mjs
deleted file mode 100644
index 76c598b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Bidi.mjs
+++ /dev/null
@@ -1,160 +0,0 @@
-// generated by diplomat-tool
-import { BidiInfo } from "./BidiInfo.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { ReorderedIndexMap } from "./ReorderedIndexMap.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Bidi object, containing loaded bidi data
-*
-*See the [Rust documentation for `BidiClassAdapter`](https://docs.rs/icu/latest/icu/properties/bidi/struct.BidiClassAdapter.html) for more information.
-*
-*See the [Rust documentation for `BidiClass`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiClass.html) for more information.
-*/
-const Bidi_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Bidi_destroy_mv1(ptr);
-});
-
-export class Bidi {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Bidi is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Bidi_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_Bidi_create_mv1();
-    
-        try {
-            return new Bidi(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Bidi_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Bidi(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    forText(text, defaultLevel) {
-        let functionGarbageCollectorGrip = new diplomatRuntime.GarbageCollectorGrip();
-        const textSlice = functionGarbageCollectorGrip.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, text));
-        
-        // This lifetime edge depends on lifetimes 'text
-        let textEdges = [textSlice];
-        
-        const result = wasm.icu4x_Bidi_for_text_valid_utf8_mv1(this.ffiValue, ...textSlice.splat(), ...diplomatRuntime.optionToArgsForCalling(defaultLevel, 1, 1, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue, Uint8Array)]));
-    
-        try {
-            return new BidiInfo(diplomatRuntime.internalConstructor, result, [], textEdges);
-        }
-        
-        finally {
-            functionGarbageCollectorGrip.releaseToGarbageCollector();
-        }
-    }
-
-    reorderVisual(levels) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const levelsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.slice(wasm, levels, "u8"));
-        
-        const result = wasm.icu4x_Bidi_reorder_visual_mv1(this.ffiValue, ...levelsSlice.splat());
-    
-        try {
-            return new ReorderedIndexMap(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static levelIsRtl(level) {
-        const result = wasm.icu4x_Bidi_level_is_rtl_mv1(level);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static levelIsLtr(level) {
-        const result = wasm.icu4x_Bidi_level_is_ltr_mv1(level);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static levelRtl() {
-        const result = wasm.icu4x_Bidi_level_rtl_mv1();
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static levelLtr() {
-        const result = wasm.icu4x_Bidi_level_ltr_mv1();
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.d.ts
deleted file mode 100644
index 84bdc96..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `BidiClass`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiClass.html) for more information.
-*/
-
-
-export class BidiClass {
-    
-
-    static fromValue(value : BidiClass | string) : BidiClass; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static LeftToRight : BidiClass;
-    static RightToLeft : BidiClass;
-    static EuropeanNumber : BidiClass;
-    static EuropeanSeparator : BidiClass;
-    static EuropeanTerminator : BidiClass;
-    static ArabicNumber : BidiClass;
-    static CommonSeparator : BidiClass;
-    static ParagraphSeparator : BidiClass;
-    static SegmentSeparator : BidiClass;
-    static WhiteSpace : BidiClass;
-    static OtherNeutral : BidiClass;
-    static LeftToRightEmbedding : BidiClass;
-    static LeftToRightOverride : BidiClass;
-    static ArabicLetter : BidiClass;
-    static RightToLeftEmbedding : BidiClass;
-    static RightToLeftOverride : BidiClass;
-    static PopDirectionalFormat : BidiClass;
-    static NonspacingMark : BidiClass;
-    static BoundaryNeutral : BidiClass;
-    static FirstStrongIsolate : BidiClass;
-    static LeftToRightIsolate : BidiClass;
-    static RightToLeftIsolate : BidiClass;
-    static PopDirectionalIsolate : BidiClass;
-
-    static forChar(ch: codepoint): BidiClass;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): BidiClass | null;
-
-    constructor(value: BidiClass | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.mjs
deleted file mode 100644
index 9e3f065..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiClass.mjs
+++ /dev/null
@@ -1,204 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `BidiClass`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiClass.html) for more information.
-*/
-
-
-export class BidiClass {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["LeftToRight", 0],
-        ["RightToLeft", 1],
-        ["EuropeanNumber", 2],
-        ["EuropeanSeparator", 3],
-        ["EuropeanTerminator", 4],
-        ["ArabicNumber", 5],
-        ["CommonSeparator", 6],
-        ["ParagraphSeparator", 7],
-        ["SegmentSeparator", 8],
-        ["WhiteSpace", 9],
-        ["OtherNeutral", 10],
-        ["LeftToRightEmbedding", 11],
-        ["LeftToRightOverride", 12],
-        ["ArabicLetter", 13],
-        ["RightToLeftEmbedding", 14],
-        ["RightToLeftOverride", 15],
-        ["PopDirectionalFormat", 16],
-        ["NonspacingMark", 17],
-        ["BoundaryNeutral", 18],
-        ["FirstStrongIsolate", 19],
-        ["LeftToRightIsolate", 20],
-        ["RightToLeftIsolate", 21],
-        ["PopDirectionalIsolate", 22]
-    ]);
-
-    static getAllEntries() {
-        return BidiClass.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return BidiClass.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof BidiClass) {
-            return value;
-        }
-
-        let intVal = BidiClass.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return BidiClass.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a BidiClass and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new BidiClass(value);
-    }
-
-    get value() {
-        return [...BidiClass.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-    ];
-
-    static LeftToRight = BidiClass.#objectValues[0];
-    static RightToLeft = BidiClass.#objectValues[1];
-    static EuropeanNumber = BidiClass.#objectValues[2];
-    static EuropeanSeparator = BidiClass.#objectValues[3];
-    static EuropeanTerminator = BidiClass.#objectValues[4];
-    static ArabicNumber = BidiClass.#objectValues[5];
-    static CommonSeparator = BidiClass.#objectValues[6];
-    static ParagraphSeparator = BidiClass.#objectValues[7];
-    static SegmentSeparator = BidiClass.#objectValues[8];
-    static WhiteSpace = BidiClass.#objectValues[9];
-    static OtherNeutral = BidiClass.#objectValues[10];
-    static LeftToRightEmbedding = BidiClass.#objectValues[11];
-    static LeftToRightOverride = BidiClass.#objectValues[12];
-    static ArabicLetter = BidiClass.#objectValues[13];
-    static RightToLeftEmbedding = BidiClass.#objectValues[14];
-    static RightToLeftOverride = BidiClass.#objectValues[15];
-    static PopDirectionalFormat = BidiClass.#objectValues[16];
-    static NonspacingMark = BidiClass.#objectValues[17];
-    static BoundaryNeutral = BidiClass.#objectValues[18];
-    static FirstStrongIsolate = BidiClass.#objectValues[19];
-    static LeftToRightIsolate = BidiClass.#objectValues[20];
-    static RightToLeftIsolate = BidiClass.#objectValues[21];
-    static PopDirectionalIsolate = BidiClass.#objectValues[22];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_BidiClass_for_char_mv1(ch);
-    
-        try {
-            return new BidiClass(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_BidiClass_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_BidiClass_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_BidiClass_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_BidiClass_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.d.ts
deleted file mode 100644
index 78d65932..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class BidiDirection {
-    
-
-    static fromValue(value : BidiDirection | string) : BidiDirection; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Ltr : BidiDirection;
-    static Rtl : BidiDirection;
-    static Mixed : BidiDirection;
-
-    constructor(value: BidiDirection | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.mjs
deleted file mode 100644
index eb06ddf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiDirection.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class BidiDirection {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Ltr", 0],
-        ["Rtl", 1],
-        ["Mixed", 2]
-    ]);
-
-    static getAllEntries() {
-        return BidiDirection.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return BidiDirection.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof BidiDirection) {
-            return value;
-        }
-
-        let intVal = BidiDirection.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return BidiDirection.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a BidiDirection and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new BidiDirection(value);
-    }
-
-    get value() {
-        return [...BidiDirection.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new BidiDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new BidiDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new BidiDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Ltr = BidiDirection.#objectValues[0];
-    static Rtl = BidiDirection.#objectValues[1];
-    static Mixed = BidiDirection.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.d.ts
deleted file mode 100644
index eb54fc6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { BidiParagraph } from "./BidiParagraph"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object containing bidi information for a given string, produced by `for_text()` on `Bidi`
-*
-*See the [Rust documentation for `BidiInfo`](https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.BidiInfo.html) for more information.
-*/
-
-
-export class BidiInfo {
-    
-    get ffiValue(): pointer;
-
-    get paragraphCount(): number;
-
-    paragraphAt(n: number): BidiParagraph | null;
-
-    get size(): number;
-
-    levelAt(pos: number): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.mjs
deleted file mode 100644
index d7becb3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiInfo.mjs
+++ /dev/null
@@ -1,94 +0,0 @@
-// generated by diplomat-tool
-import { BidiParagraph } from "./BidiParagraph.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object containing bidi information for a given string, produced by `for_text()` on `Bidi`
-*
-*See the [Rust documentation for `BidiInfo`](https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.BidiInfo.html) for more information.
-*/
-const BidiInfo_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_BidiInfo_destroy_mv1(ptr);
-});
-
-export class BidiInfo {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #textEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, textEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("BidiInfo is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#textEdge = textEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            BidiInfo_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    get paragraphCount() {
-        const result = wasm.icu4x_BidiInfo_paragraph_count_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    paragraphAt(n) {
-        // This lifetime edge depends on lifetimes 'text
-        let textEdges = [this];
-        
-        const result = wasm.icu4x_BidiInfo_paragraph_at_mv1(this.ffiValue, n);
-    
-        try {
-            return result === 0 ? null : new BidiParagraph(diplomatRuntime.internalConstructor, result, [], textEdges);
-        }
-        
-        finally {}
-    }
-
-    get size() {
-        const result = wasm.icu4x_BidiInfo_size_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    levelAt(pos) {
-        const result = wasm.icu4x_BidiInfo_level_at_mv1(this.ffiValue, pos);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, textEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.d.ts
deleted file mode 100644
index 6ee94cfd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { BidiPairedBracketType } from "./BidiPairedBracketType"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `BidiMirroringGlyph`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiMirroringGlyph.html) for more information.
-*/
-type BidiMirroringGlyph_obj = {
-    mirroringGlyph?: codepoint | null;
-    mirrored: boolean;
-    pairedBracketType: BidiPairedBracketType;
-};
-
-
-
-export class BidiMirroringGlyph {
-    
-    get mirroringGlyph() : codepoint | null; 
-    set mirroringGlyph(value: codepoint | null); 
-    
-    get mirrored() : boolean; 
-    set mirrored(value: boolean); 
-    
-    get pairedBracketType() : BidiPairedBracketType; 
-    set pairedBracketType(value: BidiPairedBracketType); 
-    
-    /** Create `BidiMirroringGlyph` from an object that contains all of `BidiMirroringGlyph`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : BidiMirroringGlyph_obj) : BidiMirroringGlyph;
-
-
-    static forChar(ch: codepoint): BidiMirroringGlyph;
-
-    constructor(structObj : BidiMirroringGlyph_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.mjs
deleted file mode 100644
index 57b6e62c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiMirroringGlyph.mjs
+++ /dev/null
@@ -1,143 +0,0 @@
-// generated by diplomat-tool
-import { BidiPairedBracketType } from "./BidiPairedBracketType.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `BidiMirroringGlyph`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiMirroringGlyph.html) for more information.
-*/
-
-
-export class BidiMirroringGlyph {
-    
-    #mirroringGlyph;
-    
-    get mirroringGlyph()  {
-        return this.#mirroringGlyph;
-    } 
-    set mirroringGlyph(value) {
-        this.#mirroringGlyph = value;
-    }
-    
-    #mirrored;
-    
-    get mirrored()  {
-        return this.#mirrored;
-    } 
-    set mirrored(value) {
-        this.#mirrored = value;
-    }
-    
-    #pairedBracketType;
-    
-    get pairedBracketType()  {
-        return this.#pairedBracketType;
-    } 
-    set pairedBracketType(value) {
-        this.#pairedBracketType = value;
-    }
-    
-    /** Create `BidiMirroringGlyph` from an object that contains all of `BidiMirroringGlyph`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new BidiMirroringGlyph(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("BidiMirroringGlyph's constructor takes an object of BidiMirroringGlyph's fields.");
-        }
-
-        if ("mirroringGlyph" in structObj) {
-            this.#mirroringGlyph = structObj.mirroringGlyph;
-        } else {
-            this.#mirroringGlyph = null;
-        }
-
-        if ("mirrored" in structObj) {
-            this.#mirrored = structObj.mirrored;
-        } else {
-            throw new Error("Missing required field mirrored.");
-        }
-
-        if ("pairedBracketType" in structObj) {
-            this.#pairedBracketType = structObj.pairedBracketType;
-        } else {
-            throw new Error("Missing required field pairedBracketType.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [...diplomatRuntime.optionToArgsForCalling(this.#mirroringGlyph, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue, Uint32Array)]), this.#mirrored, /* [3 x i8] padding */ 0, 0, 0 /* end padding */, this.#pairedBracketType.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof BidiMirroringGlyph) {
-            return obj;
-        }
-
-        return BidiMirroringGlyph.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 0, this.#mirroringGlyph, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue, Uint32Array));
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#mirrored, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 12, this.#pairedBracketType.ffiValue, Int32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("BidiMirroringGlyph._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const mirroringGlyphDeref = ptr;
-        structObj.mirroringGlyph = diplomatRuntime.readOption(wasm, mirroringGlyphDeref, 4, (wasm, offset) => { const deref = (new Uint32Array(wasm.memory.buffer, offset, 1))[0]; return deref });
-        const mirroredDeref = (new Uint8Array(wasm.memory.buffer, ptr + 8, 1))[0] === 1;
-        structObj.mirrored = mirroredDeref;
-        const pairedBracketTypeDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 12);
-        structObj.pairedBracketType = new BidiPairedBracketType(diplomatRuntime.internalConstructor, pairedBracketTypeDeref);
-
-        return new BidiMirroringGlyph(structObj);
-    }
-
-    static forChar(ch) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 16, 4, false);
-        
-        const result = wasm.icu4x_BidiMirroringGlyph_for_char_mv1(diplomatReceive.buffer, ch);
-    
-        try {
-            return BidiMirroringGlyph._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.d.ts
deleted file mode 100644
index 988a7de3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `BidiPairedBracketType`](https://docs.rs/icu/latest/icu/properties/props/enum.BidiPairedBracketType.html) for more information.
-*/
-
-
-export class BidiPairedBracketType {
-    
-
-    static fromValue(value : BidiPairedBracketType | string) : BidiPairedBracketType; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Open : BidiPairedBracketType;
-    static Close : BidiPairedBracketType;
-    static None : BidiPairedBracketType;
-
-    constructor(value: BidiPairedBracketType | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.mjs
deleted file mode 100644
index be66c7a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiPairedBracketType.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `BidiPairedBracketType`](https://docs.rs/icu/latest/icu/properties/props/enum.BidiPairedBracketType.html) for more information.
-*/
-
-
-export class BidiPairedBracketType {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Open", 0],
-        ["Close", 1],
-        ["None", 2]
-    ]);
-
-    static getAllEntries() {
-        return BidiPairedBracketType.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return BidiPairedBracketType.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof BidiPairedBracketType) {
-            return value;
-        }
-
-        let intVal = BidiPairedBracketType.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return BidiPairedBracketType.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a BidiPairedBracketType and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new BidiPairedBracketType(value);
-    }
-
-    get value() {
-        return [...BidiPairedBracketType.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new BidiPairedBracketType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new BidiPairedBracketType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new BidiPairedBracketType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Open = BidiPairedBracketType.#objectValues[0];
-    static Close = BidiPairedBracketType.#objectValues[1];
-    static None = BidiPairedBracketType.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.d.ts
deleted file mode 100644
index 367b01d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { BidiDirection } from "./BidiDirection"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Bidi information for a single processed paragraph
-*/
-
-
-export class BidiParagraph {
-    
-    get ffiValue(): pointer;
-
-    setParagraphInText(n: number): boolean;
-
-    get direction(): BidiDirection;
-
-    get size(): number;
-
-    get rangeStart(): number;
-
-    get rangeEnd(): number;
-
-    reorderLine(rangeStart: number, rangeEnd: number): string | null;
-
-    levelAt(pos: number): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.mjs
deleted file mode 100644
index 926f46f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/BidiParagraph.mjs
+++ /dev/null
@@ -1,123 +0,0 @@
-// generated by diplomat-tool
-import { BidiDirection } from "./BidiDirection.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Bidi information for a single processed paragraph
-*/
-const BidiParagraph_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_BidiParagraph_destroy_mv1(ptr);
-});
-
-export class BidiParagraph {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #infoEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, infoEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("BidiParagraph is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#infoEdge = infoEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            BidiParagraph_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    setParagraphInText(n) {
-        const result = wasm.icu4x_BidiParagraph_set_paragraph_in_text_mv1(this.ffiValue, n);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get direction() {
-        const result = wasm.icu4x_BidiParagraph_direction_mv1(this.ffiValue);
-    
-        try {
-            return new BidiDirection(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get size() {
-        const result = wasm.icu4x_BidiParagraph_size_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get rangeStart() {
-        const result = wasm.icu4x_BidiParagraph_range_start_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get rangeEnd() {
-        const result = wasm.icu4x_BidiParagraph_range_end_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    reorderLine(rangeStart, rangeEnd) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_BidiParagraph_reorder_line_mv1(this.ffiValue, rangeStart, rangeEnd, write.buffer);
-    
-        try {
-            return result === 0 ? null : write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    levelAt(pos) {
-        const result = wasm.icu4x_BidiParagraph_level_at_mv1(this.ffiValue, pos);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, infoEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.d.ts
deleted file mode 100644
index 3f9273c7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// generated by diplomat-tool
-import type { AnyCalendarKind } from "./AnyCalendarKind"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `AnyCalendar`](https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html) for more information.
-*/
-
-
-export class Calendar {
-    
-    get ffiValue(): pointer;
-
-    static createForLocale(locale: Locale): Calendar;
-
-    static createForKind(kind: AnyCalendarKind): Calendar;
-
-    static createForLocaleWithProvider(provider: DataProvider, locale: Locale): Calendar;
-
-    static createForKindWithProvider(provider: DataProvider, kind: AnyCalendarKind): Calendar;
-
-    get kind(): AnyCalendarKind;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.mjs
deleted file mode 100644
index 6b800e3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Calendar.mjs
+++ /dev/null
@@ -1,130 +0,0 @@
-// generated by diplomat-tool
-import { AnyCalendarKind } from "./AnyCalendarKind.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `AnyCalendar`](https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html) for more information.
-*/
-const Calendar_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Calendar_destroy_mv1(ptr);
-});
-
-export class Calendar {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Calendar is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Calendar_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createForLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Calendar_create_for_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Calendar(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createForKind(kind) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Calendar_create_for_kind_mv1(diplomatReceive.buffer, kind.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Calendar(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createForLocaleWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Calendar_create_for_locale_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Calendar(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createForKindWithProvider(provider, kind) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Calendar_create_for_kind_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, kind.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Calendar(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get kind() {
-        const result = wasm.icu4x_Calendar_kind_mv1(this.ffiValue);
-    
-        try {
-            return new AnyCalendarKind(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.d.ts
deleted file mode 100644
index 81a62c35..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/calendar/struct.RangeError.html), [2](https://docs.rs/icu/latest/icu/calendar/enum.DateError.html)
-*/
-
-
-export class CalendarError {
-    
-
-    static fromValue(value : CalendarError | string) : CalendarError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : CalendarError;
-    static OutOfRange : CalendarError;
-    static UnknownEra : CalendarError;
-    static UnknownMonthCode : CalendarError;
-
-    constructor(value: CalendarError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.mjs
deleted file mode 100644
index dfd677b4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarError.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/calendar/struct.RangeError.html), [2](https://docs.rs/icu/latest/icu/calendar/enum.DateError.html)
-*/
-
-
-export class CalendarError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["OutOfRange", 1],
-        ["UnknownEra", 2],
-        ["UnknownMonthCode", 3]
-    ]);
-
-    static getAllEntries() {
-        return CalendarError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CalendarError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CalendarError) {
-            return value;
-        }
-
-        let intVal = CalendarError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CalendarError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CalendarError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CalendarError(value);
-    }
-
-    get value() {
-        return [...CalendarError.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Unknown = CalendarError.#objectValues[0];
-    static OutOfRange = CalendarError.#objectValues[1];
-    static UnknownEra = CalendarError.#objectValues[2];
-    static UnknownMonthCode = CalendarError.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.d.ts
deleted file mode 100644
index 028b90c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/calendar/enum.ParseError.html), [2](https://docs.rs/icu/latest/icu/time/enum.ParseError.html)
-*/
-
-
-export class CalendarParseError {
-    
-
-    static fromValue(value : CalendarParseError | string) : CalendarParseError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : CalendarParseError;
-    static InvalidSyntax : CalendarParseError;
-    static OutOfRange : CalendarParseError;
-    static MissingFields : CalendarParseError;
-    static UnknownCalendar : CalendarParseError;
-
-    constructor(value: CalendarParseError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.mjs
deleted file mode 100644
index 6b3c6bb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CalendarParseError.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/calendar/enum.ParseError.html), [2](https://docs.rs/icu/latest/icu/time/enum.ParseError.html)
-*/
-
-
-export class CalendarParseError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["InvalidSyntax", 1],
-        ["OutOfRange", 2],
-        ["MissingFields", 3],
-        ["UnknownCalendar", 4]
-    ]);
-
-    static getAllEntries() {
-        return CalendarParseError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CalendarParseError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CalendarParseError) {
-            return value;
-        }
-
-        let intVal = CalendarParseError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CalendarParseError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CalendarParseError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CalendarParseError(value);
-    }
-
-    get value() {
-        return [...CalendarParseError.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-    ];
-
-    static Unknown = CalendarParseError.#objectValues[0];
-    static InvalidSyntax = CalendarParseError.#objectValues[1];
-    static OutOfRange = CalendarParseError.#objectValues[2];
-    static MissingFields = CalendarParseError.#objectValues[3];
-    static UnknownCalendar = CalendarParseError.#objectValues[4];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.d.ts
deleted file mode 100644
index b0dda98d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.d.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CanonicalCombiningClass`](https://docs.rs/icu/latest/icu/properties/props/struct.CanonicalCombiningClass.html) for more information.
-*/
-
-
-export class CanonicalCombiningClass {
-    
-
-    static fromValue(value : CanonicalCombiningClass | string) : CanonicalCombiningClass; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static NotReordered : CanonicalCombiningClass;
-    static Overlay : CanonicalCombiningClass;
-    static HanReading : CanonicalCombiningClass;
-    static Nukta : CanonicalCombiningClass;
-    static KanaVoicing : CanonicalCombiningClass;
-    static Virama : CanonicalCombiningClass;
-    static Ccc10 : CanonicalCombiningClass;
-    static Ccc11 : CanonicalCombiningClass;
-    static Ccc12 : CanonicalCombiningClass;
-    static Ccc13 : CanonicalCombiningClass;
-    static Ccc14 : CanonicalCombiningClass;
-    static Ccc15 : CanonicalCombiningClass;
-    static Ccc16 : CanonicalCombiningClass;
-    static Ccc17 : CanonicalCombiningClass;
-    static Ccc18 : CanonicalCombiningClass;
-    static Ccc19 : CanonicalCombiningClass;
-    static Ccc20 : CanonicalCombiningClass;
-    static Ccc21 : CanonicalCombiningClass;
-    static Ccc22 : CanonicalCombiningClass;
-    static Ccc23 : CanonicalCombiningClass;
-    static Ccc24 : CanonicalCombiningClass;
-    static Ccc25 : CanonicalCombiningClass;
-    static Ccc26 : CanonicalCombiningClass;
-    static Ccc27 : CanonicalCombiningClass;
-    static Ccc28 : CanonicalCombiningClass;
-    static Ccc29 : CanonicalCombiningClass;
-    static Ccc30 : CanonicalCombiningClass;
-    static Ccc31 : CanonicalCombiningClass;
-    static Ccc32 : CanonicalCombiningClass;
-    static Ccc33 : CanonicalCombiningClass;
-    static Ccc34 : CanonicalCombiningClass;
-    static Ccc35 : CanonicalCombiningClass;
-    static Ccc36 : CanonicalCombiningClass;
-    static Ccc84 : CanonicalCombiningClass;
-    static Ccc91 : CanonicalCombiningClass;
-    static Ccc103 : CanonicalCombiningClass;
-    static Ccc107 : CanonicalCombiningClass;
-    static Ccc118 : CanonicalCombiningClass;
-    static Ccc122 : CanonicalCombiningClass;
-    static Ccc129 : CanonicalCombiningClass;
-    static Ccc130 : CanonicalCombiningClass;
-    static Ccc132 : CanonicalCombiningClass;
-    static Ccc133 : CanonicalCombiningClass;
-    static AttachedBelowLeft : CanonicalCombiningClass;
-    static AttachedBelow : CanonicalCombiningClass;
-    static AttachedAbove : CanonicalCombiningClass;
-    static AttachedAboveRight : CanonicalCombiningClass;
-    static BelowLeft : CanonicalCombiningClass;
-    static Below : CanonicalCombiningClass;
-    static BelowRight : CanonicalCombiningClass;
-    static Left : CanonicalCombiningClass;
-    static Right : CanonicalCombiningClass;
-    static AboveLeft : CanonicalCombiningClass;
-    static Above : CanonicalCombiningClass;
-    static AboveRight : CanonicalCombiningClass;
-    static DoubleBelow : CanonicalCombiningClass;
-    static DoubleAbove : CanonicalCombiningClass;
-    static IotaSubscript : CanonicalCombiningClass;
-
-    static forChar(ch: codepoint): CanonicalCombiningClass;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): CanonicalCombiningClass | null;
-
-    constructor(value: CanonicalCombiningClass | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.mjs
deleted file mode 100644
index 04640f7a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClass.mjs
+++ /dev/null
@@ -1,279 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CanonicalCombiningClass`](https://docs.rs/icu/latest/icu/properties/props/struct.CanonicalCombiningClass.html) for more information.
-*/
-
-
-export class CanonicalCombiningClass {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["NotReordered", 0],
-        ["Overlay", 1],
-        ["HanReading", 6],
-        ["Nukta", 7],
-        ["KanaVoicing", 8],
-        ["Virama", 9],
-        ["Ccc10", 10],
-        ["Ccc11", 11],
-        ["Ccc12", 12],
-        ["Ccc13", 13],
-        ["Ccc14", 14],
-        ["Ccc15", 15],
-        ["Ccc16", 16],
-        ["Ccc17", 17],
-        ["Ccc18", 18],
-        ["Ccc19", 19],
-        ["Ccc20", 20],
-        ["Ccc21", 21],
-        ["Ccc22", 22],
-        ["Ccc23", 23],
-        ["Ccc24", 24],
-        ["Ccc25", 25],
-        ["Ccc26", 26],
-        ["Ccc27", 27],
-        ["Ccc28", 28],
-        ["Ccc29", 29],
-        ["Ccc30", 30],
-        ["Ccc31", 31],
-        ["Ccc32", 32],
-        ["Ccc33", 33],
-        ["Ccc34", 34],
-        ["Ccc35", 35],
-        ["Ccc36", 36],
-        ["Ccc84", 84],
-        ["Ccc91", 91],
-        ["Ccc103", 103],
-        ["Ccc107", 107],
-        ["Ccc118", 118],
-        ["Ccc122", 122],
-        ["Ccc129", 129],
-        ["Ccc130", 130],
-        ["Ccc132", 132],
-        ["Ccc133", 133],
-        ["AttachedBelowLeft", 200],
-        ["AttachedBelow", 202],
-        ["AttachedAbove", 214],
-        ["AttachedAboveRight", 216],
-        ["BelowLeft", 218],
-        ["Below", 220],
-        ["BelowRight", 222],
-        ["Left", 224],
-        ["Right", 226],
-        ["AboveLeft", 228],
-        ["Above", 230],
-        ["AboveRight", 232],
-        ["DoubleBelow", 233],
-        ["DoubleAbove", 234],
-        ["IotaSubscript", 240]
-    ]);
-
-    static getAllEntries() {
-        return CanonicalCombiningClass.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CanonicalCombiningClass.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CanonicalCombiningClass) {
-            return value;
-        }
-
-        let intVal = CanonicalCombiningClass.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CanonicalCombiningClass.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CanonicalCombiningClass and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CanonicalCombiningClass(value);
-    }
-
-    get value() {
-        for (let entry of CanonicalCombiningClass.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [0]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        [1]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [6]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        [7]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        [8]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        [9]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        [10]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        [11]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        [12]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        [13]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        [14]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        [15]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        [16]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        [17]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        [18]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        [19]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        [20]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        [21]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        [22]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-        [23]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
-        [24]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
-        [25]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
-        [26]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
-        [27]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
-        [28]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
-        [29]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
-        [30]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
-        [31]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
-        [32]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
-        [33]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
-        [34]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
-        [35]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
-        [36]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
-        [84]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 84),
-        [91]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 91),
-        [103]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 103),
-        [107]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 107),
-        [118]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 118),
-        [122]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 122),
-        [129]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 129),
-        [130]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 130),
-        [132]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 132),
-        [133]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 133),
-        [200]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 200),
-        [202]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 202),
-        [214]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 214),
-        [216]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 216),
-        [218]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 218),
-        [220]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 220),
-        [222]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 222),
-        [224]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 224),
-        [226]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 226),
-        [228]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 228),
-        [230]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 230),
-        [232]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 232),
-        [233]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 233),
-        [234]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 234),
-        [240]: new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 240),
-    };
-
-    static NotReordered = CanonicalCombiningClass.#objectValues[0];
-    static Overlay = CanonicalCombiningClass.#objectValues[1];
-    static HanReading = CanonicalCombiningClass.#objectValues[6];
-    static Nukta = CanonicalCombiningClass.#objectValues[7];
-    static KanaVoicing = CanonicalCombiningClass.#objectValues[8];
-    static Virama = CanonicalCombiningClass.#objectValues[9];
-    static Ccc10 = CanonicalCombiningClass.#objectValues[10];
-    static Ccc11 = CanonicalCombiningClass.#objectValues[11];
-    static Ccc12 = CanonicalCombiningClass.#objectValues[12];
-    static Ccc13 = CanonicalCombiningClass.#objectValues[13];
-    static Ccc14 = CanonicalCombiningClass.#objectValues[14];
-    static Ccc15 = CanonicalCombiningClass.#objectValues[15];
-    static Ccc16 = CanonicalCombiningClass.#objectValues[16];
-    static Ccc17 = CanonicalCombiningClass.#objectValues[17];
-    static Ccc18 = CanonicalCombiningClass.#objectValues[18];
-    static Ccc19 = CanonicalCombiningClass.#objectValues[19];
-    static Ccc20 = CanonicalCombiningClass.#objectValues[20];
-    static Ccc21 = CanonicalCombiningClass.#objectValues[21];
-    static Ccc22 = CanonicalCombiningClass.#objectValues[22];
-    static Ccc23 = CanonicalCombiningClass.#objectValues[23];
-    static Ccc24 = CanonicalCombiningClass.#objectValues[24];
-    static Ccc25 = CanonicalCombiningClass.#objectValues[25];
-    static Ccc26 = CanonicalCombiningClass.#objectValues[26];
-    static Ccc27 = CanonicalCombiningClass.#objectValues[27];
-    static Ccc28 = CanonicalCombiningClass.#objectValues[28];
-    static Ccc29 = CanonicalCombiningClass.#objectValues[29];
-    static Ccc30 = CanonicalCombiningClass.#objectValues[30];
-    static Ccc31 = CanonicalCombiningClass.#objectValues[31];
-    static Ccc32 = CanonicalCombiningClass.#objectValues[32];
-    static Ccc33 = CanonicalCombiningClass.#objectValues[33];
-    static Ccc34 = CanonicalCombiningClass.#objectValues[34];
-    static Ccc35 = CanonicalCombiningClass.#objectValues[35];
-    static Ccc36 = CanonicalCombiningClass.#objectValues[36];
-    static Ccc84 = CanonicalCombiningClass.#objectValues[84];
-    static Ccc91 = CanonicalCombiningClass.#objectValues[91];
-    static Ccc103 = CanonicalCombiningClass.#objectValues[103];
-    static Ccc107 = CanonicalCombiningClass.#objectValues[107];
-    static Ccc118 = CanonicalCombiningClass.#objectValues[118];
-    static Ccc122 = CanonicalCombiningClass.#objectValues[122];
-    static Ccc129 = CanonicalCombiningClass.#objectValues[129];
-    static Ccc130 = CanonicalCombiningClass.#objectValues[130];
-    static Ccc132 = CanonicalCombiningClass.#objectValues[132];
-    static Ccc133 = CanonicalCombiningClass.#objectValues[133];
-    static AttachedBelowLeft = CanonicalCombiningClass.#objectValues[200];
-    static AttachedBelow = CanonicalCombiningClass.#objectValues[202];
-    static AttachedAbove = CanonicalCombiningClass.#objectValues[214];
-    static AttachedAboveRight = CanonicalCombiningClass.#objectValues[216];
-    static BelowLeft = CanonicalCombiningClass.#objectValues[218];
-    static Below = CanonicalCombiningClass.#objectValues[220];
-    static BelowRight = CanonicalCombiningClass.#objectValues[222];
-    static Left = CanonicalCombiningClass.#objectValues[224];
-    static Right = CanonicalCombiningClass.#objectValues[226];
-    static AboveLeft = CanonicalCombiningClass.#objectValues[228];
-    static Above = CanonicalCombiningClass.#objectValues[230];
-    static AboveRight = CanonicalCombiningClass.#objectValues[232];
-    static DoubleBelow = CanonicalCombiningClass.#objectValues[233];
-    static DoubleAbove = CanonicalCombiningClass.#objectValues[234];
-    static IotaSubscript = CanonicalCombiningClass.#objectValues[240];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_CanonicalCombiningClass_for_char_mv1(ch);
-    
-        try {
-            return new CanonicalCombiningClass(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_CanonicalCombiningClass_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CanonicalCombiningClass_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new CanonicalCombiningClass(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.d.ts
deleted file mode 100644
index efd21b2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Lookup of the Canonical_Combining_Class Unicode property
-*
-*See the [Rust documentation for `CanonicalCombiningClassMap`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html) for more information.
-*/
-
-
-export class CanonicalCombiningClassMap {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): CanonicalCombiningClassMap;
-
-    get(ch: codepoint): number;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.mjs
deleted file mode 100644
index 616e5eb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalCombiningClassMap.mjs
+++ /dev/null
@@ -1,92 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Lookup of the Canonical_Combining_Class Unicode property
-*
-*See the [Rust documentation for `CanonicalCombiningClassMap`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html) for more information.
-*/
-const CanonicalCombiningClassMap_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CanonicalCombiningClassMap_destroy_mv1(ptr);
-});
-
-export class CanonicalCombiningClassMap {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CanonicalCombiningClassMap is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CanonicalCombiningClassMap_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_CanonicalCombiningClassMap_create_mv1();
-    
-        try {
-            return new CanonicalCombiningClassMap(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CanonicalCombiningClassMap_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CanonicalCombiningClassMap(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get(ch) {
-        const result = wasm.icu4x_CanonicalCombiningClassMap_get_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.d.ts
deleted file mode 100644
index e06a63a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** The raw canonical composition operation.
-*
-*Callers should generally use ComposingNormalizer unless they specifically need raw composition operations
-*
-*See the [Rust documentation for `CanonicalComposition`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html) for more information.
-*/
-
-
-export class CanonicalComposition {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): CanonicalComposition;
-
-    compose(starter: codepoint, second: codepoint): codepoint;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.mjs
deleted file mode 100644
index bd08fcfa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalComposition.mjs
+++ /dev/null
@@ -1,94 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** The raw canonical composition operation.
-*
-*Callers should generally use ComposingNormalizer unless they specifically need raw composition operations
-*
-*See the [Rust documentation for `CanonicalComposition`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html) for more information.
-*/
-const CanonicalComposition_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CanonicalComposition_destroy_mv1(ptr);
-});
-
-export class CanonicalComposition {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CanonicalComposition is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CanonicalComposition_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_CanonicalComposition_create_mv1();
-    
-        try {
-            return new CanonicalComposition(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CanonicalComposition_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CanonicalComposition(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    compose(starter, second) {
-        const result = wasm.icu4x_CanonicalComposition_compose_mv1(this.ffiValue, starter, second);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.d.ts
deleted file mode 100644
index 92264b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Decomposed } from "./Decomposed"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** The raw (non-recursive) canonical decomposition operation.
-*
-*Callers should generally use DecomposingNormalizer unless they specifically need raw composition operations
-*
-*See the [Rust documentation for `CanonicalDecomposition`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalDecomposition.html) for more information.
-*/
-
-
-export class CanonicalDecomposition {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): CanonicalDecomposition;
-
-    decompose(c: codepoint): Decomposed;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.mjs
deleted file mode 100644
index d8c15fb5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CanonicalDecomposition.mjs
+++ /dev/null
@@ -1,99 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Decomposed } from "./Decomposed.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** The raw (non-recursive) canonical decomposition operation.
-*
-*Callers should generally use DecomposingNormalizer unless they specifically need raw composition operations
-*
-*See the [Rust documentation for `CanonicalDecomposition`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalDecomposition.html) for more information.
-*/
-const CanonicalDecomposition_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CanonicalDecomposition_destroy_mv1(ptr);
-});
-
-export class CanonicalDecomposition {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CanonicalDecomposition is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CanonicalDecomposition_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_CanonicalDecomposition_create_mv1();
-    
-        try {
-            return new CanonicalDecomposition(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CanonicalDecomposition_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CanonicalDecomposition(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    decompose(c) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 8, 4, false);
-        
-        const result = wasm.icu4x_CanonicalDecomposition_decompose_mv1(diplomatReceive.buffer, this.ffiValue, c);
-    
-        try {
-            return Decomposed._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.d.ts
deleted file mode 100644
index 5c96d9d9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointSetBuilder } from "./CodePointSetBuilder"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CaseMapCloser`](https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html) for more information.
-*/
-
-
-export class CaseMapCloser {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): CaseMapCloser;
-
-    addCaseClosureTo(c: codepoint, builder: CodePointSetBuilder): void;
-
-    addStringCaseClosureTo(s: string, builder: CodePointSetBuilder): boolean;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.mjs
deleted file mode 100644
index fad5217..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapCloser.mjs
+++ /dev/null
@@ -1,112 +0,0 @@
-// generated by diplomat-tool
-import { CodePointSetBuilder } from "./CodePointSetBuilder.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CaseMapCloser`](https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html) for more information.
-*/
-const CaseMapCloser_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CaseMapCloser_destroy_mv1(ptr);
-});
-
-export class CaseMapCloser {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CaseMapCloser is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CaseMapCloser_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CaseMapCloser_create_mv1(diplomatReceive.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CaseMapCloser(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CaseMapCloser_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CaseMapCloser(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    addCaseClosureTo(c, builder) {wasm.icu4x_CaseMapCloser_add_case_closure_to_mv1(this.ffiValue, c, builder.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    addStringCaseClosureTo(s, builder) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const result = wasm.icu4x_CaseMapCloser_add_string_case_closure_to_mv1(this.ffiValue, ...sSlice.splat(), builder.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.d.ts
deleted file mode 100644
index 0e60930..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointSetBuilder } from "./CodePointSetBuilder"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { TitlecaseOptions } from "./TitlecaseOptions"
-import type { TitlecaseOptions_obj } from "./TitlecaseOptions"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CaseMapper`](https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html) for more information.
-*/
-
-
-export class CaseMapper {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): CaseMapper;
-
-    lowercase(s: string, locale: Locale): string;
-
-    uppercase(s: string, locale: Locale): string;
-
-    titlecaseSegmentWithOnlyCaseData(s: string, locale: Locale, options: TitlecaseOptions_obj): string;
-
-    fold(s: string): string;
-
-    foldTurkic(s: string): string;
-
-    addCaseClosureTo(c: codepoint, builder: CodePointSetBuilder): void;
-
-    simpleLowercase(ch: codepoint): codepoint;
-
-    simpleUppercase(ch: codepoint): codepoint;
-
-    simpleTitlecase(ch: codepoint): codepoint;
-
-    simpleFold(ch: codepoint): codepoint;
-
-    simpleFoldTurkic(ch: codepoint): codepoint;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.mjs
deleted file mode 100644
index f34327a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CaseMapper.mjs
+++ /dev/null
@@ -1,235 +0,0 @@
-// generated by diplomat-tool
-import { CodePointSetBuilder } from "./CodePointSetBuilder.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { TitlecaseOptions } from "./TitlecaseOptions.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CaseMapper`](https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html) for more information.
-*/
-const CaseMapper_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CaseMapper_destroy_mv1(ptr);
-});
-
-export class CaseMapper {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CaseMapper is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CaseMapper_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_CaseMapper_create_mv1();
-    
-        try {
-            return new CaseMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CaseMapper_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CaseMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    lowercase(s, locale) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_CaseMapper_lowercase_mv1(this.ffiValue, ...sSlice.splat(), locale.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    uppercase(s, locale) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_CaseMapper_uppercase_mv1(this.ffiValue, ...sSlice.splat(), locale.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    titlecaseSegmentWithOnlyCaseData(s, locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this.ffiValue, ...sSlice.splat(), locale.ffiValue, ...TitlecaseOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    fold(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_CaseMapper_fold_mv1(this.ffiValue, ...sSlice.splat(), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    foldTurkic(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_CaseMapper_fold_turkic_mv1(this.ffiValue, ...sSlice.splat(), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    addCaseClosureTo(c, builder) {wasm.icu4x_CaseMapper_add_case_closure_to_mv1(this.ffiValue, c, builder.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    simpleLowercase(ch) {
-        const result = wasm.icu4x_CaseMapper_simple_lowercase_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    simpleUppercase(ch) {
-        const result = wasm.icu4x_CaseMapper_simple_uppercase_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    simpleTitlecase(ch) {
-        const result = wasm.icu4x_CaseMapper_simple_titlecase_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    simpleFold(ch) {
-        const result = wasm.icu4x_CaseMapper_simple_fold_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    simpleFoldTurkic(ch) {
-        const result = wasm.icu4x_CaseMapper_simple_fold_turkic_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.d.ts
deleted file mode 100644
index d77c11ea..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointRangeIterator } from "./CodePointRangeIterator"
-import type { CodePointSetData } from "./CodePointSetData"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-*
-*For properties whose values fit into 16 bits.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapData.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapDataBorrowed.html) for more information.
-*/
-
-
-export class CodePointMapData16 {
-    
-    get ffiValue(): pointer;
-
-    get(cp: codepoint): number;
-
-    iterRangesForValue(value: number): CodePointRangeIterator;
-
-    iterRangesForValueComplemented(value: number): CodePointRangeIterator;
-
-    getSetForValue(value: number): CodePointSetData;
-
-    static createScript(): CodePointMapData16;
-
-    static createScriptWithProvider(provider: DataProvider): CodePointMapData16;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.mjs
deleted file mode 100644
index 95ffb05..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData16.mjs
+++ /dev/null
@@ -1,130 +0,0 @@
-// generated by diplomat-tool
-import { CodePointRangeIterator } from "./CodePointRangeIterator.mjs"
-import { CodePointSetData } from "./CodePointSetData.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-*
-*For properties whose values fit into 16 bits.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapData.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapDataBorrowed.html) for more information.
-*/
-const CodePointMapData16_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CodePointMapData16_destroy_mv1(ptr);
-});
-
-export class CodePointMapData16 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CodePointMapData16 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CodePointMapData16_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    get(cp) {
-        const result = wasm.icu4x_CodePointMapData16_get_mv1(this.ffiValue, cp);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    iterRangesForValue(value) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointMapData16_iter_ranges_for_value_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterRangesForValueComplemented(value) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    getSetForValue(value) {
-        const result = wasm.icu4x_CodePointMapData16_get_set_for_value_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createScript() {
-        const result = wasm.icu4x_CodePointMapData16_create_script_mv1();
-    
-        try {
-            return new CodePointMapData16(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createScriptWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData16_create_script_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData16(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.d.ts
deleted file mode 100644
index 911f3f9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.d.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointRangeIterator } from "./CodePointRangeIterator"
-import type { CodePointSetData } from "./CodePointSetData"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { GeneralCategoryGroup } from "./GeneralCategoryGroup"
-import type { GeneralCategoryGroup_obj } from "./GeneralCategoryGroup"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-*
-*For properties whose values fit into 8 bits.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapData.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapDataBorrowed.html) for more information.
-*/
-
-
-export class CodePointMapData8 {
-    
-    get ffiValue(): pointer;
-
-    get(cp: codepoint): number;
-
-    iterRangesForValue(value: number): CodePointRangeIterator;
-
-    iterRangesForValueComplemented(value: number): CodePointRangeIterator;
-
-    iterRangesForGroup(group: GeneralCategoryGroup_obj): CodePointRangeIterator;
-
-    getSetForValue(value: number): CodePointSetData;
-
-    static createGeneralCategory(): CodePointMapData8;
-
-    static createGeneralCategoryWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createBidiClass(): CodePointMapData8;
-
-    static createBidiClassWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createEastAsianWidth(): CodePointMapData8;
-
-    static createEastAsianWidthWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createHangulSyllableType(): CodePointMapData8;
-
-    static createHangulSyllableTypeWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createIndicSyllabicCategory(): CodePointMapData8;
-
-    static createIndicSyllabicCategoryWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createLineBreak(): CodePointMapData8;
-
-    static createLineBreakWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createGraphemeClusterBreak(): CodePointMapData8;
-
-    static createGraphemeClusterBreakWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createWordBreak(): CodePointMapData8;
-
-    static createWordBreakWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createSentenceBreak(): CodePointMapData8;
-
-    static createSentenceBreakWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createJoiningType(): CodePointMapData8;
-
-    static createJoiningTypeWithProvider(provider: DataProvider): CodePointMapData8;
-
-    static createCanonicalCombiningClass(): CodePointMapData8;
-
-    static createCanonicalCombiningClassWithProvider(provider: DataProvider): CodePointMapData8;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.mjs
deleted file mode 100644
index ca80a290..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointMapData8.mjs
+++ /dev/null
@@ -1,428 +0,0 @@
-// generated by diplomat-tool
-import { CodePointRangeIterator } from "./CodePointRangeIterator.mjs"
-import { CodePointSetData } from "./CodePointSetData.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { GeneralCategoryGroup } from "./GeneralCategoryGroup.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-*
-*For properties whose values fit into 8 bits.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapData.html) for more information.
-*
-*See the [Rust documentation for `CodePointMapDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointMapDataBorrowed.html) for more information.
-*/
-const CodePointMapData8_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CodePointMapData8_destroy_mv1(ptr);
-});
-
-export class CodePointMapData8 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CodePointMapData8 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CodePointMapData8_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    get(cp) {
-        const result = wasm.icu4x_CodePointMapData8_get_mv1(this.ffiValue, cp);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    iterRangesForValue(value) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointMapData8_iter_ranges_for_value_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterRangesForValueComplemented(value) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterRangesForGroup(group) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointMapData8_iter_ranges_for_group_mv1(this.ffiValue, ...GeneralCategoryGroup._fromSuppliedValue(diplomatRuntime.internalConstructor, group)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    getSetForValue(value) {
-        const result = wasm.icu4x_CodePointMapData8_get_set_for_value_mv1(this.ffiValue, value);
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGeneralCategory() {
-        const result = wasm.icu4x_CodePointMapData8_create_general_category_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGeneralCategoryWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_general_category_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createBidiClass() {
-        const result = wasm.icu4x_CodePointMapData8_create_bidi_class_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBidiClassWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_bidi_class_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEastAsianWidth() {
-        const result = wasm.icu4x_CodePointMapData8_create_east_asian_width_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEastAsianWidthWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_east_asian_width_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createHangulSyllableType() {
-        const result = wasm.icu4x_CodePointMapData8_create_hangul_syllable_type_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createHangulSyllableTypeWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_hangul_syllable_type_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createIndicSyllabicCategory() {
-        const result = wasm.icu4x_CodePointMapData8_create_indic_syllabic_category_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIndicSyllabicCategoryWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_indic_syllabic_category_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createLineBreak() {
-        const result = wasm.icu4x_CodePointMapData8_create_line_break_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLineBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_line_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createGraphemeClusterBreak() {
-        const result = wasm.icu4x_CodePointMapData8_create_grapheme_cluster_break_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeClusterBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_grapheme_cluster_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWordBreak() {
-        const result = wasm.icu4x_CodePointMapData8_create_word_break_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWordBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_word_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createSentenceBreak() {
-        const result = wasm.icu4x_CodePointMapData8_create_sentence_break_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createSentenceBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_sentence_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createJoiningType() {
-        const result = wasm.icu4x_CodePointMapData8_create_joining_type_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createJoiningTypeWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_joining_type_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createCanonicalCombiningClass() {
-        const result = wasm.icu4x_CodePointMapData8_create_canonical_combining_class_mv1();
-    
-        try {
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCanonicalCombiningClassWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointMapData8_create_canonical_combining_class_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointMapData8(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.d.ts
deleted file mode 100644
index dd5a9ef1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointRangeIteratorResult } from "./CodePointRangeIteratorResult"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An iterator over code point ranges, produced by `CodePointSetData` or
-*one of the `CodePointMapData` types
-*/
-
-
-export class CodePointRangeIterator {
-    
-    get ffiValue(): pointer;
-
-    next(): CodePointRangeIteratorResult;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.mjs
deleted file mode 100644
index dcdf8ff9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIterator.mjs
+++ /dev/null
@@ -1,64 +0,0 @@
-// generated by diplomat-tool
-import { CodePointRangeIteratorResult } from "./CodePointRangeIteratorResult.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An iterator over code point ranges, produced by `CodePointSetData` or
-*one of the `CodePointMapData` types
-*/
-const CodePointRangeIterator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CodePointRangeIterator_destroy_mv1(ptr);
-});
-
-export class CodePointRangeIterator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CodePointRangeIterator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CodePointRangeIterator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 12, 4, false);
-        
-        const result = wasm.icu4x_CodePointRangeIterator_next_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            return CodePointRangeIteratorResult._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.d.ts
deleted file mode 100644
index 3765e324..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Result of a single iteration of [`CodePointRangeIterator`].
-*Logically can be considered to be an `Option<RangeInclusive<DiplomatChar>>`,
-*
-*`start` and `end` represent an inclusive range of code points [start, end],
-*and `done` will be true if the iterator has already finished. The last contentful
-*iteration will NOT produce a range done=true, in other words `start` and `end` are useful
-*values if and only if `done=false`.
-*/
-
-
-export class CodePointRangeIteratorResult {
-    
-    get start() : codepoint;
-    
-    get end() : codepoint;
-    
-    get done() : boolean;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.mjs
deleted file mode 100644
index 7fb984f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointRangeIteratorResult.mjs
+++ /dev/null
@@ -1,121 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Result of a single iteration of [`CodePointRangeIterator`].
-*Logically can be considered to be an `Option<RangeInclusive<DiplomatChar>>`,
-*
-*`start` and `end` represent an inclusive range of code points [start, end],
-*and `done` will be true if the iterator has already finished. The last contentful
-*iteration will NOT produce a range done=true, in other words `start` and `end` are useful
-*values if and only if `done=false`.
-*/
-
-
-export class CodePointRangeIteratorResult {
-    
-    #start;
-    
-    get start()  {
-        return this.#start;
-    }
-    
-    #end;
-    
-    get end()  {
-        return this.#end;
-    }
-    
-    #done;
-    
-    get done()  {
-        return this.#done;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("CodePointRangeIteratorResult's constructor takes an object of CodePointRangeIteratorResult's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("CodePointRangeIteratorResult is an out struct and can only be created internally.");
-        }
-        if ("start" in structObj) {
-            this.#start = structObj.start;
-        } else {
-            throw new Error("Missing required field start.");
-        }
-
-        if ("end" in structObj) {
-            this.#end = structObj.end;
-        } else {
-            throw new Error("Missing required field end.");
-        }
-
-        if ("done" in structObj) {
-            this.#done = structObj.done;
-        } else {
-            throw new Error("Missing required field done.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#start, this.#end, this.#done, /* [3 x i8] padding */ 0, 0, 0 /* end padding */]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof CodePointRangeIteratorResult) {
-            return obj;
-        }
-
-        return CodePointRangeIteratorResult.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#start, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#end, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#done, Uint8Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("CodePointRangeIteratorResult._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const startDeref = (new Uint32Array(wasm.memory.buffer, ptr, 1))[0];
-        structObj.start = startDeref;
-        const endDeref = (new Uint32Array(wasm.memory.buffer, ptr + 4, 1))[0];
-        structObj.end = endDeref;
-        const doneDeref = (new Uint8Array(wasm.memory.buffer, ptr + 8, 1))[0] === 1;
-        structObj.done = doneDeref;
-
-        return new CodePointRangeIteratorResult(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.d.ts
deleted file mode 100644
index e3592b85..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointSetData } from "./CodePointSetData"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CodePointInversionListBuilder`](https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html) for more information.
-*/
-
-
-export class CodePointSetBuilder {
-    
-    get ffiValue(): pointer;
-
-    build(): CodePointSetData;
-
-    complement(): void;
-
-    get isEmpty(): boolean;
-
-    addChar(ch: codepoint): void;
-
-    addInclusiveRange(start: codepoint, end: codepoint): void;
-
-    addSet(data: CodePointSetData): void;
-
-    removeChar(ch: codepoint): void;
-
-    removeInclusiveRange(start: codepoint, end: codepoint): void;
-
-    removeSet(data: CodePointSetData): void;
-
-    retainChar(ch: codepoint): void;
-
-    retainInclusiveRange(start: codepoint, end: codepoint): void;
-
-    retainSet(data: CodePointSetData): void;
-
-    complementChar(ch: codepoint): void;
-
-    complementInclusiveRange(start: codepoint, end: codepoint): void;
-
-    complementSet(data: CodePointSetData): void;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.mjs
deleted file mode 100644
index 96f45a9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetBuilder.mjs
+++ /dev/null
@@ -1,172 +0,0 @@
-// generated by diplomat-tool
-import { CodePointSetData } from "./CodePointSetData.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CodePointInversionListBuilder`](https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html) for more information.
-*/
-const CodePointSetBuilder_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CodePointSetBuilder_destroy_mv1(ptr);
-});
-
-export class CodePointSetBuilder {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CodePointSetBuilder is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CodePointSetBuilder_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_CodePointSetBuilder_create_mv1();
-    
-        try {
-            return new CodePointSetBuilder(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    build() {
-        const result = wasm.icu4x_CodePointSetBuilder_build_mv1(this.ffiValue);
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    complement() {wasm.icu4x_CodePointSetBuilder_complement_mv1(this.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    get isEmpty() {
-        const result = wasm.icu4x_CodePointSetBuilder_is_empty_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    addChar(ch) {wasm.icu4x_CodePointSetBuilder_add_char_mv1(this.ffiValue, ch);
-    
-        try {}
-        
-        finally {}
-    }
-
-    addInclusiveRange(start, end) {wasm.icu4x_CodePointSetBuilder_add_inclusive_range_mv1(this.ffiValue, start, end);
-    
-        try {}
-        
-        finally {}
-    }
-
-    addSet(data) {wasm.icu4x_CodePointSetBuilder_add_set_mv1(this.ffiValue, data.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    removeChar(ch) {wasm.icu4x_CodePointSetBuilder_remove_char_mv1(this.ffiValue, ch);
-    
-        try {}
-        
-        finally {}
-    }
-
-    removeInclusiveRange(start, end) {wasm.icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(this.ffiValue, start, end);
-    
-        try {}
-        
-        finally {}
-    }
-
-    removeSet(data) {wasm.icu4x_CodePointSetBuilder_remove_set_mv1(this.ffiValue, data.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    retainChar(ch) {wasm.icu4x_CodePointSetBuilder_retain_char_mv1(this.ffiValue, ch);
-    
-        try {}
-        
-        finally {}
-    }
-
-    retainInclusiveRange(start, end) {wasm.icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(this.ffiValue, start, end);
-    
-        try {}
-        
-        finally {}
-    }
-
-    retainSet(data) {wasm.icu4x_CodePointSetBuilder_retain_set_mv1(this.ffiValue, data.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    complementChar(ch) {wasm.icu4x_CodePointSetBuilder_complement_char_mv1(this.ffiValue, ch);
-    
-        try {}
-        
-        finally {}
-    }
-
-    complementInclusiveRange(start, end) {wasm.icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(this.ffiValue, start, end);
-    
-        try {}
-        
-        finally {}
-    }
-
-    complementSet(data) {wasm.icu4x_CodePointSetBuilder_complement_set_mv1(this.ffiValue, data.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.d.ts
deleted file mode 100644
index e84f694..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.d.ts
+++ /dev/null
@@ -1,427 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointRangeIterator } from "./CodePointRangeIterator"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { GeneralCategoryGroup } from "./GeneralCategoryGroup"
-import type { GeneralCategoryGroup_obj } from "./GeneralCategoryGroup"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointSetData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointSetData.html) for more information.
-*
-*See the [Rust documentation for `CodePointSetDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointSetDataBorrowed.html) for more information.
-*/
-
-
-export class CodePointSetData {
-    
-    get ffiValue(): pointer;
-
-    contains(cp: codepoint): boolean;
-
-    iterRanges(): CodePointRangeIterator;
-
-    iterRangesComplemented(): CodePointRangeIterator;
-
-    static createGeneralCategoryGroup(group: GeneralCategoryGroup_obj): CodePointSetData;
-
-    static createGeneralCategoryGroupWithProvider(provider: DataProvider, group: number): CodePointSetData;
-
-    static asciiHexDigitForChar(ch: codepoint): boolean;
-
-    static createAsciiHexDigit(): CodePointSetData;
-
-    static createAsciiHexDigitWithProvider(provider: DataProvider): CodePointSetData;
-
-    static alnumForChar(ch: codepoint): boolean;
-
-    static createAlnum(): CodePointSetData;
-
-    static createAlnumWithProvider(provider: DataProvider): CodePointSetData;
-
-    static alphabeticForChar(ch: codepoint): boolean;
-
-    static createAlphabetic(): CodePointSetData;
-
-    static createAlphabeticWithProvider(provider: DataProvider): CodePointSetData;
-
-    static bidiControlForChar(ch: codepoint): boolean;
-
-    static createBidiControl(): CodePointSetData;
-
-    static createBidiControlWithProvider(provider: DataProvider): CodePointSetData;
-
-    static bidiMirroredForChar(ch: codepoint): boolean;
-
-    static createBidiMirrored(): CodePointSetData;
-
-    static createBidiMirroredWithProvider(provider: DataProvider): CodePointSetData;
-
-    static blankForChar(ch: codepoint): boolean;
-
-    static createBlank(): CodePointSetData;
-
-    static createBlankWithProvider(provider: DataProvider): CodePointSetData;
-
-    static casedForChar(ch: codepoint): boolean;
-
-    static createCased(): CodePointSetData;
-
-    static createCasedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static caseIgnorableForChar(ch: codepoint): boolean;
-
-    static createCaseIgnorable(): CodePointSetData;
-
-    static createCaseIgnorableWithProvider(provider: DataProvider): CodePointSetData;
-
-    static fullCompositionExclusionForChar(ch: codepoint): boolean;
-
-    static createFullCompositionExclusion(): CodePointSetData;
-
-    static createFullCompositionExclusionWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenCasefoldedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenCasefolded(): CodePointSetData;
-
-    static createChangesWhenCasefoldedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenCasemappedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenCasemapped(): CodePointSetData;
-
-    static createChangesWhenCasemappedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenNfkcCasefoldedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenNfkcCasefolded(): CodePointSetData;
-
-    static createChangesWhenNfkcCasefoldedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenLowercasedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenLowercased(): CodePointSetData;
-
-    static createChangesWhenLowercasedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenTitlecasedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenTitlecased(): CodePointSetData;
-
-    static createChangesWhenTitlecasedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static changesWhenUppercasedForChar(ch: codepoint): boolean;
-
-    static createChangesWhenUppercased(): CodePointSetData;
-
-    static createChangesWhenUppercasedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static dashForChar(ch: codepoint): boolean;
-
-    static createDash(): CodePointSetData;
-
-    static createDashWithProvider(provider: DataProvider): CodePointSetData;
-
-    static deprecatedForChar(ch: codepoint): boolean;
-
-    static createDeprecated(): CodePointSetData;
-
-    static createDeprecatedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static defaultIgnorableCodePointForChar(ch: codepoint): boolean;
-
-    static createDefaultIgnorableCodePoint(): CodePointSetData;
-
-    static createDefaultIgnorableCodePointWithProvider(provider: DataProvider): CodePointSetData;
-
-    static diacriticForChar(ch: codepoint): boolean;
-
-    static createDiacritic(): CodePointSetData;
-
-    static createDiacriticWithProvider(provider: DataProvider): CodePointSetData;
-
-    static emojiModifierBaseForChar(ch: codepoint): boolean;
-
-    static createEmojiModifierBase(): CodePointSetData;
-
-    static createEmojiModifierBaseWithProvider(provider: DataProvider): CodePointSetData;
-
-    static emojiComponentForChar(ch: codepoint): boolean;
-
-    static createEmojiComponent(): CodePointSetData;
-
-    static createEmojiComponentWithProvider(provider: DataProvider): CodePointSetData;
-
-    static emojiModifierForChar(ch: codepoint): boolean;
-
-    static createEmojiModifier(): CodePointSetData;
-
-    static createEmojiModifierWithProvider(provider: DataProvider): CodePointSetData;
-
-    static emojiForChar(ch: codepoint): boolean;
-
-    static createEmoji(): CodePointSetData;
-
-    static createEmojiWithProvider(provider: DataProvider): CodePointSetData;
-
-    static emojiPresentationForChar(ch: codepoint): boolean;
-
-    static createEmojiPresentation(): CodePointSetData;
-
-    static createEmojiPresentationWithProvider(provider: DataProvider): CodePointSetData;
-
-    static extenderForChar(ch: codepoint): boolean;
-
-    static createExtender(): CodePointSetData;
-
-    static createExtenderWithProvider(provider: DataProvider): CodePointSetData;
-
-    static extendedPictographicForChar(ch: codepoint): boolean;
-
-    static createExtendedPictographic(): CodePointSetData;
-
-    static createExtendedPictographicWithProvider(provider: DataProvider): CodePointSetData;
-
-    static graphForChar(ch: codepoint): boolean;
-
-    static createGraph(): CodePointSetData;
-
-    static createGraphWithProvider(provider: DataProvider): CodePointSetData;
-
-    static graphemeBaseForChar(ch: codepoint): boolean;
-
-    static createGraphemeBase(): CodePointSetData;
-
-    static createGraphemeBaseWithProvider(provider: DataProvider): CodePointSetData;
-
-    static graphemeExtendForChar(ch: codepoint): boolean;
-
-    static createGraphemeExtend(): CodePointSetData;
-
-    static createGraphemeExtendWithProvider(provider: DataProvider): CodePointSetData;
-
-    static graphemeLinkForChar(ch: codepoint): boolean;
-
-    static createGraphemeLink(): CodePointSetData;
-
-    static createGraphemeLinkWithProvider(provider: DataProvider): CodePointSetData;
-
-    static hexDigitForChar(ch: codepoint): boolean;
-
-    static createHexDigit(): CodePointSetData;
-
-    static createHexDigitWithProvider(provider: DataProvider): CodePointSetData;
-
-    static hyphenForChar(ch: codepoint): boolean;
-
-    static createHyphen(): CodePointSetData;
-
-    static createHyphenWithProvider(provider: DataProvider): CodePointSetData;
-
-    static idContinueForChar(ch: codepoint): boolean;
-
-    static createIdContinue(): CodePointSetData;
-
-    static createIdContinueWithProvider(provider: DataProvider): CodePointSetData;
-
-    static ideographicForChar(ch: codepoint): boolean;
-
-    static createIdeographic(): CodePointSetData;
-
-    static createIdeographicWithProvider(provider: DataProvider): CodePointSetData;
-
-    static idStartForChar(ch: codepoint): boolean;
-
-    static createIdStart(): CodePointSetData;
-
-    static createIdStartWithProvider(provider: DataProvider): CodePointSetData;
-
-    static idsBinaryOperatorForChar(ch: codepoint): boolean;
-
-    static createIdsBinaryOperator(): CodePointSetData;
-
-    static createIdsBinaryOperatorWithProvider(provider: DataProvider): CodePointSetData;
-
-    static idsTrinaryOperatorForChar(ch: codepoint): boolean;
-
-    static createIdsTrinaryOperator(): CodePointSetData;
-
-    static createIdsTrinaryOperatorWithProvider(provider: DataProvider): CodePointSetData;
-
-    static joinControlForChar(ch: codepoint): boolean;
-
-    static createJoinControl(): CodePointSetData;
-
-    static createJoinControlWithProvider(provider: DataProvider): CodePointSetData;
-
-    static logicalOrderExceptionForChar(ch: codepoint): boolean;
-
-    static createLogicalOrderException(): CodePointSetData;
-
-    static createLogicalOrderExceptionWithProvider(provider: DataProvider): CodePointSetData;
-
-    static lowercaseForChar(ch: codepoint): boolean;
-
-    static createLowercase(): CodePointSetData;
-
-    static createLowercaseWithProvider(provider: DataProvider): CodePointSetData;
-
-    static mathForChar(ch: codepoint): boolean;
-
-    static createMath(): CodePointSetData;
-
-    static createMathWithProvider(provider: DataProvider): CodePointSetData;
-
-    static noncharacterCodePointForChar(ch: codepoint): boolean;
-
-    static createNoncharacterCodePoint(): CodePointSetData;
-
-    static createNoncharacterCodePointWithProvider(provider: DataProvider): CodePointSetData;
-
-    static nfcInertForChar(ch: codepoint): boolean;
-
-    static createNfcInert(): CodePointSetData;
-
-    static createNfcInertWithProvider(provider: DataProvider): CodePointSetData;
-
-    static nfdInertForChar(ch: codepoint): boolean;
-
-    static createNfdInert(): CodePointSetData;
-
-    static createNfdInertWithProvider(provider: DataProvider): CodePointSetData;
-
-    static nfkcInertForChar(ch: codepoint): boolean;
-
-    static createNfkcInert(): CodePointSetData;
-
-    static createNfkcInertWithProvider(provider: DataProvider): CodePointSetData;
-
-    static nfkdInertForChar(ch: codepoint): boolean;
-
-    static createNfkdInert(): CodePointSetData;
-
-    static createNfkdInertWithProvider(provider: DataProvider): CodePointSetData;
-
-    static patternSyntaxForChar(ch: codepoint): boolean;
-
-    static createPatternSyntax(): CodePointSetData;
-
-    static createPatternSyntaxWithProvider(provider: DataProvider): CodePointSetData;
-
-    static patternWhiteSpaceForChar(ch: codepoint): boolean;
-
-    static createPatternWhiteSpace(): CodePointSetData;
-
-    static createPatternWhiteSpaceWithProvider(provider: DataProvider): CodePointSetData;
-
-    static prependedConcatenationMarkForChar(ch: codepoint): boolean;
-
-    static createPrependedConcatenationMark(): CodePointSetData;
-
-    static createPrependedConcatenationMarkWithProvider(provider: DataProvider): CodePointSetData;
-
-    static printForChar(ch: codepoint): boolean;
-
-    static createPrint(): CodePointSetData;
-
-    static createPrintWithProvider(provider: DataProvider): CodePointSetData;
-
-    static quotationMarkForChar(ch: codepoint): boolean;
-
-    static createQuotationMark(): CodePointSetData;
-
-    static createQuotationMarkWithProvider(provider: DataProvider): CodePointSetData;
-
-    static radicalForChar(ch: codepoint): boolean;
-
-    static createRadical(): CodePointSetData;
-
-    static createRadicalWithProvider(provider: DataProvider): CodePointSetData;
-
-    static regionalIndicatorForChar(ch: codepoint): boolean;
-
-    static createRegionalIndicator(): CodePointSetData;
-
-    static createRegionalIndicatorWithProvider(provider: DataProvider): CodePointSetData;
-
-    static softDottedForChar(ch: codepoint): boolean;
-
-    static createSoftDotted(): CodePointSetData;
-
-    static createSoftDottedWithProvider(provider: DataProvider): CodePointSetData;
-
-    static segmentStarterForChar(ch: codepoint): boolean;
-
-    static createSegmentStarter(): CodePointSetData;
-
-    static createSegmentStarterWithProvider(provider: DataProvider): CodePointSetData;
-
-    static caseSensitiveForChar(ch: codepoint): boolean;
-
-    static createCaseSensitive(): CodePointSetData;
-
-    static createCaseSensitiveWithProvider(provider: DataProvider): CodePointSetData;
-
-    static sentenceTerminalForChar(ch: codepoint): boolean;
-
-    static createSentenceTerminal(): CodePointSetData;
-
-    static createSentenceTerminalWithProvider(provider: DataProvider): CodePointSetData;
-
-    static terminalPunctuationForChar(ch: codepoint): boolean;
-
-    static createTerminalPunctuation(): CodePointSetData;
-
-    static createTerminalPunctuationWithProvider(provider: DataProvider): CodePointSetData;
-
-    static unifiedIdeographForChar(ch: codepoint): boolean;
-
-    static createUnifiedIdeograph(): CodePointSetData;
-
-    static createUnifiedIdeographWithProvider(provider: DataProvider): CodePointSetData;
-
-    static uppercaseForChar(ch: codepoint): boolean;
-
-    static createUppercase(): CodePointSetData;
-
-    static createUppercaseWithProvider(provider: DataProvider): CodePointSetData;
-
-    static variationSelectorForChar(ch: codepoint): boolean;
-
-    static createVariationSelector(): CodePointSetData;
-
-    static createVariationSelectorWithProvider(provider: DataProvider): CodePointSetData;
-
-    static whiteSpaceForChar(ch: codepoint): boolean;
-
-    static createWhiteSpace(): CodePointSetData;
-
-    static createWhiteSpaceWithProvider(provider: DataProvider): CodePointSetData;
-
-    static xdigitForChar(ch: codepoint): boolean;
-
-    static createXdigit(): CodePointSetData;
-
-    static createXdigitWithProvider(provider: DataProvider): CodePointSetData;
-
-    static xidContinueForChar(ch: codepoint): boolean;
-
-    static createXidContinue(): CodePointSetData;
-
-    static createXidContinueWithProvider(provider: DataProvider): CodePointSetData;
-
-    static xidStartForChar(ch: codepoint): boolean;
-
-    static createXidStart(): CodePointSetData;
-
-    static createXidStartWithProvider(provider: DataProvider): CodePointSetData;
-
-    static createForEcma262(propertyName: string): CodePointSetData;
-
-    static createForEcma262WithProvider(provider: DataProvider, propertyName: string): CodePointSetData;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.mjs
deleted file mode 100644
index b9fcca87..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CodePointSetData.mjs
+++ /dev/null
@@ -1,2640 +0,0 @@
-// generated by diplomat-tool
-import { CodePointRangeIterator } from "./CodePointRangeIterator.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { GeneralCategoryGroup } from "./GeneralCategoryGroup.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `CodePointSetData`](https://docs.rs/icu/latest/icu/properties/struct.CodePointSetData.html) for more information.
-*
-*See the [Rust documentation for `CodePointSetDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.CodePointSetDataBorrowed.html) for more information.
-*/
-const CodePointSetData_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_CodePointSetData_destroy_mv1(ptr);
-});
-
-export class CodePointSetData {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("CodePointSetData is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            CodePointSetData_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    contains(cp) {
-        const result = wasm.icu4x_CodePointSetData_contains_mv1(this.ffiValue, cp);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    iterRanges() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointSetData_iter_ranges_mv1(this.ffiValue);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterRangesComplemented() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_CodePointSetData_iter_ranges_complemented_mv1(this.ffiValue);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    static createGeneralCategoryGroup(group) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_CodePointSetData_create_general_category_group_mv1(...GeneralCategoryGroup._fromSuppliedValue(diplomatRuntime.internalConstructor, group)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static createGeneralCategoryGroupWithProvider(provider, group) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_general_category_group_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, group);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static asciiHexDigitForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_ascii_hex_digit_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createAsciiHexDigit() {
-        const result = wasm.icu4x_CodePointSetData_create_ascii_hex_digit_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createAsciiHexDigitWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_ascii_hex_digit_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static alnumForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_alnum_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createAlnum() {
-        const result = wasm.icu4x_CodePointSetData_create_alnum_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createAlnumWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_alnum_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static alphabeticForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_alphabetic_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createAlphabetic() {
-        const result = wasm.icu4x_CodePointSetData_create_alphabetic_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createAlphabeticWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_alphabetic_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static bidiControlForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_bidi_control_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createBidiControl() {
-        const result = wasm.icu4x_CodePointSetData_create_bidi_control_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBidiControlWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_bidi_control_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static bidiMirroredForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_bidi_mirrored_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createBidiMirrored() {
-        const result = wasm.icu4x_CodePointSetData_create_bidi_mirrored_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBidiMirroredWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_bidi_mirrored_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static blankForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_blank_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createBlank() {
-        const result = wasm.icu4x_CodePointSetData_create_blank_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBlankWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_blank_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static casedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_cased_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createCased() {
-        const result = wasm.icu4x_CodePointSetData_create_cased_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCasedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_cased_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static caseIgnorableForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_case_ignorable_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createCaseIgnorable() {
-        const result = wasm.icu4x_CodePointSetData_create_case_ignorable_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCaseIgnorableWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_case_ignorable_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fullCompositionExclusionForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_full_composition_exclusion_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createFullCompositionExclusion() {
-        const result = wasm.icu4x_CodePointSetData_create_full_composition_exclusion_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createFullCompositionExclusionWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_full_composition_exclusion_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenCasefoldedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_casefolded_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenCasefolded() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_casefolded_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenCasefoldedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_casefolded_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenCasemappedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_casemapped_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenCasemapped() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_casemapped_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenCasemappedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_casemapped_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenNfkcCasefoldedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_nfkc_casefolded_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenNfkcCasefolded() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenNfkcCasefoldedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_nfkc_casefolded_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenLowercasedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_lowercased_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenLowercased() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_lowercased_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenLowercasedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_lowercased_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenTitlecasedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_titlecased_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenTitlecased() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_titlecased_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenTitlecasedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_titlecased_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static changesWhenUppercasedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_changes_when_uppercased_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenUppercased() {
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_uppercased_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createChangesWhenUppercasedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_changes_when_uppercased_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static dashForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_dash_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createDash() {
-        const result = wasm.icu4x_CodePointSetData_create_dash_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDashWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_dash_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static deprecatedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_deprecated_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createDeprecated() {
-        const result = wasm.icu4x_CodePointSetData_create_deprecated_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDeprecatedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_deprecated_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static defaultIgnorableCodePointForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_default_ignorable_code_point_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createDefaultIgnorableCodePoint() {
-        const result = wasm.icu4x_CodePointSetData_create_default_ignorable_code_point_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDefaultIgnorableCodePointWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_default_ignorable_code_point_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static diacriticForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_diacritic_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createDiacritic() {
-        const result = wasm.icu4x_CodePointSetData_create_diacritic_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDiacriticWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_diacritic_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static emojiModifierBaseForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_emoji_modifier_base_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createEmojiModifierBase() {
-        const result = wasm.icu4x_CodePointSetData_create_emoji_modifier_base_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEmojiModifierBaseWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_emoji_modifier_base_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static emojiComponentForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_emoji_component_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createEmojiComponent() {
-        const result = wasm.icu4x_CodePointSetData_create_emoji_component_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEmojiComponentWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_emoji_component_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static emojiModifierForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_emoji_modifier_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createEmojiModifier() {
-        const result = wasm.icu4x_CodePointSetData_create_emoji_modifier_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEmojiModifierWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_emoji_modifier_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static emojiForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_emoji_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createEmoji() {
-        const result = wasm.icu4x_CodePointSetData_create_emoji_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEmojiWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_emoji_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static emojiPresentationForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_emoji_presentation_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createEmojiPresentation() {
-        const result = wasm.icu4x_CodePointSetData_create_emoji_presentation_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEmojiPresentationWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_emoji_presentation_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static extenderForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_extender_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createExtender() {
-        const result = wasm.icu4x_CodePointSetData_create_extender_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createExtenderWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_extender_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static extendedPictographicForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_extended_pictographic_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createExtendedPictographic() {
-        const result = wasm.icu4x_CodePointSetData_create_extended_pictographic_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createExtendedPictographicWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_extended_pictographic_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static graphForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_graph_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createGraph() {
-        const result = wasm.icu4x_CodePointSetData_create_graph_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_graph_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static graphemeBaseForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_grapheme_base_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeBase() {
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_base_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeBaseWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_base_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static graphemeExtendForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_grapheme_extend_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeExtend() {
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_extend_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeExtendWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_extend_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static graphemeLinkForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_grapheme_link_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeLink() {
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_link_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeLinkWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_grapheme_link_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static hexDigitForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_hex_digit_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createHexDigit() {
-        const result = wasm.icu4x_CodePointSetData_create_hex_digit_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createHexDigitWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_hex_digit_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static hyphenForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_hyphen_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createHyphen() {
-        const result = wasm.icu4x_CodePointSetData_create_hyphen_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createHyphenWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_hyphen_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static idContinueForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_id_continue_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createIdContinue() {
-        const result = wasm.icu4x_CodePointSetData_create_id_continue_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIdContinueWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_id_continue_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static ideographicForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_ideographic_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createIdeographic() {
-        const result = wasm.icu4x_CodePointSetData_create_ideographic_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIdeographicWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_ideographic_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static idStartForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_id_start_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createIdStart() {
-        const result = wasm.icu4x_CodePointSetData_create_id_start_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIdStartWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_id_start_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static idsBinaryOperatorForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_ids_binary_operator_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createIdsBinaryOperator() {
-        const result = wasm.icu4x_CodePointSetData_create_ids_binary_operator_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIdsBinaryOperatorWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_ids_binary_operator_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static idsTrinaryOperatorForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_ids_trinary_operator_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createIdsTrinaryOperator() {
-        const result = wasm.icu4x_CodePointSetData_create_ids_trinary_operator_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIdsTrinaryOperatorWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_ids_trinary_operator_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static joinControlForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_join_control_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createJoinControl() {
-        const result = wasm.icu4x_CodePointSetData_create_join_control_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createJoinControlWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_join_control_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static logicalOrderExceptionForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_logical_order_exception_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createLogicalOrderException() {
-        const result = wasm.icu4x_CodePointSetData_create_logical_order_exception_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLogicalOrderExceptionWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_logical_order_exception_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static lowercaseForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_lowercase_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createLowercase() {
-        const result = wasm.icu4x_CodePointSetData_create_lowercase_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLowercaseWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_lowercase_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static mathForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_math_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createMath() {
-        const result = wasm.icu4x_CodePointSetData_create_math_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createMathWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_math_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static noncharacterCodePointForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_noncharacter_code_point_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createNoncharacterCodePoint() {
-        const result = wasm.icu4x_CodePointSetData_create_noncharacter_code_point_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNoncharacterCodePointWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_noncharacter_code_point_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static nfcInertForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_nfc_inert_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createNfcInert() {
-        const result = wasm.icu4x_CodePointSetData_create_nfc_inert_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfcInertWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_nfc_inert_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static nfdInertForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_nfd_inert_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createNfdInert() {
-        const result = wasm.icu4x_CodePointSetData_create_nfd_inert_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfdInertWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_nfd_inert_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static nfkcInertForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_nfkc_inert_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createNfkcInert() {
-        const result = wasm.icu4x_CodePointSetData_create_nfkc_inert_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfkcInertWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_nfkc_inert_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static nfkdInertForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_nfkd_inert_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createNfkdInert() {
-        const result = wasm.icu4x_CodePointSetData_create_nfkd_inert_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfkdInertWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_nfkd_inert_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static patternSyntaxForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_pattern_syntax_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createPatternSyntax() {
-        const result = wasm.icu4x_CodePointSetData_create_pattern_syntax_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createPatternSyntaxWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_pattern_syntax_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static patternWhiteSpaceForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_pattern_white_space_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createPatternWhiteSpace() {
-        const result = wasm.icu4x_CodePointSetData_create_pattern_white_space_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createPatternWhiteSpaceWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_pattern_white_space_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static prependedConcatenationMarkForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_prepended_concatenation_mark_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createPrependedConcatenationMark() {
-        const result = wasm.icu4x_CodePointSetData_create_prepended_concatenation_mark_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createPrependedConcatenationMarkWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_prepended_concatenation_mark_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static printForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_print_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createPrint() {
-        const result = wasm.icu4x_CodePointSetData_create_print_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createPrintWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_print_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static quotationMarkForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_quotation_mark_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createQuotationMark() {
-        const result = wasm.icu4x_CodePointSetData_create_quotation_mark_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createQuotationMarkWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_quotation_mark_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static radicalForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_radical_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createRadical() {
-        const result = wasm.icu4x_CodePointSetData_create_radical_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createRadicalWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_radical_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static regionalIndicatorForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_regional_indicator_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createRegionalIndicator() {
-        const result = wasm.icu4x_CodePointSetData_create_regional_indicator_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createRegionalIndicatorWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_regional_indicator_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static softDottedForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_soft_dotted_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createSoftDotted() {
-        const result = wasm.icu4x_CodePointSetData_create_soft_dotted_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createSoftDottedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_soft_dotted_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static segmentStarterForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_segment_starter_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createSegmentStarter() {
-        const result = wasm.icu4x_CodePointSetData_create_segment_starter_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createSegmentStarterWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_segment_starter_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static caseSensitiveForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_case_sensitive_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createCaseSensitive() {
-        const result = wasm.icu4x_CodePointSetData_create_case_sensitive_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCaseSensitiveWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_case_sensitive_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static sentenceTerminalForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_sentence_terminal_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createSentenceTerminal() {
-        const result = wasm.icu4x_CodePointSetData_create_sentence_terminal_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createSentenceTerminalWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_sentence_terminal_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static terminalPunctuationForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_terminal_punctuation_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createTerminalPunctuation() {
-        const result = wasm.icu4x_CodePointSetData_create_terminal_punctuation_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createTerminalPunctuationWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_terminal_punctuation_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static unifiedIdeographForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_unified_ideograph_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createUnifiedIdeograph() {
-        const result = wasm.icu4x_CodePointSetData_create_unified_ideograph_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createUnifiedIdeographWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_unified_ideograph_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static uppercaseForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_uppercase_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createUppercase() {
-        const result = wasm.icu4x_CodePointSetData_create_uppercase_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createUppercaseWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_uppercase_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static variationSelectorForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_variation_selector_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createVariationSelector() {
-        const result = wasm.icu4x_CodePointSetData_create_variation_selector_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createVariationSelectorWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_variation_selector_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static whiteSpaceForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_white_space_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createWhiteSpace() {
-        const result = wasm.icu4x_CodePointSetData_create_white_space_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWhiteSpaceWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_white_space_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static xdigitForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_xdigit_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createXdigit() {
-        const result = wasm.icu4x_CodePointSetData_create_xdigit_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createXdigitWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_xdigit_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static xidContinueForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_xid_continue_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createXidContinue() {
-        const result = wasm.icu4x_CodePointSetData_create_xid_continue_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createXidContinueWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_xid_continue_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static xidStartForChar(ch) {
-        const result = wasm.icu4x_CodePointSetData_xid_start_for_char_mv1(ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createXidStart() {
-        const result = wasm.icu4x_CodePointSetData_create_xid_start_mv1();
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createXidStartWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_xid_start_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createForEcma262(propertyName) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const propertyNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, propertyName));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_for_ecma262_mv1(diplomatReceive.buffer, ...propertyNameSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static createForEcma262WithProvider(provider, propertyName) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const propertyNameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, propertyName));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_CodePointSetData_create_for_ecma262_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, ...propertyNameSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new CodePointSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.d.ts
deleted file mode 100644
index 56f4672..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// generated by diplomat-tool
-import type { CollatorOptions } from "./CollatorOptions"
-import type { CollatorOptions_obj } from "./CollatorOptions"
-import type { CollatorResolvedOptions } from "./CollatorResolvedOptions"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Collator`](https://docs.rs/icu/latest/icu/collator/struct.Collator.html) for more information.
-*/
-
-
-export class Collator {
-    
-    get ffiValue(): pointer;
-
-    static create(locale: Locale, options: CollatorOptions_obj): Collator;
-
-    compare(left: string, right: string): number;
-
-    get resolvedOptions(): CollatorResolvedOptions;
-
-    constructor(provider: DataProvider, locale: Locale, options: CollatorOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.mjs
deleted file mode 100644
index 1d60674..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Collator.mjs
+++ /dev/null
@@ -1,131 +0,0 @@
-// generated by diplomat-tool
-import { CollatorOptions } from "./CollatorOptions.mjs"
-import { CollatorResolvedOptions } from "./CollatorResolvedOptions.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Collator`](https://docs.rs/icu/latest/icu/collator/struct.Collator.html) for more information.
-*/
-const Collator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Collator_destroy_mv1(ptr);
-});
-
-export class Collator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Collator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Collator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static create(locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Collator_create_v1_mv1(diplomatReceive.buffer, locale.ffiValue, ...CollatorOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Collator(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    #defaultConstructor(provider, locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Collator_create_v1_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...CollatorOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new Collator(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    compare(left, right) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const leftSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, left));
-        
-        const rightSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, right));
-        
-        const result = wasm.icu4x_Collator_compare_utf16_mv1(this.ffiValue, ...leftSlice.splat(), ...rightSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    get resolvedOptions() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 28, 4, false);
-        
-        const result = wasm.icu4x_Collator_resolved_options_v1_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            return CollatorResolvedOptions._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(provider, locale, options) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.d.ts
deleted file mode 100644
index 24151787..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `AlternateHandling`](https://docs.rs/icu/latest/icu/collator/options/enum.AlternateHandling.html) for more information.
-*/
-
-
-export class CollatorAlternateHandling {
-    
-
-    static fromValue(value : CollatorAlternateHandling | string) : CollatorAlternateHandling; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static NonIgnorable : CollatorAlternateHandling;
-    static Shifted : CollatorAlternateHandling;
-
-    constructor(value: CollatorAlternateHandling | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.mjs
deleted file mode 100644
index 258daa81..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorAlternateHandling.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `AlternateHandling`](https://docs.rs/icu/latest/icu/collator/options/enum.AlternateHandling.html) for more information.
-*/
-
-
-export class CollatorAlternateHandling {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["NonIgnorable", 0],
-        ["Shifted", 1]
-    ]);
-
-    static getAllEntries() {
-        return CollatorAlternateHandling.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorAlternateHandling.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorAlternateHandling) {
-            return value;
-        }
-
-        let intVal = CollatorAlternateHandling.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorAlternateHandling.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorAlternateHandling and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorAlternateHandling(value);
-    }
-
-    get value() {
-        return [...CollatorAlternateHandling.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorAlternateHandling(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorAlternateHandling(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static NonIgnorable = CollatorAlternateHandling.#objectValues[0];
-    static Shifted = CollatorAlternateHandling.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.d.ts
deleted file mode 100644
index dae6f9f7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `BackwardSecondLevel`](https://docs.rs/icu/latest/icu/collator/options/enum.BackwardSecondLevel.html) for more information.
-*/
-
-
-export class CollatorBackwardSecondLevel {
-    
-
-    static fromValue(value : CollatorBackwardSecondLevel | string) : CollatorBackwardSecondLevel; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Off : CollatorBackwardSecondLevel;
-    static On : CollatorBackwardSecondLevel;
-
-    constructor(value: CollatorBackwardSecondLevel | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.mjs
deleted file mode 100644
index c76889a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorBackwardSecondLevel.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `BackwardSecondLevel`](https://docs.rs/icu/latest/icu/collator/options/enum.BackwardSecondLevel.html) for more information.
-*/
-
-
-export class CollatorBackwardSecondLevel {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Off", 0],
-        ["On", 1]
-    ]);
-
-    static getAllEntries() {
-        return CollatorBackwardSecondLevel.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorBackwardSecondLevel.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorBackwardSecondLevel) {
-            return value;
-        }
-
-        let intVal = CollatorBackwardSecondLevel.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorBackwardSecondLevel.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorBackwardSecondLevel and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorBackwardSecondLevel(value);
-    }
-
-    get value() {
-        return [...CollatorBackwardSecondLevel.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorBackwardSecondLevel(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorBackwardSecondLevel(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Off = CollatorBackwardSecondLevel.#objectValues[0];
-    static On = CollatorBackwardSecondLevel.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.d.ts
deleted file mode 100644
index eaee8805..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CaseFirst`](https://docs.rs/icu/latest/icu/collator/options/enum.CaseFirst.html) for more information.
-*/
-
-
-export class CollatorCaseFirst {
-    
-
-    static fromValue(value : CollatorCaseFirst | string) : CollatorCaseFirst; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Off : CollatorCaseFirst;
-    static Lower : CollatorCaseFirst;
-    static Upper : CollatorCaseFirst;
-
-    constructor(value: CollatorCaseFirst | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.mjs
deleted file mode 100644
index 9609f05..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseFirst.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CaseFirst`](https://docs.rs/icu/latest/icu/collator/options/enum.CaseFirst.html) for more information.
-*/
-
-
-export class CollatorCaseFirst {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Off", 0],
-        ["Lower", 1],
-        ["Upper", 2]
-    ]);
-
-    static getAllEntries() {
-        return CollatorCaseFirst.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorCaseFirst.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorCaseFirst) {
-            return value;
-        }
-
-        let intVal = CollatorCaseFirst.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorCaseFirst.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorCaseFirst and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorCaseFirst(value);
-    }
-
-    get value() {
-        return [...CollatorCaseFirst.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorCaseFirst(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorCaseFirst(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new CollatorCaseFirst(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Off = CollatorCaseFirst.#objectValues[0];
-    static Lower = CollatorCaseFirst.#objectValues[1];
-    static Upper = CollatorCaseFirst.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.d.ts
deleted file mode 100644
index 0c635eb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CaseLevel`](https://docs.rs/icu/latest/icu/collator/options/enum.CaseLevel.html) for more information.
-*/
-
-
-export class CollatorCaseLevel {
-    
-
-    static fromValue(value : CollatorCaseLevel | string) : CollatorCaseLevel; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Off : CollatorCaseLevel;
-    static On : CollatorCaseLevel;
-
-    constructor(value: CollatorCaseLevel | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.mjs
deleted file mode 100644
index dd2c4a0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorCaseLevel.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CaseLevel`](https://docs.rs/icu/latest/icu/collator/options/enum.CaseLevel.html) for more information.
-*/
-
-
-export class CollatorCaseLevel {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Off", 0],
-        ["On", 1]
-    ]);
-
-    static getAllEntries() {
-        return CollatorCaseLevel.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorCaseLevel.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorCaseLevel) {
-            return value;
-        }
-
-        let intVal = CollatorCaseLevel.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorCaseLevel.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorCaseLevel and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorCaseLevel(value);
-    }
-
-    get value() {
-        return [...CollatorCaseLevel.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorCaseLevel(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorCaseLevel(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Off = CollatorCaseLevel.#objectValues[0];
-    static On = CollatorCaseLevel.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.d.ts
deleted file mode 100644
index 20afccd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `MaxVariable`](https://docs.rs/icu/latest/icu/collator/options/enum.MaxVariable.html) for more information.
-*/
-
-
-export class CollatorMaxVariable {
-    
-
-    static fromValue(value : CollatorMaxVariable | string) : CollatorMaxVariable; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Space : CollatorMaxVariable;
-    static Punctuation : CollatorMaxVariable;
-    static Symbol : CollatorMaxVariable;
-    static Currency : CollatorMaxVariable;
-
-    constructor(value: CollatorMaxVariable | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.mjs
deleted file mode 100644
index 0c4ffdd3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorMaxVariable.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `MaxVariable`](https://docs.rs/icu/latest/icu/collator/options/enum.MaxVariable.html) for more information.
-*/
-
-
-export class CollatorMaxVariable {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Space", 0],
-        ["Punctuation", 1],
-        ["Symbol", 2],
-        ["Currency", 3]
-    ]);
-
-    static getAllEntries() {
-        return CollatorMaxVariable.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorMaxVariable.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorMaxVariable) {
-            return value;
-        }
-
-        let intVal = CollatorMaxVariable.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorMaxVariable.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorMaxVariable and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorMaxVariable(value);
-    }
-
-    get value() {
-        return [...CollatorMaxVariable.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorMaxVariable(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorMaxVariable(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new CollatorMaxVariable(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new CollatorMaxVariable(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Space = CollatorMaxVariable.#objectValues[0];
-    static Punctuation = CollatorMaxVariable.#objectValues[1];
-    static Symbol = CollatorMaxVariable.#objectValues[2];
-    static Currency = CollatorMaxVariable.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.d.ts
deleted file mode 100644
index 38283237..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `NumericOrdering`](https://docs.rs/icu/latest/icu/collator/options/enum.NumericOrdering.html) for more information.
-*/
-
-
-export class CollatorNumericOrdering {
-    
-
-    static fromValue(value : CollatorNumericOrdering | string) : CollatorNumericOrdering; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Off : CollatorNumericOrdering;
-    static On : CollatorNumericOrdering;
-
-    constructor(value: CollatorNumericOrdering | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.mjs
deleted file mode 100644
index 09119e8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorNumericOrdering.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `NumericOrdering`](https://docs.rs/icu/latest/icu/collator/options/enum.NumericOrdering.html) for more information.
-*/
-
-
-export class CollatorNumericOrdering {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Off", 0],
-        ["On", 1]
-    ]);
-
-    static getAllEntries() {
-        return CollatorNumericOrdering.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorNumericOrdering.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorNumericOrdering) {
-            return value;
-        }
-
-        let intVal = CollatorNumericOrdering.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorNumericOrdering.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorNumericOrdering and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorNumericOrdering(value);
-    }
-
-    get value() {
-        return [...CollatorNumericOrdering.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorNumericOrdering(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorNumericOrdering(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Off = CollatorNumericOrdering.#objectValues[0];
-    static On = CollatorNumericOrdering.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.d.ts
deleted file mode 100644
index 2b2dbbb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.d.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-// generated by diplomat-tool
-import type { CollatorAlternateHandling } from "./CollatorAlternateHandling"
-import type { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel"
-import type { CollatorCaseLevel } from "./CollatorCaseLevel"
-import type { CollatorMaxVariable } from "./CollatorMaxVariable"
-import type { CollatorStrength } from "./CollatorStrength"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `CollatorOptions`](https://docs.rs/icu/latest/icu/collator/options/struct.CollatorOptions.html) for more information.
-*/
-type CollatorOptions_obj = {
-    strength?: CollatorStrength | null;
-    alternateHandling?: CollatorAlternateHandling | null;
-    maxVariable?: CollatorMaxVariable | null;
-    caseLevel?: CollatorCaseLevel | null;
-    backwardSecondLevel?: CollatorBackwardSecondLevel | null;
-};
-
-
-
-export class CollatorOptions {
-    
-    get strength() : CollatorStrength | null; 
-    set strength(value: CollatorStrength | null); 
-    
-    get alternateHandling() : CollatorAlternateHandling | null; 
-    set alternateHandling(value: CollatorAlternateHandling | null); 
-    
-    get maxVariable() : CollatorMaxVariable | null; 
-    set maxVariable(value: CollatorMaxVariable | null); 
-    
-    get caseLevel() : CollatorCaseLevel | null; 
-    set caseLevel(value: CollatorCaseLevel | null); 
-    
-    get backwardSecondLevel() : CollatorBackwardSecondLevel | null; 
-    set backwardSecondLevel(value: CollatorBackwardSecondLevel | null); 
-    
-    /** Create `CollatorOptions` from an object that contains all of `CollatorOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : CollatorOptions_obj) : CollatorOptions;
-
-
-    constructor(structObj : CollatorOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.mjs
deleted file mode 100644
index 113dfa6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorOptions.mjs
+++ /dev/null
@@ -1,169 +0,0 @@
-// generated by diplomat-tool
-import { CollatorAlternateHandling } from "./CollatorAlternateHandling.mjs"
-import { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel.mjs"
-import { CollatorCaseLevel } from "./CollatorCaseLevel.mjs"
-import { CollatorMaxVariable } from "./CollatorMaxVariable.mjs"
-import { CollatorStrength } from "./CollatorStrength.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `CollatorOptions`](https://docs.rs/icu/latest/icu/collator/options/struct.CollatorOptions.html) for more information.
-*/
-
-
-export class CollatorOptions {
-    
-    #strength;
-    
-    get strength()  {
-        return this.#strength;
-    } 
-    set strength(value) {
-        this.#strength = value;
-    }
-    
-    #alternateHandling;
-    
-    get alternateHandling()  {
-        return this.#alternateHandling;
-    } 
-    set alternateHandling(value) {
-        this.#alternateHandling = value;
-    }
-    
-    #maxVariable;
-    
-    get maxVariable()  {
-        return this.#maxVariable;
-    } 
-    set maxVariable(value) {
-        this.#maxVariable = value;
-    }
-    
-    #caseLevel;
-    
-    get caseLevel()  {
-        return this.#caseLevel;
-    } 
-    set caseLevel(value) {
-        this.#caseLevel = value;
-    }
-    
-    #backwardSecondLevel;
-    
-    get backwardSecondLevel()  {
-        return this.#backwardSecondLevel;
-    } 
-    set backwardSecondLevel(value) {
-        this.#backwardSecondLevel = value;
-    }
-    
-    /** Create `CollatorOptions` from an object that contains all of `CollatorOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new CollatorOptions(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("CollatorOptions's constructor takes an object of CollatorOptions's fields.");
-        }
-
-        if ("strength" in structObj) {
-            this.#strength = structObj.strength;
-        } else {
-            this.#strength = null;
-        }
-
-        if ("alternateHandling" in structObj) {
-            this.#alternateHandling = structObj.alternateHandling;
-        } else {
-            this.#alternateHandling = null;
-        }
-
-        if ("maxVariable" in structObj) {
-            this.#maxVariable = structObj.maxVariable;
-        } else {
-            this.#maxVariable = null;
-        }
-
-        if ("caseLevel" in structObj) {
-            this.#caseLevel = structObj.caseLevel;
-        } else {
-            this.#caseLevel = null;
-        }
-
-        if ("backwardSecondLevel" in structObj) {
-            this.#backwardSecondLevel = structObj.backwardSecondLevel;
-        } else {
-            this.#backwardSecondLevel = null;
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [...diplomatRuntime.optionToArgsForCalling(this.#strength, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#alternateHandling, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#maxVariable, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#caseLevel, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#backwardSecondLevel, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)])]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof CollatorOptions) {
-            return obj;
-        }
-
-        return CollatorOptions.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 0, this.#strength, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 8, this.#alternateHandling, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 16, this.#maxVariable, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 24, this.#caseLevel, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 32, this.#backwardSecondLevel, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("CollatorOptions._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const strengthDeref = ptr;
-        structObj.strength = diplomatRuntime.readOption(wasm, strengthDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new CollatorStrength(diplomatRuntime.internalConstructor, deref) });
-        const alternateHandlingDeref = ptr + 8;
-        structObj.alternateHandling = diplomatRuntime.readOption(wasm, alternateHandlingDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new CollatorAlternateHandling(diplomatRuntime.internalConstructor, deref) });
-        const maxVariableDeref = ptr + 16;
-        structObj.maxVariable = diplomatRuntime.readOption(wasm, maxVariableDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new CollatorMaxVariable(diplomatRuntime.internalConstructor, deref) });
-        const caseLevelDeref = ptr + 24;
-        structObj.caseLevel = diplomatRuntime.readOption(wasm, caseLevelDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new CollatorCaseLevel(diplomatRuntime.internalConstructor, deref) });
-        const backwardSecondLevelDeref = ptr + 32;
-        structObj.backwardSecondLevel = diplomatRuntime.readOption(wasm, backwardSecondLevelDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new CollatorBackwardSecondLevel(diplomatRuntime.internalConstructor, deref) });
-
-        return new CollatorOptions(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.d.ts
deleted file mode 100644
index 9802f01..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { CollatorAlternateHandling } from "./CollatorAlternateHandling"
-import type { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel"
-import type { CollatorCaseFirst } from "./CollatorCaseFirst"
-import type { CollatorCaseLevel } from "./CollatorCaseLevel"
-import type { CollatorMaxVariable } from "./CollatorMaxVariable"
-import type { CollatorNumericOrdering } from "./CollatorNumericOrdering"
-import type { CollatorStrength } from "./CollatorStrength"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `ResolvedCollatorOptions`](https://docs.rs/icu/latest/icu/collator/options/struct.ResolvedCollatorOptions.html) for more information.
-*/
-
-
-export class CollatorResolvedOptions {
-    
-    get strength() : CollatorStrength;
-    
-    get alternateHandling() : CollatorAlternateHandling;
-    
-    get caseFirst() : CollatorCaseFirst;
-    
-    get maxVariable() : CollatorMaxVariable;
-    
-    get caseLevel() : CollatorCaseLevel;
-    
-    get numeric() : CollatorNumericOrdering;
-    
-    get backwardSecondLevel() : CollatorBackwardSecondLevel;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.mjs
deleted file mode 100644
index 6959e72..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorResolvedOptions.mjs
+++ /dev/null
@@ -1,182 +0,0 @@
-// generated by diplomat-tool
-import { CollatorAlternateHandling } from "./CollatorAlternateHandling.mjs"
-import { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel.mjs"
-import { CollatorCaseFirst } from "./CollatorCaseFirst.mjs"
-import { CollatorCaseLevel } from "./CollatorCaseLevel.mjs"
-import { CollatorMaxVariable } from "./CollatorMaxVariable.mjs"
-import { CollatorNumericOrdering } from "./CollatorNumericOrdering.mjs"
-import { CollatorStrength } from "./CollatorStrength.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `ResolvedCollatorOptions`](https://docs.rs/icu/latest/icu/collator/options/struct.ResolvedCollatorOptions.html) for more information.
-*/
-
-
-export class CollatorResolvedOptions {
-    
-    #strength;
-    
-    get strength()  {
-        return this.#strength;
-    }
-    
-    #alternateHandling;
-    
-    get alternateHandling()  {
-        return this.#alternateHandling;
-    }
-    
-    #caseFirst;
-    
-    get caseFirst()  {
-        return this.#caseFirst;
-    }
-    
-    #maxVariable;
-    
-    get maxVariable()  {
-        return this.#maxVariable;
-    }
-    
-    #caseLevel;
-    
-    get caseLevel()  {
-        return this.#caseLevel;
-    }
-    
-    #numeric;
-    
-    get numeric()  {
-        return this.#numeric;
-    }
-    
-    #backwardSecondLevel;
-    
-    get backwardSecondLevel()  {
-        return this.#backwardSecondLevel;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("CollatorResolvedOptions's constructor takes an object of CollatorResolvedOptions's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("CollatorResolvedOptions is an out struct and can only be created internally.");
-        }
-        if ("strength" in structObj) {
-            this.#strength = structObj.strength;
-        } else {
-            throw new Error("Missing required field strength.");
-        }
-
-        if ("alternateHandling" in structObj) {
-            this.#alternateHandling = structObj.alternateHandling;
-        } else {
-            throw new Error("Missing required field alternateHandling.");
-        }
-
-        if ("caseFirst" in structObj) {
-            this.#caseFirst = structObj.caseFirst;
-        } else {
-            throw new Error("Missing required field caseFirst.");
-        }
-
-        if ("maxVariable" in structObj) {
-            this.#maxVariable = structObj.maxVariable;
-        } else {
-            throw new Error("Missing required field maxVariable.");
-        }
-
-        if ("caseLevel" in structObj) {
-            this.#caseLevel = structObj.caseLevel;
-        } else {
-            throw new Error("Missing required field caseLevel.");
-        }
-
-        if ("numeric" in structObj) {
-            this.#numeric = structObj.numeric;
-        } else {
-            throw new Error("Missing required field numeric.");
-        }
-
-        if ("backwardSecondLevel" in structObj) {
-            this.#backwardSecondLevel = structObj.backwardSecondLevel;
-        } else {
-            throw new Error("Missing required field backwardSecondLevel.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#strength.ffiValue, this.#alternateHandling.ffiValue, this.#caseFirst.ffiValue, this.#maxVariable.ffiValue, this.#caseLevel.ffiValue, this.#numeric.ffiValue, this.#backwardSecondLevel.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof CollatorResolvedOptions) {
-            return obj;
-        }
-
-        return CollatorResolvedOptions.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#strength.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#alternateHandling.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#caseFirst.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 12, this.#maxVariable.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 16, this.#caseLevel.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 20, this.#numeric.ffiValue, Int32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 24, this.#backwardSecondLevel.ffiValue, Int32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("CollatorResolvedOptions._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const strengthDeref = diplomatRuntime.enumDiscriminant(wasm, ptr);
-        structObj.strength = new CollatorStrength(diplomatRuntime.internalConstructor, strengthDeref);
-        const alternateHandlingDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 4);
-        structObj.alternateHandling = new CollatorAlternateHandling(diplomatRuntime.internalConstructor, alternateHandlingDeref);
-        const caseFirstDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 8);
-        structObj.caseFirst = new CollatorCaseFirst(diplomatRuntime.internalConstructor, caseFirstDeref);
-        const maxVariableDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 12);
-        structObj.maxVariable = new CollatorMaxVariable(diplomatRuntime.internalConstructor, maxVariableDeref);
-        const caseLevelDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 16);
-        structObj.caseLevel = new CollatorCaseLevel(diplomatRuntime.internalConstructor, caseLevelDeref);
-        const numericDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 20);
-        structObj.numeric = new CollatorNumericOrdering(diplomatRuntime.internalConstructor, numericDeref);
-        const backwardSecondLevelDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 24);
-        structObj.backwardSecondLevel = new CollatorBackwardSecondLevel(diplomatRuntime.internalConstructor, backwardSecondLevelDeref);
-
-        return new CollatorResolvedOptions(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.d.ts
deleted file mode 100644
index e7d7baf2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Strength`](https://docs.rs/icu/latest/icu/collator/options/enum.Strength.html) for more information.
-*/
-
-
-export class CollatorStrength {
-    
-
-    static fromValue(value : CollatorStrength | string) : CollatorStrength; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Primary : CollatorStrength;
-    static Secondary : CollatorStrength;
-    static Tertiary : CollatorStrength;
-    static Quaternary : CollatorStrength;
-    static Identical : CollatorStrength;
-
-    constructor(value: CollatorStrength | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.mjs
deleted file mode 100644
index e5120c64..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/CollatorStrength.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Strength`](https://docs.rs/icu/latest/icu/collator/options/enum.Strength.html) for more information.
-*/
-
-
-export class CollatorStrength {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Primary", 0],
-        ["Secondary", 1],
-        ["Tertiary", 2],
-        ["Quaternary", 3],
-        ["Identical", 4]
-    ]);
-
-    static getAllEntries() {
-        return CollatorStrength.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return CollatorStrength.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof CollatorStrength) {
-            return value;
-        }
-
-        let intVal = CollatorStrength.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return CollatorStrength.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a CollatorStrength and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new CollatorStrength(value);
-    }
-
-    get value() {
-        return [...CollatorStrength.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new CollatorStrength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new CollatorStrength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new CollatorStrength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new CollatorStrength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new CollatorStrength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-    ];
-
-    static Primary = CollatorStrength.#objectValues[0];
-    static Secondary = CollatorStrength.#objectValues[1];
-    static Tertiary = CollatorStrength.#objectValues[2];
-    static Quaternary = CollatorStrength.#objectValues[3];
-    static Identical = CollatorStrength.#objectValues[4];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.d.ts
deleted file mode 100644
index 34310ae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `ComposingNormalizer`](https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html) for more information.
-*/
-
-
-export class ComposingNormalizer {
-    
-    get ffiValue(): pointer;
-
-    static createNfc(): ComposingNormalizer;
-
-    static createNfcWithProvider(provider: DataProvider): ComposingNormalizer;
-
-    static createNfkc(): ComposingNormalizer;
-
-    static createNfkcWithProvider(provider: DataProvider): ComposingNormalizer;
-
-    normalize(s: string): string;
-
-    isNormalized(s: string): boolean;
-
-    isNormalizedUpTo(s: string): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.mjs
deleted file mode 100644
index 1ba0377..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ComposingNormalizer.mjs
+++ /dev/null
@@ -1,153 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `ComposingNormalizer`](https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html) for more information.
-*/
-const ComposingNormalizer_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ComposingNormalizer_destroy_mv1(ptr);
-});
-
-export class ComposingNormalizer {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ComposingNormalizer is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ComposingNormalizer_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createNfc() {
-        const result = wasm.icu4x_ComposingNormalizer_create_nfc_mv1();
-    
-        try {
-            return new ComposingNormalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfcWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ComposingNormalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createNfkc() {
-        const result = wasm.icu4x_ComposingNormalizer_create_nfkc_mv1();
-    
-        try {
-            return new ComposingNormalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfkcWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ComposingNormalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    normalize(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_ComposingNormalizer_normalize_mv1(this.ffiValue, ...sSlice.splat(), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    isNormalized(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, s));
-        
-        const result = wasm.icu4x_ComposingNormalizer_is_normalized_utf16_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    isNormalizedUpTo(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, s));
-        
-        const result = wasm.icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.d.ts
deleted file mode 100644
index 58e9086..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/provider/struct.DataError.html), [2](https://docs.rs/icu/latest/icu/provider/enum.DataErrorKind.html)
-*/
-
-
-export class DataError {
-    
-
-    static fromValue(value : DataError | string) : DataError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : DataError;
-    static MarkerNotFound : DataError;
-    static IdentifierNotFound : DataError;
-    static InvalidRequest : DataError;
-    static InconsistentData : DataError;
-    static Downcast : DataError;
-    static Deserialize : DataError;
-    static Custom : DataError;
-    static Io : DataError;
-
-    constructor(value: DataError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.mjs
deleted file mode 100644
index 5c8d285..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataError.mjs
+++ /dev/null
@@ -1,91 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/provider/struct.DataError.html), [2](https://docs.rs/icu/latest/icu/provider/enum.DataErrorKind.html)
-*/
-
-
-export class DataError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["MarkerNotFound", 1],
-        ["IdentifierNotFound", 2],
-        ["InvalidRequest", 3],
-        ["InconsistentData", 4],
-        ["Downcast", 5],
-        ["Deserialize", 6],
-        ["Custom", 7],
-        ["Io", 8]
-    ]);
-
-    static getAllEntries() {
-        return DataError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DataError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DataError) {
-            return value;
-        }
-
-        let intVal = DataError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DataError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DataError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DataError(value);
-    }
-
-    get value() {
-        return [...DataError.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-    ];
-
-    static Unknown = DataError.#objectValues[0];
-    static MarkerNotFound = DataError.#objectValues[1];
-    static IdentifierNotFound = DataError.#objectValues[2];
-    static InvalidRequest = DataError.#objectValues[3];
-    static InconsistentData = DataError.#objectValues[4];
-    static Downcast = DataError.#objectValues[5];
-    static Deserialize = DataError.#objectValues[6];
-    static Custom = DataError.#objectValues[7];
-    static Io = DataError.#objectValues[8];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.d.ts
deleted file mode 100644
index 50edfc2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { LocaleFallbacker } from "./LocaleFallbacker"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X data provider, capable of loading ICU4X data keys from some source.
-*
-*Currently the only source supported is loading from "blob" formatted data from a bytes buffer or the file system.
-*
-*If you wish to use ICU4X's builtin "compiled data", use the version of the constructors that do not have `_with_provider`
-*in their names.
-*
-*See the [Rust documentation for `icu_provider`](https://docs.rs/icu_provider/latest/icu_provider/index.html) for more information.
-*/
-
-
-export class DataProvider {
-    
-    get ffiValue(): pointer;
-
-    forkByKey(other: DataProvider): void;
-
-    forkByLocale(other: DataProvider): void;
-
-    enableLocaleFallbackWith(fallbacker: LocaleFallbacker): void;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.mjs
deleted file mode 100644
index b9cdea40..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DataProvider.mjs
+++ /dev/null
@@ -1,107 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { LocaleFallbacker } from "./LocaleFallbacker.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X data provider, capable of loading ICU4X data keys from some source.
-*
-*Currently the only source supported is loading from "blob" formatted data from a bytes buffer or the file system.
-*
-*If you wish to use ICU4X's builtin "compiled data", use the version of the constructors that do not have `_with_provider`
-*in their names.
-*
-*See the [Rust documentation for `icu_provider`](https://docs.rs/icu_provider/latest/icu_provider/index.html) for more information.
-*/
-const DataProvider_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DataProvider_destroy_mv1(ptr);
-});
-
-export class DataProvider {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DataProvider is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DataProvider_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    forkByKey(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DataProvider_fork_by_key_mv1(diplomatReceive.buffer, this.ffiValue, other.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    forkByLocale(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DataProvider_fork_by_locale_mv1(diplomatReceive.buffer, this.ffiValue, other.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    enableLocaleFallbackWith(fallbacker) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DataProvider_enable_locale_fallback_with_mv1(diplomatReceive.buffer, this.ffiValue, fallbacker.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.d.ts
deleted file mode 100644
index 73105b5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-// generated by diplomat-tool
-import type { Calendar } from "./Calendar"
-import type { CalendarError } from "./CalendarError"
-import type { CalendarParseError } from "./CalendarParseError"
-import type { IsoDate } from "./IsoDate"
-import type { WeekCalculator } from "./WeekCalculator"
-import type { WeekOf } from "./WeekOf"
-import type { Weekday } from "./Weekday"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Date object capable of containing a date and time for any calendar.
-*
-*See the [Rust documentation for `Date`](https://docs.rs/icu/latest/icu/calendar/struct.Date.html) for more information.
-*/
-
-
-export class Date {
-    
-    get ffiValue(): pointer;
-
-    static fromIsoInCalendar(year: number, month: number, day: number, calendar: Calendar): Date;
-
-    static fromCodesInCalendar(eraCode: string, year: number, monthCode: string, day: number, calendar: Calendar): Date;
-
-    static fromString(v: string, calendar: Calendar): Date;
-
-    toCalendar(calendar: Calendar): Date;
-
-    toIso(): IsoDate;
-
-    get dayOfYear(): number;
-
-    get dayOfMonth(): number;
-
-    get dayOfWeek(): Weekday;
-
-    weekOfMonth(firstWeekday: Weekday): number;
-
-    weekOfYear(calculator: WeekCalculator): WeekOf;
-
-    get ordinalMonth(): number;
-
-    get monthCode(): string;
-
-    get monthNumber(): number;
-
-    get monthIsLeap(): boolean;
-
-    get yearInEra(): number;
-
-    get extendedYear(): number;
-
-    get era(): string;
-
-    get monthsInYear(): number;
-
-    get daysInMonth(): number;
-
-    get daysInYear(): number;
-
-    get calendar(): Calendar;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.mjs
deleted file mode 100644
index 3566a610..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Date.mjs
+++ /dev/null
@@ -1,311 +0,0 @@
-// generated by diplomat-tool
-import { Calendar } from "./Calendar.mjs"
-import { CalendarError } from "./CalendarError.mjs"
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { WeekCalculator } from "./WeekCalculator.mjs"
-import { WeekOf } from "./WeekOf.mjs"
-import { Weekday } from "./Weekday.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Date object capable of containing a date and time for any calendar.
-*
-*See the [Rust documentation for `Date`](https://docs.rs/icu/latest/icu/calendar/struct.Date.html) for more information.
-*/
-const Date_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Date_destroy_mv1(ptr);
-});
-
-export class Date {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Date is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Date_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static fromIsoInCalendar(year, month, day, calendar) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Date_from_iso_in_calendar_mv1(diplomatReceive.buffer, year, month, day, calendar.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarError: ' + cause.value, { cause });
-            }
-            return new Date(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromCodesInCalendar(eraCode, year, monthCode, day, calendar) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const eraCodeSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, eraCode));
-        
-        const monthCodeSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, monthCode));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Date_from_codes_in_calendar_mv1(diplomatReceive.buffer, ...eraCodeSlice.splat(), year, ...monthCodeSlice.splat(), day, calendar.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarError: ' + cause.value, { cause });
-            }
-            return new Date(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static fromString(v, calendar) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Date_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return new Date(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    toCalendar(calendar) {
-        const result = wasm.icu4x_Date_to_calendar_mv1(this.ffiValue, calendar.ffiValue);
-    
-        try {
-            return new Date(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    toIso() {
-        const result = wasm.icu4x_Date_to_iso_mv1(this.ffiValue);
-    
-        try {
-            return new IsoDate(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    get dayOfYear() {
-        const result = wasm.icu4x_Date_day_of_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get dayOfMonth() {
-        const result = wasm.icu4x_Date_day_of_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get dayOfWeek() {
-        const result = wasm.icu4x_Date_day_of_week_mv1(this.ffiValue);
-    
-        try {
-            return new Weekday(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    weekOfMonth(firstWeekday) {
-        const result = wasm.icu4x_Date_week_of_month_mv1(this.ffiValue, firstWeekday.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    weekOfYear(calculator) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 8, 4, false);
-        
-        const result = wasm.icu4x_Date_week_of_year_mv1(diplomatReceive.buffer, this.ffiValue, calculator.ffiValue);
-    
-        try {
-            return WeekOf._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get ordinalMonth() {
-        const result = wasm.icu4x_Date_ordinal_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get monthCode() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Date_month_code_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    get monthNumber() {
-        const result = wasm.icu4x_Date_month_number_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get monthIsLeap() {
-        const result = wasm.icu4x_Date_month_is_leap_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get yearInEra() {
-        const result = wasm.icu4x_Date_year_in_era_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get extendedYear() {
-        const result = wasm.icu4x_Date_extended_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get era() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Date_era_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    get monthsInYear() {
-        const result = wasm.icu4x_Date_months_in_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get daysInMonth() {
-        const result = wasm.icu4x_Date_days_in_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get daysInYear() {
-        const result = wasm.icu4x_Date_days_in_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get calendar() {
-        const result = wasm.icu4x_Date_calendar_mv1(this.ffiValue);
-    
-        try {
-            return new Calendar(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.d.ts
deleted file mode 100644
index 88087444..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.d.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-// generated by diplomat-tool
-import type { Calendar } from "./Calendar"
-import type { DataProvider } from "./DataProvider"
-import type { Date } from "./Date"
-import type { DateTimeFormatError } from "./DateTimeFormatError"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X DateFormatter object capable of formatting a [`Date`] as a string,
-*using some calendar specified at runtime in the locale.
-*
-*See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMD.html)
-*/
-
-
-export class DateFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithLength(locale: Locale, length: DateTimeLength): DateFormatter;
-
-    static createWithLengthAndProvider(provider: DataProvider, locale: Locale, length: DateTimeLength): DateFormatter;
-
-    format(value: Date): string;
-
-    formatIso(value: IsoDate): string;
-
-    calendar(): Calendar;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.mjs
deleted file mode 100644
index 65eafcf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateFormatter.mjs
+++ /dev/null
@@ -1,147 +0,0 @@
-// generated by diplomat-tool
-import { Calendar } from "./Calendar.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Date } from "./Date.mjs"
-import { DateTimeFormatError } from "./DateTimeFormatError.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X DateFormatter object capable of formatting a [`Date`] as a string,
-*using some calendar specified at runtime in the locale.
-*
-*See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMD.html)
-*/
-const DateFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DateFormatter_destroy_mv1(ptr);
-});
-
-export class DateFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DateFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DateFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateFormatter_create_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateFormatter_create_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    format(value) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_DateFormatter_format_mv1(diplomatReceive.buffer, this.ffiValue, value.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    formatIso(value) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_DateFormatter_format_iso_mv1(diplomatReceive.buffer, this.ffiValue, value.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    calendar() {
-        const result = wasm.icu4x_DateFormatter_calendar_mv1(this.ffiValue);
-    
-        try {
-            return new Calendar(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.d.ts
deleted file mode 100644
index 7e59ba6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { Calendar } from "./Calendar"
-import type { CalendarParseError } from "./CalendarParseError"
-import type { Date } from "./Date"
-import type { Time } from "./Time"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X DateTime object capable of containing a date and time for any calendar.
-*
-*See the [Rust documentation for `DateTime`](https://docs.rs/icu/latest/icu/time/struct.DateTime.html) for more information.
-*/
-
-
-export class DateTime {
-    
-    get date() : Date;
-    
-    get time() : Time;
-    
-
-    static fromString(v: string, calendar: Calendar): DateTime;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.mjs
deleted file mode 100644
index 31d3147..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTime.mjs
+++ /dev/null
@@ -1,130 +0,0 @@
-// generated by diplomat-tool
-import { Calendar } from "./Calendar.mjs"
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { Date } from "./Date.mjs"
-import { Time } from "./Time.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X DateTime object capable of containing a date and time for any calendar.
-*
-*See the [Rust documentation for `DateTime`](https://docs.rs/icu/latest/icu/time/struct.DateTime.html) for more information.
-*/
-
-
-export class DateTime {
-    
-    #date;
-    
-    get date()  {
-        return this.#date;
-    }
-    
-    #time;
-    
-    get time()  {
-        return this.#time;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("DateTime's constructor takes an object of DateTime's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("DateTime is an out struct and can only be created internally.");
-        }
-        if ("date" in structObj) {
-            this.#date = structObj.date;
-        } else {
-            throw new Error("Missing required field date.");
-        }
-
-        if ("time" in structObj) {
-            this.#time = structObj.time;
-        } else {
-            throw new Error("Missing required field time.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#date.ffiValue, this.#time.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof DateTime) {
-            return obj;
-        }
-
-        return DateTime.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#date.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#time.ffiValue, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("DateTime._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const dateDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.date = new Date(diplomatRuntime.internalConstructor, dateDeref, []);
-        const timeDeref = diplomatRuntime.ptrRead(wasm, ptr + 4);
-        structObj.time = new Time(diplomatRuntime.internalConstructor, timeDeref, []);
-
-        return new DateTime(structObj, internalConstructor);
-    }
-
-    static fromString(v, calendar) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_DateTime_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return DateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.d.ts
deleted file mode 100644
index 9d6cf67..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Alignment`](https://docs.rs/icu/latest/icu/datetime/enum.Alignment.html) for more information.
-*/
-
-
-export class DateTimeAlignment {
-    
-
-    static fromValue(value : DateTimeAlignment | string) : DateTimeAlignment; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Auto : DateTimeAlignment;
-    static Column : DateTimeAlignment;
-
-    constructor(value: DateTimeAlignment | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.mjs
deleted file mode 100644
index d74a2f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeAlignment.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Alignment`](https://docs.rs/icu/latest/icu/datetime/enum.Alignment.html) for more information.
-*/
-
-
-export class DateTimeAlignment {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Auto", 0],
-        ["Column", 1]
-    ]);
-
-    static getAllEntries() {
-        return DateTimeAlignment.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DateTimeAlignment.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DateTimeAlignment) {
-            return value;
-        }
-
-        let intVal = DateTimeAlignment.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DateTimeAlignment.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DateTimeAlignment and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DateTimeAlignment(value);
-    }
-
-    get value() {
-        return [...DateTimeAlignment.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DateTimeAlignment(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DateTimeAlignment(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Auto = DateTimeAlignment.#objectValues[0];
-    static Column = DateTimeAlignment.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.d.ts
deleted file mode 100644
index 09bf276..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/datetime/enum.DateTimeWriteError.html)
-*/
-
-
-export class DateTimeFormatError {
-    
-
-    static fromValue(value : DateTimeFormatError | string) : DateTimeFormatError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : DateTimeFormatError;
-    static MissingInputField : DateTimeFormatError;
-    static ZoneInfoMissingFields : DateTimeFormatError;
-    static InvalidEra : DateTimeFormatError;
-    static InvalidMonthCode : DateTimeFormatError;
-    static InvalidCyclicYear : DateTimeFormatError;
-    static NamesNotLoaded : DateTimeFormatError;
-    static DecimalFormatterNotLoaded : DateTimeFormatError;
-    static UnsupportedField : DateTimeFormatError;
-
-    constructor(value: DateTimeFormatError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.mjs
deleted file mode 100644
index 271802f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatError.mjs
+++ /dev/null
@@ -1,95 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/datetime/enum.DateTimeWriteError.html)
-*/
-
-
-export class DateTimeFormatError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["MissingInputField", 1],
-        ["ZoneInfoMissingFields", 2],
-        ["InvalidEra", 3],
-        ["InvalidMonthCode", 4],
-        ["InvalidCyclicYear", 5],
-        ["NamesNotLoaded", 16],
-        ["DecimalFormatterNotLoaded", 17],
-        ["UnsupportedField", 18]
-    ]);
-
-    static getAllEntries() {
-        return DateTimeFormatError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DateTimeFormatError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DateTimeFormatError) {
-            return value;
-        }
-
-        let intVal = DateTimeFormatError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DateTimeFormatError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DateTimeFormatError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DateTimeFormatError(value);
-    }
-
-    get value() {
-        for (let entry of DateTimeFormatError.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [0]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        [1]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [2]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        [3]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        [4]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        [5]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        [16]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        [17]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        [18]: new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-    };
-
-    static Unknown = DateTimeFormatError.#objectValues[0];
-    static MissingInputField = DateTimeFormatError.#objectValues[1];
-    static ZoneInfoMissingFields = DateTimeFormatError.#objectValues[2];
-    static InvalidEra = DateTimeFormatError.#objectValues[3];
-    static InvalidMonthCode = DateTimeFormatError.#objectValues[4];
-    static InvalidCyclicYear = DateTimeFormatError.#objectValues[5];
-    static NamesNotLoaded = DateTimeFormatError.#objectValues[16];
-    static DecimalFormatterNotLoaded = DateTimeFormatError.#objectValues[17];
-    static UnsupportedField = DateTimeFormatError.#objectValues[18];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.d.ts
deleted file mode 100644
index 8f6e674..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { Date } from "./Date"
-import type { DateTimeAlignment } from "./DateTimeAlignment"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { DateTimeMismatchedCalendarError } from "./DateTimeMismatchedCalendarError"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { Time } from "./Time"
-import type { TimePrecision } from "./TimePrecision"
-import type { YearStyle } from "./YearStyle"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/type.DateTimeFormatter.html) for more information.
-*/
-
-
-export class DateTimeFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createDt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createDtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createMdt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createMdtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createYmdt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatter;
-
-    static createYmdtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatter;
-
-    static createDet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createDetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createMdet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createMdetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createYmdet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatter;
-
-    static createYmdetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatter;
-
-    static createEt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    static createEtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatter;
-
-    formatIso(date: IsoDate, time: Time): string;
-
-    formatSameCalendar(date: Date, time: Time): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.mjs
deleted file mode 100644
index 1bbd082..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatter.mjs
+++ /dev/null
@@ -1,342 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { Date } from "./Date.mjs"
-import { DateTimeAlignment } from "./DateTimeAlignment.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { DateTimeMismatchedCalendarError } from "./DateTimeMismatchedCalendarError.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import { Time } from "./Time.mjs"
-import { TimePrecision } from "./TimePrecision.mjs"
-import { YearStyle } from "./YearStyle.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/type.DateTimeFormatter.html) for more information.
-*/
-const DateTimeFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DateTimeFormatter_destroy_mv1(ptr);
-});
-
-export class DateTimeFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DateTimeFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DateTimeFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createDt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_dt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_dt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_mdt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_mdt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdt(locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_ymdt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdtWithProvider(provider, locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_ymdt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDet(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_det_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDetWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_det_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdet(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_mdet_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdetWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_mdet_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdet(locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_ymdet_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdetWithProvider(provider, locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_ymdet_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_et_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatter_create_et_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    formatIso(date, time) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_DateTimeFormatter_format_iso_mv1(this.ffiValue, date.ffiValue, time.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    formatSameCalendar(date, time) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_DateTimeFormatter_format_same_calendar_mv1(diplomatReceive.buffer, this.ffiValue, date.ffiValue, time.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = DateTimeMismatchedCalendarError._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-                throw new globalThis.Error('DateTimeMismatchedCalendarError: ' + cause.toString(), { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.d.ts
deleted file mode 100644
index d53a16cd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { DateTimeAlignment } from "./DateTimeAlignment"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { Time } from "./Time"
-import type { TimePrecision } from "./TimePrecision"
-import type { YearStyle } from "./YearStyle"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/type.FixedCalendarDateTimeFormatter.html) for more information.
-*/
-
-
-export class DateTimeFormatterGregorian {
-    
-    get ffiValue(): pointer;
-
-    static createDt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createDtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createMdt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createMdtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createYmdt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatterGregorian;
-
-    static createYmdtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatterGregorian;
-
-    static createDet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createDetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createMdet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createMdetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createYmdet(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatterGregorian;
-
-    static createYmdetWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null, yearStyle: YearStyle | null): DateTimeFormatterGregorian;
-
-    static createEt(locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    static createEtWithProvider(provider: DataProvider, locale: Locale, length: DateTimeLength | null, timePrecision: TimePrecision | null, alignment: DateTimeAlignment | null): DateTimeFormatterGregorian;
-
-    formatIso(date: IsoDate, time: Time): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.mjs
deleted file mode 100644
index 13f2cea..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterGregorian.mjs
+++ /dev/null
@@ -1,318 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { DateTimeAlignment } from "./DateTimeAlignment.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import { Time } from "./Time.mjs"
-import { TimePrecision } from "./TimePrecision.mjs"
-import { YearStyle } from "./YearStyle.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/type.FixedCalendarDateTimeFormatter.html) for more information.
-*/
-const DateTimeFormatterGregorian_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DateTimeFormatterGregorian_destroy_mv1(ptr);
-});
-
-export class DateTimeFormatterGregorian {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DateTimeFormatterGregorian is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DateTimeFormatterGregorian_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createDt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_dt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_dt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_mdt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_mdt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdt(locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_ymdt_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdtWithProvider(provider, locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_ymdt_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDet(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_det_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDetWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_det_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdet(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_mdet_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMdetWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_mdet_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdet(locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_ymdet_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createYmdetWithProvider(provider, locale, length, timePrecision, alignment, yearStyle) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_ymdet_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(yearStyle, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEt(locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_et_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEtWithProvider(provider, locale, length, timePrecision, alignment) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DateTimeFormatterGregorian_create_et_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(length, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(timePrecision, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(alignment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new DateTimeFormatterGregorian(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    formatIso(date, time) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_DateTimeFormatterGregorian_format_iso_mv1(this.ffiValue, date.ffiValue, time.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.d.ts
deleted file mode 100644
index e6468ce8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/datetime/enum.DateTimeFormatterLoadError.html), [2](https://docs.rs/icu/latest/icu/datetime/pattern/enum.PatternLoadError.html), [3](https://docs.rs/icu/latest/icu/provider/struct.DataError.html), [4](https://docs.rs/icu/latest/icu/provider/enum.DataErrorKind.html)
-*/
-
-
-export class DateTimeFormatterLoadError {
-    
-
-    static fromValue(value : DateTimeFormatterLoadError | string) : DateTimeFormatterLoadError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : DateTimeFormatterLoadError;
-    static UnsupportedLength : DateTimeFormatterLoadError;
-    static DuplicateField : DateTimeFormatterLoadError;
-    static TypeTooSpecific : DateTimeFormatterLoadError;
-    static DataMarkerNotFound : DateTimeFormatterLoadError;
-    static DataIdentifierNotFound : DateTimeFormatterLoadError;
-    static DataInvalidRequest : DateTimeFormatterLoadError;
-    static DataInconsistentData : DateTimeFormatterLoadError;
-    static DataDowncast : DateTimeFormatterLoadError;
-    static DataDeserialize : DateTimeFormatterLoadError;
-    static DataCustom : DateTimeFormatterLoadError;
-    static DataIo : DateTimeFormatterLoadError;
-
-    constructor(value: DateTimeFormatterLoadError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.mjs
deleted file mode 100644
index d19e70f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeFormatterLoadError.mjs
+++ /dev/null
@@ -1,104 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/datetime/enum.DateTimeFormatterLoadError.html), [2](https://docs.rs/icu/latest/icu/datetime/pattern/enum.PatternLoadError.html), [3](https://docs.rs/icu/latest/icu/provider/struct.DataError.html), [4](https://docs.rs/icu/latest/icu/provider/enum.DataErrorKind.html)
-*/
-
-
-export class DateTimeFormatterLoadError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["UnsupportedLength", 2051],
-        ["DuplicateField", 2057],
-        ["TypeTooSpecific", 2058],
-        ["DataMarkerNotFound", 1],
-        ["DataIdentifierNotFound", 2],
-        ["DataInvalidRequest", 3],
-        ["DataInconsistentData", 4],
-        ["DataDowncast", 5],
-        ["DataDeserialize", 6],
-        ["DataCustom", 7],
-        ["DataIo", 8]
-    ]);
-
-    static getAllEntries() {
-        return DateTimeFormatterLoadError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DateTimeFormatterLoadError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DateTimeFormatterLoadError) {
-            return value;
-        }
-
-        let intVal = DateTimeFormatterLoadError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DateTimeFormatterLoadError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DateTimeFormatterLoadError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DateTimeFormatterLoadError(value);
-    }
-
-    get value() {
-        for (let entry of DateTimeFormatterLoadError.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [0]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        [2051]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2051),
-        [2057]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2057),
-        [2058]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2058),
-        [1]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [2]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        [3]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        [4]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        [5]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        [6]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        [7]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        [8]: new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-    };
-
-    static Unknown = DateTimeFormatterLoadError.#objectValues[0];
-    static UnsupportedLength = DateTimeFormatterLoadError.#objectValues[2051];
-    static DuplicateField = DateTimeFormatterLoadError.#objectValues[2057];
-    static TypeTooSpecific = DateTimeFormatterLoadError.#objectValues[2058];
-    static DataMarkerNotFound = DateTimeFormatterLoadError.#objectValues[1];
-    static DataIdentifierNotFound = DateTimeFormatterLoadError.#objectValues[2];
-    static DataInvalidRequest = DateTimeFormatterLoadError.#objectValues[3];
-    static DataInconsistentData = DateTimeFormatterLoadError.#objectValues[4];
-    static DataDowncast = DateTimeFormatterLoadError.#objectValues[5];
-    static DataDeserialize = DateTimeFormatterLoadError.#objectValues[6];
-    static DataCustom = DateTimeFormatterLoadError.#objectValues[7];
-    static DataIo = DateTimeFormatterLoadError.#objectValues[8];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.d.ts
deleted file mode 100644
index 27533da..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Length`](https://docs.rs/icu/latest/icu/datetime/enum.Length.html) for more information.
-*/
-
-
-export class DateTimeLength {
-    
-
-    static fromValue(value : DateTimeLength | string) : DateTimeLength; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Long : DateTimeLength;
-    static Medium : DateTimeLength;
-    static Short : DateTimeLength;
-
-    constructor(value: DateTimeLength | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.mjs
deleted file mode 100644
index ad13c16..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeLength.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Length`](https://docs.rs/icu/latest/icu/datetime/enum.Length.html) for more information.
-*/
-
-
-export class DateTimeLength {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Long", 0],
-        ["Medium", 1],
-        ["Short", 2]
-    ]);
-
-    static getAllEntries() {
-        return DateTimeLength.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DateTimeLength.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DateTimeLength) {
-            return value;
-        }
-
-        let intVal = DateTimeLength.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DateTimeLength.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DateTimeLength and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DateTimeLength(value);
-    }
-
-    get value() {
-        return [...DateTimeLength.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DateTimeLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DateTimeLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new DateTimeLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Long = DateTimeLength.#objectValues[0];
-    static Medium = DateTimeLength.#objectValues[1];
-    static Short = DateTimeLength.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.d.ts
deleted file mode 100644
index 6b5a5f0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { AnyCalendarKind } from "./AnyCalendarKind"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `MismatchedCalendarError`](https://docs.rs/icu/latest/icu/datetime/struct.MismatchedCalendarError.html) for more information.
-*/
-type DateTimeMismatchedCalendarError_obj = {
-    thisKind: AnyCalendarKind;
-    dateKind?: AnyCalendarKind | null;
-};
-
-
-
-export class DateTimeMismatchedCalendarError {
-    
-    get thisKind() : AnyCalendarKind; 
-    set thisKind(value: AnyCalendarKind); 
-    
-    get dateKind() : AnyCalendarKind | null; 
-    set dateKind(value: AnyCalendarKind | null); 
-    
-    /** Create `DateTimeMismatchedCalendarError` from an object that contains all of `DateTimeMismatchedCalendarError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : DateTimeMismatchedCalendarError_obj) : DateTimeMismatchedCalendarError;
-
-
-    constructor(structObj : DateTimeMismatchedCalendarError_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.mjs
deleted file mode 100644
index 7bb5e1d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DateTimeMismatchedCalendarError.mjs
+++ /dev/null
@@ -1,111 +0,0 @@
-// generated by diplomat-tool
-import { AnyCalendarKind } from "./AnyCalendarKind.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `MismatchedCalendarError`](https://docs.rs/icu/latest/icu/datetime/struct.MismatchedCalendarError.html) for more information.
-*/
-
-
-export class DateTimeMismatchedCalendarError {
-    
-    #thisKind;
-    
-    get thisKind()  {
-        return this.#thisKind;
-    } 
-    set thisKind(value) {
-        this.#thisKind = value;
-    }
-    
-    #dateKind;
-    
-    get dateKind()  {
-        return this.#dateKind;
-    } 
-    set dateKind(value) {
-        this.#dateKind = value;
-    }
-    
-    /** Create `DateTimeMismatchedCalendarError` from an object that contains all of `DateTimeMismatchedCalendarError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new DateTimeMismatchedCalendarError(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("DateTimeMismatchedCalendarError's constructor takes an object of DateTimeMismatchedCalendarError's fields.");
-        }
-
-        if ("thisKind" in structObj) {
-            this.#thisKind = structObj.thisKind;
-        } else {
-            throw new Error("Missing required field thisKind.");
-        }
-
-        if ("dateKind" in structObj) {
-            this.#dateKind = structObj.dateKind;
-        } else {
-            this.#dateKind = null;
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#thisKind.ffiValue, ...diplomatRuntime.optionToArgsForCalling(this.#dateKind, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)])]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof DateTimeMismatchedCalendarError) {
-            return obj;
-        }
-
-        return DateTimeMismatchedCalendarError.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#thisKind.ffiValue, Int32Array);
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 4, this.#dateKind, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("DateTimeMismatchedCalendarError._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const thisKindDeref = diplomatRuntime.enumDiscriminant(wasm, ptr);
-        structObj.thisKind = new AnyCalendarKind(diplomatRuntime.internalConstructor, thisKindDeref);
-        const dateKindDeref = ptr + 4;
-        structObj.dateKind = diplomatRuntime.readOption(wasm, dateKindDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new AnyCalendarKind(diplomatRuntime.internalConstructor, deref) });
-
-        return new DateTimeMismatchedCalendarError(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.d.ts
deleted file mode 100644
index 9552129..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.d.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-// generated by diplomat-tool
-import type { FixedDecimalLimitError } from "./FixedDecimalLimitError"
-import type { FixedDecimalParseError } from "./FixedDecimalParseError"
-import type { FixedDecimalRoundingIncrement } from "./FixedDecimalRoundingIncrement"
-import type { FixedDecimalSign } from "./FixedDecimalSign"
-import type { FixedDecimalSignDisplay } from "./FixedDecimalSignDisplay"
-import type { FixedDecimalSignedRoundingMode } from "./FixedDecimalSignedRoundingMode"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `FixedDecimal`](https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html) for more information.
-*/
-
-
-export class Decimal {
-    
-    get ffiValue(): pointer;
-
-    static fromNumber(v: number): Decimal;
-
-    static fromBigInt(v: bigint): Decimal;
-
-    static fromNumberWithLowerMagnitude(f: number, magnitude: number): Decimal;
-
-    static fromNumberWithSignificantDigits(f: number, digits: number): Decimal;
-
-    static fromNumberWithRoundTripPrecision(f: number): Decimal;
-
-    static fromString(v: string): Decimal;
-
-    digitAt(magnitude: number): number;
-
-    get magnitudeStart(): number;
-
-    get magnitudeEnd(): number;
-
-    get nonzeroMagnitudeStart(): number;
-
-    get nonzeroMagnitudeEnd(): number;
-
-    get isZero(): boolean;
-
-    multiplyPow10(power: number): void;
-
-    get sign(): FixedDecimalSign;
-
-    set sign(sign: FixedDecimalSign);
-
-    applySignDisplay(signDisplay: FixedDecimalSignDisplay): void;
-
-    trimStart(): void;
-
-    trimEnd(): void;
-
-    trimEndIfInteger(): void;
-
-    padStart(position: number): void;
-
-    padEnd(position: number): void;
-
-    setMaxPosition(position: number): void;
-
-    round(position: number): void;
-
-    ceil(position: number): void;
-
-    expand(position: number): void;
-
-    floor(position: number): void;
-
-    trunc(position: number): void;
-
-    roundWithMode(position: number, mode: FixedDecimalSignedRoundingMode): void;
-
-    roundWithModeAndIncrement(position: number, mode: FixedDecimalSignedRoundingMode, increment: FixedDecimalRoundingIncrement): void;
-
-    concatenateEnd(other: Decimal): boolean;
-
-    toString(): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.mjs
deleted file mode 100644
index 248fc6fc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decimal.mjs
+++ /dev/null
@@ -1,353 +0,0 @@
-// generated by diplomat-tool
-import { FixedDecimalLimitError } from "./FixedDecimalLimitError.mjs"
-import { FixedDecimalParseError } from "./FixedDecimalParseError.mjs"
-import { FixedDecimalRoundingIncrement } from "./FixedDecimalRoundingIncrement.mjs"
-import { FixedDecimalSign } from "./FixedDecimalSign.mjs"
-import { FixedDecimalSignDisplay } from "./FixedDecimalSignDisplay.mjs"
-import { FixedDecimalSignedRoundingMode } from "./FixedDecimalSignedRoundingMode.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `FixedDecimal`](https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html) for more information.
-*/
-const Decimal_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Decimal_destroy_mv1(ptr);
-});
-
-export class Decimal {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Decimal is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Decimal_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static fromNumber(v) {
-        const result = wasm.icu4x_Decimal_from_int32_mv1(v);
-    
-        try {
-            return new Decimal(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static fromBigInt(v) {
-        const result = wasm.icu4x_Decimal_from_int64_mv1(v);
-    
-        try {
-            return new Decimal(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static fromNumberWithLowerMagnitude(f, magnitude) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Decimal_from_double_with_lower_magnitude_mv1(diplomatReceive.buffer, f, magnitude);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = FixedDecimalLimitError.fromFields({}, diplomatRuntime.internalConstructor);
-                throw new globalThis.Error('FixedDecimalLimitError', { cause });
-            }
-            return new Decimal(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromNumberWithSignificantDigits(f, digits) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Decimal_from_double_with_significant_digits_mv1(diplomatReceive.buffer, f, digits);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = FixedDecimalLimitError.fromFields({}, diplomatRuntime.internalConstructor);
-                throw new globalThis.Error('FixedDecimalLimitError', { cause });
-            }
-            return new Decimal(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromNumberWithRoundTripPrecision(f) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Decimal_from_double_with_round_trip_precision_mv1(diplomatReceive.buffer, f);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = FixedDecimalLimitError.fromFields({}, diplomatRuntime.internalConstructor);
-                throw new globalThis.Error('FixedDecimalLimitError', { cause });
-            }
-            return new Decimal(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromString(v) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Decimal_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new FixedDecimalParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('FixedDecimalParseError: ' + cause.value, { cause });
-            }
-            return new Decimal(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    digitAt(magnitude) {
-        const result = wasm.icu4x_Decimal_digit_at_mv1(this.ffiValue, magnitude);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get magnitudeStart() {
-        const result = wasm.icu4x_Decimal_magnitude_start_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get magnitudeEnd() {
-        const result = wasm.icu4x_Decimal_magnitude_end_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get nonzeroMagnitudeStart() {
-        const result = wasm.icu4x_Decimal_nonzero_magnitude_start_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get nonzeroMagnitudeEnd() {
-        const result = wasm.icu4x_Decimal_nonzero_magnitude_end_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get isZero() {
-        const result = wasm.icu4x_Decimal_is_zero_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    multiplyPow10(power) {wasm.icu4x_Decimal_multiply_pow10_mv1(this.ffiValue, power);
-    
-        try {}
-        
-        finally {}
-    }
-
-    get sign() {
-        const result = wasm.icu4x_Decimal_sign_mv1(this.ffiValue);
-    
-        try {
-            return new FixedDecimalSign(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    set sign(sign) {wasm.icu4x_Decimal_set_sign_mv1(this.ffiValue, sign.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    applySignDisplay(signDisplay) {wasm.icu4x_Decimal_apply_sign_display_mv1(this.ffiValue, signDisplay.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    trimStart() {wasm.icu4x_Decimal_trim_start_mv1(this.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    trimEnd() {wasm.icu4x_Decimal_trim_end_mv1(this.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    trimEndIfInteger() {wasm.icu4x_Decimal_trim_end_if_integer_mv1(this.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    padStart(position) {wasm.icu4x_Decimal_pad_start_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    padEnd(position) {wasm.icu4x_Decimal_pad_end_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    setMaxPosition(position) {wasm.icu4x_Decimal_set_max_position_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    round(position) {wasm.icu4x_Decimal_round_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    ceil(position) {wasm.icu4x_Decimal_ceil_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    expand(position) {wasm.icu4x_Decimal_expand_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    floor(position) {wasm.icu4x_Decimal_floor_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    trunc(position) {wasm.icu4x_Decimal_trunc_mv1(this.ffiValue, position);
-    
-        try {}
-        
-        finally {}
-    }
-
-    roundWithMode(position, mode) {wasm.icu4x_Decimal_round_with_mode_mv1(this.ffiValue, position, mode.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    roundWithModeAndIncrement(position, mode, increment) {wasm.icu4x_Decimal_round_with_mode_and_increment_mv1(this.ffiValue, position, mode.ffiValue, increment.ffiValue);
-    
-        try {}
-        
-        finally {}
-    }
-
-    concatenateEnd(other) {
-        const result = wasm.icu4x_Decimal_concatenate_end_mv1(this.ffiValue, other.ffiValue);
-    
-        try {
-            return result === 1;
-        }
-        
-        finally {}
-    }
-
-    toString() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Decimal_to_string_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.d.ts
deleted file mode 100644
index ff5ff0a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Decimal } from "./Decimal"
-import type { DecimalGroupingStrategy } from "./DecimalGroupingStrategy"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Decimal Format object, capable of formatting a [`Decimal`] as a string.
-*
-*See the [Rust documentation for `DecimalFormatter`](https://docs.rs/icu/latest/icu/decimal/struct.DecimalFormatter.html) for more information.
-*/
-
-
-export class DecimalFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithGroupingStrategy(locale: Locale, groupingStrategy: DecimalGroupingStrategy | null): DecimalFormatter;
-
-    static createWithGroupingStrategyAndProvider(provider: DataProvider, locale: Locale, groupingStrategy: DecimalGroupingStrategy | null): DecimalFormatter;
-
-    static createWithManualData(plusSignPrefix: string, plusSignSuffix: string, minusSignPrefix: string, minusSignSuffix: string, decimalSeparator: string, groupingSeparator: string, primaryGroupSize: number, secondaryGroupSize: number, minGroupSize: number, digits: Array<codepoint>, groupingStrategy: DecimalGroupingStrategy | null): DecimalFormatter;
-
-    format(value: Decimal): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.mjs
deleted file mode 100644
index 05bf951..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalFormatter.mjs
+++ /dev/null
@@ -1,136 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Decimal } from "./Decimal.mjs"
-import { DecimalGroupingStrategy } from "./DecimalGroupingStrategy.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Decimal Format object, capable of formatting a [`Decimal`] as a string.
-*
-*See the [Rust documentation for `DecimalFormatter`](https://docs.rs/icu/latest/icu/decimal/struct.DecimalFormatter.html) for more information.
-*/
-const DecimalFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DecimalFormatter_destroy_mv1(ptr);
-});
-
-export class DecimalFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DecimalFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DecimalFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithGroupingStrategy(locale, groupingStrategy) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(diplomatReceive.buffer, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(groupingStrategy, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new DecimalFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithGroupingStrategyAndProvider(provider, locale, groupingStrategy) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...diplomatRuntime.optionToArgsForCalling(groupingStrategy, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new DecimalFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithManualData(plusSignPrefix, plusSignSuffix, minusSignPrefix, minusSignSuffix, decimalSeparator, groupingSeparator, primaryGroupSize, secondaryGroupSize, minGroupSize, digits, groupingStrategy) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const plusSignPrefixSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, plusSignPrefix));
-        
-        const plusSignSuffixSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, plusSignSuffix));
-        
-        const minusSignPrefixSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, minusSignPrefix));
-        
-        const minusSignSuffixSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, minusSignSuffix));
-        
-        const decimalSeparatorSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, decimalSeparator));
-        
-        const groupingSeparatorSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, groupingSeparator));
-        
-        const digitsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.slice(wasm, digits, "u16"));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DecimalFormatter_create_with_manual_data_mv1(diplomatReceive.buffer, ...plusSignPrefixSlice.splat(), ...plusSignSuffixSlice.splat(), ...minusSignPrefixSlice.splat(), ...minusSignSuffixSlice.splat(), ...decimalSeparatorSlice.splat(), ...groupingSeparatorSlice.splat(), primaryGroupSize, secondaryGroupSize, minGroupSize, ...digitsSlice.splat(), ...diplomatRuntime.optionToArgsForCalling(groupingStrategy, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new DecimalFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    format(value) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_DecimalFormatter_format_mv1(this.ffiValue, value.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.d.ts
deleted file mode 100644
index fae2b69..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GroupingStrategy`](https://docs.rs/icu/latest/icu/decimal/options/enum.GroupingStrategy.html) for more information.
-*/
-
-
-export class DecimalGroupingStrategy {
-    
-
-    static fromValue(value : DecimalGroupingStrategy | string) : DecimalGroupingStrategy; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Auto : DecimalGroupingStrategy;
-    static Never : DecimalGroupingStrategy;
-    static Always : DecimalGroupingStrategy;
-    static Min2 : DecimalGroupingStrategy;
-
-    constructor(value: DecimalGroupingStrategy | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.mjs
deleted file mode 100644
index 27ab5d87..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecimalGroupingStrategy.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GroupingStrategy`](https://docs.rs/icu/latest/icu/decimal/options/enum.GroupingStrategy.html) for more information.
-*/
-
-
-export class DecimalGroupingStrategy {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Auto", 0],
-        ["Never", 1],
-        ["Always", 2],
-        ["Min2", 3]
-    ]);
-
-    static getAllEntries() {
-        return DecimalGroupingStrategy.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DecimalGroupingStrategy.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DecimalGroupingStrategy) {
-            return value;
-        }
-
-        let intVal = DecimalGroupingStrategy.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DecimalGroupingStrategy.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DecimalGroupingStrategy and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DecimalGroupingStrategy(value);
-    }
-
-    get value() {
-        return [...DecimalGroupingStrategy.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DecimalGroupingStrategy(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DecimalGroupingStrategy(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new DecimalGroupingStrategy(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new DecimalGroupingStrategy(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Auto = DecimalGroupingStrategy.#objectValues[0];
-    static Never = DecimalGroupingStrategy.#objectValues[1];
-    static Always = DecimalGroupingStrategy.#objectValues[2];
-    static Min2 = DecimalGroupingStrategy.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.d.ts
deleted file mode 100644
index f60ac64..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** The outcome of non-recursive canonical decomposition of a character.
-*`second` will be NUL when the decomposition expands to a single character
-*(which may or may not be the original one)
-*
-*See the [Rust documentation for `Decomposed`](https://docs.rs/icu/latest/icu/normalizer/properties/enum.Decomposed.html) for more information.
-*/
-
-
-export class Decomposed {
-    
-    get first() : codepoint;
-    
-    get second() : codepoint;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.mjs
deleted file mode 100644
index 3939023..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Decomposed.mjs
+++ /dev/null
@@ -1,104 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** The outcome of non-recursive canonical decomposition of a character.
-*`second` will be NUL when the decomposition expands to a single character
-*(which may or may not be the original one)
-*
-*See the [Rust documentation for `Decomposed`](https://docs.rs/icu/latest/icu/normalizer/properties/enum.Decomposed.html) for more information.
-*/
-
-
-export class Decomposed {
-    
-    #first;
-    
-    get first()  {
-        return this.#first;
-    }
-    
-    #second;
-    
-    get second()  {
-        return this.#second;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("Decomposed's constructor takes an object of Decomposed's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("Decomposed is an out struct and can only be created internally.");
-        }
-        if ("first" in structObj) {
-            this.#first = structObj.first;
-        } else {
-            throw new Error("Missing required field first.");
-        }
-
-        if ("second" in structObj) {
-            this.#second = structObj.second;
-        } else {
-            throw new Error("Missing required field second.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#first, this.#second]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof Decomposed) {
-            return obj;
-        }
-
-        return Decomposed.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#first, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#second, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("Decomposed._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const firstDeref = (new Uint32Array(wasm.memory.buffer, ptr, 1))[0];
-        structObj.first = firstDeref;
-        const secondDeref = (new Uint32Array(wasm.memory.buffer, ptr + 4, 1))[0];
-        structObj.second = secondDeref;
-
-        return new Decomposed(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.d.ts
deleted file mode 100644
index f5c94f4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `DecomposingNormalizer`](https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html) for more information.
-*/
-
-
-export class DecomposingNormalizer {
-    
-    get ffiValue(): pointer;
-
-    static createNfd(): DecomposingNormalizer;
-
-    static createNfdWithProvider(provider: DataProvider): DecomposingNormalizer;
-
-    static createNfkd(): DecomposingNormalizer;
-
-    static createNfkdWithProvider(provider: DataProvider): DecomposingNormalizer;
-
-    normalize(s: string): string;
-
-    isNormalized(s: string): boolean;
-
-    isNormalizedUtf16(s: string): boolean;
-
-    isNormalizedUpTo(s: string): number;
-
-    isNormalizedUtf16UpTo(s: string): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.mjs
deleted file mode 100644
index 92e807bd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DecomposingNormalizer.mjs
+++ /dev/null
@@ -1,185 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `DecomposingNormalizer`](https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html) for more information.
-*/
-const DecomposingNormalizer_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_DecomposingNormalizer_destroy_mv1(ptr);
-});
-
-export class DecomposingNormalizer {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("DecomposingNormalizer is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            DecomposingNormalizer_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createNfd() {
-        const result = wasm.icu4x_DecomposingNormalizer_create_nfd_mv1();
-    
-        try {
-            return new DecomposingNormalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfdWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DecomposingNormalizer_create_nfd_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new DecomposingNormalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createNfkd() {
-        const result = wasm.icu4x_DecomposingNormalizer_create_nfkd_mv1();
-    
-        try {
-            return new DecomposingNormalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createNfkdWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_DecomposingNormalizer_create_nfkd_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new DecomposingNormalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    normalize(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_DecomposingNormalizer_normalize_mv1(this.ffiValue, ...sSlice.splat(), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    isNormalized(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const result = wasm.icu4x_DecomposingNormalizer_is_normalized_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    isNormalizedUtf16(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, s));
-        
-        const result = wasm.icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    isNormalizedUpTo(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const result = wasm.icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    isNormalizedUtf16UpTo(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, s));
-        
-        const result = wasm.icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.d.ts
deleted file mode 100644
index ad65e3a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Fallback`](https://docs.rs/icu/latest/icu/displaynames/options/enum.Fallback.html) for more information.
-*/
-
-
-export class DisplayNamesFallback {
-    
-
-    static fromValue(value : DisplayNamesFallback | string) : DisplayNamesFallback; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Code : DisplayNamesFallback;
-    static None : DisplayNamesFallback;
-
-    constructor(value: DisplayNamesFallback | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.mjs
deleted file mode 100644
index 14d8693..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesFallback.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Fallback`](https://docs.rs/icu/latest/icu/displaynames/options/enum.Fallback.html) for more information.
-*/
-
-
-export class DisplayNamesFallback {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Code", 0],
-        ["None", 1]
-    ]);
-
-    static getAllEntries() {
-        return DisplayNamesFallback.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DisplayNamesFallback.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DisplayNamesFallback) {
-            return value;
-        }
-
-        let intVal = DisplayNamesFallback.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DisplayNamesFallback.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DisplayNamesFallback and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DisplayNamesFallback(value);
-    }
-
-    get value() {
-        return [...DisplayNamesFallback.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DisplayNamesFallback(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DisplayNamesFallback(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Code = DisplayNamesFallback.#objectValues[0];
-    static None = DisplayNamesFallback.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.d.ts
deleted file mode 100644
index 6b1a758..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { DisplayNamesFallback } from "./DisplayNamesFallback"
-import type { DisplayNamesStyle } from "./DisplayNamesStyle"
-import type { LanguageDisplay } from "./LanguageDisplay"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `DisplayNamesOptions`](https://docs.rs/icu/latest/icu/displaynames/options/struct.DisplayNamesOptions.html) for more information.
-*/
-type DisplayNamesOptions_obj = {
-    style?: DisplayNamesStyle | null;
-    fallback?: DisplayNamesFallback | null;
-    languageDisplay?: LanguageDisplay | null;
-};
-
-
-
-export class DisplayNamesOptions {
-    
-    get style() : DisplayNamesStyle | null; 
-    set style(value: DisplayNamesStyle | null); 
-    
-    get fallback() : DisplayNamesFallback | null; 
-    set fallback(value: DisplayNamesFallback | null); 
-    
-    get languageDisplay() : LanguageDisplay | null; 
-    set languageDisplay(value: LanguageDisplay | null); 
-    
-    /** Create `DisplayNamesOptions` from an object that contains all of `DisplayNamesOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : DisplayNamesOptions_obj) : DisplayNamesOptions;
-
-
-    constructor(structObj : DisplayNamesOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.mjs
deleted file mode 100644
index 1b1bafa5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesOptions.mjs
+++ /dev/null
@@ -1,131 +0,0 @@
-// generated by diplomat-tool
-import { DisplayNamesFallback } from "./DisplayNamesFallback.mjs"
-import { DisplayNamesStyle } from "./DisplayNamesStyle.mjs"
-import { LanguageDisplay } from "./LanguageDisplay.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `DisplayNamesOptions`](https://docs.rs/icu/latest/icu/displaynames/options/struct.DisplayNamesOptions.html) for more information.
-*/
-
-
-export class DisplayNamesOptions {
-    
-    #style;
-    
-    get style()  {
-        return this.#style;
-    } 
-    set style(value) {
-        this.#style = value;
-    }
-    
-    #fallback;
-    
-    get fallback()  {
-        return this.#fallback;
-    } 
-    set fallback(value) {
-        this.#fallback = value;
-    }
-    
-    #languageDisplay;
-    
-    get languageDisplay()  {
-        return this.#languageDisplay;
-    } 
-    set languageDisplay(value) {
-        this.#languageDisplay = value;
-    }
-    
-    /** Create `DisplayNamesOptions` from an object that contains all of `DisplayNamesOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new DisplayNamesOptions(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("DisplayNamesOptions's constructor takes an object of DisplayNamesOptions's fields.");
-        }
-
-        if ("style" in structObj) {
-            this.#style = structObj.style;
-        } else {
-            this.#style = null;
-        }
-
-        if ("fallback" in structObj) {
-            this.#fallback = structObj.fallback;
-        } else {
-            this.#fallback = null;
-        }
-
-        if ("languageDisplay" in structObj) {
-            this.#languageDisplay = structObj.languageDisplay;
-        } else {
-            this.#languageDisplay = null;
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [...diplomatRuntime.optionToArgsForCalling(this.#style, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#fallback, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#languageDisplay, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)])]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof DisplayNamesOptions) {
-            return obj;
-        }
-
-        return DisplayNamesOptions.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 0, this.#style, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 8, this.#fallback, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 16, this.#languageDisplay, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("DisplayNamesOptions._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const styleDeref = ptr;
-        structObj.style = diplomatRuntime.readOption(wasm, styleDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new DisplayNamesStyle(diplomatRuntime.internalConstructor, deref) });
-        const fallbackDeref = ptr + 8;
-        structObj.fallback = diplomatRuntime.readOption(wasm, fallbackDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new DisplayNamesFallback(diplomatRuntime.internalConstructor, deref) });
-        const languageDisplayDeref = ptr + 16;
-        structObj.languageDisplay = diplomatRuntime.readOption(wasm, languageDisplayDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new LanguageDisplay(diplomatRuntime.internalConstructor, deref) });
-
-        return new DisplayNamesOptions(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.d.ts
deleted file mode 100644
index 3323a65..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Style`](https://docs.rs/icu/latest/icu/displaynames/options/enum.Style.html) for more information.
-*/
-
-
-export class DisplayNamesStyle {
-    
-
-    static fromValue(value : DisplayNamesStyle | string) : DisplayNamesStyle; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Narrow : DisplayNamesStyle;
-    static Short : DisplayNamesStyle;
-    static Long : DisplayNamesStyle;
-    static Menu : DisplayNamesStyle;
-
-    constructor(value: DisplayNamesStyle | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.mjs
deleted file mode 100644
index 712dddda..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/DisplayNamesStyle.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Style`](https://docs.rs/icu/latest/icu/displaynames/options/enum.Style.html) for more information.
-*/
-
-
-export class DisplayNamesStyle {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Narrow", 0],
-        ["Short", 1],
-        ["Long", 2],
-        ["Menu", 3]
-    ]);
-
-    static getAllEntries() {
-        return DisplayNamesStyle.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return DisplayNamesStyle.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof DisplayNamesStyle) {
-            return value;
-        }
-
-        let intVal = DisplayNamesStyle.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return DisplayNamesStyle.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a DisplayNamesStyle and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new DisplayNamesStyle(value);
-    }
-
-    get value() {
-        return [...DisplayNamesStyle.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new DisplayNamesStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new DisplayNamesStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new DisplayNamesStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new DisplayNamesStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Narrow = DisplayNamesStyle.#objectValues[0];
-    static Short = DisplayNamesStyle.#objectValues[1];
-    static Long = DisplayNamesStyle.#objectValues[2];
-    static Menu = DisplayNamesStyle.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.d.ts
deleted file mode 100644
index d5d85bb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `EastAsianWidth`](https://docs.rs/icu/latest/icu/properties/props/struct.EastAsianWidth.html) for more information.
-*/
-
-
-export class EastAsianWidth {
-    
-
-    static fromValue(value : EastAsianWidth | string) : EastAsianWidth; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Neutral : EastAsianWidth;
-    static Ambiguous : EastAsianWidth;
-    static Halfwidth : EastAsianWidth;
-    static Fullwidth : EastAsianWidth;
-    static Narrow : EastAsianWidth;
-    static Wide : EastAsianWidth;
-
-    static forChar(ch: codepoint): EastAsianWidth;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): EastAsianWidth | null;
-
-    constructor(value: EastAsianWidth | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.mjs
deleted file mode 100644
index 7c1f0bf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EastAsianWidth.mjs
+++ /dev/null
@@ -1,153 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `EastAsianWidth`](https://docs.rs/icu/latest/icu/properties/props/struct.EastAsianWidth.html) for more information.
-*/
-
-
-export class EastAsianWidth {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Neutral", 0],
-        ["Ambiguous", 1],
-        ["Halfwidth", 2],
-        ["Fullwidth", 3],
-        ["Narrow", 4],
-        ["Wide", 5]
-    ]);
-
-    static getAllEntries() {
-        return EastAsianWidth.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return EastAsianWidth.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof EastAsianWidth) {
-            return value;
-        }
-
-        let intVal = EastAsianWidth.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return EastAsianWidth.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a EastAsianWidth and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new EastAsianWidth(value);
-    }
-
-    get value() {
-        return [...EastAsianWidth.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-    ];
-
-    static Neutral = EastAsianWidth.#objectValues[0];
-    static Ambiguous = EastAsianWidth.#objectValues[1];
-    static Halfwidth = EastAsianWidth.#objectValues[2];
-    static Fullwidth = EastAsianWidth.#objectValues[3];
-    static Narrow = EastAsianWidth.#objectValues[4];
-    static Wide = EastAsianWidth.#objectValues[5];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_EastAsianWidth_for_char_mv1(ch);
-    
-        try {
-            return new EastAsianWidth(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_EastAsianWidth_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_EastAsianWidth_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_EastAsianWidth_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_EastAsianWidth_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new EastAsianWidth(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.d.ts
deleted file mode 100644
index 857266b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `EmojiSetData`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetData.html) for more information.
-*
-*See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetData.html#method.new) for more information.
-*
-*See the [Rust documentation for `EmojiSetDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetDataBorrowed.html) for more information.
-*/
-
-
-export class EmojiSetData {
-    
-    get ffiValue(): pointer;
-
-    containsStr(s: string): boolean;
-
-    contains(cp: codepoint): boolean;
-
-    static createBasic(): EmojiSetData;
-
-    static createBasicWithProvider(provider: DataProvider): EmojiSetData;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.mjs
deleted file mode 100644
index ced37262..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/EmojiSetData.mjs
+++ /dev/null
@@ -1,108 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-*
-*See the [Rust documentation for `properties`](https://docs.rs/icu/latest/icu/properties/index.html) for more information.
-*
-*See the [Rust documentation for `EmojiSetData`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetData.html) for more information.
-*
-*See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetData.html#method.new) for more information.
-*
-*See the [Rust documentation for `EmojiSetDataBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.EmojiSetDataBorrowed.html) for more information.
-*/
-const EmojiSetData_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_EmojiSetData_destroy_mv1(ptr);
-});
-
-export class EmojiSetData {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("EmojiSetData is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            EmojiSetData_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    containsStr(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const result = wasm.icu4x_EmojiSetData_contains_str_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    contains(cp) {
-        const result = wasm.icu4x_EmojiSetData_contains_mv1(this.ffiValue, cp);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createBasic() {
-        const result = wasm.icu4x_EmojiSetData_create_basic_mv1();
-    
-        try {
-            return new EmojiSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBasicWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_EmojiSetData_create_basic_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new EmojiSetData(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.d.ts
deleted file mode 100644
index ea7754d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A set of "exemplar characters" for a given locale.
-*
-*See the [Rust documentation for `locale`](https://docs.rs/icu/latest/icu/locale/index.html) for more information.
-*
-*See the [Rust documentation for `ExemplarCharacters`](https://docs.rs/icu/latest/icu/locale/exemplar_chars/struct.ExemplarCharacters.html) for more information.
-*
-*See the [Rust documentation for `ExemplarCharactersBorrowed`](https://docs.rs/icu/latest/icu/locale/exemplar_chars/struct.ExemplarCharactersBorrowed.html) for more information.
-*/
-
-
-export class ExemplarCharacters {
-    
-    get ffiValue(): pointer;
-
-    containsStr(s: string): boolean;
-
-    contains(cp: codepoint): boolean;
-
-    static createMain(locale: Locale): ExemplarCharacters;
-
-    static createMainWithProvider(provider: DataProvider, locale: Locale): ExemplarCharacters;
-
-    static createAuxiliary(locale: Locale): ExemplarCharacters;
-
-    static createAuxiliaryWithProvider(provider: DataProvider, locale: Locale): ExemplarCharacters;
-
-    static createPunctuation(locale: Locale): ExemplarCharacters;
-
-    static createPunctuationWithProvider(provider: DataProvider, locale: Locale): ExemplarCharacters;
-
-    static createNumbers(locale: Locale): ExemplarCharacters;
-
-    static createNumbersWithProvider(provider: DataProvider, locale: Locale): ExemplarCharacters;
-
-    static createIndex(locale: Locale): ExemplarCharacters;
-
-    static createIndexWithProvider(provider: DataProvider, locale: Locale): ExemplarCharacters;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.mjs
deleted file mode 100644
index 30f4a5c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ExemplarCharacters.mjs
+++ /dev/null
@@ -1,259 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A set of "exemplar characters" for a given locale.
-*
-*See the [Rust documentation for `locale`](https://docs.rs/icu/latest/icu/locale/index.html) for more information.
-*
-*See the [Rust documentation for `ExemplarCharacters`](https://docs.rs/icu/latest/icu/locale/exemplar_chars/struct.ExemplarCharacters.html) for more information.
-*
-*See the [Rust documentation for `ExemplarCharactersBorrowed`](https://docs.rs/icu/latest/icu/locale/exemplar_chars/struct.ExemplarCharactersBorrowed.html) for more information.
-*/
-const ExemplarCharacters_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ExemplarCharacters_destroy_mv1(ptr);
-});
-
-export class ExemplarCharacters {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ExemplarCharacters is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ExemplarCharacters_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    containsStr(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const result = wasm.icu4x_ExemplarCharacters_contains_str_mv1(this.ffiValue, ...sSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    contains(cp) {
-        const result = wasm.icu4x_ExemplarCharacters_contains_mv1(this.ffiValue, cp);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static createMain(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_main_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createMainWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_main_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createAuxiliary(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_auxiliary_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createAuxiliaryWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_auxiliary_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createPunctuation(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_punctuation_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createPunctuationWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_punctuation_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createNumbers(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_numbers_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createNumbersWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_numbers_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createIndex(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_index_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createIndexWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ExemplarCharacters_create_index_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ExemplarCharacters(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.d.ts
deleted file mode 100644
index c9ee30d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.LimitError.html)
-*/
-type FixedDecimalLimitError_obj = {
-};
-
-
-
-export class FixedDecimalLimitError {
-    
-    /** Create `FixedDecimalLimitError` from an object that contains all of `FixedDecimalLimitError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : FixedDecimalLimitError_obj) : FixedDecimalLimitError;
-
-
-    constructor(structObj : FixedDecimalLimitError_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.mjs
deleted file mode 100644
index 49e4bb73..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalLimitError.mjs
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.LimitError.html)
-*/
-
-
-export class FixedDecimalLimitError {
-    
-    /** Create `FixedDecimalLimitError` from an object that contains all of `FixedDecimalLimitError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new FixedDecimalLimitError(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("FixedDecimalLimitError's constructor takes an object of FixedDecimalLimitError's fields.");
-        }
-
-        return this;
-    }
-
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.d.ts
deleted file mode 100644
index 75cc3486..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.ParseError.html)
-*/
-
-
-export class FixedDecimalParseError {
-    
-
-    static fromValue(value : FixedDecimalParseError | string) : FixedDecimalParseError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : FixedDecimalParseError;
-    static Limit : FixedDecimalParseError;
-    static Syntax : FixedDecimalParseError;
-
-    constructor(value: FixedDecimalParseError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.mjs
deleted file mode 100644
index 7bbd8358..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalParseError.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.ParseError.html)
-*/
-
-
-export class FixedDecimalParseError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["Limit", 1],
-        ["Syntax", 2]
-    ]);
-
-    static getAllEntries() {
-        return FixedDecimalParseError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return FixedDecimalParseError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof FixedDecimalParseError) {
-            return value;
-        }
-
-        let intVal = FixedDecimalParseError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return FixedDecimalParseError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a FixedDecimalParseError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new FixedDecimalParseError(value);
-    }
-
-    get value() {
-        return [...FixedDecimalParseError.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new FixedDecimalParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new FixedDecimalParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new FixedDecimalParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Unknown = FixedDecimalParseError.#objectValues[0];
-    static Limit = FixedDecimalParseError.#objectValues[1];
-    static Syntax = FixedDecimalParseError.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.d.ts
deleted file mode 100644
index c5c4a7d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Increment used in a rounding operation.
-*
-*See the [Rust documentation for `RoundingIncrement`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.RoundingIncrement.html) for more information.
-*/
-
-
-export class FixedDecimalRoundingIncrement {
-    
-
-    static fromValue(value : FixedDecimalRoundingIncrement | string) : FixedDecimalRoundingIncrement; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static MultiplesOf1 : FixedDecimalRoundingIncrement;
-    static MultiplesOf2 : FixedDecimalRoundingIncrement;
-    static MultiplesOf5 : FixedDecimalRoundingIncrement;
-    static MultiplesOf25 : FixedDecimalRoundingIncrement;
-
-    constructor(value: FixedDecimalRoundingIncrement | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.mjs
deleted file mode 100644
index 854f00e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalRoundingIncrement.mjs
+++ /dev/null
@@ -1,78 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Increment used in a rounding operation.
-*
-*See the [Rust documentation for `RoundingIncrement`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.RoundingIncrement.html) for more information.
-*/
-
-
-export class FixedDecimalRoundingIncrement {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["MultiplesOf1", 0],
-        ["MultiplesOf2", 1],
-        ["MultiplesOf5", 2],
-        ["MultiplesOf25", 3]
-    ]);
-
-    static getAllEntries() {
-        return FixedDecimalRoundingIncrement.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return FixedDecimalRoundingIncrement.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof FixedDecimalRoundingIncrement) {
-            return value;
-        }
-
-        let intVal = FixedDecimalRoundingIncrement.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return FixedDecimalRoundingIncrement.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a FixedDecimalRoundingIncrement and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new FixedDecimalRoundingIncrement(value);
-    }
-
-    get value() {
-        return [...FixedDecimalRoundingIncrement.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new FixedDecimalRoundingIncrement(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new FixedDecimalRoundingIncrement(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new FixedDecimalRoundingIncrement(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new FixedDecimalRoundingIncrement(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static MultiplesOf1 = FixedDecimalRoundingIncrement.#objectValues[0];
-    static MultiplesOf2 = FixedDecimalRoundingIncrement.#objectValues[1];
-    static MultiplesOf5 = FixedDecimalRoundingIncrement.#objectValues[2];
-    static MultiplesOf25 = FixedDecimalRoundingIncrement.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.d.ts
deleted file mode 100644
index 5614ef2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** The sign of a FixedDecimal, as shown in formatting.
-*
-*See the [Rust documentation for `Sign`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.Sign.html) for more information.
-*/
-
-
-export class FixedDecimalSign {
-    
-
-    static fromValue(value : FixedDecimalSign | string) : FixedDecimalSign; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static None : FixedDecimalSign;
-    static Negative : FixedDecimalSign;
-    static Positive : FixedDecimalSign;
-
-    constructor(value: FixedDecimalSign | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.mjs
deleted file mode 100644
index 8dd0637..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSign.mjs
+++ /dev/null
@@ -1,75 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** The sign of a FixedDecimal, as shown in formatting.
-*
-*See the [Rust documentation for `Sign`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.Sign.html) for more information.
-*/
-
-
-export class FixedDecimalSign {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["None", 0],
-        ["Negative", 1],
-        ["Positive", 2]
-    ]);
-
-    static getAllEntries() {
-        return FixedDecimalSign.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return FixedDecimalSign.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof FixedDecimalSign) {
-            return value;
-        }
-
-        let intVal = FixedDecimalSign.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return FixedDecimalSign.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a FixedDecimalSign and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new FixedDecimalSign(value);
-    }
-
-    get value() {
-        return [...FixedDecimalSign.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new FixedDecimalSign(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new FixedDecimalSign(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new FixedDecimalSign(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static None = FixedDecimalSign.#objectValues[0];
-    static Negative = FixedDecimalSign.#objectValues[1];
-    static Positive = FixedDecimalSign.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.d.ts
deleted file mode 100644
index f32f71e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** ECMA-402 compatible sign display preference.
-*
-*See the [Rust documentation for `SignDisplay`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignDisplay.html) for more information.
-*/
-
-
-export class FixedDecimalSignDisplay {
-    
-
-    static fromValue(value : FixedDecimalSignDisplay | string) : FixedDecimalSignDisplay; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Auto : FixedDecimalSignDisplay;
-    static Never : FixedDecimalSignDisplay;
-    static Always : FixedDecimalSignDisplay;
-    static ExceptZero : FixedDecimalSignDisplay;
-    static Negative : FixedDecimalSignDisplay;
-
-    constructor(value: FixedDecimalSignDisplay | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.mjs
deleted file mode 100644
index a0d3324..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignDisplay.mjs
+++ /dev/null
@@ -1,81 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** ECMA-402 compatible sign display preference.
-*
-*See the [Rust documentation for `SignDisplay`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignDisplay.html) for more information.
-*/
-
-
-export class FixedDecimalSignDisplay {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Auto", 0],
-        ["Never", 1],
-        ["Always", 2],
-        ["ExceptZero", 3],
-        ["Negative", 4]
-    ]);
-
-    static getAllEntries() {
-        return FixedDecimalSignDisplay.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return FixedDecimalSignDisplay.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof FixedDecimalSignDisplay) {
-            return value;
-        }
-
-        let intVal = FixedDecimalSignDisplay.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return FixedDecimalSignDisplay.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a FixedDecimalSignDisplay and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new FixedDecimalSignDisplay(value);
-    }
-
-    get value() {
-        return [...FixedDecimalSignDisplay.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new FixedDecimalSignDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new FixedDecimalSignDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new FixedDecimalSignDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new FixedDecimalSignDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new FixedDecimalSignDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-    ];
-
-    static Auto = FixedDecimalSignDisplay.#objectValues[0];
-    static Never = FixedDecimalSignDisplay.#objectValues[1];
-    static Always = FixedDecimalSignDisplay.#objectValues[2];
-    static ExceptZero = FixedDecimalSignDisplay.#objectValues[3];
-    static Negative = FixedDecimalSignDisplay.#objectValues[4];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.d.ts
deleted file mode 100644
index 3a3af1d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Mode used in a rounding operation for signed numbers.
-*
-*See the [Rust documentation for `SignedRoundingMode`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignedRoundingMode.html) for more information.
-*/
-
-
-export class FixedDecimalSignedRoundingMode {
-    
-
-    static fromValue(value : FixedDecimalSignedRoundingMode | string) : FixedDecimalSignedRoundingMode; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Expand : FixedDecimalSignedRoundingMode;
-    static Trunc : FixedDecimalSignedRoundingMode;
-    static HalfExpand : FixedDecimalSignedRoundingMode;
-    static HalfTrunc : FixedDecimalSignedRoundingMode;
-    static HalfEven : FixedDecimalSignedRoundingMode;
-    static Ceil : FixedDecimalSignedRoundingMode;
-    static Floor : FixedDecimalSignedRoundingMode;
-    static HalfCeil : FixedDecimalSignedRoundingMode;
-    static HalfFloor : FixedDecimalSignedRoundingMode;
-
-    constructor(value: FixedDecimalSignedRoundingMode | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.mjs
deleted file mode 100644
index d18f153..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/FixedDecimalSignedRoundingMode.mjs
+++ /dev/null
@@ -1,93 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Mode used in a rounding operation for signed numbers.
-*
-*See the [Rust documentation for `SignedRoundingMode`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignedRoundingMode.html) for more information.
-*/
-
-
-export class FixedDecimalSignedRoundingMode {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Expand", 0],
-        ["Trunc", 1],
-        ["HalfExpand", 2],
-        ["HalfTrunc", 3],
-        ["HalfEven", 4],
-        ["Ceil", 5],
-        ["Floor", 6],
-        ["HalfCeil", 7],
-        ["HalfFloor", 8]
-    ]);
-
-    static getAllEntries() {
-        return FixedDecimalSignedRoundingMode.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return FixedDecimalSignedRoundingMode.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof FixedDecimalSignedRoundingMode) {
-            return value;
-        }
-
-        let intVal = FixedDecimalSignedRoundingMode.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return FixedDecimalSignedRoundingMode.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a FixedDecimalSignedRoundingMode and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new FixedDecimalSignedRoundingMode(value);
-    }
-
-    get value() {
-        return [...FixedDecimalSignedRoundingMode.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new FixedDecimalSignedRoundingMode(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-    ];
-
-    static Expand = FixedDecimalSignedRoundingMode.#objectValues[0];
-    static Trunc = FixedDecimalSignedRoundingMode.#objectValues[1];
-    static HalfExpand = FixedDecimalSignedRoundingMode.#objectValues[2];
-    static HalfTrunc = FixedDecimalSignedRoundingMode.#objectValues[3];
-    static HalfEven = FixedDecimalSignedRoundingMode.#objectValues[4];
-    static Ceil = FixedDecimalSignedRoundingMode.#objectValues[5];
-    static Floor = FixedDecimalSignedRoundingMode.#objectValues[6];
-    static HalfCeil = FixedDecimalSignedRoundingMode.#objectValues[7];
-    static HalfFloor = FixedDecimalSignedRoundingMode.#objectValues[8];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.d.ts
deleted file mode 100644
index 8ce98736..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-// generated by diplomat-tool
-import type { GeneralCategoryGroup } from "./GeneralCategoryGroup"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GeneralCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategory.html) for more information.
-*/
-
-
-export class GeneralCategory {
-    
-
-    static fromValue(value : GeneralCategory | string) : GeneralCategory; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unassigned : GeneralCategory;
-    static UppercaseLetter : GeneralCategory;
-    static LowercaseLetter : GeneralCategory;
-    static TitlecaseLetter : GeneralCategory;
-    static ModifierLetter : GeneralCategory;
-    static OtherLetter : GeneralCategory;
-    static NonspacingMark : GeneralCategory;
-    static SpacingMark : GeneralCategory;
-    static EnclosingMark : GeneralCategory;
-    static DecimalNumber : GeneralCategory;
-    static LetterNumber : GeneralCategory;
-    static OtherNumber : GeneralCategory;
-    static SpaceSeparator : GeneralCategory;
-    static LineSeparator : GeneralCategory;
-    static ParagraphSeparator : GeneralCategory;
-    static Control : GeneralCategory;
-    static Format : GeneralCategory;
-    static PrivateUse : GeneralCategory;
-    static Surrogate : GeneralCategory;
-    static DashPunctuation : GeneralCategory;
-    static OpenPunctuation : GeneralCategory;
-    static ClosePunctuation : GeneralCategory;
-    static ConnectorPunctuation : GeneralCategory;
-    static InitialPunctuation : GeneralCategory;
-    static FinalPunctuation : GeneralCategory;
-    static OtherPunctuation : GeneralCategory;
-    static MathSymbol : GeneralCategory;
-    static CurrencySymbol : GeneralCategory;
-    static ModifierSymbol : GeneralCategory;
-    static OtherSymbol : GeneralCategory;
-
-    static forChar(ch: codepoint): GeneralCategory;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    toGroup(): GeneralCategoryGroup;
-
-    static fromIntegerValue(other: number): GeneralCategory | null;
-
-    constructor(value: GeneralCategory | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.mjs
deleted file mode 100644
index 588df140..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategory.mjs
+++ /dev/null
@@ -1,240 +0,0 @@
-// generated by diplomat-tool
-import { GeneralCategoryGroup } from "./GeneralCategoryGroup.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GeneralCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategory.html) for more information.
-*/
-
-
-export class GeneralCategory {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unassigned", 0],
-        ["UppercaseLetter", 1],
-        ["LowercaseLetter", 2],
-        ["TitlecaseLetter", 3],
-        ["ModifierLetter", 4],
-        ["OtherLetter", 5],
-        ["NonspacingMark", 6],
-        ["SpacingMark", 8],
-        ["EnclosingMark", 7],
-        ["DecimalNumber", 9],
-        ["LetterNumber", 10],
-        ["OtherNumber", 11],
-        ["SpaceSeparator", 12],
-        ["LineSeparator", 13],
-        ["ParagraphSeparator", 14],
-        ["Control", 15],
-        ["Format", 16],
-        ["PrivateUse", 17],
-        ["Surrogate", 18],
-        ["DashPunctuation", 19],
-        ["OpenPunctuation", 20],
-        ["ClosePunctuation", 21],
-        ["ConnectorPunctuation", 22],
-        ["InitialPunctuation", 28],
-        ["FinalPunctuation", 29],
-        ["OtherPunctuation", 23],
-        ["MathSymbol", 24],
-        ["CurrencySymbol", 25],
-        ["ModifierSymbol", 26],
-        ["OtherSymbol", 27]
-    ]);
-
-    static getAllEntries() {
-        return GeneralCategory.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return GeneralCategory.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof GeneralCategory) {
-            return value;
-        }
-
-        let intVal = GeneralCategory.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return GeneralCategory.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a GeneralCategory and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new GeneralCategory(value);
-    }
-
-    get value() {
-        for (let entry of GeneralCategory.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [0]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        [1]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [2]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        [3]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        [4]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        [5]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        [6]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        [8]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        [7]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        [9]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        [10]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        [11]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        [12]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        [13]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        [14]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        [15]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        [16]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        [17]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        [18]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        [19]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        [20]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        [21]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        [22]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-        [28]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
-        [29]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
-        [23]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
-        [24]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
-        [25]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
-        [26]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
-        [27]: new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
-    };
-
-    static Unassigned = GeneralCategory.#objectValues[0];
-    static UppercaseLetter = GeneralCategory.#objectValues[1];
-    static LowercaseLetter = GeneralCategory.#objectValues[2];
-    static TitlecaseLetter = GeneralCategory.#objectValues[3];
-    static ModifierLetter = GeneralCategory.#objectValues[4];
-    static OtherLetter = GeneralCategory.#objectValues[5];
-    static NonspacingMark = GeneralCategory.#objectValues[6];
-    static SpacingMark = GeneralCategory.#objectValues[8];
-    static EnclosingMark = GeneralCategory.#objectValues[7];
-    static DecimalNumber = GeneralCategory.#objectValues[9];
-    static LetterNumber = GeneralCategory.#objectValues[10];
-    static OtherNumber = GeneralCategory.#objectValues[11];
-    static SpaceSeparator = GeneralCategory.#objectValues[12];
-    static LineSeparator = GeneralCategory.#objectValues[13];
-    static ParagraphSeparator = GeneralCategory.#objectValues[14];
-    static Control = GeneralCategory.#objectValues[15];
-    static Format = GeneralCategory.#objectValues[16];
-    static PrivateUse = GeneralCategory.#objectValues[17];
-    static Surrogate = GeneralCategory.#objectValues[18];
-    static DashPunctuation = GeneralCategory.#objectValues[19];
-    static OpenPunctuation = GeneralCategory.#objectValues[20];
-    static ClosePunctuation = GeneralCategory.#objectValues[21];
-    static ConnectorPunctuation = GeneralCategory.#objectValues[22];
-    static InitialPunctuation = GeneralCategory.#objectValues[28];
-    static FinalPunctuation = GeneralCategory.#objectValues[29];
-    static OtherPunctuation = GeneralCategory.#objectValues[23];
-    static MathSymbol = GeneralCategory.#objectValues[24];
-    static CurrencySymbol = GeneralCategory.#objectValues[25];
-    static ModifierSymbol = GeneralCategory.#objectValues[26];
-    static OtherSymbol = GeneralCategory.#objectValues[27];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_GeneralCategory_for_char_mv1(ch);
-    
-        try {
-            return new GeneralCategory(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_GeneralCategory_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_GeneralCategory_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_GeneralCategory_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    toGroup() {
-        const result = wasm.icu4x_GeneralCategory_to_group_mv1(this.ffiValue);
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GeneralCategory_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new GeneralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.d.ts
deleted file mode 100644
index f761a0f1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.d.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-// generated by diplomat-tool
-import type { GeneralCategory } from "./GeneralCategory"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A mask that is capable of representing groups of `General_Category` values.
-*
-*See the [Rust documentation for `GeneralCategoryGroup`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategoryGroup.html) for more information.
-*/
-type GeneralCategoryGroup_obj = {
-    mask: number;
-};
-
-
-
-export class GeneralCategoryGroup {
-    
-    get mask() : number; 
-    set mask(value: number); 
-    
-    /** Create `GeneralCategoryGroup` from an object that contains all of `GeneralCategoryGroup`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : GeneralCategoryGroup_obj) : GeneralCategoryGroup;
-
-
-    contains(val: GeneralCategory): boolean;
-
-    complement(): GeneralCategoryGroup;
-
-    static all(): GeneralCategoryGroup;
-
-    static empty(): GeneralCategoryGroup;
-
-    union(other: GeneralCategoryGroup_obj): GeneralCategoryGroup;
-
-    intersection(other: GeneralCategoryGroup_obj): GeneralCategoryGroup;
-
-    static casedLetter(): GeneralCategoryGroup;
-
-    static letter(): GeneralCategoryGroup;
-
-    static mark(): GeneralCategoryGroup;
-
-    static number(): GeneralCategoryGroup;
-
-    static separator(): GeneralCategoryGroup;
-
-    static other(): GeneralCategoryGroup;
-
-    static punctuation(): GeneralCategoryGroup;
-
-    static symbol(): GeneralCategoryGroup;
-
-    constructor(structObj : GeneralCategoryGroup_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.mjs
deleted file mode 100644
index c8f90a39..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryGroup.mjs
+++ /dev/null
@@ -1,251 +0,0 @@
-// generated by diplomat-tool
-import { GeneralCategory } from "./GeneralCategory.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A mask that is capable of representing groups of `General_Category` values.
-*
-*See the [Rust documentation for `GeneralCategoryGroup`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategoryGroup.html) for more information.
-*/
-
-
-export class GeneralCategoryGroup {
-    
-    #mask;
-    
-    get mask()  {
-        return this.#mask;
-    } 
-    set mask(value) {
-        this.#mask = value;
-    }
-    
-    /** Create `GeneralCategoryGroup` from an object that contains all of `GeneralCategoryGroup`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new GeneralCategoryGroup(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("GeneralCategoryGroup's constructor takes an object of GeneralCategoryGroup's fields.");
-        }
-
-        if ("mask" in structObj) {
-            this.#mask = structObj.mask;
-        } else {
-            throw new Error("Missing required field mask.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#mask]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof GeneralCategoryGroup) {
-            return obj;
-        }
-
-        return GeneralCategoryGroup.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#mask, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, primitiveValue) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("GeneralCategoryGroup._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        structObj.mask = primitiveValue;
-        
-
-        return new GeneralCategoryGroup(structObj);
-    }
-
-    contains(val) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_GeneralCategoryGroup_contains_mv1(...this._intoFFI(), val.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    complement() {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_GeneralCategoryGroup_complement_mv1(...this._intoFFI());
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static all() {
-        const result = wasm.icu4x_GeneralCategoryGroup_all_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static empty() {
-        const result = wasm.icu4x_GeneralCategoryGroup_empty_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    union(other) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_GeneralCategoryGroup_union_mv1(...this._intoFFI(), ...GeneralCategoryGroup._fromSuppliedValue(diplomatRuntime.internalConstructor, other)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    intersection(other) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_GeneralCategoryGroup_intersection_mv1(...this._intoFFI(), ...GeneralCategoryGroup._fromSuppliedValue(diplomatRuntime.internalConstructor, other)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static casedLetter() {
-        const result = wasm.icu4x_GeneralCategoryGroup_cased_letter_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static letter() {
-        const result = wasm.icu4x_GeneralCategoryGroup_letter_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static mark() {
-        const result = wasm.icu4x_GeneralCategoryGroup_mark_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static number() {
-        const result = wasm.icu4x_GeneralCategoryGroup_number_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static separator() {
-        const result = wasm.icu4x_GeneralCategoryGroup_separator_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static other() {
-        const result = wasm.icu4x_GeneralCategoryGroup_other_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static punctuation() {
-        const result = wasm.icu4x_GeneralCategoryGroup_punctuation_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    static symbol() {
-        const result = wasm.icu4x_GeneralCategoryGroup_symbol_mv1();
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.d.ts
deleted file mode 100644
index 0dca085..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { GeneralCategoryGroup } from "./GeneralCategoryGroup"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A type capable of looking up General Category Group values from a string name.
-*
-*See the [Rust documentation for `PropertyParser`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html) for more information.
-*
-*See the [Rust documentation for `GeneralCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategory.html) for more information.
-*/
-
-
-export class GeneralCategoryNameToGroupMapper {
-    
-    get ffiValue(): pointer;
-
-    getStrict(name: string): GeneralCategoryGroup;
-
-    getLoose(name: string): GeneralCategoryGroup;
-
-    static createWithProvider(provider: DataProvider): GeneralCategoryNameToGroupMapper;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.mjs
deleted file mode 100644
index ebf2c8de3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GeneralCategoryNameToGroupMapper.mjs
+++ /dev/null
@@ -1,117 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { GeneralCategoryGroup } from "./GeneralCategoryGroup.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A type capable of looking up General Category Group values from a string name.
-*
-*See the [Rust documentation for `PropertyParser`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html) for more information.
-*
-*See the [Rust documentation for `GeneralCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.GeneralCategory.html) for more information.
-*/
-const GeneralCategoryNameToGroupMapper_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GeneralCategoryNameToGroupMapper_destroy_mv1(ptr);
-});
-
-export class GeneralCategoryNameToGroupMapper {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GeneralCategoryNameToGroupMapper is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GeneralCategoryNameToGroupMapper_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    getStrict(name) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, name));
-        
-        const result = wasm.icu4x_GeneralCategoryNameToGroupMapper_get_strict_mv1(this.ffiValue, ...nameSlice.splat());
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    getLoose(name) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, name));
-        
-        const result = wasm.icu4x_GeneralCategoryNameToGroupMapper_get_loose_mv1(this.ffiValue, ...nameSlice.splat());
-    
-        try {
-            return GeneralCategoryGroup._fromFFI(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_GeneralCategoryNameToGroupMapper_create_mv1();
-    
-        try {
-            return new GeneralCategoryNameToGroupMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GeneralCategoryNameToGroupMapper_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new GeneralCategoryNameToGroupMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.d.ts
deleted file mode 100644
index 3852d2e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.GraphemeClusterBreak.html) for more information.
-*/
-
-
-export class GraphemeClusterBreak {
-    
-
-    static fromValue(value : GraphemeClusterBreak | string) : GraphemeClusterBreak; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Other : GraphemeClusterBreak;
-    static Control : GraphemeClusterBreak;
-    static Cr : GraphemeClusterBreak;
-    static Extend : GraphemeClusterBreak;
-    static L : GraphemeClusterBreak;
-    static Lf : GraphemeClusterBreak;
-    static Lv : GraphemeClusterBreak;
-    static Lvt : GraphemeClusterBreak;
-    static T : GraphemeClusterBreak;
-    static V : GraphemeClusterBreak;
-    static SpacingMark : GraphemeClusterBreak;
-    static Prepend : GraphemeClusterBreak;
-    static RegionalIndicator : GraphemeClusterBreak;
-    static EBase : GraphemeClusterBreak;
-    static EBaseGaz : GraphemeClusterBreak;
-    static EModifier : GraphemeClusterBreak;
-    static GlueAfterZwj : GraphemeClusterBreak;
-    static Zwj : GraphemeClusterBreak;
-
-    static forChar(ch: codepoint): GraphemeClusterBreak;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): GraphemeClusterBreak | null;
-
-    constructor(value: GraphemeClusterBreak | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.mjs
deleted file mode 100644
index 901f335..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreak.mjs
+++ /dev/null
@@ -1,155 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.GraphemeClusterBreak.html) for more information.
-*/
-
-
-export class GraphemeClusterBreak {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Other", 0],
-        ["Control", 1],
-        ["Cr", 2],
-        ["Extend", 3],
-        ["L", 4],
-        ["Lf", 5],
-        ["Lv", 6],
-        ["Lvt", 7],
-        ["T", 8],
-        ["V", 9],
-        ["SpacingMark", 10],
-        ["Prepend", 11],
-        ["RegionalIndicator", 12],
-        ["EBase", 13],
-        ["EBaseGaz", 14],
-        ["EModifier", 15],
-        ["GlueAfterZwj", 16],
-        ["Zwj", 17]
-    ]);
-
-    static getAllEntries() {
-        return GraphemeClusterBreak.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return GraphemeClusterBreak.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof GraphemeClusterBreak) {
-            return value;
-        }
-
-        let intVal = GraphemeClusterBreak.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return GraphemeClusterBreak.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a GraphemeClusterBreak and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new GraphemeClusterBreak(value);
-    }
-
-    get value() {
-        return [...GraphemeClusterBreak.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-    ];
-
-    static Other = GraphemeClusterBreak.#objectValues[0];
-    static Control = GraphemeClusterBreak.#objectValues[1];
-    static Cr = GraphemeClusterBreak.#objectValues[2];
-    static Extend = GraphemeClusterBreak.#objectValues[3];
-    static L = GraphemeClusterBreak.#objectValues[4];
-    static Lf = GraphemeClusterBreak.#objectValues[5];
-    static Lv = GraphemeClusterBreak.#objectValues[6];
-    static Lvt = GraphemeClusterBreak.#objectValues[7];
-    static T = GraphemeClusterBreak.#objectValues[8];
-    static V = GraphemeClusterBreak.#objectValues[9];
-    static SpacingMark = GraphemeClusterBreak.#objectValues[10];
-    static Prepend = GraphemeClusterBreak.#objectValues[11];
-    static RegionalIndicator = GraphemeClusterBreak.#objectValues[12];
-    static EBase = GraphemeClusterBreak.#objectValues[13];
-    static EBaseGaz = GraphemeClusterBreak.#objectValues[14];
-    static EModifier = GraphemeClusterBreak.#objectValues[15];
-    static GlueAfterZwj = GraphemeClusterBreak.#objectValues[16];
-    static Zwj = GraphemeClusterBreak.#objectValues[17];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_GraphemeClusterBreak_for_char_mv1(ch);
-    
-        try {
-            return new GraphemeClusterBreak(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_GraphemeClusterBreak_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GraphemeClusterBreak_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new GraphemeClusterBreak(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.d.ts
deleted file mode 100644
index d47cc3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-
-
-export class GraphemeClusterBreakIteratorLatin1 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.mjs
deleted file mode 100644
index 25248648..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorLatin1.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-const GraphemeClusterBreakIteratorLatin1_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(ptr);
-});
-
-export class GraphemeClusterBreakIteratorLatin1 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GraphemeClusterBreakIteratorLatin1 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GraphemeClusterBreakIteratorLatin1_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.d.ts
deleted file mode 100644
index 7f4146e9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-
-
-export class GraphemeClusterBreakIteratorUtf16 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.mjs
deleted file mode 100644
index 46d32ae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf16.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-const GraphemeClusterBreakIteratorUtf16_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(ptr);
-});
-
-export class GraphemeClusterBreakIteratorUtf16 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GraphemeClusterBreakIteratorUtf16 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GraphemeClusterBreakIteratorUtf16_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.d.ts
deleted file mode 100644
index 1293fa2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-
-
-export class GraphemeClusterBreakIteratorUtf8 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.mjs
deleted file mode 100644
index 57fa0b18..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterBreakIteratorUtf8.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `GraphemeClusterBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html) for more information.
-*/
-const GraphemeClusterBreakIteratorUtf8_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(ptr);
-});
-
-export class GraphemeClusterBreakIteratorUtf8 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GraphemeClusterBreakIteratorUtf8 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GraphemeClusterBreakIteratorUtf8_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.d.ts
deleted file mode 100644
index acb1b0a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { GraphemeClusterBreakIteratorUtf16 } from "./GraphemeClusterBreakIteratorUtf16"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X grapheme-cluster-break segmenter, capable of finding grapheme cluster breakpoints
-*in strings.
-*
-*See the [Rust documentation for `GraphemeClusterSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html) for more information.
-*/
-
-
-export class GraphemeClusterSegmenter {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): GraphemeClusterSegmenter;
-
-    segment(input: string): GraphemeClusterBreakIteratorUtf16;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.mjs
deleted file mode 100644
index cfeed3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GraphemeClusterSegmenter.mjs
+++ /dev/null
@@ -1,102 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { GraphemeClusterBreakIteratorUtf16 } from "./GraphemeClusterBreakIteratorUtf16.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X grapheme-cluster-break segmenter, capable of finding grapheme cluster breakpoints
-*in strings.
-*
-*See the [Rust documentation for `GraphemeClusterSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html) for more information.
-*/
-const GraphemeClusterSegmenter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GraphemeClusterSegmenter_destroy_mv1(ptr);
-});
-
-export class GraphemeClusterSegmenter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GraphemeClusterSegmenter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GraphemeClusterSegmenter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_GraphemeClusterSegmenter_create_mv1();
-    
-        try {
-            return new GraphemeClusterSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GraphemeClusterSegmenter_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new GraphemeClusterSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    segment(input) {
-        let functionGarbageCollectorGrip = new diplomatRuntime.GarbageCollectorGrip();
-        const inputSlice = functionGarbageCollectorGrip.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, input));
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this, inputSlice];
-        
-        const result = wasm.icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(this.ffiValue, ...inputSlice.splat());
-    
-        try {
-            return new GraphemeClusterBreakIteratorUtf16(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionGarbageCollectorGrip.releaseToGarbageCollector();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.d.ts
deleted file mode 100644
index 7b44347..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X TypedDateFormatter object capable of formatting an [`IsoDate`] and a [`Time`] as a string,
-*using the Gregorian Calendar.
-*
-*See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.FixedCalendarDateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMD.html)
-*/
-
-
-export class GregorianDateFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithLength(locale: Locale, length: DateTimeLength): GregorianDateFormatter;
-
-    static createWithLengthAndProvider(provider: DataProvider, locale: Locale, length: DateTimeLength): GregorianDateFormatter;
-
-    formatIso(value: IsoDate): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.mjs
deleted file mode 100644
index d605872..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianDateFormatter.mjs
+++ /dev/null
@@ -1,103 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X TypedDateFormatter object capable of formatting an [`IsoDate`] and a [`Time`] as a string,
-*using the Gregorian Calendar.
-*
-*See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.FixedCalendarDateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMD.html)
-*/
-const GregorianDateFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GregorianDateFormatter_destroy_mv1(ptr);
-});
-
-export class GregorianDateFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GregorianDateFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GregorianDateFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GregorianDateFormatter_create_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new GregorianDateFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GregorianDateFormatter_create_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new GregorianDateFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    formatIso(value) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_GregorianDateFormatter_format_iso_mv1(this.ffiValue, value.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.d.ts
deleted file mode 100644
index cf981fa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { DateTimeFormatError } from "./DateTimeFormatError"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { Time } from "./Time"
-import type { TimeZoneInfo } from "./TimeZoneInfo"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object capable of formatting a date time with time zone to a string.
-*
-*See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.FixedCalendarDateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMDT.html), [2](https://docs.rs/icu/latest/icu/datetime/fieldsets/zone/struct.GenericShort.html)
-*/
-
-
-export class GregorianZonedDateTimeFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithLength(locale: Locale, length: DateTimeLength): GregorianZonedDateTimeFormatter;
-
-    static createWithLengthAndProvider(provider: DataProvider, locale: Locale, length: DateTimeLength): GregorianZonedDateTimeFormatter;
-
-    formatIso(date: IsoDate, time: Time, zone: TimeZoneInfo): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.mjs
deleted file mode 100644
index f444f4d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/GregorianZonedDateTimeFormatter.mjs
+++ /dev/null
@@ -1,114 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { DateTimeFormatError } from "./DateTimeFormatError.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object capable of formatting a date time with time zone to a string.
-*
-*See the [Rust documentation for `FixedCalendarDateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.FixedCalendarDateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMDT.html), [2](https://docs.rs/icu/latest/icu/datetime/fieldsets/zone/struct.GenericShort.html)
-*/
-const GregorianZonedDateTimeFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(ptr);
-});
-
-export class GregorianZonedDateTimeFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("GregorianZonedDateTimeFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            GregorianZonedDateTimeFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GregorianZonedDateTimeFormatter_create_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new GregorianZonedDateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_GregorianZonedDateTimeFormatter_create_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new GregorianZonedDateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    formatIso(date, time, zone) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_GregorianZonedDateTimeFormatter_format_iso_mv1(diplomatReceive.buffer, this.ffiValue, date.ffiValue, time.ffiValue, zone.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.d.ts
deleted file mode 100644
index 3982fec9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `HangulSyllableType`](https://docs.rs/icu/latest/icu/properties/props/struct.HangulSyllableType.html) for more information.
-*/
-
-
-export class HangulSyllableType {
-    
-
-    static fromValue(value : HangulSyllableType | string) : HangulSyllableType; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static NotApplicable : HangulSyllableType;
-    static LeadingJamo : HangulSyllableType;
-    static VowelJamo : HangulSyllableType;
-    static TrailingJamo : HangulSyllableType;
-    static LeadingVowelSyllable : HangulSyllableType;
-    static LeadingVowelTrailingSyllable : HangulSyllableType;
-
-    static forChar(ch: codepoint): HangulSyllableType;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): HangulSyllableType | null;
-
-    constructor(value: HangulSyllableType | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.mjs
deleted file mode 100644
index 1e2f2cb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/HangulSyllableType.mjs
+++ /dev/null
@@ -1,119 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `HangulSyllableType`](https://docs.rs/icu/latest/icu/properties/props/struct.HangulSyllableType.html) for more information.
-*/
-
-
-export class HangulSyllableType {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["NotApplicable", 0],
-        ["LeadingJamo", 1],
-        ["VowelJamo", 2],
-        ["TrailingJamo", 3],
-        ["LeadingVowelSyllable", 4],
-        ["LeadingVowelTrailingSyllable", 5]
-    ]);
-
-    static getAllEntries() {
-        return HangulSyllableType.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return HangulSyllableType.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof HangulSyllableType) {
-            return value;
-        }
-
-        let intVal = HangulSyllableType.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return HangulSyllableType.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a HangulSyllableType and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new HangulSyllableType(value);
-    }
-
-    get value() {
-        return [...HangulSyllableType.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-    ];
-
-    static NotApplicable = HangulSyllableType.#objectValues[0];
-    static LeadingJamo = HangulSyllableType.#objectValues[1];
-    static VowelJamo = HangulSyllableType.#objectValues[2];
-    static TrailingJamo = HangulSyllableType.#objectValues[3];
-    static LeadingVowelSyllable = HangulSyllableType.#objectValues[4];
-    static LeadingVowelTrailingSyllable = HangulSyllableType.#objectValues[5];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_HangulSyllableType_for_char_mv1(ch);
-    
-        try {
-            return new HangulSyllableType(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_HangulSyllableType_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_HangulSyllableType_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new HangulSyllableType(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.d.ts
deleted file mode 100644
index ee68af1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { TimeZone } from "./TimeZone"
-import type { TimeZoneIterator } from "./TimeZoneIterator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-*It also supports normalizing and canonicalizing the IANA strings.
-*
-*See the [Rust documentation for `IanaParser`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParser.html) for more information.
-*/
-
-
-export class IanaParser {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): IanaParser;
-
-    parse(value: string): TimeZone;
-
-    iter(): TimeZoneIterator;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.mjs
deleted file mode 100644
index 4d81bae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParser.mjs
+++ /dev/null
@@ -1,116 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { TimeZone } from "./TimeZone.mjs"
-import { TimeZoneIterator } from "./TimeZoneIterator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-*It also supports normalizing and canonicalizing the IANA strings.
-*
-*See the [Rust documentation for `IanaParser`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParser.html) for more information.
-*/
-const IanaParser_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_IanaParser_destroy_mv1(ptr);
-});
-
-export class IanaParser {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("IanaParser is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            IanaParser_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_IanaParser_create_mv1();
-    
-        try {
-            return new IanaParser(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_IanaParser_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new IanaParser(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    parse(value) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const valueSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, value));
-        
-        const result = wasm.icu4x_IanaParser_parse_mv1(this.ffiValue, ...valueSlice.splat());
-    
-        try {
-            return new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    iter() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_IanaParser_iter_mv1(this.ffiValue);
-    
-        try {
-            return new TimeZoneIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.d.ts
deleted file mode 100644
index de09e79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized"
-import type { TimeZoneAndCanonicalAndNormalizedIterator } from "./TimeZoneAndCanonicalAndNormalizedIterator"
-import type { TimeZoneAndCanonicalIterator } from "./TimeZoneAndCanonicalIterator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-*It also supports normalizing and canonicalizing the IANA strings.
-*
-*See the [Rust documentation for `IanaParserExtended`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtended.html) for more information.
-*/
-
-
-export class IanaParserExtended {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): IanaParserExtended;
-
-    parse(value: string): TimeZoneAndCanonicalAndNormalized;
-
-    iter(): TimeZoneAndCanonicalIterator;
-
-    iterAll(): TimeZoneAndCanonicalAndNormalizedIterator;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.mjs
deleted file mode 100644
index af65ddb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IanaParserExtended.mjs
+++ /dev/null
@@ -1,137 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized.mjs"
-import { TimeZoneAndCanonicalAndNormalizedIterator } from "./TimeZoneAndCanonicalAndNormalizedIterator.mjs"
-import { TimeZoneAndCanonicalIterator } from "./TimeZoneAndCanonicalIterator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-*It also supports normalizing and canonicalizing the IANA strings.
-*
-*See the [Rust documentation for `IanaParserExtended`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtended.html) for more information.
-*/
-const IanaParserExtended_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_IanaParserExtended_destroy_mv1(ptr);
-});
-
-export class IanaParserExtended {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("IanaParserExtended is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            IanaParserExtended_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_IanaParserExtended_create_mv1();
-    
-        try {
-            return new IanaParserExtended(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_IanaParserExtended_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new IanaParserExtended(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    parse(value) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const valueSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, value));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 20, 4, false);
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_IanaParserExtended_parse_mv1(diplomatReceive.buffer, this.ffiValue, ...valueSlice.splat());
-    
-        try {
-            return TimeZoneAndCanonicalAndNormalized._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer, aEdges);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    iter() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_IanaParserExtended_iter_mv1(this.ffiValue);
-    
-        try {
-            return new TimeZoneAndCanonicalIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterAll() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_IanaParserExtended_iter_all_mv1(this.ffiValue);
-    
-        try {
-            return new TimeZoneAndCanonicalAndNormalizedIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.d.ts
deleted file mode 100644
index f797c7b8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `IndicSyllabicCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.IndicSyllabicCategory.html) for more information.
-*/
-
-
-export class IndicSyllabicCategory {
-    
-
-    static fromValue(value : IndicSyllabicCategory | string) : IndicSyllabicCategory; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Other : IndicSyllabicCategory;
-    static Avagraha : IndicSyllabicCategory;
-    static Bindu : IndicSyllabicCategory;
-    static BrahmiJoiningNumber : IndicSyllabicCategory;
-    static CantillationMark : IndicSyllabicCategory;
-    static Consonant : IndicSyllabicCategory;
-    static ConsonantDead : IndicSyllabicCategory;
-    static ConsonantFinal : IndicSyllabicCategory;
-    static ConsonantHeadLetter : IndicSyllabicCategory;
-    static ConsonantInitialPostfixed : IndicSyllabicCategory;
-    static ConsonantKiller : IndicSyllabicCategory;
-    static ConsonantMedial : IndicSyllabicCategory;
-    static ConsonantPlaceholder : IndicSyllabicCategory;
-    static ConsonantPrecedingRepha : IndicSyllabicCategory;
-    static ConsonantPrefixed : IndicSyllabicCategory;
-    static ConsonantSucceedingRepha : IndicSyllabicCategory;
-    static ConsonantSubjoined : IndicSyllabicCategory;
-    static ConsonantWithStacker : IndicSyllabicCategory;
-    static GeminationMark : IndicSyllabicCategory;
-    static InvisibleStacker : IndicSyllabicCategory;
-    static Joiner : IndicSyllabicCategory;
-    static ModifyingLetter : IndicSyllabicCategory;
-    static NonJoiner : IndicSyllabicCategory;
-    static Nukta : IndicSyllabicCategory;
-    static Number : IndicSyllabicCategory;
-    static NumberJoiner : IndicSyllabicCategory;
-    static PureKiller : IndicSyllabicCategory;
-    static RegisterShifter : IndicSyllabicCategory;
-    static SyllableModifier : IndicSyllabicCategory;
-    static ToneLetter : IndicSyllabicCategory;
-    static ToneMark : IndicSyllabicCategory;
-    static Virama : IndicSyllabicCategory;
-    static Visarga : IndicSyllabicCategory;
-    static Vowel : IndicSyllabicCategory;
-    static VowelDependent : IndicSyllabicCategory;
-    static VowelIndependent : IndicSyllabicCategory;
-    static ReorderingKiller : IndicSyllabicCategory;
-
-    static forChar(ch: codepoint): IndicSyllabicCategory;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): IndicSyllabicCategory | null;
-
-    constructor(value: IndicSyllabicCategory | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.mjs
deleted file mode 100644
index 18a2da95..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IndicSyllabicCategory.mjs
+++ /dev/null
@@ -1,212 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `IndicSyllabicCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.IndicSyllabicCategory.html) for more information.
-*/
-
-
-export class IndicSyllabicCategory {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Other", 0],
-        ["Avagraha", 1],
-        ["Bindu", 2],
-        ["BrahmiJoiningNumber", 3],
-        ["CantillationMark", 4],
-        ["Consonant", 5],
-        ["ConsonantDead", 6],
-        ["ConsonantFinal", 7],
-        ["ConsonantHeadLetter", 8],
-        ["ConsonantInitialPostfixed", 9],
-        ["ConsonantKiller", 10],
-        ["ConsonantMedial", 11],
-        ["ConsonantPlaceholder", 12],
-        ["ConsonantPrecedingRepha", 13],
-        ["ConsonantPrefixed", 14],
-        ["ConsonantSucceedingRepha", 15],
-        ["ConsonantSubjoined", 16],
-        ["ConsonantWithStacker", 17],
-        ["GeminationMark", 18],
-        ["InvisibleStacker", 19],
-        ["Joiner", 20],
-        ["ModifyingLetter", 21],
-        ["NonJoiner", 22],
-        ["Nukta", 23],
-        ["Number", 24],
-        ["NumberJoiner", 25],
-        ["PureKiller", 26],
-        ["RegisterShifter", 27],
-        ["SyllableModifier", 28],
-        ["ToneLetter", 29],
-        ["ToneMark", 30],
-        ["Virama", 31],
-        ["Visarga", 32],
-        ["Vowel", 33],
-        ["VowelDependent", 34],
-        ["VowelIndependent", 35],
-        ["ReorderingKiller", 36]
-    ]);
-
-    static getAllEntries() {
-        return IndicSyllabicCategory.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return IndicSyllabicCategory.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof IndicSyllabicCategory) {
-            return value;
-        }
-
-        let intVal = IndicSyllabicCategory.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return IndicSyllabicCategory.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a IndicSyllabicCategory and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new IndicSyllabicCategory(value);
-    }
-
-    get value() {
-        return [...IndicSyllabicCategory.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
-        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
-    ];
-
-    static Other = IndicSyllabicCategory.#objectValues[0];
-    static Avagraha = IndicSyllabicCategory.#objectValues[1];
-    static Bindu = IndicSyllabicCategory.#objectValues[2];
-    static BrahmiJoiningNumber = IndicSyllabicCategory.#objectValues[3];
-    static CantillationMark = IndicSyllabicCategory.#objectValues[4];
-    static Consonant = IndicSyllabicCategory.#objectValues[5];
-    static ConsonantDead = IndicSyllabicCategory.#objectValues[6];
-    static ConsonantFinal = IndicSyllabicCategory.#objectValues[7];
-    static ConsonantHeadLetter = IndicSyllabicCategory.#objectValues[8];
-    static ConsonantInitialPostfixed = IndicSyllabicCategory.#objectValues[9];
-    static ConsonantKiller = IndicSyllabicCategory.#objectValues[10];
-    static ConsonantMedial = IndicSyllabicCategory.#objectValues[11];
-    static ConsonantPlaceholder = IndicSyllabicCategory.#objectValues[12];
-    static ConsonantPrecedingRepha = IndicSyllabicCategory.#objectValues[13];
-    static ConsonantPrefixed = IndicSyllabicCategory.#objectValues[14];
-    static ConsonantSucceedingRepha = IndicSyllabicCategory.#objectValues[15];
-    static ConsonantSubjoined = IndicSyllabicCategory.#objectValues[16];
-    static ConsonantWithStacker = IndicSyllabicCategory.#objectValues[17];
-    static GeminationMark = IndicSyllabicCategory.#objectValues[18];
-    static InvisibleStacker = IndicSyllabicCategory.#objectValues[19];
-    static Joiner = IndicSyllabicCategory.#objectValues[20];
-    static ModifyingLetter = IndicSyllabicCategory.#objectValues[21];
-    static NonJoiner = IndicSyllabicCategory.#objectValues[22];
-    static Nukta = IndicSyllabicCategory.#objectValues[23];
-    static Number = IndicSyllabicCategory.#objectValues[24];
-    static NumberJoiner = IndicSyllabicCategory.#objectValues[25];
-    static PureKiller = IndicSyllabicCategory.#objectValues[26];
-    static RegisterShifter = IndicSyllabicCategory.#objectValues[27];
-    static SyllableModifier = IndicSyllabicCategory.#objectValues[28];
-    static ToneLetter = IndicSyllabicCategory.#objectValues[29];
-    static ToneMark = IndicSyllabicCategory.#objectValues[30];
-    static Virama = IndicSyllabicCategory.#objectValues[31];
-    static Visarga = IndicSyllabicCategory.#objectValues[32];
-    static Vowel = IndicSyllabicCategory.#objectValues[33];
-    static VowelDependent = IndicSyllabicCategory.#objectValues[34];
-    static VowelIndependent = IndicSyllabicCategory.#objectValues[35];
-    static ReorderingKiller = IndicSyllabicCategory.#objectValues[36];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_IndicSyllabicCategory_for_char_mv1(ch);
-    
-        try {
-            return new IndicSyllabicCategory(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_IndicSyllabicCategory_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_IndicSyllabicCategory_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.d.ts
deleted file mode 100644
index 59224984..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-// generated by diplomat-tool
-import type { Calendar } from "./Calendar"
-import type { CalendarError } from "./CalendarError"
-import type { CalendarParseError } from "./CalendarParseError"
-import type { Date } from "./Date"
-import type { WeekCalculator } from "./WeekCalculator"
-import type { WeekOf } from "./WeekOf"
-import type { Weekday } from "./Weekday"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Date object capable of containing a ISO-8601 date
-*
-*See the [Rust documentation for `Date`](https://docs.rs/icu/latest/icu/calendar/struct.Date.html) for more information.
-*/
-
-
-export class IsoDate {
-    
-    get ffiValue(): pointer;
-
-    static fromString(v: string): IsoDate;
-
-    toCalendar(calendar: Calendar): Date;
-
-    toAny(): Date;
-
-    get dayOfYear(): number;
-
-    get dayOfMonth(): number;
-
-    get dayOfWeek(): Weekday;
-
-    weekOfMonth(firstWeekday: Weekday): number;
-
-    weekOfYear(calculator: WeekCalculator): WeekOf;
-
-    get month(): number;
-
-    get year(): number;
-
-    get isInLeapYear(): boolean;
-
-    get monthsInYear(): number;
-
-    get daysInMonth(): number;
-
-    get daysInYear(): number;
-
-    constructor(year: number, month: number, day: number);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.mjs
deleted file mode 100644
index d173284..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDate.mjs
+++ /dev/null
@@ -1,235 +0,0 @@
-// generated by diplomat-tool
-import { Calendar } from "./Calendar.mjs"
-import { CalendarError } from "./CalendarError.mjs"
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { Date } from "./Date.mjs"
-import { WeekCalculator } from "./WeekCalculator.mjs"
-import { WeekOf } from "./WeekOf.mjs"
-import { Weekday } from "./Weekday.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Date object capable of containing a ISO-8601 date
-*
-*See the [Rust documentation for `Date`](https://docs.rs/icu/latest/icu/calendar/struct.Date.html) for more information.
-*/
-const IsoDate_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_IsoDate_destroy_mv1(ptr);
-});
-
-export class IsoDate {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("IsoDate is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            IsoDate_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor(year, month, day) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_IsoDate_create_mv1(diplomatReceive.buffer, year, month, day);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarError: ' + cause.value, { cause });
-            }
-            return new IsoDate(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromString(v) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_IsoDate_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return new IsoDate(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    toCalendar(calendar) {
-        const result = wasm.icu4x_IsoDate_to_calendar_mv1(this.ffiValue, calendar.ffiValue);
-    
-        try {
-            return new Date(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    toAny() {
-        const result = wasm.icu4x_IsoDate_to_any_mv1(this.ffiValue);
-    
-        try {
-            return new Date(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    get dayOfYear() {
-        const result = wasm.icu4x_IsoDate_day_of_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get dayOfMonth() {
-        const result = wasm.icu4x_IsoDate_day_of_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get dayOfWeek() {
-        const result = wasm.icu4x_IsoDate_day_of_week_mv1(this.ffiValue);
-    
-        try {
-            return new Weekday(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    weekOfMonth(firstWeekday) {
-        const result = wasm.icu4x_IsoDate_week_of_month_mv1(this.ffiValue, firstWeekday.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    weekOfYear(calculator) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 8, 4, false);
-        
-        const result = wasm.icu4x_IsoDate_week_of_year_mv1(diplomatReceive.buffer, this.ffiValue, calculator.ffiValue);
-    
-        try {
-            return WeekOf._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get month() {
-        const result = wasm.icu4x_IsoDate_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get year() {
-        const result = wasm.icu4x_IsoDate_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get isInLeapYear() {
-        const result = wasm.icu4x_IsoDate_is_in_leap_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get monthsInYear() {
-        const result = wasm.icu4x_IsoDate_months_in_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get daysInMonth() {
-        const result = wasm.icu4x_IsoDate_days_in_month_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get daysInYear() {
-        const result = wasm.icu4x_IsoDate_days_in_year_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(year, month, day) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.d.ts
deleted file mode 100644
index f2a6a593..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { CalendarParseError } from "./CalendarParseError"
-import type { IsoDate } from "./IsoDate"
-import type { Time } from "./Time"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X DateTime object capable of containing a ISO-8601 date and time.
-*
-*See the [Rust documentation for `DateTime`](https://docs.rs/icu/latest/icu/time/struct.DateTime.html) for more information.
-*/
-
-
-export class IsoDateTime {
-    
-    get date() : IsoDate;
-    
-    get time() : Time;
-    
-
-    static fromString(v: string): IsoDateTime;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.mjs
deleted file mode 100644
index d63e8d82..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/IsoDateTime.mjs
+++ /dev/null
@@ -1,129 +0,0 @@
-// generated by diplomat-tool
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Time } from "./Time.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X DateTime object capable of containing a ISO-8601 date and time.
-*
-*See the [Rust documentation for `DateTime`](https://docs.rs/icu/latest/icu/time/struct.DateTime.html) for more information.
-*/
-
-
-export class IsoDateTime {
-    
-    #date;
-    
-    get date()  {
-        return this.#date;
-    }
-    
-    #time;
-    
-    get time()  {
-        return this.#time;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("IsoDateTime's constructor takes an object of IsoDateTime's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("IsoDateTime is an out struct and can only be created internally.");
-        }
-        if ("date" in structObj) {
-            this.#date = structObj.date;
-        } else {
-            throw new Error("Missing required field date.");
-        }
-
-        if ("time" in structObj) {
-            this.#time = structObj.time;
-        } else {
-            throw new Error("Missing required field time.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#date.ffiValue, this.#time.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof IsoDateTime) {
-            return obj;
-        }
-
-        return IsoDateTime.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#date.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#time.ffiValue, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("IsoDateTime._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const dateDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.date = new IsoDate(diplomatRuntime.internalConstructor, dateDeref, []);
-        const timeDeref = diplomatRuntime.ptrRead(wasm, ptr + 4);
-        structObj.time = new Time(diplomatRuntime.internalConstructor, timeDeref, []);
-
-        return new IsoDateTime(structObj, internalConstructor);
-    }
-
-    static fromString(v) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_IsoDateTime_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return IsoDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.d.ts
deleted file mode 100644
index 463bb6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `JoiningType`](https://docs.rs/icu/latest/icu/properties/props/struct.JoiningType.html) for more information.
-*/
-
-
-export class JoiningType {
-    
-
-    static fromValue(value : JoiningType | string) : JoiningType; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static NonJoining : JoiningType;
-    static JoinCausing : JoiningType;
-    static DualJoining : JoiningType;
-    static LeftJoining : JoiningType;
-    static RightJoining : JoiningType;
-    static Transparent : JoiningType;
-
-    static forChar(ch: codepoint): JoiningType;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): JoiningType | null;
-
-    constructor(value: JoiningType | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.mjs
deleted file mode 100644
index c90b0397..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/JoiningType.mjs
+++ /dev/null
@@ -1,153 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `JoiningType`](https://docs.rs/icu/latest/icu/properties/props/struct.JoiningType.html) for more information.
-*/
-
-
-export class JoiningType {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["NonJoining", 0],
-        ["JoinCausing", 1],
-        ["DualJoining", 2],
-        ["LeftJoining", 3],
-        ["RightJoining", 4],
-        ["Transparent", 5]
-    ]);
-
-    static getAllEntries() {
-        return JoiningType.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return JoiningType.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof JoiningType) {
-            return value;
-        }
-
-        let intVal = JoiningType.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return JoiningType.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a JoiningType and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new JoiningType(value);
-    }
-
-    get value() {
-        return [...JoiningType.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-    ];
-
-    static NonJoining = JoiningType.#objectValues[0];
-    static JoinCausing = JoiningType.#objectValues[1];
-    static DualJoining = JoiningType.#objectValues[2];
-    static LeftJoining = JoiningType.#objectValues[3];
-    static RightJoining = JoiningType.#objectValues[4];
-    static Transparent = JoiningType.#objectValues[5];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_JoiningType_for_char_mv1(ch);
-    
-        try {
-            return new JoiningType(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_JoiningType_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_JoiningType_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_JoiningType_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_JoiningType_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new JoiningType(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.d.ts
deleted file mode 100644
index 411c9bb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LanguageDisplay`](https://docs.rs/icu/latest/icu/displaynames/options/enum.LanguageDisplay.html) for more information.
-*/
-
-
-export class LanguageDisplay {
-    
-
-    static fromValue(value : LanguageDisplay | string) : LanguageDisplay; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Dialect : LanguageDisplay;
-    static Standard : LanguageDisplay;
-
-    constructor(value: LanguageDisplay | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.mjs
deleted file mode 100644
index dd8317b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LanguageDisplay.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LanguageDisplay`](https://docs.rs/icu/latest/icu/displaynames/options/enum.LanguageDisplay.html) for more information.
-*/
-
-
-export class LanguageDisplay {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Dialect", 0],
-        ["Standard", 1]
-    ]);
-
-    static getAllEntries() {
-        return LanguageDisplay.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LanguageDisplay.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LanguageDisplay) {
-            return value;
-        }
-
-        let intVal = LanguageDisplay.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LanguageDisplay.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LanguageDisplay and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LanguageDisplay(value);
-    }
-
-    get value() {
-        return [...LanguageDisplay.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LanguageDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LanguageDisplay(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Dialect = LanguageDisplay.#objectValues[0];
-    static Standard = LanguageDisplay.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.d.ts
deleted file mode 100644
index 5f38a034..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LeadingAdjustment`](https://docs.rs/icu/latest/icu/casemap/options/enum.LeadingAdjustment.html) for more information.
-*/
-
-
-export class LeadingAdjustment {
-    
-
-    static fromValue(value : LeadingAdjustment | string) : LeadingAdjustment; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Auto : LeadingAdjustment;
-    static None : LeadingAdjustment;
-    static ToCased : LeadingAdjustment;
-
-    constructor(value: LeadingAdjustment | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.mjs
deleted file mode 100644
index 1c38e26..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LeadingAdjustment.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LeadingAdjustment`](https://docs.rs/icu/latest/icu/casemap/options/enum.LeadingAdjustment.html) for more information.
-*/
-
-
-export class LeadingAdjustment {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Auto", 0],
-        ["None", 1],
-        ["ToCased", 2]
-    ]);
-
-    static getAllEntries() {
-        return LeadingAdjustment.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LeadingAdjustment.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LeadingAdjustment) {
-            return value;
-        }
-
-        let intVal = LeadingAdjustment.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LeadingAdjustment.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LeadingAdjustment and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LeadingAdjustment(value);
-    }
-
-    get value() {
-        return [...LeadingAdjustment.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LeadingAdjustment(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LeadingAdjustment(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LeadingAdjustment(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Auto = LeadingAdjustment.#objectValues[0];
-    static None = LeadingAdjustment.#objectValues[1];
-    static ToCased = LeadingAdjustment.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.d.ts
deleted file mode 100644
index 15d758af..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.d.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.LineBreak.html) for more information.
-*/
-
-
-export class LineBreak {
-    
-
-    static fromValue(value : LineBreak | string) : LineBreak; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : LineBreak;
-    static Ambiguous : LineBreak;
-    static Alphabetic : LineBreak;
-    static BreakBoth : LineBreak;
-    static BreakAfter : LineBreak;
-    static BreakBefore : LineBreak;
-    static MandatoryBreak : LineBreak;
-    static ContingentBreak : LineBreak;
-    static ClosePunctuation : LineBreak;
-    static CombiningMark : LineBreak;
-    static CarriageReturn : LineBreak;
-    static Exclamation : LineBreak;
-    static Glue : LineBreak;
-    static Hyphen : LineBreak;
-    static Ideographic : LineBreak;
-    static Inseparable : LineBreak;
-    static InfixNumeric : LineBreak;
-    static LineFeed : LineBreak;
-    static Nonstarter : LineBreak;
-    static Numeric : LineBreak;
-    static OpenPunctuation : LineBreak;
-    static PostfixNumeric : LineBreak;
-    static PrefixNumeric : LineBreak;
-    static Quotation : LineBreak;
-    static ComplexContext : LineBreak;
-    static Surrogate : LineBreak;
-    static Space : LineBreak;
-    static BreakSymbols : LineBreak;
-    static ZwSpace : LineBreak;
-    static NextLine : LineBreak;
-    static WordJoiner : LineBreak;
-    static H2 : LineBreak;
-    static H3 : LineBreak;
-    static Jl : LineBreak;
-    static Jt : LineBreak;
-    static Jv : LineBreak;
-    static CloseParenthesis : LineBreak;
-    static ConditionalJapaneseStarter : LineBreak;
-    static HebrewLetter : LineBreak;
-    static RegionalIndicator : LineBreak;
-    static EBase : LineBreak;
-    static EModifier : LineBreak;
-    static Zwj : LineBreak;
-    static Aksara : LineBreak;
-    static AksaraPrebase : LineBreak;
-    static AksaraStart : LineBreak;
-    static ViramaFinal : LineBreak;
-    static Virama : LineBreak;
-
-    static forChar(ch: codepoint): LineBreak;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): LineBreak | null;
-
-    constructor(value: LineBreak | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.mjs
deleted file mode 100644
index 40c975f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreak.mjs
+++ /dev/null
@@ -1,279 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.LineBreak.html) for more information.
-*/
-
-
-export class LineBreak {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["Ambiguous", 1],
-        ["Alphabetic", 2],
-        ["BreakBoth", 3],
-        ["BreakAfter", 4],
-        ["BreakBefore", 5],
-        ["MandatoryBreak", 6],
-        ["ContingentBreak", 7],
-        ["ClosePunctuation", 8],
-        ["CombiningMark", 9],
-        ["CarriageReturn", 10],
-        ["Exclamation", 11],
-        ["Glue", 12],
-        ["Hyphen", 13],
-        ["Ideographic", 14],
-        ["Inseparable", 15],
-        ["InfixNumeric", 16],
-        ["LineFeed", 17],
-        ["Nonstarter", 18],
-        ["Numeric", 19],
-        ["OpenPunctuation", 20],
-        ["PostfixNumeric", 21],
-        ["PrefixNumeric", 22],
-        ["Quotation", 23],
-        ["ComplexContext", 24],
-        ["Surrogate", 25],
-        ["Space", 26],
-        ["BreakSymbols", 27],
-        ["ZwSpace", 28],
-        ["NextLine", 29],
-        ["WordJoiner", 30],
-        ["H2", 31],
-        ["H3", 32],
-        ["Jl", 33],
-        ["Jt", 34],
-        ["Jv", 35],
-        ["CloseParenthesis", 36],
-        ["ConditionalJapaneseStarter", 37],
-        ["HebrewLetter", 38],
-        ["RegionalIndicator", 39],
-        ["EBase", 40],
-        ["EModifier", 41],
-        ["Zwj", 42],
-        ["Aksara", 43],
-        ["AksaraPrebase", 44],
-        ["AksaraStart", 45],
-        ["ViramaFinal", 46],
-        ["Virama", 47]
-    ]);
-
-    static getAllEntries() {
-        return LineBreak.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LineBreak.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LineBreak) {
-            return value;
-        }
-
-        let intVal = LineBreak.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LineBreak.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LineBreak and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LineBreak(value);
-    }
-
-    get value() {
-        return [...LineBreak.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 37),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 38),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 39),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 40),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 41),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 42),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 43),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 44),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 45),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 46),
-        new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 47),
-    ];
-
-    static Unknown = LineBreak.#objectValues[0];
-    static Ambiguous = LineBreak.#objectValues[1];
-    static Alphabetic = LineBreak.#objectValues[2];
-    static BreakBoth = LineBreak.#objectValues[3];
-    static BreakAfter = LineBreak.#objectValues[4];
-    static BreakBefore = LineBreak.#objectValues[5];
-    static MandatoryBreak = LineBreak.#objectValues[6];
-    static ContingentBreak = LineBreak.#objectValues[7];
-    static ClosePunctuation = LineBreak.#objectValues[8];
-    static CombiningMark = LineBreak.#objectValues[9];
-    static CarriageReturn = LineBreak.#objectValues[10];
-    static Exclamation = LineBreak.#objectValues[11];
-    static Glue = LineBreak.#objectValues[12];
-    static Hyphen = LineBreak.#objectValues[13];
-    static Ideographic = LineBreak.#objectValues[14];
-    static Inseparable = LineBreak.#objectValues[15];
-    static InfixNumeric = LineBreak.#objectValues[16];
-    static LineFeed = LineBreak.#objectValues[17];
-    static Nonstarter = LineBreak.#objectValues[18];
-    static Numeric = LineBreak.#objectValues[19];
-    static OpenPunctuation = LineBreak.#objectValues[20];
-    static PostfixNumeric = LineBreak.#objectValues[21];
-    static PrefixNumeric = LineBreak.#objectValues[22];
-    static Quotation = LineBreak.#objectValues[23];
-    static ComplexContext = LineBreak.#objectValues[24];
-    static Surrogate = LineBreak.#objectValues[25];
-    static Space = LineBreak.#objectValues[26];
-    static BreakSymbols = LineBreak.#objectValues[27];
-    static ZwSpace = LineBreak.#objectValues[28];
-    static NextLine = LineBreak.#objectValues[29];
-    static WordJoiner = LineBreak.#objectValues[30];
-    static H2 = LineBreak.#objectValues[31];
-    static H3 = LineBreak.#objectValues[32];
-    static Jl = LineBreak.#objectValues[33];
-    static Jt = LineBreak.#objectValues[34];
-    static Jv = LineBreak.#objectValues[35];
-    static CloseParenthesis = LineBreak.#objectValues[36];
-    static ConditionalJapaneseStarter = LineBreak.#objectValues[37];
-    static HebrewLetter = LineBreak.#objectValues[38];
-    static RegionalIndicator = LineBreak.#objectValues[39];
-    static EBase = LineBreak.#objectValues[40];
-    static EModifier = LineBreak.#objectValues[41];
-    static Zwj = LineBreak.#objectValues[42];
-    static Aksara = LineBreak.#objectValues[43];
-    static AksaraPrebase = LineBreak.#objectValues[44];
-    static AksaraStart = LineBreak.#objectValues[45];
-    static ViramaFinal = LineBreak.#objectValues[46];
-    static Virama = LineBreak.#objectValues[47];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_LineBreak_for_char_mv1(ch);
-    
-        try {
-            return new LineBreak(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_LineBreak_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_LineBreak_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_LineBreak_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LineBreak_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new LineBreak(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.d.ts
deleted file mode 100644
index 4cf814e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorLatin1.html)
-*/
-
-
-export class LineBreakIteratorLatin1 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.mjs
deleted file mode 100644
index 6bca7a61..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorLatin1.mjs
+++ /dev/null
@@ -1,60 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorLatin1.html)
-*/
-const LineBreakIteratorLatin1_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LineBreakIteratorLatin1_destroy_mv1(ptr);
-});
-
-export class LineBreakIteratorLatin1 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LineBreakIteratorLatin1 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LineBreakIteratorLatin1_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_LineBreakIteratorLatin1_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.d.ts
deleted file mode 100644
index e71a3ee4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorUtf16.html)
-*/
-
-
-export class LineBreakIteratorUtf16 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.mjs
deleted file mode 100644
index b92611a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf16.mjs
+++ /dev/null
@@ -1,60 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorUtf16.html)
-*/
-const LineBreakIteratorUtf16_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LineBreakIteratorUtf16_destroy_mv1(ptr);
-});
-
-export class LineBreakIteratorUtf16 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LineBreakIteratorUtf16 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LineBreakIteratorUtf16_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_LineBreakIteratorUtf16_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.d.ts
deleted file mode 100644
index cb22cbc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorPotentiallyIllFormedUtf8.html)
-*/
-
-
-export class LineBreakIteratorUtf8 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.mjs
deleted file mode 100644
index dbd98fe..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakIteratorUtf8.mjs
+++ /dev/null
@@ -1,60 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorPotentiallyIllFormedUtf8.html)
-*/
-const LineBreakIteratorUtf8_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LineBreakIteratorUtf8_destroy_mv1(ptr);
-});
-
-export class LineBreakIteratorUtf8 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LineBreakIteratorUtf8 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LineBreakIteratorUtf8_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_LineBreakIteratorUtf8_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.d.ts
deleted file mode 100644
index fba527d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import type { LineBreakStrictness } from "./LineBreakStrictness"
-import type { LineBreakWordOption } from "./LineBreakWordOption"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakOptions`](https://docs.rs/icu/latest/icu/segmenter/options/struct.LineBreakOptions.html) for more information.
-*/
-type LineBreakOptions_obj = {
-    strictness?: LineBreakStrictness | null;
-    wordOption?: LineBreakWordOption | null;
-};
-
-
-
-export class LineBreakOptions {
-    
-    get strictness() : LineBreakStrictness | null; 
-    set strictness(value: LineBreakStrictness | null); 
-    
-    get wordOption() : LineBreakWordOption | null; 
-    set wordOption(value: LineBreakWordOption | null); 
-    
-    /** Create `LineBreakOptions` from an object that contains all of `LineBreakOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : LineBreakOptions_obj) : LineBreakOptions;
-
-
-    constructor(structObj : LineBreakOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.mjs
deleted file mode 100644
index 3378787b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakOptions.mjs
+++ /dev/null
@@ -1,112 +0,0 @@
-// generated by diplomat-tool
-import { LineBreakStrictness } from "./LineBreakStrictness.mjs"
-import { LineBreakWordOption } from "./LineBreakWordOption.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakOptions`](https://docs.rs/icu/latest/icu/segmenter/options/struct.LineBreakOptions.html) for more information.
-*/
-
-
-export class LineBreakOptions {
-    
-    #strictness;
-    
-    get strictness()  {
-        return this.#strictness;
-    } 
-    set strictness(value) {
-        this.#strictness = value;
-    }
-    
-    #wordOption;
-    
-    get wordOption()  {
-        return this.#wordOption;
-    } 
-    set wordOption(value) {
-        this.#wordOption = value;
-    }
-    
-    /** Create `LineBreakOptions` from an object that contains all of `LineBreakOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new LineBreakOptions(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("LineBreakOptions's constructor takes an object of LineBreakOptions's fields.");
-        }
-
-        if ("strictness" in structObj) {
-            this.#strictness = structObj.strictness;
-        } else {
-            this.#strictness = null;
-        }
-
-        if ("wordOption" in structObj) {
-            this.#wordOption = structObj.wordOption;
-        } else {
-            this.#wordOption = null;
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [...diplomatRuntime.optionToArgsForCalling(this.#strictness, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#wordOption, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)])]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof LineBreakOptions) {
-            return obj;
-        }
-
-        return LineBreakOptions.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 0, this.#strictness, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 8, this.#wordOption, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("LineBreakOptions._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const strictnessDeref = ptr;
-        structObj.strictness = diplomatRuntime.readOption(wasm, strictnessDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new LineBreakStrictness(diplomatRuntime.internalConstructor, deref) });
-        const wordOptionDeref = ptr + 8;
-        structObj.wordOption = diplomatRuntime.readOption(wasm, wordOptionDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new LineBreakWordOption(diplomatRuntime.internalConstructor, deref) });
-
-        return new LineBreakOptions(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.d.ts
deleted file mode 100644
index 1dcdaa8e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakStrictness`](https://docs.rs/icu/latest/icu/segmenter/options/enum.LineBreakStrictness.html) for more information.
-*/
-
-
-export class LineBreakStrictness {
-    
-
-    static fromValue(value : LineBreakStrictness | string) : LineBreakStrictness; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Loose : LineBreakStrictness;
-    static Normal : LineBreakStrictness;
-    static Strict : LineBreakStrictness;
-    static Anywhere : LineBreakStrictness;
-
-    constructor(value: LineBreakStrictness | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.mjs
deleted file mode 100644
index 87da0d3a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakStrictness.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakStrictness`](https://docs.rs/icu/latest/icu/segmenter/options/enum.LineBreakStrictness.html) for more information.
-*/
-
-
-export class LineBreakStrictness {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Loose", 0],
-        ["Normal", 1],
-        ["Strict", 2],
-        ["Anywhere", 3]
-    ]);
-
-    static getAllEntries() {
-        return LineBreakStrictness.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LineBreakStrictness.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LineBreakStrictness) {
-            return value;
-        }
-
-        let intVal = LineBreakStrictness.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LineBreakStrictness.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LineBreakStrictness and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LineBreakStrictness(value);
-    }
-
-    get value() {
-        return [...LineBreakStrictness.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LineBreakStrictness(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LineBreakStrictness(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LineBreakStrictness(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new LineBreakStrictness(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Loose = LineBreakStrictness.#objectValues[0];
-    static Normal = LineBreakStrictness.#objectValues[1];
-    static Strict = LineBreakStrictness.#objectValues[2];
-    static Anywhere = LineBreakStrictness.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.d.ts
deleted file mode 100644
index c76f219..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LineBreakWordOption`](https://docs.rs/icu/latest/icu/segmenter/options/enum.LineBreakWordOption.html) for more information.
-*/
-
-
-export class LineBreakWordOption {
-    
-
-    static fromValue(value : LineBreakWordOption | string) : LineBreakWordOption; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Normal : LineBreakWordOption;
-    static BreakAll : LineBreakWordOption;
-    static KeepAll : LineBreakWordOption;
-
-    constructor(value: LineBreakWordOption | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.mjs
deleted file mode 100644
index 27e60d2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineBreakWordOption.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LineBreakWordOption`](https://docs.rs/icu/latest/icu/segmenter/options/enum.LineBreakWordOption.html) for more information.
-*/
-
-
-export class LineBreakWordOption {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Normal", 0],
-        ["BreakAll", 1],
-        ["KeepAll", 2]
-    ]);
-
-    static getAllEntries() {
-        return LineBreakWordOption.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LineBreakWordOption.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LineBreakWordOption) {
-            return value;
-        }
-
-        let intVal = LineBreakWordOption.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LineBreakWordOption.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LineBreakWordOption and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LineBreakWordOption(value);
-    }
-
-    get value() {
-        return [...LineBreakWordOption.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LineBreakWordOption(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LineBreakWordOption(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LineBreakWordOption(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Normal = LineBreakWordOption.#objectValues[0];
-    static BreakAll = LineBreakWordOption.#objectValues[1];
-    static KeepAll = LineBreakWordOption.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.d.ts
deleted file mode 100644
index ddaabe6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { LineBreakIteratorUtf16 } from "./LineBreakIteratorUtf16"
-import type { LineBreakOptions } from "./LineBreakOptions"
-import type { LineBreakOptions_obj } from "./LineBreakOptions"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X line-break segmenter, capable of finding breakpoints in strings.
-*
-*See the [Rust documentation for `LineSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html) for more information.
-*/
-
-
-export class LineSegmenter {
-    
-    get ffiValue(): pointer;
-
-    static createAuto(): LineSegmenter;
-
-    static createLstm(): LineSegmenter;
-
-    static createDictionary(): LineSegmenter;
-
-    static autoWithOptions(contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    static autoWithOptionsAndProvider(provider: DataProvider, contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    static lstmWithOptions(contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    static lstmWithOptionsAndProvider(provider: DataProvider, contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    static dictionaryWithOptions(contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    static dictionaryWithOptionsAndProvider(provider: DataProvider, contentLocale: Locale | null, options: LineBreakOptions_obj): LineSegmenter;
-
-    segment(input: string): LineBreakIteratorUtf16;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.mjs
deleted file mode 100644
index c7f718d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LineSegmenter.mjs
+++ /dev/null
@@ -1,207 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { LineBreakIteratorUtf16 } from "./LineBreakIteratorUtf16.mjs"
-import { LineBreakOptions } from "./LineBreakOptions.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X line-break segmenter, capable of finding breakpoints in strings.
-*
-*See the [Rust documentation for `LineSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html) for more information.
-*/
-const LineSegmenter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LineSegmenter_destroy_mv1(ptr);
-});
-
-export class LineSegmenter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LineSegmenter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LineSegmenter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createAuto() {
-        const result = wasm.icu4x_LineSegmenter_create_auto_mv1();
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLstm() {
-        const result = wasm.icu4x_LineSegmenter_create_lstm_mv1();
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDictionary() {
-        const result = wasm.icu4x_LineSegmenter_create_dictionary_mv1();
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static autoWithOptions(contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_LineSegmenter_create_auto_with_options_v2_mv1(contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static autoWithOptionsAndProvider(provider, contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LineSegmenter_create_auto_with_options_v2_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LineSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static lstmWithOptions(contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_LineSegmenter_create_lstm_with_options_v2_mv1(contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static lstmWithOptionsAndProvider(provider, contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LineSegmenter_create_lstm_with_options_v2_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LineSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static dictionaryWithOptions(contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const result = wasm.icu4x_LineSegmenter_create_dictionary_with_options_v2_mv1(contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new LineSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static dictionaryWithOptionsAndProvider(provider, contentLocale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LineSegmenter_create_dictionary_with_options_v2_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, contentLocale.ffiValue ?? 0, ...LineBreakOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LineSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    segment(input) {
-        let functionGarbageCollectorGrip = new diplomatRuntime.GarbageCollectorGrip();
-        const inputSlice = functionGarbageCollectorGrip.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, input));
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this, inputSlice];
-        
-        const result = wasm.icu4x_LineSegmenter_segment_utf16_mv1(this.ffiValue, ...inputSlice.splat());
-    
-        try {
-            return new LineBreakIteratorUtf16(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionGarbageCollectorGrip.releaseToGarbageCollector();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.d.ts
deleted file mode 100644
index 3192a07..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { ListLength } from "./ListLength"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `ListFormatter`](https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html) for more information.
-*/
-
-
-export class ListFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createAndWithLength(locale: Locale, length: ListLength): ListFormatter;
-
-    static createAndWithLengthAndProvider(provider: DataProvider, locale: Locale, length: ListLength): ListFormatter;
-
-    static createOrWithLength(locale: Locale, length: ListLength): ListFormatter;
-
-    static createOrWithLengthAndProvider(provider: DataProvider, locale: Locale, length: ListLength): ListFormatter;
-
-    static createUnitWithLength(locale: Locale, length: ListLength): ListFormatter;
-
-    static createUnitWithLengthAndProvider(provider: DataProvider, locale: Locale, length: ListLength): ListFormatter;
-
-    format(list: Array<string>): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.mjs
deleted file mode 100644
index 10d2921b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListFormatter.mjs
+++ /dev/null
@@ -1,175 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { ListLength } from "./ListLength.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `ListFormatter`](https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html) for more information.
-*/
-const ListFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ListFormatter_destroy_mv1(ptr);
-});
-
-export class ListFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ListFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ListFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createAndWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_and_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createAndWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_and_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createOrWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_or_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createOrWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_or_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createUnitWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_unit_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createUnitWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ListFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    format(list) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const listSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.strs(wasm, list, "string16"));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_ListFormatter_format_utf16_mv1(this.ffiValue, ...listSlice.splat(), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.d.ts
deleted file mode 100644
index b3aaa2b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `ListLength`](https://docs.rs/icu/latest/icu/list/options/enum.ListLength.html) for more information.
-*/
-
-
-export class ListLength {
-    
-
-    static fromValue(value : ListLength | string) : ListLength; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Wide : ListLength;
-    static Short : ListLength;
-    static Narrow : ListLength;
-
-    constructor(value: ListLength | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.mjs
deleted file mode 100644
index afc6981c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ListLength.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `ListLength`](https://docs.rs/icu/latest/icu/list/options/enum.ListLength.html) for more information.
-*/
-
-
-export class ListLength {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Wide", 0],
-        ["Short", 1],
-        ["Narrow", 2]
-    ]);
-
-    static getAllEntries() {
-        return ListLength.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return ListLength.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof ListLength) {
-            return value;
-        }
-
-        let intVal = ListLength.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return ListLength.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a ListLength and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new ListLength(value);
-    }
-
-    get value() {
-        return [...ListLength.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new ListLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new ListLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new ListLength(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Wide = ListLength.#objectValues[0];
-    static Short = ListLength.#objectValues[1];
-    static Narrow = ListLength.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.d.ts
deleted file mode 100644
index 94e1e90..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.d.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-// generated by diplomat-tool
-import type { LocaleParseError } from "./LocaleParseError"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Locale, capable of representing strings like `"en-US"`.
-*
-*See the [Rust documentation for `Locale`](https://docs.rs/icu/latest/icu/locale/struct.Locale.html) for more information.
-*/
-
-
-export class Locale {
-    
-    get ffiValue(): pointer;
-
-    static fromString(name: string): Locale;
-
-    static und(): Locale;
-
-    clone(): Locale;
-
-    get basename(): string;
-
-    getUnicodeExtension(s: string): string | null;
-
-    get language(): string;
-
-    set language(s: string);
-
-    get region(): string | null;
-
-    set region(s: string);
-
-    get script(): string | null;
-
-    set script(s: string);
-
-    static normalize(s: string): string;
-
-    toString(): string;
-
-    normalizingEq(other: string): boolean;
-
-    compareToString(other: string): number;
-
-    compareTo(other: Locale): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.mjs
deleted file mode 100644
index 35edae5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Locale.mjs
+++ /dev/null
@@ -1,320 +0,0 @@
-// generated by diplomat-tool
-import { LocaleParseError } from "./LocaleParseError.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Locale, capable of representing strings like `"en-US"`.
-*
-*See the [Rust documentation for `Locale`](https://docs.rs/icu/latest/icu/locale/struct.Locale.html) for more information.
-*/
-const Locale_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Locale_destroy_mv1(ptr);
-});
-
-export class Locale {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Locale is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Locale_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static fromString(name) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, name));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Locale_from_string_mv1(diplomatReceive.buffer, ...nameSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-            return new Locale(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static und() {
-        const result = wasm.icu4x_Locale_und_mv1();
-    
-        try {
-            return new Locale(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    clone() {
-        const result = wasm.icu4x_Locale_clone_mv1(this.ffiValue);
-    
-        try {
-            return new Locale(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    get basename() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Locale_basename_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    getUnicodeExtension(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_Locale_get_unicode_extension_mv1(this.ffiValue, ...sSlice.splat(), write.buffer);
-    
-        try {
-            return result === 0 ? null : write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    get language() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Locale_language_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    set language(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Locale_set_language_mv1(diplomatReceive.buffer, this.ffiValue, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    get region() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_Locale_region_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return result === 0 ? null : write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    set region(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Locale_set_region_mv1(diplomatReceive.buffer, this.ffiValue, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    get script() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_Locale_script_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return result === 0 ? null : write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    set script(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Locale_set_script_mv1(diplomatReceive.buffer, this.ffiValue, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-    
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static normalize(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_Locale_normalize_mv1(diplomatReceive.buffer, ...sSlice.splat(), write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    toString() {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_Locale_to_string_mv1(this.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    normalizingEq(other) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const otherSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, other));
-        
-        const result = wasm.icu4x_Locale_normalizing_eq_mv1(this.ffiValue, ...otherSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    compareToString(other) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const otherSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, other));
-        
-        const result = wasm.icu4x_Locale_compare_to_string_mv1(this.ffiValue, ...otherSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    compareTo(other) {
-        const result = wasm.icu4x_Locale_compare_to_mv1(this.ffiValue, other.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.d.ts
deleted file mode 100644
index 04f69cb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { TransformResult } from "./TransformResult"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A locale canonicalizer.
-*
-*See the [Rust documentation for `LocaleCanonicalizer`](https://docs.rs/icu/latest/icu/locale/struct.LocaleCanonicalizer.html) for more information.
-*/
-
-
-export class LocaleCanonicalizer {
-    
-    get ffiValue(): pointer;
-
-    static createCommonWithProvider(provider: DataProvider): LocaleCanonicalizer;
-
-    static createExtended(): LocaleCanonicalizer;
-
-    static createExtendedWithProvider(provider: DataProvider): LocaleCanonicalizer;
-
-    canonicalize(locale: Locale): TransformResult;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.mjs
deleted file mode 100644
index ab230208..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleCanonicalizer.mjs
+++ /dev/null
@@ -1,122 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { TransformResult } from "./TransformResult.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A locale canonicalizer.
-*
-*See the [Rust documentation for `LocaleCanonicalizer`](https://docs.rs/icu/latest/icu/locale/struct.LocaleCanonicalizer.html) for more information.
-*/
-const LocaleCanonicalizer_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleCanonicalizer_destroy_mv1(ptr);
-});
-
-export class LocaleCanonicalizer {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleCanonicalizer is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleCanonicalizer_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_LocaleCanonicalizer_create_common_mv1();
-    
-        try {
-            return new LocaleCanonicalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCommonWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleCanonicalizer_create_common_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleCanonicalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createExtended() {
-        const result = wasm.icu4x_LocaleCanonicalizer_create_extended_mv1();
-    
-        try {
-            return new LocaleCanonicalizer(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createExtendedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleCanonicalizer_create_extended_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleCanonicalizer(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    canonicalize(locale) {
-        const result = wasm.icu4x_LocaleCanonicalizer_canonicalize_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new TransformResult(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.d.ts
deleted file mode 100644
index 795c039..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Direction`](https://docs.rs/icu/latest/icu/locale/enum.Direction.html) for more information.
-*/
-
-
-export class LocaleDirection {
-    
-
-    static fromValue(value : LocaleDirection | string) : LocaleDirection; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static LeftToRight : LocaleDirection;
-    static RightToLeft : LocaleDirection;
-    static Unknown : LocaleDirection;
-
-    constructor(value: LocaleDirection | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.mjs
deleted file mode 100644
index 08c2e92..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirection.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Direction`](https://docs.rs/icu/latest/icu/locale/enum.Direction.html) for more information.
-*/
-
-
-export class LocaleDirection {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["LeftToRight", 0],
-        ["RightToLeft", 1],
-        ["Unknown", 2]
-    ]);
-
-    static getAllEntries() {
-        return LocaleDirection.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LocaleDirection.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LocaleDirection) {
-            return value;
-        }
-
-        let intVal = LocaleDirection.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LocaleDirection.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LocaleDirection and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LocaleDirection(value);
-    }
-
-    get value() {
-        return [...LocaleDirection.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LocaleDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LocaleDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LocaleDirection(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static LeftToRight = LocaleDirection.#objectValues[0];
-    static RightToLeft = LocaleDirection.#objectValues[1];
-    static Unknown = LocaleDirection.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.d.ts
deleted file mode 100644
index 79d04d8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { LocaleDirection } from "./LocaleDirection"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LocaleDirectionality`](https://docs.rs/icu/latest/icu/locale/struct.LocaleDirectionality.html) for more information.
-*/
-
-
-export class LocaleDirectionality {
-    
-    get ffiValue(): pointer;
-
-    static createCommonWithProvider(provider: DataProvider): LocaleDirectionality;
-
-    static createExtended(): LocaleDirectionality;
-
-    static createExtendedWithProvider(provider: DataProvider): LocaleDirectionality;
-
-    get(locale: Locale): LocaleDirection;
-
-    isLeftToRight(locale: Locale): boolean;
-
-    isRightToLeft(locale: Locale): boolean;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.mjs
deleted file mode 100644
index 6ff0b79..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDirectionality.mjs
+++ /dev/null
@@ -1,140 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { LocaleDirection } from "./LocaleDirection.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LocaleDirectionality`](https://docs.rs/icu/latest/icu/locale/struct.LocaleDirectionality.html) for more information.
-*/
-const LocaleDirectionality_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleDirectionality_destroy_mv1(ptr);
-});
-
-export class LocaleDirectionality {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleDirectionality is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleDirectionality_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_LocaleDirectionality_create_common_mv1();
-    
-        try {
-            return new LocaleDirectionality(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCommonWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleDirectionality_create_common_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleDirectionality(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createExtended() {
-        const result = wasm.icu4x_LocaleDirectionality_create_extended_mv1();
-    
-        try {
-            return new LocaleDirectionality(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createExtendedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleDirectionality_create_extended_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleDirectionality(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get(locale) {
-        const result = wasm.icu4x_LocaleDirectionality_get_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new LocaleDirection(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    isLeftToRight(locale) {
-        const result = wasm.icu4x_LocaleDirectionality_is_left_to_right_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    isRightToLeft(locale) {
-        const result = wasm.icu4x_LocaleDirectionality_is_right_to_left_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.d.ts
deleted file mode 100644
index ffecc878..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { DisplayNamesOptions } from "./DisplayNamesOptions"
-import type { DisplayNamesOptions_obj } from "./DisplayNamesOptions"
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `LocaleDisplayNamesFormatter`](https://docs.rs/icu/latest/icu/displaynames/struct.LocaleDisplayNamesFormatter.html) for more information.
-*/
-
-
-export class LocaleDisplayNamesFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider, locale: Locale, options: DisplayNamesOptions_obj): LocaleDisplayNamesFormatter;
-
-    of(locale: Locale): string;
-
-    constructor(locale: Locale, options: DisplayNamesOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.mjs
deleted file mode 100644
index 7bfb27b9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleDisplayNamesFormatter.mjs
+++ /dev/null
@@ -1,111 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { DisplayNamesOptions } from "./DisplayNamesOptions.mjs"
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `LocaleDisplayNamesFormatter`](https://docs.rs/icu/latest/icu/displaynames/struct.LocaleDisplayNamesFormatter.html) for more information.
-*/
-const LocaleDisplayNamesFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleDisplayNamesFormatter_destroy_mv1(ptr);
-});
-
-export class LocaleDisplayNamesFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleDisplayNamesFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleDisplayNamesFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor(locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(diplomatReceive.buffer, locale.ffiValue, ...DisplayNamesOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleDisplayNamesFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithProvider(provider, locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleDisplayNamesFormatter_create_v1_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...DisplayNamesOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleDisplayNamesFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    of(locale) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_LocaleDisplayNamesFormatter_of_mv1(this.ffiValue, locale.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(locale, options) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.d.ts
deleted file mode 100644
index ddeebddf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { TransformResult } from "./TransformResult"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A locale expander.
-*
-*See the [Rust documentation for `LocaleExpander`](https://docs.rs/icu/latest/icu/locale/struct.LocaleExpander.html) for more information.
-*/
-
-
-export class LocaleExpander {
-    
-    get ffiValue(): pointer;
-
-    static createCommonWithProvider(provider: DataProvider): LocaleExpander;
-
-    static createExtended(): LocaleExpander;
-
-    static createExtendedWithProvider(provider: DataProvider): LocaleExpander;
-
-    maximize(locale: Locale): TransformResult;
-
-    minimize(locale: Locale): TransformResult;
-
-    minimizeFavorScript(locale: Locale): TransformResult;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.mjs
deleted file mode 100644
index 486e114..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleExpander.mjs
+++ /dev/null
@@ -1,142 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { TransformResult } from "./TransformResult.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A locale expander.
-*
-*See the [Rust documentation for `LocaleExpander`](https://docs.rs/icu/latest/icu/locale/struct.LocaleExpander.html) for more information.
-*/
-const LocaleExpander_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleExpander_destroy_mv1(ptr);
-});
-
-export class LocaleExpander {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleExpander is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleExpander_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_LocaleExpander_create_common_mv1();
-    
-        try {
-            return new LocaleExpander(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createCommonWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleExpander_create_common_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleExpander(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createExtended() {
-        const result = wasm.icu4x_LocaleExpander_create_extended_mv1();
-    
-        try {
-            return new LocaleExpander(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createExtendedWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleExpander_create_extended_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleExpander(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    maximize(locale) {
-        const result = wasm.icu4x_LocaleExpander_maximize_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new TransformResult(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    minimize(locale) {
-        const result = wasm.icu4x_LocaleExpander_minimize_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new TransformResult(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    minimizeFavorScript(locale) {
-        const result = wasm.icu4x_LocaleExpander_minimize_favor_script_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new TransformResult(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.d.ts
deleted file mode 100644
index c2e2896..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// generated by diplomat-tool
-import type { LocaleFallbackPriority } from "./LocaleFallbackPriority"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Collection of configurations for the ICU4X fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbackConfig`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackConfig.html) for more information.
-*/
-type LocaleFallbackConfig_obj = {
-    priority: LocaleFallbackPriority;
-};
-
-
-
-export class LocaleFallbackConfig {
-    
-    get priority() : LocaleFallbackPriority; 
-    set priority(value: LocaleFallbackPriority); 
-    
-    /** Create `LocaleFallbackConfig` from an object that contains all of `LocaleFallbackConfig`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : LocaleFallbackConfig_obj) : LocaleFallbackConfig;
-
-
-    constructor(structObj : LocaleFallbackConfig_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.mjs
deleted file mode 100644
index d8f08342..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackConfig.mjs
+++ /dev/null
@@ -1,95 +0,0 @@
-// generated by diplomat-tool
-import { LocaleFallbackPriority } from "./LocaleFallbackPriority.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Collection of configurations for the ICU4X fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbackConfig`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackConfig.html) for more information.
-*/
-
-
-export class LocaleFallbackConfig {
-    
-    #priority;
-    
-    get priority()  {
-        return this.#priority;
-    } 
-    set priority(value) {
-        this.#priority = value;
-    }
-    
-    /** Create `LocaleFallbackConfig` from an object that contains all of `LocaleFallbackConfig`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new LocaleFallbackConfig(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("LocaleFallbackConfig's constructor takes an object of LocaleFallbackConfig's fields.");
-        }
-
-        if ("priority" in structObj) {
-            this.#priority = structObj.priority;
-        } else {
-            throw new Error("Missing required field priority.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#priority.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof LocaleFallbackConfig) {
-            return obj;
-        }
-
-        return LocaleFallbackConfig.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#priority.ffiValue, Int32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("LocaleFallbackConfig._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const priorityDeref = diplomatRuntime.enumDiscriminant(wasm, ptr);
-        structObj.priority = new LocaleFallbackPriority(diplomatRuntime.internalConstructor, priorityDeref);
-
-        return new LocaleFallbackConfig(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.d.ts
deleted file mode 100644
index 9b54a04..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-// generated by diplomat-tool
-import type { Locale } from "./Locale"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An iterator over the locale under fallback.
-*
-*See the [Rust documentation for `LocaleFallbackIterator`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackIterator.html) for more information.
-*/
-
-
-export class LocaleFallbackIterator {
-    
-    get ffiValue(): pointer;
-
-    next() : IteratorResult<Locale>;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.mjs
deleted file mode 100644
index 012145d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackIterator.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import { Locale } from "./Locale.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An iterator over the locale under fallback.
-*
-*See the [Rust documentation for `LocaleFallbackIterator`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackIterator.html) for more information.
-*/
-const LocaleFallbackIterator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleFallbackIterator_destroy_mv1(ptr);
-});
-
-export class LocaleFallbackIterator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleFallbackIterator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleFallbackIterator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #iteratorNext() {
-        const result = wasm.icu4x_LocaleFallbackIterator_next_mv1(this.ffiValue);
-    
-        try {
-            return result === 0 ? null : new Locale(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    next() {
-        const out = this.#iteratorNext();
-
-        return {
-            value: out,
-            done: out === null,
-        };
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.d.ts
deleted file mode 100644
index 348c9c0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Priority mode for the ICU4X fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbackPriority`](https://docs.rs/icu/latest/icu/locale/fallback/enum.LocaleFallbackPriority.html) for more information.
-*/
-
-
-export class LocaleFallbackPriority {
-    
-
-    static fromValue(value : LocaleFallbackPriority | string) : LocaleFallbackPriority; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Language : LocaleFallbackPriority;
-    static Region : LocaleFallbackPriority;
-
-    constructor(value: LocaleFallbackPriority | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.mjs
deleted file mode 100644
index 952f2a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackPriority.mjs
+++ /dev/null
@@ -1,72 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Priority mode for the ICU4X fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbackPriority`](https://docs.rs/icu/latest/icu/locale/fallback/enum.LocaleFallbackPriority.html) for more information.
-*/
-
-
-export class LocaleFallbackPriority {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Language", 0],
-        ["Region", 1]
-    ]);
-
-    static getAllEntries() {
-        return LocaleFallbackPriority.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LocaleFallbackPriority.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LocaleFallbackPriority) {
-            return value;
-        }
-
-        let intVal = LocaleFallbackPriority.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LocaleFallbackPriority.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LocaleFallbackPriority and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LocaleFallbackPriority(value);
-    }
-
-    get value() {
-        return [...LocaleFallbackPriority.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LocaleFallbackPriority(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LocaleFallbackPriority(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Language = LocaleFallbackPriority.#objectValues[0];
-    static Region = LocaleFallbackPriority.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.d.ts
deleted file mode 100644
index 7e7b706..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { LocaleFallbackConfig } from "./LocaleFallbackConfig"
-import type { LocaleFallbackConfig_obj } from "./LocaleFallbackConfig"
-import type { LocaleFallbackerWithConfig } from "./LocaleFallbackerWithConfig"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object that runs the ICU4X locale fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbacker`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbacker.html) for more information.
-*/
-
-
-export class LocaleFallbacker {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): LocaleFallbacker;
-
-    static withoutData(): LocaleFallbacker;
-
-    forConfig(config: LocaleFallbackConfig_obj): LocaleFallbackerWithConfig;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.mjs
deleted file mode 100644
index a13b1aa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbacker.mjs
+++ /dev/null
@@ -1,111 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { LocaleFallbackConfig } from "./LocaleFallbackConfig.mjs"
-import { LocaleFallbackerWithConfig } from "./LocaleFallbackerWithConfig.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object that runs the ICU4X locale fallback algorithm.
-*
-*See the [Rust documentation for `LocaleFallbacker`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbacker.html) for more information.
-*/
-const LocaleFallbacker_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleFallbacker_destroy_mv1(ptr);
-});
-
-export class LocaleFallbacker {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleFallbacker is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleFallbacker_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_LocaleFallbacker_create_mv1();
-    
-        try {
-            return new LocaleFallbacker(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_LocaleFallbacker_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new LocaleFallbacker(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static withoutData() {
-        const result = wasm.icu4x_LocaleFallbacker_without_data_mv1();
-    
-        try {
-            return new LocaleFallbacker(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    forConfig(config) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_LocaleFallbacker_for_config_mv1(this.ffiValue, ...LocaleFallbackConfig._fromSuppliedValue(diplomatRuntime.internalConstructor, config)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            return new LocaleFallbackerWithConfig(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.d.ts
deleted file mode 100644
index 50a01cda..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { Locale } from "./Locale"
-import type { LocaleFallbackIterator } from "./LocaleFallbackIterator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object that runs the ICU4X locale fallback algorithm with specific configurations.
-*
-*See the [Rust documentation for `LocaleFallbacker`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbacker.html) for more information.
-*
-*See the [Rust documentation for `LocaleFallbackerWithConfig`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackerWithConfig.html) for more information.
-*/
-
-
-export class LocaleFallbackerWithConfig {
-    
-    get ffiValue(): pointer;
-
-    fallbackForLocale(locale: Locale): LocaleFallbackIterator;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.mjs
deleted file mode 100644
index b103f47..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleFallbackerWithConfig.mjs
+++ /dev/null
@@ -1,67 +0,0 @@
-// generated by diplomat-tool
-import { Locale } from "./Locale.mjs"
-import { LocaleFallbackIterator } from "./LocaleFallbackIterator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object that runs the ICU4X locale fallback algorithm with specific configurations.
-*
-*See the [Rust documentation for `LocaleFallbacker`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbacker.html) for more information.
-*
-*See the [Rust documentation for `LocaleFallbackerWithConfig`](https://docs.rs/icu/latest/icu/locale/fallback/struct.LocaleFallbackerWithConfig.html) for more information.
-*/
-const LocaleFallbackerWithConfig_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_LocaleFallbackerWithConfig_destroy_mv1(ptr);
-});
-
-export class LocaleFallbackerWithConfig {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("LocaleFallbackerWithConfig is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            LocaleFallbackerWithConfig_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    fallbackForLocale(locale) {
-        // This lifetime edge depends on lifetimes 'a, 'b
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(this.ffiValue, locale.ffiValue);
-    
-        try {
-            return new LocaleFallbackIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.d.ts
deleted file mode 100644
index bcaf8ab..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/locale/enum.ParseError.html)
-*/
-
-
-export class LocaleParseError {
-    
-
-    static fromValue(value : LocaleParseError | string) : LocaleParseError; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Unknown : LocaleParseError;
-    static Language : LocaleParseError;
-    static Subtag : LocaleParseError;
-    static Extension : LocaleParseError;
-
-    constructor(value: LocaleParseError | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.mjs
deleted file mode 100644
index 2310b051..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/LocaleParseError.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/locale/enum.ParseError.html)
-*/
-
-
-export class LocaleParseError {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Unknown", 0],
-        ["Language", 1],
-        ["Subtag", 2],
-        ["Extension", 3]
-    ]);
-
-    static getAllEntries() {
-        return LocaleParseError.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return LocaleParseError.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof LocaleParseError) {
-            return value;
-        }
-
-        let intVal = LocaleParseError.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return LocaleParseError.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a LocaleParseError and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new LocaleParseError(value);
-    }
-
-    get value() {
-        return [...LocaleParseError.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-    ];
-
-    static Unknown = LocaleParseError.#objectValues[0];
-    static Language = LocaleParseError.#objectValues[1];
-    static Subtag = LocaleParseError.#objectValues[2];
-    static Extension = LocaleParseError.#objectValues[3];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.d.ts
deleted file mode 100644
index 76764ef..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object allowing control over the logging used
-*/
-
-
-export class Logger {
-    
-    get ffiValue(): pointer;
-
-    static initSimpleLogger(): boolean;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.mjs
deleted file mode 100644
index 7b04a33..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Logger.mjs
+++ /dev/null
@@ -1,54 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object allowing control over the logging used
-*/
-const Logger_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Logger_destroy_mv1(ptr);
-});
-
-export class Logger {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Logger is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Logger_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static initSimpleLogger() {
-        const result = wasm.icu4x_Logger_init_simple_logger_mv1();
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.d.ts
deleted file mode 100644
index e98b4126..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Measurement Unit object which represents a single unit of measurement
-*such as `meter`, `second`, `kilometer-per-hour`, `square-meter`, etc.
-*
-*You can create an instance of this object using [`MeasureUnitParser`] by calling the `parse_measure_unit` method.
-*
-*See the [Rust documentation for `MeasureUnit`](https://docs.rs/icu/latest/icu/experimental/measure/measureunit/struct.MeasureUnit.html) for more information.
-*/
-
-
-export class MeasureUnit {
-    
-    get ffiValue(): pointer;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.mjs
deleted file mode 100644
index 6de1bdf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnit.mjs
+++ /dev/null
@@ -1,49 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Measurement Unit object which represents a single unit of measurement
-*such as `meter`, `second`, `kilometer-per-hour`, `square-meter`, etc.
-*
-*You can create an instance of this object using [`MeasureUnitParser`] by calling the `parse_measure_unit` method.
-*
-*See the [Rust documentation for `MeasureUnit`](https://docs.rs/icu/latest/icu/experimental/measure/measureunit/struct.MeasureUnit.html) for more information.
-*/
-const MeasureUnit_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_MeasureUnit_destroy_mv1(ptr);
-});
-
-export class MeasureUnit {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("MeasureUnit is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            MeasureUnit_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.d.ts
deleted file mode 100644
index 27a5dde..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-// generated by diplomat-tool
-import type { MeasureUnit } from "./MeasureUnit"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Measurement Unit parser object which is capable of parsing the CLDR unit identifier
-*(e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-*
-*See the [Rust documentation for `MeasureUnitParser`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html) for more information.
-*/
-
-
-export class MeasureUnitParser {
-    
-    get ffiValue(): pointer;
-
-    parse(unitId: string): MeasureUnit | null;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.mjs
deleted file mode 100644
index 4797622..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/MeasureUnitParser.mjs
+++ /dev/null
@@ -1,68 +0,0 @@
-// generated by diplomat-tool
-import { MeasureUnit } from "./MeasureUnit.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Measurement Unit parser object which is capable of parsing the CLDR unit identifier
-*(e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-*
-*See the [Rust documentation for `MeasureUnitParser`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html) for more information.
-*/
-const MeasureUnitParser_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_MeasureUnitParser_destroy_mv1(ptr);
-});
-
-export class MeasureUnitParser {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("MeasureUnitParser is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            MeasureUnitParser_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    parse(unitId) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const unitIdSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, unitId));
-        
-        const result = wasm.icu4x_MeasureUnitParser_parse_mv1(this.ffiValue, ...unitIdSlice.splat());
-    
-        try {
-            return result === 0 ? null : new MeasureUnit(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.d.ts
deleted file mode 100644
index 0e03e939..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { Locale } from "./Locale"
-import type { Time } from "./Time"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X NoCalendarFormatter object capable of formatting an [`Time`] type (and others) as a string
-*
-*See the [Rust documentation for `NoCalendarFormatter`](https://docs.rs/icu/latest/icu/datetime/type.NoCalendarFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.T.html)
-*/
-
-
-export class NoCalendarFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithLength(locale: Locale, length: DateTimeLength): NoCalendarFormatter;
-
-    static createWithLengthAndProvider(provider: DataProvider, locale: Locale, length: DateTimeLength): NoCalendarFormatter;
-
-    format(value: Time): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.mjs
deleted file mode 100644
index 2ecd42d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/NoCalendarFormatter.mjs
+++ /dev/null
@@ -1,102 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { Locale } from "./Locale.mjs"
-import { Time } from "./Time.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X NoCalendarFormatter object capable of formatting an [`Time`] type (and others) as a string
-*
-*See the [Rust documentation for `NoCalendarFormatter`](https://docs.rs/icu/latest/icu/datetime/type.NoCalendarFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.T.html)
-*/
-const NoCalendarFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_NoCalendarFormatter_destroy_mv1(ptr);
-});
-
-export class NoCalendarFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("NoCalendarFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            NoCalendarFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_NoCalendarFormatter_create_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new NoCalendarFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_NoCalendarFormatter_create_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new NoCalendarFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    format(value) {
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_NoCalendarFormatter_format_mv1(this.ffiValue, value.ffiValue, write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.d.ts
deleted file mode 100644
index ccd66b4a1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class PluralCategories {
-    
-    get zero() : boolean;
-    
-    get one() : boolean;
-    
-    get two() : boolean;
-    
-    get few() : boolean;
-    
-    get many() : boolean;
-    
-    get other() : boolean;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.mjs
deleted file mode 100644
index b78b977e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategories.mjs
+++ /dev/null
@@ -1,157 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class PluralCategories {
-    
-    #zero;
-    
-    get zero()  {
-        return this.#zero;
-    }
-    
-    #one;
-    
-    get one()  {
-        return this.#one;
-    }
-    
-    #two;
-    
-    get two()  {
-        return this.#two;
-    }
-    
-    #few;
-    
-    get few()  {
-        return this.#few;
-    }
-    
-    #many;
-    
-    get many()  {
-        return this.#many;
-    }
-    
-    #other;
-    
-    get other()  {
-        return this.#other;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("PluralCategories's constructor takes an object of PluralCategories's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("PluralCategories is an out struct and can only be created internally.");
-        }
-        if ("zero" in structObj) {
-            this.#zero = structObj.zero;
-        } else {
-            throw new Error("Missing required field zero.");
-        }
-
-        if ("one" in structObj) {
-            this.#one = structObj.one;
-        } else {
-            throw new Error("Missing required field one.");
-        }
-
-        if ("two" in structObj) {
-            this.#two = structObj.two;
-        } else {
-            throw new Error("Missing required field two.");
-        }
-
-        if ("few" in structObj) {
-            this.#few = structObj.few;
-        } else {
-            throw new Error("Missing required field few.");
-        }
-
-        if ("many" in structObj) {
-            this.#many = structObj.many;
-        } else {
-            throw new Error("Missing required field many.");
-        }
-
-        if ("other" in structObj) {
-            this.#other = structObj.other;
-        } else {
-            throw new Error("Missing required field other.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#zero, this.#one, this.#two, this.#few, this.#many, this.#other]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof PluralCategories) {
-            return obj;
-        }
-
-        return PluralCategories.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#zero, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 1, this.#one, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 2, this.#two, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 3, this.#few, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#many, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 5, this.#other, Uint8Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("PluralCategories._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const zeroDeref = (new Uint8Array(wasm.memory.buffer, ptr, 1))[0] === 1;
-        structObj.zero = zeroDeref;
-        const oneDeref = (new Uint8Array(wasm.memory.buffer, ptr + 1, 1))[0] === 1;
-        structObj.one = oneDeref;
-        const twoDeref = (new Uint8Array(wasm.memory.buffer, ptr + 2, 1))[0] === 1;
-        structObj.two = twoDeref;
-        const fewDeref = (new Uint8Array(wasm.memory.buffer, ptr + 3, 1))[0] === 1;
-        structObj.few = fewDeref;
-        const manyDeref = (new Uint8Array(wasm.memory.buffer, ptr + 4, 1))[0] === 1;
-        structObj.many = manyDeref;
-        const otherDeref = (new Uint8Array(wasm.memory.buffer, ptr + 5, 1))[0] === 1;
-        structObj.other = otherDeref;
-
-        return new PluralCategories(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.d.ts
deleted file mode 100644
index ce42191..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `PluralCategory`](https://docs.rs/icu/latest/icu/plurals/enum.PluralCategory.html) for more information.
-*/
-
-
-export class PluralCategory {
-    
-
-    static fromValue(value : PluralCategory | string) : PluralCategory; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Zero : PluralCategory;
-    static One : PluralCategory;
-    static Two : PluralCategory;
-    static Few : PluralCategory;
-    static Many : PluralCategory;
-    static Other : PluralCategory;
-
-    static getForCldrString(s: string): PluralCategory | null;
-
-    constructor(value: PluralCategory | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.mjs
deleted file mode 100644
index 0e5c37f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralCategory.mjs
+++ /dev/null
@@ -1,105 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `PluralCategory`](https://docs.rs/icu/latest/icu/plurals/enum.PluralCategory.html) for more information.
-*/
-
-
-export class PluralCategory {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Zero", 0],
-        ["One", 1],
-        ["Two", 2],
-        ["Few", 3],
-        ["Many", 4],
-        ["Other", 5]
-    ]);
-
-    static getAllEntries() {
-        return PluralCategory.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return PluralCategory.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof PluralCategory) {
-            return value;
-        }
-
-        let intVal = PluralCategory.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return PluralCategory.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a PluralCategory and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new PluralCategory(value);
-    }
-
-    get value() {
-        return [...PluralCategory.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-    ];
-
-    static Zero = PluralCategory.#objectValues[0];
-    static One = PluralCategory.#objectValues[1];
-    static Two = PluralCategory.#objectValues[2];
-    static Few = PluralCategory.#objectValues[3];
-    static Many = PluralCategory.#objectValues[4];
-    static Other = PluralCategory.#objectValues[5];
-
-    static getForCldrString(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralCategory_get_for_cldr_string_mv1(diplomatReceive.buffer, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new PluralCategory(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.d.ts
deleted file mode 100644
index a48c8d8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { Decimal } from "./Decimal"
-import type { FixedDecimalParseError } from "./FixedDecimalParseError"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `PluralOperands`](https://docs.rs/icu/latest/icu/plurals/struct.PluralOperands.html) for more information.
-*/
-
-
-export class PluralOperands {
-    
-    get ffiValue(): pointer;
-
-    static fromString(s: string): PluralOperands;
-
-    static fromBigInt(i: bigint): PluralOperands;
-
-    static fromFixedDecimal(x: Decimal): PluralOperands;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.mjs
deleted file mode 100644
index d74fcb8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralOperands.mjs
+++ /dev/null
@@ -1,90 +0,0 @@
-// generated by diplomat-tool
-import { Decimal } from "./Decimal.mjs"
-import { FixedDecimalParseError } from "./FixedDecimalParseError.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `PluralOperands`](https://docs.rs/icu/latest/icu/plurals/struct.PluralOperands.html) for more information.
-*/
-const PluralOperands_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_PluralOperands_destroy_mv1(ptr);
-});
-
-export class PluralOperands {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("PluralOperands is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            PluralOperands_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static fromString(s) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralOperands_from_string_mv1(diplomatReceive.buffer, ...sSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new FixedDecimalParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('FixedDecimalParseError: ' + cause.value, { cause });
-            }
-            return new PluralOperands(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static fromBigInt(i) {
-        const result = wasm.icu4x_PluralOperands_from_int64_mv1(i);
-    
-        try {
-            return new PluralOperands(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static fromFixedDecimal(x) {
-        const result = wasm.icu4x_PluralOperands_from_fixed_decimal_mv1(x.ffiValue);
-    
-        try {
-            return new PluralOperands(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.d.ts
deleted file mode 100644
index bc372877..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { PluralCategories } from "./PluralCategories"
-import type { PluralCategory } from "./PluralCategory"
-import type { PluralOperands } from "./PluralOperands"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `PluralRules`](https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html) for more information.
-*/
-
-
-export class PluralRules {
-    
-    get ffiValue(): pointer;
-
-    static createCardinal(locale: Locale): PluralRules;
-
-    static createCardinalWithProvider(provider: DataProvider, locale: Locale): PluralRules;
-
-    static createOrdinal(locale: Locale): PluralRules;
-
-    static createOrdinalWithProvider(provider: DataProvider, locale: Locale): PluralRules;
-
-    categoryFor(op: PluralOperands): PluralCategory;
-
-    get categories(): PluralCategories;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.mjs
deleted file mode 100644
index 23899bd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PluralRules.mjs
+++ /dev/null
@@ -1,146 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { PluralCategories } from "./PluralCategories.mjs"
-import { PluralCategory } from "./PluralCategory.mjs"
-import { PluralOperands } from "./PluralOperands.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `PluralRules`](https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html) for more information.
-*/
-const PluralRules_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_PluralRules_destroy_mv1(ptr);
-});
-
-export class PluralRules {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("PluralRules is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            PluralRules_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createCardinal(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralRules_create_cardinal_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PluralRules(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createCardinalWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralRules_create_cardinal_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PluralRules(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createOrdinal(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralRules_create_ordinal_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PluralRules(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createOrdinalWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PluralRules_create_ordinal_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PluralRules(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    categoryFor(op) {
-        const result = wasm.icu4x_PluralRules_category_for_mv1(this.ffiValue, op.ffiValue);
-    
-        try {
-            return new PluralCategory(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get categories() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 6, 1, false);
-        
-        const result = wasm.icu4x_PluralRules_categories_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            return PluralCategories._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.d.ts
deleted file mode 100644
index de51fb7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.d.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A type capable of looking up a property value from a string name.
-*
-*See the [Rust documentation for `PropertyParser`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html) for more information.
-*
-*See the [Rust documentation for `PropertyParserBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParserBorrowed.html) for more information.
-*
-*See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html#method.new) for more information.
-*/
-
-
-export class PropertyValueNameToEnumMapper {
-    
-    get ffiValue(): pointer;
-
-    getStrict(name: string): number;
-
-    getLoose(name: string): number;
-
-    static createGeneralCategory(): PropertyValueNameToEnumMapper;
-
-    static createGeneralCategoryWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createHangulSyllableType(): PropertyValueNameToEnumMapper;
-
-    static createHangulSyllableTypeWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createEastAsianWidth(): PropertyValueNameToEnumMapper;
-
-    static createEastAsianWidthWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createBidiClass(): PropertyValueNameToEnumMapper;
-
-    static createBidiClassWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createIndicSyllabicCategory(): PropertyValueNameToEnumMapper;
-
-    static createIndicSyllabicCategoryWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createLineBreak(): PropertyValueNameToEnumMapper;
-
-    static createLineBreakWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createGraphemeClusterBreak(): PropertyValueNameToEnumMapper;
-
-    static createGraphemeClusterBreakWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createWordBreak(): PropertyValueNameToEnumMapper;
-
-    static createWordBreakWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createSentenceBreak(): PropertyValueNameToEnumMapper;
-
-    static createSentenceBreakWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-
-    static createScript(): PropertyValueNameToEnumMapper;
-
-    static createScriptWithProvider(provider: DataProvider): PropertyValueNameToEnumMapper;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.mjs
deleted file mode 100644
index 972ecc4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/PropertyValueNameToEnumMapper.mjs
+++ /dev/null
@@ -1,364 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A type capable of looking up a property value from a string name.
-*
-*See the [Rust documentation for `PropertyParser`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html) for more information.
-*
-*See the [Rust documentation for `PropertyParserBorrowed`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParserBorrowed.html) for more information.
-*
-*See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/struct.PropertyParser.html#method.new) for more information.
-*/
-const PropertyValueNameToEnumMapper_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_PropertyValueNameToEnumMapper_destroy_mv1(ptr);
-});
-
-export class PropertyValueNameToEnumMapper {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("PropertyValueNameToEnumMapper is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            PropertyValueNameToEnumMapper_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    getStrict(name) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, name));
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(this.ffiValue, ...nameSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    getLoose(name) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, name));
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(this.ffiValue, ...nameSlice.splat());
-    
-        try {
-            return result;
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    static createGeneralCategory() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_general_category_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGeneralCategoryWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_general_category_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createHangulSyllableType() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createHangulSyllableTypeWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_hangul_syllable_type_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createEastAsianWidth() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createEastAsianWidthWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_east_asian_width_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createBidiClass() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_bidi_class_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createBidiClassWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_bidi_class_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createIndicSyllabicCategory() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createIndicSyllabicCategoryWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_indic_syllabic_category_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createLineBreak() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_line_break_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLineBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_line_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createGraphemeClusterBreak() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createGraphemeClusterBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_grapheme_cluster_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWordBreak() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_word_break_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWordBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_word_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createSentenceBreak() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_sentence_break_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createSentenceBreakWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_sentence_break_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createScript() {
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_script_mv1();
-    
-        try {
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createScriptWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_PropertyValueNameToEnumMapper_create_script_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new PropertyValueNameToEnumMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.d.ts
deleted file mode 100644
index ca8ac39..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { DisplayNamesOptions } from "./DisplayNamesOptions"
-import type { DisplayNamesOptions_obj } from "./DisplayNamesOptions"
-import type { Locale } from "./Locale"
-import type { LocaleParseError } from "./LocaleParseError"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `RegionDisplayNames`](https://docs.rs/icu/latest/icu/displaynames/struct.RegionDisplayNames.html) for more information.
-*/
-
-
-export class RegionDisplayNames {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider, locale: Locale, options: DisplayNamesOptions_obj): RegionDisplayNames;
-
-    of(region: string): string;
-
-    constructor(locale: Locale, options: DisplayNamesOptions_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.mjs
deleted file mode 100644
index 71d96a2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/RegionDisplayNames.mjs
+++ /dev/null
@@ -1,127 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { DisplayNamesOptions } from "./DisplayNamesOptions.mjs"
-import { Locale } from "./Locale.mjs"
-import { LocaleParseError } from "./LocaleParseError.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `RegionDisplayNames`](https://docs.rs/icu/latest/icu/displaynames/struct.RegionDisplayNames.html) for more information.
-*/
-const RegionDisplayNames_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_RegionDisplayNames_destroy_mv1(ptr);
-});
-
-export class RegionDisplayNames {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("RegionDisplayNames is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            RegionDisplayNames_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor(locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_RegionDisplayNames_create_v1_mv1(diplomatReceive.buffer, locale.ffiValue, ...DisplayNamesOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new RegionDisplayNames(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithProvider(provider, locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_RegionDisplayNames_create_v1_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, ...DisplayNamesOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}));
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new RegionDisplayNames(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    of(region) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const regionSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, region));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_RegionDisplayNames_of_mv1(diplomatReceive.buffer, this.ffiValue, ...regionSlice.splat(), write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new LocaleParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('LocaleParseError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    constructor(locale, options) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.d.ts
deleted file mode 100644
index 96edf63..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Thin wrapper around a vector that maps visual indices to source indices
-*
-*`map[visualIndex] = sourceIndex`
-*
-*Produced by `reorder_visual()` on [`Bidi`].
-*/
-
-
-export class ReorderedIndexMap {
-    
-    get ffiValue(): pointer;
-
-    get asSlice(): Array<number>;
-
-    get length(): number;
-
-    get isEmpty(): boolean;
-
-    get(index: number): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.mjs
deleted file mode 100644
index 9d664e25..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ReorderedIndexMap.mjs
+++ /dev/null
@@ -1,95 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Thin wrapper around a vector that maps visual indices to source indices
-*
-*`map[visualIndex] = sourceIndex`
-*
-*Produced by `reorder_visual()` on [`Bidi`].
-*/
-const ReorderedIndexMap_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ReorderedIndexMap_destroy_mv1(ptr);
-});
-
-export class ReorderedIndexMap {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ReorderedIndexMap is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ReorderedIndexMap_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    get asSlice() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 8, 4, false);
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_ReorderedIndexMap_as_slice_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            return Array.from(new diplomatRuntime.DiplomatSlicePrimitive(wasm, diplomatReceive.buffer, "u32", aEdges).getValue());
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get length() {
-        const result = wasm.icu4x_ReorderedIndexMap_len_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get isEmpty() {
-        const result = wasm.icu4x_ReorderedIndexMap_is_empty_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get(index) {
-        const result = wasm.icu4x_ReorderedIndexMap_get_mv1(this.ffiValue, index);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.d.ts
deleted file mode 100644
index 2351d3d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.d.ts
+++ /dev/null
@@ -1,195 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `Script`](https://docs.rs/icu/latest/icu/properties/props/struct.Script.html) for more information.
-*/
-
-
-export class Script {
-    
-
-    static fromValue(value : Script | string) : Script; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Adlam : Script;
-    static Ahom : Script;
-    static AnatolianHieroglyphs : Script;
-    static Arabic : Script;
-    static Armenian : Script;
-    static Avestan : Script;
-    static Balinese : Script;
-    static Bamum : Script;
-    static BassaVah : Script;
-    static Batak : Script;
-    static Bengali : Script;
-    static Bhaiksuki : Script;
-    static Bopomofo : Script;
-    static Brahmi : Script;
-    static Braille : Script;
-    static Buginese : Script;
-    static Buhid : Script;
-    static CanadianAboriginal : Script;
-    static Carian : Script;
-    static CaucasianAlbanian : Script;
-    static Chakma : Script;
-    static Cham : Script;
-    static Cherokee : Script;
-    static Chorasmian : Script;
-    static Common : Script;
-    static Coptic : Script;
-    static Cuneiform : Script;
-    static Cypriot : Script;
-    static CyproMinoan : Script;
-    static Cyrillic : Script;
-    static Deseret : Script;
-    static Devanagari : Script;
-    static DivesAkuru : Script;
-    static Dogra : Script;
-    static Duployan : Script;
-    static EgyptianHieroglyphs : Script;
-    static Elbasan : Script;
-    static Elymaic : Script;
-    static Ethiopian : Script;
-    static Georgian : Script;
-    static Glagolitic : Script;
-    static Gothic : Script;
-    static Grantha : Script;
-    static Greek : Script;
-    static Gujarati : Script;
-    static GunjalaGondi : Script;
-    static Gurmukhi : Script;
-    static Han : Script;
-    static Hangul : Script;
-    static HanifiRohingya : Script;
-    static Hanunoo : Script;
-    static Hatran : Script;
-    static Hebrew : Script;
-    static Hiragana : Script;
-    static ImperialAramaic : Script;
-    static Inherited : Script;
-    static InscriptionalPahlavi : Script;
-    static InscriptionalParthian : Script;
-    static Javanese : Script;
-    static Kaithi : Script;
-    static Kannada : Script;
-    static Katakana : Script;
-    static Kawi : Script;
-    static KayahLi : Script;
-    static Kharoshthi : Script;
-    static KhitanSmallScript : Script;
-    static Khmer : Script;
-    static Khojki : Script;
-    static Khudawadi : Script;
-    static Lao : Script;
-    static Latin : Script;
-    static Lepcha : Script;
-    static Limbu : Script;
-    static LinearA : Script;
-    static LinearB : Script;
-    static Lisu : Script;
-    static Lycian : Script;
-    static Lydian : Script;
-    static Mahajani : Script;
-    static Makasar : Script;
-    static Malayalam : Script;
-    static Mandaic : Script;
-    static Manichaean : Script;
-    static Marchen : Script;
-    static MasaramGondi : Script;
-    static Medefaidrin : Script;
-    static MeeteiMayek : Script;
-    static MendeKikakui : Script;
-    static MeroiticCursive : Script;
-    static MeroiticHieroglyphs : Script;
-    static Miao : Script;
-    static Modi : Script;
-    static Mongolian : Script;
-    static Mro : Script;
-    static Multani : Script;
-    static Myanmar : Script;
-    static Nabataean : Script;
-    static NagMundari : Script;
-    static Nandinagari : Script;
-    static Nastaliq : Script;
-    static NewTaiLue : Script;
-    static Newa : Script;
-    static Nko : Script;
-    static Nushu : Script;
-    static NyiakengPuachueHmong : Script;
-    static Ogham : Script;
-    static OlChiki : Script;
-    static OldHungarian : Script;
-    static OldItalic : Script;
-    static OldNorthArabian : Script;
-    static OldPermic : Script;
-    static OldPersian : Script;
-    static OldSogdian : Script;
-    static OldSouthArabian : Script;
-    static OldTurkic : Script;
-    static OldUyghur : Script;
-    static Oriya : Script;
-    static Osage : Script;
-    static Osmanya : Script;
-    static PahawhHmong : Script;
-    static Palmyrene : Script;
-    static PauCinHau : Script;
-    static PhagsPa : Script;
-    static Phoenician : Script;
-    static PsalterPahlavi : Script;
-    static Rejang : Script;
-    static Runic : Script;
-    static Samaritan : Script;
-    static Saurashtra : Script;
-    static Sharada : Script;
-    static Shavian : Script;
-    static Siddham : Script;
-    static SignWriting : Script;
-    static Sinhala : Script;
-    static Sogdian : Script;
-    static SoraSompeng : Script;
-    static Soyombo : Script;
-    static Sundanese : Script;
-    static SylotiNagri : Script;
-    static Syriac : Script;
-    static Tagalog : Script;
-    static Tagbanwa : Script;
-    static TaiLe : Script;
-    static TaiTham : Script;
-    static TaiViet : Script;
-    static Takri : Script;
-    static Tamil : Script;
-    static Tangsa : Script;
-    static Tangut : Script;
-    static Telugu : Script;
-    static Thaana : Script;
-    static Thai : Script;
-    static Tibetan : Script;
-    static Tifinagh : Script;
-    static Tirhuta : Script;
-    static Toto : Script;
-    static Ugaritic : Script;
-    static Unknown : Script;
-    static Vai : Script;
-    static Vithkuqi : Script;
-    static Wancho : Script;
-    static WarangCiti : Script;
-    static Yezidi : Script;
-    static Yi : Script;
-    static ZanabazarSquare : Script;
-
-    static forChar(ch: codepoint): Script;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): Script | null;
-
-    constructor(value: Script | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.mjs
deleted file mode 100644
index 939e5c1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Script.mjs
+++ /dev/null
@@ -1,634 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `Script`](https://docs.rs/icu/latest/icu/properties/props/struct.Script.html) for more information.
-*/
-
-
-export class Script {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Adlam", 167],
-        ["Ahom", 161],
-        ["AnatolianHieroglyphs", 156],
-        ["Arabic", 2],
-        ["Armenian", 3],
-        ["Avestan", 117],
-        ["Balinese", 62],
-        ["Bamum", 130],
-        ["BassaVah", 134],
-        ["Batak", 63],
-        ["Bengali", 4],
-        ["Bhaiksuki", 168],
-        ["Bopomofo", 5],
-        ["Brahmi", 65],
-        ["Braille", 46],
-        ["Buginese", 55],
-        ["Buhid", 44],
-        ["CanadianAboriginal", 40],
-        ["Carian", 104],
-        ["CaucasianAlbanian", 159],
-        ["Chakma", 118],
-        ["Cham", 66],
-        ["Cherokee", 6],
-        ["Chorasmian", 189],
-        ["Common", 0],
-        ["Coptic", 7],
-        ["Cuneiform", 101],
-        ["Cypriot", 47],
-        ["CyproMinoan", 193],
-        ["Cyrillic", 8],
-        ["Deseret", 9],
-        ["Devanagari", 10],
-        ["DivesAkuru", 190],
-        ["Dogra", 178],
-        ["Duployan", 135],
-        ["EgyptianHieroglyphs", 71],
-        ["Elbasan", 136],
-        ["Elymaic", 185],
-        ["Ethiopian", 11],
-        ["Georgian", 12],
-        ["Glagolitic", 56],
-        ["Gothic", 13],
-        ["Grantha", 137],
-        ["Greek", 14],
-        ["Gujarati", 15],
-        ["GunjalaGondi", 179],
-        ["Gurmukhi", 16],
-        ["Han", 17],
-        ["Hangul", 18],
-        ["HanifiRohingya", 182],
-        ["Hanunoo", 43],
-        ["Hatran", 162],
-        ["Hebrew", 19],
-        ["Hiragana", 20],
-        ["ImperialAramaic", 116],
-        ["Inherited", 1],
-        ["InscriptionalPahlavi", 122],
-        ["InscriptionalParthian", 125],
-        ["Javanese", 78],
-        ["Kaithi", 120],
-        ["Kannada", 21],
-        ["Katakana", 22],
-        ["Kawi", 198],
-        ["KayahLi", 79],
-        ["Kharoshthi", 57],
-        ["KhitanSmallScript", 191],
-        ["Khmer", 23],
-        ["Khojki", 157],
-        ["Khudawadi", 145],
-        ["Lao", 24],
-        ["Latin", 25],
-        ["Lepcha", 82],
-        ["Limbu", 48],
-        ["LinearA", 83],
-        ["LinearB", 49],
-        ["Lisu", 131],
-        ["Lycian", 107],
-        ["Lydian", 108],
-        ["Mahajani", 160],
-        ["Makasar", 180],
-        ["Malayalam", 26],
-        ["Mandaic", 84],
-        ["Manichaean", 121],
-        ["Marchen", 169],
-        ["MasaramGondi", 175],
-        ["Medefaidrin", 181],
-        ["MeeteiMayek", 115],
-        ["MendeKikakui", 140],
-        ["MeroiticCursive", 141],
-        ["MeroiticHieroglyphs", 86],
-        ["Miao", 92],
-        ["Modi", 163],
-        ["Mongolian", 27],
-        ["Mro", 149],
-        ["Multani", 164],
-        ["Myanmar", 28],
-        ["Nabataean", 143],
-        ["NagMundari", 199],
-        ["Nandinagari", 187],
-        ["Nastaliq", 200],
-        ["NewTaiLue", 59],
-        ["Newa", 170],
-        ["Nko", 87],
-        ["Nushu", 150],
-        ["NyiakengPuachueHmong", 186],
-        ["Ogham", 29],
-        ["OlChiki", 109],
-        ["OldHungarian", 76],
-        ["OldItalic", 30],
-        ["OldNorthArabian", 142],
-        ["OldPermic", 89],
-        ["OldPersian", 61],
-        ["OldSogdian", 184],
-        ["OldSouthArabian", 133],
-        ["OldTurkic", 88],
-        ["OldUyghur", 194],
-        ["Oriya", 31],
-        ["Osage", 171],
-        ["Osmanya", 50],
-        ["PahawhHmong", 75],
-        ["Palmyrene", 144],
-        ["PauCinHau", 165],
-        ["PhagsPa", 90],
-        ["Phoenician", 91],
-        ["PsalterPahlavi", 123],
-        ["Rejang", 110],
-        ["Runic", 32],
-        ["Samaritan", 126],
-        ["Saurashtra", 111],
-        ["Sharada", 151],
-        ["Shavian", 51],
-        ["Siddham", 166],
-        ["SignWriting", 112],
-        ["Sinhala", 33],
-        ["Sogdian", 183],
-        ["SoraSompeng", 152],
-        ["Soyombo", 176],
-        ["Sundanese", 113],
-        ["SylotiNagri", 58],
-        ["Syriac", 34],
-        ["Tagalog", 42],
-        ["Tagbanwa", 45],
-        ["TaiLe", 52],
-        ["TaiTham", 106],
-        ["TaiViet", 127],
-        ["Takri", 153],
-        ["Tamil", 35],
-        ["Tangsa", 195],
-        ["Tangut", 154],
-        ["Telugu", 36],
-        ["Thaana", 37],
-        ["Thai", 38],
-        ["Tibetan", 39],
-        ["Tifinagh", 60],
-        ["Tirhuta", 158],
-        ["Toto", 196],
-        ["Ugaritic", 53],
-        ["Unknown", 103],
-        ["Vai", 99],
-        ["Vithkuqi", 197],
-        ["Wancho", 188],
-        ["WarangCiti", 146],
-        ["Yezidi", 192],
-        ["Yi", 41],
-        ["ZanabazarSquare", 177]
-    ]);
-
-    static getAllEntries() {
-        return Script.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return Script.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof Script) {
-            return value;
-        }
-
-        let intVal = Script.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return Script.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a Script and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new Script(value);
-    }
-
-    get value() {
-        for (let entry of Script.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [167]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 167),
-        [161]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 161),
-        [156]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 156),
-        [2]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        [3]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        [117]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 117),
-        [62]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 62),
-        [130]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 130),
-        [134]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 134),
-        [63]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 63),
-        [4]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        [168]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 168),
-        [5]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        [65]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 65),
-        [46]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 46),
-        [55]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 55),
-        [44]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 44),
-        [40]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 40),
-        [104]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 104),
-        [159]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 159),
-        [118]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 118),
-        [66]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 66),
-        [6]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        [189]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 189),
-        [0]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        [7]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        [101]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 101),
-        [47]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 47),
-        [193]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 193),
-        [8]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        [9]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        [10]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        [190]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 190),
-        [178]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 178),
-        [135]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 135),
-        [71]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 71),
-        [136]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 136),
-        [185]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 185),
-        [11]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        [12]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        [56]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 56),
-        [13]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        [137]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 137),
-        [14]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        [15]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        [179]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 179),
-        [16]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        [17]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        [18]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        [182]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 182),
-        [43]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 43),
-        [162]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 162),
-        [19]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        [20]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        [116]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 116),
-        [1]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [122]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 122),
-        [125]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 125),
-        [78]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 78),
-        [120]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 120),
-        [21]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        [22]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-        [198]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 198),
-        [79]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 79),
-        [57]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 57),
-        [191]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 191),
-        [23]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
-        [157]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 157),
-        [145]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 145),
-        [24]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
-        [25]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
-        [82]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 82),
-        [48]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 48),
-        [83]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 83),
-        [49]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 49),
-        [131]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 131),
-        [107]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 107),
-        [108]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 108),
-        [160]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 160),
-        [180]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 180),
-        [26]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
-        [84]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 84),
-        [121]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 121),
-        [169]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 169),
-        [175]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 175),
-        [181]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 181),
-        [115]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 115),
-        [140]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 140),
-        [141]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 141),
-        [86]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 86),
-        [92]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 92),
-        [163]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 163),
-        [27]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
-        [149]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 149),
-        [164]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 164),
-        [28]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
-        [143]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 143),
-        [199]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 199),
-        [187]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 187),
-        [200]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 200),
-        [59]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 59),
-        [170]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 170),
-        [87]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 87),
-        [150]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 150),
-        [186]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 186),
-        [29]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
-        [109]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 109),
-        [76]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 76),
-        [30]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
-        [142]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 142),
-        [89]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 89),
-        [61]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 61),
-        [184]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 184),
-        [133]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 133),
-        [88]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 88),
-        [194]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 194),
-        [31]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
-        [171]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 171),
-        [50]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 50),
-        [75]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 75),
-        [144]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 144),
-        [165]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 165),
-        [90]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 90),
-        [91]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 91),
-        [123]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 123),
-        [110]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 110),
-        [32]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
-        [126]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 126),
-        [111]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 111),
-        [151]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 151),
-        [51]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 51),
-        [166]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 166),
-        [112]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 112),
-        [33]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
-        [183]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 183),
-        [152]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 152),
-        [176]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 176),
-        [113]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 113),
-        [58]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 58),
-        [34]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
-        [42]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 42),
-        [45]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 45),
-        [52]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 52),
-        [106]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 106),
-        [127]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 127),
-        [153]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 153),
-        [35]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
-        [195]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 195),
-        [154]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 154),
-        [36]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
-        [37]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 37),
-        [38]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 38),
-        [39]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 39),
-        [60]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 60),
-        [158]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 158),
-        [196]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 196),
-        [53]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 53),
-        [103]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 103),
-        [99]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 99),
-        [197]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 197),
-        [188]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 188),
-        [146]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 146),
-        [192]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 192),
-        [41]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 41),
-        [177]: new Script(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 177),
-    };
-
-    static Adlam = Script.#objectValues[167];
-    static Ahom = Script.#objectValues[161];
-    static AnatolianHieroglyphs = Script.#objectValues[156];
-    static Arabic = Script.#objectValues[2];
-    static Armenian = Script.#objectValues[3];
-    static Avestan = Script.#objectValues[117];
-    static Balinese = Script.#objectValues[62];
-    static Bamum = Script.#objectValues[130];
-    static BassaVah = Script.#objectValues[134];
-    static Batak = Script.#objectValues[63];
-    static Bengali = Script.#objectValues[4];
-    static Bhaiksuki = Script.#objectValues[168];
-    static Bopomofo = Script.#objectValues[5];
-    static Brahmi = Script.#objectValues[65];
-    static Braille = Script.#objectValues[46];
-    static Buginese = Script.#objectValues[55];
-    static Buhid = Script.#objectValues[44];
-    static CanadianAboriginal = Script.#objectValues[40];
-    static Carian = Script.#objectValues[104];
-    static CaucasianAlbanian = Script.#objectValues[159];
-    static Chakma = Script.#objectValues[118];
-    static Cham = Script.#objectValues[66];
-    static Cherokee = Script.#objectValues[6];
-    static Chorasmian = Script.#objectValues[189];
-    static Common = Script.#objectValues[0];
-    static Coptic = Script.#objectValues[7];
-    static Cuneiform = Script.#objectValues[101];
-    static Cypriot = Script.#objectValues[47];
-    static CyproMinoan = Script.#objectValues[193];
-    static Cyrillic = Script.#objectValues[8];
-    static Deseret = Script.#objectValues[9];
-    static Devanagari = Script.#objectValues[10];
-    static DivesAkuru = Script.#objectValues[190];
-    static Dogra = Script.#objectValues[178];
-    static Duployan = Script.#objectValues[135];
-    static EgyptianHieroglyphs = Script.#objectValues[71];
-    static Elbasan = Script.#objectValues[136];
-    static Elymaic = Script.#objectValues[185];
-    static Ethiopian = Script.#objectValues[11];
-    static Georgian = Script.#objectValues[12];
-    static Glagolitic = Script.#objectValues[56];
-    static Gothic = Script.#objectValues[13];
-    static Grantha = Script.#objectValues[137];
-    static Greek = Script.#objectValues[14];
-    static Gujarati = Script.#objectValues[15];
-    static GunjalaGondi = Script.#objectValues[179];
-    static Gurmukhi = Script.#objectValues[16];
-    static Han = Script.#objectValues[17];
-    static Hangul = Script.#objectValues[18];
-    static HanifiRohingya = Script.#objectValues[182];
-    static Hanunoo = Script.#objectValues[43];
-    static Hatran = Script.#objectValues[162];
-    static Hebrew = Script.#objectValues[19];
-    static Hiragana = Script.#objectValues[20];
-    static ImperialAramaic = Script.#objectValues[116];
-    static Inherited = Script.#objectValues[1];
-    static InscriptionalPahlavi = Script.#objectValues[122];
-    static InscriptionalParthian = Script.#objectValues[125];
-    static Javanese = Script.#objectValues[78];
-    static Kaithi = Script.#objectValues[120];
-    static Kannada = Script.#objectValues[21];
-    static Katakana = Script.#objectValues[22];
-    static Kawi = Script.#objectValues[198];
-    static KayahLi = Script.#objectValues[79];
-    static Kharoshthi = Script.#objectValues[57];
-    static KhitanSmallScript = Script.#objectValues[191];
-    static Khmer = Script.#objectValues[23];
-    static Khojki = Script.#objectValues[157];
-    static Khudawadi = Script.#objectValues[145];
-    static Lao = Script.#objectValues[24];
-    static Latin = Script.#objectValues[25];
-    static Lepcha = Script.#objectValues[82];
-    static Limbu = Script.#objectValues[48];
-    static LinearA = Script.#objectValues[83];
-    static LinearB = Script.#objectValues[49];
-    static Lisu = Script.#objectValues[131];
-    static Lycian = Script.#objectValues[107];
-    static Lydian = Script.#objectValues[108];
-    static Mahajani = Script.#objectValues[160];
-    static Makasar = Script.#objectValues[180];
-    static Malayalam = Script.#objectValues[26];
-    static Mandaic = Script.#objectValues[84];
-    static Manichaean = Script.#objectValues[121];
-    static Marchen = Script.#objectValues[169];
-    static MasaramGondi = Script.#objectValues[175];
-    static Medefaidrin = Script.#objectValues[181];
-    static MeeteiMayek = Script.#objectValues[115];
-    static MendeKikakui = Script.#objectValues[140];
-    static MeroiticCursive = Script.#objectValues[141];
-    static MeroiticHieroglyphs = Script.#objectValues[86];
-    static Miao = Script.#objectValues[92];
-    static Modi = Script.#objectValues[163];
-    static Mongolian = Script.#objectValues[27];
-    static Mro = Script.#objectValues[149];
-    static Multani = Script.#objectValues[164];
-    static Myanmar = Script.#objectValues[28];
-    static Nabataean = Script.#objectValues[143];
-    static NagMundari = Script.#objectValues[199];
-    static Nandinagari = Script.#objectValues[187];
-    static Nastaliq = Script.#objectValues[200];
-    static NewTaiLue = Script.#objectValues[59];
-    static Newa = Script.#objectValues[170];
-    static Nko = Script.#objectValues[87];
-    static Nushu = Script.#objectValues[150];
-    static NyiakengPuachueHmong = Script.#objectValues[186];
-    static Ogham = Script.#objectValues[29];
-    static OlChiki = Script.#objectValues[109];
-    static OldHungarian = Script.#objectValues[76];
-    static OldItalic = Script.#objectValues[30];
-    static OldNorthArabian = Script.#objectValues[142];
-    static OldPermic = Script.#objectValues[89];
-    static OldPersian = Script.#objectValues[61];
-    static OldSogdian = Script.#objectValues[184];
-    static OldSouthArabian = Script.#objectValues[133];
-    static OldTurkic = Script.#objectValues[88];
-    static OldUyghur = Script.#objectValues[194];
-    static Oriya = Script.#objectValues[31];
-    static Osage = Script.#objectValues[171];
-    static Osmanya = Script.#objectValues[50];
-    static PahawhHmong = Script.#objectValues[75];
-    static Palmyrene = Script.#objectValues[144];
-    static PauCinHau = Script.#objectValues[165];
-    static PhagsPa = Script.#objectValues[90];
-    static Phoenician = Script.#objectValues[91];
-    static PsalterPahlavi = Script.#objectValues[123];
-    static Rejang = Script.#objectValues[110];
-    static Runic = Script.#objectValues[32];
-    static Samaritan = Script.#objectValues[126];
-    static Saurashtra = Script.#objectValues[111];
-    static Sharada = Script.#objectValues[151];
-    static Shavian = Script.#objectValues[51];
-    static Siddham = Script.#objectValues[166];
-    static SignWriting = Script.#objectValues[112];
-    static Sinhala = Script.#objectValues[33];
-    static Sogdian = Script.#objectValues[183];
-    static SoraSompeng = Script.#objectValues[152];
-    static Soyombo = Script.#objectValues[176];
-    static Sundanese = Script.#objectValues[113];
-    static SylotiNagri = Script.#objectValues[58];
-    static Syriac = Script.#objectValues[34];
-    static Tagalog = Script.#objectValues[42];
-    static Tagbanwa = Script.#objectValues[45];
-    static TaiLe = Script.#objectValues[52];
-    static TaiTham = Script.#objectValues[106];
-    static TaiViet = Script.#objectValues[127];
-    static Takri = Script.#objectValues[153];
-    static Tamil = Script.#objectValues[35];
-    static Tangsa = Script.#objectValues[195];
-    static Tangut = Script.#objectValues[154];
-    static Telugu = Script.#objectValues[36];
-    static Thaana = Script.#objectValues[37];
-    static Thai = Script.#objectValues[38];
-    static Tibetan = Script.#objectValues[39];
-    static Tifinagh = Script.#objectValues[60];
-    static Tirhuta = Script.#objectValues[158];
-    static Toto = Script.#objectValues[196];
-    static Ugaritic = Script.#objectValues[53];
-    static Unknown = Script.#objectValues[103];
-    static Vai = Script.#objectValues[99];
-    static Vithkuqi = Script.#objectValues[197];
-    static Wancho = Script.#objectValues[188];
-    static WarangCiti = Script.#objectValues[146];
-    static Yezidi = Script.#objectValues[192];
-    static Yi = Script.#objectValues[41];
-    static ZanabazarSquare = Script.#objectValues[177];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_Script_for_char_mv1(ch);
-    
-        try {
-            return new Script(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_Script_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_Script_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_Script_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Script_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new Script(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.d.ts
deleted file mode 100644
index ea5482d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object that represents the Script_Extensions property for a single character
-*
-*See the [Rust documentation for `ScriptExtensionsSet`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html) for more information.
-*/
-
-
-export class ScriptExtensionsSet {
-    
-    get ffiValue(): pointer;
-
-    contains(script: number): boolean;
-
-    get count(): number;
-
-    scriptAt(index: number): number | null;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.mjs
deleted file mode 100644
index a979ffa4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptExtensionsSet.mjs
+++ /dev/null
@@ -1,87 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object that represents the Script_Extensions property for a single character
-*
-*See the [Rust documentation for `ScriptExtensionsSet`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html) for more information.
-*/
-const ScriptExtensionsSet_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ScriptExtensionsSet_destroy_mv1(ptr);
-});
-
-export class ScriptExtensionsSet {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ScriptExtensionsSet is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ScriptExtensionsSet_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    contains(script) {
-        const result = wasm.icu4x_ScriptExtensionsSet_contains_mv1(this.ffiValue, script);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get count() {
-        const result = wasm.icu4x_ScriptExtensionsSet_count_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    scriptAt(index) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 3, 2, true);
-        
-        const result = wasm.icu4x_ScriptExtensionsSet_script_at_mv1(diplomatReceive.buffer, this.ffiValue, index);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return (new Uint16Array(wasm.memory.buffer, diplomatReceive.buffer, 1))[0];
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.d.ts
deleted file mode 100644
index 94f509c5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointRangeIterator } from "./CodePointRangeIterator"
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { ScriptWithExtensionsBorrowed } from "./ScriptWithExtensionsBorrowed"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X ScriptWithExtensions map object, capable of holding a map of codepoints to scriptextensions values
-*
-*See the [Rust documentation for `ScriptWithExtensions`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html) for more information.
-*/
-
-
-export class ScriptWithExtensions {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): ScriptWithExtensions;
-
-    getScriptVal(ch: codepoint): number;
-
-    hasScript(ch: codepoint, script: number): boolean;
-
-    get asBorrowed(): ScriptWithExtensionsBorrowed;
-
-    iterRangesForScript(script: number): CodePointRangeIterator;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.mjs
deleted file mode 100644
index 1fd8426..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensions.mjs
+++ /dev/null
@@ -1,130 +0,0 @@
-// generated by diplomat-tool
-import { CodePointRangeIterator } from "./CodePointRangeIterator.mjs"
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { ScriptWithExtensionsBorrowed } from "./ScriptWithExtensionsBorrowed.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X ScriptWithExtensions map object, capable of holding a map of codepoints to scriptextensions values
-*
-*See the [Rust documentation for `ScriptWithExtensions`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html) for more information.
-*/
-const ScriptWithExtensions_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ScriptWithExtensions_destroy_mv1(ptr);
-});
-
-export class ScriptWithExtensions {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ScriptWithExtensions is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ScriptWithExtensions_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_ScriptWithExtensions_create_mv1();
-    
-        try {
-            return new ScriptWithExtensions(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ScriptWithExtensions_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new ScriptWithExtensions(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    getScriptVal(ch) {
-        const result = wasm.icu4x_ScriptWithExtensions_get_script_val_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    hasScript(ch, script) {
-        const result = wasm.icu4x_ScriptWithExtensions_has_script_mv1(this.ffiValue, ch, script);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get asBorrowed() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_ScriptWithExtensions_as_borrowed_mv1(this.ffiValue);
-    
-        try {
-            return new ScriptWithExtensionsBorrowed(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    iterRangesForScript(script) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(this.ffiValue, script);
-    
-        try {
-            return new CodePointRangeIterator(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.d.ts
deleted file mode 100644
index 455d63e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { CodePointSetData } from "./CodePointSetData"
-import type { ScriptExtensionsSet } from "./ScriptExtensionsSet"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A slightly faster ScriptWithExtensions object
-*
-*See the [Rust documentation for `ScriptWithExtensionsBorrowed`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html) for more information.
-*/
-
-
-export class ScriptWithExtensionsBorrowed {
-    
-    get ffiValue(): pointer;
-
-    getScriptVal(ch: codepoint): number;
-
-    getScriptExtensionsVal(ch: codepoint): ScriptExtensionsSet;
-
-    hasScript(ch: codepoint, script: number): boolean;
-
-    getScriptExtensionsSet(script: number): CodePointSetData;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.mjs
deleted file mode 100644
index 7f9ccdb8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ScriptWithExtensionsBorrowed.mjs
+++ /dev/null
@@ -1,95 +0,0 @@
-// generated by diplomat-tool
-import { CodePointSetData } from "./CodePointSetData.mjs"
-import { ScriptExtensionsSet } from "./ScriptExtensionsSet.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A slightly faster ScriptWithExtensions object
-*
-*See the [Rust documentation for `ScriptWithExtensionsBorrowed`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html) for more information.
-*/
-const ScriptWithExtensionsBorrowed_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(ptr);
-});
-
-export class ScriptWithExtensionsBorrowed {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ScriptWithExtensionsBorrowed is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ScriptWithExtensionsBorrowed_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    getScriptVal(ch) {
-        const result = wasm.icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(this.ffiValue, ch);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    getScriptExtensionsVal(ch) {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(this.ffiValue, ch);
-    
-        try {
-            return new ScriptExtensionsSet(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    hasScript(ch, script) {
-        const result = wasm.icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(this.ffiValue, ch, script);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    getScriptExtensionsSet(script) {
-        const result = wasm.icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(this.ffiValue, script);
-    
-        try {
-            return new CodePointSetData(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.d.ts
deleted file mode 100644
index 560aa90..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WordType`](https://docs.rs/icu/latest/icu/segmenter/options/enum.WordType.html) for more information.
-*/
-
-
-export class SegmenterWordType {
-    
-
-    static fromValue(value : SegmenterWordType | string) : SegmenterWordType; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static None : SegmenterWordType;
-    static Number : SegmenterWordType;
-    static Letter : SegmenterWordType;
-
-    get isWordLike(): boolean;
-
-    constructor(value: SegmenterWordType | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.mjs
deleted file mode 100644
index d255fcf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SegmenterWordType.mjs
+++ /dev/null
@@ -1,83 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WordType`](https://docs.rs/icu/latest/icu/segmenter/options/enum.WordType.html) for more information.
-*/
-
-
-export class SegmenterWordType {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["None", 0],
-        ["Number", 1],
-        ["Letter", 2]
-    ]);
-
-    static getAllEntries() {
-        return SegmenterWordType.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return SegmenterWordType.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof SegmenterWordType) {
-            return value;
-        }
-
-        let intVal = SegmenterWordType.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return SegmenterWordType.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a SegmenterWordType and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new SegmenterWordType(value);
-    }
-
-    get value() {
-        return [...SegmenterWordType.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new SegmenterWordType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new SegmenterWordType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new SegmenterWordType(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static None = SegmenterWordType.#objectValues[0];
-    static Number = SegmenterWordType.#objectValues[1];
-    static Letter = SegmenterWordType.#objectValues[2];
-
-    get isWordLike() {
-        const result = wasm.icu4x_SegmenterWordType_is_word_like_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.d.ts
deleted file mode 100644
index 44e06e87..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `SentenceBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.SentenceBreak.html) for more information.
-*/
-
-
-export class SentenceBreak {
-    
-
-    static fromValue(value : SentenceBreak | string) : SentenceBreak; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Other : SentenceBreak;
-    static ATerm : SentenceBreak;
-    static Close : SentenceBreak;
-    static Format : SentenceBreak;
-    static Lower : SentenceBreak;
-    static Numeric : SentenceBreak;
-    static OLetter : SentenceBreak;
-    static Sep : SentenceBreak;
-    static Sp : SentenceBreak;
-    static STerm : SentenceBreak;
-    static Upper : SentenceBreak;
-    static Cr : SentenceBreak;
-    static Extend : SentenceBreak;
-    static Lf : SentenceBreak;
-    static SContinue : SentenceBreak;
-
-    static forChar(ch: codepoint): SentenceBreak;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): SentenceBreak | null;
-
-    constructor(value: SentenceBreak | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.mjs
deleted file mode 100644
index e90fb220..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreak.mjs
+++ /dev/null
@@ -1,180 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `SentenceBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.SentenceBreak.html) for more information.
-*/
-
-
-export class SentenceBreak {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Other", 0],
-        ["ATerm", 1],
-        ["Close", 2],
-        ["Format", 3],
-        ["Lower", 4],
-        ["Numeric", 5],
-        ["OLetter", 6],
-        ["Sep", 7],
-        ["Sp", 8],
-        ["STerm", 9],
-        ["Upper", 10],
-        ["Cr", 11],
-        ["Extend", 12],
-        ["Lf", 13],
-        ["SContinue", 14]
-    ]);
-
-    static getAllEntries() {
-        return SentenceBreak.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return SentenceBreak.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof SentenceBreak) {
-            return value;
-        }
-
-        let intVal = SentenceBreak.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return SentenceBreak.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a SentenceBreak and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new SentenceBreak(value);
-    }
-
-    get value() {
-        return [...SentenceBreak.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-    ];
-
-    static Other = SentenceBreak.#objectValues[0];
-    static ATerm = SentenceBreak.#objectValues[1];
-    static Close = SentenceBreak.#objectValues[2];
-    static Format = SentenceBreak.#objectValues[3];
-    static Lower = SentenceBreak.#objectValues[4];
-    static Numeric = SentenceBreak.#objectValues[5];
-    static OLetter = SentenceBreak.#objectValues[6];
-    static Sep = SentenceBreak.#objectValues[7];
-    static Sp = SentenceBreak.#objectValues[8];
-    static STerm = SentenceBreak.#objectValues[9];
-    static Upper = SentenceBreak.#objectValues[10];
-    static Cr = SentenceBreak.#objectValues[11];
-    static Extend = SentenceBreak.#objectValues[12];
-    static Lf = SentenceBreak.#objectValues[13];
-    static SContinue = SentenceBreak.#objectValues[14];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_SentenceBreak_for_char_mv1(ch);
-    
-        try {
-            return new SentenceBreak(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_SentenceBreak_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_SentenceBreak_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_SentenceBreak_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_SentenceBreak_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new SentenceBreak(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.d.ts
deleted file mode 100644
index 3cc90ad..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-
-
-export class SentenceBreakIteratorLatin1 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.mjs
deleted file mode 100644
index 655b969..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorLatin1.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-const SentenceBreakIteratorLatin1_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_SentenceBreakIteratorLatin1_destroy_mv1(ptr);
-});
-
-export class SentenceBreakIteratorLatin1 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("SentenceBreakIteratorLatin1 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            SentenceBreakIteratorLatin1_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_SentenceBreakIteratorLatin1_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.d.ts
deleted file mode 100644
index fb490e6e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-
-
-export class SentenceBreakIteratorUtf16 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.mjs
deleted file mode 100644
index 2b96f6f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf16.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-const SentenceBreakIteratorUtf16_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_SentenceBreakIteratorUtf16_destroy_mv1(ptr);
-});
-
-export class SentenceBreakIteratorUtf16 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("SentenceBreakIteratorUtf16 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            SentenceBreakIteratorUtf16_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_SentenceBreakIteratorUtf16_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.d.ts
deleted file mode 100644
index ee4fb57..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-
-
-export class SentenceBreakIteratorUtf8 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.mjs
deleted file mode 100644
index 4954f54b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceBreakIteratorUtf8.mjs
+++ /dev/null
@@ -1,58 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `SentenceBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html) for more information.
-*/
-const SentenceBreakIteratorUtf8_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_SentenceBreakIteratorUtf8_destroy_mv1(ptr);
-});
-
-export class SentenceBreakIteratorUtf8 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("SentenceBreakIteratorUtf8 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            SentenceBreakIteratorUtf8_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_SentenceBreakIteratorUtf8_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.d.ts
deleted file mode 100644
index bc418ca..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { SentenceBreakIteratorUtf16 } from "./SentenceBreakIteratorUtf16"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X sentence-break segmenter, capable of finding sentence breakpoints in strings.
-*
-*See the [Rust documentation for `SentenceSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html) for more information.
-*/
-
-
-export class SentenceSegmenter {
-    
-    get ffiValue(): pointer;
-
-    static createWithContentLocale(locale: Locale): SentenceSegmenter;
-
-    static createWithContentLocaleAndProvider(provider: DataProvider, locale: Locale): SentenceSegmenter;
-
-    segment(input: string): SentenceBreakIteratorUtf16;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.mjs
deleted file mode 100644
index 4e10793..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/SentenceSegmenter.mjs
+++ /dev/null
@@ -1,120 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { SentenceBreakIteratorUtf16 } from "./SentenceBreakIteratorUtf16.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X sentence-break segmenter, capable of finding sentence breakpoints in strings.
-*
-*See the [Rust documentation for `SentenceSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html) for more information.
-*/
-const SentenceSegmenter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_SentenceSegmenter_destroy_mv1(ptr);
-});
-
-export class SentenceSegmenter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("SentenceSegmenter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            SentenceSegmenter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_SentenceSegmenter_create_mv1();
-    
-        try {
-            return new SentenceSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithContentLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_SentenceSegmenter_create_with_content_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new SentenceSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithContentLocaleAndProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_SentenceSegmenter_create_with_content_locale_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new SentenceSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    segment(input) {
-        let functionGarbageCollectorGrip = new diplomatRuntime.GarbageCollectorGrip();
-        const inputSlice = functionGarbageCollectorGrip.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, input));
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this, inputSlice];
-        
-        const result = wasm.icu4x_SentenceSegmenter_segment_utf16_mv1(this.ffiValue, ...inputSlice.splat());
-    
-        try {
-            return new SentenceBreakIteratorUtf16(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionGarbageCollectorGrip.releaseToGarbageCollector();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.d.ts
deleted file mode 100644
index 5257b56..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { CalendarError } from "./CalendarError"
-import type { CalendarParseError } from "./CalendarParseError"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Time object representing a time in terms of hour, minute, second, nanosecond
-*
-*See the [Rust documentation for `Time`](https://docs.rs/icu/latest/icu/time/struct.Time.html) for more information.
-*/
-
-
-export class Time {
-    
-    get ffiValue(): pointer;
-
-    static fromString(v: string): Time;
-
-    static midnight(): Time;
-
-    get hour(): number;
-
-    get minute(): number;
-
-    get second(): number;
-
-    get subsecond(): number;
-
-    constructor(hour: number, minute: number, second: number, subsecond: number);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.mjs
deleted file mode 100644
index cbcf081a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Time.mjs
+++ /dev/null
@@ -1,154 +0,0 @@
-// generated by diplomat-tool
-import { CalendarError } from "./CalendarError.mjs"
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Time object representing a time in terms of hour, minute, second, nanosecond
-*
-*See the [Rust documentation for `Time`](https://docs.rs/icu/latest/icu/time/struct.Time.html) for more information.
-*/
-const Time_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_Time_destroy_mv1(ptr);
-});
-
-export class Time {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("Time is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            Time_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor(hour, minute, second, subsecond) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Time_create_mv1(diplomatReceive.buffer, hour, minute, second, subsecond);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarError: ' + cause.value, { cause });
-            }
-            return new Time(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromString(v) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Time_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return new Time(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static midnight() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_Time_midnight_mv1(diplomatReceive.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarError: ' + cause.value, { cause });
-            }
-            return new Time(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    get hour() {
-        const result = wasm.icu4x_Time_hour_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get minute() {
-        const result = wasm.icu4x_Time_minute_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get second() {
-        const result = wasm.icu4x_Time_second_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get subsecond() {
-        const result = wasm.icu4x_Time_subsecond_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(hour, minute, second, subsecond) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.d.ts
deleted file mode 100644
index 393cb236..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimePrecision`](https://docs.rs/icu/latest/icu/datetime/enum.TimePrecision.html) for more information.
-*/
-
-
-export class TimePrecision {
-    
-
-    static fromValue(value : TimePrecision | string) : TimePrecision; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Hour : TimePrecision;
-    static Minute : TimePrecision;
-    static MinuteOptional : TimePrecision;
-    static Second : TimePrecision;
-    static Subsecond1 : TimePrecision;
-    static Subsecond2 : TimePrecision;
-    static Subsecond3 : TimePrecision;
-    static Subsecond4 : TimePrecision;
-    static Subsecond5 : TimePrecision;
-    static Subsecond6 : TimePrecision;
-    static Subsecond7 : TimePrecision;
-    static Subsecond8 : TimePrecision;
-    static Subsecond9 : TimePrecision;
-
-    constructor(value: TimePrecision | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.mjs
deleted file mode 100644
index 0ba35da..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimePrecision.mjs
+++ /dev/null
@@ -1,103 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimePrecision`](https://docs.rs/icu/latest/icu/datetime/enum.TimePrecision.html) for more information.
-*/
-
-
-export class TimePrecision {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Hour", 0],
-        ["Minute", 1],
-        ["MinuteOptional", 2],
-        ["Second", 3],
-        ["Subsecond1", 4],
-        ["Subsecond2", 5],
-        ["Subsecond3", 6],
-        ["Subsecond4", 7],
-        ["Subsecond5", 8],
-        ["Subsecond6", 9],
-        ["Subsecond7", 10],
-        ["Subsecond8", 11],
-        ["Subsecond9", 12]
-    ]);
-
-    static getAllEntries() {
-        return TimePrecision.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return TimePrecision.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof TimePrecision) {
-            return value;
-        }
-
-        let intVal = TimePrecision.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return TimePrecision.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a TimePrecision and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new TimePrecision(value);
-    }
-
-    get value() {
-        return [...TimePrecision.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-    ];
-
-    static Hour = TimePrecision.#objectValues[0];
-    static Minute = TimePrecision.#objectValues[1];
-    static MinuteOptional = TimePrecision.#objectValues[2];
-    static Second = TimePrecision.#objectValues[3];
-    static Subsecond1 = TimePrecision.#objectValues[4];
-    static Subsecond2 = TimePrecision.#objectValues[5];
-    static Subsecond3 = TimePrecision.#objectValues[6];
-    static Subsecond4 = TimePrecision.#objectValues[7];
-    static Subsecond5 = TimePrecision.#objectValues[8];
-    static Subsecond6 = TimePrecision.#objectValues[9];
-    static Subsecond7 = TimePrecision.#objectValues[10];
-    static Subsecond8 = TimePrecision.#objectValues[11];
-    static Subsecond9 = TimePrecision.#objectValues[12];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.d.ts
deleted file mode 100644
index 73ee865..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZoneInfo } from "./TimeZoneInfo"
-import type { UtcOffset } from "./UtcOffset"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimeZone`](https://docs.rs/icu/latest/icu/time/struct.TimeZone.html) for more information.
-*/
-
-
-export class TimeZone {
-    
-    get ffiValue(): pointer;
-
-    static unknown(): TimeZone;
-
-    static createFromBcp47(id: string): TimeZone;
-
-    withOffset(offset: UtcOffset): TimeZoneInfo;
-
-    withoutOffset(): TimeZoneInfo;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.mjs
deleted file mode 100644
index d8d707c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZone.mjs
+++ /dev/null
@@ -1,92 +0,0 @@
-// generated by diplomat-tool
-import { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-import { UtcOffset } from "./UtcOffset.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimeZone`](https://docs.rs/icu/latest/icu/time/struct.TimeZone.html) for more information.
-*/
-const TimeZone_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TimeZone_destroy_mv1(ptr);
-});
-
-export class TimeZone {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TimeZone is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TimeZone_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static unknown() {
-        const result = wasm.icu4x_TimeZone_unknown_mv1();
-    
-        try {
-            return new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createFromBcp47(id) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const idSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, id));
-        
-        const result = wasm.icu4x_TimeZone_create_from_bcp47_mv1(...idSlice.splat());
-    
-        try {
-            return new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    withOffset(offset) {
-        const result = wasm.icu4x_TimeZone_with_offset_mv1(this.ffiValue, offset.ffiValue);
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    withoutOffset() {
-        const result = wasm.icu4x_TimeZone_without_offset_mv1(this.ffiValue);
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.d.ts
deleted file mode 100644
index 6482ad40..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZone } from "./TimeZone"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class TimeZoneAndCanonical {
-    
-    get timeZone() : TimeZone;
-    
-    get canonical() : string;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.mjs
deleted file mode 100644
index d731c48f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonical.mjs
+++ /dev/null
@@ -1,105 +0,0 @@
-// generated by diplomat-tool
-import { TimeZone } from "./TimeZone.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class TimeZoneAndCanonical {
-    
-    #timeZone;
-    
-    get timeZone()  {
-        return this.#timeZone;
-    }
-    
-    #canonical;
-    
-    get canonical()  {
-        return this.#canonical;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("TimeZoneAndCanonical's constructor takes an object of TimeZoneAndCanonical's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("TimeZoneAndCanonical is an out struct and can only be created internally.");
-        }
-        if ("timeZone" in structObj) {
-            this.#timeZone = structObj.timeZone;
-        } else {
-            throw new Error("Missing required field timeZone.");
-        }
-
-        if ("canonical" in structObj) {
-            this.#canonical = structObj.canonical;
-        } else {
-            throw new Error("Missing required field canonical.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    // If this struct contains any slices, their lifetime-edge-relevant information will be
-    // set up here, and can be appended to any relevant lifetime arrays here. <lifetime>AppendArray accepts a list
-    // of arrays for each lifetime to do so. It accepts multiple lists per lifetime in case the caller needs to tie a lifetime to multiple
-    // output arrays. Null is equivalent to an empty list: this lifetime is not being borrowed from.
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#timeZone.ffiValue, ...diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#canonical)).splat()]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof TimeZoneAndCanonical) {
-            return obj;
-        }
-
-        return TimeZoneAndCanonical.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#timeZone.ffiValue, Uint32Array);
-        diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#canonical)).writePtrLenToArrayBuffer(arrayBuffer, offset + 4);
-    }
-
-    static _fromFFI(internalConstructor, ptr, aEdges) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("TimeZoneAndCanonical._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const timeZoneDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.timeZone = new TimeZone(diplomatRuntime.internalConstructor, timeZoneDeref, []);
-        const canonicalDeref = ptr + 4;
-        structObj.canonical = new diplomatRuntime.DiplomatSliceStr(wasm, canonicalDeref,  "string8", aEdges).getValue();
-
-        return new TimeZoneAndCanonical(structObj, internalConstructor);
-    }
-
-    // Return all fields corresponding to lifetime `'a` 
-    // without handling lifetime dependencies (this is the job of the caller)
-    // This is all fields that may be borrowed from if borrowing `'a`,
-    // assuming that there are no `'other: a`. bounds. In case of such bounds,
-    // the caller should take care to also call _fieldsForLifetimeOther
-    get _fieldsForLifetimeA() { 
-        return [canonical];
-    };
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.d.ts
deleted file mode 100644
index fc50802a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZone } from "./TimeZone"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class TimeZoneAndCanonicalAndNormalized {
-    
-    get timeZone() : TimeZone;
-    
-    get canonical() : string;
-    
-    get normalized() : string;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.mjs
deleted file mode 100644
index 87da4224..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalized.mjs
+++ /dev/null
@@ -1,120 +0,0 @@
-// generated by diplomat-tool
-import { TimeZone } from "./TimeZone.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class TimeZoneAndCanonicalAndNormalized {
-    
-    #timeZone;
-    
-    get timeZone()  {
-        return this.#timeZone;
-    }
-    
-    #canonical;
-    
-    get canonical()  {
-        return this.#canonical;
-    }
-    
-    #normalized;
-    
-    get normalized()  {
-        return this.#normalized;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("TimeZoneAndCanonicalAndNormalized's constructor takes an object of TimeZoneAndCanonicalAndNormalized's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("TimeZoneAndCanonicalAndNormalized is an out struct and can only be created internally.");
-        }
-        if ("timeZone" in structObj) {
-            this.#timeZone = structObj.timeZone;
-        } else {
-            throw new Error("Missing required field timeZone.");
-        }
-
-        if ("canonical" in structObj) {
-            this.#canonical = structObj.canonical;
-        } else {
-            throw new Error("Missing required field canonical.");
-        }
-
-        if ("normalized" in structObj) {
-            this.#normalized = structObj.normalized;
-        } else {
-            throw new Error("Missing required field normalized.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    // If this struct contains any slices, their lifetime-edge-relevant information will be
-    // set up here, and can be appended to any relevant lifetime arrays here. <lifetime>AppendArray accepts a list
-    // of arrays for each lifetime to do so. It accepts multiple lists per lifetime in case the caller needs to tie a lifetime to multiple
-    // output arrays. Null is equivalent to an empty list: this lifetime is not being borrowed from.
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#timeZone.ffiValue, ...diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#canonical)).splat(), ...diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#normalized)).splat()]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof TimeZoneAndCanonicalAndNormalized) {
-            return obj;
-        }
-
-        return TimeZoneAndCanonicalAndNormalized.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#timeZone.ffiValue, Uint32Array);
-        diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#canonical)).writePtrLenToArrayBuffer(arrayBuffer, offset + 4);
-        diplomatRuntime.CleanupArena.maybeCreateWith(functionCleanupArena, ...appendArrayMap['aAppendArray']).alloc(diplomatRuntime.DiplomatBuf.str8(wasm, this.#normalized)).writePtrLenToArrayBuffer(arrayBuffer, offset + 12);
-    }
-
-    static _fromFFI(internalConstructor, ptr, aEdges) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("TimeZoneAndCanonicalAndNormalized._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const timeZoneDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.timeZone = new TimeZone(diplomatRuntime.internalConstructor, timeZoneDeref, []);
-        const canonicalDeref = ptr + 4;
-        structObj.canonical = new diplomatRuntime.DiplomatSliceStr(wasm, canonicalDeref,  "string8", aEdges).getValue();
-        const normalizedDeref = ptr + 12;
-        structObj.normalized = new diplomatRuntime.DiplomatSliceStr(wasm, normalizedDeref,  "string8", aEdges).getValue();
-
-        return new TimeZoneAndCanonicalAndNormalized(structObj, internalConstructor);
-    }
-
-    // Return all fields corresponding to lifetime `'a` 
-    // without handling lifetime dependencies (this is the job of the caller)
-    // This is all fields that may be borrowed from if borrowing `'a`,
-    // assuming that there are no `'other: a`. bounds. In case of such bounds,
-    // the caller should take care to also call _fieldsForLifetimeOther
-    get _fieldsForLifetimeA() { 
-        return [canonical, normalized];
-    };
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.d.ts
deleted file mode 100644
index 4509cf2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimeZoneAndCanonicalAndNormalizedIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneAndCanonicalAndNormalizedIter.html) for more information.
-*/
-
-
-export class TimeZoneAndCanonicalAndNormalizedIterator {
-    
-    get ffiValue(): pointer;
-
-    next() : IteratorResult<TimeZoneAndCanonicalAndNormalized>;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.mjs
deleted file mode 100644
index bc86a2b3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalAndNormalizedIterator.mjs
+++ /dev/null
@@ -1,78 +0,0 @@
-// generated by diplomat-tool
-import { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimeZoneAndCanonicalAndNormalizedIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneAndCanonicalAndNormalizedIter.html) for more information.
-*/
-const TimeZoneAndCanonicalAndNormalizedIterator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TimeZoneAndCanonicalAndNormalizedIterator_destroy_mv1(ptr);
-});
-
-export class TimeZoneAndCanonicalAndNormalizedIterator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TimeZoneAndCanonicalAndNormalizedIterator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TimeZoneAndCanonicalAndNormalizedIterator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #iteratorNext() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 21, 4, true);
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_TimeZoneAndCanonicalAndNormalizedIterator_next_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return TimeZoneAndCanonicalAndNormalized._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer, aEdges);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    next() {
-        const out = this.#iteratorNext();
-
-        return {
-            value: out,
-            done: out === null,
-        };
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.d.ts
deleted file mode 100644
index a9499a23..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZoneAndCanonical } from "./TimeZoneAndCanonical"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimeZoneAndCanonicalIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneAndCanonicalIter.html) for more information.
-*/
-
-
-export class TimeZoneAndCanonicalIterator {
-    
-    get ffiValue(): pointer;
-
-    next() : IteratorResult<TimeZoneAndCanonical>;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.mjs
deleted file mode 100644
index 48d16b2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneAndCanonicalIterator.mjs
+++ /dev/null
@@ -1,78 +0,0 @@
-// generated by diplomat-tool
-import { TimeZoneAndCanonical } from "./TimeZoneAndCanonical.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimeZoneAndCanonicalIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneAndCanonicalIter.html) for more information.
-*/
-const TimeZoneAndCanonicalIterator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TimeZoneAndCanonicalIterator_destroy_mv1(ptr);
-});
-
-export class TimeZoneAndCanonicalIterator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TimeZoneAndCanonicalIterator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TimeZoneAndCanonicalIterator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #iteratorNext() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_TimeZoneAndCanonicalIterator_next_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return TimeZoneAndCanonical._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer, aEdges);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    next() {
-        const out = this.#iteratorNext();
-
-        return {
-            value: out,
-            done: out === null,
-        };
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.d.ts
deleted file mode 100644
index 9483217..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.d.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-// generated by diplomat-tool
-import type { IsoDate } from "./IsoDate"
-import type { IsoDateTime } from "./IsoDateTime"
-import type { Time } from "./Time"
-import type { TimeZone } from "./TimeZone"
-import type { TimeZoneVariant } from "./TimeZoneVariant"
-import type { UtcOffset } from "./UtcOffset"
-import type { UtcOffsetCalculator } from "./UtcOffsetCalculator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimeZoneInfo`](https://docs.rs/icu/latest/icu/time/struct.TimeZoneInfo.html) for more information.
-*/
-
-
-export class TimeZoneInfo {
-    
-    get ffiValue(): pointer;
-
-    static utc(): TimeZoneInfo;
-
-    timeZoneId(): TimeZone;
-
-    atTime(date: IsoDate, time: Time): TimeZoneInfo;
-
-    localTime(): IsoDateTime | null;
-
-    withZoneVariant(timeZoneVariant: TimeZoneVariant): TimeZoneInfo;
-
-    inferZoneVariant(offsetCalculator: UtcOffsetCalculator): boolean;
-
-    zoneVariant(): TimeZoneVariant | null;
-
-    constructor(timeZoneId: TimeZone, offset: UtcOffset | null, zoneVariant: TimeZoneVariant | null);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.mjs
deleted file mode 100644
index 8fc5705..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInfo.mjs
+++ /dev/null
@@ -1,151 +0,0 @@
-// generated by diplomat-tool
-import { IsoDate } from "./IsoDate.mjs"
-import { IsoDateTime } from "./IsoDateTime.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZone } from "./TimeZone.mjs"
-import { TimeZoneVariant } from "./TimeZoneVariant.mjs"
-import { UtcOffset } from "./UtcOffset.mjs"
-import { UtcOffsetCalculator } from "./UtcOffsetCalculator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimeZoneInfo`](https://docs.rs/icu/latest/icu/time/struct.TimeZoneInfo.html) for more information.
-*/
-const TimeZoneInfo_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TimeZoneInfo_destroy_mv1(ptr);
-});
-
-export class TimeZoneInfo {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TimeZoneInfo is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TimeZoneInfo_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static utc() {
-        const result = wasm.icu4x_TimeZoneInfo_utc_mv1();
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    #defaultConstructor(timeZoneId, offset, zoneVariant) {
-        const result = wasm.icu4x_TimeZoneInfo_from_parts_mv1(timeZoneId.ffiValue, offset.ffiValue ?? 0, ...diplomatRuntime.optionToArgsForCalling(zoneVariant, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]));
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    timeZoneId() {
-        const result = wasm.icu4x_TimeZoneInfo_time_zone_id_mv1(this.ffiValue);
-    
-        try {
-            return new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    atTime(date, time) {
-        const result = wasm.icu4x_TimeZoneInfo_at_time_mv1(this.ffiValue, date.ffiValue, time.ffiValue);
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    localTime() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_TimeZoneInfo_local_time_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return IsoDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    withZoneVariant(timeZoneVariant) {
-        const result = wasm.icu4x_TimeZoneInfo_with_zone_variant_mv1(this.ffiValue, timeZoneVariant.ffiValue);
-    
-        try {
-            return new TimeZoneInfo(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    inferZoneVariant(offsetCalculator) {
-        const result = wasm.icu4x_TimeZoneInfo_infer_zone_variant_mv1(this.ffiValue, offsetCalculator.ffiValue);
-    
-        try {
-            return result === 1;
-        }
-        
-        finally {}
-    }
-
-    zoneVariant() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_TimeZoneInfo_zone_variant_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new TimeZoneVariant(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(timeZoneId, offset, zoneVariant) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.d.ts
deleted file mode 100644
index 7a368db9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/time/zone/struct.InvalidOffsetError.html)
-*/
-type TimeZoneInvalidOffsetError_obj = {
-};
-
-
-
-export class TimeZoneInvalidOffsetError {
-    
-    /** Create `TimeZoneInvalidOffsetError` from an object that contains all of `TimeZoneInvalidOffsetError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : TimeZoneInvalidOffsetError_obj) : TimeZoneInvalidOffsetError;
-
-
-    constructor(structObj : TimeZoneInvalidOffsetError_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.mjs
deleted file mode 100644
index 9efc182..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneInvalidOffsetError.mjs
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Additional information: [1](https://docs.rs/icu/latest/icu/time/zone/struct.InvalidOffsetError.html)
-*/
-
-
-export class TimeZoneInvalidOffsetError {
-    
-    /** Create `TimeZoneInvalidOffsetError` from an object that contains all of `TimeZoneInvalidOffsetError`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new TimeZoneInvalidOffsetError(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("TimeZoneInvalidOffsetError's constructor takes an object of TimeZoneInvalidOffsetError's fields.");
-        }
-
-        return this;
-    }
-
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.d.ts
deleted file mode 100644
index e97756e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZone } from "./TimeZone"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TimeZoneIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneIter.html) for more information.
-*/
-
-
-export class TimeZoneIterator {
-    
-    get ffiValue(): pointer;
-
-    next() : IteratorResult<TimeZone>;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.mjs
deleted file mode 100644
index 51ceb4be..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneIterator.mjs
+++ /dev/null
@@ -1,68 +0,0 @@
-// generated by diplomat-tool
-import { TimeZone } from "./TimeZone.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TimeZoneIter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.TimeZoneIter.html) for more information.
-*/
-const TimeZoneIterator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TimeZoneIterator_destroy_mv1(ptr);
-});
-
-export class TimeZoneIterator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TimeZoneIterator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TimeZoneIterator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #iteratorNext() {
-        const result = wasm.icu4x_TimeZoneIterator_next_mv1(this.ffiValue);
-    
-        try {
-            return result === 0 ? null : new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    next() {
-        const out = this.#iteratorNext();
-
-        return {
-            value: out,
-            done: out === null,
-        };
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.d.ts
deleted file mode 100644
index 08ad53cb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class TimeZoneVariant {
-    
-
-    static fromValue(value : TimeZoneVariant | string) : TimeZoneVariant; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Standard : TimeZoneVariant;
-    static Daylight : TimeZoneVariant;
-
-    fromRearguardIsdst(isdst: boolean): TimeZoneVariant;
-
-    constructor(value: TimeZoneVariant | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.mjs
deleted file mode 100644
index b39ec4c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TimeZoneVariant.mjs
+++ /dev/null
@@ -1,77 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class TimeZoneVariant {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Standard", 0],
-        ["Daylight", 1]
-    ]);
-
-    static getAllEntries() {
-        return TimeZoneVariant.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return TimeZoneVariant.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof TimeZoneVariant) {
-            return value;
-        }
-
-        let intVal = TimeZoneVariant.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return TimeZoneVariant.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a TimeZoneVariant and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new TimeZoneVariant(value);
-    }
-
-    get value() {
-        return [...TimeZoneVariant.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new TimeZoneVariant(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new TimeZoneVariant(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Standard = TimeZoneVariant.#objectValues[0];
-    static Daylight = TimeZoneVariant.#objectValues[1];
-
-    fromRearguardIsdst(isdst) {
-        const result = wasm.icu4x_TimeZoneVariant_from_rearguard_isdst_mv1(this.ffiValue, isdst);
-    
-        try {
-            return new TimeZoneVariant(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.d.ts
deleted file mode 100644
index b3a2856..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { TitlecaseOptions } from "./TitlecaseOptions"
-import type { TitlecaseOptions_obj } from "./TitlecaseOptions"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TitlecaseMapper`](https://docs.rs/icu/latest/icu/casemap/struct.TitlecaseMapper.html) for more information.
-*/
-
-
-export class TitlecaseMapper {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): TitlecaseMapper;
-
-    titlecaseSegment(s: string, locale: Locale, options: TitlecaseOptions_obj): string;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.mjs
deleted file mode 100644
index cfc4927..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseMapper.mjs
+++ /dev/null
@@ -1,109 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { TitlecaseOptions } from "./TitlecaseOptions.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TitlecaseMapper`](https://docs.rs/icu/latest/icu/casemap/struct.TitlecaseMapper.html) for more information.
-*/
-const TitlecaseMapper_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_TitlecaseMapper_destroy_mv1(ptr);
-});
-
-export class TitlecaseMapper {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("TitlecaseMapper is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            TitlecaseMapper_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_TitlecaseMapper_create_mv1(diplomatReceive.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new TitlecaseMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_TitlecaseMapper_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new TitlecaseMapper(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    titlecaseSegment(s, locale, options) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, s));
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        wasm.icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(this.ffiValue, ...sSlice.splat(), locale.ffiValue, ...TitlecaseOptions._fromSuppliedValue(diplomatRuntime.internalConstructor, options)._intoFFI(functionCleanupArena, {}), write.buffer);
-    
-        try {
-            return write.readString8();
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            write.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.d.ts
deleted file mode 100644
index 696adfc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import type { LeadingAdjustment } from "./LeadingAdjustment"
-import type { TrailingCase } from "./TrailingCase"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TitlecaseOptions`](https://docs.rs/icu/latest/icu/casemap/options/struct.TitlecaseOptions.html) for more information.
-*/
-type TitlecaseOptions_obj = {
-    leadingAdjustment?: LeadingAdjustment | null;
-    trailingCase?: TrailingCase | null;
-};
-
-
-
-export class TitlecaseOptions {
-    
-    get leadingAdjustment() : LeadingAdjustment | null; 
-    set leadingAdjustment(value: LeadingAdjustment | null); 
-    
-    get trailingCase() : TrailingCase | null; 
-    set trailingCase(value: TrailingCase | null); 
-    
-    /** Create `TitlecaseOptions` from an object that contains all of `TitlecaseOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : TitlecaseOptions_obj) : TitlecaseOptions;
-
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.mjs
deleted file mode 100644
index 24d81e9b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TitlecaseOptions.mjs
+++ /dev/null
@@ -1,132 +0,0 @@
-// generated by diplomat-tool
-import { LeadingAdjustment } from "./LeadingAdjustment.mjs"
-import { TrailingCase } from "./TrailingCase.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TitlecaseOptions`](https://docs.rs/icu/latest/icu/casemap/options/struct.TitlecaseOptions.html) for more information.
-*/
-
-
-export class TitlecaseOptions {
-    
-    #leadingAdjustment;
-    
-    get leadingAdjustment()  {
-        return this.#leadingAdjustment;
-    } 
-    set leadingAdjustment(value) {
-        this.#leadingAdjustment = value;
-    }
-    
-    #trailingCase;
-    
-    get trailingCase()  {
-        return this.#trailingCase;
-    } 
-    set trailingCase(value) {
-        this.#trailingCase = value;
-    }
-    
-    /** Create `TitlecaseOptions` from an object that contains all of `TitlecaseOptions`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new TitlecaseOptions(diplomatRuntime.exposeConstructor, structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("TitlecaseOptions's constructor takes an object of TitlecaseOptions's fields.");
-        }
-
-        if ("leadingAdjustment" in structObj) {
-            this.#leadingAdjustment = structObj.leadingAdjustment;
-        } else {
-            this.#leadingAdjustment = null;
-        }
-
-        if ("trailingCase" in structObj) {
-            this.#trailingCase = structObj.trailingCase;
-        } else {
-            this.#trailingCase = null;
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [...diplomatRuntime.optionToArgsForCalling(this.#leadingAdjustment, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)]), ...diplomatRuntime.optionToArgsForCalling(this.#trailingCase, 4, 4, false, (arrayBuffer, offset, jsValue) => [diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array)])]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof TitlecaseOptions) {
-            return obj;
-        }
-
-        return TitlecaseOptions.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 0, this.#leadingAdjustment, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-        diplomatRuntime.writeOptionToArrayBuffer(arrayBuffer, offset + 8, this.#trailingCase, 4, 4, (arrayBuffer, offset, jsValue) => diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, jsValue.ffiValue, Int32Array));
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("TitlecaseOptions._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const leadingAdjustmentDeref = ptr;
-        structObj.leadingAdjustment = diplomatRuntime.readOption(wasm, leadingAdjustmentDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new LeadingAdjustment(diplomatRuntime.internalConstructor, deref) });
-        const trailingCaseDeref = ptr + 8;
-        structObj.trailingCase = diplomatRuntime.readOption(wasm, trailingCaseDeref, 4, (wasm, offset) => { const deref = diplomatRuntime.enumDiscriminant(wasm, offset); return new TrailingCase(diplomatRuntime.internalConstructor, deref) });
-
-        return new TitlecaseOptions(diplomatRuntime.exposeConstructor, structObj);
-    }
-
-    #defaultConstructor() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 16, 4, false);
-        
-        const result = wasm.icu4x_TitlecaseOptionsV1_default_mv1(diplomatReceive.buffer);
-    
-        try {
-            return TitlecaseOptions._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.d.ts
deleted file mode 100644
index 3a6fe311..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TrailingCase`](https://docs.rs/icu/latest/icu/casemap/options/enum.TrailingCase.html) for more information.
-*/
-
-
-export class TrailingCase {
-    
-
-    static fromValue(value : TrailingCase | string) : TrailingCase; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Lower : TrailingCase;
-    static Unchanged : TrailingCase;
-
-    constructor(value: TrailingCase | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.mjs
deleted file mode 100644
index 15d3ee36..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TrailingCase.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TrailingCase`](https://docs.rs/icu/latest/icu/casemap/options/enum.TrailingCase.html) for more information.
-*/
-
-
-export class TrailingCase {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Lower", 0],
-        ["Unchanged", 1]
-    ]);
-
-    static getAllEntries() {
-        return TrailingCase.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return TrailingCase.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof TrailingCase) {
-            return value;
-        }
-
-        let intVal = TrailingCase.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return TrailingCase.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a TrailingCase and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new TrailingCase(value);
-    }
-
-    get value() {
-        return [...TrailingCase.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new TrailingCase(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new TrailingCase(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Lower = TrailingCase.#objectValues[0];
-    static Unchanged = TrailingCase.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.d.ts
deleted file mode 100644
index 79c61ed9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `TransformResult`](https://docs.rs/icu/latest/icu/locale/enum.TransformResult.html) for more information.
-*/
-
-
-export class TransformResult {
-    
-
-    static fromValue(value : TransformResult | string) : TransformResult; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Modified : TransformResult;
-    static Unmodified : TransformResult;
-
-    constructor(value: TransformResult | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.mjs
deleted file mode 100644
index b47b2f3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/TransformResult.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `TransformResult`](https://docs.rs/icu/latest/icu/locale/enum.TransformResult.html) for more information.
-*/
-
-
-export class TransformResult {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Modified", 0],
-        ["Unmodified", 1]
-    ]);
-
-    static getAllEntries() {
-        return TransformResult.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return TransformResult.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof TransformResult) {
-            return value;
-        }
-
-        let intVal = TransformResult.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return TransformResult.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a TransformResult and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new TransformResult(value);
-    }
-
-    get value() {
-        return [...TransformResult.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new TransformResult(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new TransformResult(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-    ];
-
-    static Modified = TransformResult.#objectValues[0];
-    static Unmodified = TransformResult.#objectValues[1];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.d.ts
deleted file mode 100644
index 073d4b5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Units Converter object, capable of converting between two [`MeasureUnit`]s.
-*
-*You can create an instance of this object using [`UnitsConverterFactory`] by calling the `converter` method.
-*
-*See the [Rust documentation for `UnitsConverter`](https://docs.rs/icu/latest/icu/experimental/units/converter/struct.UnitsConverter.html) for more information.
-*/
-
-
-export class UnitsConverter {
-    
-    get ffiValue(): pointer;
-
-    convertNumber(value: number): number;
-
-    clone(): UnitsConverter;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.mjs
deleted file mode 100644
index 1509033..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverter.mjs
+++ /dev/null
@@ -1,68 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Units Converter object, capable of converting between two [`MeasureUnit`]s.
-*
-*You can create an instance of this object using [`UnitsConverterFactory`] by calling the `converter` method.
-*
-*See the [Rust documentation for `UnitsConverter`](https://docs.rs/icu/latest/icu/experimental/units/converter/struct.UnitsConverter.html) for more information.
-*/
-const UnitsConverter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_UnitsConverter_destroy_mv1(ptr);
-});
-
-export class UnitsConverter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("UnitsConverter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            UnitsConverter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    convertNumber(value) {
-        const result = wasm.icu4x_UnitsConverter_convert_double_mv1(this.ffiValue, value);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    clone() {
-        const result = wasm.icu4x_UnitsConverter_clone_mv1(this.ffiValue);
-    
-        try {
-            return new UnitsConverter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.d.ts
deleted file mode 100644
index 6fc111df..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { MeasureUnit } from "./MeasureUnit"
-import type { MeasureUnitParser } from "./MeasureUnitParser"
-import type { UnitsConverter } from "./UnitsConverter"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X Units Converter Factory object, capable of creating converters a [`UnitsConverter`]
-*for converting between two [`MeasureUnit`]s.
-*
-*Also, it can parse the CLDR unit identifier (e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-*
-*See the [Rust documentation for `ConverterFactory`](https://docs.rs/icu/latest/icu/experimental/units/converter_factory/struct.ConverterFactory.html) for more information.
-*/
-
-
-export class UnitsConverterFactory {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): UnitsConverterFactory;
-
-    converter(from: MeasureUnit, to: MeasureUnit): UnitsConverter | null;
-
-    parser(): MeasureUnitParser;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.mjs
deleted file mode 100644
index 88bb559d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UnitsConverterFactory.mjs
+++ /dev/null
@@ -1,111 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { MeasureUnit } from "./MeasureUnit.mjs"
-import { MeasureUnitParser } from "./MeasureUnitParser.mjs"
-import { UnitsConverter } from "./UnitsConverter.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X Units Converter Factory object, capable of creating converters a [`UnitsConverter`]
-*for converting between two [`MeasureUnit`]s.
-*
-*Also, it can parse the CLDR unit identifier (e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-*
-*See the [Rust documentation for `ConverterFactory`](https://docs.rs/icu/latest/icu/experimental/units/converter_factory/struct.ConverterFactory.html) for more information.
-*/
-const UnitsConverterFactory_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_UnitsConverterFactory_destroy_mv1(ptr);
-});
-
-export class UnitsConverterFactory {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("UnitsConverterFactory is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            UnitsConverterFactory_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_UnitsConverterFactory_create_mv1();
-    
-        try {
-            return new UnitsConverterFactory(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_UnitsConverterFactory_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new UnitsConverterFactory(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    converter(from, to) {
-        const result = wasm.icu4x_UnitsConverterFactory_converter_mv1(this.ffiValue, from.ffiValue, to.ffiValue);
-    
-        try {
-            return result === 0 ? null : new UnitsConverter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    parser() {
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this];
-        
-        const result = wasm.icu4x_UnitsConverterFactory_parser_mv1(this.ffiValue);
-    
-        try {
-            return new MeasureUnitParser(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {}
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.d.ts
deleted file mode 100644
index 48b1774c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// generated by diplomat-tool
-import type { TimeZoneInvalidOffsetError } from "./TimeZoneInvalidOffsetError"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `UtcOffset`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffset.html) for more information.
-*/
-
-
-export class UtcOffset {
-    
-    get ffiValue(): pointer;
-
-    static fromSeconds(seconds: number): UtcOffset;
-
-    static fromEighthsOfHour(eighthsOfHour: number): UtcOffset;
-
-    static fromString(offset: string): UtcOffset;
-
-    get eighthsOfHour(): number;
-
-    get seconds(): number;
-
-    get isNonNegative(): boolean;
-
-    get isZero(): boolean;
-
-    get hoursPart(): number;
-
-    get minutesPart(): number;
-
-    get secondsPart(): number;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.mjs
deleted file mode 100644
index 98c11430..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffset.mjs
+++ /dev/null
@@ -1,167 +0,0 @@
-// generated by diplomat-tool
-import { TimeZoneInvalidOffsetError } from "./TimeZoneInvalidOffsetError.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `UtcOffset`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffset.html) for more information.
-*/
-const UtcOffset_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_UtcOffset_destroy_mv1(ptr);
-});
-
-export class UtcOffset {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("UtcOffset is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            UtcOffset_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static fromSeconds(seconds) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_UtcOffset_from_seconds_mv1(diplomatReceive.buffer, seconds);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = TimeZoneInvalidOffsetError.fromFields({}, diplomatRuntime.internalConstructor);
-                throw new globalThis.Error('TimeZoneInvalidOffsetError', { cause });
-            }
-            return new UtcOffset(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromEighthsOfHour(eighthsOfHour) {
-        const result = wasm.icu4x_UtcOffset_from_eighths_of_hour_mv1(eighthsOfHour);
-    
-        try {
-            return new UtcOffset(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static fromString(offset) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const offsetSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, offset));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_UtcOffset_from_string_mv1(diplomatReceive.buffer, ...offsetSlice.splat());
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = TimeZoneInvalidOffsetError.fromFields({}, diplomatRuntime.internalConstructor);
-                throw new globalThis.Error('TimeZoneInvalidOffsetError', { cause });
-            }
-            return new UtcOffset(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    get eighthsOfHour() {
-        const result = wasm.icu4x_UtcOffset_eighths_of_hour_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get seconds() {
-        const result = wasm.icu4x_UtcOffset_seconds_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get isNonNegative() {
-        const result = wasm.icu4x_UtcOffset_is_non_negative_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get isZero() {
-        const result = wasm.icu4x_UtcOffset_is_zero_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get hoursPart() {
-        const result = wasm.icu4x_UtcOffset_hours_part_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get minutesPart() {
-        const result = wasm.icu4x_UtcOffset_minutes_part_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get secondsPart() {
-        const result = wasm.icu4x_UtcOffset_seconds_part_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.d.ts
deleted file mode 100644
index 4f0cc57..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { IsoDate } from "./IsoDate"
-import type { Time } from "./Time"
-import type { TimeZone } from "./TimeZone"
-import type { UtcOffsets } from "./UtcOffsets"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `UtcOffsetCalculator`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffsetCalculator.html) for more information.
-*/
-
-
-export class UtcOffsetCalculator {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): UtcOffsetCalculator;
-
-    computeOffsetsFromTimeZone(timeZone: TimeZone, localDate: IsoDate, localTime: Time): UtcOffsets | null;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.mjs
deleted file mode 100644
index 84c3d82f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsetCalculator.mjs
+++ /dev/null
@@ -1,101 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZone } from "./TimeZone.mjs"
-import { UtcOffsets } from "./UtcOffsets.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `UtcOffsetCalculator`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffsetCalculator.html) for more information.
-*/
-const UtcOffsetCalculator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_UtcOffsetCalculator_destroy_mv1(ptr);
-});
-
-export class UtcOffsetCalculator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("UtcOffsetCalculator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            UtcOffsetCalculator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_UtcOffsetCalculator_create_mv1();
-    
-        try {
-            return new UtcOffsetCalculator(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_UtcOffsetCalculator_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new UtcOffsetCalculator(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    computeOffsetsFromTimeZone(timeZone, localDate, localTime) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_UtcOffsetCalculator_compute_offsets_from_time_zone_mv1(diplomatReceive.buffer, this.ffiValue, timeZone.ffiValue, localDate.ffiValue, localTime.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return UtcOffsets._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.d.ts
deleted file mode 100644
index 460b49c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { UtcOffset } from "./UtcOffset"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `UtcOffsets`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffsets.html) for more information.
-*/
-
-
-export class UtcOffsets {
-    
-    get standard() : UtcOffset;
-    
-    get daylight() : UtcOffset | null;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.mjs
deleted file mode 100644
index 273b977..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/UtcOffsets.mjs
+++ /dev/null
@@ -1,101 +0,0 @@
-// generated by diplomat-tool
-import { UtcOffset } from "./UtcOffset.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `UtcOffsets`](https://docs.rs/icu/latest/icu/time/zone/struct.UtcOffsets.html) for more information.
-*/
-
-
-export class UtcOffsets {
-    
-    #standard;
-    
-    get standard()  {
-        return this.#standard;
-    }
-    
-    #daylight;
-    
-    get daylight()  {
-        return this.#daylight;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("UtcOffsets's constructor takes an object of UtcOffsets's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("UtcOffsets is an out struct and can only be created internally.");
-        }
-        if ("standard" in structObj) {
-            this.#standard = structObj.standard;
-        } else {
-            throw new Error("Missing required field standard.");
-        }
-
-        if ("daylight" in structObj) {
-            this.#daylight = structObj.daylight;
-        } else {
-            throw new Error("Missing required field daylight.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#standard.ffiValue, this.#daylight.ffiValue ?? 0]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof UtcOffsets) {
-            return obj;
-        }
-
-        return UtcOffsets.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#standard.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#daylight.ffiValue ?? 0, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("UtcOffsets._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const standardDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.standard = new UtcOffset(diplomatRuntime.internalConstructor, standardDeref, []);
-        const daylightDeref = diplomatRuntime.ptrRead(wasm, ptr + 4);
-        structObj.daylight = daylightDeref === 0 ? null : new UtcOffset(diplomatRuntime.internalConstructor, daylightDeref, []);
-
-        return new UtcOffsets(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.d.ts
deleted file mode 100644
index c8002d0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { Weekday } from "./Weekday"
-import type { WeekendContainsDay } from "./WeekendContainsDay"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A Week calculator, useful to be passed in to `week_of_year()` on Date and DateTime types
-*
-*See the [Rust documentation for `WeekCalculator`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html) for more information.
-*/
-
-
-export class WeekCalculator {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider, locale: Locale): WeekCalculator;
-
-    static fromFirstDayOfWeekAndMinWeekDays(firstWeekday: Weekday, minWeekDays: number): WeekCalculator;
-
-    get firstWeekday(): Weekday;
-
-    get minWeekDays(): number;
-
-    get weekend(): WeekendContainsDay;
-
-    constructor(locale: Locale);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.mjs
deleted file mode 100644
index 962793c3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekCalculator.mjs
+++ /dev/null
@@ -1,137 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { Weekday } from "./Weekday.mjs"
-import { WeekendContainsDay } from "./WeekendContainsDay.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A Week calculator, useful to be passed in to `week_of_year()` on Date and DateTime types
-*
-*See the [Rust documentation for `WeekCalculator`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html) for more information.
-*/
-const WeekCalculator_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WeekCalculator_destroy_mv1(ptr);
-});
-
-export class WeekCalculator {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WeekCalculator is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WeekCalculator_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WeekCalculator_create_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WeekCalculator(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WeekCalculator_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WeekCalculator(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static fromFirstDayOfWeekAndMinWeekDays(firstWeekday, minWeekDays) {
-        const result = wasm.icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(firstWeekday.ffiValue, minWeekDays);
-    
-        try {
-            return new WeekCalculator(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    get firstWeekday() {
-        const result = wasm.icu4x_WeekCalculator_first_weekday_mv1(this.ffiValue);
-    
-        try {
-            return new Weekday(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get minWeekDays() {
-        const result = wasm.icu4x_WeekCalculator_min_week_days_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get weekend() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 7, 1, false);
-        
-        const result = wasm.icu4x_WeekCalculator_weekend_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            return WeekendContainsDay._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(locale) {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.d.ts
deleted file mode 100644
index 5479738..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-// generated by diplomat-tool
-import type { WeekRelativeUnit } from "./WeekRelativeUnit"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WeekOf`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekOf.html) for more information.
-*/
-
-
-export class WeekOf {
-    
-    get week() : number;
-    
-    get unit() : WeekRelativeUnit;
-    
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.mjs
deleted file mode 100644
index f05f88b52..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekOf.mjs
+++ /dev/null
@@ -1,106 +0,0 @@
-// generated by diplomat-tool
-import { WeekRelativeUnit } from "./WeekRelativeUnit.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WeekOf`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekOf.html) for more information.
-*/
-
-
-export class WeekOf {
-    
-    #week;
-    
-    get week()  {
-        return this.#week;
-    }
-    
-    #unit;
-    
-    get unit()  {
-        return this.#unit;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("WeekOf's constructor takes an object of WeekOf's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("WeekOf is an out struct and can only be created internally.");
-        }
-        if ("week" in structObj) {
-            this.#week = structObj.week;
-        } else {
-            throw new Error("Missing required field week.");
-        }
-
-        if ("unit" in structObj) {
-            this.#unit = structObj.unit;
-        } else {
-            throw new Error("Missing required field unit.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    // JS structs need to be generated with or without padding depending on whether they are being passed as aggregates or splatted out into fields.
-    // Most of the time this is known beforehand: large structs (>2 scalar fields) always get padding, and structs passed directly in parameters omit padding
-    // if they are small. However small structs within large structs also get padding, and we signal that by setting forcePadding.
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap,
-        forcePadding
-    ) {
-        return [this.#week, ...diplomatRuntime.maybePaddingFields(forcePadding, 3 /* x i8 */), this.#unit.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof WeekOf) {
-            return obj;
-        }
-
-        return WeekOf.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap,
-        forcePadding
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#week, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#unit.ffiValue, Int32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("WeekOf._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const weekDeref = (new Uint8Array(wasm.memory.buffer, ptr, 1))[0];
-        structObj.week = weekDeref;
-        const unitDeref = diplomatRuntime.enumDiscriminant(wasm, ptr + 4);
-        structObj.unit = new WeekRelativeUnit(diplomatRuntime.internalConstructor, unitDeref);
-
-        return new WeekOf(structObj, internalConstructor);
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.d.ts
deleted file mode 100644
index cfe9837..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `RelativeUnit`](https://docs.rs/icu/latest/icu/calendar/week/enum.RelativeUnit.html) for more information.
-*/
-
-
-export class WeekRelativeUnit {
-    
-
-    static fromValue(value : WeekRelativeUnit | string) : WeekRelativeUnit; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Previous : WeekRelativeUnit;
-    static Current : WeekRelativeUnit;
-    static Next : WeekRelativeUnit;
-
-    constructor(value: WeekRelativeUnit | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.mjs
deleted file mode 100644
index 3b436cd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekRelativeUnit.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `RelativeUnit`](https://docs.rs/icu/latest/icu/calendar/week/enum.RelativeUnit.html) for more information.
-*/
-
-
-export class WeekRelativeUnit {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Previous", 0],
-        ["Current", 1],
-        ["Next", 2]
-    ]);
-
-    static getAllEntries() {
-        return WeekRelativeUnit.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return WeekRelativeUnit.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof WeekRelativeUnit) {
-            return value;
-        }
-
-        let intVal = WeekRelativeUnit.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return WeekRelativeUnit.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a WeekRelativeUnit and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new WeekRelativeUnit(value);
-    }
-
-    get value() {
-        return [...WeekRelativeUnit.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new WeekRelativeUnit(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new WeekRelativeUnit(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new WeekRelativeUnit(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Previous = WeekRelativeUnit.#objectValues[0];
-    static Current = WeekRelativeUnit.#objectValues[1];
-    static Next = WeekRelativeUnit.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.d.ts
deleted file mode 100644
index 25ffa98..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-
-export class Weekday {
-    
-
-    static fromValue(value : Weekday | string) : Weekday; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Monday : Weekday;
-    static Tuesday : Weekday;
-    static Wednesday : Weekday;
-    static Thursday : Weekday;
-    static Friday : Weekday;
-    static Saturday : Weekday;
-    static Sunday : Weekday;
-
-    constructor(value: Weekday | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.mjs
deleted file mode 100644
index 90732768..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/Weekday.mjs
+++ /dev/null
@@ -1,86 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-
-export class Weekday {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Monday", 1],
-        ["Tuesday", 2],
-        ["Wednesday", 3],
-        ["Thursday", 4],
-        ["Friday", 5],
-        ["Saturday", 6],
-        ["Sunday", 7]
-    ]);
-
-    static getAllEntries() {
-        return Weekday.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return Weekday.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof Weekday) {
-            return value;
-        }
-
-        let intVal = Weekday.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return Weekday.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a Weekday and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new Weekday(value);
-    }
-
-    get value() {
-        for (let entry of Weekday.#values) {
-            if (entry[1] == this.#value) {
-                return entry[0];
-            }
-        }
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = {
-        [1]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        [2]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        [3]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        [4]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        [5]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        [6]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        [7]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-    };
-
-    static Monday = Weekday.#objectValues[1];
-    static Tuesday = Weekday.#objectValues[2];
-    static Wednesday = Weekday.#objectValues[3];
-    static Thursday = Weekday.#objectValues[4];
-    static Friday = Weekday.#objectValues[5];
-    static Saturday = Weekday.#objectValues[6];
-    static Sunday = Weekday.#objectValues[7];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.d.ts
deleted file mode 100644
index 6be14c4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** Documents which days of the week are considered to be a part of the weekend
-*
-*See the [Rust documentation for `weekend`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#method.weekend) for more information.
-*/
-type WeekendContainsDay_obj = {
-    monday: boolean;
-    tuesday: boolean;
-    wednesday: boolean;
-    thursday: boolean;
-    friday: boolean;
-    saturday: boolean;
-    sunday: boolean;
-};
-
-
-
-export class WeekendContainsDay {
-    
-    get monday() : boolean; 
-    set monday(value: boolean); 
-    
-    get tuesday() : boolean; 
-    set tuesday(value: boolean); 
-    
-    get wednesday() : boolean; 
-    set wednesday(value: boolean); 
-    
-    get thursday() : boolean; 
-    set thursday(value: boolean); 
-    
-    get friday() : boolean; 
-    set friday(value: boolean); 
-    
-    get saturday() : boolean; 
-    set saturday(value: boolean); 
-    
-    get sunday() : boolean; 
-    set sunday(value: boolean); 
-    
-    /** Create `WeekendContainsDay` from an object that contains all of `WeekendContainsDay`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj : WeekendContainsDay_obj) : WeekendContainsDay;
-
-
-    constructor(structObj : WeekendContainsDay_obj);
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.mjs
deleted file mode 100644
index b3a7937..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WeekendContainsDay.mjs
+++ /dev/null
@@ -1,202 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** Documents which days of the week are considered to be a part of the weekend
-*
-*See the [Rust documentation for `weekend`](https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#method.weekend) for more information.
-*/
-
-
-export class WeekendContainsDay {
-    
-    #monday;
-    
-    get monday()  {
-        return this.#monday;
-    } 
-    set monday(value) {
-        this.#monday = value;
-    }
-    
-    #tuesday;
-    
-    get tuesday()  {
-        return this.#tuesday;
-    } 
-    set tuesday(value) {
-        this.#tuesday = value;
-    }
-    
-    #wednesday;
-    
-    get wednesday()  {
-        return this.#wednesday;
-    } 
-    set wednesday(value) {
-        this.#wednesday = value;
-    }
-    
-    #thursday;
-    
-    get thursday()  {
-        return this.#thursday;
-    } 
-    set thursday(value) {
-        this.#thursday = value;
-    }
-    
-    #friday;
-    
-    get friday()  {
-        return this.#friday;
-    } 
-    set friday(value) {
-        this.#friday = value;
-    }
-    
-    #saturday;
-    
-    get saturday()  {
-        return this.#saturday;
-    } 
-    set saturday(value) {
-        this.#saturday = value;
-    }
-    
-    #sunday;
-    
-    get sunday()  {
-        return this.#sunday;
-    } 
-    set sunday(value) {
-        this.#sunday = value;
-    }
-    
-    /** Create `WeekendContainsDay` from an object that contains all of `WeekendContainsDay`s fields.
-    * Optional fields do not need to be included in the provided object.
-    */
-    static fromFields(structObj) {
-        return new WeekendContainsDay(structObj);
-    }
-
-    #internalConstructor(structObj) {
-        if (typeof structObj !== "object") {
-            throw new Error("WeekendContainsDay's constructor takes an object of WeekendContainsDay's fields.");
-        }
-
-        if ("monday" in structObj) {
-            this.#monday = structObj.monday;
-        } else {
-            throw new Error("Missing required field monday.");
-        }
-
-        if ("tuesday" in structObj) {
-            this.#tuesday = structObj.tuesday;
-        } else {
-            throw new Error("Missing required field tuesday.");
-        }
-
-        if ("wednesday" in structObj) {
-            this.#wednesday = structObj.wednesday;
-        } else {
-            throw new Error("Missing required field wednesday.");
-        }
-
-        if ("thursday" in structObj) {
-            this.#thursday = structObj.thursday;
-        } else {
-            throw new Error("Missing required field thursday.");
-        }
-
-        if ("friday" in structObj) {
-            this.#friday = structObj.friday;
-        } else {
-            throw new Error("Missing required field friday.");
-        }
-
-        if ("saturday" in structObj) {
-            this.#saturday = structObj.saturday;
-        } else {
-            throw new Error("Missing required field saturday.");
-        }
-
-        if ("sunday" in structObj) {
-            this.#sunday = structObj.sunday;
-        } else {
-            throw new Error("Missing required field sunday.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#monday, this.#tuesday, this.#wednesday, this.#thursday, this.#friday, this.#saturday, this.#sunday]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof WeekendContainsDay) {
-            return obj;
-        }
-
-        return WeekendContainsDay.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#monday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 1, this.#tuesday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 2, this.#wednesday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 3, this.#thursday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#friday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 5, this.#saturday, Uint8Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 6, this.#sunday, Uint8Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("WeekendContainsDay._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const mondayDeref = (new Uint8Array(wasm.memory.buffer, ptr, 1))[0] === 1;
-        structObj.monday = mondayDeref;
-        const tuesdayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 1, 1))[0] === 1;
-        structObj.tuesday = tuesdayDeref;
-        const wednesdayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 2, 1))[0] === 1;
-        structObj.wednesday = wednesdayDeref;
-        const thursdayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 3, 1))[0] === 1;
-        structObj.thursday = thursdayDeref;
-        const fridayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 4, 1))[0] === 1;
-        structObj.friday = fridayDeref;
-        const saturdayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 5, 1))[0] === 1;
-        structObj.saturday = saturdayDeref;
-        const sundayDeref = (new Uint8Array(wasm.memory.buffer, ptr + 6, 1))[0] === 1;
-        structObj.sunday = sundayDeref;
-
-        return new WeekendContainsDay(structObj);
-    }
-
-    constructor(structObj) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.d.ts
deleted file mode 100644
index 6a26496..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { TimeZone } from "./TimeZone"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** A mapper between Windows time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of Windows to BCP-47.
-*It also supports normalizing and canonicalizing the Windows strings.
-*
-*See the [Rust documentation for `WindowsParser`](https://docs.rs/icu/latest/icu/time/zone/windows/struct.WindowsParser.html) for more information.
-*/
-
-
-export class WindowsParser {
-    
-    get ffiValue(): pointer;
-
-    static createWithProvider(provider: DataProvider): WindowsParser;
-
-    parse(value: string, region: string): TimeZone | null;
-
-    constructor();
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.mjs
deleted file mode 100644
index 9f9bd5f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WindowsParser.mjs
+++ /dev/null
@@ -1,104 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { TimeZone } from "./TimeZone.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** A mapper between Windows time zone identifiers and BCP-47 time zone identifiers.
-*
-*This mapper supports two-way mapping, but it is optimized for the case of Windows to BCP-47.
-*It also supports normalizing and canonicalizing the Windows strings.
-*
-*See the [Rust documentation for `WindowsParser`](https://docs.rs/icu/latest/icu/time/zone/windows/struct.WindowsParser.html) for more information.
-*/
-const WindowsParser_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WindowsParser_destroy_mv1(ptr);
-});
-
-export class WindowsParser {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WindowsParser is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WindowsParser_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    #defaultConstructor() {
-        const result = wasm.icu4x_WindowsParser_create_mv1();
-    
-        try {
-            return new WindowsParser(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createWithProvider(provider) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WindowsParser_create_with_provider_mv1(diplomatReceive.buffer, provider.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WindowsParser(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    parse(value, region) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const valueSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, value));
-        
-        const regionSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, region));
-        
-        const result = wasm.icu4x_WindowsParser_parse_mv1(this.ffiValue, ...valueSlice.splat(), ...regionSlice.splat());
-    
-        try {
-            return result === 0 ? null : new TimeZone(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        }
-    }
-
-    constructor() {
-        if (arguments[0] === diplomatRuntime.exposeConstructor) {
-            return this.#internalConstructor(...Array.prototype.slice.call(arguments, 1));
-        } else if (arguments[0] === diplomatRuntime.internalConstructor) {
-            return this.#internalConstructor(...arguments);
-        } else {
-            return this.#defaultConstructor(...arguments);
-        }
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.d.ts
deleted file mode 100644
index 8d1e34a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WordBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.WordBreak.html) for more information.
-*/
-
-
-export class WordBreak {
-    
-
-    static fromValue(value : WordBreak | string) : WordBreak; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Other : WordBreak;
-    static ALetter : WordBreak;
-    static Format : WordBreak;
-    static Katakana : WordBreak;
-    static MidLetter : WordBreak;
-    static MidNum : WordBreak;
-    static Numeric : WordBreak;
-    static ExtendNumLet : WordBreak;
-    static Cr : WordBreak;
-    static Extend : WordBreak;
-    static Lf : WordBreak;
-    static MidNumLet : WordBreak;
-    static Newline : WordBreak;
-    static RegionalIndicator : WordBreak;
-    static HebrewLetter : WordBreak;
-    static SingleQuote : WordBreak;
-    static DoubleQuote : WordBreak;
-    static EBase : WordBreak;
-    static EBaseGaz : WordBreak;
-    static EModifier : WordBreak;
-    static GlueAfterZwj : WordBreak;
-    static Zwj : WordBreak;
-    static WSegSpace : WordBreak;
-
-    static forChar(ch: codepoint): WordBreak;
-
-    longName(): string | null;
-
-    shortName(): string | null;
-
-    toIntegerValue(): number;
-
-    static fromIntegerValue(other: number): WordBreak | null;
-
-    constructor(value: WordBreak | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.mjs
deleted file mode 100644
index 483e3a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreak.mjs
+++ /dev/null
@@ -1,204 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WordBreak`](https://docs.rs/icu/latest/icu/properties/props/struct.WordBreak.html) for more information.
-*/
-
-
-export class WordBreak {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Other", 0],
-        ["ALetter", 1],
-        ["Format", 2],
-        ["Katakana", 3],
-        ["MidLetter", 4],
-        ["MidNum", 5],
-        ["Numeric", 6],
-        ["ExtendNumLet", 7],
-        ["Cr", 8],
-        ["Extend", 9],
-        ["Lf", 10],
-        ["MidNumLet", 11],
-        ["Newline", 12],
-        ["RegionalIndicator", 13],
-        ["HebrewLetter", 14],
-        ["SingleQuote", 15],
-        ["DoubleQuote", 16],
-        ["EBase", 17],
-        ["EBaseGaz", 18],
-        ["EModifier", 19],
-        ["GlueAfterZwj", 20],
-        ["Zwj", 21],
-        ["WSegSpace", 22]
-    ]);
-
-    static getAllEntries() {
-        return WordBreak.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return WordBreak.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof WordBreak) {
-            return value;
-        }
-
-        let intVal = WordBreak.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return WordBreak.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a WordBreak and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new WordBreak(value);
-    }
-
-    get value() {
-        return [...WordBreak.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
-        new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
-    ];
-
-    static Other = WordBreak.#objectValues[0];
-    static ALetter = WordBreak.#objectValues[1];
-    static Format = WordBreak.#objectValues[2];
-    static Katakana = WordBreak.#objectValues[3];
-    static MidLetter = WordBreak.#objectValues[4];
-    static MidNum = WordBreak.#objectValues[5];
-    static Numeric = WordBreak.#objectValues[6];
-    static ExtendNumLet = WordBreak.#objectValues[7];
-    static Cr = WordBreak.#objectValues[8];
-    static Extend = WordBreak.#objectValues[9];
-    static Lf = WordBreak.#objectValues[10];
-    static MidNumLet = WordBreak.#objectValues[11];
-    static Newline = WordBreak.#objectValues[12];
-    static RegionalIndicator = WordBreak.#objectValues[13];
-    static HebrewLetter = WordBreak.#objectValues[14];
-    static SingleQuote = WordBreak.#objectValues[15];
-    static DoubleQuote = WordBreak.#objectValues[16];
-    static EBase = WordBreak.#objectValues[17];
-    static EBaseGaz = WordBreak.#objectValues[18];
-    static EModifier = WordBreak.#objectValues[19];
-    static GlueAfterZwj = WordBreak.#objectValues[20];
-    static Zwj = WordBreak.#objectValues[21];
-    static WSegSpace = WordBreak.#objectValues[22];
-
-    static forChar(ch) {
-        const result = wasm.icu4x_WordBreak_for_char_mv1(ch);
-    
-        try {
-            return new WordBreak(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    longName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_WordBreak_long_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    shortName() {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);
-        
-        const result = wasm.icu4x_WordBreak_short_name_mv1(diplomatReceive.buffer, this.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    toIntegerValue() {
-        const result = wasm.icu4x_WordBreak_to_integer_value_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    static fromIntegerValue(other) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordBreak_from_integer_value_mv1(diplomatReceive.buffer, other);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                return null;
-            }
-            return new WordBreak(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.d.ts
deleted file mode 100644
index 9759497..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// generated by diplomat-tool
-import type { SegmenterWordType } from "./SegmenterWordType"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-
-
-export class WordBreakIteratorLatin1 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-
-    get wordType(): SegmenterWordType;
-
-    get isWordLike(): boolean;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.mjs
deleted file mode 100644
index 7b927ef..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorLatin1.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// generated by diplomat-tool
-import { SegmenterWordType } from "./SegmenterWordType.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-const WordBreakIteratorLatin1_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WordBreakIteratorLatin1_destroy_mv1(ptr);
-});
-
-export class WordBreakIteratorLatin1 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WordBreakIteratorLatin1 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WordBreakIteratorLatin1_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_WordBreakIteratorLatin1_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get wordType() {
-        const result = wasm.icu4x_WordBreakIteratorLatin1_word_type_mv1(this.ffiValue);
-    
-        try {
-            return new SegmenterWordType(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get isWordLike() {
-        const result = wasm.icu4x_WordBreakIteratorLatin1_is_word_like_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.d.ts
deleted file mode 100644
index ec3a1c9..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// generated by diplomat-tool
-import type { SegmenterWordType } from "./SegmenterWordType"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-
-
-export class WordBreakIteratorUtf16 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-
-    get wordType(): SegmenterWordType;
-
-    get isWordLike(): boolean;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.mjs
deleted file mode 100644
index d583a15e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf16.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// generated by diplomat-tool
-import { SegmenterWordType } from "./SegmenterWordType.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-const WordBreakIteratorUtf16_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WordBreakIteratorUtf16_destroy_mv1(ptr);
-});
-
-export class WordBreakIteratorUtf16 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WordBreakIteratorUtf16 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WordBreakIteratorUtf16_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_WordBreakIteratorUtf16_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get wordType() {
-        const result = wasm.icu4x_WordBreakIteratorUtf16_word_type_mv1(this.ffiValue);
-    
-        try {
-            return new SegmenterWordType(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get isWordLike() {
-        const result = wasm.icu4x_WordBreakIteratorUtf16_is_word_like_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.d.ts
deleted file mode 100644
index be8f57aa..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// generated by diplomat-tool
-import type { SegmenterWordType } from "./SegmenterWordType"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-
-
-export class WordBreakIteratorUtf8 {
-    
-    get ffiValue(): pointer;
-
-    next(): number;
-
-    get wordType(): SegmenterWordType;
-
-    get isWordLike(): boolean;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.mjs
deleted file mode 100644
index c21467f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordBreakIteratorUtf8.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// generated by diplomat-tool
-import { SegmenterWordType } from "./SegmenterWordType.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `WordBreakIterator`](https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html) for more information.
-*/
-const WordBreakIteratorUtf8_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WordBreakIteratorUtf8_destroy_mv1(ptr);
-});
-
-export class WordBreakIteratorUtf8 {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    #aEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge, aEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WordBreakIteratorUtf8 is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        
-        this.#aEdge = aEdge;
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WordBreakIteratorUtf8_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    next() {
-        const result = wasm.icu4x_WordBreakIteratorUtf8_next_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    get wordType() {
-        const result = wasm.icu4x_WordBreakIteratorUtf8_word_type_mv1(this.ffiValue);
-    
-        try {
-            return new SegmenterWordType(diplomatRuntime.internalConstructor, result);
-        }
-        
-        finally {}
-    }
-
-    get isWordLike() {
-        const result = wasm.icu4x_WordBreakIteratorUtf8_is_word_like_mv1(this.ffiValue);
-    
-        try {
-            return result;
-        }
-        
-        finally {}
-    }
-
-    constructor(symbol, ptr, selfEdge, aEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.d.ts
deleted file mode 100644
index 292be48..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.d.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-// generated by diplomat-tool
-import type { DataError } from "./DataError"
-import type { DataProvider } from "./DataProvider"
-import type { Locale } from "./Locale"
-import type { WordBreakIteratorUtf16 } from "./WordBreakIteratorUtf16"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X word-break segmenter, capable of finding word breakpoints in strings.
-*
-*See the [Rust documentation for `WordSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html) for more information.
-*/
-
-
-export class WordSegmenter {
-    
-    get ffiValue(): pointer;
-
-    static createAuto(): WordSegmenter;
-
-    static createAutoWithContentLocale(locale: Locale): WordSegmenter;
-
-    static createAutoWithContentLocaleAndProvider(provider: DataProvider, locale: Locale): WordSegmenter;
-
-    static createLstm(): WordSegmenter;
-
-    static createLstmWithContentLocale(locale: Locale): WordSegmenter;
-
-    static createLstmWithContentLocaleAndProvider(provider: DataProvider, locale: Locale): WordSegmenter;
-
-    static createDictionary(): WordSegmenter;
-
-    static createDictionaryWithContentLocale(locale: Locale): WordSegmenter;
-
-    static createDictionaryWithContentLocaleAndProvider(provider: DataProvider, locale: Locale): WordSegmenter;
-
-    segment(input: string): WordBreakIteratorUtf16;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.mjs
deleted file mode 100644
index 318df2cb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/WordSegmenter.mjs
+++ /dev/null
@@ -1,206 +0,0 @@
-// generated by diplomat-tool
-import { DataError } from "./DataError.mjs"
-import { DataProvider } from "./DataProvider.mjs"
-import { Locale } from "./Locale.mjs"
-import { WordBreakIteratorUtf16 } from "./WordBreakIteratorUtf16.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X word-break segmenter, capable of finding word breakpoints in strings.
-*
-*See the [Rust documentation for `WordSegmenter`](https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html) for more information.
-*/
-const WordSegmenter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_WordSegmenter_destroy_mv1(ptr);
-});
-
-export class WordSegmenter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("WordSegmenter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            WordSegmenter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createAuto() {
-        const result = wasm.icu4x_WordSegmenter_create_auto_mv1();
-    
-        try {
-            return new WordSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createAutoWithContentLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_auto_with_content_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createAutoWithContentLocaleAndProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_auto_with_content_locale_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createLstm() {
-        const result = wasm.icu4x_WordSegmenter_create_lstm_mv1();
-    
-        try {
-            return new WordSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createLstmWithContentLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_lstm_with_content_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createLstmWithContentLocaleAndProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_lstm_with_content_locale_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDictionary() {
-        const result = wasm.icu4x_WordSegmenter_create_dictionary_mv1();
-    
-        try {
-            return new WordSegmenter(diplomatRuntime.internalConstructor, result, []);
-        }
-        
-        finally {}
-    }
-
-    static createDictionaryWithContentLocale(locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_dictionary_with_content_locale_mv1(diplomatReceive.buffer, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createDictionaryWithContentLocaleAndProvider(provider, locale) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_WordSegmenter_create_dictionary_with_content_locale_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DataError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DataError: ' + cause.value, { cause });
-            }
-            return new WordSegmenter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    segment(input) {
-        let functionGarbageCollectorGrip = new diplomatRuntime.GarbageCollectorGrip();
-        const inputSlice = functionGarbageCollectorGrip.alloc(diplomatRuntime.DiplomatBuf.str16(wasm, input));
-        
-        // This lifetime edge depends on lifetimes 'a
-        let aEdges = [this, inputSlice];
-        
-        const result = wasm.icu4x_WordSegmenter_segment_utf16_mv1(this.ffiValue, ...inputSlice.splat());
-    
-        try {
-            return new WordBreakIteratorUtf16(diplomatRuntime.internalConstructor, result, [], aEdges);
-        }
-        
-        finally {
-            functionGarbageCollectorGrip.releaseToGarbageCollector();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.d.ts
deleted file mode 100644
index 633174b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-// generated by diplomat-tool
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** See the [Rust documentation for `YearStyle`](https://docs.rs/icu/latest/icu/datetime/enum.YearStyle.html) for more information.
-*/
-
-
-export class YearStyle {
-    
-
-    static fromValue(value : YearStyle | string) : YearStyle; 
-
-    get value() : string;
-
-    get ffiValue() : number;
-
-    static Auto : YearStyle;
-    static Full : YearStyle;
-    static WithEra : YearStyle;
-
-    constructor(value: YearStyle | string );
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.mjs
deleted file mode 100644
index d94a7d1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/YearStyle.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// generated by diplomat-tool
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** See the [Rust documentation for `YearStyle`](https://docs.rs/icu/latest/icu/datetime/enum.YearStyle.html) for more information.
-*/
-
-
-export class YearStyle {
-    
-    #value = undefined;
-
-    static #values = new Map([
-        ["Auto", 0],
-        ["Full", 1],
-        ["WithEra", 2]
-    ]);
-
-    static getAllEntries() {
-        return YearStyle.#values.entries();
-    }
-    
-    #internalConstructor(value) {
-        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
-            // We pass in two internalConstructor arguments to create *new*
-            // instances of this type, otherwise the enums are treated as singletons.
-            if (arguments[1] === diplomatRuntime.internalConstructor ) {
-                this.#value = arguments[2];
-                return this;
-            }
-            return YearStyle.#objectValues[arguments[1]];
-        }
-
-        if (value instanceof YearStyle) {
-            return value;
-        }
-
-        let intVal = YearStyle.#values.get(value);
-
-        // Nullish check, checks for null or undefined
-        if (intVal != null) {
-            return YearStyle.#objectValues[intVal];
-        }
-
-        throw TypeError(value + " is not a YearStyle and does not correspond to any of its enumerator values.");
-    }
-
-    static fromValue(value) {
-        return new YearStyle(value);
-    }
-
-    get value() {
-        return [...YearStyle.#values.keys()][this.#value];
-    }
-
-    get ffiValue() {
-        return this.#value;
-    }
-    static #objectValues = [
-        new YearStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
-        new YearStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
-        new YearStyle(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
-    ];
-
-    static Auto = YearStyle.#objectValues[0];
-    static Full = YearStyle.#objectValues[1];
-    static WithEra = YearStyle.#objectValues[2];
-
-    constructor(value) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.d.ts
deleted file mode 100644
index bec00c6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.d.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-// generated by diplomat-tool
-import type { Calendar } from "./Calendar"
-import type { CalendarParseError } from "./CalendarParseError"
-import type { Date } from "./Date"
-import type { IanaParser } from "./IanaParser"
-import type { Time } from "./Time"
-import type { TimeZoneInfo } from "./TimeZoneInfo"
-import type { UtcOffsetCalculator } from "./UtcOffsetCalculator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X DateTime object capable of containing a date, time, and zone for any calendar.
-*
-*See the [Rust documentation for `ZonedDateTime`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html) for more information.
-*/
-
-
-export class ZonedDateTime {
-    
-    get date() : Date;
-    
-    get time() : Time;
-    
-    get zone() : TimeZoneInfo;
-    
-
-    static fromString(v: string, calendar: Calendar, ianaParser: IanaParser, offsetCalculator: UtcOffsetCalculator): ZonedDateTime;
-
-    static locationOnlyFromString(v: string, calendar: Calendar, ianaParser: IanaParser): ZonedDateTime;
-
-    static offsetOnlyFromString(v: string, calendar: Calendar): ZonedDateTime;
-
-    static looseFromString(v: string, calendar: Calendar, ianaParser: IanaParser): ZonedDateTime;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.mjs
deleted file mode 100644
index 12bddd2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTime.mjs
+++ /dev/null
@@ -1,220 +0,0 @@
-// generated by diplomat-tool
-import { Calendar } from "./Calendar.mjs"
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { Date } from "./Date.mjs"
-import { IanaParser } from "./IanaParser.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-import { UtcOffsetCalculator } from "./UtcOffsetCalculator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X DateTime object capable of containing a date, time, and zone for any calendar.
-*
-*See the [Rust documentation for `ZonedDateTime`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html) for more information.
-*/
-
-
-export class ZonedDateTime {
-    
-    #date;
-    
-    get date()  {
-        return this.#date;
-    }
-    
-    #time;
-    
-    get time()  {
-        return this.#time;
-    }
-    
-    #zone;
-    
-    get zone()  {
-        return this.#zone;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("ZonedDateTime's constructor takes an object of ZonedDateTime's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("ZonedDateTime is an out struct and can only be created internally.");
-        }
-        if ("date" in structObj) {
-            this.#date = structObj.date;
-        } else {
-            throw new Error("Missing required field date.");
-        }
-
-        if ("time" in structObj) {
-            this.#time = structObj.time;
-        } else {
-            throw new Error("Missing required field time.");
-        }
-
-        if ("zone" in structObj) {
-            this.#zone = structObj.zone;
-        } else {
-            throw new Error("Missing required field zone.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#date.ffiValue, this.#time.ffiValue, this.#zone.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof ZonedDateTime) {
-            return obj;
-        }
-
-        return ZonedDateTime.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#date.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#time.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#zone.ffiValue, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("ZonedDateTime._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const dateDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.date = new Date(diplomatRuntime.internalConstructor, dateDeref, []);
-        const timeDeref = diplomatRuntime.ptrRead(wasm, ptr + 4);
-        structObj.time = new Time(diplomatRuntime.internalConstructor, timeDeref, []);
-        const zoneDeref = diplomatRuntime.ptrRead(wasm, ptr + 8);
-        structObj.zone = new TimeZoneInfo(diplomatRuntime.internalConstructor, zoneDeref, []);
-
-        return new ZonedDateTime(structObj, internalConstructor);
-    }
-
-    static fromString(v, calendar, ianaParser, offsetCalculator) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTime_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue, ianaParser.ffiValue, offsetCalculator.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return ZonedDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static locationOnlyFromString(v, calendar, ianaParser) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTime_location_only_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue, ianaParser.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return ZonedDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static offsetOnlyFromString(v, calendar) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTime_offset_only_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return ZonedDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    static looseFromString(v, calendar, ianaParser) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTime_loose_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), calendar.ffiValue, ianaParser.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return ZonedDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.d.ts
deleted file mode 100644
index 0ec16986..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// generated by diplomat-tool
-import type { DataProvider } from "./DataProvider"
-import type { Date } from "./Date"
-import type { DateTimeFormatError } from "./DateTimeFormatError"
-import type { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-import type { DateTimeLength } from "./DateTimeLength"
-import type { IsoDate } from "./IsoDate"
-import type { Locale } from "./Locale"
-import type { Time } from "./Time"
-import type { TimeZoneInfo } from "./TimeZoneInfo"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An object capable of formatting a date time with time zone to a string.
-*
-*See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMDT.html), [2](https://docs.rs/icu/latest/icu/datetime/fieldsets/zone/struct.GenericShort.html)
-*/
-
-
-export class ZonedDateTimeFormatter {
-    
-    get ffiValue(): pointer;
-
-    static createWithLength(locale: Locale, length: DateTimeLength): ZonedDateTimeFormatter;
-
-    static createWithLengthAndProvider(provider: DataProvider, locale: Locale, length: DateTimeLength): ZonedDateTimeFormatter;
-
-    format(date: Date, time: Time, zone: TimeZoneInfo): string;
-
-    formatIso(date: IsoDate, time: Time, zone: TimeZoneInfo): string;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.mjs
deleted file mode 100644
index be229ad4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedDateTimeFormatter.mjs
+++ /dev/null
@@ -1,137 +0,0 @@
-// generated by diplomat-tool
-import { DataProvider } from "./DataProvider.mjs"
-import { Date } from "./Date.mjs"
-import { DateTimeFormatError } from "./DateTimeFormatError.mjs"
-import { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-import { DateTimeLength } from "./DateTimeLength.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Locale } from "./Locale.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An object capable of formatting a date time with time zone to a string.
-*
-*See the [Rust documentation for `DateTimeFormatter`](https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html) for more information.
-*
-*Additional information: [1](https://docs.rs/icu/latest/icu/datetime/fieldsets/struct.YMDT.html), [2](https://docs.rs/icu/latest/icu/datetime/fieldsets/zone/struct.GenericShort.html)
-*/
-const ZonedDateTimeFormatter_box_destroy_registry = new FinalizationRegistry((ptr) => {
-    wasm.icu4x_ZonedDateTimeFormatter_destroy_mv1(ptr);
-});
-
-export class ZonedDateTimeFormatter {
-    
-    // Internal ptr reference:
-    #ptr = null;
-
-    // Lifetimes are only to keep dependencies alive.
-    // Since JS won't garbage collect until there are no incoming edges.
-    #selfEdge = [];
-    
-    #internalConstructor(symbol, ptr, selfEdge) {
-        if (symbol !== diplomatRuntime.internalConstructor) {
-            console.error("ZonedDateTimeFormatter is an Opaque type. You cannot call its constructor.");
-            return;
-        }
-        
-        this.#ptr = ptr;
-        this.#selfEdge = selfEdge;
-        
-        // Are we being borrowed? If not, we can register.
-        if (this.#selfEdge.length === 0) {
-            ZonedDateTimeFormatter_box_destroy_registry.register(this, this.#ptr);
-        }
-        
-        return this;
-    }
-    get ffiValue() {
-        return this.#ptr;
-    }
-
-    static createWithLength(locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTimeFormatter_create_with_length_mv1(diplomatReceive.buffer, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new ZonedDateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    static createWithLengthAndProvider(provider, locale, length) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const result = wasm.icu4x_ZonedDateTimeFormatter_create_with_length_and_provider_mv1(diplomatReceive.buffer, provider.ffiValue, locale.ffiValue, length.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatterLoadError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatterLoadError: ' + cause.value, { cause });
-            }
-            return new ZonedDateTimeFormatter(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
-        }
-        
-        finally {
-            diplomatReceive.free();
-        }
-    }
-
-    format(date, time, zone) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_ZonedDateTimeFormatter_format_mv1(diplomatReceive.buffer, this.ffiValue, date.ffiValue, time.ffiValue, zone.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    formatIso(date, time, zone) {
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
-        
-        const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
-        
-        const result = wasm.icu4x_ZonedDateTimeFormatter_format_iso_mv1(diplomatReceive.buffer, this.ffiValue, date.ffiValue, time.ffiValue, zone.ffiValue, write.buffer);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new DateTimeFormatError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('DateTimeFormatError: ' + cause.value, { cause });
-            }
-            return write.readString8();
-        }
-        
-        finally {
-            diplomatReceive.free();
-        
-            write.free();
-        }
-    }
-
-    constructor(symbol, ptr, selfEdge) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.d.ts
deleted file mode 100644
index 9d8db77..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-// generated by diplomat-tool
-import type { CalendarParseError } from "./CalendarParseError"
-import type { IanaParser } from "./IanaParser"
-import type { IsoDate } from "./IsoDate"
-import type { Time } from "./Time"
-import type { TimeZoneInfo } from "./TimeZoneInfo"
-import type { UtcOffsetCalculator } from "./UtcOffsetCalculator"
-import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
-
-
-/** An ICU4X ZonedDateTime object capable of containing a ISO-8601 date, time, and zone.
-*
-*See the [Rust documentation for `ZonedDateTime`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html) for more information.
-*/
-
-
-export class ZonedIsoDateTime {
-    
-    get date() : IsoDate;
-    
-    get time() : Time;
-    
-    get zone() : TimeZoneInfo;
-    
-
-    static fromString(v: string, ianaParser: IanaParser, offsetCalculator: UtcOffsetCalculator): ZonedIsoDateTime;
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.mjs
deleted file mode 100644
index a8de7ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/ZonedIsoDateTime.mjs
+++ /dev/null
@@ -1,147 +0,0 @@
-// generated by diplomat-tool
-import { CalendarParseError } from "./CalendarParseError.mjs"
-import { IanaParser } from "./IanaParser.mjs"
-import { IsoDate } from "./IsoDate.mjs"
-import { Time } from "./Time.mjs"
-import { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-import { UtcOffsetCalculator } from "./UtcOffsetCalculator.mjs"
-import wasm from "./diplomat-wasm.mjs";
-import * as diplomatRuntime from "./diplomat-runtime.mjs";
-
-
-/** An ICU4X ZonedDateTime object capable of containing a ISO-8601 date, time, and zone.
-*
-*See the [Rust documentation for `ZonedDateTime`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html) for more information.
-*/
-
-
-export class ZonedIsoDateTime {
-    
-    #date;
-    
-    get date()  {
-        return this.#date;
-    }
-    
-    #time;
-    
-    get time()  {
-        return this.#time;
-    }
-    
-    #zone;
-    
-    get zone()  {
-        return this.#zone;
-    }
-    
-    #internalConstructor(structObj, internalConstructor) {
-        if (typeof structObj !== "object") {
-            throw new Error("ZonedIsoDateTime's constructor takes an object of ZonedIsoDateTime's fields.");
-        }
-
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("ZonedIsoDateTime is an out struct and can only be created internally.");
-        }
-        if ("date" in structObj) {
-            this.#date = structObj.date;
-        } else {
-            throw new Error("Missing required field date.");
-        }
-
-        if ("time" in structObj) {
-            this.#time = structObj.time;
-        } else {
-            throw new Error("Missing required field time.");
-        }
-
-        if ("zone" in structObj) {
-            this.#zone = structObj.zone;
-        } else {
-            throw new Error("Missing required field zone.");
-        }
-
-        return this;
-    }
-
-    // Return this struct in FFI function friendly format.
-    // Returns an array that can be expanded with spread syntax (...)
-    
-    _intoFFI(
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        return [this.#date.ffiValue, this.#time.ffiValue, this.#zone.ffiValue]
-    }
-
-    static _fromSuppliedValue(internalConstructor, obj) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("_fromSuppliedValue cannot be called externally.");
-        }
-
-        if (obj instanceof ZonedIsoDateTime) {
-            return obj;
-        }
-
-        return ZonedIsoDateTime.fromFields(obj);
-    }
-
-    _writeToArrayBuffer(
-        arrayBuffer,
-        offset,
-        functionCleanupArena,
-        appendArrayMap
-    ) {
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#date.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#time.ffiValue, Uint32Array);
-        diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#zone.ffiValue, Uint32Array);
-    }
-
-    // This struct contains borrowed fields, so this takes in a list of
-    // "edges" corresponding to where each lifetime's data may have been borrowed from
-    // and passes it down to individual fields containing the borrow.
-    // This method does not attempt to handle any dependencies between lifetimes, the caller
-    // should handle this when constructing edge arrays.
-    static _fromFFI(internalConstructor, ptr) {
-        if (internalConstructor !== diplomatRuntime.internalConstructor) {
-            throw new Error("ZonedIsoDateTime._fromFFI is not meant to be called externally. Please use the default constructor.");
-        }
-        let structObj = {};
-        const dateDeref = diplomatRuntime.ptrRead(wasm, ptr);
-        structObj.date = new IsoDate(diplomatRuntime.internalConstructor, dateDeref, []);
-        const timeDeref = diplomatRuntime.ptrRead(wasm, ptr + 4);
-        structObj.time = new Time(diplomatRuntime.internalConstructor, timeDeref, []);
-        const zoneDeref = diplomatRuntime.ptrRead(wasm, ptr + 8);
-        structObj.zone = new TimeZoneInfo(diplomatRuntime.internalConstructor, zoneDeref, []);
-
-        return new ZonedIsoDateTime(structObj, internalConstructor);
-    }
-
-    static fromString(v, ianaParser, offsetCalculator) {
-        let functionCleanupArena = new diplomatRuntime.CleanupArena();
-        
-        const vSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.str8(wasm, v));
-        
-        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 13, 4, true);
-        
-        const result = wasm.icu4x_ZonedIsoDateTime_from_string_mv1(diplomatReceive.buffer, ...vSlice.splat(), ianaParser.ffiValue, offsetCalculator.ffiValue);
-    
-        try {
-            if (!diplomatReceive.resultFlag) {
-                const cause = new CalendarParseError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
-                throw new globalThis.Error('CalendarParseError: ' + cause.value, { cause });
-            }
-            return ZonedIsoDateTime._fromFFI(diplomatRuntime.internalConstructor, diplomatReceive.buffer);
-        }
-        
-        finally {
-            functionCleanupArena.free();
-        
-            diplomatReceive.free();
-        }
-    }
-
-    constructor(structObj, internalConstructor) {
-        return this.#internalConstructor(...arguments)
-    }
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.d.ts
deleted file mode 100644
index 655d81b2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-/// A [codepoint] is a Unicode code point, such as `a`, or `💡`.
-/// 
-/// The recommended way to obtain a `codepoint` is to create it from a 
-/// `String`, which is conceptually a list of `codepoint`s. For example,
-/// `'a'.codePointAt(0)` is equal to the `char` `a`.
-/// 
-/// JS does not have a character/codepoint literal, so integer literals
-/// need to be used. For example the Unicode code point U+1F4A1, `💡`,
-/// can be represented by `0x1F4A1`. Note that only values in the ranges
-/// `0x0..0xD7FF` and `0xE000..0x10FFFF` (both inclusive) are Unicode
-/// code points, and hence valid `codepoint`s.
-///
-/// A `String` can be constructed from a `codepoint` using `String.fromCodePoint()`. 
-export type codepoint = number;
-export type pointer = number;
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.mjs
deleted file mode 100644
index 6c0e2b3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-runtime.mjs
+++ /dev/null
@@ -1,615 +0,0 @@
-/** For internal Diplomat use when constructing opaques or out structs.
- * This is for when we're handling items that we don't want the user to touch, like an structure that's only meant to be output, or de-referencing a pointer we're handed from WASM.
- */
-export const internalConstructor = Symbol("constructor");
-/** For internal Diplomat use when accessing a from-fields/from-value constructor that's been overridden by a default constructor.
- * If we want to pass in arguments without also passing in internalConstructor to avoid triggering some logic we don't want, we use exposeConstructor.
- */
-export const exposeConstructor = Symbol("exposeConstructor");
-
-export function readString8(wasm, ptr, len) {
-    const buf = new Uint8Array(wasm.memory.buffer, ptr, len);
-    return (new TextDecoder("utf-8")).decode(buf)
-}
-
-export function readString16(wasm, ptr, len) {
-    const buf = new Uint16Array(wasm.memory.buffer, ptr, len);
-    return String.fromCharCode.apply(null, buf)
-}
-
-export function withDiplomatWrite(wasm, callback) {
-    const write = wasm.diplomat_buffer_write_create(0);
-    try {
-    callback(write);
-    const outStringPtr = wasm.diplomat_buffer_write_get_bytes(write);
-    if (outStringPtr === null) {
-        throw Error("Out of memory");
-    }
-    const outStringLen = wasm.diplomat_buffer_write_len(write);
-    return readString8(wasm, outStringPtr, outStringLen);
-    } finally {
-    wasm.diplomat_buffer_write_destroy(write);
-    }
-}
-
-/**
- * Get the pointer returned by an FFI function.
- * 
- * It's tempting to call `(new Uint32Array(wasm.memory.buffer, FFI_func(), 1))[0]`.
- * However, there's a chance that `wasm.memory.buffer` will be resized between
- * the time it's accessed and the time it's used, invalidating the view.
- * This function ensures that the view into wasm memory is fresh.
- * 
- * This is used for methods that return multiple types into a wasm buffer, where
- * one of those types is another ptr. Call this method to get access to the returned
- * ptr, so the return buffer can be freed.
- * @param {WebAssembly.Exports} wasm Provided by diplomat generated files. 
- * @param {number} ptr Pointer of a pointer, to be read.
- * @returns {number} The underlying pointer.
- */
-export function ptrRead(wasm, ptr) {
-    return (new Uint32Array(wasm.memory.buffer, ptr, 1))[0];
-}
-
-/** 
- * Get the flag of a result type.
- */
-export function resultFlag(wasm, ptr, offset) {
-    return (new Uint8Array(wasm.memory.buffer, ptr + offset, 1))[0];
-}
-
-/** 
- * Get the discriminant of a Rust enum.
-*/
-export function enumDiscriminant(wasm, ptr) {
-    return (new Int32Array(wasm.memory.buffer, ptr, 1))[0]
-}
-
-/**
- * Return an array of paddingCount zeroes to be spread into a function call
- * if needsPaddingFields is true, else empty
- */
-export function maybePaddingFields(needsPaddingFields, paddingCount) {
-    if (needsPaddingFields) {
-        return Array(paddingCount).fill(0);
-    } else {
-        return [];
-    }
-}
-
-/**
-* Write a value of width `width` to a an ArrayBuffer `arrayBuffer`
-* at byte offset `offset`, treating it as a buffer of kind `typedArrayKind`
-* (which is a `TypedArray` variant like `Uint8Array` or `Int16Array`)
-*/
-export function writeToArrayBuffer(arrayBuffer, offset, value, typedArrayKind) {
-    let buffer = new typedArrayKind(arrayBuffer, offset);
-    buffer[0] = value;
-}
-
-/**
-* Take `jsValue` and write it to arrayBuffer at offset `offset` if it is non-null
-* calling `writeToArrayBufferCallback(arrayBuffer, offset, jsValue)` to write to the buffer,
-* also writing a tag bit.
-* 
-* `size` and `align` are the size and alignment of T, not of Option<T>
-*/
-export function writeOptionToArrayBuffer(arrayBuffer, offset, jsValue, size, align, writeToArrayBufferCallback) {
-    // perform a nullish check, not a null check,
-    // we want identical behavior for undefined
-    if (jsValue != null) {
-        writeToArrayBufferCallback(arrayBuffer, offset, jsValue);
-        writeToArrayBuffer(arrayBuffer, offset + size, 1, Uint8Array);
-    }
-}
-
-/**
-* For Option<T> of given size/align (of T, not the overall option type),
-* return an array of fields suitable for passing down to a parameter list.
-* 
-* Calls writeToArrayBufferCallback(arrayBuffer, offset, jsValue) for non-null jsValues
-* 
-* This array will have size<T>/align<T> elements for the actual T, then one element
-* for the is_ok bool, and then align<T> - 1 elements for padding if `needsPaddingFields`` is set.
-* 
-* See wasm_abi_quirks.md's section on Unions for understanding this ABI.
-*/
-export function optionToArgsForCalling(jsValue, size, align, needsPaddingFields, writeToArrayBufferCallback) {
-    let args;
-    // perform a nullish check, not a null check,
-    // we want identical behavior for undefined
-    if (jsValue != null) {
-        let buffer;
-        // We need our originator array to be properly aligned
-        if (align == 8) {
-            buffer = new BigUint64Array(size / align);
-        } else if (align == 4) {
-            buffer = new Uint32Array(size / align);
-        } else if (align == 2) {
-            buffer = new Uint16Array(size / align);
-        } else {
-            buffer = new Uint8Array(size / align);
-        }
-
-
-        writeToArrayBufferCallback(buffer.buffer, 0, jsValue);
-        args = Array.from(buffer);
-        args.push(1);
-    } else {
-        args = Array(size / align).fill(0);
-        args.push(0);
-    }
-
-    args = args.concat(maybePaddingFields(needsPaddingFields, size / align));
-    return args;
-}
-
-
-/**
-* Given `ptr` in Wasm memory, treat it as an Option<T> with size for type T,
-* and return the converted T (converted using `readCallback(wasm, ptr)`) if the Option is Some
-* else None.
-*/
-export function readOption(wasm, ptr, size, readCallback) {
-    // Don't need the alignment: diplomat types don't have overridden alignment,
-    // so the flag will immediately be after the inner struct.
-    let flag = resultFlag(wasm, ptr, size);
-    if (flag) {
-        return readCallback(wasm, ptr);
-    } else {
-        return null;
-    }
-}
-
-/** 
- * A wrapper around a slice of WASM memory that can be freed manually or
- * automatically by the garbage collector.
- *
- * This type is necessary for Rust functions that take a `&str` or `&[T]`, since
- * they can create an edge to this object if they borrow from the str/slice,
- * or we can manually free the WASM memory if they don't.
- */
-export class DiplomatBuf {
-    static str8 = (wasm, string) => {
-    var utf8Length = 0;
-    for (const codepointString of string) {
-        let codepoint = codepointString.codePointAt(0);
-        if (codepoint < 0x80) {
-        utf8Length += 1
-        } else if (codepoint < 0x800) {
-        utf8Length += 2
-        } else if (codepoint < 0x10000) {
-        utf8Length += 3
-        } else {
-        utf8Length += 4
-        }
-    }
-
-    const ptr = wasm.diplomat_alloc(utf8Length, 1);
-
-    const result = (new TextEncoder()).encodeInto(string, new Uint8Array(wasm.memory.buffer, ptr, utf8Length));
-    console.assert(string.length === result.read && utf8Length === result.written, "UTF-8 write error");
-
-    return new DiplomatBuf(ptr, utf8Length, () => wasm.diplomat_free(ptr, utf8Length, 1));
-    }
-
-    static str16 = (wasm, string) => {
-    const byteLength = string.length * 2;
-    const ptr = wasm.diplomat_alloc(byteLength, 2);
-
-    const destination = new Uint16Array(wasm.memory.buffer, ptr, string.length);
-    for (let i = 0; i < string.length; i++) {
-        destination[i] = string.charCodeAt(i);
-    }
-
-    return new DiplomatBuf(ptr, string.length, () => wasm.diplomat_free(ptr, byteLength, 2));
-    }
-
-    static slice = (wasm, list, rustType) => {
-    const elementSize = rustType === "u8" || rustType === "i8" || rustType === "boolean" ? 1 :
-        rustType === "u16" || rustType === "i16" ? 2 :
-        rustType === "u64" || rustType === "i64" || rustType === "f64" ? 8 :
-            4;
-
-    const byteLength = list.length * elementSize;
-    const ptr = wasm.diplomat_alloc(byteLength, elementSize);
-
-    /** 
-     * Create an array view of the buffer. This gives us the `set` method which correctly handles untyped values
-     */
-    const destination =
-        rustType === "u8" || rustType === "boolean" ? new Uint8Array(wasm.memory.buffer, ptr, byteLength) :
-        rustType === "i8" ? new Int8Array(wasm.memory.buffer, ptr, byteLength) :
-            rustType === "u16" ? new Uint16Array(wasm.memory.buffer, ptr, byteLength) :
-            rustType === "i16" ? new Int16Array(wasm.memory.buffer, ptr, byteLength) :
-                rustType === "i32" ? new Int32Array(wasm.memory.buffer, ptr, byteLength) :
-                rustType === "u64" ? new BigUint64Array(wasm.memory.buffer, ptr, byteLength) :
-                    rustType === "i64" ? new BigInt64Array(wasm.memory.buffer, ptr, byteLength) :
-                    rustType === "f32" ? new Float32Array(wasm.memory.buffer, ptr, byteLength) :
-                        rustType === "f64" ? new Float64Array(wasm.memory.buffer, ptr, byteLength) :
-                        new Uint32Array(wasm.memory.buffer, ptr, byteLength);
-    destination.set(list);
-
-    return new DiplomatBuf(ptr, list.length, () => wasm.diplomat_free(ptr, byteLength, elementSize));
-    }
-
-    
-    static strs = (wasm, strings, encoding) => {
-        let encodeStr = (encoding === "string16") ? DiplomatBuf.str16 : DiplomatBuf.str8;
-
-        const byteLength = strings.length * 4 * 2;
-
-        const ptr = wasm.diplomat_alloc(byteLength, 4);
-
-        const destination = new Uint32Array(wasm.memory.buffer, ptr, byteLength);
-
-        const stringsAlloc = [];
-
-        for (let i = 0; i < strings.length; i++) {
-            stringsAlloc.push(encodeStr(wasm, strings[i]));
-
-            destination[2 * i] = stringsAlloc[i].ptr;
-            destination[(2 * i) + 1] = stringsAlloc[i].size;
-        }
-
-        return new DiplomatBuf(ptr, strings.length, () => {
-            wasm.diplomat_free(ptr, byteLength, 4);
-            for (let i = 0; i < stringsAlloc.length; i++) {
-                stringsAlloc[i].free();
-            }
-        });
-    }
-
-    /**
-     * Generated code calls one of methods these for each allocation, to either
-     * free directly after the FFI call, to leak (to create a &'static), or to
-     * register the buffer with the garbage collector (to create a &'a).
-     */
-    free;
-
-    constructor(ptr, size, free) {
-        this.ptr = ptr;
-        this.size = size;
-        this.free = free;
-        this.leak = () => { };
-        this.releaseToGarbageCollector = () => DiplomatBufferFinalizer.register(this, this.free);
-    }
-
-    splat() {
-        return [this.ptr, this.size];
-    }
-
-    /**
-     * Write the (ptr, len) pair to an array buffer at byte offset `offset`
-     */
-    writePtrLenToArrayBuffer(arrayBuffer, offset) {
-        writeToArrayBuffer(arrayBuffer, offset, this.ptr, Uint32Array);
-        writeToArrayBuffer(arrayBuffer, offset + 4, this.size, Uint32Array);
-    }
-}
-
-/** 
- * Helper class for creating and managing `diplomat_buffer_write`.
- * Meant to minimize direct calls to `wasm`.
- */
-export class DiplomatWriteBuf {
-    leak;
-
-    #wasm;
-    #buffer;
-
-    constructor(wasm) {
-        this.#wasm = wasm;
-        this.#buffer = this.#wasm.diplomat_buffer_write_create(0);
-
-        this.leak = () => { };
-    }
-    
-    free() {
-        this.#wasm.diplomat_buffer_write_destroy(this.#buffer);
-    }
-
-    releaseToGarbageCollector() {
-        DiplomatBufferFinalizer.register(this, this.free);
-    }
-
-    readString8() {
-        return readString8(this.#wasm, this.ptr, this.size);
-    }
-
-    get buffer() {
-        return this.#buffer;
-    }
-
-    get ptr() {
-        return this.#wasm.diplomat_buffer_write_get_bytes(this.#buffer);
-    }
-
-    get size() {
-        return this.#wasm.diplomat_buffer_write_len(this.#buffer);
-    }
-}
-
-/**
- * Represents an underlying slice that we've grabbed from WebAssembly.
- * You can treat this in JS as a regular slice of primitives, but it handles additional data for you behind the scenes.
- */
-export class DiplomatSlice {
-    #wasm;
-
-    #bufferType;
-    get bufferType() {
-        return this.#bufferType;
-    }
-
-    #buffer;
-    get buffer() {
-        return this.#buffer;
-    }
-
-    #lifetimeEdges;
-
-    constructor(wasm, buffer, bufferType, lifetimeEdges) {
-        this.#wasm = wasm;
-        
-        const [ptr, size] = new Uint32Array(this.#wasm.memory.buffer, buffer, 2);
-
-        this.#buffer = new bufferType(this.#wasm.memory.buffer, ptr, size);
-        this.#bufferType = bufferType;
-
-        this.#lifetimeEdges = lifetimeEdges;
-    }
-
-    getValue() {
-        return this.#buffer;
-    }
-
-    [Symbol.toPrimitive]() {
-        return this.getValue();
-    }
-
-    valueOf() {
-        return this.getValue();
-    }
-}
-
-export class DiplomatSlicePrimitive extends DiplomatSlice {
-    constructor(wasm, buffer, sliceType, lifetimeEdges) {
-        const [ptr, size] = new Uint32Array(wasm.memory.buffer, buffer, 2);
-
-        let arrayType;
-        switch (sliceType) {
-            case "u8":
-            case "boolean":
-                arrayType = Uint8Array;
-                break;
-            case "i8":
-                arrayType = Int8Array;
-                break;
-            case "u16":
-                arrayType = Uint16Array;
-                break;
-            case "i16":
-                arrayType = Int16Array;
-                break;
-            case "i32":
-                arrayType = Int32Array;
-                break;
-            case "u32":
-                arrayType = Uint32Array;
-                break;
-            case "i64":
-                arrayType = BigInt64Array;
-                break;
-            case "u64":
-                arrayType = BigUint64Array;
-                break;
-            case "f32":
-                arrayType = Float32Array;
-                break;
-            case "f64":
-                arrayType = Float64Array;
-                break;
-            default:
-                console.error("Unrecognized bufferType ", bufferType);
-        }
-
-        super(wasm, buffer, arrayType, lifetimeEdges);
-    }
-}
-
-export class DiplomatSliceStr extends DiplomatSlice {
-    #decoder;
-
-    constructor(wasm, buffer, stringEncoding, lifetimeEdges) {
-        let encoding;
-        switch (stringEncoding) {
-            case "string8":
-                encoding = Uint8Array;
-                break;
-            case "string16":
-                encoding = Uint16Array;
-                break;
-            default:
-                console.error("Unrecognized stringEncoding ", stringEncoding);
-                break;
-        }
-        super(wasm, buffer, encoding, lifetimeEdges);
-
-        if (stringEncoding === "string8") {
-            this.#decoder = new TextDecoder('utf-8');
-        }
-    }
-
-    getValue() {
-        switch (this.bufferType) {
-            case Uint8Array:
-                return this.#decoder.decode(super.getValue());
-            case Uint16Array:
-                return String.fromCharCode.apply(null, super.getValue());
-            default:
-                return null;
-        }
-    }
-
-    toString() {
-        return this.getValue();
-    }
-}
-
-export class DiplomatSliceStrings extends DiplomatSlice {
-    #strings = [];
-    constructor(wasm, buffer, stringEncoding, lifetimeEdges) {
-        super(wasm, buffer, Uint32Array, lifetimeEdges);
-
-        for (let i = this.buffer.byteOffset; i < this.buffer.byteLength; i += this.buffer.BYTES_PER_ELEMENT * 2) {
-            this.#strings.push(new DiplomatSliceStr(wasm, i, stringEncoding, lifetimeEdges));
-        }
-    }
-
-    getValue() {
-        return this.#strings;
-    }
-}
-
-/**
- * A number of Rust functions in WebAssembly require a buffer to populate struct, slice, Option<> or Result<> types with information.
- * {@link DiplomatReceiveBuf} allocates a buffer in WebAssembly, which can then be passed into functions with the {@link DiplomatReceiveBuf.buffer}
- * property.
- */
-export class DiplomatReceiveBuf {
-    #wasm;
-
-    #size;
-    #align;
-
-    #hasResult;
-
-    #buffer;
-
-    constructor(wasm, size, align, hasResult) {
-        this.#wasm = wasm;
-
-        this.#size = size;
-        this.#align = align;
-
-        this.#hasResult = hasResult;
-
-        this.#buffer = this.#wasm.diplomat_alloc(this.#size, this.#align);
-
-        this.leak = () => { };
-    }
-    
-    free() {
-        this.#wasm.diplomat_free(this.#buffer, this.#size, this.#align);
-    }
-    
-    get buffer() {
-        return this.#buffer;
-    }
-
-    /**
-     * Only for when a DiplomatReceiveBuf is allocating a buffer for an `Option<>` or a `Result<>` type.
-     * 
-     * This just checks the last byte for a successful result (assuming that Rust's compiler does not change).
-     */
-    get resultFlag() {
-        if (this.#hasResult) {
-            return resultFlag(this.#wasm, this.#buffer, this.#size - 1);
-        } else {
-            return true;
-        }
-    }
-}
-
-/**
- * For cleaning up slices inside struct _intoFFI functions.
- * Based somewhat on how the Dart backend handles slice cleanup.
- * 
- * We want to ensure a slice only lasts as long as its struct, so we have a `functionCleanupArena` CleanupArena that we use in each method for any slice that needs to be cleaned up. It lasts only as long as the function is called for.
- * 
- * Then we have `createWith`, which is meant for longer lasting slices. It takes an array of edges and will last as long as those edges do. Cleanup is only called later.
- */
-export class CleanupArena {
-    #items = [];
-    
-    constructor() {
-    }
-    
-    /**
-     * When this arena is freed, call .free() on the given item.
-     * @param {DiplomatBuf} item 
-     * @returns {DiplomatBuf}
-     */
-    alloc(item) {
-        this.#items.push(item);
-        return item;
-    }
-    /**
-     * Create a new CleanupArena, append it to any edge arrays passed down, and return it.
-     * @param {Array} edgeArrays
-     * @returns {CleanupArena}
-     */
-    createWith(...edgeArrays) {
-        let self = new CleanupArena();
-        for (edgeArray of edgeArrays) {
-            if (edgeArray != null) {
-                edgeArray.push(self);
-            }
-        }
-        DiplomatBufferFinalizer.register(self, self.free);
-        return self;
-    }
-
-    /**
-     * If given edge arrays, create a new CleanupArena, append it to any edge arrays passed down, and return it.
-     * Else return the function-local cleanup arena
-     * @param {CleanupArena} functionCleanupArena
-     * @param {Array} edgeArrays
-     * @returns {DiplomatBuf}
-     */
-    maybeCreateWith(functionCleanupArena, ...edgeArrays) {
-        if (edgeArrays.length > 0) {
-            return CleanupArena.createWith(...edgeArrays);
-        } else {
-            return functionCleanupArena
-        }
-    }
-
-    free() {
-        this.#items.forEach((i) => {
-            i.free();
-        });
-
-        this.#items.length = 0;
-    }
-}
-
-/**
- * Similar to {@link CleanupArena}, but for holding on to slices until a method is called,
- * after which we rely on the GC to free them.
- *
- * This is when you may want to use a slice longer than the body of the method.
- *
- * At first glance this seems unnecessary, since we will be holding these slices in edge arrays anyway,
- * however, if an edge array ends up unused, then we do actually need something to hold it for the duration
- * of the method call.
- */
-export class GarbageCollectorGrip {
-    #items = [];
-
-    alloc(item) {
-        this.#items.push(item);
-        return item;
-    }
-
-    releaseToGarbageCollector() {
-        this.#items.forEach((i) => {
-            i.releaseToGarbageCollector();
-        });
-
-        this.#items.length = 0;
-    }
-}
-
-const DiplomatBufferFinalizer = new FinalizationRegistry(free => free());
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-wasm.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-wasm.mjs
deleted file mode 100644
index 010ab35..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/diplomat-wasm.mjs
+++ /dev/null
@@ -1,52 +0,0 @@
-import cfg from '../diplomat.config.mjs';
-import {readString8} from './diplomat-runtime.mjs'
-
-let wasm;
-
-const imports = {
-env: {
-    diplomat_console_debug_js(ptr, len) {
-        console.debug(readString8(wasm, ptr, len));
-    },
-    diplomat_console_error_js(ptr, len) {
-        console.error(readString8(wasm, ptr, len));
-    },
-    diplomat_console_info_js(ptr, len) {
-        console.info(readString8(wasm, ptr, len));
-    },
-    diplomat_console_log_js(ptr, len) {
-        console.log(readString8(wasm, ptr, len));
-    },
-    diplomat_console_warn_js(ptr, len) {
-        console.warn(readString8(wasm, ptr, len));
-    },
-    diplomat_throw_error_js(ptr, len) {
-        throw new Error(readString8(wasm, ptr, len));
-    }
-}
-}
-
-if (globalThis.process?.getBuiltinModule) {
-    // Node (>=22)
-    const fs = globalThis.process.getBuiltinModule('fs');
-    const wasmFile = new Uint8Array(fs.readFileSync(cfg['wasm_path']));
-    const loadedWasm = await WebAssembly.instantiate(wasmFile, imports);
-    wasm = loadedWasm.instance.exports;
-} else if (globalThis.process) {
-    // Node (<22)
-    const fs = await import('fs');
-    const wasmFile = new Uint8Array(fs.readFileSync(cfg['wasm_path']));
-    const loadedWasm = await WebAssembly.instantiate(wasmFile, imports);
-    wasm = loadedWasm.instance.exports;
-} else {
-    // Browser
-    const loadedWasm = await WebAssembly.instantiateStreaming(fetch(cfg['wasm_path']), imports);
-    wasm = loadedWasm.instance.exports;
-}
-
-wasm.diplomat_init();
-if (cfg['init'] !== undefined) {
-    cfg['init'](wasm);
-}
-
-export default wasm;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.d.ts b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.d.ts
deleted file mode 100644
index bb81132..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.d.ts
+++ /dev/null
@@ -1,323 +0,0 @@
-
-export { codepoint } from './diplomat-runtime';
-
-
-export { TitlecaseOptions } from "./TitlecaseOptions"
-
-export { CollatorOptions } from "./CollatorOptions"
-
-export { DisplayNamesOptions } from "./DisplayNamesOptions"
-
-export { DateTimeMismatchedCalendarError } from "./DateTimeMismatchedCalendarError"
-
-export { FixedDecimalLimitError } from "./FixedDecimalLimitError"
-
-export { TimeZoneInvalidOffsetError } from "./TimeZoneInvalidOffsetError"
-
-export { LocaleFallbackConfig } from "./LocaleFallbackConfig"
-
-export { BidiMirroringGlyph } from "./BidiMirroringGlyph"
-
-export { GeneralCategoryGroup } from "./GeneralCategoryGroup"
-
-export { LineBreakOptions } from "./LineBreakOptions"
-
-export { WeekendContainsDay } from "./WeekendContainsDay"
-
-export { CollatorResolvedOptions } from "./CollatorResolvedOptions"
-
-export { DateTime } from "./DateTime"
-
-export { IsoDateTime } from "./IsoDateTime"
-
-export { TimeZoneAndCanonical } from "./TimeZoneAndCanonical"
-
-export { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized"
-
-export { Decomposed } from "./Decomposed"
-
-export { PluralCategories } from "./PluralCategories"
-
-export { CodePointRangeIteratorResult } from "./CodePointRangeIteratorResult"
-
-export { UtcOffsets } from "./UtcOffsets"
-
-export { WeekOf } from "./WeekOf"
-
-export { ZonedDateTime } from "./ZonedDateTime"
-
-export { ZonedIsoDateTime } from "./ZonedIsoDateTime"
-
-export { Bidi } from "./Bidi"
-
-export { BidiInfo } from "./BidiInfo"
-
-export { BidiParagraph } from "./BidiParagraph"
-
-export { ReorderedIndexMap } from "./ReorderedIndexMap"
-
-export { Calendar } from "./Calendar"
-
-export { CaseMapCloser } from "./CaseMapCloser"
-
-export { CaseMapper } from "./CaseMapper"
-
-export { TitlecaseMapper } from "./TitlecaseMapper"
-
-export { Collator } from "./Collator"
-
-export { CodePointSetBuilder } from "./CodePointSetBuilder"
-
-export { Date } from "./Date"
-
-export { IsoDate } from "./IsoDate"
-
-export { DateFormatter } from "./DateFormatter"
-
-export { GregorianDateFormatter } from "./GregorianDateFormatter"
-
-export { NoCalendarFormatter } from "./NoCalendarFormatter"
-
-export { DecimalFormatter } from "./DecimalFormatter"
-
-export { LocaleDisplayNamesFormatter } from "./LocaleDisplayNamesFormatter"
-
-export { RegionDisplayNames } from "./RegionDisplayNames"
-
-export { ExemplarCharacters } from "./ExemplarCharacters"
-
-export { LocaleFallbackIterator } from "./LocaleFallbackIterator"
-
-export { LocaleFallbacker } from "./LocaleFallbacker"
-
-export { LocaleFallbackerWithConfig } from "./LocaleFallbackerWithConfig"
-
-export { Decimal } from "./Decimal"
-
-export { IanaParser } from "./IanaParser"
-
-export { IanaParserExtended } from "./IanaParserExtended"
-
-export { TimeZoneAndCanonicalAndNormalizedIterator } from "./TimeZoneAndCanonicalAndNormalizedIterator"
-
-export { TimeZoneAndCanonicalIterator } from "./TimeZoneAndCanonicalIterator"
-
-export { TimeZoneIterator } from "./TimeZoneIterator"
-
-export { ListFormatter } from "./ListFormatter"
-
-export { LocaleCanonicalizer } from "./LocaleCanonicalizer"
-
-export { LocaleExpander } from "./LocaleExpander"
-
-export { Locale } from "./Locale"
-
-export { LocaleDirectionality } from "./LocaleDirectionality"
-
-export { Logger } from "./Logger"
-
-export { DateTimeFormatter } from "./DateTimeFormatter"
-
-export { DateTimeFormatterGregorian } from "./DateTimeFormatterGregorian"
-
-export { ComposingNormalizer } from "./ComposingNormalizer"
-
-export { DecomposingNormalizer } from "./DecomposingNormalizer"
-
-export { CanonicalCombiningClassMap } from "./CanonicalCombiningClassMap"
-
-export { CanonicalComposition } from "./CanonicalComposition"
-
-export { CanonicalDecomposition } from "./CanonicalDecomposition"
-
-export { PluralOperands } from "./PluralOperands"
-
-export { PluralRules } from "./PluralRules"
-
-export { CodePointRangeIterator } from "./CodePointRangeIterator"
-
-export { CodePointMapData16 } from "./CodePointMapData16"
-
-export { CodePointMapData8 } from "./CodePointMapData8"
-
-export { GeneralCategoryNameToGroupMapper } from "./GeneralCategoryNameToGroupMapper"
-
-export { PropertyValueNameToEnumMapper } from "./PropertyValueNameToEnumMapper"
-
-export { CodePointSetData } from "./CodePointSetData"
-
-export { EmojiSetData } from "./EmojiSetData"
-
-export { DataProvider } from "./DataProvider"
-
-export { ScriptExtensionsSet } from "./ScriptExtensionsSet"
-
-export { ScriptWithExtensions } from "./ScriptWithExtensions"
-
-export { ScriptWithExtensionsBorrowed } from "./ScriptWithExtensionsBorrowed"
-
-export { GraphemeClusterBreakIteratorLatin1 } from "./GraphemeClusterBreakIteratorLatin1"
-
-export { GraphemeClusterBreakIteratorUtf16 } from "./GraphemeClusterBreakIteratorUtf16"
-
-export { GraphemeClusterBreakIteratorUtf8 } from "./GraphemeClusterBreakIteratorUtf8"
-
-export { GraphemeClusterSegmenter } from "./GraphemeClusterSegmenter"
-
-export { LineBreakIteratorLatin1 } from "./LineBreakIteratorLatin1"
-
-export { LineBreakIteratorUtf16 } from "./LineBreakIteratorUtf16"
-
-export { LineBreakIteratorUtf8 } from "./LineBreakIteratorUtf8"
-
-export { LineSegmenter } from "./LineSegmenter"
-
-export { SentenceBreakIteratorLatin1 } from "./SentenceBreakIteratorLatin1"
-
-export { SentenceBreakIteratorUtf16 } from "./SentenceBreakIteratorUtf16"
-
-export { SentenceBreakIteratorUtf8 } from "./SentenceBreakIteratorUtf8"
-
-export { SentenceSegmenter } from "./SentenceSegmenter"
-
-export { WordBreakIteratorLatin1 } from "./WordBreakIteratorLatin1"
-
-export { WordBreakIteratorUtf16 } from "./WordBreakIteratorUtf16"
-
-export { WordBreakIteratorUtf8 } from "./WordBreakIteratorUtf8"
-
-export { WordSegmenter } from "./WordSegmenter"
-
-export { Time } from "./Time"
-
-export { TimeZone } from "./TimeZone"
-
-export { TimeZoneInfo } from "./TimeZoneInfo"
-
-export { MeasureUnit } from "./MeasureUnit"
-
-export { MeasureUnitParser } from "./MeasureUnitParser"
-
-export { UnitsConverter } from "./UnitsConverter"
-
-export { UnitsConverterFactory } from "./UnitsConverterFactory"
-
-export { UtcOffset } from "./UtcOffset"
-
-export { UtcOffsetCalculator } from "./UtcOffsetCalculator"
-
-export { WeekCalculator } from "./WeekCalculator"
-
-export { WindowsParser } from "./WindowsParser"
-
-export { GregorianZonedDateTimeFormatter } from "./GregorianZonedDateTimeFormatter"
-
-export { ZonedDateTimeFormatter } from "./ZonedDateTimeFormatter"
-
-export { BidiDirection } from "./BidiDirection"
-
-export { AnyCalendarKind } from "./AnyCalendarKind"
-
-export { LeadingAdjustment } from "./LeadingAdjustment"
-
-export { TrailingCase } from "./TrailingCase"
-
-export { CollatorAlternateHandling } from "./CollatorAlternateHandling"
-
-export { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel"
-
-export { CollatorCaseFirst } from "./CollatorCaseFirst"
-
-export { CollatorCaseLevel } from "./CollatorCaseLevel"
-
-export { CollatorMaxVariable } from "./CollatorMaxVariable"
-
-export { CollatorNumericOrdering } from "./CollatorNumericOrdering"
-
-export { CollatorStrength } from "./CollatorStrength"
-
-export { Weekday } from "./Weekday"
-
-export { DateTimeLength } from "./DateTimeLength"
-
-export { DecimalGroupingStrategy } from "./DecimalGroupingStrategy"
-
-export { DisplayNamesFallback } from "./DisplayNamesFallback"
-
-export { DisplayNamesStyle } from "./DisplayNamesStyle"
-
-export { LanguageDisplay } from "./LanguageDisplay"
-
-export { CalendarError } from "./CalendarError"
-
-export { CalendarParseError } from "./CalendarParseError"
-
-export { DataError } from "./DataError"
-
-export { DateTimeFormatError } from "./DateTimeFormatError"
-
-export { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError"
-
-export { FixedDecimalParseError } from "./FixedDecimalParseError"
-
-export { LocaleParseError } from "./LocaleParseError"
-
-export { LocaleFallbackPriority } from "./LocaleFallbackPriority"
-
-export { FixedDecimalRoundingIncrement } from "./FixedDecimalRoundingIncrement"
-
-export { FixedDecimalSign } from "./FixedDecimalSign"
-
-export { FixedDecimalSignDisplay } from "./FixedDecimalSignDisplay"
-
-export { FixedDecimalSignedRoundingMode } from "./FixedDecimalSignedRoundingMode"
-
-export { ListLength } from "./ListLength"
-
-export { TransformResult } from "./TransformResult"
-
-export { LocaleDirection } from "./LocaleDirection"
-
-export { DateTimeAlignment } from "./DateTimeAlignment"
-
-export { TimePrecision } from "./TimePrecision"
-
-export { YearStyle } from "./YearStyle"
-
-export { PluralCategory } from "./PluralCategory"
-
-export { BidiPairedBracketType } from "./BidiPairedBracketType"
-
-export { BidiClass } from "./BidiClass"
-
-export { CanonicalCombiningClass } from "./CanonicalCombiningClass"
-
-export { EastAsianWidth } from "./EastAsianWidth"
-
-export { GeneralCategory } from "./GeneralCategory"
-
-export { GraphemeClusterBreak } from "./GraphemeClusterBreak"
-
-export { HangulSyllableType } from "./HangulSyllableType"
-
-export { IndicSyllabicCategory } from "./IndicSyllabicCategory"
-
-export { JoiningType } from "./JoiningType"
-
-export { LineBreak } from "./LineBreak"
-
-export { Script } from "./Script"
-
-export { SentenceBreak } from "./SentenceBreak"
-
-export { WordBreak } from "./WordBreak"
-
-export { LineBreakStrictness } from "./LineBreakStrictness"
-
-export { LineBreakWordOption } from "./LineBreakWordOption"
-
-export { SegmenterWordType } from "./SegmenterWordType"
-
-export { TimeZoneVariant } from "./TimeZoneVariant"
-
-export { WeekRelativeUnit } from "./WeekRelativeUnit"
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.mjs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.mjs
deleted file mode 100644
index f7302d0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/bindings/js/index.mjs
+++ /dev/null
@@ -1,321 +0,0 @@
-
-
-export { TitlecaseOptions } from "./TitlecaseOptions.mjs"
-
-export { CollatorOptions } from "./CollatorOptions.mjs"
-
-export { DisplayNamesOptions } from "./DisplayNamesOptions.mjs"
-
-export { DateTimeMismatchedCalendarError } from "./DateTimeMismatchedCalendarError.mjs"
-
-export { FixedDecimalLimitError } from "./FixedDecimalLimitError.mjs"
-
-export { TimeZoneInvalidOffsetError } from "./TimeZoneInvalidOffsetError.mjs"
-
-export { LocaleFallbackConfig } from "./LocaleFallbackConfig.mjs"
-
-export { BidiMirroringGlyph } from "./BidiMirroringGlyph.mjs"
-
-export { GeneralCategoryGroup } from "./GeneralCategoryGroup.mjs"
-
-export { LineBreakOptions } from "./LineBreakOptions.mjs"
-
-export { WeekendContainsDay } from "./WeekendContainsDay.mjs"
-
-export { CollatorResolvedOptions } from "./CollatorResolvedOptions.mjs"
-
-export { DateTime } from "./DateTime.mjs"
-
-export { IsoDateTime } from "./IsoDateTime.mjs"
-
-export { TimeZoneAndCanonical } from "./TimeZoneAndCanonical.mjs"
-
-export { TimeZoneAndCanonicalAndNormalized } from "./TimeZoneAndCanonicalAndNormalized.mjs"
-
-export { Decomposed } from "./Decomposed.mjs"
-
-export { PluralCategories } from "./PluralCategories.mjs"
-
-export { CodePointRangeIteratorResult } from "./CodePointRangeIteratorResult.mjs"
-
-export { UtcOffsets } from "./UtcOffsets.mjs"
-
-export { WeekOf } from "./WeekOf.mjs"
-
-export { ZonedDateTime } from "./ZonedDateTime.mjs"
-
-export { ZonedIsoDateTime } from "./ZonedIsoDateTime.mjs"
-
-export { Bidi } from "./Bidi.mjs"
-
-export { BidiInfo } from "./BidiInfo.mjs"
-
-export { BidiParagraph } from "./BidiParagraph.mjs"
-
-export { ReorderedIndexMap } from "./ReorderedIndexMap.mjs"
-
-export { Calendar } from "./Calendar.mjs"
-
-export { CaseMapCloser } from "./CaseMapCloser.mjs"
-
-export { CaseMapper } from "./CaseMapper.mjs"
-
-export { TitlecaseMapper } from "./TitlecaseMapper.mjs"
-
-export { Collator } from "./Collator.mjs"
-
-export { CodePointSetBuilder } from "./CodePointSetBuilder.mjs"
-
-export { Date } from "./Date.mjs"
-
-export { IsoDate } from "./IsoDate.mjs"
-
-export { DateFormatter } from "./DateFormatter.mjs"
-
-export { GregorianDateFormatter } from "./GregorianDateFormatter.mjs"
-
-export { NoCalendarFormatter } from "./NoCalendarFormatter.mjs"
-
-export { DecimalFormatter } from "./DecimalFormatter.mjs"
-
-export { LocaleDisplayNamesFormatter } from "./LocaleDisplayNamesFormatter.mjs"
-
-export { RegionDisplayNames } from "./RegionDisplayNames.mjs"
-
-export { ExemplarCharacters } from "./ExemplarCharacters.mjs"
-
-export { LocaleFallbackIterator } from "./LocaleFallbackIterator.mjs"
-
-export { LocaleFallbacker } from "./LocaleFallbacker.mjs"
-
-export { LocaleFallbackerWithConfig } from "./LocaleFallbackerWithConfig.mjs"
-
-export { Decimal } from "./Decimal.mjs"
-
-export { IanaParser } from "./IanaParser.mjs"
-
-export { IanaParserExtended } from "./IanaParserExtended.mjs"
-
-export { TimeZoneAndCanonicalAndNormalizedIterator } from "./TimeZoneAndCanonicalAndNormalizedIterator.mjs"
-
-export { TimeZoneAndCanonicalIterator } from "./TimeZoneAndCanonicalIterator.mjs"
-
-export { TimeZoneIterator } from "./TimeZoneIterator.mjs"
-
-export { ListFormatter } from "./ListFormatter.mjs"
-
-export { LocaleCanonicalizer } from "./LocaleCanonicalizer.mjs"
-
-export { LocaleExpander } from "./LocaleExpander.mjs"
-
-export { Locale } from "./Locale.mjs"
-
-export { LocaleDirectionality } from "./LocaleDirectionality.mjs"
-
-export { Logger } from "./Logger.mjs"
-
-export { DateTimeFormatter } from "./DateTimeFormatter.mjs"
-
-export { DateTimeFormatterGregorian } from "./DateTimeFormatterGregorian.mjs"
-
-export { ComposingNormalizer } from "./ComposingNormalizer.mjs"
-
-export { DecomposingNormalizer } from "./DecomposingNormalizer.mjs"
-
-export { CanonicalCombiningClassMap } from "./CanonicalCombiningClassMap.mjs"
-
-export { CanonicalComposition } from "./CanonicalComposition.mjs"
-
-export { CanonicalDecomposition } from "./CanonicalDecomposition.mjs"
-
-export { PluralOperands } from "./PluralOperands.mjs"
-
-export { PluralRules } from "./PluralRules.mjs"
-
-export { CodePointRangeIterator } from "./CodePointRangeIterator.mjs"
-
-export { CodePointMapData16 } from "./CodePointMapData16.mjs"
-
-export { CodePointMapData8 } from "./CodePointMapData8.mjs"
-
-export { GeneralCategoryNameToGroupMapper } from "./GeneralCategoryNameToGroupMapper.mjs"
-
-export { PropertyValueNameToEnumMapper } from "./PropertyValueNameToEnumMapper.mjs"
-
-export { CodePointSetData } from "./CodePointSetData.mjs"
-
-export { EmojiSetData } from "./EmojiSetData.mjs"
-
-export { DataProvider } from "./DataProvider.mjs"
-
-export { ScriptExtensionsSet } from "./ScriptExtensionsSet.mjs"
-
-export { ScriptWithExtensions } from "./ScriptWithExtensions.mjs"
-
-export { ScriptWithExtensionsBorrowed } from "./ScriptWithExtensionsBorrowed.mjs"
-
-export { GraphemeClusterBreakIteratorLatin1 } from "./GraphemeClusterBreakIteratorLatin1.mjs"
-
-export { GraphemeClusterBreakIteratorUtf16 } from "./GraphemeClusterBreakIteratorUtf16.mjs"
-
-export { GraphemeClusterBreakIteratorUtf8 } from "./GraphemeClusterBreakIteratorUtf8.mjs"
-
-export { GraphemeClusterSegmenter } from "./GraphemeClusterSegmenter.mjs"
-
-export { LineBreakIteratorLatin1 } from "./LineBreakIteratorLatin1.mjs"
-
-export { LineBreakIteratorUtf16 } from "./LineBreakIteratorUtf16.mjs"
-
-export { LineBreakIteratorUtf8 } from "./LineBreakIteratorUtf8.mjs"
-
-export { LineSegmenter } from "./LineSegmenter.mjs"
-
-export { SentenceBreakIteratorLatin1 } from "./SentenceBreakIteratorLatin1.mjs"
-
-export { SentenceBreakIteratorUtf16 } from "./SentenceBreakIteratorUtf16.mjs"
-
-export { SentenceBreakIteratorUtf8 } from "./SentenceBreakIteratorUtf8.mjs"
-
-export { SentenceSegmenter } from "./SentenceSegmenter.mjs"
-
-export { WordBreakIteratorLatin1 } from "./WordBreakIteratorLatin1.mjs"
-
-export { WordBreakIteratorUtf16 } from "./WordBreakIteratorUtf16.mjs"
-
-export { WordBreakIteratorUtf8 } from "./WordBreakIteratorUtf8.mjs"
-
-export { WordSegmenter } from "./WordSegmenter.mjs"
-
-export { Time } from "./Time.mjs"
-
-export { TimeZone } from "./TimeZone.mjs"
-
-export { TimeZoneInfo } from "./TimeZoneInfo.mjs"
-
-export { MeasureUnit } from "./MeasureUnit.mjs"
-
-export { MeasureUnitParser } from "./MeasureUnitParser.mjs"
-
-export { UnitsConverter } from "./UnitsConverter.mjs"
-
-export { UnitsConverterFactory } from "./UnitsConverterFactory.mjs"
-
-export { UtcOffset } from "./UtcOffset.mjs"
-
-export { UtcOffsetCalculator } from "./UtcOffsetCalculator.mjs"
-
-export { WeekCalculator } from "./WeekCalculator.mjs"
-
-export { WindowsParser } from "./WindowsParser.mjs"
-
-export { GregorianZonedDateTimeFormatter } from "./GregorianZonedDateTimeFormatter.mjs"
-
-export { ZonedDateTimeFormatter } from "./ZonedDateTimeFormatter.mjs"
-
-export { BidiDirection } from "./BidiDirection.mjs"
-
-export { AnyCalendarKind } from "./AnyCalendarKind.mjs"
-
-export { LeadingAdjustment } from "./LeadingAdjustment.mjs"
-
-export { TrailingCase } from "./TrailingCase.mjs"
-
-export { CollatorAlternateHandling } from "./CollatorAlternateHandling.mjs"
-
-export { CollatorBackwardSecondLevel } from "./CollatorBackwardSecondLevel.mjs"
-
-export { CollatorCaseFirst } from "./CollatorCaseFirst.mjs"
-
-export { CollatorCaseLevel } from "./CollatorCaseLevel.mjs"
-
-export { CollatorMaxVariable } from "./CollatorMaxVariable.mjs"
-
-export { CollatorNumericOrdering } from "./CollatorNumericOrdering.mjs"
-
-export { CollatorStrength } from "./CollatorStrength.mjs"
-
-export { Weekday } from "./Weekday.mjs"
-
-export { DateTimeLength } from "./DateTimeLength.mjs"
-
-export { DecimalGroupingStrategy } from "./DecimalGroupingStrategy.mjs"
-
-export { DisplayNamesFallback } from "./DisplayNamesFallback.mjs"
-
-export { DisplayNamesStyle } from "./DisplayNamesStyle.mjs"
-
-export { LanguageDisplay } from "./LanguageDisplay.mjs"
-
-export { CalendarError } from "./CalendarError.mjs"
-
-export { CalendarParseError } from "./CalendarParseError.mjs"
-
-export { DataError } from "./DataError.mjs"
-
-export { DateTimeFormatError } from "./DateTimeFormatError.mjs"
-
-export { DateTimeFormatterLoadError } from "./DateTimeFormatterLoadError.mjs"
-
-export { FixedDecimalParseError } from "./FixedDecimalParseError.mjs"
-
-export { LocaleParseError } from "./LocaleParseError.mjs"
-
-export { LocaleFallbackPriority } from "./LocaleFallbackPriority.mjs"
-
-export { FixedDecimalRoundingIncrement } from "./FixedDecimalRoundingIncrement.mjs"
-
-export { FixedDecimalSign } from "./FixedDecimalSign.mjs"
-
-export { FixedDecimalSignDisplay } from "./FixedDecimalSignDisplay.mjs"
-
-export { FixedDecimalSignedRoundingMode } from "./FixedDecimalSignedRoundingMode.mjs"
-
-export { ListLength } from "./ListLength.mjs"
-
-export { TransformResult } from "./TransformResult.mjs"
-
-export { LocaleDirection } from "./LocaleDirection.mjs"
-
-export { DateTimeAlignment } from "./DateTimeAlignment.mjs"
-
-export { TimePrecision } from "./TimePrecision.mjs"
-
-export { YearStyle } from "./YearStyle.mjs"
-
-export { PluralCategory } from "./PluralCategory.mjs"
-
-export { BidiPairedBracketType } from "./BidiPairedBracketType.mjs"
-
-export { BidiClass } from "./BidiClass.mjs"
-
-export { CanonicalCombiningClass } from "./CanonicalCombiningClass.mjs"
-
-export { EastAsianWidth } from "./EastAsianWidth.mjs"
-
-export { GeneralCategory } from "./GeneralCategory.mjs"
-
-export { GraphemeClusterBreak } from "./GraphemeClusterBreak.mjs"
-
-export { HangulSyllableType } from "./HangulSyllableType.mjs"
-
-export { IndicSyllabicCategory } from "./IndicSyllabicCategory.mjs"
-
-export { JoiningType } from "./JoiningType.mjs"
-
-export { LineBreak } from "./LineBreak.mjs"
-
-export { Script } from "./Script.mjs"
-
-export { SentenceBreak } from "./SentenceBreak.mjs"
-
-export { WordBreak } from "./WordBreak.mjs"
-
-export { LineBreakStrictness } from "./LineBreakStrictness.mjs"
-
-export { LineBreakWordOption } from "./LineBreakWordOption.mjs"
-
-export { SegmenterWordType } from "./SegmenterWordType.mjs"
-
-export { TimeZoneVariant } from "./TimeZoneVariant.mjs"
-
-export { WeekRelativeUnit } from "./WeekRelativeUnit.mjs"
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/bidi.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/bidi.rs
deleted file mode 100644
index 6c4f2bd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/bidi.rs
+++ /dev/null
@@ -1,320 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use alloc::vec::Vec;
-    use core::fmt::Write;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    pub enum BidiDirection {
-        Ltr,
-        Rtl,
-        Mixed,
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X Bidi object, containing loaded bidi data
-    #[diplomat::rust_link(icu::properties::bidi::BidiClassAdapter, Struct)]
-    #[diplomat::rust_link(icu::properties::props::BidiClass, Struct)]
-    pub struct Bidi(pub icu_properties::CodePointMapData<icu_properties::props::BidiClass>);
-
-    impl Bidi {
-        /// Creates a new [`Bidi`] from locale data using compiled data.
-        #[diplomat::rust_link(icu::properties::bidi::BidiClassAdapter::new, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<Bidi> {
-            Box::new(Bidi(
-                icu_properties::CodePointMapData::new().static_to_owned(),
-            ))
-        }
-
-        /// Creates a new [`Bidi`] from locale data, and a particular data source.
-        #[diplomat::rust_link(icu::properties::bidi::BidiClassAdapter::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(provider: &DataProvider) -> Result<Box<Bidi>, DataError> {
-            Ok(Box::new(Bidi(
-                icu_properties::CodePointMapData::try_new_unstable(&provider.get_unstable()?)?,
-            )))
-        }
-        /// Use the data loaded in this object to process a string and calculate bidi information
-        ///
-        /// Takes in a Level for the default level, if it is an invalid value or None it will default to Auto.
-        ///
-        /// Returns nothing if `text` is invalid UTF-8.
-        #[diplomat::rust_link(unicode_bidi::BidiInfo::new_with_data_source, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::bidi_class,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "for_text")]
-        pub fn for_text_utf8<'text>(
-            &self,
-            text: &'text DiplomatStr,
-            default_level: Option<u8>,
-        ) -> Option<Box<BidiInfo<'text>>> {
-            let text = core::str::from_utf8(text).ok()?;
-
-            Some(Box::new(BidiInfo(
-                unicode_bidi::BidiInfo::new_with_data_source(
-                    &self.0.as_borrowed(),
-                    text,
-                    default_level.and_then(|l| unicode_bidi::Level::new(l).ok()),
-                ),
-            )))
-        }
-
-        /// Use the data loaded in this object to process a string and calculate bidi information
-        ///
-        /// Takes in a Level for the default level, if it is an invalid value it will default to LTR
-        #[diplomat::rust_link(unicode_bidi::BidiInfo::new_with_data_source, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::bidi_class,
-            FnInStruct,
-            hidden
-        )]
-        // The only safe UTF-8 strings are those generated by the Diplomat layer in UTF-16 languages
-        #[diplomat::attr(supports = utf8_strings, disable)]
-        #[diplomat::attr(supports = utf16_strings, rename = "for_text")]
-        pub fn for_text_valid_utf8<'text>(
-            &self,
-            text: &'text str,
-            default_level: Option<u8>,
-        ) -> Box<BidiInfo<'text>> {
-            Box::new(BidiInfo(unicode_bidi::BidiInfo::new_with_data_source(
-                &self.0.as_borrowed(),
-                text,
-                default_level.and_then(|l| unicode_bidi::Level::new(l).ok()),
-            )))
-        }
-
-        /// Utility function for producing reorderings given a list of levels
-        ///
-        /// Produces a map saying which visual index maps to which source index.
-        ///
-        /// The levels array must not have values greater than 126 (this is the
-        /// Bidi maximum explicit depth plus one).
-        /// Failure to follow this invariant may lead to incorrect results,
-        /// but is still safe.
-        #[diplomat::rust_link(unicode_bidi::BidiInfo::reorder_visual, FnInStruct)]
-        pub fn reorder_visual(&self, levels: &[u8]) -> Box<ReorderedIndexMap> {
-            let levels = unicode_bidi::Level::from_slice_unchecked(levels);
-            Box::new(ReorderedIndexMap(unicode_bidi::BidiInfo::reorder_visual(
-                levels,
-            )))
-        }
-
-        /// Check if a Level returned by level_at is an RTL level.
-        ///
-        /// Invalid levels (numbers greater than 125) will be assumed LTR
-        #[diplomat::rust_link(unicode_bidi::Level::is_rtl, FnInStruct)]
-        pub fn level_is_rtl(level: u8) -> bool {
-            unicode_bidi::Level::new(level)
-                .unwrap_or_else(|_| unicode_bidi::Level::ltr())
-                .is_rtl()
-        }
-
-        /// Check if a Level returned by level_at is an LTR level.
-        ///
-        /// Invalid levels (numbers greater than 125) will be assumed LTR
-        #[diplomat::rust_link(unicode_bidi::Level::is_ltr, FnInStruct)]
-        pub fn level_is_ltr(level: u8) -> bool {
-            unicode_bidi::Level::new(level)
-                .unwrap_or_else(|_| unicode_bidi::Level::ltr())
-                .is_ltr()
-        }
-
-        /// Get a basic RTL Level value
-        #[diplomat::rust_link(unicode_bidi::Level::rtl, FnInStruct)]
-        pub fn level_rtl() -> u8 {
-            unicode_bidi::Level::rtl().number()
-        }
-
-        /// Get a simple LTR Level value
-        #[diplomat::rust_link(unicode_bidi::Level::ltr, FnInStruct)]
-        pub fn level_ltr() -> u8 {
-            unicode_bidi::Level::ltr().number()
-        }
-    }
-
-    /// Thin wrapper around a vector that maps visual indices to source indices
-    ///
-    /// `map[visualIndex] = sourceIndex`
-    ///
-    /// Produced by `reorder_visual()` on [`Bidi`].
-    #[diplomat::opaque]
-    pub struct ReorderedIndexMap(pub Vec<usize>);
-
-    impl ReorderedIndexMap {
-        /// Get this as a slice/array of indices
-        #[diplomat::attr(auto, getter)]
-        pub fn as_slice<'a>(&'a self) -> &'a [usize] {
-            &self.0
-        }
-
-        /// The length of this map
-        #[diplomat::attr(auto, getter = "length")]
-        pub fn len(&self) -> usize {
-            self.0.len()
-        }
-
-        /// Whether this map is empty
-        #[diplomat::attr(auto, getter)]
-        pub fn is_empty(&self) -> bool {
-            self.0.is_empty()
-        }
-
-        /// Get element at `index`. Returns 0 when out of bounds
-        /// (note that 0 is also a valid in-bounds value, please use `len()`
-        /// to avoid out-of-bounds)
-        #[diplomat::attr(auto, indexer)]
-        pub fn get(&self, index: usize) -> usize {
-            self.0.get(index).copied().unwrap_or(0)
-        }
-    }
-
-    /// An object containing bidi information for a given string, produced by `for_text()` on `Bidi`
-    #[diplomat::rust_link(unicode_bidi::BidiInfo, Struct)]
-    #[diplomat::opaque]
-    pub struct BidiInfo<'text>(pub unicode_bidi::BidiInfo<'text>);
-
-    impl<'text> BidiInfo<'text> {
-        /// The number of paragraphs contained here
-        #[diplomat::attr(auto, getter)]
-        pub fn paragraph_count(&self) -> usize {
-            self.0.paragraphs.len()
-        }
-
-        /// Get the nth paragraph, returning `None` if out of bounds
-        pub fn paragraph_at(&'text self, n: usize) -> Option<Box<BidiParagraph<'text>>> {
-            self.0
-                .paragraphs
-                .get(n)
-                .map(|p| Box::new(BidiParagraph(unicode_bidi::Paragraph::new(&self.0, p))))
-        }
-
-        /// The number of bytes in this full text
-        #[diplomat::attr(auto, getter)]
-        pub fn size(&self) -> usize {
-            self.0.levels.len()
-        }
-
-        /// Get the BIDI level at a particular byte index in the full text.
-        /// This integer is conceptually a `unicode_bidi::Level`,
-        /// and can be further inspected using the static methods on Bidi.
-        ///
-        /// Returns 0 (equivalent to `Level::ltr()`) on error
-        pub fn level_at(&self, pos: usize) -> u8 {
-            if let Some(l) = self.0.levels.get(pos) {
-                l.number()
-            } else {
-                0
-            }
-        }
-    }
-
-    /// Bidi information for a single processed paragraph
-    #[diplomat::opaque]
-    pub struct BidiParagraph<'info>(pub unicode_bidi::Paragraph<'info, 'info>);
-
-    impl<'info> BidiParagraph<'info> {
-        /// Given a paragraph index `n` within the surrounding text, this sets this
-        /// object to the paragraph at that index. Returns nothing when out of bounds.
-        ///
-        /// This is equivalent to calling `paragraph_at()` on `BidiInfo` but doesn't
-        /// create a new object
-        pub fn set_paragraph_in_text(&mut self, n: usize) -> bool {
-            let Some(para) = self.0.info.paragraphs.get(n) else {
-                return false;
-            };
-            self.0 = unicode_bidi::Paragraph::new(self.0.info, para);
-            true
-        }
-
-        #[diplomat::rust_link(unicode_bidi::Paragraph::level_at, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        /// The primary direction of this paragraph
-        pub fn direction(&self) -> BidiDirection {
-            self.0.direction().into()
-        }
-
-        /// The number of bytes in this paragraph
-        #[diplomat::rust_link(unicode_bidi::ParagraphInfo::len, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn size(&self) -> usize {
-            self.0.para.len()
-        }
-
-        /// The start index of this paragraph within the source text
-        #[diplomat::attr(auto, getter)]
-        pub fn range_start(&self) -> usize {
-            self.0.para.range.start
-        }
-
-        /// The end index of this paragraph within the source text
-        #[diplomat::attr(auto, getter)]
-        pub fn range_end(&self) -> usize {
-            self.0.para.range.end
-        }
-
-        /// Reorder a line based on display order. The ranges are specified relative to the source text and must be contained
-        /// within this paragraph's range.
-        #[diplomat::rust_link(unicode_bidi::Paragraph::level_at, FnInStruct)]
-        #[diplomat::attr(demo_gen, disable)]
-        pub fn reorder_line(
-            &self,
-            range_start: usize,
-            range_end: usize,
-            out: &mut DiplomatWrite,
-        ) -> Option<()> {
-            if range_start < self.range_start() || range_end > self.range_end() {
-                return None;
-            }
-
-            let info = self.0.info;
-            let para = self.0.para;
-
-            let reordered = info.reorder_line(para, range_start..range_end);
-
-            let _infallible = out.write_str(&reordered);
-
-            Some(())
-        }
-
-        /// Get the BIDI level at a particular byte index in this paragraph.
-        /// This integer is conceptually a `unicode_bidi::Level`,
-        /// and can be further inspected using the static methods on Bidi.
-        ///
-        /// Returns 0 (equivalent to `Level::ltr()`) on error
-        #[diplomat::rust_link(unicode_bidi::Paragraph::level_at, FnInStruct)]
-        pub fn level_at(&self, pos: usize) -> u8 {
-            if pos >= self.size() {
-                return 0;
-            }
-
-            self.0.level_at(pos).number()
-        }
-    }
-}
-
-use unicode_bidi::Direction;
-
-impl From<Direction> for ffi::BidiDirection {
-    fn from(other: Direction) -> Self {
-        match other {
-            Direction::Ltr => Self::Ltr,
-            Direction::Rtl => Self::Rtl,
-            Direction::Mixed => Self::Mixed,
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/calendar.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/calendar.rs
deleted file mode 100644
index afef112..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/calendar.rs
+++ /dev/null
@@ -1,166 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use alloc::sync::Arc;
-    use core::fmt::Write;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DataError;
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-
-    /// The various calendar types currently supported by [`Calendar`]
-    #[diplomat::enum_convert(icu_calendar::AnyCalendarKind, needs_wildcard)]
-    #[diplomat::rust_link(icu::calendar::AnyCalendarKind, Enum)]
-    pub enum AnyCalendarKind {
-        /// The kind of an Iso calendar
-        Iso = 0,
-        /// The kind of a Gregorian calendar
-        Gregorian = 1,
-        /// The kind of a Buddhist calendar
-        Buddhist = 2,
-        /// The kind of a Japanese calendar with modern eras
-        Japanese = 3,
-        /// The kind of a Japanese calendar with modern and historic eras
-        JapaneseExtended = 4,
-        /// The kind of an Ethiopian calendar, with Amete Mihret era
-        Ethiopian = 5,
-        /// The kind of an Ethiopian calendar, with Amete Alem era
-        EthiopianAmeteAlem = 6,
-        /// The kind of a Indian calendar
-        Indian = 7,
-        /// The kind of a Coptic calendar
-        Coptic = 8,
-        /// The kind of a Dangi calendar
-        Dangi = 9,
-        /// The kind of a Chinese calendar
-        Chinese = 10,
-        /// The kind of a Hebrew calendar
-        Hebrew = 11,
-        /// The kind of a Islamic civil calendar
-        IslamicCivil = 12,
-        /// The kind of a Islamic observational calendar
-        IslamicObservational = 13,
-        /// The kind of a Islamic tabular calendar
-        IslamicTabular = 14,
-        /// The kind of a Islamic Umm al-Qura calendar
-        IslamicUmmAlQura = 15,
-        /// The kind of a Persian calendar
-        Persian = 16,
-        /// The kind of a Roc calendar
-        Roc = 17,
-    }
-
-    impl AnyCalendarKind {
-        /// Read the calendar type off of the -u-ca- extension on a locale.
-        ///
-        /// Returns nothing if there is no calendar on the locale or if the locale's calendar
-        /// is not known or supported.
-        #[diplomat::rust_link(icu::calendar::AnyCalendarKind::get_for_locale, FnInEnum)]
-        pub fn get_for_locale(locale: &Locale) -> Option<AnyCalendarKind> {
-            icu_calendar::AnyCalendarKind::get_for_locale(&locale.0).map(Into::into)
-        }
-
-        /// Obtain the calendar type given a BCP-47 -u-ca- extension string.
-        ///
-        /// Returns nothing if the calendar is not known or supported.
-        #[diplomat::rust_link(icu::calendar::AnyCalendarKind::get_for_bcp47_value, FnInEnum)]
-        #[diplomat::rust_link(
-            icu::calendar::AnyCalendarKind::get_for_bcp47_string,
-            FnInEnum,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::calendar::AnyCalendarKind::get_for_bcp47_bytes,
-            FnInEnum,
-            hidden
-        )]
-        pub fn get_for_bcp47(s: &DiplomatStr) -> Option<AnyCalendarKind> {
-            icu_calendar::AnyCalendarKind::get_for_bcp47_bytes(s).map(Into::into)
-        }
-
-        /// Obtain the string suitable for use in the -u-ca- extension in a BCP47 locale.
-        #[diplomat::rust_link(icu::calendar::AnyCalendarKind::as_bcp47_string, FnInEnum)]
-        #[diplomat::rust_link(icu::calendar::AnyCalendarKind::as_bcp47_value, FnInEnum, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn bcp47(self, write: &mut diplomat_runtime::DiplomatWrite) {
-            let kind = icu_calendar::AnyCalendarKind::from(self);
-            let _infallible = write.write_str(kind.as_bcp47_string());
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::transparent_convert]
-    #[diplomat::rust_link(icu::calendar::AnyCalendar, Enum)]
-    pub struct Calendar(pub Arc<icu_calendar::AnyCalendar>);
-
-    impl Calendar {
-        /// Creates a new [`Calendar`] from the specified date and time, using compiled data.
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::try_new, FnInEnum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_locale")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_for_locale(locale: &Locale) -> Result<Box<Calendar>, DataError> {
-            let prefs = (&locale.0).into();
-            Ok(Box::new(Calendar(Arc::new(
-                icu_calendar::AnyCalendar::try_new(prefs)?,
-            ))))
-        }
-
-        /// Creates a new [`Calendar`] from the specified date and time, using compiled data.
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::new_for_kind, FnInEnum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_kind")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_for_kind(kind: AnyCalendarKind) -> Result<Box<Calendar>, DataError> {
-            Ok(Box::new(Calendar(Arc::new(
-                icu_calendar::AnyCalendar::new_for_kind(kind.into()),
-            ))))
-        }
-
-        /// Creates a new [`Calendar`] from the specified date and time, using a particular data source.
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::try_new, FnInEnum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_locale_with_provider")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_for_locale_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<Calendar>, DataError> {
-            let prefs = (&locale.0).into();
-
-            Ok(Box::new(Calendar(Arc::new(
-                icu_calendar::AnyCalendar::try_new_with_buffer_provider(provider.get()?, prefs)?,
-            ))))
-        }
-
-        /// Creates a new [`Calendar`] from the specified date and time, using a particular data source.
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::new_for_kind, FnInEnum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_kind_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_for_kind_with_provider(
-            provider: &DataProvider,
-            kind: AnyCalendarKind,
-        ) -> Result<Box<Calendar>, DataError> {
-            Ok(Box::new(Calendar(Arc::new(
-                icu_calendar::AnyCalendar::try_new_for_kind_with_buffer_provider(
-                    provider.get()?,
-                    kind.into(),
-                )?,
-            ))))
-        }
-
-        /// Returns the kind of this calendar
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::kind, FnInEnum)]
-        #[diplomat::attr(auto, getter)]
-        pub fn kind(&self) -> AnyCalendarKind {
-            self.0.kind().into()
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/casemap.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/casemap.rs
deleted file mode 100644
index 2fe2e661..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/casemap.rs
+++ /dev/null
@@ -1,370 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use icu_casemap::options::TitlecaseOptions;
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DataError;
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use diplomat_runtime::DiplomatOption;
-
-    use writeable::Writeable;
-
-    #[diplomat::enum_convert(icu_casemap::options::LeadingAdjustment, needs_wildcard)]
-    #[diplomat::rust_link(icu::casemap::options::LeadingAdjustment, Enum)]
-    pub enum LeadingAdjustment {
-        Auto,
-        None,
-        ToCased,
-    }
-
-    #[diplomat::enum_convert(icu_casemap::options::TrailingCase, needs_wildcard)]
-    #[diplomat::rust_link(icu::casemap::options::TrailingCase, Enum)]
-    pub enum TrailingCase {
-        Lower,
-        Unchanged,
-    }
-
-    #[diplomat::rust_link(icu::casemap::options::TitlecaseOptions, Struct)]
-    #[diplomat::attr(supports = non_exhaustive_structs, rename = "TitlecaseOptions")]
-    pub struct TitlecaseOptionsV1 {
-        pub leading_adjustment: DiplomatOption<LeadingAdjustment>,
-        pub trailing_case: DiplomatOption<TrailingCase>,
-    }
-
-    impl TitlecaseOptionsV1 {
-        #[diplomat::rust_link(icu::casemap::options::TitlecaseOptions::default, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[diplomat::attr(any(cpp, js), rename = "default_options")]
-        pub fn default() -> TitlecaseOptionsV1 {
-            Self {
-                leading_adjustment: None.into(),
-                trailing_case: None.into(),
-            }
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::casemap::CaseMapper, Struct)]
-    #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed, Struct, hidden)]
-    pub struct CaseMapper(pub icu_casemap::CaseMapper);
-
-    impl CaseMapper {
-        /// Construct a new CaseMapper instance using compiled data.
-        #[diplomat::rust_link(icu::casemap::CaseMapper::new, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::new, FnInStruct, hidden)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<CaseMapper> {
-            Box::new(CaseMapper(icu_casemap::CaseMapper::new().static_to_owned()))
-        }
-
-        /// Construct a new CaseMapper instance using a particular data source.
-        #[diplomat::rust_link(icu::casemap::CaseMapper::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(provider: &DataProvider) -> Result<Box<CaseMapper>, DataError> {
-            Ok(Box::new(CaseMapper(
-                icu_casemap::CaseMapper::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-        /// Returns the full lowercase mapping of the given string
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::lowercase, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapperBorrowed::lowercase_to_string,
-            FnInStruct,
-            hidden
-        )]
-        pub fn lowercase(&self, s: &str, locale: &Locale, write: &mut DiplomatWrite) {
-            let _infallible = self
-                .0
-                .as_borrowed()
-                .lowercase(s, &locale.0.id)
-                .write_to(write);
-        }
-
-        /// Returns the full uppercase mapping of the given string
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::uppercase, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapperBorrowed::uppercase_to_string,
-            FnInStruct,
-            hidden
-        )]
-        pub fn uppercase(&self, s: &str, locale: &Locale, write: &mut DiplomatWrite) {
-            let _infallible = self
-                .0
-                .as_borrowed()
-                .uppercase(s, &locale.0.id)
-                .write_to(write);
-        }
-
-        /// Returns the full titlecase mapping of the given string, performing head adjustment without
-        /// loading additional data.
-        /// (if head adjustment is enabled in the options)
-        ///
-        /// The `v1` refers to the version of the options struct, which may change as we add more options
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapperBorrowed::titlecase_segment_with_only_case_data,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapperBorrowed::titlecase_segment_with_only_case_data_to_string,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "titlecase_segment_with_only_case_data")]
-        pub fn titlecase_segment_with_only_case_data_v1(
-            &self,
-            s: &str,
-            locale: &Locale,
-            options: TitlecaseOptionsV1,
-            write: &mut DiplomatWrite,
-        ) {
-            let _infallible = self
-                .0
-                .as_borrowed()
-                .titlecase_segment_with_only_case_data(s, &locale.0.id, options.into())
-                .write_to(write);
-        }
-
-        /// Case-folds the characters in the given string
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::fold, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::fold_string, FnInStruct, hidden)]
-        pub fn fold(&self, s: &str, write: &mut DiplomatWrite) {
-            let _infallible = self.0.as_borrowed().fold(s).write_to(write);
-        }
-        /// Case-folds the characters in the given string
-        /// using Turkic (T) mappings for dotted/dotless I.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::fold_turkic, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapperBorrowed::fold_turkic_string,
-            FnInStruct,
-            hidden
-        )]
-        pub fn fold_turkic(&self, s: &str, write: &mut DiplomatWrite) {
-            let _infallible = self.0.as_borrowed().fold_turkic(s).write_to(write);
-        }
-
-        /// Adds all simple case mappings and the full case folding for `c` to `builder`.
-        /// Also adds special case closure mappings.
-        ///
-        /// In other words, this adds all characters that this casemaps to, as
-        /// well as all characters that may casemap to this one.
-        ///
-        /// Note that since CodePointSetBuilder does not contain strings, this will
-        /// ignore string mappings.
-        ///
-        /// Identical to the similarly named method on `CaseMapCloser`, use that if you
-        /// plan on using string case closure mappings too.
-        #[cfg(feature = "properties")]
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::add_case_closure_to, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::ClosureSink, Trait, hidden)]
-        #[diplomat::rust_link(icu::casemap::ClosureSink::add_char, FnInTrait, hidden)]
-        #[diplomat::rust_link(icu::casemap::ClosureSink::add_string, FnInTrait, hidden)]
-        pub fn add_case_closure_to(
-            &self,
-            c: DiplomatChar,
-            builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
-        ) {
-            if let Some(ch) = char::from_u32(c) {
-                self.0.as_borrowed().add_case_closure_to(ch, &mut builder.0)
-            }
-        }
-
-        /// Returns the simple lowercase mapping of the given character.
-        ///
-        /// This function only implements simple and common mappings.
-        /// Full mappings, which can map one char to a string, are not included.
-        /// For full mappings, use `CaseMapperBorrowed::lowercase`.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::simple_lowercase, FnInStruct)]
-        pub fn simple_lowercase(&self, ch: DiplomatChar) -> DiplomatChar {
-            char::from_u32(ch)
-                .map(|ch| self.0.as_borrowed().simple_lowercase(ch) as DiplomatChar)
-                .unwrap_or(ch)
-        }
-
-        /// Returns the simple uppercase mapping of the given character.
-        ///
-        /// This function only implements simple and common mappings.
-        /// Full mappings, which can map one char to a string, are not included.
-        /// For full mappings, use `CaseMapperBorrowed::uppercase`.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::simple_uppercase, FnInStruct)]
-        pub fn simple_uppercase(&self, ch: DiplomatChar) -> DiplomatChar {
-            char::from_u32(ch)
-                .map(|ch| self.0.as_borrowed().simple_uppercase(ch) as DiplomatChar)
-                .unwrap_or(ch)
-        }
-
-        /// Returns the simple titlecase mapping of the given character.
-        ///
-        /// This function only implements simple and common mappings.
-        /// Full mappings, which can map one char to a string, are not included.
-        /// For full mappings, use `CaseMapperBorrowed::titlecase_segment`.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::simple_titlecase, FnInStruct)]
-        pub fn simple_titlecase(&self, ch: DiplomatChar) -> DiplomatChar {
-            char::from_u32(ch)
-                .map(|ch| self.0.as_borrowed().simple_titlecase(ch) as DiplomatChar)
-                .unwrap_or(ch)
-        }
-
-        /// Returns the simple casefolding of the given character.
-        ///
-        /// This function only implements simple folding.
-        /// For full folding, use `CaseMapperBorrowed::fold`.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::simple_fold, FnInStruct)]
-        pub fn simple_fold(&self, ch: DiplomatChar) -> DiplomatChar {
-            char::from_u32(ch)
-                .map(|ch| self.0.as_borrowed().simple_fold(ch) as DiplomatChar)
-                .unwrap_or(ch)
-        }
-        /// Returns the simple casefolding of the given character in the Turkic locale
-        ///
-        /// This function only implements simple folding.
-        /// For full folding, use `CaseMapperBorrowed::fold_turkic`.
-        #[diplomat::rust_link(icu::casemap::CaseMapperBorrowed::simple_fold_turkic, FnInStruct)]
-        pub fn simple_fold_turkic(&self, ch: DiplomatChar) -> DiplomatChar {
-            char::from_u32(ch)
-                .map(|ch| self.0.as_borrowed().simple_fold_turkic(ch) as DiplomatChar)
-                .unwrap_or(ch)
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::casemap::CaseMapCloser, Struct)]
-    #[diplomat::rust_link(icu::casemap::CaseMapCloserBorrowed, Struct, hidden)]
-    pub struct CaseMapCloser(pub icu_casemap::CaseMapCloser<icu_casemap::CaseMapper>);
-
-    impl CaseMapCloser {
-        /// Construct a new CaseMapCloser instance using compiled data.
-        #[diplomat::rust_link(icu::casemap::CaseMapCloser::new, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::CaseMapCloserBorrowed::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::casemap::CaseMapCloser::new_with_mapper, FnInStruct, hidden)]
-        #[diplomat::attr(supports = "fallible_constructors", constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Result<Box<CaseMapCloser>, DataError> {
-            Ok(Box::new(CaseMapCloser(
-                icu_casemap::CaseMapCloser::new().static_to_owned(),
-            )))
-        }
-        /// Construct a new CaseMapCloser instance using a particular data source.
-        #[diplomat::rust_link(icu::casemap::CaseMapCloser::new, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::CaseMapCloser::new_with_mapper, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CaseMapCloser>, DataError> {
-            Ok(Box::new(CaseMapCloser(
-                icu_casemap::CaseMapCloser::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-        /// Adds all simple case mappings and the full case folding for `c` to `builder`.
-        /// Also adds special case closure mappings.
-        #[cfg(feature = "properties")]
-        #[diplomat::rust_link(icu::casemap::CaseMapCloserBorrowed::add_case_closure_to, FnInStruct)]
-        pub fn add_case_closure_to(
-            &self,
-            c: DiplomatChar,
-            builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
-        ) {
-            if let Some(ch) = char::from_u32(c) {
-                self.0.as_borrowed().add_case_closure_to(ch, &mut builder.0)
-            }
-        }
-
-        /// Finds all characters and strings which may casemap to `s` as their full case folding string
-        /// and adds them to the set.
-        ///
-        /// Returns true if the string was found
-        #[cfg(feature = "properties")]
-        #[diplomat::rust_link(
-            icu::casemap::CaseMapCloserBorrowed::add_string_case_closure_to,
-            FnInStruct
-        )]
-        pub fn add_string_case_closure_to(
-            &self,
-            s: &DiplomatStr,
-            builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
-        ) -> bool {
-            let s = core::str::from_utf8(s).unwrap_or("");
-            self.0
-                .as_borrowed()
-                .add_string_case_closure_to(s, &mut builder.0)
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::casemap::TitlecaseMapper, Struct)]
-    #[diplomat::rust_link(icu::casemap::TitlecaseMapperBorrowed, Struct, hidden)]
-    pub struct TitlecaseMapper(pub icu_casemap::TitlecaseMapper<icu_casemap::CaseMapper>);
-
-    impl TitlecaseMapper {
-        /// Construct a new `TitlecaseMapper` instance using compiled data.
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapper::new, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapperBorrowed::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapper::new_with_mapper, FnInStruct, hidden)]
-        #[diplomat::attr(supports = "fallible_constructors", constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Result<Box<TitlecaseMapper>, DataError> {
-            Ok(Box::new(TitlecaseMapper(
-                icu_casemap::TitlecaseMapper::new().static_to_owned(),
-            )))
-        }
-        /// Construct a new `TitlecaseMapper` instance using a particular data source.
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapper::new, FnInStruct)]
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapper::new_with_mapper, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<TitlecaseMapper>, DataError> {
-            Ok(Box::new(TitlecaseMapper(
-                icu_casemap::TitlecaseMapper::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-        /// Returns the full titlecase mapping of the given string
-        ///
-        /// The `v1` refers to the version of the options struct, which may change as we add more options
-        #[diplomat::rust_link(icu::casemap::TitlecaseMapperBorrowed::titlecase_segment, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::casemap::TitlecaseMapperBorrowed::titlecase_segment_to_string,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "titlecase_segment")]
-        pub fn titlecase_segment_v1(
-            &self,
-            s: &str,
-            locale: &Locale,
-            options: TitlecaseOptionsV1,
-            write: &mut DiplomatWrite,
-        ) {
-            let _infallible = self
-                .0
-                .as_borrowed()
-                .titlecase_segment(s, &locale.0.id, options.into())
-                .write_to(write);
-        }
-    }
-}
-
-impl From<ffi::TitlecaseOptionsV1> for TitlecaseOptions {
-    fn from(other: ffi::TitlecaseOptionsV1) -> Self {
-        let mut ret = Self::default();
-
-        ret.leading_adjustment = other.leading_adjustment.into_converted_option();
-
-        ret.trailing_case = other.trailing_case.into_converted_option();
-
-        ret
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collator.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collator.rs
deleted file mode 100644
index 1227c5dc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collator.rs
+++ /dev/null
@@ -1,273 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use icu_collator::options::{CollatorOptions, ResolvedCollatorOptions};
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-    use diplomat_runtime::DiplomatOption;
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::collator::Collator, Struct)]
-    #[diplomat::rust_link(icu::collator::CollatorBorrowed, Struct, hidden)]
-    pub struct Collator(pub icu_collator::Collator);
-
-    #[diplomat::rust_link(icu::collator::options::CollatorOptions, Struct)]
-    #[diplomat::rust_link(icu::collator::options::CollatorOptions::default, FnInStruct, hidden)]
-    #[diplomat::attr(supports = non_exhaustive_structs, rename = "CollatorOptions")]
-    pub struct CollatorOptionsV1 {
-        pub strength: DiplomatOption<CollatorStrength>,
-        pub alternate_handling: DiplomatOption<CollatorAlternateHandling>,
-        pub max_variable: DiplomatOption<CollatorMaxVariable>,
-        pub case_level: DiplomatOption<CollatorCaseLevel>,
-        pub backward_second_level: DiplomatOption<CollatorBackwardSecondLevel>,
-    }
-
-    // Note the flipped order of the words `Collator` and `Resolved`, because
-    // in FFI `Collator` is part of the `Collator` prefix, but in Rust,
-    // `ResolvedCollatorOptions` makes more sense as English.
-    #[diplomat::rust_link(icu::collator::options::ResolvedCollatorOptions, Struct)]
-    #[diplomat::out]
-    #[diplomat::attr(supports = non_exhaustive_structs, rename = "CollatorResolvedOptions")]
-    pub struct CollatorResolvedOptionsV1 {
-        pub strength: CollatorStrength,
-        pub alternate_handling: CollatorAlternateHandling,
-        pub case_first: CollatorCaseFirst,
-        pub max_variable: CollatorMaxVariable,
-        pub case_level: CollatorCaseLevel,
-        pub numeric: CollatorNumericOrdering,
-        pub backward_second_level: CollatorBackwardSecondLevel,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::Strength, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    #[diplomat::enum_convert(icu_collator::options::Strength, needs_wildcard)]
-    pub enum CollatorStrength {
-        Primary = 0,
-        Secondary = 1,
-        Tertiary = 2,
-        Quaternary = 3,
-        Identical = 4,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::AlternateHandling, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    #[diplomat::enum_convert(icu_collator::options::AlternateHandling, needs_wildcard)]
-    pub enum CollatorAlternateHandling {
-        NonIgnorable = 0,
-        Shifted = 1,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::CaseFirst, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    pub enum CollatorCaseFirst {
-        Off = 0,
-        Lower = 1,
-        Upper = 2,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::MaxVariable, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    #[diplomat::enum_convert(icu_collator::options::MaxVariable, needs_wildcard)]
-    pub enum CollatorMaxVariable {
-        Space = 0,
-        Punctuation = 1,
-        Symbol = 2,
-        Currency = 3,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::CaseLevel, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    #[diplomat::enum_convert(icu_collator::options::CaseLevel, needs_wildcard)]
-    pub enum CollatorCaseLevel {
-        Off = 0,
-        On = 1,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::NumericOrdering, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    pub enum CollatorNumericOrdering {
-        Off = 0,
-        On = 1,
-    }
-
-    #[diplomat::rust_link(icu::collator::options::BackwardSecondLevel, Enum)]
-    #[derive(Eq, PartialEq, Debug, PartialOrd, Ord)]
-    #[diplomat::enum_convert(icu_collator::options::BackwardSecondLevel, needs_wildcard)]
-    pub enum CollatorBackwardSecondLevel {
-        Off = 0,
-        On = 1,
-    }
-
-    impl Collator {
-        /// Construct a new Collator instance using compiled data.
-        #[diplomat::rust_link(icu::collator::Collator::try_new, FnInStruct)]
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::collator::CollatorPreferences, Struct, hidden)]
-        #[diplomat::rust_link(icu::collator::CollatorPreferences::extend, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_v1(
-            locale: &Locale,
-            options: CollatorOptionsV1,
-        ) -> Result<Box<Collator>, DataError> {
-            Ok(Box::new(Collator(
-                icu_collator::Collator::try_new((&locale.0).into(), options.into())?
-                    .static_to_owned(),
-            )))
-        }
-
-        /// Construct a new Collator instance using a particular data source.
-        #[diplomat::rust_link(icu::collator::Collator::try_new, FnInStruct)]
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::collator::CollatorPreferences, Struct, hidden)]
-        #[diplomat::attr(supports = fallible_constructors, constructor)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_v1_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            options: CollatorOptionsV1,
-        ) -> Result<Box<Collator>, DataError> {
-            let options = options.into();
-            Ok(Box::new(Collator(
-                icu_collator::Collator::try_new_with_buffer_provider(
-                    provider.get()?,
-                    (&locale.0).into(),
-                    options,
-                )?,
-            )))
-        }
-        /// Compare two strings.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::compare_utf8, FnInStruct)]
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::compare, FnInStruct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(supports = utf8_strings, rename = "compare")]
-        pub fn compare_utf8(&self, left: &DiplomatStr, right: &DiplomatStr) -> core::cmp::Ordering {
-            self.0.as_borrowed().compare_utf8(left, right)
-        }
-
-        /// Compare two strings.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::compare_utf16, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "compare")]
-        #[diplomat::attr(supports = utf8_strings, rename = "compare16")]
-        pub fn compare_utf16(
-            &self,
-            left: &DiplomatStr16,
-            right: &DiplomatStr16,
-        ) -> core::cmp::Ordering {
-            self.0.as_borrowed().compare_utf16(left, right)
-        }
-
-        /// The resolved options showing how the default options, the requested options,
-        /// and the options from locale data were combined. None of the struct fields
-        /// will have `Auto` as the value.
-        #[diplomat::rust_link(icu::collator::CollatorBorrowed::resolved_options, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "resolved_options")]
-        pub fn resolved_options_v1(&self) -> CollatorResolvedOptionsV1 {
-            self.0.as_borrowed().resolved_options().into()
-        }
-    }
-}
-
-impl From<ffi::CollatorOptionsV1> for CollatorOptions {
-    fn from(options: ffi::CollatorOptionsV1) -> CollatorOptions {
-        let mut result = CollatorOptions::default();
-        result.strength = options.strength.into_converted_option();
-        result.alternate_handling = options.alternate_handling.into_converted_option();
-        result.max_variable = options.max_variable.into_converted_option();
-        result.case_level = options.case_level.into_converted_option();
-        result.backward_second_level = options.backward_second_level.into_converted_option();
-
-        result
-    }
-}
-
-impl From<ResolvedCollatorOptions> for ffi::CollatorResolvedOptionsV1 {
-    fn from(options: ResolvedCollatorOptions) -> ffi::CollatorResolvedOptionsV1 {
-        Self {
-            strength: options.strength.into(),
-            alternate_handling: options.alternate_handling.into(),
-            case_first: options.case_first.into(),
-            max_variable: options.max_variable.into(),
-            case_level: options.case_level.into(),
-            numeric: options.numeric.into(),
-            backward_second_level: options.backward_second_level.into(),
-        }
-    }
-}
-
-impl From<icu_collator::preferences::CollationCaseFirst> for ffi::CollatorCaseFirst {
-    fn from(other: icu_collator::preferences::CollationCaseFirst) -> Self {
-        match other {
-            icu_collator::preferences::CollationCaseFirst::Upper => ffi::CollatorCaseFirst::Upper,
-            icu_collator::preferences::CollationCaseFirst::Lower => ffi::CollatorCaseFirst::Lower,
-            icu_collator::preferences::CollationCaseFirst::False => ffi::CollatorCaseFirst::Off,
-            _ => {
-                debug_assert!(
-                    false,
-                    "unknown variant for icu_collator::preferences::CollationCaseFirst"
-                );
-                ffi::CollatorCaseFirst::Off
-            }
-        }
-    }
-}
-impl From<ffi::CollatorCaseFirst> for icu_collator::preferences::CollationCaseFirst {
-    fn from(this: ffi::CollatorCaseFirst) -> Self {
-        match this {
-            ffi::CollatorCaseFirst::Off => icu_collator::preferences::CollationCaseFirst::False,
-            ffi::CollatorCaseFirst::Lower => icu_collator::preferences::CollationCaseFirst::Lower,
-            ffi::CollatorCaseFirst::Upper => icu_collator::preferences::CollationCaseFirst::Upper,
-        }
-    }
-}
-
-impl From<icu_collator::preferences::CollationNumericOrdering> for ffi::CollatorNumericOrdering {
-    fn from(other: icu_collator::preferences::CollationNumericOrdering) -> Self {
-        match other {
-            icu_collator::preferences::CollationNumericOrdering::True => {
-                ffi::CollatorNumericOrdering::On
-            }
-            icu_collator::preferences::CollationNumericOrdering::False => {
-                ffi::CollatorNumericOrdering::Off
-            }
-            _ => {
-                debug_assert!(
-                    false,
-                    "unknown variant for icu_collator::preferences::CollationNumericOrdering"
-                );
-                ffi::CollatorNumericOrdering::Off
-            }
-        }
-    }
-}
-impl From<ffi::CollatorNumericOrdering> for icu_collator::preferences::CollationNumericOrdering {
-    fn from(this: ffi::CollatorNumericOrdering) -> Self {
-        match this {
-            ffi::CollatorNumericOrdering::Off => {
-                icu_collator::preferences::CollationNumericOrdering::False
-            }
-            ffi::CollatorNumericOrdering::On => {
-                icu_collator::preferences::CollationNumericOrdering::True
-            }
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collections_sets.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collections_sets.rs
deleted file mode 100644
index 2644431..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collections_sets.rs
+++ /dev/null
@@ -1,249 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::properties_sets::ffi::CodePointSetData;
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(
-        icu::collections::codepointinvlist::CodePointInversionListBuilder,
-        Struct
-    )]
-    pub struct CodePointSetBuilder(
-        pub icu_collections::codepointinvlist::CodePointInversionListBuilder,
-    );
-
-    impl CodePointSetBuilder {
-        /// Make a new set builder containing nothing
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::new,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, constructor)]
-        pub fn create() -> Box<Self> {
-            Box::new(Self(
-                icu_collections::codepointinvlist::CodePointInversionListBuilder::new(),
-            ))
-        }
-
-        /// Build this into a set
-        ///
-        /// This object is repopulated with an empty builder
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::build,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::CodePointSetData::from_code_point_inversion_list,
-            FnInStruct,
-            hidden
-        )]
-        pub fn build(&mut self) -> Box<CodePointSetData> {
-            let inner = core::mem::take(&mut self.0);
-            let built = inner.build();
-            let set = icu_properties::CodePointSetData::from_code_point_inversion_list(built);
-            Box::new(CodePointSetData(set))
-        }
-
-        /// Complements this set
-        ///
-        /// (Elements in this set are removed and vice versa)
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement,
-            FnInStruct
-        )]
-        pub fn complement(&mut self) {
-            self.0.complement()
-        }
-
-        /// Returns whether this set is empty
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::is_empty,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_empty(&self) -> bool {
-            self.0.is_empty()
-        }
-
-        /// Add a single character to the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::add_char,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::add32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn add_char(&mut self, ch: DiplomatChar) {
-            self.0.add32(ch)
-        }
-
-        /// Add an inclusive range of characters to the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::add_range,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::add_range32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn add_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
-            self.0.add_range32(start..=end)
-        }
-
-        /// Add all elements that belong to the provided set to the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::add_set,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::CodePointSetData::as_code_point_inversion_list,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::properties::CodePointSetData::to_code_point_inversion_list,
-            FnInStruct,
-            hidden
-        )]
-        pub fn add_set(&mut self, data: &CodePointSetData) {
-            // This is a ZeroFrom and always cheap for a CPIL, may be expensive
-            // for other impls. In the future we can make this builder support multiple impls
-            // if we ever add them
-            let list = data.0.to_code_point_inversion_list();
-            self.0.add_set(&list);
-        }
-
-        /// Remove a single character to the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_char,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::remove32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn remove_char(&mut self, ch: DiplomatChar) {
-            self.0.remove32(ch)
-        }
-
-        /// Remove an inclusive range of characters from the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_range,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_range32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn remove_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
-            self.0.remove_range32(start..=end)
-        }
-
-        /// Remove all elements that belong to the provided set from the set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_set,
-            FnInStruct
-        )]
-        pub fn remove_set(&mut self, data: &CodePointSetData) {
-            // (see comment in add_set)
-            let list = data.0.to_code_point_inversion_list();
-            self.0.remove_set(&list);
-        }
-
-        /// Removes all elements from the set except a single character
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_char,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::retain32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn retain_char(&mut self, ch: DiplomatChar) {
-            self.0.retain32(ch)
-        }
-
-        /// Removes all elements from the set except an inclusive range of characters f
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_range,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_range32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn retain_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
-            self.0.retain_range32(start..=end)
-        }
-
-        /// Removes all elements from the set except all elements in the provided set
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_set,
-            FnInStruct
-        )]
-        pub fn retain_set(&mut self, data: &CodePointSetData) {
-            // (see comment in add_set)
-            let list = data.0.to_code_point_inversion_list();
-            self.0.retain_set(&list);
-        }
-
-        /// Complement a single character to the set
-        ///
-        /// (Characters which are in this set are removed and vice versa)
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_char,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn complement_char(&mut self, ch: DiplomatChar) {
-            self.0.complement32(ch)
-        }
-
-        /// Complement an inclusive range of characters from the set
-        ///
-        /// (Characters which are in this set are removed and vice versa)
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_range,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_range32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn complement_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
-            self.0.complement_range32(start..=end)
-        }
-
-        /// Complement all elements that belong to the provided set from the set
-        ///
-        /// (Characters which are in this set are removed and vice versa)
-        #[diplomat::rust_link(
-            icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_set,
-            FnInStruct
-        )]
-        pub fn complement_set(&mut self, data: &CodePointSetData) {
-            // (see comment in add_set)
-            let list = data.0.to_code_point_inversion_list();
-            self.0.complement_set(&list);
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/date.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/date.rs
deleted file mode 100644
index 8a44ed8b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/date.rs
+++ /dev/null
@@ -1,402 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use alloc::sync::Arc;
-    use core::fmt::Write;
-    use icu_calendar::Iso;
-
-    use crate::calendar::ffi::Calendar;
-    use crate::errors::ffi::{CalendarError, CalendarParseError};
-
-    use tinystr::TinyAsciiStr;
-
-    #[cfg(feature = "calendar")]
-    use crate::week::ffi::WeekCalculator;
-
-    #[diplomat::enum_convert(icu_calendar::types::Weekday)]
-    pub enum Weekday {
-        Monday = 1,
-        Tuesday,
-        Wednesday,
-        Thursday,
-        Friday,
-        Saturday,
-        Sunday,
-    }
-    #[diplomat::opaque]
-    #[diplomat::transparent_convert]
-    /// An ICU4X Date object capable of containing a ISO-8601 date
-    #[diplomat::rust_link(icu::calendar::Date, Struct)]
-    pub struct IsoDate(pub icu_calendar::Date<icu_calendar::Iso>);
-
-    impl IsoDate {
-        /// Creates a new [`IsoDate`] from the specified date and time.
-        #[diplomat::rust_link(icu::calendar::Date::try_new_iso, FnInStruct)]
-        #[diplomat::attr(supports = fallible_constructors, constructor)]
-        pub fn create(year: i32, month: u8, day: u8) -> Result<Box<IsoDate>, CalendarError> {
-            Ok(Box::new(IsoDate(icu_calendar::Date::try_new_iso(
-                year, month, day,
-            )?)))
-        }
-
-        /// Creates a new [`IsoDate`] from an IXDTF string.
-        #[diplomat::rust_link(icu::calendar::Date::try_iso_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::Date::try_iso_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::calendar::Date::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(v: &DiplomatStr) -> Result<Box<IsoDate>, CalendarParseError> {
-            Ok(Box::new(IsoDate(icu_calendar::Date::try_from_utf8(
-                v, Iso,
-            )?)))
-        }
-
-        /// Convert this date to one in a different calendar
-        #[diplomat::rust_link(icu::calendar::Date::to_calendar, FnInStruct)]
-        pub fn to_calendar(&self, calendar: &Calendar) -> Box<Date> {
-            Box::new(Date(self.0.to_calendar(calendar.0.clone())))
-        }
-
-        #[diplomat::rust_link(icu::calendar::Date::to_any, FnInStruct)]
-        pub fn to_any(&self) -> Box<Date> {
-            Box::new(Date(self.0.to_any().wrap_calendar_in_arc()))
-        }
-
-        /// Returns the 1-indexed day in the year for this date
-        #[diplomat::rust_link(icu::calendar::Date::day_of_year_info, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_year(&self) -> u16 {
-            self.0.day_of_year_info().day_of_year
-        }
-
-        /// Returns the 1-indexed day in the month for this date
-        #[diplomat::rust_link(icu::calendar::Date::day_of_month, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_month(&self) -> u8 {
-            self.0.day_of_month().0
-        }
-
-        /// Returns the day in the week for this day
-        #[diplomat::rust_link(icu::calendar::Date::day_of_week, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_week(&self) -> Weekday {
-            self.0.day_of_week().into()
-        }
-
-        /// Returns the week number in this month, 1-indexed, based on what
-        /// is considered the first day of the week (often a locale preference).
-        ///
-        /// `first_weekday` can be obtained via `first_weekday()` on [`WeekCalculator`]
-        #[diplomat::rust_link(icu::calendar::Date::week_of_month, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::week_of_month,
-            FnInStruct,
-            hidden
-        )]
-        pub fn week_of_month(&self, first_weekday: Weekday) -> u8 {
-            self.0.week_of_month(first_weekday.into()).0
-        }
-
-        /// Returns the week number in this year, using week data
-        #[diplomat::rust_link(icu::calendar::Date::week_of_year, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::week_of_year,
-            FnInStruct,
-            hidden
-        )]
-        #[cfg(feature = "calendar")]
-        pub fn week_of_year(&self, calculator: &WeekCalculator) -> crate::week::ffi::WeekOf {
-            self.0.week_of_year(&calculator.0).into()
-        }
-
-        /// Returns 1-indexed number of the month of this date in its year
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo::ordinal, StructField)]
-        #[diplomat::rust_link(icu::calendar::Date::month, FnInStruct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn month(&self) -> u8 {
-            self.0.month().ordinal
-        }
-
-        /// Returns the year number in the current era for this date
-        ///
-        /// For calendars without an era, returns the extended year
-        #[diplomat::rust_link(icu::calendar::Date::year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn year(&self) -> i32 {
-            self.0.year().extended_year
-        }
-
-        /// Returns if the year is a leap year for this date
-        #[diplomat::rust_link(icu::calendar::Date::is_in_leap_year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_in_leap_year(&self) -> bool {
-            self.0.is_in_leap_year()
-        }
-
-        /// Returns the number of months in the year represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::months_in_year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn months_in_year(&self) -> u8 {
-            self.0.months_in_year()
-        }
-
-        /// Returns the number of days in the month represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::days_in_month, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn days_in_month(&self) -> u8 {
-            self.0.days_in_month()
-        }
-
-        /// Returns the number of days in the year represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::days_in_year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn days_in_year(&self) -> u16 {
-            self.0.days_in_year()
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::transparent_convert]
-    /// An ICU4X Date object capable of containing a date and time for any calendar.
-    #[diplomat::rust_link(icu::calendar::Date, Struct)]
-    pub struct Date(pub icu_calendar::Date<Arc<icu_calendar::AnyCalendar>>);
-
-    impl Date {
-        /// Creates a new [`Date`] representing the ISO date and time
-        /// given but in a given calendar
-        #[diplomat::rust_link(icu::calendar::Date::new_from_iso, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        #[diplomat::demo(default_constructor)]
-        pub fn from_iso_in_calendar(
-            year: i32,
-            month: u8,
-            day: u8,
-            calendar: &Calendar,
-        ) -> Result<Box<Date>, CalendarError> {
-            let cal = calendar.0.clone();
-            Ok(Box::new(Date(
-                icu_calendar::Date::try_new_iso(year, month, day)?.to_calendar(cal),
-            )))
-        }
-
-        /// Creates a new [`Date`] from the given codes, which are interpreted in the given calendar system
-        ///
-        /// An empty era code will treat the year as an extended year
-        #[diplomat::rust_link(icu::calendar::Date::try_new_from_codes, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_codes_in_calendar(
-            era_code: &DiplomatStr,
-            year: i32,
-            month_code: &DiplomatStr,
-            day: u8,
-            calendar: &Calendar,
-        ) -> Result<Box<Date>, CalendarError> {
-            let era = if era_code.is_empty() {
-                Some(icu_calendar::types::Era(
-                    TinyAsciiStr::try_from_utf8(era_code).map_err(|_| CalendarError::UnknownEra)?,
-                ))
-            } else {
-                None
-            };
-            let month = icu_calendar::types::MonthCode(
-                TinyAsciiStr::try_from_utf8(month_code)
-                    .map_err(|_| CalendarError::UnknownMonthCode)?,
-            );
-            let cal = calendar.0.clone();
-            Ok(Box::new(Date(icu_calendar::Date::try_new_from_codes(
-                era, year, month, day, cal,
-            )?)))
-        }
-
-        /// Creates a new [`Date`] from an IXDTF string.
-        #[diplomat::rust_link(icu::calendar::Date::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::Date::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::calendar::Date::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-        ) -> Result<Box<Date>, CalendarParseError> {
-            Ok(Box::new(Date(icu_calendar::Date::try_from_utf8(
-                v,
-                calendar.0.clone(),
-            )?)))
-        }
-
-        /// Convert this date to one in a different calendar
-        #[diplomat::rust_link(icu::calendar::Date::to_calendar, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::AnyCalendar::convert_any_date, FnInEnum, hidden)]
-        pub fn to_calendar(&self, calendar: &Calendar) -> Box<Date> {
-            Box::new(Date(self.0.to_calendar(calendar.0.clone())))
-        }
-
-        /// Converts this date to ISO
-        #[diplomat::rust_link(icu::calendar::Date::to_iso, FnInStruct)]
-        pub fn to_iso(&self) -> Box<IsoDate> {
-            Box::new(IsoDate(self.0.to_iso()))
-        }
-
-        /// Returns the 1-indexed day in the year for this date
-        #[diplomat::rust_link(icu::calendar::Date::day_of_year_info, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_year(&self) -> u16 {
-            self.0.day_of_year_info().day_of_year
-        }
-
-        /// Returns the 1-indexed day in the month for this date
-        #[diplomat::rust_link(icu::calendar::Date::day_of_month, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_month(&self) -> u8 {
-            self.0.day_of_month().0
-        }
-
-        /// Returns the day in the week for this day
-        #[diplomat::rust_link(icu::calendar::Date::day_of_week, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn day_of_week(&self) -> Weekday {
-            self.0.day_of_week().into()
-        }
-
-        /// Returns the week number in this month, 1-indexed, based on what
-        /// is considered the first day of the week (often a locale preference).
-        ///
-        /// `first_weekday` can be obtained via `first_weekday()` on [`WeekCalculator`]
-        #[diplomat::rust_link(icu::calendar::Date::week_of_month, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::week_of_month,
-            FnInStruct,
-            hidden
-        )]
-        pub fn week_of_month(&self, first_weekday: Weekday) -> u8 {
-            self.0.week_of_month(first_weekday.into()).0
-        }
-
-        /// Returns the week number in this year, using week data
-        #[diplomat::rust_link(icu::calendar::Date::week_of_year, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::week_of_year,
-            FnInStruct,
-            hidden
-        )]
-        #[cfg(feature = "calendar")]
-        pub fn week_of_year(&self, calculator: &WeekCalculator) -> crate::week::ffi::WeekOf {
-            self.0.week_of_year(&calculator.0).into()
-        }
-
-        /// Returns 1-indexed number of the month of this date in its year
-        ///
-        /// Note that for lunar calendars this may not lead to the same month
-        /// having the same ordinal month across years; use month_code if you care
-        /// about month identity.
-        #[diplomat::rust_link(icu::calendar::Date::month, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo::ordinal, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn ordinal_month(&self) -> u8 {
-            self.0.month().ordinal
-        }
-
-        /// Returns the month code for this date. Typically something
-        /// like "M01", "M02", but can be more complicated for lunar calendars.
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo::standard_code, StructField)]
-        #[diplomat::rust_link(icu::calendar::Date::month, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo, Struct, hidden)]
-        #[diplomat::rust_link(
-            icu::calendar::types::MonthInfo::formatting_code,
-            StructField,
-            hidden
-        )]
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo, Struct, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn month_code(&self, write: &mut diplomat_runtime::DiplomatWrite) {
-            let code = self.0.month().standard_code;
-            let _infallible = write.write_str(&code.0);
-        }
-
-        /// Returns the month number of this month.
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo::month_number, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn month_number(&self) -> u8 {
-            self.0.month().month_number()
-        }
-
-        /// Returns whether the month is a leap month.
-        #[diplomat::rust_link(icu::calendar::types::MonthInfo::is_leap, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn month_is_leap(&self) -> bool {
-            self.0.month().is_leap()
-        }
-
-        /// Returns the year number in the current era for this date
-        ///
-        /// For calendars without an era, returns the extended year
-        #[diplomat::rust_link(icu::calendar::types::YearInfo::era_year_or_extended, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::types::EraYear::era_year, StructField, compact)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo::era_year, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::calendar::Date::year, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::calendar::types::EraYear, Struct, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::YearKind, Enum, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo, Struct, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn year_in_era(&self) -> i32 {
-            self.0.year().era_year_or_extended()
-        }
-
-        /// Returns the extended year in the Date
-        #[diplomat::rust_link(icu::calendar::types::YearInfo::extended_year, StructField)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo, StructField, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn extended_year(&self) -> i32 {
-            self.0.year().extended_year
-        }
-
-        /// Returns the era for this date, or an empty string
-        #[diplomat::rust_link(icu::calendar::types::EraYear::standard_era, StructField)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo::standard_era, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::calendar::Date::year, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::calendar::types::EraYear, Struct, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::YearKind, Enum, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo, Struct, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::EraYear::formatting_era, StructField, hidden)]
-        #[diplomat::rust_link(icu::calendar::types::YearInfo::formatting_era, FnInStruct, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn era(&self, write: &mut diplomat_runtime::DiplomatWrite) {
-            if let Some(era) = self.0.year().standard_era() {
-                let _infallible = write.write_str(&era.0);
-            }
-        }
-
-        /// Returns the number of months in the year represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::months_in_year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn months_in_year(&self) -> u8 {
-            self.0.months_in_year()
-        }
-
-        /// Returns the number of days in the month represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::days_in_month, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn days_in_month(&self) -> u8 {
-            self.0.days_in_month()
-        }
-
-        /// Returns the number of days in the year represented by this date
-        #[diplomat::rust_link(icu::calendar::Date::days_in_year, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn days_in_year(&self) -> u16 {
-            self.0.days_in_year()
-        }
-
-        /// Returns the [`Calendar`] object backing this date
-        #[diplomat::rust_link(icu::calendar::Date::calendar, FnInStruct)]
-        #[diplomat::rust_link(icu::calendar::Date::calendar_wrapper, FnInStruct, hidden)]
-        #[diplomat::attr(auto, getter)]
-        pub fn calendar(&self) -> Box<Calendar> {
-            Box::new(Calendar(self.0.calendar_wrapper().clone()))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime.rs
deleted file mode 100644
index 903854ef..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime.rs
+++ /dev/null
@@ -1,66 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use icu_calendar::Iso;
-
-    use crate::calendar::ffi::Calendar;
-    use crate::date::ffi::{Date, IsoDate};
-    use crate::errors::ffi::CalendarParseError;
-    use crate::time::ffi::Time;
-
-    /// An ICU4X DateTime object capable of containing a ISO-8601 date and time.
-    #[diplomat::rust_link(icu::time::DateTime, Struct)]
-    #[diplomat::out]
-    pub struct IsoDateTime {
-        pub date: Box<IsoDate>,
-        pub time: Box<Time>,
-    }
-
-    impl IsoDateTime {
-        /// Creates a new [`IsoDateTime`] from an IXDTF string.
-        #[diplomat::rust_link(icu::time::DateTime::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::DateTime::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::DateTime::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(v: &DiplomatStr) -> Result<IsoDateTime, CalendarParseError> {
-            let icu_time::DateTime { date, time } = icu_time::DateTime::try_from_utf8(v, Iso)?;
-            Ok(IsoDateTime {
-                date: Box::new(IsoDate(date)),
-                time: Box::new(Time(time)),
-            })
-        }
-    }
-
-    /// An ICU4X DateTime object capable of containing a date and time for any calendar.
-    #[diplomat::rust_link(icu::time::DateTime, Struct)]
-    #[diplomat::out]
-    pub struct DateTime {
-        pub date: Box<Date>,
-        pub time: Box<Time>,
-    }
-
-    impl DateTime {
-        /// Creates a new [`DateTime`] from an IXDTF string.
-        #[diplomat::rust_link(icu::time::DateTime::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::DateTime::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::DateTime::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-        ) -> Result<DateTime, CalendarParseError> {
-            let icu_time::DateTime { date, time } =
-                icu_time::DateTime::try_from_utf8(v, calendar.0.clone())?;
-            Ok(DateTime {
-                date: Box::new(Date(date)),
-                time: Box::new(Time(time)),
-            })
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime_formatter.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime_formatter.rs
deleted file mode 100644
index fe12fdc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime_formatter.rs
+++ /dev/null
@@ -1,227 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use alloc::sync::Arc;
-    use icu_datetime::fieldsets::{T, YMD};
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_datetime::options::Length;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DateTimeFormatterLoadError;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use crate::{
-        calendar::ffi::Calendar,
-        date::ffi::{Date, IsoDate},
-        errors::ffi::DateTimeFormatError,
-        time::ffi::Time,
-    };
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    /// An ICU4X NoCalendarFormatter object capable of formatting an [`Time`] type (and others) as a string
-    #[diplomat::rust_link(icu::datetime::NoCalendarFormatter, Typedef)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::T, Struct, compact)]
-    pub struct NoCalendarFormatter(pub icu_datetime::NoCalendarFormatter<T>);
-
-    #[diplomat::enum_convert(icu_datetime::options::Length, needs_wildcard)]
-    #[diplomat::rust_link(icu::datetime::Length, Enum)]
-    pub enum DateTimeLength {
-        Long,
-        Medium,
-        Short,
-    }
-
-    impl NoCalendarFormatter {
-        /// Creates a new [`NoCalendarFormatter`] using compiled data.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length(
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<NoCalendarFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = T::with_length(Length::from(length)).hm();
-
-            Ok(Box::new(NoCalendarFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?,
-            )))
-        }
-
-        /// Creates a new [`NoCalendarFormatter`] using a particular data source.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<NoCalendarFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = T::with_length(Length::from(length)).hm();
-
-            Ok(Box::new(NoCalendarFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Formats a [`Time`] to a string.
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format(&self, value: &Time, write: &mut diplomat_runtime::DiplomatWrite) {
-            let _infallible = self.0.format(&value.0).write_to(write);
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X TypedDateFormatter object capable of formatting an [`IsoDate`] and a [`Time`] as a string,
-    /// using the Gregorian Calendar.
-    #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter, Struct)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::YMD, Struct, compact)]
-    pub struct GregorianDateFormatter(
-        pub icu_datetime::FixedCalendarDateTimeFormatter<icu_calendar::Gregorian, YMD>,
-    );
-
-    impl GregorianDateFormatter {
-        /// Creates a new [`GregorianDateFormatter`] using compiled data.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length(
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<GregorianDateFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMD::with_length(Length::from(length));
-
-            Ok(Box::new(GregorianDateFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?,
-            )))
-        }
-
-        /// Creates a new [`GregorianDateFormatter`] using a particular data source.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<GregorianDateFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMD::with_length(Length::from(length));
-
-            Ok(Box::new(GregorianDateFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Formats a [`IsoDate`] to a string.
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format_iso(&self, value: &IsoDate, write: &mut diplomat_runtime::DiplomatWrite) {
-            let greg = icu_calendar::Date::new_from_iso(value.0, icu_calendar::Gregorian);
-            let _infallible = self.0.format(&greg).write_to(write);
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X DateFormatter object capable of formatting a [`Date`] as a string,
-    /// using some calendar specified at runtime in the locale.
-    #[diplomat::rust_link(icu::datetime::DateTimeFormatter, Struct)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::YMD, Struct, compact)]
-    pub struct DateFormatter(pub icu_datetime::DateTimeFormatter<YMD>);
-
-    impl DateFormatter {
-        /// Creates a new [`DateFormatter`] using compiled data.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length(
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<DateFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMD::with_length(Length::from(length));
-
-            Ok(Box::new(DateFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?,
-            )))
-        }
-
-        /// Creates a new [`DateFormatter`] using a particular data source.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<DateFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMD::with_length(Length::from(length));
-
-            Ok(Box::new(DateFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Formats a [`Date`] to a string.
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format(
-            &self,
-            value: &Date,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeFormatError> {
-            let _infallible = self.0.format(&value.0).write_to(write);
-            Ok(())
-        }
-
-        /// Formats a [`IsoDate`] to a string.
-        ///
-        /// Will convert to this formatter's calendar first
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format_iso(
-            &self,
-            value: &IsoDate,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeFormatError> {
-            let any = value.0.to_any();
-            let _infallible = self.0.format(&any).write_to(write);
-            Ok(())
-        }
-
-        /// Returns the calendar system used in this formatter.
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::calendar, FnInStruct)]
-        pub fn calendar(&self) -> Box<Calendar> {
-            Box::new(Calendar(Arc::new(self.0.calendar().0.clone())))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/decimal.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/decimal.rs
deleted file mode 100644
index ba9c7c1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/decimal.rs
+++ /dev/null
@@ -1,201 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use crate::{errors::ffi::DataError, fixed_decimal::ffi::Decimal};
-    use icu_decimal::options::DecimalFormatterOptions;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_decimal::DecimalFormatterPreferences;
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    /// An ICU4X Decimal Format object, capable of formatting a [`Decimal`] as a string.
-    #[diplomat::rust_link(icu::decimal::DecimalFormatter, Struct)]
-    #[diplomat::rust_link(icu::datetime::FormattedDecimal, Struct, hidden)]
-    pub struct DecimalFormatter(pub icu_decimal::DecimalFormatter);
-
-    #[diplomat::rust_link(icu::decimal::options::GroupingStrategy, Enum)]
-    #[diplomat::enum_convert(icu_decimal::options::GroupingStrategy, needs_wildcard)]
-    pub enum DecimalGroupingStrategy {
-        Auto,
-        Never,
-        Always,
-        Min2,
-    }
-
-    impl DecimalFormatter {
-        /// Creates a new [`DecimalFormatter`], using compiled data
-        #[diplomat::rust_link(icu::decimal::DecimalFormatter::try_new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_grouping_strategy")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_with_grouping_strategy(
-            locale: &Locale,
-            grouping_strategy: Option<DecimalGroupingStrategy>,
-        ) -> Result<Box<DecimalFormatter>, DataError> {
-            let prefs = DecimalFormatterPreferences::from(&locale.0);
-
-            let mut options = DecimalFormatterOptions::default();
-            options.grouping_strategy = grouping_strategy.map(Into::into);
-            Ok(Box::new(DecimalFormatter(
-                icu_decimal::DecimalFormatter::try_new(prefs, options)?,
-            )))
-        }
-
-        /// Creates a new [`DecimalFormatter`], using a particular data source.
-        #[diplomat::rust_link(icu::decimal::DecimalFormatter::try_new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_grouping_strategy_and_provider")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_grouping_strategy_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            grouping_strategy: Option<DecimalGroupingStrategy>,
-        ) -> Result<Box<DecimalFormatter>, DataError> {
-            let prefs = DecimalFormatterPreferences::from(&locale.0);
-
-            let mut options = DecimalFormatterOptions::default();
-            options.grouping_strategy = grouping_strategy.map(Into::into);
-            Ok(Box::new(DecimalFormatter(
-                icu_decimal::DecimalFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Creates a new [`DecimalFormatter`] from preconstructed locale data.
-        #[diplomat::rust_link(icu::decimal::provider::DecimalSymbolsV2, Struct)]
-        #[allow(clippy::too_many_arguments)]
-        pub fn create_with_manual_data(
-            plus_sign_prefix: &DiplomatStr,
-            plus_sign_suffix: &DiplomatStr,
-            minus_sign_prefix: &DiplomatStr,
-            minus_sign_suffix: &DiplomatStr,
-            decimal_separator: &DiplomatStr,
-            grouping_separator: &DiplomatStr,
-            primary_group_size: u8,
-            secondary_group_size: u8,
-            min_group_size: u8,
-            digits: &[DiplomatChar],
-            grouping_strategy: Option<DecimalGroupingStrategy>,
-        ) -> Result<Box<DecimalFormatter>, DataError> {
-            use core::cell::RefCell;
-            use icu_provider::prelude::*;
-            use zerovec::VarZeroCow;
-
-            fn str_to_cow(s: &'_ diplomat_runtime::DiplomatStr) -> VarZeroCow<'_, str> {
-                if let Ok(s) = core::str::from_utf8(s) {
-                    VarZeroCow::new_borrowed(s)
-                } else {
-                    VarZeroCow::new_owned(
-                        alloc::string::String::from_utf8_lossy(s)
-                            .into_owned()
-                            .into_boxed_str(),
-                    )
-                }
-            }
-
-            use icu_decimal::provider::{
-                DecimalDigitsV1, DecimalSymbolStrsBuilder, DecimalSymbols, DecimalSymbolsV2,
-                GroupingSizes,
-            };
-            let mut new_digits = ['\0'; 10];
-            for (old, new) in digits
-                .iter()
-                .copied()
-                .chain(core::iter::repeat(char::REPLACEMENT_CHARACTER as u32))
-                .zip(new_digits.iter_mut())
-            {
-                *new = char::from_u32(old).unwrap_or(char::REPLACEMENT_CHARACTER);
-            }
-            let digits = new_digits;
-            let strings = DecimalSymbolStrsBuilder {
-                plus_sign_prefix: str_to_cow(plus_sign_prefix),
-                plus_sign_suffix: str_to_cow(plus_sign_suffix),
-                minus_sign_prefix: str_to_cow(minus_sign_prefix),
-                minus_sign_suffix: str_to_cow(minus_sign_suffix),
-                decimal_separator: str_to_cow(decimal_separator),
-                grouping_separator: str_to_cow(grouping_separator),
-                numsys: "zyyy".into(),
-            };
-
-            let grouping_sizes = GroupingSizes {
-                primary: primary_group_size,
-                secondary: secondary_group_size,
-                min_grouping: min_group_size,
-            };
-
-            let mut options = DecimalFormatterOptions::default();
-            options.grouping_strategy = grouping_strategy.map(Into::into);
-
-            struct Provider(RefCell<Option<DecimalSymbols<'static>>>, [char; 10]);
-            impl DataProvider<DecimalSymbolsV2> for Provider {
-                fn load(
-                    &self,
-                    _req: icu_provider::DataRequest,
-                ) -> Result<icu_provider::DataResponse<DecimalSymbolsV2>, icu_provider::DataError>
-                {
-                    Ok(DataResponse {
-                        metadata: Default::default(),
-                        payload: DataPayload::from_owned(
-                            self.0
-                                .borrow_mut()
-                                .take()
-                                // We only have one payload
-                                .ok_or(DataErrorKind::Custom.into_error())?,
-                        ),
-                    })
-                }
-            }
-            impl DataProvider<DecimalDigitsV1> for Provider {
-                fn load(
-                    &self,
-                    _req: icu_provider::DataRequest,
-                ) -> Result<icu_provider::DataResponse<DecimalDigitsV1>, icu_provider::DataError>
-                {
-                    Ok(DataResponse {
-                        metadata: Default::default(),
-                        payload: DataPayload::from_owned(self.1),
-                    })
-                }
-            }
-            let provider = Provider(
-                RefCell::new(Some(DecimalSymbols {
-                    strings: VarZeroCow::from_encodeable(&strings),
-                    grouping_sizes,
-                })),
-                digits,
-            );
-            Ok(Box::new(DecimalFormatter(
-                icu_decimal::DecimalFormatter::try_new_unstable(
-                    &provider,
-                    Default::default(),
-                    options,
-                )?,
-            )))
-        }
-
-        /// Formats a [`Decimal`] to a string.
-        #[diplomat::rust_link(icu::decimal::DecimalFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::decimal::DecimalFormatter::format_to_string, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::decimal::FormattedDecimal, Struct, hidden)]
-        #[diplomat::rust_link(icu::decimal::FormattedDecimal::write_to, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::decimal::FormattedDecimal::to_string, FnInStruct, hidden)]
-        pub fn format(&self, value: &Decimal, write: &mut diplomat_runtime::DiplomatWrite) {
-            let _infallible = self.0.format(&value.0).write_to(write);
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/displaynames.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/displaynames.rs
deleted file mode 100644
index 4cc3bfc0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/displaynames.rs
+++ /dev/null
@@ -1,194 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DataError;
-    use crate::errors::ffi::LocaleParseError;
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use diplomat_runtime::DiplomatOption;
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::displaynames::LocaleDisplayNamesFormatter, Struct)]
-    pub struct LocaleDisplayNamesFormatter(
-        pub icu_experimental::displaynames::LocaleDisplayNamesFormatter,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::displaynames::RegionDisplayNames, Struct)]
-    pub struct RegionDisplayNames(pub icu_experimental::displaynames::RegionDisplayNames);
-
-    #[diplomat::rust_link(icu::displaynames::options::DisplayNamesOptions, Struct)]
-    #[diplomat::attr(supports = non_exhaustive_structs, rename = "DisplayNamesOptions")]
-    pub struct DisplayNamesOptionsV1 {
-        /// The optional formatting style to use for display name.
-        pub style: DiplomatOption<DisplayNamesStyle>,
-        /// The fallback return when the system does not have the
-        /// requested display name, defaults to "code".
-        pub fallback: DiplomatOption<DisplayNamesFallback>,
-        /// The language display kind, defaults to "dialect".
-        pub language_display: DiplomatOption<LanguageDisplay>,
-    }
-
-    #[diplomat::rust_link(icu::displaynames::options::Style, Enum)]
-    #[diplomat::enum_convert(icu_experimental::displaynames::Style, needs_wildcard)]
-    pub enum DisplayNamesStyle {
-        Narrow,
-        Short,
-        Long,
-        Menu,
-    }
-
-    #[diplomat::rust_link(icu::displaynames::options::Fallback, Enum)]
-    #[diplomat::enum_convert(icu_experimental::displaynames::Fallback, needs_wildcard)]
-    pub enum DisplayNamesFallback {
-        Code,
-        None,
-    }
-
-    #[diplomat::rust_link(icu::displaynames::options::LanguageDisplay, Enum)]
-    #[diplomat::enum_convert(icu_experimental::displaynames::LanguageDisplay, needs_wildcard)]
-    pub enum LanguageDisplay {
-        Dialect,
-        Standard,
-    }
-
-    impl LocaleDisplayNamesFormatter {
-        /// Creates a new `LocaleDisplayNamesFormatter` from locale data and an options bag using compiled data.
-        #[diplomat::rust_link(icu::displaynames::LocaleDisplayNamesFormatter::try_new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = non_exhaustive_structs), constructor)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, not(supports = non_exhaustive_structs)), named_constructor = "v1")]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_v1(
-            locale: &Locale,
-            options: DisplayNamesOptionsV1,
-        ) -> Result<Box<LocaleDisplayNamesFormatter>, DataError> {
-            let prefs = (&locale.0).into();
-            let options = icu_experimental::displaynames::DisplayNamesOptions::from(options);
-
-            Ok(Box::new(LocaleDisplayNamesFormatter(
-                icu_experimental::displaynames::LocaleDisplayNamesFormatter::try_new(
-                    prefs, options,
-                )?,
-            )))
-        }
-
-        /// Creates a new `LocaleDisplayNamesFormatter` from locale data and an options bag using a particular data source.
-        #[diplomat::rust_link(icu::displaynames::LocaleDisplayNamesFormatter::try_new, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create_with_provider")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, supports = non_exhaustive_structs), named_constructor = "with_provider")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, not(supports = non_exhaustive_structs)), named_constructor = "v1_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_v1_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            options: DisplayNamesOptionsV1,
-        ) -> Result<Box<LocaleDisplayNamesFormatter>, DataError> {
-            let prefs = (&locale.0).into();
-            let options = icu_experimental::displaynames::DisplayNamesOptions::from(options);
-
-            Ok(Box::new(LocaleDisplayNamesFormatter(
-                icu_experimental::displaynames::LocaleDisplayNamesFormatter::try_new_with_buffer_provider(provider.get()?, prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Returns the locale-specific display name of a locale.
-        #[diplomat::rust_link(icu::displaynames::LocaleDisplayNamesFormatter::of, FnInStruct)]
-        // Experimental, do not generate in demo:
-        #[diplomat::attr(demo_gen, disable)]
-        pub fn of(&self, locale: &Locale, write: &mut DiplomatWrite) {
-            let _infallible = self.0.of(&locale.0).write_to(write);
-        }
-    }
-
-    impl RegionDisplayNames {
-        /// Creates a new `RegionDisplayNames` from locale data and an options bag using compiled data.
-        #[diplomat::rust_link(icu::displaynames::RegionDisplayNames::try_new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = non_exhaustive_structs), constructor)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, not(supports = non_exhaustive_structs)), named_constructor = "v1")]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_v1(
-            locale: &Locale,
-            options: DisplayNamesOptionsV1,
-        ) -> Result<Box<RegionDisplayNames>, DataError> {
-            let prefs = (&locale.0).into();
-            let options = icu_experimental::displaynames::DisplayNamesOptions::from(options);
-            Ok(Box::new(RegionDisplayNames(
-                icu_experimental::displaynames::RegionDisplayNames::try_new(prefs, options)?,
-            )))
-        }
-
-        /// Creates a new `RegionDisplayNames` from locale data and an options bag using a particular data source.
-        #[diplomat::rust_link(icu::displaynames::RegionDisplayNames::try_new, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "create_with_provider")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, supports = non_exhaustive_structs), named_constructor = "with_provider")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors, not(supports = non_exhaustive_structs)), named_constructor = "v1_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_v1_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            options: DisplayNamesOptionsV1,
-        ) -> Result<Box<RegionDisplayNames>, DataError> {
-            let prefs = (&locale.0).into();
-            let options = icu_experimental::displaynames::DisplayNamesOptions::from(options);
-            Ok(Box::new(RegionDisplayNames(
-                icu_experimental::displaynames::RegionDisplayNames::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Returns the locale specific display name of a region.
-        /// Note that the function returns an empty string in case the display name for a given
-        /// region code is not found.
-        #[diplomat::rust_link(icu::displaynames::RegionDisplayNames::of, FnInStruct)]
-        // Experimental, do not generate in demo:
-        #[diplomat::attr(demo_gen, disable)]
-        pub fn of(
-            &self,
-            region: &DiplomatStr,
-            write: &mut DiplomatWrite,
-        ) -> Result<(), LocaleParseError> {
-            let _infallible = self
-                .0
-                .of(icu_locale_core::subtags::Region::try_from_utf8(region)?)
-                .unwrap_or("")
-                .write_to(write);
-            Ok(())
-        }
-    }
-}
-
-impl From<ffi::DisplayNamesOptionsV1> for icu_experimental::displaynames::DisplayNamesOptions {
-    fn from(
-        other: ffi::DisplayNamesOptionsV1,
-    ) -> icu_experimental::displaynames::DisplayNamesOptions {
-        let mut options = icu_experimental::displaynames::DisplayNamesOptions::default();
-        options.style = other.style.into_converted_option();
-        options.fallback = other
-            .fallback
-            .into_converted_option()
-            .unwrap_or(options.fallback);
-        options.language_display = other
-            .language_display
-            .into_converted_option()
-            .unwrap_or(options.language_display);
-        options
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/errors.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/errors.rs
deleted file mode 100644
index 4e1fd98..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/errors.rs
+++ /dev/null
@@ -1,307 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use ffi::*;
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    #[cfg(feature = "datetime")]
-    use diplomat_runtime::DiplomatOption;
-
-    #[cfg(feature = "datetime")]
-    use crate::calendar::ffi::AnyCalendarKind;
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::provider::DataError, Struct, compact)]
-    #[diplomat::rust_link(icu::provider::DataErrorKind, Enum, compact)]
-    pub enum DataError {
-        Unknown = 0x00,
-        MarkerNotFound = 0x01,
-        IdentifierNotFound = 0x02,
-        InvalidRequest = 0x03,
-        InconsistentData = 0x04,
-        Downcast = 0x05,
-        Deserialize = 0x06,
-        Custom = 0x07,
-        Io = 0x08,
-    }
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::locale::ParseError, Enum, compact)]
-    pub enum LocaleParseError {
-        Unknown = 0x00,
-        Language = 0x01,
-        Subtag = 0x02,
-        Extension = 0x03,
-    }
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(fixed_decimal::ParseError, Enum, compact)]
-    #[cfg(any(feature = "decimal", feature = "plurals"))]
-    pub enum FixedDecimalParseError {
-        Unknown = 0x00,
-        Limit = 0x01,
-        Syntax = 0x02,
-    }
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[diplomat::rust_link(fixed_decimal::LimitError, Struct, compact)]
-    #[cfg(feature = "decimal")]
-    pub struct FixedDecimalLimitError;
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::calendar::RangeError, Struct, compact)]
-    #[diplomat::rust_link(icu::calendar::DateError, Enum, compact)]
-    #[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-    pub enum CalendarError {
-        Unknown = 0x00,
-        OutOfRange = 0x01,
-        UnknownEra = 0x02,
-        UnknownMonthCode = 0x03,
-    }
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::calendar::ParseError, Enum, compact)]
-    #[diplomat::rust_link(icu::time::ParseError, Enum, compact)]
-    #[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-    pub enum CalendarParseError {
-        Unknown = 0x00,
-        InvalidSyntax = 0x01,
-        OutOfRange = 0x02,
-        MissingFields = 0x03,
-        UnknownCalendar = 0x04,
-    }
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[diplomat::rust_link(icu::time::zone::InvalidOffsetError, Struct, compact)]
-    #[cfg(any(feature = "datetime", feature = "timezone"))]
-    pub struct TimeZoneInvalidOffsetError;
-
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::datetime::DateTimeFormatterLoadError, Enum, compact)]
-    #[diplomat::rust_link(icu::datetime::pattern::PatternLoadError, Enum, compact)]
-    #[diplomat::rust_link(icu::provider::DataError, Struct, compact)]
-    #[diplomat::rust_link(icu::provider::DataErrorKind, Enum, compact)]
-    pub enum DateTimeFormatterLoadError {
-        Unknown = 0x00,
-
-        UnsupportedLength = 0x8_03,
-        DuplicateField = 0x8_09,
-        TypeTooSpecific = 0x8_0A,
-
-        DataMarkerNotFound = 0x01,
-        DataIdentifierNotFound = 0x02,
-        DataInvalidRequest = 0x03,
-        DataInconsistentData = 0x04,
-        DataDowncast = 0x05,
-        DataDeserialize = 0x06,
-        DataCustom = 0x07,
-        DataIo = 0x08,
-    }
-
-    #[cfg(feature = "datetime")]
-    #[diplomat::rust_link(icu::datetime::MismatchedCalendarError, Struct)]
-    pub struct DateTimeMismatchedCalendarError {
-        pub this_kind: AnyCalendarKind,
-        pub date_kind: DiplomatOption<AnyCalendarKind>,
-    }
-
-    // TODO: This type is currently never constructed, as all formatters perform lossy formatting.
-    #[derive(Debug, PartialEq, Eq)]
-    #[repr(C)]
-    #[diplomat::rust_link(icu::datetime::DateTimeWriteError, Enum, compact)]
-    pub enum DateTimeFormatError {
-        Unknown = 0x00,
-        MissingInputField = 0x01,
-        ZoneInfoMissingFields = 0x02, // FFI-only error
-        InvalidEra = 0x03,
-        InvalidMonthCode = 0x04,
-        InvalidCyclicYear = 0x05,
-        NamesNotLoaded = 0x10,
-        DecimalFormatterNotLoaded = 0x11,
-        UnsupportedField = 0x12,
-    }
-}
-
-impl From<icu_provider::DataError> for DataError {
-    fn from(e: icu_provider::DataError) -> Self {
-        match e.kind {
-            icu_provider::DataErrorKind::MarkerNotFound => Self::MarkerNotFound,
-            icu_provider::DataErrorKind::IdentifierNotFound => Self::IdentifierNotFound,
-            icu_provider::DataErrorKind::InvalidRequest => Self::InvalidRequest,
-            icu_provider::DataErrorKind::InconsistentData(..) => Self::InconsistentData,
-            icu_provider::DataErrorKind::Downcast(..) => Self::Downcast,
-            icu_provider::DataErrorKind::Deserialize => Self::Deserialize,
-            icu_provider::DataErrorKind::Custom => Self::Custom,
-            #[cfg(all(
-                feature = "provider_fs",
-                not(any(target_arch = "wasm32", target_os = "none"))
-            ))]
-            icu_provider::DataErrorKind::Io(..) => Self::Io,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-impl From<icu_calendar::RangeError> for CalendarError {
-    fn from(_: icu_calendar::RangeError) -> Self {
-        Self::OutOfRange
-    }
-}
-
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-impl From<icu_calendar::DateError> for CalendarError {
-    fn from(e: icu_calendar::DateError) -> Self {
-        match e {
-            icu_calendar::DateError::Range { .. } => Self::OutOfRange,
-            icu_calendar::DateError::UnknownEra(..) => Self::UnknownEra,
-            icu_calendar::DateError::UnknownMonthCode(..) => Self::UnknownMonthCode,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-impl From<icu_calendar::ParseError> for CalendarParseError {
-    fn from(e: icu_calendar::ParseError) -> Self {
-        match e {
-            icu_calendar::ParseError::Syntax(_) => Self::InvalidSyntax,
-            icu_calendar::ParseError::MissingFields => Self::MissingFields,
-            icu_calendar::ParseError::Range(_) => Self::OutOfRange,
-            icu_calendar::ParseError::UnknownCalendar => Self::UnknownCalendar,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-impl From<icu_time::ParseError> for CalendarParseError {
-    fn from(e: icu_time::ParseError) -> Self {
-        match e {
-            icu_time::ParseError::Syntax(_) => Self::InvalidSyntax,
-            icu_time::ParseError::MissingFields => Self::MissingFields,
-            icu_time::ParseError::Range(_) => Self::OutOfRange,
-            icu_time::ParseError::UnknownCalendar => Self::UnknownCalendar,
-            // TODO
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(feature = "datetime")]
-impl From<icu_datetime::DateTimeFormatterLoadError> for DateTimeFormatterLoadError {
-    fn from(e: icu_datetime::DateTimeFormatterLoadError) -> Self {
-        match e {
-            icu_datetime::DateTimeFormatterLoadError::Names(
-                icu_datetime::pattern::PatternLoadError::ConflictingField(_),
-            ) => Self::DuplicateField,
-            icu_datetime::DateTimeFormatterLoadError::Names(
-                icu_datetime::pattern::PatternLoadError::UnsupportedLength(_),
-            ) => Self::UnsupportedLength,
-            icu_datetime::DateTimeFormatterLoadError::Names(
-                icu_datetime::pattern::PatternLoadError::TypeTooSpecific(_),
-            ) => Self::TypeTooSpecific,
-            icu_datetime::DateTimeFormatterLoadError::Names(
-                icu_datetime::pattern::PatternLoadError::Data(data_error, _),
-            ) => data_error.into(),
-            icu_datetime::DateTimeFormatterLoadError::Data(data_error) => data_error.into(),
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(feature = "datetime")]
-impl From<icu_provider::DataError> for DateTimeFormatterLoadError {
-    fn from(e: icu_provider::DataError) -> Self {
-        match e.kind {
-            icu_provider::DataErrorKind::MarkerNotFound => Self::DataMarkerNotFound,
-            icu_provider::DataErrorKind::IdentifierNotFound => Self::DataIdentifierNotFound,
-            icu_provider::DataErrorKind::InvalidRequest => Self::DataInvalidRequest,
-            icu_provider::DataErrorKind::InconsistentData(..) => Self::DataInconsistentData,
-            icu_provider::DataErrorKind::Downcast(..) => Self::DataDowncast,
-            icu_provider::DataErrorKind::Deserialize => Self::DataDeserialize,
-            icu_provider::DataErrorKind::Custom => Self::DataCustom,
-            #[cfg(all(
-                feature = "provider_fs",
-                not(any(target_arch = "wasm32", target_os = "none"))
-            ))]
-            icu_provider::DataErrorKind::Io(..) => Self::DataIo,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(feature = "datetime")]
-impl From<icu_datetime::MismatchedCalendarError> for ffi::DateTimeMismatchedCalendarError {
-    fn from(value: icu_datetime::MismatchedCalendarError) -> Self {
-        Self {
-            this_kind: value.this_kind.into(),
-            date_kind: value.date_kind.map(Into::into).into(),
-        }
-    }
-}
-
-#[cfg(feature = "datetime")]
-impl From<icu_datetime::DateTimeWriteError> for DateTimeFormatError {
-    fn from(value: icu_datetime::DateTimeWriteError) -> Self {
-        match value {
-            icu_datetime::DateTimeWriteError::MissingInputField(..) => Self::MissingInputField,
-            icu_datetime::DateTimeWriteError::InvalidEra(..) => Self::InvalidEra,
-            icu_datetime::DateTimeWriteError::InvalidMonthCode(..) => Self::InvalidMonthCode,
-            icu_datetime::DateTimeWriteError::InvalidCyclicYear { .. } => Self::InvalidCyclicYear,
-            icu_datetime::DateTimeWriteError::NamesNotLoaded(..) => Self::NamesNotLoaded,
-            icu_datetime::DateTimeWriteError::DecimalFormatterNotLoaded => {
-                Self::DecimalFormatterNotLoaded
-            }
-            icu_datetime::DateTimeWriteError::UnsupportedField(..) => Self::UnsupportedField,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(any(feature = "decimal", feature = "plurals"))]
-impl From<fixed_decimal::ParseError> for FixedDecimalParseError {
-    fn from(e: fixed_decimal::ParseError) -> Self {
-        match e {
-            fixed_decimal::ParseError::Limit => Self::Limit,
-            fixed_decimal::ParseError::Syntax => Self::Syntax,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(feature = "decimal")]
-impl From<fixed_decimal::LimitError> for FixedDecimalLimitError {
-    fn from(_: fixed_decimal::LimitError) -> Self {
-        Self
-    }
-}
-
-impl From<icu_locale_core::ParseError> for LocaleParseError {
-    fn from(e: icu_locale_core::ParseError) -> Self {
-        match e {
-            icu_locale_core::ParseError::InvalidLanguage => Self::Language,
-            icu_locale_core::ParseError::InvalidSubtag => Self::Subtag,
-            icu_locale_core::ParseError::InvalidExtension => Self::Extension,
-            icu_locale_core::ParseError::DuplicatedExtension => Self::Extension,
-            _ => Self::Unknown,
-        }
-    }
-}
-
-#[cfg(any(feature = "timezone", feature = "datetime"))]
-impl From<icu_time::zone::InvalidOffsetError> for TimeZoneInvalidOffsetError {
-    fn from(_: icu_time::zone::InvalidOffsetError) -> Self {
-        Self
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/exemplar_chars.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/exemplar_chars.rs
deleted file mode 100644
index 5ebaf9e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/exemplar_chars.rs
+++ /dev/null
@@ -1,248 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-
-    #[diplomat::opaque]
-    /// A set of "exemplar characters" for a given locale.
-    #[diplomat::rust_link(icu::locale, Mod)]
-    #[diplomat::rust_link(icu::locale::exemplar_chars::ExemplarCharacters, Struct)]
-    #[diplomat::rust_link(icu::locale::exemplar_chars::ExemplarCharactersBorrowed, Struct)]
-    pub struct ExemplarCharacters(pub icu_locale::exemplar_chars::ExemplarCharacters);
-
-    impl ExemplarCharacters {
-        /// Checks whether the string is in the set.
-        #[diplomat::rust_link(
-            icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList::contains_str,
-            FnInStruct
-        )]
-        #[diplomat::attr(supports = method_overloading, rename = "contains")]
-        pub fn contains_str(&self, s: &DiplomatStr) -> bool {
-            let Ok(s) = core::str::from_utf8(s) else {
-                return false;
-            };
-            self.0.as_borrowed().contains_str(s)
-        }
-        /// Checks whether the code point is in the set.
-        #[diplomat::rust_link(
-            icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList::contains,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList::contains32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn contains(&self, cp: DiplomatChar) -> bool {
-            self.0.as_borrowed().contains32(cp)
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "main" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_main,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharactersBorrowed::try_new_main,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "main")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_main(locale: &Locale) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_main(&locale)?
-                    .static_to_owned(),
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "main" set of exemplar characters for a given locale, using a particular data source
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_main,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "main_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_main_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_main_unstable(
-                    &provider.get_unstable()?,
-                    &locale,
-                )?,
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "auxiliary" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_auxiliary,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharactersBorrowed::try_new_auxiliary,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "auxiliary")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_auxiliary(locale: &Locale) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_auxiliary(&locale)?
-                    .static_to_owned(),
-            )))
-        }
-        /// Create an [`ExemplarCharacters`] for the "auxiliary" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_auxiliary,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "auxiliary_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_auxiliary_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_auxiliary_unstable(
-                    &provider.get_unstable()?,
-                    &locale,
-                )?,
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "punctuation" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_punctuation,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharactersBorrowed::try_new_punctuation,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "punctuation")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_punctuation(locale: &Locale) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_punctuation(&locale)?
-                    .static_to_owned(),
-            )))
-        }
-        /// Create an [`ExemplarCharacters`] for the "punctuation" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_punctuation,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "punctuation_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_punctuation_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_punctuation_unstable(
-                    &provider.get_unstable()?,
-                    &locale,
-                )?,
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "numbers" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_numbers,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharactersBorrowed::try_new_numbers,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "numbers")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_numbers(locale: &Locale) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_numbers(&locale)?
-                    .static_to_owned(),
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "numbers" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_numbers,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "numbers_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_numbers_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_numbers_unstable(
-                    &provider.get_unstable()?,
-                    &locale,
-                )?,
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "index" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_index,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharactersBorrowed::try_new_index,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "index")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_index(locale: &Locale) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_index(&locale)?
-                    .static_to_owned(),
-            )))
-        }
-
-        /// Create an [`ExemplarCharacters`] for the "index" set of exemplar characters for a given locale, using compiled data.
-        #[diplomat::rust_link(
-            icu::locale::exemplar_chars::ExemplarCharacters::try_new_index,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "index_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_index_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<ExemplarCharacters>, DataError> {
-            let locale = locale.to_datalocale();
-            Ok(Box::new(ExemplarCharacters(
-                icu_locale::exemplar_chars::ExemplarCharacters::try_new_index_unstable(
-                    &provider.get_unstable()?,
-                    &locale,
-                )?,
-            )))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fallbacker.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fallbacker.rs
deleted file mode 100644
index aa90cd8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fallbacker.rs
+++ /dev/null
@@ -1,174 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    /// An object that runs the ICU4X locale fallback algorithm.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker, Struct)]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbackerBorrowed, Struct, hidden)]
-    pub struct LocaleFallbacker(pub icu_locale::LocaleFallbacker);
-
-    /// Priority mode for the ICU4X fallback algorithm.
-    #[diplomat::enum_convert(icu_locale::fallback::LocaleFallbackPriority, needs_wildcard)]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbackPriority, Enum)]
-    #[diplomat::rust_link(
-        icu::locale::fallback::LocaleFallbackPriority::default,
-        FnInEnum,
-        hidden
-    )]
-    pub enum LocaleFallbackPriority {
-        Language = 0,
-        Region = 1,
-    }
-
-    /// Collection of configurations for the ICU4X fallback algorithm.
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbackConfig, Struct)]
-    #[diplomat::rust_link(
-        icu::locale::fallback::LocaleFallbackConfig::default,
-        FnInStruct,
-        hidden
-    )]
-    pub struct LocaleFallbackConfig {
-        /// Choice of priority mode.
-        pub priority: LocaleFallbackPriority,
-    }
-
-    /// An object that runs the ICU4X locale fallback algorithm with specific configurations.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker, Struct)]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbackerWithConfig, Struct)]
-    pub struct LocaleFallbackerWithConfig<'a>(
-        pub icu_locale::fallback::LocaleFallbackerWithConfig<'a>,
-    );
-
-    /// An iterator over the locale under fallback.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::locale::fallback::LocaleFallbackIterator, Struct)]
-    pub struct LocaleFallbackIterator<'a>(pub icu_locale::fallback::LocaleFallbackIterator<'a>);
-
-    impl LocaleFallbacker {
-        /// Creates a new `LocaleFallbacker` from compiled data.
-        #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackerBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<LocaleFallbacker> {
-            Box::new(LocaleFallbacker(
-                icu_locale::LocaleFallbacker::new().static_to_owned(),
-            ))
-        }
-
-        /// Creates a new `LocaleFallbacker` from a data provider.
-        #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackerBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleFallbacker>, DataError> {
-            Ok(Box::new(LocaleFallbacker(
-                icu_locale::LocaleFallbacker::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-
-        /// Creates a new `LocaleFallbacker` without data for limited functionality.
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbacker::new_without_data,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn without_data() -> Box<LocaleFallbacker> {
-            Box::new(LocaleFallbacker(
-                icu_locale::LocaleFallbacker::new_without_data(),
-            ))
-        }
-
-        /// Associates this `LocaleFallbacker` with configuration options.
-        #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker::for_config, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackerBorrowed::for_config,
-            FnInStruct,
-            hidden
-        )]
-        pub fn for_config<'a>(
-            &'a self,
-            config: LocaleFallbackConfig,
-        ) -> Box<LocaleFallbackerWithConfig<'a>> {
-            Box::new(LocaleFallbackerWithConfig(self.0.for_config({
-                let mut c = icu_locale::fallback::LocaleFallbackConfig::default();
-                c.priority = config.priority.into();
-                c
-            })))
-        }
-    }
-
-    impl<'a> LocaleFallbackerWithConfig<'a> {
-        /// Creates an iterator from a locale with each step of fallback.
-        #[diplomat::rust_link(icu::locale::fallback::LocaleFallbacker::fallback_for, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackerBorrowed::fallback_for,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackerWithConfig::fallback_for,
-            FnInStruct,
-            hidden
-        )]
-        pub fn fallback_for_locale<'b: 'a, 'temp>(
-            &'b self,
-            locale: &'temp Locale,
-        ) -> Box<LocaleFallbackIterator<'a>> {
-            Box::new(LocaleFallbackIterator(
-                self.0.fallback_for((&locale.0).into()),
-            ))
-        }
-    }
-
-    impl<'a> LocaleFallbackIterator<'a> {
-        #[diplomat::attr(auto, iterator)]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackIterator::get,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackIterator::step,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::locale::fallback::LocaleFallbackIterator::take,
-            FnInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> Option<Box<Locale>> {
-            let current = self.0.get();
-            if current.is_default() {
-                None
-            } else {
-                let current = *current;
-                self.0.step();
-                Some(Box::new(Locale(current.into_locale())))
-            }
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fixed_decimal.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fixed_decimal.rs
deleted file mode 100644
index 52e34c2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fixed_decimal.rs
+++ /dev/null
@@ -1,403 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use ffi::FixedDecimalSignedRoundingMode;
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::errors::ffi::{FixedDecimalLimitError, FixedDecimalParseError};
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(fixed_decimal::FixedDecimal, Struct)]
-    #[diplomat::rust_link(fixed_decimal::Decimal, Typedef, hidden)]
-    pub struct Decimal(pub fixed_decimal::Decimal);
-
-    /// The sign of a FixedDecimal, as shown in formatting.
-    #[diplomat::rust_link(fixed_decimal::Sign, Enum)]
-    #[diplomat::enum_convert(fixed_decimal::Sign, needs_wildcard)]
-    pub enum FixedDecimalSign {
-        /// No sign (implicitly positive, e.g., 1729).
-        None,
-        /// A negative sign, e.g., -1729.
-        Negative,
-        /// An explicit positive sign, e.g., +1729.
-        Positive,
-    }
-
-    /// ECMA-402 compatible sign display preference.
-    #[diplomat::rust_link(fixed_decimal::SignDisplay, Enum)]
-    #[diplomat::enum_convert(fixed_decimal::SignDisplay, needs_wildcard)]
-    pub enum FixedDecimalSignDisplay {
-        Auto,
-        Never,
-        Always,
-        ExceptZero,
-        Negative,
-    }
-
-    /// Increment used in a rounding operation.
-    #[diplomat::rust_link(fixed_decimal::RoundingIncrement, Enum)]
-    #[diplomat::enum_convert(fixed_decimal::RoundingIncrement, needs_wildcard)]
-    pub enum FixedDecimalRoundingIncrement {
-        MultiplesOf1,
-        MultiplesOf2,
-        MultiplesOf5,
-        MultiplesOf25,
-    }
-
-    /// Mode used in a rounding operation for signed numbers.
-    #[diplomat::rust_link(fixed_decimal::SignedRoundingMode, Enum)]
-    pub enum FixedDecimalSignedRoundingMode {
-        Expand,
-        Trunc,
-        HalfExpand,
-        HalfTrunc,
-        HalfEven,
-        Ceil,
-        Floor,
-        HalfCeil,
-        HalfFloor,
-    }
-
-    impl Decimal {
-        /// Construct an [`Decimal`] from an integer.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal, Struct)]
-        #[diplomat::attr(dart, disable)]
-        #[diplomat::attr(js, rename = "from_number")]
-        #[diplomat::attr(supports = method_overloading, rename = "from")]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_int32(v: i32) -> Box<Decimal> {
-            Box::new(Decimal(fixed_decimal::Decimal::from(v)))
-        }
-
-        /// Construct an [`Decimal`] from an integer.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal, Struct)]
-        #[diplomat::attr(dart, disable)]
-        #[diplomat::attr(js, disable)]
-        #[diplomat::attr(supports = method_overloading, rename = "from")]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_uint32(v: u32) -> Box<Decimal> {
-            Box::new(Decimal(fixed_decimal::Decimal::from(v)))
-        }
-
-        /// Construct an [`Decimal`] from an integer.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal, Struct)]
-        #[diplomat::attr(dart, rename = "from_int")]
-        #[diplomat::attr(js, rename = "from_big_int")]
-        #[diplomat::attr(supports = method_overloading, rename = "from")]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_int64(v: i64) -> Box<Decimal> {
-            Box::new(Decimal(fixed_decimal::Decimal::from(v)))
-        }
-
-        /// Construct an [`Decimal`] from an integer.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal, Struct)]
-        #[diplomat::attr(any(dart, js), disable)]
-        #[diplomat::attr(supports = method_overloading, rename = "from")]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_uint64(v: u64) -> Box<Decimal> {
-            Box::new(Decimal(fixed_decimal::Decimal::from(v)))
-        }
-
-        /// Construct an [`Decimal`] from an integer-valued float
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::try_from_f64, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FloatPrecision, Enum)]
-        #[diplomat::rust_link(fixed_decimal::DoublePrecision, Enum, hidden)]
-        #[diplomat::attr(any(dart, js), disable)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_double_with_integer_precision(
-            f: f64,
-        ) -> Result<Box<Decimal>, FixedDecimalLimitError> {
-            let precision = fixed_decimal::DoublePrecision::Integer;
-            Ok(Box::new(Decimal(fixed_decimal::Decimal::try_from_f64(
-                f, precision,
-            )?)))
-        }
-
-        /// Construct an [`Decimal`] from an float, with a given power of 10 for the lower magnitude
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::try_from_f64, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FloatPrecision, Enum)]
-        #[diplomat::rust_link(fixed_decimal::DoublePrecision, Enum, hidden)]
-        #[diplomat::attr(js, rename = "from_number_with_lower_magnitude")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        #[diplomat::demo(default_constructor)]
-        pub fn from_double_with_lower_magnitude(
-            f: f64,
-            magnitude: i16,
-        ) -> Result<Box<Decimal>, FixedDecimalLimitError> {
-            let precision = fixed_decimal::DoublePrecision::Magnitude(magnitude);
-            Ok(Box::new(Decimal(fixed_decimal::Decimal::try_from_f64(
-                f, precision,
-            )?)))
-        }
-
-        /// Construct an [`Decimal`] from an float, for a given number of significant digits
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::try_from_f64, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FloatPrecision, Enum)]
-        #[diplomat::rust_link(fixed_decimal::DoublePrecision, Enum, hidden)]
-        #[diplomat::attr(js, rename = "from_number_with_significant_digits")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_double_with_significant_digits(
-            f: f64,
-            digits: u8,
-        ) -> Result<Box<Decimal>, FixedDecimalLimitError> {
-            let precision = fixed_decimal::DoublePrecision::SignificantDigits(digits);
-            Ok(Box::new(Decimal(fixed_decimal::Decimal::try_from_f64(
-                f, precision,
-            )?)))
-        }
-
-        /// Construct an [`Decimal`] from an float, with enough digits to recover
-        /// the original floating point in IEEE 754 without needing trailing zeros
-        #[diplomat::rust_link(fixed_decimal::Decimal::try_from_f64, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FloatPrecision, Enum)]
-        #[diplomat::rust_link(fixed_decimal::DoublePrecision, Enum, hidden)]
-        #[diplomat::attr(js, rename = "from_number_with_round_trip_precision")]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_double_with_round_trip_precision(
-            f: f64,
-        ) -> Result<Box<Decimal>, FixedDecimalLimitError> {
-            let precision = fixed_decimal::DoublePrecision::RoundTrip;
-            Ok(Box::new(Decimal(fixed_decimal::Decimal::try_from_f64(
-                f, precision,
-            )?)))
-        }
-
-        /// Construct an [`Decimal`] from a string.
-        #[diplomat::rust_link(fixed_decimal::Decimal::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(v: &DiplomatStr) -> Result<Box<Decimal>, FixedDecimalParseError> {
-            Ok(Box::new(Decimal(fixed_decimal::Decimal::try_from_utf8(v)?)))
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::digit_at, FnInStruct)]
-        pub fn digit_at(&self, magnitude: i16) -> u8 {
-            self.0.absolute.digit_at(magnitude)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::magnitude_range, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn magnitude_start(&self) -> i16 {
-            *self.0.absolute.magnitude_range().start()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::magnitude_range, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn magnitude_end(&self) -> i16 {
-            *self.0.absolute.magnitude_range().end()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::nonzero_magnitude_start, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn nonzero_magnitude_start(&self) -> i16 {
-            self.0.absolute.nonzero_magnitude_start()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::nonzero_magnitude_end, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn nonzero_magnitude_end(&self) -> i16 {
-            self.0.absolute.nonzero_magnitude_end()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::is_zero, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_zero(&self) -> bool {
-            self.0.absolute.is_zero()
-        }
-
-        /// Multiply the [`Decimal`] by a given power of ten.
-        #[diplomat::rust_link(fixed_decimal::Decimal::multiply_pow10, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::multiplied_pow10, FnInStruct, hidden)]
-        pub fn multiply_pow10(&mut self, power: i16) {
-            self.0.multiply_pow10(power)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::sign, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn sign(&self) -> FixedDecimalSign {
-            self.0.sign().into()
-        }
-
-        /// Set the sign of the [`Decimal`].
-        #[diplomat::rust_link(fixed_decimal::Decimal::set_sign, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::with_sign, FnInStruct, hidden)]
-        #[diplomat::attr(auto, setter = "sign")]
-        pub fn set_sign(&mut self, sign: FixedDecimalSign) {
-            self.0.set_sign(sign.into())
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::apply_sign_display, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::with_sign_display, FnInStruct, hidden)]
-        pub fn apply_sign_display(&mut self, sign_display: FixedDecimalSignDisplay) {
-            self.0.apply_sign_display(sign_display.into())
-        }
-
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::trim_start, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::trimmed_start, FnInStruct, hidden)]
-        pub fn trim_start(&mut self) {
-            self.0.absolute.trim_start()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::trim_end, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::trimmed_end, FnInStruct, hidden)]
-        pub fn trim_end(&mut self) {
-            self.0.absolute.trim_end()
-        }
-
-        #[diplomat::rust_link(fixed_decimal::UnsignedDecimal::trim_end_if_integer, FnInStruct)]
-        #[diplomat::rust_link(
-            fixed_decimal::UnsignedDecimal::trimmed_end_if_integer,
-            FnInStruct,
-            hidden
-        )]
-        pub fn trim_end_if_integer(&mut self) {
-            self.0.absolute.trim_end_if_integer()
-        }
-
-        /// Zero-pad the [`Decimal`] on the left to a particular position
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::pad_start, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::padded_start, FnInStruct, hidden)]
-        pub fn pad_start(&mut self, position: i16) {
-            self.0.absolute.pad_start(position)
-        }
-
-        /// Zero-pad the [`Decimal`] on the right to a particular position
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::pad_end, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::padded_end, FnInStruct, hidden)]
-        pub fn pad_end(&mut self, position: i16) {
-            self.0.absolute.pad_end(position)
-        }
-
-        /// Truncate the [`Decimal`] on the left to a particular position, deleting digits if necessary. This is useful for, e.g. abbreviating years
-        /// ("2022" -> "22")
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::set_max_position, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::with_max_position, FnInStruct, hidden)]
-        pub fn set_max_position(&mut self, position: i16) {
-            self.0.absolute.set_max_position(position)
-        }
-
-        /// Round the number at a particular digit position.
-        ///
-        /// This uses half to even rounding, which resolves ties by selecting the nearest
-        /// even integer to the original value.
-        #[diplomat::rust_link(fixed_decimal::Decimal::round, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::rounded, FnInStruct, hidden)]
-        pub fn round(&mut self, position: i16) {
-            self.0.round(position)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::ceil, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::ceiled, FnInStruct, hidden)]
-        pub fn ceil(&mut self, position: i16) {
-            self.0.ceil(position)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::expand, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::expanded, FnInStruct, hidden)]
-        pub fn expand(&mut self, position: i16) {
-            self.0.expand(position)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::floor, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::floored, FnInStruct, hidden)]
-        pub fn floor(&mut self, position: i16) {
-            self.0.floor(position)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::trunc, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::trunced, FnInStruct, hidden)]
-        pub fn trunc(&mut self, position: i16) {
-            self.0.trunc(position)
-        }
-
-        #[diplomat::rust_link(fixed_decimal::Decimal::round_with_mode, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::Decimal::rounded_with_mode, FnInStruct, hidden)]
-        pub fn round_with_mode(&mut self, position: i16, mode: FixedDecimalSignedRoundingMode) {
-            self.0.round_with_mode(position, mode.into())
-        }
-
-        #[diplomat::rust_link(
-            fixed_decimal::FixedDecimal::round_with_mode_and_increment,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            fixed_decimal::FixedDecimal::rounded_with_mode_and_increment,
-            FnInStruct,
-            hidden
-        )]
-        pub fn round_with_mode_and_increment(
-            &mut self,
-            position: i16,
-            mode: FixedDecimalSignedRoundingMode,
-            increment: FixedDecimalRoundingIncrement,
-        ) {
-            self.0
-                .round_with_mode_and_increment(position, mode.into(), increment.into())
-        }
-
-        /// Concatenates `other` to the end of `self`.
-        ///
-        /// If successful, `other` will be set to 0 and a successful status is returned.
-        ///
-        /// If not successful, `other` will be unchanged and an error is returned.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::concatenate_end, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::concatenated_end, FnInStruct, hidden)]
-        pub fn concatenate_end(&mut self, other: &mut Decimal) -> Result<(), ()> {
-            let x = core::mem::take(&mut other.0);
-            self.0.absolute.concatenate_end(x.absolute).map_err(|y| {
-                other.0.absolute = y;
-            })
-        }
-
-        /// Format the [`Decimal`] as a string.
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::write_to, FnInStruct)]
-        #[diplomat::rust_link(fixed_decimal::FixedDecimal::to_string, FnInStruct, hidden)]
-        #[diplomat::attr(auto, stringifier)]
-        pub fn to_string(&self, to: &mut diplomat_runtime::DiplomatWrite) {
-            let _ = self.0.write_to(to);
-        }
-    }
-}
-
-impl From<FixedDecimalSignedRoundingMode> for fixed_decimal::SignedRoundingMode {
-    fn from(mode: FixedDecimalSignedRoundingMode) -> Self {
-        match mode {
-            FixedDecimalSignedRoundingMode::Expand => fixed_decimal::SignedRoundingMode::Unsigned(
-                fixed_decimal::UnsignedRoundingMode::Expand,
-            ),
-            FixedDecimalSignedRoundingMode::Trunc => fixed_decimal::SignedRoundingMode::Unsigned(
-                fixed_decimal::UnsignedRoundingMode::Trunc,
-            ),
-            FixedDecimalSignedRoundingMode::HalfExpand => {
-                fixed_decimal::SignedRoundingMode::Unsigned(
-                    fixed_decimal::UnsignedRoundingMode::HalfExpand,
-                )
-            }
-            FixedDecimalSignedRoundingMode::HalfTrunc => {
-                fixed_decimal::SignedRoundingMode::Unsigned(
-                    fixed_decimal::UnsignedRoundingMode::HalfTrunc,
-                )
-            }
-            FixedDecimalSignedRoundingMode::HalfEven => {
-                fixed_decimal::SignedRoundingMode::Unsigned(
-                    fixed_decimal::UnsignedRoundingMode::HalfEven,
-                )
-            }
-            FixedDecimalSignedRoundingMode::Ceil => fixed_decimal::SignedRoundingMode::Ceil,
-            FixedDecimalSignedRoundingMode::Floor => fixed_decimal::SignedRoundingMode::Floor,
-            FixedDecimalSignedRoundingMode::HalfCeil => fixed_decimal::SignedRoundingMode::HalfCeil,
-            FixedDecimalSignedRoundingMode::HalfFloor => {
-                fixed_decimal::SignedRoundingMode::HalfFloor
-            }
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/iana_parser.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/iana_parser.rs
deleted file mode 100644
index 2901bb6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/iana_parser.rs
+++ /dev/null
@@ -1,208 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use diplomat_runtime::DiplomatStr;
-
-    use crate::timezone::ffi::TimeZone;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    /// A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-    ///
-    /// This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-    /// It also supports normalizing and canonicalizing the IANA strings.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParser, Struct)]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParser::as_borrowed, FnInStruct, hidden)]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParserBorrowed, Struct, hidden)]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParserBorrowed::new, FnInStruct, hidden)]
-    pub struct IanaParser(pub icu_time::zone::iana::IanaParser);
-
-    impl IanaParser {
-        /// Create a new [`IanaParser`] using compiled data
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParser::new, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<IanaParser> {
-            Box::new(IanaParser(
-                icu_time::zone::iana::IanaParser::new().static_to_owned(),
-            ))
-        }
-
-        /// Create a new [`IanaParser`] using a particular data source
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParser::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(provider: &DataProvider) -> Result<Box<IanaParser>, DataError> {
-            Ok(Box::new(IanaParser(
-                icu_time::zone::iana::IanaParser::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserBorrowed::parse, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::zone::iana::IanaParserBorrowed::parse_from_utf8,
-            FnInStruct,
-            hidden
-        )]
-        pub fn parse(&self, value: &DiplomatStr) -> Box<TimeZone> {
-            Box::new(TimeZone(self.0.as_borrowed().parse_from_utf8(value)))
-        }
-
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserBorrowed::iter, FnInStruct)]
-        pub fn iter<'a>(&'a self) -> Box<TimeZoneIterator<'a>> {
-            Box::new(TimeZoneIterator(self.0.as_borrowed().iter()))
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::iana::TimeZoneIter, Struct)]
-    pub struct TimeZoneIterator<'a>(icu_time::zone::iana::TimeZoneIter<'a>);
-
-    impl<'a> TimeZoneIterator<'a> {
-        #[diplomat::attr(auto, iterator)]
-        #[diplomat::rust_link(icu::time::zone::iana::TimeZoneIter::next, FnInStruct)]
-        pub fn next(&mut self) -> Option<Box<TimeZone>> {
-            Some(Box::new(TimeZone(self.0.next()?)))
-        }
-    }
-
-    /// A mapper between IANA time zone identifiers and BCP-47 time zone identifiers.
-    ///
-    /// This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-    /// It also supports normalizing and canonicalizing the IANA strings.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtended, Struct)]
-    #[diplomat::rust_link(
-        icu::time::zone::iana::IanaParserExtended::as_borrowed,
-        FnInStruct,
-        hidden
-    )]
-    #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtendedBorrowed, Struct, hidden)]
-    #[diplomat::rust_link(
-        icu::time::zone::iana::IanaParserExtendedBorrowed::new,
-        FnInStruct,
-        hidden
-    )]
-    pub struct IanaParserExtended(
-        pub icu_time::zone::iana::IanaParserExtended<icu_time::zone::iana::IanaParser>,
-    );
-
-    impl IanaParserExtended {
-        /// Create a new [`IanaParserExtended`] using compiled data
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtended::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::zone::iana::IanaParserExtended::try_new_with_parser,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<IanaParserExtended> {
-            Box::new(IanaParserExtended(
-                icu_time::zone::iana::IanaParserExtended::new().static_to_owned(),
-            ))
-        }
-
-        /// Create a new [`IanaParserExtended`] using a particular data source
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtended::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<IanaParserExtended>, DataError> {
-            Ok(Box::new(IanaParserExtended(
-                icu_time::zone::iana::IanaParserExtended::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtendedBorrowed::parse, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::zone::iana::IanaParserExtendedBorrowed::parse_from_utf8,
-            FnInStruct,
-            hidden
-        )]
-        pub fn parse<'a>(&'a self, value: &DiplomatStr) -> TimeZoneAndCanonicalAndNormalized<'a> {
-            let (time_zone_id, canonical, normalized) = self.0.as_borrowed().parse_from_utf8(value);
-            TimeZoneAndCanonicalAndNormalized {
-                time_zone: Box::new(TimeZone(time_zone_id)),
-                canonical: canonical.into(),
-                normalized: normalized.into(),
-            }
-        }
-
-        #[diplomat::rust_link(icu::time::zone::iana::IanaParserExtendedBorrowed::iter, FnInStruct)]
-        pub fn iter<'a>(&'a self) -> Box<TimeZoneAndCanonicalIterator<'a>> {
-            Box::new(TimeZoneAndCanonicalIterator(self.0.as_borrowed().iter()))
-        }
-
-        #[diplomat::rust_link(
-            icu::time::zone::iana::IanaParserExtendedBorrowed::iter_all,
-            FnInStruct
-        )]
-        pub fn iter_all<'a>(&'a self) -> Box<TimeZoneAndCanonicalAndNormalizedIterator<'a>> {
-            Box::new(TimeZoneAndCanonicalAndNormalizedIterator(
-                self.0.as_borrowed().iter_all(),
-            ))
-        }
-    }
-
-    #[diplomat::out]
-    pub struct TimeZoneAndCanonical<'a> {
-        time_zone: Box<TimeZone>,
-        canonical: DiplomatUtf8StrSlice<'a>,
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::iana::TimeZoneAndCanonicalIter, Struct)]
-    pub struct TimeZoneAndCanonicalIterator<'a>(icu_time::zone::iana::TimeZoneAndCanonicalIter<'a>);
-
-    impl<'a> TimeZoneAndCanonicalIterator<'a> {
-        #[diplomat::attr(auto, iterator)]
-        #[diplomat::rust_link(icu::time::zone::iana::TimeZoneAndCanonicalIter::next, FnInStruct)]
-        pub fn next(&mut self) -> Option<TimeZoneAndCanonical<'a>> {
-            let (time_zone_id, canonical) = self.0.next()?;
-            Some(TimeZoneAndCanonical {
-                time_zone: Box::new(TimeZone(time_zone_id)),
-                canonical: canonical.into(),
-            })
-        }
-    }
-
-    #[diplomat::out]
-    pub struct TimeZoneAndCanonicalAndNormalized<'a> {
-        time_zone: Box<TimeZone>,
-        canonical: DiplomatUtf8StrSlice<'a>,
-        normalized: DiplomatUtf8StrSlice<'a>,
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::iana::TimeZoneAndCanonicalAndNormalizedIter, Struct)]
-    pub struct TimeZoneAndCanonicalAndNormalizedIterator<'a>(
-        icu_time::zone::iana::TimeZoneAndCanonicalAndNormalizedIter<'a>,
-    );
-
-    impl<'a> TimeZoneAndCanonicalAndNormalizedIterator<'a> {
-        #[diplomat::attr(auto, iterator)]
-        #[diplomat::rust_link(
-            icu::time::zone::iana::TimeZoneAndCanonicalAndNormalizedIter::next,
-            FnInStruct
-        )]
-        pub fn next(&mut self) -> Option<TimeZoneAndCanonicalAndNormalized<'a>> {
-            let (time_zone_id, canonical, normalized) = self.0.next()?;
-            Some(TimeZoneAndCanonicalAndNormalized {
-                time_zone: Box::new(TimeZone(time_zone_id)),
-                canonical: canonical.into(),
-                normalized: normalized.into(),
-            })
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/lib.rs
deleted file mode 100644
index 785e849f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/lib.rs
+++ /dev/null
@@ -1,150 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-// https://github.com/unicode-org/icu4x/blob/main/documents/process/boilerplate.md#library-annotations
-#![cfg_attr(not(any(test, feature = "std")), no_std)]
-#![cfg_attr(
-    not(test),
-    deny(
-        clippy::indexing_slicing,
-        clippy::unwrap_used,
-        clippy::expect_used,
-        clippy::panic,
-        // Exhaustiveness and Debug is not required for Diplomat types
-    )
-)]
-// Diplomat limitations
-#![allow(
-    clippy::needless_lifetimes,
-    clippy::result_unit_err,
-    clippy::should_implement_trait
-)]
-
-//! This crate contains the source of truth for the [Diplomat](https://github.com/rust-diplomat/diplomat)-generated
-//! FFI bindings. This generates the C, C++, JavaScript, and TypeScript bindings. This crate also contains the `extern "C"`
-//! FFI for ICU4X.
-//!
-//! While the types in this crate are public, APIs from this crate are *not intended to be used from Rust*
-//! and as such this crate may unpredictably change its Rust API across compatible semver versions. The `extern "C"` APIs exposed
-//! by this crate, while not directly documented, are stable within the same major semver version, as are the bindings exposed under
-//! the `cpp/` and `js/` folders.
-//!
-//! This crate may still be explored for documentation on docs.rs, and there are language-specific docs available as well.
-//! C++, Dart, and TypeScript headers contain inline documentation, which is available pre-rendered: [C++], [TypeScript].
-//!
-//! This crate is `no_std`-compatible. If you wish to use it in `no_std` mode, you must write a wrapper crate that defines an allocator
-//! and a panic hook in order to compile as a C library.
-//!
-//! More information on using ICU4X from C++ can be found in [our tutorial].
-//!
-//! [our tutorial]: https://github.com/unicode-org/icu4x/blob/main/tutorials/cpp.md
-//! [TypeScript]: https://unicode-org.github.io/icu4x/tsdoc
-//! [C++]: https://unicode-org.github.io/icu4x/cppdoc
-
-// Renamed so you can't accidentally use it
-#[cfg(target_arch = "wasm32")]
-extern crate std as rust_std;
-
-#[cfg(all(not(feature = "std"), feature = "looping_panic_handler"))]
-#[panic_handler]
-fn panic(_info: &core::panic::PanicInfo) -> ! {
-    loop {}
-}
-
-extern crate alloc;
-#[cfg(all(not(feature = "std"), feature = "libc_alloc"))]
-extern crate libc_alloc;
-
-// Common modules
-pub mod errors;
-pub mod locale_core;
-#[cfg(feature = "logging")]
-pub mod logging;
-#[macro_use]
-pub mod provider;
-
-// Components
-
-#[cfg(feature = "properties")]
-pub mod bidi;
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-pub mod calendar;
-#[cfg(feature = "casemap")]
-pub mod casemap;
-#[cfg(feature = "collator")]
-pub mod collator;
-#[cfg(feature = "properties")]
-pub mod collections_sets;
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-pub mod date;
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-pub mod datetime;
-#[cfg(feature = "datetime")]
-pub mod datetime_formatter;
-#[cfg(feature = "decimal")]
-pub mod decimal;
-#[cfg(feature = "experimental")]
-pub mod displaynames;
-#[cfg(feature = "locale")]
-pub mod exemplar_chars;
-#[cfg(feature = "locale")]
-pub mod fallbacker;
-#[cfg(feature = "decimal")]
-pub mod fixed_decimal;
-#[cfg(any(feature = "datetime", feature = "timezone"))]
-pub mod iana_parser;
-#[cfg(feature = "list")]
-pub mod list;
-#[cfg(feature = "locale")]
-pub mod locale;
-#[cfg(feature = "locale")]
-pub mod locale_directionality;
-#[cfg(feature = "datetime")]
-pub mod neo_datetime;
-#[cfg(feature = "normalizer")]
-pub mod normalizer;
-#[cfg(feature = "normalizer")]
-pub mod normalizer_properties;
-#[cfg(feature = "plurals")]
-pub mod pluralrules;
-#[cfg(feature = "properties")]
-pub mod properties_bidi;
-#[cfg(feature = "properties")]
-pub mod properties_enums;
-#[cfg(feature = "properties")]
-pub mod properties_iter;
-#[cfg(feature = "properties")]
-pub mod properties_maps;
-#[cfg(feature = "properties")]
-pub mod properties_names;
-#[cfg(feature = "properties")]
-pub mod properties_sets;
-#[cfg(feature = "properties")]
-pub mod properties_unisets;
-#[cfg(feature = "properties")]
-pub mod script;
-#[cfg(feature = "segmenter")]
-pub mod segmenter_grapheme;
-#[cfg(feature = "segmenter")]
-pub mod segmenter_line;
-#[cfg(feature = "segmenter")]
-pub mod segmenter_sentence;
-#[cfg(feature = "segmenter")]
-pub mod segmenter_word;
-#[cfg(any(feature = "datetime", feature = "timezone", feature = "calendar"))]
-pub mod time;
-#[cfg(any(feature = "datetime", feature = "timezone"))]
-pub mod timezone;
-#[cfg(feature = "experimental")]
-pub mod units_converter;
-#[cfg(any(feature = "datetime", feature = "timezone"))]
-pub mod utc_offset;
-#[cfg(feature = "calendar")]
-pub mod week;
-#[cfg(any(feature = "datetime", feature = "timezone"))]
-pub mod windows_parser;
-#[cfg(feature = "datetime")]
-pub mod zoned_datetime;
-#[cfg(feature = "datetime")]
-pub mod zoned_formatter;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/list.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/list.rs
deleted file mode 100644
index 47a11f6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/list.rs
+++ /dev/null
@@ -1,183 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use diplomat_runtime::{DiplomatStr16Slice, DiplomatStrSlice};
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_list::{options::ListFormatterOptions, ListFormatterPreferences};
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-
-    use writeable::Writeable;
-
-    #[diplomat::rust_link(icu::list::options::ListLength, Enum)]
-    #[diplomat::enum_convert(icu_list::options::ListLength, needs_wildcard)]
-    pub enum ListLength {
-        Wide,
-        Short,
-        Narrow,
-    }
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::list::ListFormatter, Struct)]
-    pub struct ListFormatter(pub icu_list::ListFormatter);
-
-    impl ListFormatter {
-        /// Construct a new ListFormatter instance for And patterns from compiled data.
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_and, FnInStruct)]
-        #[diplomat::rust_link(icu::list::options::ListFormatterOptions, Struct, hidden)]
-        #[diplomat::rust_link(
-            icu::list::options::ListFormatterOptions::with_length,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::list::options::ListFormatterOptions::default,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "and_with_length")]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::demo(default_constructor)]
-        pub fn create_and_with_length(
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_and(prefs, options)?,
-            )))
-        }
-
-        /// Construct a new ListFormatter instance for And patterns
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_and, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "and_with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_and_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_and_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Construct a new ListFormatter instance for And patterns from compiled data.
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_or, FnInStruct)]
-        #[diplomat::rust_link(icu::list::options::ListFormatterOptions, Struct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "or_with_length")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_or_with_length(
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_or(prefs, options)?,
-            )))
-        }
-
-        /// Construct a new ListFormatter instance for And patterns
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_or, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "or_with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_or_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_or_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        /// Construct a new ListFormatter instance for And patterns from compiled data.
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_unit, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "unit_with_length")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_unit_with_length(
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_unit(prefs, options)?,
-            )))
-        }
-
-        /// Construct a new ListFormatter instance for And patterns
-        #[diplomat::rust_link(icu::list::ListFormatter::try_new_unit, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "unit_with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_unit_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: ListLength,
-        ) -> Result<Box<ListFormatter>, DataError> {
-            let prefs = ListFormatterPreferences::from(&locale.0);
-            let options = ListFormatterOptions::default().with_length(length.into());
-            Ok(Box::new(ListFormatter(
-                icu_list::ListFormatter::try_new_unit_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-
-        #[diplomat::rust_link(icu::list::ListFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::list::ListFormatter::format_to_string, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::list::FormattedList, Struct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "format")]
-        pub fn format_utf8(&self, list: &[DiplomatStrSlice], write: &mut DiplomatWrite) {
-            let _infallible = self
-                .0
-                .format(
-                    list.iter()
-                        .map(|a| potential_utf::PotentialUtf8::from_bytes(a))
-                        .map(writeable::adapters::LossyWrap),
-                )
-                .write_to(write);
-        }
-
-        #[diplomat::rust_link(icu::list::ListFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::list::ListFormatter::format_to_string, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::list::FormattedList, Struct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "format")]
-        #[diplomat::attr(supports = utf8_strings, rename = "format16")]
-        pub fn format_utf16(&self, list: &[DiplomatStr16Slice], write: &mut DiplomatWrite) {
-            let _infallible = self
-                .0
-                .format(
-                    list.iter()
-                        .map(|a| potential_utf::PotentialUtf16::from_slice(a))
-                        .map(writeable::adapters::LossyWrap),
-                )
-                .write_to(write);
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale.rs
deleted file mode 100644
index bb6f620..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale.rs
+++ /dev/null
@@ -1,140 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::rust_link(icu::locale::TransformResult, Enum)]
-    #[diplomat::enum_convert(icu_locale::TransformResult)]
-    pub enum TransformResult {
-        Modified,
-        Unmodified,
-    }
-
-    /// A locale canonicalizer.
-    #[diplomat::rust_link(icu::locale::LocaleCanonicalizer, Struct)]
-    #[diplomat::opaque]
-    pub struct LocaleCanonicalizer(icu_locale::LocaleCanonicalizer);
-
-    impl LocaleCanonicalizer {
-        /// Create a new [`LocaleCanonicalizer`] using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleCanonicalizer::new_common, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_common() -> Box<LocaleCanonicalizer> {
-            Box::new(LocaleCanonicalizer(
-                icu_locale::LocaleCanonicalizer::new_common(),
-            ))
-        }
-        /// Create a new [`LocaleCanonicalizer`].
-        #[diplomat::rust_link(icu::locale::LocaleCanonicalizer::new_common, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_common_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleCanonicalizer>, DataError> {
-            Ok(Box::new(LocaleCanonicalizer(
-                icu_locale::LocaleCanonicalizer::try_new_common_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        /// Create a new [`LocaleCanonicalizer`] with extended data using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleCanonicalizer::new_extended, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::LocaleCanonicalizer::new_with_expander,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "extended")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_extended() -> Box<LocaleCanonicalizer> {
-            Box::new(LocaleCanonicalizer(
-                icu_locale::LocaleCanonicalizer::new_extended(),
-            ))
-        }
-        /// Create a new [`LocaleCanonicalizer`] with extended data.
-        #[diplomat::rust_link(icu::locale::LocaleCanonicalizer::new_extended, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "extended_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_extended_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleCanonicalizer>, DataError> {
-            Ok(Box::new(LocaleCanonicalizer(
-                icu_locale::LocaleCanonicalizer::try_new_extended_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        #[diplomat::rust_link(icu::locale::LocaleCanonicalizer::canonicalize, FnInStruct)]
-        pub fn canonicalize(&self, locale: &mut Locale) -> TransformResult {
-            self.0.canonicalize(&mut locale.0).into()
-        }
-    }
-
-    /// A locale expander.
-    #[diplomat::rust_link(icu::locale::LocaleExpander, Struct)]
-    #[diplomat::opaque]
-    pub struct LocaleExpander(pub icu_locale::LocaleExpander);
-
-    impl LocaleExpander {
-        /// Create a new [`LocaleExpander`] using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleExpander::new_common, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_common() -> Box<LocaleExpander> {
-            Box::new(LocaleExpander(icu_locale::LocaleExpander::new_common()))
-        }
-        /// Create a new [`LocaleExpander`] using a new_common data source.
-        #[diplomat::rust_link(icu::locale::LocaleExpander::new_common, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_common_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleExpander>, DataError> {
-            Ok(Box::new(LocaleExpander(
-                icu_locale::LocaleExpander::try_new_common_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-        /// Create a new [`LocaleExpander`] with extended data using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleExpander::new_extended, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "extended")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_extended() -> Box<LocaleExpander> {
-            Box::new(LocaleExpander(icu_locale::LocaleExpander::new_extended()))
-        }
-        /// Create a new [`LocaleExpander`] with extended data using a particular data source.
-        #[diplomat::rust_link(icu::locale::LocaleExpander::new_extended, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "extended_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_extended_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleExpander>, DataError> {
-            Ok(Box::new(LocaleExpander(
-                icu_locale::LocaleExpander::try_new_extended_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-        #[diplomat::rust_link(icu::locale::LocaleExpander::maximize, FnInStruct)]
-        pub fn maximize(&self, locale: &mut Locale) -> TransformResult {
-            self.0.maximize(&mut locale.0.id).into()
-        }
-
-        #[diplomat::rust_link(icu::locale::LocaleExpander::minimize, FnInStruct)]
-        pub fn minimize(&self, locale: &mut Locale) -> TransformResult {
-            self.0.minimize(&mut locale.0.id).into()
-        }
-
-        #[diplomat::rust_link(icu::locale::LocaleExpander::minimize_favor_script, FnInStruct)]
-        pub fn minimize_favor_script(&self, locale: &mut Locale) -> TransformResult {
-            self.0.minimize_favor_script(&mut locale.0.id).into()
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_core.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_core.rs
deleted file mode 100644
index 802f791..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_core.rs
+++ /dev/null
@@ -1,193 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::errors::ffi::LocaleParseError;
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    /// An ICU4X Locale, capable of representing strings like `"en-US"`.
-    #[diplomat::rust_link(icu::locale::Locale, Struct)]
-    #[diplomat::rust_link(icu::locale::DataLocale, Struct, hidden)]
-    #[diplomat::rust_link(icu::locale::DataLocale::into_locale, FnInStruct, hidden)]
-    pub struct Locale(pub icu_locale_core::Locale);
-
-    impl Locale {
-        /// Construct an [`Locale`] from an locale identifier.
-        ///
-        /// This will run the complete locale parsing algorithm. If code size and
-        /// performance are critical and the locale is of a known shape (such as
-        /// `aa-BB`) use `create_und`, `set_language`, `set_script`, and `set_region`.
-        #[diplomat::rust_link(icu::locale::Locale::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::Locale::from_str, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::from_str, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::try_from_str, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        #[diplomat::demo(default_constructor)]
-        pub fn from_string(name: &DiplomatStr) -> Result<Box<Locale>, LocaleParseError> {
-            Ok(Box::new(Locale(icu_locale_core::Locale::try_from_utf8(
-                name,
-            )?)))
-        }
-
-        /// Construct a default undefined [`Locale`] "und".
-        #[diplomat::rust_link(icu::locale::Locale::default, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::DataLocale::default, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::is_default, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn und() -> Box<Locale> {
-            Box::new(Locale(icu_locale_core::Locale::default()))
-        }
-
-        /// Clones the [`Locale`].
-        #[diplomat::rust_link(icu::locale::Locale, Struct)]
-        pub fn clone(&self) -> Box<Locale> {
-            Box::new(Locale(self.0.clone()))
-        }
-
-        /// Returns a string representation of the `LanguageIdentifier` part of
-        /// [`Locale`].
-        #[diplomat::rust_link(icu::locale::Locale::id, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn basename(&self, write: &mut diplomat_runtime::DiplomatWrite) {
-            let _infallible = self.0.id.write_to(write);
-        }
-
-        /// Returns a string representation of the unicode extension.
-        #[diplomat::rust_link(icu::locale::Locale::extensions, StructField)]
-        pub fn get_unicode_extension(
-            &self,
-            s: &DiplomatStr,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Option<()> {
-            icu_locale_core::extensions::unicode::Key::try_from_utf8(s)
-                .ok()
-                .and_then(|k| self.0.extensions.unicode.keywords.get(&k))
-                .map(|v| {
-                    let _infallible = v.write_to(write);
-                })
-        }
-
-        /// Returns a string representation of [`Locale`] language.
-        #[diplomat::rust_link(icu::locale::Locale::id, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn language(&self, write: &mut diplomat_runtime::DiplomatWrite) {
-            let _infallible = self.0.id.language.write_to(write);
-        }
-
-        /// Set the language part of the [`Locale`].
-        #[diplomat::rust_link(icu::locale::Locale::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(auto, setter = "language")]
-        pub fn set_language(&mut self, s: &DiplomatStr) -> Result<(), LocaleParseError> {
-            self.0.id.language = if s.is_empty() {
-                icu_locale_core::subtags::Language::UND
-            } else {
-                icu_locale_core::subtags::Language::try_from_utf8(s)?
-            };
-            Ok(())
-        }
-
-        /// Returns a string representation of [`Locale`] region.
-        #[diplomat::rust_link(icu::locale::Locale::id, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn region(&self, write: &mut diplomat_runtime::DiplomatWrite) -> Option<()> {
-            self.0.id.region.map(|region| {
-                let _infallible = region.write_to(write);
-            })
-        }
-
-        /// Set the region part of the [`Locale`].
-        #[diplomat::rust_link(icu::locale::Locale::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = accessors, not(dart)), setter = "region")]
-        pub fn set_region(&mut self, s: &DiplomatStr) -> Result<(), LocaleParseError> {
-            self.0.id.region = if s.is_empty() {
-                None
-            } else {
-                Some(icu_locale_core::subtags::Region::try_from_utf8(s)?)
-            };
-            Ok(())
-        }
-
-        /// Returns a string representation of [`Locale`] script.
-        #[diplomat::rust_link(icu::locale::Locale::id, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn script(&self, write: &mut diplomat_runtime::DiplomatWrite) -> Option<()> {
-            self.0.id.script.map(|script| {
-                let _infallible = script.write_to(write);
-            })
-        }
-
-        /// Set the script part of the [`Locale`]. Pass an empty string to remove the script.
-        #[diplomat::rust_link(icu::locale::Locale::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = accessors, not(dart)), setter = "script")]
-        pub fn set_script(&mut self, s: &DiplomatStr) -> Result<(), LocaleParseError> {
-            self.0.id.script = if s.is_empty() {
-                None
-            } else {
-                Some(icu_locale_core::subtags::Script::try_from_utf8(s)?)
-            };
-            Ok(())
-        }
-
-        /// Normalizes a locale string.
-        #[diplomat::rust_link(icu::locale::Locale::normalize, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::normalize_utf8, FnInStruct, hidden)]
-        pub fn normalize(
-            s: &DiplomatStr,
-            write: &mut DiplomatWrite,
-        ) -> Result<(), LocaleParseError> {
-            let _infallible = icu_locale_core::Locale::normalize_utf8(s)?.write_to(write);
-            Ok(())
-        }
-        /// Returns a string representation of [`Locale`].
-        #[diplomat::rust_link(icu::locale::Locale::write_to, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::Locale::to_string, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::to_string, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::write_to, FnInStruct, hidden)]
-        #[diplomat::attr(auto, stringifier)]
-        pub fn to_string(&self, write: &mut diplomat_runtime::DiplomatWrite) {
-            let _infallible = self.0.write_to(write);
-        }
-
-        #[diplomat::rust_link(icu::locale::Locale::normalizing_eq, FnInStruct)]
-        pub fn normalizing_eq(&self, other: &DiplomatStr) -> bool {
-            if let Ok(other) = core::str::from_utf8(other) {
-                self.0.normalizing_eq(other)
-            } else {
-                // invalid UTF8 won't be allowed in locales anyway
-                false
-            }
-        }
-
-        #[diplomat::rust_link(icu::locale::Locale::strict_cmp, FnInStruct)]
-        pub fn compare_to_string(&self, other: &DiplomatStr) -> core::cmp::Ordering {
-            self.0.strict_cmp(other)
-        }
-
-        #[diplomat::rust_link(icu::locale::Locale::total_cmp, FnInStruct)]
-        #[diplomat::rust_link(icu::locale::DataLocale::strict_cmp, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::locale::DataLocale::total_cmp, FnInStruct, hidden)]
-        #[diplomat::attr(auto, comparison)]
-        pub fn compare_to(&self, other: &Self) -> core::cmp::Ordering {
-            self.0.total_cmp(&other.0)
-        }
-    }
-}
-
-impl ffi::Locale {
-    pub fn to_datalocale(&self) -> icu_provider::DataLocale {
-        (&self.0).into()
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_directionality.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_directionality.rs
deleted file mode 100644
index 5d66299b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_directionality.rs
+++ /dev/null
@@ -1,106 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::errors::ffi::DataError;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-
-    use crate::locale_core::ffi::Locale;
-
-    #[diplomat::rust_link(icu::locale::Direction, Enum)]
-    pub enum LocaleDirection {
-        LeftToRight,
-        RightToLeft,
-        Unknown,
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::locale::LocaleDirectionality, Struct)]
-    pub struct LocaleDirectionality(pub icu_locale::LocaleDirectionality);
-
-    impl LocaleDirectionality {
-        /// Construct a new LocaleDirectionality instance using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::new_common, FnInStruct)]
-        #[diplomat::attr(supports = constructors, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_common() -> Box<LocaleDirectionality> {
-            Box::new(LocaleDirectionality(
-                icu_locale::LocaleDirectionality::new_common(),
-            ))
-        }
-
-        /// Construct a new LocaleDirectionality instance using a particular data source.
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::new_common, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_common_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleDirectionality>, DataError> {
-            Ok(Box::new(LocaleDirectionality(
-                icu_locale::LocaleDirectionality::try_new_common_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        /// Construct a new LocaleDirectionality instance using compiled data.
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::new_extended, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::LocaleDirectionality::new_with_expander,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "extended")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_extended() -> Box<LocaleDirectionality> {
-            Box::new(LocaleDirectionality(
-                icu_locale::LocaleDirectionality::new_extended(),
-            ))
-        }
-
-        /// Construct a new LocaleDirectionality instance using a particular data source.
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::new_extended, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::locale::LocaleDirectionality::new_with_expander,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "extended_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_extended_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<LocaleDirectionality>, DataError> {
-            Ok(Box::new(LocaleDirectionality(
-                icu_locale::LocaleDirectionality::try_new_extended_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::get, FnInStruct)]
-        #[diplomat::attr(auto, indexer)]
-        pub fn get(&self, locale: &Locale) -> LocaleDirection {
-            match self.0.get(&locale.0.id) {
-                Some(icu_locale::Direction::LeftToRight) => LocaleDirection::LeftToRight,
-                Some(icu_locale::Direction::RightToLeft) => LocaleDirection::RightToLeft,
-                _ => LocaleDirection::Unknown,
-            }
-        }
-
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::is_left_to_right, FnInStruct)]
-        pub fn is_left_to_right(&self, locale: &Locale) -> bool {
-            self.0.is_left_to_right(&locale.0.id)
-        }
-
-        #[diplomat::rust_link(icu::locale::LocaleDirectionality::is_right_to_left, FnInStruct)]
-        pub fn is_right_to_left(&self, locale: &Locale) -> bool {
-            self.0.is_right_to_left(&locale.0.id)
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/logging.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/logging.rs
deleted file mode 100644
index 0ca7c4e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/logging.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[diplomat::opaque]
-    /// An object allowing control over the logging used
-    pub struct Logger;
-
-    impl Logger {
-        /// Initialize the logger using `simple_logger`
-        ///
-        /// Requires the `simple_logger` Cargo feature.
-        ///
-        /// Returns `false` if there was already a logger set.
-        #[cfg(all(not(target_arch = "wasm32"), feature = "simple_logger"))]
-        pub fn init_simple_logger() -> bool {
-            simple_logger::init().is_ok()
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/neo_datetime.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/neo_datetime.rs
deleted file mode 100644
index 6f608ff0c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/neo_datetime.rs
+++ /dev/null
@@ -1,1044 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use icu_datetime::options::SubsecondDigits;
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use icu_calendar::Gregorian;
-    use icu_datetime::fieldsets::enums::CompositeDateTimeFieldSet;
-    use writeable::Writeable;
-
-    use crate::{
-        date::ffi::{Date, IsoDate},
-        errors::ffi::DateTimeMismatchedCalendarError,
-        time::ffi::Time,
-    };
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{
-        datetime_formatter::ffi::DateTimeLength, errors::ffi::DateTimeFormatterLoadError,
-        locale_core::ffi::Locale, neo_datetime::map_or_default,
-    };
-
-    #[diplomat::enum_convert(icu_datetime::options::Alignment, needs_wildcard)]
-    #[diplomat::rust_link(icu::datetime::Alignment, Enum)]
-    pub enum DateTimeAlignment {
-        Auto,
-        Column,
-    }
-
-    #[diplomat::enum_convert(icu_datetime::options::YearStyle, needs_wildcard)]
-    #[diplomat::rust_link(icu::datetime::YearStyle, Enum)]
-    pub enum YearStyle {
-        Auto,
-        Full,
-        WithEra,
-    }
-
-    #[diplomat::rust_link(icu::datetime::TimePrecision, Enum)]
-    pub enum TimePrecision {
-        Hour,
-        Minute,
-        MinuteOptional,
-        Second,
-        Subsecond1,
-        Subsecond2,
-        Subsecond3,
-        Subsecond4,
-        Subsecond5,
-        Subsecond6,
-        Subsecond7,
-        Subsecond8,
-        Subsecond9,
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::datetime::DateTimeFormatter, Typedef)]
-    pub struct DateTimeFormatter(pub icu_datetime::DateTimeFormatter<CompositeDateTimeFieldSet>);
-
-    impl DateTimeFormatter {
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_dt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_mdt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_mdt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_year_style, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::hm, FnInStruct, hidden)]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ymdt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_year_style, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ymdt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "det")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_det(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "det_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_det_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdet")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_mdet(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdet_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_mdet_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdet")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_year_style,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ymdet(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdet_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_year_style,
-            FnInStruct,
-            compact
-        )]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ymdet_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "et")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::ET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_et(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::ET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?.cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "et_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::ET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_et_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::ET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime::to_string, FnInStruct, hidden)]
-        pub fn format_iso(
-            &self,
-            date: &IsoDate,
-            time: &Time,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) {
-            let value = icu_time::DateTime {
-                date: date.0,
-                time: time.0,
-            };
-            let _infallible = self.0.format(&value).write_to(write);
-        }
-
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format_same_calendar, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime::to_string, FnInStruct, hidden)]
-        pub fn format_same_calendar(
-            &self,
-            date: &Date,
-            time: &Time,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeMismatchedCalendarError> {
-            let value = icu_time::DateTime {
-                date: date.0.wrap_calendar_in_ref(),
-                time: time.0,
-            };
-            let _infallible = self.0.format_same_calendar(&value)?.write_to(write);
-            Ok(())
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter, Typedef)]
-    pub struct DateTimeFormatterGregorian(
-        pub icu_datetime::FixedCalendarDateTimeFormatter<Gregorian, CompositeDateTimeFieldSet>,
-    );
-
-    impl DateTimeFormatterGregorian {
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DT::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_dt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_mdt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDT::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_mdt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdt")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_year_style, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::hm, FnInStruct, hidden)]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ymdt(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdt_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDT::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDT::with_year_style, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ymdt_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDT::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "det")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_det(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "det_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::DET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::DET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_det_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::DET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdet")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_mdet(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "mdet_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::MDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::MDET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_mdet_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::MDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdet")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_year_style,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ymdet(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ymdet_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::YMDET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::YMDET::with_year_style,
-            FnInStruct,
-            compact
-        )]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ymdet_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-            year_style: Option<YearStyle>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::YMDET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision))
-                .with_year_style(map_or_default(year_style));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "et")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::ET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_alignment, FnInStruct, compact)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::short, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::medium, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::long, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::hm, FnInStruct, hidden)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_et(
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::ET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?
-                    .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "et_with_provider")]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET, Struct)]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_length, FnInStruct, compact)]
-        #[diplomat::rust_link(
-            icu::datetime::fieldsets::ET::with_time_precision,
-            FnInStruct,
-            compact
-        )]
-        #[diplomat::rust_link(icu::datetime::fieldsets::ET::with_alignment, FnInStruct, compact)]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_et_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: Option<DateTimeLength>,
-            time_precision: Option<TimePrecision>,
-            alignment: Option<DateTimeAlignment>,
-        ) -> Result<Box<DateTimeFormatterGregorian>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = icu_datetime::fieldsets::ET::with_length(map_or_default(length))
-                .with_alignment(map_or_default(alignment))
-                .with_time_precision(map_or_default(time_precision));
-            Ok(Box::new(DateTimeFormatterGregorian(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?
-                .cast_into_fset(),
-            )))
-        }
-
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime::to_string, FnInStruct, hidden)]
-        pub fn format_iso(
-            &self,
-            date: &IsoDate,
-            time: &Time,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) {
-            let value = icu_time::DateTime {
-                date: date.0.to_calendar(Gregorian),
-                time: time.0,
-            };
-            let _infallible = self.0.format(&value).write_to(write);
-        }
-    }
-}
-
-impl From<ffi::TimePrecision> for icu_datetime::options::TimePrecision {
-    fn from(time_precision: ffi::TimePrecision) -> Self {
-        use icu_datetime::options::TimePrecision;
-        match time_precision {
-            ffi::TimePrecision::Hour => TimePrecision::Hour,
-            ffi::TimePrecision::Minute => TimePrecision::Minute,
-            ffi::TimePrecision::MinuteOptional => TimePrecision::MinuteOptional,
-            ffi::TimePrecision::Second => TimePrecision::Second,
-            ffi::TimePrecision::Subsecond1 => TimePrecision::Subsecond(SubsecondDigits::S1),
-            ffi::TimePrecision::Subsecond2 => TimePrecision::Subsecond(SubsecondDigits::S2),
-            ffi::TimePrecision::Subsecond3 => TimePrecision::Subsecond(SubsecondDigits::S3),
-            ffi::TimePrecision::Subsecond4 => TimePrecision::Subsecond(SubsecondDigits::S4),
-            ffi::TimePrecision::Subsecond5 => TimePrecision::Subsecond(SubsecondDigits::S5),
-            ffi::TimePrecision::Subsecond6 => TimePrecision::Subsecond(SubsecondDigits::S6),
-            ffi::TimePrecision::Subsecond7 => TimePrecision::Subsecond(SubsecondDigits::S7),
-            ffi::TimePrecision::Subsecond8 => TimePrecision::Subsecond(SubsecondDigits::S8),
-            ffi::TimePrecision::Subsecond9 => TimePrecision::Subsecond(SubsecondDigits::S9),
-        }
-    }
-}
-
-#[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-fn map_or_default<Input, Output>(input: Option<Input>) -> Output
-where
-    Output: From<Input> + Default,
-{
-    input.map(Output::from).unwrap_or_default()
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer.rs
deleted file mode 100644
index b418adac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer.rs
+++ /dev/null
@@ -1,351 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::normalizer::ComposingNormalizer, Struct)]
-    #[diplomat::rust_link(icu::normalizer::ComposingNormalizerBorrowed, Struct, hidden)]
-    pub struct ComposingNormalizer(pub icu_normalizer::ComposingNormalizer);
-
-    impl ComposingNormalizer {
-        /// Construct a new ComposingNormalizer instance for NFC using compiled data.
-        #[diplomat::rust_link(icu::normalizer::ComposingNormalizer::new_nfc, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::new_nfc,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "nfc")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfc() -> Box<ComposingNormalizer> {
-            Box::new(ComposingNormalizer(
-                icu_normalizer::ComposingNormalizer::new_nfc().static_to_owned(),
-            ))
-        }
-        /// Construct a new ComposingNormalizer instance for NFC using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::ComposingNormalizer::new_nfc, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::new_nfc,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfc_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfc_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<ComposingNormalizer>, DataError> {
-            Ok(Box::new(ComposingNormalizer(
-                icu_normalizer::ComposingNormalizer::try_new_nfc_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        /// Construct a new ComposingNormalizer instance for NFKC using compiled data.
-        #[diplomat::rust_link(icu::normalizer::ComposingNormalizer::new_nfkc, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::new_nfkc,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "nfkc")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfkc() -> Box<ComposingNormalizer> {
-            Box::new(ComposingNormalizer(
-                icu_normalizer::ComposingNormalizer::new_nfkc().static_to_owned(),
-            ))
-        }
-        /// Construct a new ComposingNormalizer instance for NFKC using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::ComposingNormalizer::new_nfkc, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::new_nfkc,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkc_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfkc_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<ComposingNormalizer>, DataError> {
-            Ok(Box::new(ComposingNormalizer(
-                icu_normalizer::ComposingNormalizer::try_new_nfkc_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        /// Normalize a string
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::normalize_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::normalize,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::normalize_to,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::normalize_utf8_to,
-            FnInStruct,
-            hidden
-        )]
-        pub fn normalize(&self, s: &DiplomatStr, write: &mut DiplomatWrite) {
-            let _infallible = self.0.as_borrowed().normalize_utf8_to(s, write);
-        }
-
-        /// Check if a string is normalized
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "is_normalized")]
-        pub fn is_normalized_utf8(&self, s: &DiplomatStr) -> bool {
-            self.0.as_borrowed().is_normalized_utf8(s)
-        }
-
-        /// Check if a string is normalized
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized_utf16,
-            FnInStruct
-        )]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "is_normalized")]
-        #[diplomat::attr(supports = utf8_strings, rename = "is_normalized16")]
-        pub fn is_normalized_utf16(&self, s: &DiplomatStr16) -> bool {
-            self.0.as_borrowed().is_normalized_utf16(s)
-        }
-
-        /// Return the index a slice of potentially-invalid UTF-8 is normalized up to
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::split_normalized_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized_utf8_up_to,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::split_normalized,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized_up_to,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "is_normalized_up_to")]
-        pub fn is_normalized_utf8_up_to(&self, s: &DiplomatStr) -> usize {
-            self.0.as_borrowed().split_normalized_utf8(s).0.len()
-        }
-
-        /// Return the index a slice of potentially-invalid UTF-16 is normalized up to
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::split_normalized_utf16,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::ComposingNormalizerBorrowed::is_normalized_utf16_up_to,
-            FnInStruct
-        )]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "is_normalized_up_to")]
-        #[diplomat::attr(supports = utf8_strings, rename = "is_normalized16_up_to")]
-        pub fn is_normalized_utf16_up_to(&self, s: &DiplomatStr16) -> usize {
-            self.0.as_borrowed().split_normalized_utf16(s).0.len()
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::normalizer::DecomposingNormalizer, Struct)]
-    #[diplomat::rust_link(icu::normalizer::DecomposingNormalizerBorrowed, Struct, hidden)]
-    pub struct DecomposingNormalizer(pub icu_normalizer::DecomposingNormalizer);
-
-    impl DecomposingNormalizer {
-        /// Construct a new DecomposingNormalizer instance for NFD using compiled data.
-        #[diplomat::rust_link(icu::normalizer::DecomposingNormalizer::new_nfd, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::new_nfd,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfd")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfd() -> Box<DecomposingNormalizer> {
-            Box::new(DecomposingNormalizer(
-                icu_normalizer::DecomposingNormalizer::new_nfd().static_to_owned(),
-            ))
-        }
-
-        /// Construct a new DecomposingNormalizer instance for NFD using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::DecomposingNormalizer::new_nfd, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::new_nfd,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfd_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfd_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<DecomposingNormalizer>, DataError> {
-            Ok(Box::new(DecomposingNormalizer(
-                icu_normalizer::DecomposingNormalizer::try_new_nfd_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        /// Construct a new DecomposingNormalizer instance for NFKD using compiled data.
-        #[diplomat::rust_link(icu::normalizer::DecomposingNormalizer::new_nfkd, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::new_nfkd,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "nfkd")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfkd() -> Box<DecomposingNormalizer> {
-            Box::new(DecomposingNormalizer(
-                icu_normalizer::DecomposingNormalizer::new_nfkd().static_to_owned(),
-            ))
-        }
-
-        /// Construct a new DecomposingNormalizer instance for NFKD using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::DecomposingNormalizer::new_nfkd, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::new_nfkd,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkd_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfkd_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<DecomposingNormalizer>, DataError> {
-            Ok(Box::new(DecomposingNormalizer(
-                icu_normalizer::DecomposingNormalizer::try_new_nfkd_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        /// Normalize a string
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::normalize_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::normalize,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::normalize_to,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::normalize_utf8_to,
-            FnInStruct,
-            hidden
-        )]
-        pub fn normalize(&self, s: &DiplomatStr, write: &mut DiplomatWrite) {
-            let _infallible = self.0.as_borrowed().normalize_utf8_to(s, write);
-        }
-
-        /// Check if a string is normalized
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized,
-            FnInStruct,
-            hidden
-        )]
-        pub fn is_normalized(&self, s: &DiplomatStr) -> bool {
-            self.0.as_borrowed().is_normalized_utf8(s)
-        }
-
-        /// Check if a string is normalized
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized_utf16,
-            FnInStruct
-        )]
-        pub fn is_normalized_utf16(&self, s: &DiplomatStr16) -> bool {
-            self.0.as_borrowed().is_normalized_utf16(s)
-        }
-
-        /// Return the index a slice of potentially-invalid UTF-8 is normalized up to
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::split_normalized_utf8,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized_utf8_up_to,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::split_normalized,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized_up_to,
-            FnInStruct,
-            hidden
-        )]
-        pub fn is_normalized_up_to(&self, s: &DiplomatStr) -> usize {
-            self.0.as_borrowed().split_normalized_utf8(s).0.len()
-        }
-
-        /// Return the index a slice of potentially-invalid UTF-16 is normalized up to
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::split_normalized_utf16,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::DecomposingNormalizerBorrowed::is_normalized_utf16_up_to,
-            FnInStruct
-        )]
-        pub fn is_normalized_utf16_up_to(&self, s: &DiplomatStr16) -> usize {
-            self.0.as_borrowed().split_normalized_utf16(s).0.len()
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer_properties.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer_properties.rs
deleted file mode 100644
index 2f8decf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer_properties.rs
+++ /dev/null
@@ -1,242 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    /// Lookup of the Canonical_Combining_Class Unicode property
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::normalizer::properties::CanonicalCombiningClassMap, Struct)]
-    #[diplomat::rust_link(
-        icu::normalizer::properties::CanonicalCombiningClassMapBorrowed,
-        Struct,
-        hidden
-    )]
-    pub struct CanonicalCombiningClassMap(
-        pub icu_normalizer::properties::CanonicalCombiningClassMap,
-    );
-
-    impl CanonicalCombiningClassMap {
-        /// Construct a new CanonicalCombiningClassMap instance for NFC using compiled data.
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMap::new,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<CanonicalCombiningClassMap> {
-            Box::new(CanonicalCombiningClassMap(
-                icu_normalizer::properties::CanonicalCombiningClassMap::new().static_to_owned(),
-            ))
-        }
-
-        /// Construct a new CanonicalCombiningClassMap instance for NFC using a particular data source.
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMap::new,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CanonicalCombiningClassMap>, DataError> {
-            Ok(Box::new(CanonicalCombiningClassMap(icu_normalizer::properties::CanonicalCombiningClassMap::try_new_with_buffer_provider(provider.get()?)?)))
-        }
-
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::get,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::get32,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::get32_u8,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCombiningClassMapBorrowed::get_u8,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(
-            icu::properties::properties::CanonicalCombiningClassMapBorrowed,
-            Struct,
-            compact
-        )]
-        #[diplomat::attr(auto, indexer)]
-        pub fn get(&self, ch: DiplomatChar) -> u8 {
-            self.0.as_borrowed().get32_u8(ch)
-        }
-    }
-
-    /// The raw canonical composition operation.
-    ///
-    /// Callers should generally use ComposingNormalizer unless they specifically need raw composition operations
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::normalizer::properties::CanonicalComposition, Struct)]
-    #[diplomat::rust_link(
-        icu::normalizer::properties::CanonicalCompositionBorrowed,
-        Struct,
-        hidden
-    )]
-    pub struct CanonicalComposition(pub icu_normalizer::properties::CanonicalComposition);
-
-    impl CanonicalComposition {
-        /// Construct a new CanonicalComposition instance for NFC using compiled data.
-        #[diplomat::rust_link(icu::normalizer::properties::CanonicalComposition::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCompositionBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<CanonicalComposition> {
-            Box::new(CanonicalComposition(
-                icu_normalizer::properties::CanonicalComposition::new().static_to_owned(),
-            ))
-        }
-
-        /// Construct a new CanonicalComposition instance for NFC using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::properties::CanonicalComposition::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCompositionBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CanonicalComposition>, DataError> {
-            Ok(Box::new(CanonicalComposition(
-                icu_normalizer::properties::CanonicalComposition::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        /// Performs canonical composition (including Hangul) on a pair of characters
-        /// or returns NUL if these characters don’t compose. Composition exclusions are taken into account.
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalCompositionBorrowed::compose,
-            FnInStruct
-        )]
-        pub fn compose(&self, starter: DiplomatChar, second: DiplomatChar) -> DiplomatChar {
-            match (char::from_u32(starter), char::from_u32(second)) {
-                (Some(starter), Some(second)) => self.0.as_borrowed().compose(starter, second),
-                _ => None,
-            }
-            .unwrap_or('\0') as DiplomatChar
-        }
-    }
-
-    /// The outcome of non-recursive canonical decomposition of a character.
-    /// `second` will be NUL when the decomposition expands to a single character
-    /// (which may or may not be the original one)
-    #[diplomat::rust_link(icu::normalizer::properties::Decomposed, Enum)]
-    #[diplomat::out]
-    pub struct Decomposed {
-        first: DiplomatChar,
-        second: DiplomatChar,
-    }
-
-    /// The raw (non-recursive) canonical decomposition operation.
-    ///
-    /// Callers should generally use DecomposingNormalizer unless they specifically need raw composition operations
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::normalizer::properties::CanonicalDecomposition, Struct)]
-    #[diplomat::rust_link(
-        icu::normalizer::properties::CanonicalDecompositionBorrowed,
-        Struct,
-        hidden
-    )]
-    pub struct CanonicalDecomposition(pub icu_normalizer::properties::CanonicalDecomposition);
-
-    impl CanonicalDecomposition {
-        /// Construct a new CanonicalDecomposition instance for NFC using compiled data.
-        #[diplomat::rust_link(icu::normalizer::properties::CanonicalDecomposition::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalDecompositionBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<CanonicalDecomposition> {
-            Box::new(CanonicalDecomposition(
-                icu_normalizer::properties::CanonicalDecomposition::new().static_to_owned(),
-            ))
-        }
-
-        /// Construct a new CanonicalDecomposition instance for NFC using a particular data source.
-        #[diplomat::rust_link(icu::normalizer::properties::CanonicalDecomposition::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalDecompositionBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CanonicalDecomposition>, DataError> {
-            Ok(Box::new(CanonicalDecomposition(
-                icu_normalizer::properties::CanonicalDecomposition::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        /// Performs non-recursive canonical decomposition (including for Hangul).
-        #[diplomat::rust_link(
-            icu::normalizer::properties::CanonicalDecompositionBorrowed::decompose,
-            FnInStruct
-        )]
-        pub fn decompose(&self, c: DiplomatChar) -> Decomposed {
-            match char::from_u32(c) {
-                Some(c) => match self.0.as_borrowed().decompose(c) {
-                    icu_normalizer::properties::Decomposed::Default => Decomposed {
-                        first: c as DiplomatChar,
-                        second: '\0' as DiplomatChar,
-                    },
-                    icu_normalizer::properties::Decomposed::Singleton(s) => Decomposed {
-                        first: s as DiplomatChar,
-                        second: '\0' as DiplomatChar,
-                    },
-                    icu_normalizer::properties::Decomposed::Expansion(first, second) => {
-                        Decomposed {
-                            first: first as DiplomatChar,
-                            second: second as DiplomatChar,
-                        }
-                    }
-                },
-                _ => Decomposed {
-                    first: c,
-                    second: '\0' as DiplomatChar,
-                },
-            }
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/pluralrules.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/pluralrules.rs
deleted file mode 100644
index 0e841a13..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/pluralrules.rs
+++ /dev/null
@@ -1,190 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DataError;
-    use crate::errors::ffi::FixedDecimalParseError;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-
-    #[diplomat::rust_link(icu::plurals::PluralCategory, Enum)]
-    #[diplomat::enum_convert(icu_plurals::PluralCategory)]
-    pub enum PluralCategory {
-        Zero,
-        One,
-        Two,
-        Few,
-        Many,
-        Other,
-    }
-
-    impl PluralCategory {
-        /// Construct from a string in the format
-        /// [specified in TR35](https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules)
-        #[diplomat::rust_link(icu::plurals::PluralCategory::get_for_cldr_string, FnInEnum)]
-        #[diplomat::rust_link(icu::plurals::PluralCategory::get_for_cldr_bytes, FnInEnum)]
-        pub fn get_for_cldr_string(s: &DiplomatStr) -> Option<PluralCategory> {
-            icu_plurals::PluralCategory::get_for_cldr_bytes(s).map(Into::into)
-        }
-    }
-
-    #[diplomat::rust_link(icu::plurals::PluralRules, Struct)]
-    #[diplomat::opaque]
-    pub struct PluralRules(icu_plurals::PluralRules);
-
-    impl PluralRules {
-        /// Construct an [`PluralRules`] for the given locale, for cardinal numbers, using compiled data.
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new_cardinal, FnInStruct)]
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRuleType, Enum, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRulesOptions, Struct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRulesOptions::default, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRulesOptions::with_type, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "cardinal")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_cardinal(locale: &Locale) -> Result<Box<PluralRules>, DataError> {
-            let prefs = icu_plurals::PluralRulesPreferences::from(&locale.0);
-            Ok(Box::new(PluralRules(
-                icu_plurals::PluralRules::try_new_cardinal(prefs)?,
-            )))
-        }
-        /// Construct an [`PluralRules`] for the given locale, for cardinal numbers, using a particular data source.
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new_cardinal, FnInStruct)]
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRuleType, Enum, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "cardinal_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_cardinal_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<PluralRules>, DataError> {
-            let prefs = icu_plurals::PluralRulesPreferences::from(&locale.0);
-            Ok(Box::new(PluralRules(
-                icu_plurals::PluralRules::try_new_cardinal_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                )?,
-            )))
-        }
-        /// Construct an [`PluralRules`] for the given locale, for ordinal numbers, using compiled data.
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new_ordinal, FnInStruct)]
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRuleType, Enum, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ordinal")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ordinal(locale: &Locale) -> Result<Box<PluralRules>, DataError> {
-            let prefs = icu_plurals::PluralRulesPreferences::from(&locale.0);
-            Ok(Box::new(PluralRules(
-                icu_plurals::PluralRules::try_new_ordinal(prefs)?,
-            )))
-        }
-        /// Construct an [`PluralRules`] for the given locale, for ordinal numbers, using a particular data source.
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new_ordinal, FnInStruct)]
-        #[diplomat::rust_link(icu::plurals::PluralRules::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::plurals::PluralRuleType, Enum, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ordinal_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ordinal_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<PluralRules>, DataError> {
-            let prefs = icu_plurals::PluralRulesPreferences::from(&locale.0);
-            Ok(Box::new(PluralRules(
-                icu_plurals::PluralRules::try_new_ordinal_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                )?,
-            )))
-        }
-        /// Get the category for a given number represented as operands
-        #[diplomat::rust_link(icu::plurals::PluralRules::category_for, FnInStruct)]
-        pub fn category_for(&self, op: &PluralOperands) -> PluralCategory {
-            self.0.category_for(op.0).into()
-        }
-
-        /// Get all of the categories needed in the current locale
-        #[diplomat::rust_link(icu::plurals::PluralRules::categories, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn categories(&self) -> PluralCategories {
-            PluralCategories::from_iter(self.0.categories())
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::plurals::PluralOperands, Struct)]
-    pub struct PluralOperands(pub icu_plurals::PluralOperands);
-
-    impl PluralOperands {
-        /// Construct for a given string representing a number
-        #[diplomat::rust_link(icu::plurals::PluralOperands::from_str, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(s: &DiplomatStr) -> Result<Box<PluralOperands>, FixedDecimalParseError> {
-            Ok(Box::new(PluralOperands(icu_plurals::PluralOperands::from(
-                &fixed_decimal::Decimal::try_from_utf8(s)?,
-            ))))
-        }
-
-        /// Construct for a given integer
-        #[diplomat::attr(auto, named_constructor)]
-        #[diplomat::attr(dart, rename = "from_int")]
-        #[diplomat::attr(js, rename = "from_big_int")]
-        #[diplomat::attr(supports = method_overloading, rename = "from")]
-        pub fn from_int64(i: i64) -> Box<PluralOperands> {
-            Box::new(PluralOperands(icu_plurals::PluralOperands::from(i)))
-        }
-
-        /// Construct from a FixedDecimal
-        ///
-        /// Retains at most 18 digits each from the integer and fraction parts.
-        #[cfg(feature = "decimal")]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_fixed_decimal(x: &crate::fixed_decimal::ffi::Decimal) -> Box<Self> {
-            Box::new(Self((&x.0).into()))
-        }
-    }
-
-    #[diplomat::out]
-    pub struct PluralCategories {
-        pub zero: bool,
-        pub one: bool,
-        pub two: bool,
-        pub few: bool,
-        pub many: bool,
-        pub other: bool,
-    }
-
-    impl PluralCategories {
-        fn from_iter(i: impl Iterator<Item = icu_plurals::PluralCategory>) -> Self {
-            i.fold(
-                PluralCategories {
-                    zero: false,
-                    one: false,
-                    two: false,
-                    few: false,
-                    many: false,
-                    other: false,
-                },
-                |mut categories, category| {
-                    match category {
-                        icu_plurals::PluralCategory::Zero => categories.zero = true,
-                        icu_plurals::PluralCategory::One => categories.one = true,
-                        icu_plurals::PluralCategory::Two => categories.two = true,
-                        icu_plurals::PluralCategory::Few => categories.few = true,
-                        icu_plurals::PluralCategory::Many => categories.many = true,
-                        icu_plurals::PluralCategory::Other => categories.other = true,
-                    };
-                    categories
-                },
-            )
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_bidi.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_bidi.rs
deleted file mode 100644
index 93a2d91..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_bidi.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use diplomat_runtime::DiplomatChar;
-    use icu_properties::props;
-
-    #[diplomat::rust_link(icu::properties::props::BidiMirroringGlyph, Struct)]
-    pub struct BidiMirroringGlyph {
-        /// The mirroring glyph
-        pub mirroring_glyph: DiplomatOption<DiplomatChar>,
-        /// Whether the glyph is mirrored
-        pub mirrored: bool,
-        /// The paired bracket type
-        pub paired_bracket_type: BidiPairedBracketType,
-    }
-
-    #[diplomat::rust_link(icu::properties::props::BidiPairedBracketType, Enum)]
-    #[diplomat::enum_convert(props::BidiPairedBracketType, needs_wildcard)]
-    pub enum BidiPairedBracketType {
-        /// Represents Bidi_Paired_Bracket_Type=Open.
-        Open,
-        /// Represents Bidi_Paired_Bracket_Type=Close.
-        Close,
-        /// Represents Bidi_Paired_Bracket_Type=None.
-        None,
-    }
-
-    impl BidiMirroringGlyph {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::BidiMirroringGlyph>::new()
-                .get32(ch)
-                .into()
-        }
-    }
-}
-
-impl From<icu_properties::props::BidiMirroringGlyph> for ffi::BidiMirroringGlyph {
-    fn from(other: icu_properties::props::BidiMirroringGlyph) -> Self {
-        Self {
-            mirroring_glyph: other.mirroring_glyph.map(u32::from).into(),
-            mirrored: other.mirrored,
-            paired_bracket_type: other.paired_bracket_type.into(),
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_enums.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_enums.rs
deleted file mode 100644
index ab09564..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_enums.rs
+++ /dev/null
@@ -1,2257 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use icu_properties::props;
-
-    #[cfg(feature = "compiled_data")]
-    use diplomat_runtime::DiplomatChar;
-
-    #[diplomat::rust_link(icu::properties::props::BidiClass, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::BidiClass, needs_wildcard)]
-    pub enum BidiClass {
-        #[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRight, EnumVariant)]
-        LeftToRight = 0,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeft, EnumVariant)]
-        RightToLeft = 1,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanNumber, EnumVariant)]
-        EuropeanNumber = 2,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanSeparator, EnumVariant)]
-        EuropeanSeparator = 3,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanTerminator, EnumVariant)]
-        EuropeanTerminator = 4,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::ArabicNumber, EnumVariant)]
-        ArabicNumber = 5,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::CommonSeparator, EnumVariant)]
-        CommonSeparator = 6,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::ParagraphSeparator, EnumVariant)]
-        ParagraphSeparator = 7,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::SegmentSeparator, EnumVariant)]
-        SegmentSeparator = 8,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::WhiteSpace, EnumVariant)]
-        WhiteSpace = 9,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::OtherNeutral, EnumVariant)]
-        OtherNeutral = 10,
-        #[diplomat::rust_link(
-            icu::properties::props::BidiClass::LeftToRightEmbedding,
-            EnumVariant
-        )]
-        LeftToRightEmbedding = 11,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRightOverride, EnumVariant)]
-        LeftToRightOverride = 12,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::ArabicLetter, EnumVariant)]
-        ArabicLetter = 13,
-        #[diplomat::rust_link(
-            icu::properties::props::BidiClass::RightToLeftEmbedding,
-            EnumVariant
-        )]
-        RightToLeftEmbedding = 14,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeftOverride, EnumVariant)]
-        RightToLeftOverride = 15,
-        #[diplomat::rust_link(
-            icu::properties::props::BidiClass::PopDirectionalFormat,
-            EnumVariant
-        )]
-        PopDirectionalFormat = 16,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::NonspacingMark, EnumVariant)]
-        NonspacingMark = 17,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::BoundaryNeutral, EnumVariant)]
-        BoundaryNeutral = 18,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::FirstStrongIsolate, EnumVariant)]
-        FirstStrongIsolate = 19,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRightIsolate, EnumVariant)]
-        LeftToRightIsolate = 20,
-        #[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeftIsolate, EnumVariant)]
-        RightToLeftIsolate = 21,
-        #[diplomat::rust_link(
-            icu::properties::props::BidiClass::PopDirectionalIsolate,
-            EnumVariant
-        )]
-        PopDirectionalIsolate = 22,
-    }
-
-    impl BidiClass {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::BidiClass>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesLong, Struct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed, Struct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesLong::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(
-            icu::properties::props::NamedEnumeratedProperty::long_name,
-            FnInTrait,
-            hidden
-        )]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::BidiClass>::new().get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesShort, Struct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed, Struct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesShort::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::new, FnInStruct, hidden)]
-        #[diplomat::rust_link(
-            icu::properties::props::NamedEnumeratedProperty::short_name,
-            FnInTrait,
-            hidden
-        )]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::BidiClass>::new().get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::BidiClass::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::BidiClass::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::LeftToRight,
-                1 => Self::RightToLeft,
-                2 => Self::EuropeanNumber,
-                3 => Self::EuropeanSeparator,
-                4 => Self::EuropeanTerminator,
-                5 => Self::ArabicNumber,
-                6 => Self::CommonSeparator,
-                7 => Self::ParagraphSeparator,
-                8 => Self::SegmentSeparator,
-                9 => Self::WhiteSpace,
-                10 => Self::OtherNeutral,
-                11 => Self::LeftToRightEmbedding,
-                12 => Self::LeftToRightOverride,
-                13 => Self::ArabicLetter,
-                14 => Self::RightToLeftEmbedding,
-                15 => Self::RightToLeftOverride,
-                16 => Self::PopDirectionalFormat,
-                17 => Self::NonspacingMark,
-                18 => Self::BoundaryNeutral,
-                19 => Self::FirstStrongIsolate,
-                20 => Self::LeftToRightIsolate,
-                21 => Self::RightToLeftIsolate,
-                22 => Self::PopDirectionalIsolate,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::Script, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::Script, needs_wildcard)]
-    pub enum Script {
-        #[diplomat::rust_link(icu::properties::props::Script::Adlam, EnumVariant)]
-        Adlam = 167,
-        #[diplomat::rust_link(icu::properties::props::Script::Ahom, EnumVariant)]
-        Ahom = 161,
-        #[diplomat::rust_link(icu::properties::props::Script::AnatolianHieroglyphs, EnumVariant)]
-        AnatolianHieroglyphs = 156,
-        #[diplomat::rust_link(icu::properties::props::Script::Arabic, EnumVariant)]
-        Arabic = 2,
-        #[diplomat::rust_link(icu::properties::props::Script::Armenian, EnumVariant)]
-        Armenian = 3,
-        #[diplomat::rust_link(icu::properties::props::Script::Avestan, EnumVariant)]
-        Avestan = 117,
-        #[diplomat::rust_link(icu::properties::props::Script::Balinese, EnumVariant)]
-        Balinese = 62,
-        #[diplomat::rust_link(icu::properties::props::Script::Bamum, EnumVariant)]
-        Bamum = 130,
-        #[diplomat::rust_link(icu::properties::props::Script::BassaVah, EnumVariant)]
-        BassaVah = 134,
-        #[diplomat::rust_link(icu::properties::props::Script::Batak, EnumVariant)]
-        Batak = 63,
-        #[diplomat::rust_link(icu::properties::props::Script::Bengali, EnumVariant)]
-        Bengali = 4,
-        #[diplomat::rust_link(icu::properties::props::Script::Bhaiksuki, EnumVariant)]
-        Bhaiksuki = 168,
-        #[diplomat::rust_link(icu::properties::props::Script::Bopomofo, EnumVariant)]
-        Bopomofo = 5,
-        #[diplomat::rust_link(icu::properties::props::Script::Brahmi, EnumVariant)]
-        Brahmi = 65,
-        #[diplomat::rust_link(icu::properties::props::Script::Braille, EnumVariant)]
-        Braille = 46,
-        #[diplomat::rust_link(icu::properties::props::Script::Buginese, EnumVariant)]
-        Buginese = 55,
-        #[diplomat::rust_link(icu::properties::props::Script::Buhid, EnumVariant)]
-        Buhid = 44,
-        #[diplomat::rust_link(icu::properties::props::Script::CanadianAboriginal, EnumVariant)]
-        CanadianAboriginal = 40,
-        #[diplomat::rust_link(icu::properties::props::Script::Carian, EnumVariant)]
-        Carian = 104,
-        #[diplomat::rust_link(icu::properties::props::Script::CaucasianAlbanian, EnumVariant)]
-        CaucasianAlbanian = 159,
-        #[diplomat::rust_link(icu::properties::props::Script::Chakma, EnumVariant)]
-        Chakma = 118,
-        #[diplomat::rust_link(icu::properties::props::Script::Cham, EnumVariant)]
-        Cham = 66,
-        #[diplomat::rust_link(icu::properties::props::Script::Cherokee, EnumVariant)]
-        Cherokee = 6,
-        #[diplomat::rust_link(icu::properties::props::Script::Chorasmian, EnumVariant)]
-        Chorasmian = 189,
-        #[diplomat::rust_link(icu::properties::props::Script::Common, EnumVariant)]
-        Common = 0,
-        #[diplomat::rust_link(icu::properties::props::Script::Coptic, EnumVariant)]
-        Coptic = 7,
-        #[diplomat::rust_link(icu::properties::props::Script::Cuneiform, EnumVariant)]
-        Cuneiform = 101,
-        #[diplomat::rust_link(icu::properties::props::Script::Cypriot, EnumVariant)]
-        Cypriot = 47,
-        #[diplomat::rust_link(icu::properties::props::Script::CyproMinoan, EnumVariant)]
-        CyproMinoan = 193,
-        #[diplomat::rust_link(icu::properties::props::Script::Cyrillic, EnumVariant)]
-        Cyrillic = 8,
-        #[diplomat::rust_link(icu::properties::props::Script::Deseret, EnumVariant)]
-        Deseret = 9,
-        #[diplomat::rust_link(icu::properties::props::Script::Devanagari, EnumVariant)]
-        Devanagari = 10,
-        #[diplomat::rust_link(icu::properties::props::Script::DivesAkuru, EnumVariant)]
-        DivesAkuru = 190,
-        #[diplomat::rust_link(icu::properties::props::Script::Dogra, EnumVariant)]
-        Dogra = 178,
-        #[diplomat::rust_link(icu::properties::props::Script::Duployan, EnumVariant)]
-        Duployan = 135,
-        #[diplomat::rust_link(icu::properties::props::Script::EgyptianHieroglyphs, EnumVariant)]
-        EgyptianHieroglyphs = 71,
-        #[diplomat::rust_link(icu::properties::props::Script::Elbasan, EnumVariant)]
-        Elbasan = 136,
-        #[diplomat::rust_link(icu::properties::props::Script::Elymaic, EnumVariant)]
-        Elymaic = 185,
-        #[diplomat::rust_link(icu::properties::props::Script::Ethiopian, EnumVariant)]
-        Ethiopian = 11,
-        #[diplomat::rust_link(icu::properties::props::Script::Georgian, EnumVariant)]
-        Georgian = 12,
-        #[diplomat::rust_link(icu::properties::props::Script::Glagolitic, EnumVariant)]
-        Glagolitic = 56,
-        #[diplomat::rust_link(icu::properties::props::Script::Gothic, EnumVariant)]
-        Gothic = 13,
-        #[diplomat::rust_link(icu::properties::props::Script::Grantha, EnumVariant)]
-        Grantha = 137,
-        #[diplomat::rust_link(icu::properties::props::Script::Greek, EnumVariant)]
-        Greek = 14,
-        #[diplomat::rust_link(icu::properties::props::Script::Gujarati, EnumVariant)]
-        Gujarati = 15,
-        #[diplomat::rust_link(icu::properties::props::Script::GunjalaGondi, EnumVariant)]
-        GunjalaGondi = 179,
-        #[diplomat::rust_link(icu::properties::props::Script::Gurmukhi, EnumVariant)]
-        Gurmukhi = 16,
-        #[diplomat::rust_link(icu::properties::props::Script::Han, EnumVariant)]
-        Han = 17,
-        #[diplomat::rust_link(icu::properties::props::Script::Hangul, EnumVariant)]
-        Hangul = 18,
-        #[diplomat::rust_link(icu::properties::props::Script::HanifiRohingya, EnumVariant)]
-        HanifiRohingya = 182,
-        #[diplomat::rust_link(icu::properties::props::Script::Hanunoo, EnumVariant)]
-        Hanunoo = 43,
-        #[diplomat::rust_link(icu::properties::props::Script::Hatran, EnumVariant)]
-        Hatran = 162,
-        #[diplomat::rust_link(icu::properties::props::Script::Hebrew, EnumVariant)]
-        Hebrew = 19,
-        #[diplomat::rust_link(icu::properties::props::Script::Hiragana, EnumVariant)]
-        Hiragana = 20,
-        #[diplomat::rust_link(icu::properties::props::Script::ImperialAramaic, EnumVariant)]
-        ImperialAramaic = 116,
-        #[diplomat::rust_link(icu::properties::props::Script::Inherited, EnumVariant)]
-        Inherited = 1,
-        #[diplomat::rust_link(icu::properties::props::Script::InscriptionalPahlavi, EnumVariant)]
-        InscriptionalPahlavi = 122,
-        #[diplomat::rust_link(icu::properties::props::Script::InscriptionalParthian, EnumVariant)]
-        InscriptionalParthian = 125,
-        #[diplomat::rust_link(icu::properties::props::Script::Javanese, EnumVariant)]
-        Javanese = 78,
-        #[diplomat::rust_link(icu::properties::props::Script::Kaithi, EnumVariant)]
-        Kaithi = 120,
-        #[diplomat::rust_link(icu::properties::props::Script::Kannada, EnumVariant)]
-        Kannada = 21,
-        #[diplomat::rust_link(icu::properties::props::Script::Katakana, EnumVariant)]
-        Katakana = 22,
-        #[diplomat::rust_link(icu::properties::props::Script::Kawi, EnumVariant)]
-        Kawi = 198,
-        #[diplomat::rust_link(icu::properties::props::Script::KayahLi, EnumVariant)]
-        KayahLi = 79,
-        #[diplomat::rust_link(icu::properties::props::Script::Kharoshthi, EnumVariant)]
-        Kharoshthi = 57,
-        #[diplomat::rust_link(icu::properties::props::Script::KhitanSmallScript, EnumVariant)]
-        KhitanSmallScript = 191,
-        #[diplomat::rust_link(icu::properties::props::Script::Khmer, EnumVariant)]
-        Khmer = 23,
-        #[diplomat::rust_link(icu::properties::props::Script::Khojki, EnumVariant)]
-        Khojki = 157,
-        #[diplomat::rust_link(icu::properties::props::Script::Khudawadi, EnumVariant)]
-        Khudawadi = 145,
-        #[diplomat::rust_link(icu::properties::props::Script::Lao, EnumVariant)]
-        Lao = 24,
-        #[diplomat::rust_link(icu::properties::props::Script::Latin, EnumVariant)]
-        Latin = 25,
-        #[diplomat::rust_link(icu::properties::props::Script::Lepcha, EnumVariant)]
-        Lepcha = 82,
-        #[diplomat::rust_link(icu::properties::props::Script::Limbu, EnumVariant)]
-        Limbu = 48,
-        #[diplomat::rust_link(icu::properties::props::Script::LinearA, EnumVariant)]
-        LinearA = 83,
-        #[diplomat::rust_link(icu::properties::props::Script::LinearB, EnumVariant)]
-        LinearB = 49,
-        #[diplomat::rust_link(icu::properties::props::Script::Lisu, EnumVariant)]
-        Lisu = 131,
-        #[diplomat::rust_link(icu::properties::props::Script::Lycian, EnumVariant)]
-        Lycian = 107,
-        #[diplomat::rust_link(icu::properties::props::Script::Lydian, EnumVariant)]
-        Lydian = 108,
-        #[diplomat::rust_link(icu::properties::props::Script::Mahajani, EnumVariant)]
-        Mahajani = 160,
-        #[diplomat::rust_link(icu::properties::props::Script::Makasar, EnumVariant)]
-        Makasar = 180,
-        #[diplomat::rust_link(icu::properties::props::Script::Malayalam, EnumVariant)]
-        Malayalam = 26,
-        #[diplomat::rust_link(icu::properties::props::Script::Mandaic, EnumVariant)]
-        Mandaic = 84,
-        #[diplomat::rust_link(icu::properties::props::Script::Manichaean, EnumVariant)]
-        Manichaean = 121,
-        #[diplomat::rust_link(icu::properties::props::Script::Marchen, EnumVariant)]
-        Marchen = 169,
-        #[diplomat::rust_link(icu::properties::props::Script::MasaramGondi, EnumVariant)]
-        MasaramGondi = 175,
-        #[diplomat::rust_link(icu::properties::props::Script::Medefaidrin, EnumVariant)]
-        Medefaidrin = 181,
-        #[diplomat::rust_link(icu::properties::props::Script::MeeteiMayek, EnumVariant)]
-        MeeteiMayek = 115,
-        #[diplomat::rust_link(icu::properties::props::Script::MendeKikakui, EnumVariant)]
-        MendeKikakui = 140,
-        #[diplomat::rust_link(icu::properties::props::Script::MeroiticCursive, EnumVariant)]
-        MeroiticCursive = 141,
-        #[diplomat::rust_link(icu::properties::props::Script::MeroiticHieroglyphs, EnumVariant)]
-        MeroiticHieroglyphs = 86,
-        #[diplomat::rust_link(icu::properties::props::Script::Miao, EnumVariant)]
-        Miao = 92,
-        #[diplomat::rust_link(icu::properties::props::Script::Modi, EnumVariant)]
-        Modi = 163,
-        #[diplomat::rust_link(icu::properties::props::Script::Mongolian, EnumVariant)]
-        Mongolian = 27,
-        #[diplomat::rust_link(icu::properties::props::Script::Mro, EnumVariant)]
-        Mro = 149,
-        #[diplomat::rust_link(icu::properties::props::Script::Multani, EnumVariant)]
-        Multani = 164,
-        #[diplomat::rust_link(icu::properties::props::Script::Myanmar, EnumVariant)]
-        Myanmar = 28,
-        #[diplomat::rust_link(icu::properties::props::Script::Nabataean, EnumVariant)]
-        Nabataean = 143,
-        #[diplomat::rust_link(icu::properties::props::Script::NagMundari, EnumVariant)]
-        NagMundari = 199,
-        #[diplomat::rust_link(icu::properties::props::Script::Nandinagari, EnumVariant)]
-        Nandinagari = 187,
-        #[diplomat::rust_link(icu::properties::props::Script::Nastaliq, EnumVariant)]
-        Nastaliq = 200,
-        #[diplomat::rust_link(icu::properties::props::Script::NewTaiLue, EnumVariant)]
-        NewTaiLue = 59,
-        #[diplomat::rust_link(icu::properties::props::Script::Newa, EnumVariant)]
-        Newa = 170,
-        #[diplomat::rust_link(icu::properties::props::Script::Nko, EnumVariant)]
-        Nko = 87,
-        #[diplomat::rust_link(icu::properties::props::Script::Nushu, EnumVariant)]
-        Nushu = 150,
-        #[diplomat::rust_link(icu::properties::props::Script::NyiakengPuachueHmong, EnumVariant)]
-        NyiakengPuachueHmong = 186,
-        #[diplomat::rust_link(icu::properties::props::Script::Ogham, EnumVariant)]
-        Ogham = 29,
-        #[diplomat::rust_link(icu::properties::props::Script::OlChiki, EnumVariant)]
-        OlChiki = 109,
-        #[diplomat::rust_link(icu::properties::props::Script::OldHungarian, EnumVariant)]
-        OldHungarian = 76,
-        #[diplomat::rust_link(icu::properties::props::Script::OldItalic, EnumVariant)]
-        OldItalic = 30,
-        #[diplomat::rust_link(icu::properties::props::Script::OldNorthArabian, EnumVariant)]
-        OldNorthArabian = 142,
-        #[diplomat::rust_link(icu::properties::props::Script::OldPermic, EnumVariant)]
-        OldPermic = 89,
-        #[diplomat::rust_link(icu::properties::props::Script::OldPersian, EnumVariant)]
-        OldPersian = 61,
-        #[diplomat::rust_link(icu::properties::props::Script::OldSogdian, EnumVariant)]
-        OldSogdian = 184,
-        #[diplomat::rust_link(icu::properties::props::Script::OldSouthArabian, EnumVariant)]
-        OldSouthArabian = 133,
-        #[diplomat::rust_link(icu::properties::props::Script::OldTurkic, EnumVariant)]
-        OldTurkic = 88,
-        #[diplomat::rust_link(icu::properties::props::Script::OldUyghur, EnumVariant)]
-        OldUyghur = 194,
-        #[diplomat::rust_link(icu::properties::props::Script::Oriya, EnumVariant)]
-        Oriya = 31,
-        #[diplomat::rust_link(icu::properties::props::Script::Osage, EnumVariant)]
-        Osage = 171,
-        #[diplomat::rust_link(icu::properties::props::Script::Osmanya, EnumVariant)]
-        Osmanya = 50,
-        #[diplomat::rust_link(icu::properties::props::Script::PahawhHmong, EnumVariant)]
-        PahawhHmong = 75,
-        #[diplomat::rust_link(icu::properties::props::Script::Palmyrene, EnumVariant)]
-        Palmyrene = 144,
-        #[diplomat::rust_link(icu::properties::props::Script::PauCinHau, EnumVariant)]
-        PauCinHau = 165,
-        #[diplomat::rust_link(icu::properties::props::Script::PhagsPa, EnumVariant)]
-        PhagsPa = 90,
-        #[diplomat::rust_link(icu::properties::props::Script::Phoenician, EnumVariant)]
-        Phoenician = 91,
-        #[diplomat::rust_link(icu::properties::props::Script::PsalterPahlavi, EnumVariant)]
-        PsalterPahlavi = 123,
-        #[diplomat::rust_link(icu::properties::props::Script::Rejang, EnumVariant)]
-        Rejang = 110,
-        #[diplomat::rust_link(icu::properties::props::Script::Runic, EnumVariant)]
-        Runic = 32,
-        #[diplomat::rust_link(icu::properties::props::Script::Samaritan, EnumVariant)]
-        Samaritan = 126,
-        #[diplomat::rust_link(icu::properties::props::Script::Saurashtra, EnumVariant)]
-        Saurashtra = 111,
-        #[diplomat::rust_link(icu::properties::props::Script::Sharada, EnumVariant)]
-        Sharada = 151,
-        #[diplomat::rust_link(icu::properties::props::Script::Shavian, EnumVariant)]
-        Shavian = 51,
-        #[diplomat::rust_link(icu::properties::props::Script::Siddham, EnumVariant)]
-        Siddham = 166,
-        #[diplomat::rust_link(icu::properties::props::Script::SignWriting, EnumVariant)]
-        SignWriting = 112,
-        #[diplomat::rust_link(icu::properties::props::Script::Sinhala, EnumVariant)]
-        Sinhala = 33,
-        #[diplomat::rust_link(icu::properties::props::Script::Sogdian, EnumVariant)]
-        Sogdian = 183,
-        #[diplomat::rust_link(icu::properties::props::Script::SoraSompeng, EnumVariant)]
-        SoraSompeng = 152,
-        #[diplomat::rust_link(icu::properties::props::Script::Soyombo, EnumVariant)]
-        Soyombo = 176,
-        #[diplomat::rust_link(icu::properties::props::Script::Sundanese, EnumVariant)]
-        Sundanese = 113,
-        #[diplomat::rust_link(icu::properties::props::Script::SylotiNagri, EnumVariant)]
-        SylotiNagri = 58,
-        #[diplomat::rust_link(icu::properties::props::Script::Syriac, EnumVariant)]
-        Syriac = 34,
-        #[diplomat::rust_link(icu::properties::props::Script::Tagalog, EnumVariant)]
-        Tagalog = 42,
-        #[diplomat::rust_link(icu::properties::props::Script::Tagbanwa, EnumVariant)]
-        Tagbanwa = 45,
-        #[diplomat::rust_link(icu::properties::props::Script::TaiLe, EnumVariant)]
-        TaiLe = 52,
-        #[diplomat::rust_link(icu::properties::props::Script::TaiTham, EnumVariant)]
-        TaiTham = 106,
-        #[diplomat::rust_link(icu::properties::props::Script::TaiViet, EnumVariant)]
-        TaiViet = 127,
-        #[diplomat::rust_link(icu::properties::props::Script::Takri, EnumVariant)]
-        Takri = 153,
-        #[diplomat::rust_link(icu::properties::props::Script::Tamil, EnumVariant)]
-        Tamil = 35,
-        #[diplomat::rust_link(icu::properties::props::Script::Tangsa, EnumVariant)]
-        Tangsa = 195,
-        #[diplomat::rust_link(icu::properties::props::Script::Tangut, EnumVariant)]
-        Tangut = 154,
-        #[diplomat::rust_link(icu::properties::props::Script::Telugu, EnumVariant)]
-        Telugu = 36,
-        #[diplomat::rust_link(icu::properties::props::Script::Thaana, EnumVariant)]
-        Thaana = 37,
-        #[diplomat::rust_link(icu::properties::props::Script::Thai, EnumVariant)]
-        Thai = 38,
-        #[diplomat::rust_link(icu::properties::props::Script::Tibetan, EnumVariant)]
-        Tibetan = 39,
-        #[diplomat::rust_link(icu::properties::props::Script::Tifinagh, EnumVariant)]
-        Tifinagh = 60,
-        #[diplomat::rust_link(icu::properties::props::Script::Tirhuta, EnumVariant)]
-        Tirhuta = 158,
-        #[diplomat::rust_link(icu::properties::props::Script::Toto, EnumVariant)]
-        Toto = 196,
-        #[diplomat::rust_link(icu::properties::props::Script::Ugaritic, EnumVariant)]
-        Ugaritic = 53,
-        #[diplomat::rust_link(icu::properties::props::Script::Unknown, EnumVariant)]
-        Unknown = 103,
-        #[diplomat::rust_link(icu::properties::props::Script::Vai, EnumVariant)]
-        Vai = 99,
-        #[diplomat::rust_link(icu::properties::props::Script::Vithkuqi, EnumVariant)]
-        Vithkuqi = 197,
-        #[diplomat::rust_link(icu::properties::props::Script::Wancho, EnumVariant)]
-        Wancho = 188,
-        #[diplomat::rust_link(icu::properties::props::Script::WarangCiti, EnumVariant)]
-        WarangCiti = 146,
-        #[diplomat::rust_link(icu::properties::props::Script::Yezidi, EnumVariant)]
-        Yezidi = 192,
-        #[diplomat::rust_link(icu::properties::props::Script::Yi, EnumVariant)]
-        Yi = 41,
-        #[diplomat::rust_link(icu::properties::props::Script::ZanabazarSquare, EnumVariant)]
-        ZanabazarSquare = 177,
-    }
-
-    impl Script {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::Script>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::Script>::new().get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::PropertyNamesShortBorrowed::get_locale_script,
-            FnInStruct,
-            hidden
-        )]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::Script>::new().get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::Script::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u16 {
-            self as u16
-        }
-        #[diplomat::rust_link(icu::properties::props::Script::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u16) -> Option<Self> {
-            Some(match other {
-                167 => Self::Adlam,
-                161 => Self::Ahom,
-                156 => Self::AnatolianHieroglyphs,
-                2 => Self::Arabic,
-                3 => Self::Armenian,
-                117 => Self::Avestan,
-                62 => Self::Balinese,
-                130 => Self::Bamum,
-                134 => Self::BassaVah,
-                63 => Self::Batak,
-                4 => Self::Bengali,
-                168 => Self::Bhaiksuki,
-                5 => Self::Bopomofo,
-                65 => Self::Brahmi,
-                46 => Self::Braille,
-                55 => Self::Buginese,
-                44 => Self::Buhid,
-                40 => Self::CanadianAboriginal,
-                104 => Self::Carian,
-                159 => Self::CaucasianAlbanian,
-                118 => Self::Chakma,
-                66 => Self::Cham,
-                6 => Self::Cherokee,
-                189 => Self::Chorasmian,
-                0 => Self::Common,
-                7 => Self::Coptic,
-                101 => Self::Cuneiform,
-                47 => Self::Cypriot,
-                193 => Self::CyproMinoan,
-                8 => Self::Cyrillic,
-                9 => Self::Deseret,
-                10 => Self::Devanagari,
-                190 => Self::DivesAkuru,
-                178 => Self::Dogra,
-                135 => Self::Duployan,
-                71 => Self::EgyptianHieroglyphs,
-                136 => Self::Elbasan,
-                185 => Self::Elymaic,
-                11 => Self::Ethiopian,
-                12 => Self::Georgian,
-                56 => Self::Glagolitic,
-                13 => Self::Gothic,
-                137 => Self::Grantha,
-                14 => Self::Greek,
-                15 => Self::Gujarati,
-                179 => Self::GunjalaGondi,
-                16 => Self::Gurmukhi,
-                17 => Self::Han,
-                18 => Self::Hangul,
-                182 => Self::HanifiRohingya,
-                43 => Self::Hanunoo,
-                162 => Self::Hatran,
-                19 => Self::Hebrew,
-                20 => Self::Hiragana,
-                116 => Self::ImperialAramaic,
-                1 => Self::Inherited,
-                122 => Self::InscriptionalPahlavi,
-                125 => Self::InscriptionalParthian,
-                78 => Self::Javanese,
-                120 => Self::Kaithi,
-                21 => Self::Kannada,
-                22 => Self::Katakana,
-                198 => Self::Kawi,
-                79 => Self::KayahLi,
-                57 => Self::Kharoshthi,
-                191 => Self::KhitanSmallScript,
-                23 => Self::Khmer,
-                157 => Self::Khojki,
-                145 => Self::Khudawadi,
-                24 => Self::Lao,
-                25 => Self::Latin,
-                82 => Self::Lepcha,
-                48 => Self::Limbu,
-                83 => Self::LinearA,
-                49 => Self::LinearB,
-                131 => Self::Lisu,
-                107 => Self::Lycian,
-                108 => Self::Lydian,
-                160 => Self::Mahajani,
-                180 => Self::Makasar,
-                26 => Self::Malayalam,
-                84 => Self::Mandaic,
-                121 => Self::Manichaean,
-                169 => Self::Marchen,
-                175 => Self::MasaramGondi,
-                181 => Self::Medefaidrin,
-                115 => Self::MeeteiMayek,
-                140 => Self::MendeKikakui,
-                141 => Self::MeroiticCursive,
-                86 => Self::MeroiticHieroglyphs,
-                92 => Self::Miao,
-                163 => Self::Modi,
-                27 => Self::Mongolian,
-                149 => Self::Mro,
-                164 => Self::Multani,
-                28 => Self::Myanmar,
-                143 => Self::Nabataean,
-                199 => Self::NagMundari,
-                187 => Self::Nandinagari,
-                200 => Self::Nastaliq,
-                59 => Self::NewTaiLue,
-                170 => Self::Newa,
-                87 => Self::Nko,
-                150 => Self::Nushu,
-                186 => Self::NyiakengPuachueHmong,
-                29 => Self::Ogham,
-                109 => Self::OlChiki,
-                76 => Self::OldHungarian,
-                30 => Self::OldItalic,
-                142 => Self::OldNorthArabian,
-                89 => Self::OldPermic,
-                61 => Self::OldPersian,
-                184 => Self::OldSogdian,
-                133 => Self::OldSouthArabian,
-                88 => Self::OldTurkic,
-                194 => Self::OldUyghur,
-                31 => Self::Oriya,
-                171 => Self::Osage,
-                50 => Self::Osmanya,
-                75 => Self::PahawhHmong,
-                144 => Self::Palmyrene,
-                165 => Self::PauCinHau,
-                90 => Self::PhagsPa,
-                91 => Self::Phoenician,
-                123 => Self::PsalterPahlavi,
-                110 => Self::Rejang,
-                32 => Self::Runic,
-                126 => Self::Samaritan,
-                111 => Self::Saurashtra,
-                151 => Self::Sharada,
-                51 => Self::Shavian,
-                166 => Self::Siddham,
-                112 => Self::SignWriting,
-                33 => Self::Sinhala,
-                183 => Self::Sogdian,
-                152 => Self::SoraSompeng,
-                176 => Self::Soyombo,
-                113 => Self::Sundanese,
-                58 => Self::SylotiNagri,
-                34 => Self::Syriac,
-                42 => Self::Tagalog,
-                45 => Self::Tagbanwa,
-                52 => Self::TaiLe,
-                106 => Self::TaiTham,
-                127 => Self::TaiViet,
-                153 => Self::Takri,
-                35 => Self::Tamil,
-                195 => Self::Tangsa,
-                154 => Self::Tangut,
-                36 => Self::Telugu,
-                37 => Self::Thaana,
-                38 => Self::Thai,
-                39 => Self::Tibetan,
-                60 => Self::Tifinagh,
-                158 => Self::Tirhuta,
-                196 => Self::Toto,
-                53 => Self::Ugaritic,
-                103 => Self::Unknown,
-                99 => Self::Vai,
-                197 => Self::Vithkuqi,
-                188 => Self::Wancho,
-                146 => Self::WarangCiti,
-                192 => Self::Yezidi,
-                41 => Self::Yi,
-                177 => Self::ZanabazarSquare,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::HangulSyllableType, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::HangulSyllableType, needs_wildcard)]
-    pub enum HangulSyllableType {
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::NotApplicable,
-            EnumVariant
-        )]
-        NotApplicable = 0,
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::LeadingJamo,
-            EnumVariant
-        )]
-        LeadingJamo = 1,
-        #[diplomat::rust_link(icu::properties::props::HangulSyllableType::VowelJamo, EnumVariant)]
-        VowelJamo = 2,
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::TrailingJamo,
-            EnumVariant
-        )]
-        TrailingJamo = 3,
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::LeadingVowelSyllable,
-            EnumVariant
-        )]
-        LeadingVowelSyllable = 4,
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::LeadingVowelTrailingSyllable,
-            EnumVariant
-        )]
-        LeadingVowelTrailingSyllable = 5,
-    }
-
-    impl HangulSyllableType {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::HangulSyllableType>::new()
-                .get32(ch)
-                .into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::to_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::HangulSyllableType::from_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::NotApplicable,
-                1 => Self::LeadingJamo,
-                2 => Self::VowelJamo,
-                3 => Self::TrailingJamo,
-                4 => Self::LeadingVowelSyllable,
-                5 => Self::LeadingVowelTrailingSyllable,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::EastAsianWidth, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::EastAsianWidth, needs_wildcard)]
-    pub enum EastAsianWidth {
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Neutral, EnumVariant)]
-        Neutral = 0,
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Ambiguous, EnumVariant)]
-        Ambiguous = 1,
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Halfwidth, EnumVariant)]
-        Halfwidth = 2,
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Fullwidth, EnumVariant)]
-        Fullwidth = 3,
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Narrow, EnumVariant)]
-        Narrow = 4,
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::Wide, EnumVariant)]
-        Wide = 5,
-    }
-
-    impl EastAsianWidth {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::EastAsianWidth>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::EastAsianWidth>::new()
-                .get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::EastAsianWidth>::new()
-                .get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Neutral,
-                1 => Self::Ambiguous,
-                2 => Self::Halfwidth,
-                3 => Self::Fullwidth,
-                4 => Self::Narrow,
-                5 => Self::Wide,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::LineBreak, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::LineBreak, needs_wildcard)]
-    pub enum LineBreak {
-        #[diplomat::rust_link(icu::props::LineBreak::Unknown, EnumVariant)]
-        Unknown = 0,
-        #[diplomat::rust_link(icu::props::LineBreak::Ambiguous, EnumVariant)]
-        Ambiguous = 1,
-        #[diplomat::rust_link(icu::props::LineBreak::Alphabetic, EnumVariant)]
-        Alphabetic = 2,
-        #[diplomat::rust_link(icu::props::LineBreak::BreakBoth, EnumVariant)]
-        BreakBoth = 3,
-        #[diplomat::rust_link(icu::props::LineBreak::BreakAfter, EnumVariant)]
-        BreakAfter = 4,
-        #[diplomat::rust_link(icu::props::LineBreak::BreakBefore, EnumVariant)]
-        BreakBefore = 5,
-        #[diplomat::rust_link(icu::props::LineBreak::MandatoryBreak, EnumVariant)]
-        MandatoryBreak = 6,
-        #[diplomat::rust_link(icu::props::LineBreak::ContingentBreak, EnumVariant)]
-        ContingentBreak = 7,
-        #[diplomat::rust_link(icu::props::LineBreak::ClosePunctuation, EnumVariant)]
-        ClosePunctuation = 8,
-        #[diplomat::rust_link(icu::props::LineBreak::CombiningMark, EnumVariant)]
-        CombiningMark = 9,
-        #[diplomat::rust_link(icu::props::LineBreak::CarriageReturn, EnumVariant)]
-        CarriageReturn = 10,
-        #[diplomat::rust_link(icu::props::LineBreak::Exclamation, EnumVariant)]
-        Exclamation = 11,
-        #[diplomat::rust_link(icu::props::LineBreak::Glue, EnumVariant)]
-        Glue = 12,
-        #[diplomat::rust_link(icu::props::LineBreak::Hyphen, EnumVariant)]
-        Hyphen = 13,
-        #[diplomat::rust_link(icu::props::LineBreak::Ideographic, EnumVariant)]
-        Ideographic = 14,
-        #[diplomat::rust_link(icu::props::LineBreak::Inseparable, EnumVariant)]
-        Inseparable = 15,
-        #[diplomat::rust_link(icu::props::LineBreak::InfixNumeric, EnumVariant)]
-        InfixNumeric = 16,
-        #[diplomat::rust_link(icu::props::LineBreak::LineFeed, EnumVariant)]
-        LineFeed = 17,
-        #[diplomat::rust_link(icu::props::LineBreak::Nonstarter, EnumVariant)]
-        Nonstarter = 18,
-        #[diplomat::rust_link(icu::props::LineBreak::Numeric, EnumVariant)]
-        Numeric = 19,
-        #[diplomat::rust_link(icu::props::LineBreak::OpenPunctuation, EnumVariant)]
-        OpenPunctuation = 20,
-        #[diplomat::rust_link(icu::props::LineBreak::PostfixNumeric, EnumVariant)]
-        PostfixNumeric = 21,
-        #[diplomat::rust_link(icu::props::LineBreak::PrefixNumeric, EnumVariant)]
-        PrefixNumeric = 22,
-        #[diplomat::rust_link(icu::props::LineBreak::Quotation, EnumVariant)]
-        Quotation = 23,
-        #[diplomat::rust_link(icu::props::LineBreak::ComplexContext, EnumVariant)]
-        ComplexContext = 24,
-        #[diplomat::rust_link(icu::props::LineBreak::Surrogate, EnumVariant)]
-        Surrogate = 25,
-        #[diplomat::rust_link(icu::props::LineBreak::Space, EnumVariant)]
-        Space = 26,
-        #[diplomat::rust_link(icu::props::LineBreak::BreakSymbols, EnumVariant)]
-        BreakSymbols = 27,
-        #[diplomat::rust_link(icu::props::LineBreak::ZWSpace, EnumVariant)]
-        ZWSpace = 28,
-        #[diplomat::rust_link(icu::props::LineBreak::NextLine, EnumVariant)]
-        NextLine = 29,
-        #[diplomat::rust_link(icu::props::LineBreak::WordJoiner, EnumVariant)]
-        WordJoiner = 30,
-        #[diplomat::rust_link(icu::props::LineBreak::H2, EnumVariant)]
-        H2 = 31,
-        #[diplomat::rust_link(icu::props::LineBreak::H3, EnumVariant)]
-        H3 = 32,
-        #[diplomat::rust_link(icu::props::LineBreak::JL, EnumVariant)]
-        JL = 33,
-        #[diplomat::rust_link(icu::props::LineBreak::JT, EnumVariant)]
-        JT = 34,
-        #[diplomat::rust_link(icu::props::LineBreak::JV, EnumVariant)]
-        JV = 35,
-        #[diplomat::rust_link(icu::props::LineBreak::CloseParenthesis, EnumVariant)]
-        CloseParenthesis = 36,
-        #[diplomat::rust_link(icu::props::LineBreak::ConditionalJapaneseStarter, EnumVariant)]
-        ConditionalJapaneseStarter = 37,
-        #[diplomat::rust_link(icu::props::LineBreak::HebrewLetter, EnumVariant)]
-        HebrewLetter = 38,
-        #[diplomat::rust_link(icu::props::LineBreak::RegionalIndicator, EnumVariant)]
-        RegionalIndicator = 39,
-        #[diplomat::rust_link(icu::props::LineBreak::EBase, EnumVariant)]
-        EBase = 40,
-        #[diplomat::rust_link(icu::props::LineBreak::EModifier, EnumVariant)]
-        EModifier = 41,
-        #[diplomat::rust_link(icu::props::LineBreak::ZWJ, EnumVariant)]
-        ZWJ = 42,
-        #[diplomat::rust_link(icu::props::LineBreak::Aksara, EnumVariant)]
-        Aksara = 43,
-        #[diplomat::rust_link(icu::props::LineBreak::AksaraPrebase, EnumVariant)]
-        AksaraPrebase = 44,
-        #[diplomat::rust_link(icu::props::LineBreak::AksaraStart, EnumVariant)]
-        AksaraStart = 45,
-        #[diplomat::rust_link(icu::props::LineBreak::ViramaFinal, EnumVariant)]
-        ViramaFinal = 46,
-        #[diplomat::rust_link(icu::props::LineBreak::Virama, EnumVariant)]
-        Virama = 47,
-    }
-
-    impl LineBreak {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::LineBreak>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::LineBreak>::new().get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::LineBreak>::new().get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::LineBreak::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::LineBreak::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Unknown,
-                1 => Self::Ambiguous,
-                2 => Self::Alphabetic,
-                3 => Self::BreakBoth,
-                4 => Self::BreakAfter,
-                5 => Self::BreakBefore,
-                6 => Self::MandatoryBreak,
-                7 => Self::ContingentBreak,
-                8 => Self::ClosePunctuation,
-                9 => Self::CombiningMark,
-                10 => Self::CarriageReturn,
-                11 => Self::Exclamation,
-                12 => Self::Glue,
-                13 => Self::Hyphen,
-                14 => Self::Ideographic,
-                15 => Self::Inseparable,
-                16 => Self::InfixNumeric,
-                17 => Self::LineFeed,
-                18 => Self::Nonstarter,
-                19 => Self::Numeric,
-                20 => Self::OpenPunctuation,
-                21 => Self::PostfixNumeric,
-                22 => Self::PrefixNumeric,
-                23 => Self::Quotation,
-                24 => Self::ComplexContext,
-                25 => Self::Surrogate,
-                26 => Self::Space,
-                27 => Self::BreakSymbols,
-                28 => Self::ZWSpace,
-                29 => Self::NextLine,
-                30 => Self::WordJoiner,
-                31 => Self::H2,
-                32 => Self::H3,
-                33 => Self::JL,
-                34 => Self::JT,
-                35 => Self::JV,
-                36 => Self::CloseParenthesis,
-                37 => Self::ConditionalJapaneseStarter,
-                38 => Self::HebrewLetter,
-                39 => Self::RegionalIndicator,
-                40 => Self::EBase,
-                41 => Self::EModifier,
-                42 => Self::ZWJ,
-                43 => Self::Aksara,
-                44 => Self::AksaraPrebase,
-                45 => Self::AksaraStart,
-                46 => Self::ViramaFinal,
-                47 => Self::Virama,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::GraphemeClusterBreak, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::GraphemeClusterBreak, needs_wildcard)]
-    pub enum GraphemeClusterBreak {
-        #[diplomat::rust_link(icu::properties::props::LineBreak::Other, EnumVariant)]
-        Other = 0,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::Control, EnumVariant)]
-        Control = 1,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::CR, EnumVariant)]
-        CR = 2,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::Extend, EnumVariant)]
-        Extend = 3,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::L, EnumVariant)]
-        L = 4,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::LF, EnumVariant)]
-        LF = 5,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::LV, EnumVariant)]
-        LV = 6,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::LVT, EnumVariant)]
-        LVT = 7,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::T, EnumVariant)]
-        T = 8,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::V, EnumVariant)]
-        V = 9,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::SpacingMark, EnumVariant)]
-        SpacingMark = 10,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::Prepend, EnumVariant)]
-        Prepend = 11,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::RegionalIndicator, EnumVariant)]
-        RegionalIndicator = 12,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::EBase, EnumVariant)]
-        EBase = 13,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::EBaseGAZ, EnumVariant)]
-        EBaseGAZ = 14,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::EModifier, EnumVariant)]
-        EModifier = 15,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::GlueAfterZwj, EnumVariant)]
-        GlueAfterZwj = 16,
-        #[diplomat::rust_link(icu::properties::props::LineBreak::ZWJ, EnumVariant)]
-        ZWJ = 17,
-    }
-
-    impl GraphemeClusterBreak {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::GraphemeClusterBreak>::new()
-                .get32(ch)
-                .into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GraphemeClusterBreak::to_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GraphemeClusterBreak::from_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Other,
-                1 => Self::Control,
-                2 => Self::CR,
-                3 => Self::Extend,
-                4 => Self::L,
-                5 => Self::LF,
-                6 => Self::LV,
-                7 => Self::LVT,
-                8 => Self::T,
-                9 => Self::V,
-                10 => Self::SpacingMark,
-                11 => Self::Prepend,
-                12 => Self::RegionalIndicator,
-                13 => Self::EBase,
-                14 => Self::EBaseGAZ,
-                15 => Self::EModifier,
-                16 => Self::GlueAfterZwj,
-                17 => Self::ZWJ,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::WordBreak, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::WordBreak, needs_wildcard)]
-    pub enum WordBreak {
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Other, EnumVariant)]
-        Other = 0,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::ALetter, EnumVariant)]
-        ALetter = 1,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Format, EnumVariant)]
-        Format = 2,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Katakana, EnumVariant)]
-        Katakana = 3,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::MidLetter, EnumVariant)]
-        MidLetter = 4,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::MidNum, EnumVariant)]
-        MidNum = 5,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Numeric, EnumVariant)]
-        Numeric = 6,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::ExtendNumLet, EnumVariant)]
-        ExtendNumLet = 7,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::CR, EnumVariant)]
-        CR = 8,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Extend, EnumVariant)]
-        Extend = 9,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::LF, EnumVariant)]
-        LF = 10,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::MidNumLet, EnumVariant)]
-        MidNumLet = 11,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::Newline, EnumVariant)]
-        Newline = 12,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::RegionalIndicator, EnumVariant)]
-        RegionalIndicator = 13,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::HebrewLetter, EnumVariant)]
-        HebrewLetter = 14,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::SingleQuote, EnumVariant)]
-        SingleQuote = 15,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::DoubleQuote, EnumVariant)]
-        DoubleQuote = 16,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::EBase, EnumVariant)]
-        EBase = 17,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::EBaseGAZ, EnumVariant)]
-        EBaseGAZ = 18,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::EModifier, EnumVariant)]
-        EModifier = 19,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::GlueAfterZwj, EnumVariant)]
-        GlueAfterZwj = 20,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::ZWJ, EnumVariant)]
-        ZWJ = 21,
-        #[diplomat::rust_link(icu::properties::props::WordBreak::WSegSpace, EnumVariant)]
-        WSegSpace = 22,
-    }
-
-    impl WordBreak {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::WordBreak>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::WordBreak>::new().get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::WordBreak>::new().get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::WordBreak::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::WordBreak::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Other,
-                1 => Self::ALetter,
-                2 => Self::Format,
-                3 => Self::Katakana,
-                4 => Self::MidLetter,
-                5 => Self::MidNum,
-                6 => Self::Numeric,
-                7 => Self::ExtendNumLet,
-                8 => Self::CR,
-                9 => Self::Extend,
-                10 => Self::LF,
-                11 => Self::MidNumLet,
-                12 => Self::Newline,
-                13 => Self::RegionalIndicator,
-                14 => Self::HebrewLetter,
-                15 => Self::SingleQuote,
-                16 => Self::DoubleQuote,
-                17 => Self::EBase,
-                18 => Self::EBaseGAZ,
-                19 => Self::EModifier,
-                20 => Self::GlueAfterZwj,
-                21 => Self::ZWJ,
-                22 => Self::WSegSpace,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::SentenceBreak, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::SentenceBreak, needs_wildcard)]
-    pub enum SentenceBreak {
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Other, EnumVariant)]
-        Other = 0,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::ATerm, EnumVariant)]
-        ATerm = 1,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Close, EnumVariant)]
-        Close = 2,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Format, EnumVariant)]
-        Format = 3,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Lower, EnumVariant)]
-        Lower = 4,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Numeric, EnumVariant)]
-        Numeric = 5,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::OLetter, EnumVariant)]
-        OLetter = 6,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Sep, EnumVariant)]
-        Sep = 7,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Sp, EnumVariant)]
-        Sp = 8,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::STerm, EnumVariant)]
-        STerm = 9,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Upper, EnumVariant)]
-        Upper = 10,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::CR, EnumVariant)]
-        CR = 11,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::Extend, EnumVariant)]
-        Extend = 12,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::LF, EnumVariant)]
-        LF = 13,
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::SContinue, EnumVariant)]
-        SContinue = 14,
-    }
-
-    impl SentenceBreak {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::SentenceBreak>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::SentenceBreak>::new()
-                .get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::SentenceBreak>::new()
-                .get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Other,
-                1 => Self::ATerm,
-                2 => Self::Close,
-                3 => Self::Format,
-                4 => Self::Lower,
-                5 => Self::Numeric,
-                6 => Self::OLetter,
-                7 => Self::Sep,
-                8 => Self::Sp,
-                9 => Self::STerm,
-                10 => Self::Upper,
-                11 => Self::CR,
-                12 => Self::Extend,
-                13 => Self::LF,
-                14 => Self::SContinue,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::CanonicalCombiningClass, needs_wildcard)]
-    pub enum CanonicalCombiningClass {
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::NotReordered,
-            EnumVariant
-        )]
-        NotReordered = 0,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::Overlay,
-            EnumVariant
-        )]
-        Overlay = 1,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::HanReading,
-            EnumVariant
-        )]
-        HanReading = 6,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Nukta, EnumVariant)]
-        Nukta = 7,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::KanaVoicing,
-            EnumVariant
-        )]
-        KanaVoicing = 8,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::Virama,
-            EnumVariant
-        )]
-        Virama = 9,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC10, EnumVariant)]
-        CCC10 = 10,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC11, EnumVariant)]
-        CCC11 = 11,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC12, EnumVariant)]
-        CCC12 = 12,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC13, EnumVariant)]
-        CCC13 = 13,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC14, EnumVariant)]
-        CCC14 = 14,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC15, EnumVariant)]
-        CCC15 = 15,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC16, EnumVariant)]
-        CCC16 = 16,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC17, EnumVariant)]
-        CCC17 = 17,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC18, EnumVariant)]
-        CCC18 = 18,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC19, EnumVariant)]
-        CCC19 = 19,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC20, EnumVariant)]
-        CCC20 = 20,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC21, EnumVariant)]
-        CCC21 = 21,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC22, EnumVariant)]
-        CCC22 = 22,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC23, EnumVariant)]
-        CCC23 = 23,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC24, EnumVariant)]
-        CCC24 = 24,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC25, EnumVariant)]
-        CCC25 = 25,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC26, EnumVariant)]
-        CCC26 = 26,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC27, EnumVariant)]
-        CCC27 = 27,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC28, EnumVariant)]
-        CCC28 = 28,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC29, EnumVariant)]
-        CCC29 = 29,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC30, EnumVariant)]
-        CCC30 = 30,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC31, EnumVariant)]
-        CCC31 = 31,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC32, EnumVariant)]
-        CCC32 = 32,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC33, EnumVariant)]
-        CCC33 = 33,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC34, EnumVariant)]
-        CCC34 = 34,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC35, EnumVariant)]
-        CCC35 = 35,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC36, EnumVariant)]
-        CCC36 = 36,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC84, EnumVariant)]
-        CCC84 = 84,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC91, EnumVariant)]
-        CCC91 = 91,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC103,
-            EnumVariant
-        )]
-        CCC103 = 103,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC107,
-            EnumVariant
-        )]
-        CCC107 = 107,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC118,
-            EnumVariant
-        )]
-        CCC118 = 118,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC122,
-            EnumVariant
-        )]
-        CCC122 = 122,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC129,
-            EnumVariant
-        )]
-        CCC129 = 129,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC130,
-            EnumVariant
-        )]
-        CCC130 = 130,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC132,
-            EnumVariant
-        )]
-        CCC132 = 132,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::CCC133,
-            EnumVariant
-        )]
-        CCC133 = 133,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AttachedBelowLeft,
-            EnumVariant
-        )]
-        AttachedBelowLeft = 200,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AttachedBelow,
-            EnumVariant
-        )]
-        AttachedBelow = 202,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AttachedAbove,
-            EnumVariant
-        )]
-        AttachedAbove = 214,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AttachedAboveRight,
-            EnumVariant
-        )]
-        AttachedAboveRight = 216,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::BelowLeft,
-            EnumVariant
-        )]
-        BelowLeft = 218,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Below, EnumVariant)]
-        Below = 220,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::BelowRight,
-            EnumVariant
-        )]
-        BelowRight = 222,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Left, EnumVariant)]
-        Left = 224,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Right, EnumVariant)]
-        Right = 226,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AboveLeft,
-            EnumVariant
-        )]
-        AboveLeft = 228,
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Above, EnumVariant)]
-        Above = 230,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::AboveRight,
-            EnumVariant
-        )]
-        AboveRight = 232,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::DoubleBelow,
-            EnumVariant
-        )]
-        DoubleBelow = 233,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::DoubleAbove,
-            EnumVariant
-        )]
-        DoubleAbove = 234,
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::IotaSubscript,
-            EnumVariant
-        )]
-        IotaSubscript = 240,
-    }
-
-    impl CanonicalCombiningClass {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::CanonicalCombiningClass>::new()
-                .get32(ch)
-                .into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::to_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::CanonicalCombiningClass::from_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::NotReordered,
-                1 => Self::Overlay,
-                6 => Self::HanReading,
-                7 => Self::Nukta,
-                8 => Self::KanaVoicing,
-                9 => Self::Virama,
-                10 => Self::CCC10,
-                11 => Self::CCC11,
-                12 => Self::CCC12,
-                13 => Self::CCC13,
-                14 => Self::CCC14,
-                15 => Self::CCC15,
-                16 => Self::CCC16,
-                17 => Self::CCC17,
-                18 => Self::CCC18,
-                19 => Self::CCC19,
-                20 => Self::CCC20,
-                21 => Self::CCC21,
-                22 => Self::CCC22,
-                23 => Self::CCC23,
-                24 => Self::CCC24,
-                25 => Self::CCC25,
-                26 => Self::CCC26,
-                27 => Self::CCC27,
-                28 => Self::CCC28,
-                29 => Self::CCC29,
-                30 => Self::CCC30,
-                31 => Self::CCC31,
-                32 => Self::CCC32,
-                33 => Self::CCC33,
-                34 => Self::CCC34,
-                35 => Self::CCC35,
-                36 => Self::CCC36,
-                84 => Self::CCC84,
-                91 => Self::CCC91,
-                103 => Self::CCC103,
-                107 => Self::CCC107,
-                118 => Self::CCC118,
-                122 => Self::CCC122,
-                129 => Self::CCC129,
-                130 => Self::CCC130,
-                132 => Self::CCC132,
-                133 => Self::CCC133,
-                200 => Self::AttachedBelowLeft,
-                202 => Self::AttachedBelow,
-                214 => Self::AttachedAbove,
-                216 => Self::AttachedAboveRight,
-                218 => Self::BelowLeft,
-                220 => Self::Below,
-                222 => Self::BelowRight,
-                224 => Self::Left,
-                226 => Self::Right,
-                228 => Self::AboveLeft,
-                230 => Self::Above,
-                232 => Self::AboveRight,
-                233 => Self::DoubleBelow,
-                234 => Self::DoubleAbove,
-                240 => Self::IotaSubscript,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::IndicSyllabicCategory, needs_wildcard)]
-    pub enum IndicSyllabicCategory {
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Other, EnumVariant)]
-        Other = 0,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::Avagraha,
-            EnumVariant
-        )]
-        Avagraha = 1,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Bindu, EnumVariant)]
-        Bindu = 2,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::BrahmiJoiningNumber,
-            EnumVariant
-        )]
-        BrahmiJoiningNumber = 3,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::CantillationMark,
-            EnumVariant
-        )]
-        CantillationMark = 4,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::Consonant,
-            EnumVariant
-        )]
-        Consonant = 5,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantDead,
-            EnumVariant
-        )]
-        ConsonantDead = 6,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantFinal,
-            EnumVariant
-        )]
-        ConsonantFinal = 7,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantHeadLetter,
-            EnumVariant
-        )]
-        ConsonantHeadLetter = 8,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantInitialPostfixed,
-            EnumVariant
-        )]
-        ConsonantInitialPostfixed = 9,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantKiller,
-            EnumVariant
-        )]
-        ConsonantKiller = 10,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantMedial,
-            EnumVariant
-        )]
-        ConsonantMedial = 11,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantPlaceholder,
-            EnumVariant
-        )]
-        ConsonantPlaceholder = 12,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantPrecedingRepha,
-            EnumVariant
-        )]
-        ConsonantPrecedingRepha = 13,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantPrefixed,
-            EnumVariant
-        )]
-        ConsonantPrefixed = 14,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantSucceedingRepha,
-            EnumVariant
-        )]
-        ConsonantSucceedingRepha = 15,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantSubjoined,
-            EnumVariant
-        )]
-        ConsonantSubjoined = 16,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ConsonantWithStacker,
-            EnumVariant
-        )]
-        ConsonantWithStacker = 17,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::GeminationMark,
-            EnumVariant
-        )]
-        GeminationMark = 18,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::InvisibleStacker,
-            EnumVariant
-        )]
-        InvisibleStacker = 19,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Joiner, EnumVariant)]
-        Joiner = 20,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ModifyingLetter,
-            EnumVariant
-        )]
-        ModifyingLetter = 21,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::NonJoiner,
-            EnumVariant
-        )]
-        NonJoiner = 22,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Nukta, EnumVariant)]
-        Nukta = 23,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Number, EnumVariant)]
-        Number = 24,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::NumberJoiner,
-            EnumVariant
-        )]
-        NumberJoiner = 25,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::PureKiller,
-            EnumVariant
-        )]
-        PureKiller = 26,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::RegisterShifter,
-            EnumVariant
-        )]
-        RegisterShifter = 27,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::SyllableModifier,
-            EnumVariant
-        )]
-        SyllableModifier = 28,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ToneLetter,
-            EnumVariant
-        )]
-        ToneLetter = 29,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ToneMark,
-            EnumVariant
-        )]
-        ToneMark = 30,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Virama, EnumVariant)]
-        Virama = 31,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Visarga, EnumVariant)]
-        Visarga = 32,
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Vowel, EnumVariant)]
-        Vowel = 33,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::VowelDependent,
-            EnumVariant
-        )]
-        VowelDependent = 34,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::VowelIndependent,
-            EnumVariant
-        )]
-        VowelIndependent = 35,
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::ReorderingKiller,
-            EnumVariant
-        )]
-        ReorderingKiller = 36,
-    }
-
-    impl IndicSyllabicCategory {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::IndicSyllabicCategory>::new()
-                .get32(ch)
-                .into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::to_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::IndicSyllabicCategory::from_icu4c_value,
-            FnInStruct
-        )]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Other,
-                1 => Self::Avagraha,
-                2 => Self::Bindu,
-                3 => Self::BrahmiJoiningNumber,
-                4 => Self::CantillationMark,
-                5 => Self::Consonant,
-                6 => Self::ConsonantDead,
-                7 => Self::ConsonantFinal,
-                8 => Self::ConsonantHeadLetter,
-                9 => Self::ConsonantInitialPostfixed,
-                10 => Self::ConsonantKiller,
-                11 => Self::ConsonantMedial,
-                12 => Self::ConsonantPlaceholder,
-                13 => Self::ConsonantPrecedingRepha,
-                14 => Self::ConsonantPrefixed,
-                15 => Self::ConsonantSucceedingRepha,
-                16 => Self::ConsonantSubjoined,
-                17 => Self::ConsonantWithStacker,
-                18 => Self::GeminationMark,
-                19 => Self::InvisibleStacker,
-                20 => Self::Joiner,
-                21 => Self::ModifyingLetter,
-                22 => Self::NonJoiner,
-                23 => Self::Nukta,
-                24 => Self::Number,
-                25 => Self::NumberJoiner,
-                26 => Self::PureKiller,
-                27 => Self::RegisterShifter,
-                28 => Self::SyllableModifier,
-                29 => Self::ToneLetter,
-                30 => Self::ToneMark,
-                31 => Self::Virama,
-                32 => Self::Visarga,
-                33 => Self::Vowel,
-                34 => Self::VowelDependent,
-                35 => Self::VowelIndependent,
-                36 => Self::ReorderingKiller,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::JoiningType, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::JoiningType, needs_wildcard)]
-    pub enum JoiningType {
-        #[diplomat::rust_link(icu::properties::props::JoiningType::NonJoining, EnumVariant)]
-        NonJoining = 0,
-        #[diplomat::rust_link(icu::properties::props::JoiningType::JoinCausing, EnumVariant)]
-        JoinCausing = 1,
-        #[diplomat::rust_link(icu::properties::props::JoiningType::DualJoining, EnumVariant)]
-        DualJoining = 2,
-        #[diplomat::rust_link(icu::properties::props::JoiningType::LeftJoining, EnumVariant)]
-        LeftJoining = 3,
-        #[diplomat::rust_link(icu::properties::props::JoiningType::RightJoining, EnumVariant)]
-        RightJoining = 4,
-        #[diplomat::rust_link(icu::properties::props::JoiningType::Transparent, EnumVariant)]
-        Transparent = 5,
-    }
-
-    impl JoiningType {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::JoiningType>::new()
-                .get32(ch)
-                .into()
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::JoiningType>::new().get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::JoiningType>::new().get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::JoiningType::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-        #[diplomat::rust_link(icu::properties::props::JoiningType::from_icu4c_value, FnInStruct)]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::NonJoining,
-                1 => Self::JoinCausing,
-                2 => Self::DualJoining,
-                3 => Self::LeftJoining,
-                4 => Self::RightJoining,
-                5 => Self::Transparent,
-                _ => return None,
-            })
-        }
-    }
-
-    #[diplomat::rust_link(icu::properties::props::GeneralCategory, Struct)]
-    #[diplomat::enum_convert(icu_properties::props::GeneralCategory)]
-    pub enum GeneralCategory {
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::Unassigned, EnumVariant)]
-        Unassigned = 0,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::UppercaseLetter,
-            EnumVariant
-        )]
-        UppercaseLetter = 1,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::LowercaseLetter,
-            EnumVariant
-        )]
-        LowercaseLetter = 2,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::TitlecaseLetter,
-            EnumVariant
-        )]
-        TitlecaseLetter = 3,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::ModifierLetter,
-            EnumVariant
-        )]
-        ModifierLetter = 4,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherLetter, EnumVariant)]
-        OtherLetter = 5,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::NonspacingMark,
-            EnumVariant
-        )]
-        NonspacingMark = 6,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::SpacingMark, EnumVariant)]
-        SpacingMark = 8,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::EnclosingMark, EnumVariant)]
-        EnclosingMark = 7,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::DecimalNumber, EnumVariant)]
-        DecimalNumber = 9,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::LetterNumber, EnumVariant)]
-        LetterNumber = 10,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherNumber, EnumVariant)]
-        OtherNumber = 11,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::SpaceSeparator,
-            EnumVariant
-        )]
-        SpaceSeparator = 12,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::LineSeparator, EnumVariant)]
-        LineSeparator = 13,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::ParagraphSeparator,
-            EnumVariant
-        )]
-        ParagraphSeparator = 14,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::Control, EnumVariant)]
-        Control = 15,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::Format, EnumVariant)]
-        Format = 16,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::PrivateUse, EnumVariant)]
-        PrivateUse = 17,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::Surrogate, EnumVariant)]
-        Surrogate = 18,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::DashPunctuation,
-            EnumVariant
-        )]
-        DashPunctuation = 19,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::OpenPunctuation,
-            EnumVariant
-        )]
-        OpenPunctuation = 20,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::ClosePunctuation,
-            EnumVariant
-        )]
-        ClosePunctuation = 21,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::ConnectorPunctuation,
-            EnumVariant
-        )]
-        ConnectorPunctuation = 22,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::InitialPunctuation,
-            EnumVariant
-        )]
-        InitialPunctuation = 28,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::FinalPunctuation,
-            EnumVariant
-        )]
-        FinalPunctuation = 29,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::OtherPunctuation,
-            EnumVariant
-        )]
-        OtherPunctuation = 23,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::MathSymbol, EnumVariant)]
-        MathSymbol = 24,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::CurrencySymbol,
-            EnumVariant
-        )]
-        CurrencySymbol = 25,
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::ModifierSymbol,
-            EnumVariant
-        )]
-        ModifierSymbol = 26,
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherSymbol, EnumVariant)]
-        OtherSymbol = 27,
-    }
-
-    impl GeneralCategory {
-        #[diplomat::rust_link(icu::properties::props::EnumeratedProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn for_char(ch: DiplomatChar) -> Self {
-            icu_properties::CodePointMapData::<props::GeneralCategory>::new()
-                .get32(ch)
-                .into()
-        }
-        /// Convert to an integer using the ICU4C integer mappings for `General_Category`
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesLongBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "long" name of this property value (returns empty if property value is unknown)
-        pub fn long_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesLongBorrowed::<props::GeneralCategory>::new()
-                .get(self.into())
-        }
-
-        #[diplomat::rust_link(icu::properties::PropertyNamesShortBorrowed::get, FnInStruct)]
-        #[cfg(feature = "compiled_data")]
-        /// Get the "short" name of this property value (returns empty if property value is unknown)
-        pub fn short_name(self) -> Option<&'static str> {
-            icu_properties::PropertyNamesShortBorrowed::<props::GeneralCategory>::new()
-                .get(self.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory::to_icu4c_value, FnInStruct)]
-        /// Convert to an integer value usable with ICU4C and CodePointMapData
-        pub fn to_integer_value(self) -> u8 {
-            self as u8
-        }
-
-        /// Produces a GeneralCategoryGroup mask that can represent a group of general categories
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup, Struct)]
-        pub fn to_group(self) -> GeneralCategoryGroup {
-            GeneralCategoryGroup {
-                mask: props::GeneralCategoryGroup::from(props::GeneralCategory::from(self)).into(),
-            }
-        }
-
-        /// Convert from an integer using the ICU4C integer mappings for `General_Category`
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategory::from_icu4c_value,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryOutOfBoundsError,
-            Struct,
-            hidden
-        )]
-        /// Convert from an integer value from ICU4C or CodePointMapData
-        pub fn from_integer_value(other: u8) -> Option<Self> {
-            Some(match other {
-                0 => Self::Unassigned,
-                1 => Self::UppercaseLetter,
-                2 => Self::LowercaseLetter,
-                3 => Self::TitlecaseLetter,
-                4 => Self::ModifierLetter,
-                5 => Self::OtherLetter,
-                6 => Self::NonspacingMark,
-                8 => Self::SpacingMark,
-                7 => Self::EnclosingMark,
-                9 => Self::DecimalNumber,
-                10 => Self::LetterNumber,
-                11 => Self::OtherNumber,
-                12 => Self::SpaceSeparator,
-                13 => Self::LineSeparator,
-                14 => Self::ParagraphSeparator,
-                15 => Self::Control,
-                16 => Self::Format,
-                17 => Self::PrivateUse,
-                18 => Self::Surrogate,
-                19 => Self::DashPunctuation,
-                20 => Self::OpenPunctuation,
-                21 => Self::ClosePunctuation,
-                22 => Self::ConnectorPunctuation,
-                28 => Self::InitialPunctuation,
-                29 => Self::FinalPunctuation,
-                23 => Self::OtherPunctuation,
-                24 => Self::MathSymbol,
-                25 => Self::CurrencySymbol,
-                26 => Self::ModifierSymbol,
-                27 => Self::OtherSymbol,
-                _ => return None,
-            })
-        }
-    }
-
-    /// A mask that is capable of representing groups of `General_Category` values.
-    #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup, Struct)]
-    #[derive(Default)]
-    pub struct GeneralCategoryGroup {
-        pub mask: u32,
-    }
-
-    impl GeneralCategoryGroup {
-        #[inline]
-        pub(crate) fn into_props_group(self) -> props::GeneralCategoryGroup {
-            self.mask.into()
-        }
-
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup::contains, FnInStruct)]
-        pub fn contains(self, val: GeneralCategory) -> bool {
-            self.into_props_group().contains(val.into())
-        }
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup::complement, FnInStruct)]
-        pub fn complement(self) -> Self {
-            self.into_props_group().complement().into()
-        }
-
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup::all, FnInStruct)]
-        pub fn all() -> Self {
-            props::GeneralCategoryGroup::all().into()
-        }
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup::empty, FnInStruct)]
-        pub fn empty() -> Self {
-            props::GeneralCategoryGroup::empty().into()
-        }
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup::union, FnInStruct)]
-        #[diplomat::attr(any(c, cpp), rename = "union_")]
-        pub fn union(self, other: Self) -> Self {
-            self.into_props_group()
-                .union(other.into_props_group())
-                .into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::intersection,
-            FnInStruct
-        )]
-        pub fn intersection(self, other: Self) -> Self {
-            self.into_props_group()
-                .intersection(other.into_props_group())
-                .into()
-        }
-
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::CasedLetter,
-            AssociatedConstantInStruct
-        )]
-        pub fn cased_letter() -> Self {
-            props::GeneralCategoryGroup::CasedLetter.into()
-        }
-
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Letter,
-            AssociatedConstantInStruct
-        )]
-        pub fn letter() -> Self {
-            props::GeneralCategoryGroup::Letter.into()
-        }
-
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Mark,
-            AssociatedConstantInStruct
-        )]
-        pub fn mark() -> Self {
-            props::GeneralCategoryGroup::Mark.into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Number,
-            AssociatedConstantInStruct
-        )]
-        pub fn number() -> Self {
-            props::GeneralCategoryGroup::Number.into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Other,
-            AssociatedConstantInStruct
-        )]
-        pub fn separator() -> Self {
-            props::GeneralCategoryGroup::Other.into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Letter,
-            AssociatedConstantInStruct
-        )]
-        pub fn other() -> Self {
-            props::GeneralCategoryGroup::Letter.into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Punctuation,
-            AssociatedConstantInStruct
-        )]
-        pub fn punctuation() -> Self {
-            props::GeneralCategoryGroup::Punctuation.into()
-        }
-        #[diplomat::rust_link(
-            icu::properties::props::GeneralCategoryGroup::Symbol,
-            AssociatedConstantInStruct
-        )]
-        pub fn symbol() -> Self {
-            props::GeneralCategoryGroup::Symbol.into()
-        }
-    }
-}
-
-impl From<icu_properties::props::GeneralCategoryGroup> for ffi::GeneralCategoryGroup {
-    #[inline]
-    fn from(other: icu_properties::props::GeneralCategoryGroup) -> Self {
-        Self { mask: other.into() }
-    }
-}
-#[cfg(test)]
-mod test {
-    use super::ffi::*;
-    use icu_properties::props;
-
-    #[test]
-    fn test_all_cases_covered() {
-        for prop in props::BidiClass::ALL_VALUES {
-            let ffi_prop = BidiClass::from_integer_value(prop.to_icu4c_value())
-                .expect("Found BidiClass value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::BidiClass::from(ffi_prop));
-        }
-
-        for prop in props::Script::ALL_VALUES {
-            let ffi_prop = Script::from_integer_value(prop.to_icu4c_value())
-                .expect("Found Script value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::Script::from(ffi_prop));
-        }
-
-        for prop in props::HangulSyllableType::ALL_VALUES {
-            let ffi_prop = HangulSyllableType::from_integer_value(prop.to_icu4c_value())
-                .expect("Found HangulSyllableType value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::HangulSyllableType::from(ffi_prop));
-        }
-        for prop in props::EastAsianWidth::ALL_VALUES {
-            let ffi_prop = EastAsianWidth::from_integer_value(prop.to_icu4c_value())
-                .expect("Found EastAsianWidth value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::EastAsianWidth::from(ffi_prop));
-        }
-        for prop in props::LineBreak::ALL_VALUES {
-            let ffi_prop = LineBreak::from_integer_value(prop.to_icu4c_value())
-                .expect("Found LineBreak value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::LineBreak::from(ffi_prop));
-        }
-        for prop in props::GraphemeClusterBreak::ALL_VALUES {
-            let ffi_prop = GraphemeClusterBreak::from_integer_value(prop.to_icu4c_value())
-                .expect("Found GraphemeClusterBreak value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::GraphemeClusterBreak::from(ffi_prop));
-        }
-        for prop in props::WordBreak::ALL_VALUES {
-            let ffi_prop = WordBreak::from_integer_value(prop.to_icu4c_value())
-                .expect("Found WordBreak value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::WordBreak::from(ffi_prop));
-        }
-        for prop in props::SentenceBreak::ALL_VALUES {
-            let ffi_prop = SentenceBreak::from_integer_value(prop.to_icu4c_value())
-                .expect("Found SentenceBreak value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::SentenceBreak::from(ffi_prop));
-        }
-        for prop in props::CanonicalCombiningClass::ALL_VALUES {
-            let ffi_prop = CanonicalCombiningClass::from_integer_value(prop.to_icu4c_value())
-                .expect("Found CanonicalCombiningClass value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::CanonicalCombiningClass::from(ffi_prop));
-        }
-        for prop in props::IndicSyllabicCategory::ALL_VALUES {
-            let ffi_prop = IndicSyllabicCategory::from_integer_value(prop.to_icu4c_value())
-                .expect("Found IndicSyllabicCategory value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::IndicSyllabicCategory::from(ffi_prop));
-        }
-        for prop in props::JoiningType::ALL_VALUES {
-            let ffi_prop = JoiningType::from_integer_value(prop.to_icu4c_value())
-                .expect("Found JoiningType value not supported in ffi");
-            assert_eq!(prop.to_icu4c_value(), ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::JoiningType::from(ffi_prop));
-        }
-        for prop in props::GeneralCategory::ALL_VALUES {
-            let ffi_prop = GeneralCategory::from_integer_value(*prop as u8)
-                .expect("Found GeneralCategory value not supported in ffi");
-            assert_eq!(*prop as u8, ffi_prop.to_integer_value());
-            assert_eq!(*prop, props::GeneralCategory::from(ffi_prop));
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_iter.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_iter.rs
deleted file mode 100644
index 19e3905..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_iter.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use core::ops::RangeInclusive;
-
-    /// Result of a single iteration of [`CodePointRangeIterator`].
-    /// Logically can be considered to be an `Option<RangeInclusive<DiplomatChar>>`,
-    ///
-    /// `start` and `end` represent an inclusive range of code points [start, end],
-    /// and `done` will be true if the iterator has already finished. The last contentful
-    /// iteration will NOT produce a range done=true, in other words `start` and `end` are useful
-    /// values if and only if `done=false`.
-    #[diplomat::out]
-    pub struct CodePointRangeIteratorResult {
-        pub start: DiplomatChar,
-        pub end: DiplomatChar,
-        pub done: bool,
-    }
-
-    /// An iterator over code point ranges, produced by `CodePointSetData` or
-    /// one of the `CodePointMapData` types
-    #[diplomat::opaque]
-    pub struct CodePointRangeIterator<'a>(
-        pub Box<dyn Iterator<Item = RangeInclusive<DiplomatChar>> + 'a>,
-    );
-
-    impl<'a> CodePointRangeIterator<'a> {
-        /// Advance the iterator by one and return the next range.
-        ///
-        /// If the iterator is out of items, `done` will be true
-        pub fn next(&mut self) -> CodePointRangeIteratorResult {
-            self.0
-                .next()
-                .map(|r| CodePointRangeIteratorResult {
-                    start: *r.start(),
-                    end: *r.end(),
-                    done: false,
-                })
-                .unwrap_or(CodePointRangeIteratorResult {
-                    start: 0,
-                    end: 0,
-                    done: true,
-                })
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_maps.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_maps.rs
deleted file mode 100644
index 51ceeb5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_maps.rs
+++ /dev/null
@@ -1,448 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_properties::props::{
-        BidiClass, CanonicalCombiningClass, EastAsianWidth, GeneralCategory, GraphemeClusterBreak,
-        HangulSyllableType, IndicSyllabicCategory, JoiningType, LineBreak, Script, SentenceBreak,
-        WordBreak,
-    };
-
-    use crate::properties_enums::ffi::GeneralCategoryGroup;
-    use crate::properties_iter::ffi::CodePointRangeIterator;
-    use crate::properties_sets::ffi::CodePointSetData;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::opaque]
-    /// An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-    ///
-    /// For properties whose values fit into 8 bits.
-    #[diplomat::rust_link(icu::properties, Mod)]
-    #[diplomat::rust_link(icu::properties::CodePointMapData, Struct)]
-    #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed, Struct)]
-    #[diplomat::rust_link(icu::properties::CodePointMapData::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(
-        icu::properties::CodePointMapData::try_into_converted,
-        FnInStruct,
-        hidden
-    )]
-    pub struct CodePointMapData8(icu_properties::CodePointMapData<u8>);
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    fn convert_8<P: icu_collections::codepointtrie::TrieValue>(
-        data: icu_properties::CodePointMapData<P>,
-    ) -> Box<CodePointMapData8> {
-        #[allow(clippy::unwrap_used)] // infallible for the chosen properties
-        Box::new(CodePointMapData8(
-            data.try_into_converted().map_err(|_| ()).unwrap(),
-        ))
-    }
-
-    impl CodePointMapData8 {
-        /// Gets the value for a code point.
-        #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed::get, FnInStruct)]
-        #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed::get32, FnInStruct, hidden)]
-        #[diplomat::attr(auto, indexer)]
-        pub fn get(&self, cp: DiplomatChar) -> u8 {
-            self.0.as_borrowed().get32(cp)
-        }
-
-        /// Produces an iterator over ranges of code points that map to `value`
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::iter_ranges_for_value,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_value<'a>(&'a self, value: u8) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0.as_borrowed().iter_ranges_for_value(value),
-            )))
-        }
-
-        /// Produces an iterator over ranges of code points that do not map to `value`
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::iter_ranges_for_value_complemented,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_value_complemented<'a>(
-            &'a self,
-            value: u8,
-        ) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0
-                    .as_borrowed()
-                    .iter_ranges_for_value_complemented(value),
-            )))
-        }
-
-        /// Given a mask value (the nth bit marks property value = n), produce an iterator over ranges of code points
-        /// whose property values are contained in the mask.
-        ///
-        /// The main mask property supported is that for General_Category, which can be obtained via `general_category_to_mask()` or
-        /// by using `GeneralCategoryNameToMaskMapper`
-        ///
-        /// Should only be used on maps for properties with values less than 32 (like Generak_Category),
-        /// other maps will have unpredictable results
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::iter_ranges_for_group,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_group<'a>(
-            &'a self,
-            group: GeneralCategoryGroup,
-        ) -> Box<CodePointRangeIterator<'a>> {
-            let ranges = self
-                .0
-                .as_borrowed()
-                .iter_ranges_mapped(move |v| {
-                    let val_mask = 1_u32.checked_shl(v.into()).unwrap_or(0);
-                    val_mask & group.mask != 0
-                })
-                .filter(|v| v.value)
-                .map(|v| v.range);
-            Box::new(CodePointRangeIterator(Box::new(ranges)))
-        }
-
-        /// Gets a [`CodePointSetData`] representing all entries in this map that map to the given value
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::get_set_for_value,
-            FnInStruct
-        )]
-        pub fn get_set_for_value(&self, value: u8) -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                self.0.as_borrowed().get_set_for_value(value),
-            ))
-        }
-
-        /// Create a map for the `General_Category` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory, Enum)]
-        #[diplomat::attr(auto, named_constructor = "general_category")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_general_category() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<GeneralCategory>::new().static_to_owned())
-        }
-
-        /// Create a map for the `General_Category` property, using a particular data source
-        #[diplomat::rust_link(icu::properties::props::GeneralCategory, Enum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "general_category_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_general_category_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(icu_properties::CodePointMapData::<
-                GeneralCategory,
-            >::try_new_unstable(
-                &provider.get_unstable()?
-            )?))
-        }
-
-        /// Create a map for the `Bidi_Class` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::BidiClass, Struct)]
-        #[diplomat::attr(auto, named_constructor = "bidi_class")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_bidi_class() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<BidiClass>::new().static_to_owned())
-        }
-
-        /// Create a map for the `Bidi_Class` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::BidiClass, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_class_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_bidi_class_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<BidiClass>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `East_Asian_Width` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth, Struct)]
-        #[diplomat::attr(auto, named_constructor = "east_asian_width")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_east_asian_width() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<EastAsianWidth>::new().static_to_owned())
-        }
-
-        /// Create a map for the `East_Asian_Width` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::EastAsianWidth, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "east_asian_width_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_east_asian_width_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<EastAsianWidth>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `Hangul_Syllable_Type` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::HangulSyllableType, Struct)]
-        #[diplomat::attr(auto, named_constructor = "hangul_syllable_type")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_hangul_syllable_type() -> Box<CodePointMapData8> {
-            convert_8(
-                icu_properties::CodePointMapData::<HangulSyllableType>::new().static_to_owned(),
-            )
-        }
-        /// Create a map for the `Hangul_Syllable_Type` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::HangulSyllableType, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "hangul_syllable_type_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_hangul_syllable_type_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(icu_properties::CodePointMapData::<
-                HangulSyllableType,
-            >::try_new_unstable(
-                &provider.get_unstable()?
-            )?))
-        }
-        /// Create a map for the `Indic_Syllabic_Property` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory, Struct)]
-        #[diplomat::attr(auto, named_constructor = "indic_syllabic_category")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_indic_syllabic_category() -> Box<CodePointMapData8> {
-            convert_8(
-                icu_properties::CodePointMapData::<IndicSyllabicCategory>::new().static_to_owned(),
-            )
-        }
-        /// Create a map for the `Indic_Syllabic_Property` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "indic_syllabic_category_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_indic_syllabic_category_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(icu_properties::CodePointMapData::<
-                IndicSyllabicCategory,
-            >::try_new_unstable(
-                &provider.get_unstable()?
-            )?))
-        }
-        /// Create a map for the `Line_Break` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::LineBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "line_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_line_break() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<LineBreak>::new().static_to_owned())
-        }
-        /// Create a map for the `Line_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::LineBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "line_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_line_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<LineBreak>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `Grapheme_Cluster_Break` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GraphemeClusterBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "grapheme_cluster_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_grapheme_cluster_break() -> Box<CodePointMapData8> {
-            convert_8(
-                icu_properties::CodePointMapData::<GraphemeClusterBreak>::new().static_to_owned(),
-            )
-        }
-        /// Create a map for the `Grapheme_Cluster_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::GraphemeClusterBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_cluster_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_grapheme_cluster_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(icu_properties::CodePointMapData::<
-                GraphemeClusterBreak,
-            >::try_new_unstable(
-                &provider.get_unstable()?
-            )?))
-        }
-        /// Create a map for the `Word_Break` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::WordBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "word_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_word_break() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<WordBreak>::new().static_to_owned())
-        }
-        /// Create a map for the `Word_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::WordBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "word_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_word_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<WordBreak>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `Sentence_Break` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "sentence_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_sentence_break() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<SentenceBreak>::new().static_to_owned())
-        }
-        /// Create a map for the `Sentence_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::SentenceBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "sentence_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_sentence_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<SentenceBreak>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `Joining_Type` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::JoiningType, Struct)]
-        #[diplomat::attr(auto, named_constructor = "joining_type")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_joining_type() -> Box<CodePointMapData8> {
-            convert_8(icu_properties::CodePointMapData::<JoiningType>::new().static_to_owned())
-        }
-
-        /// Create a map for the `Joining_Type` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::JoiningType, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "joining_type_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_joining_type_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(
-                icu_properties::CodePointMapData::<JoiningType>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?,
-            ))
-        }
-        /// Create a map for the `Canonical_Combining_Class` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass, Struct)]
-        #[diplomat::attr(auto, named_constructor = "canonical_combining_class")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_canonical_combining_class() -> Box<CodePointMapData8> {
-            convert_8(
-                icu_properties::CodePointMapData::<CanonicalCombiningClass>::new()
-                    .static_to_owned(),
-            )
-        }
-        /// Create a map for the `Canonical_Combining_Class` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "canonical_combining_class_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_canonical_combining_class_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData8>, DataError> {
-            Ok(convert_8(icu_properties::CodePointMapData::<
-                CanonicalCombiningClass,
-            >::try_new_unstable(
-                &provider.get_unstable()?
-            )?))
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
-    ///
-    /// For properties whose values fit into 16 bits.
-    #[diplomat::rust_link(icu::properties, Mod)]
-    #[diplomat::rust_link(icu::properties::CodePointMapData, Struct)]
-    #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed, Struct)]
-    pub struct CodePointMapData16(icu_properties::CodePointMapData<u16>);
-
-    impl CodePointMapData16 {
-        /// Gets the value for a code point.
-        #[diplomat::rust_link(icu::properties::props::CodePointMapDataBorrowed::get, FnInStruct)]
-        #[diplomat::rust_link(icu::properties::CodePointMapDataBorrowed::get32, FnInStruct, hidden)]
-        #[diplomat::attr(auto, indexer)]
-        pub fn get(&self, cp: DiplomatChar) -> u16 {
-            self.0.as_borrowed().get32(cp)
-        }
-
-        /// Produces an iterator over ranges of code points that map to `value`
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::iter_ranges_for_value,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_value<'a>(&'a self, value: u16) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0.as_borrowed().iter_ranges_for_value(value),
-            )))
-        }
-
-        /// Produces an iterator over ranges of code points that do not map to `value`
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::iter_ranges_for_value_complemented,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_value_complemented<'a>(
-            &'a self,
-            value: u16,
-        ) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0
-                    .as_borrowed()
-                    .iter_ranges_for_value_complemented(value),
-            )))
-        }
-
-        /// Gets a [`CodePointSetData`] representing all entries in this map that map to the given value
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::get_set_for_value,
-            FnInStruct
-        )]
-        pub fn get_set_for_value(&self, value: u16) -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                self.0.as_borrowed().get_set_for_value(value),
-            ))
-        }
-
-        /// Create a map for the `Script` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Script, Struct)]
-        #[diplomat::attr(auto, named_constructor = "script")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_script() -> Box<CodePointMapData16> {
-            #[allow(clippy::unwrap_used)] // script is a 16-bit property
-            let data = icu_properties::CodePointMapData::<Script>::new()
-                .static_to_owned()
-                .try_into_converted()
-                .map_err(|_| ())
-                .unwrap();
-            Box::new(CodePointMapData16(data))
-        }
-
-        /// Create a map for the `Script` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Script, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "script_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_script_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointMapData16>, DataError> {
-            #[allow(clippy::unwrap_used)] // script is a 16-bit property
-            Ok(Box::new(CodePointMapData16(
-                icu_properties::CodePointMapData::<Script>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?
-                .try_into_converted()
-                .map_err(|_| ())
-                .unwrap(),
-            )))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_names.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_names.rs
deleted file mode 100644
index e61f2b04..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_names.rs
+++ /dev/null
@@ -1,395 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use crate::properties_enums::ffi::GeneralCategoryGroup;
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    /// A type capable of looking up a property value from a string name.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::properties::PropertyParser, Struct)]
-    #[diplomat::rust_link(icu::properties::PropertyParserBorrowed, Struct)]
-    #[diplomat::rust_link(icu::properties::PropertyParser::new, FnInStruct)]
-    #[diplomat::rust_link(icu::properties::PropertyParserBorrowed::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(
-        icu::properties::props::NamedEnumeratedProperty::try_from_str,
-        FnInTrait,
-        hidden
-    )]
-    pub struct PropertyValueNameToEnumMapper(icu_properties::PropertyParser<u16>);
-
-    impl PropertyValueNameToEnumMapper {
-        /// Get the property value matching the given name, using strict matching
-        ///
-        /// Returns -1 if the name is unknown for this property
-        #[diplomat::rust_link(icu::properties::PropertyParserBorrowed::get_strict, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::PropertyParserBorrowed::get_strict_u16,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_strict(&self, name: &DiplomatStr) -> i16 {
-            if let Ok(name) = core::str::from_utf8(name) {
-                self.0.as_borrowed().get_strict(name)
-            } else {
-                None
-            }
-            .map(|u_16| u_16 as i16)
-            .unwrap_or(-1)
-        }
-
-        /// Get the property value matching the given name, using loose matching
-        ///
-        /// Returns -1 if the name is unknown for this property
-        #[diplomat::rust_link(icu::properties::PropertyParserBorrowed::get_loose, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::PropertyParserBorrowed::get_loose_u16,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_loose(&self, name: &DiplomatStr) -> i16 {
-            if let Ok(name) = core::str::from_utf8(name) {
-                self.0.as_borrowed().get_loose(name)
-            } else {
-                None
-            }
-            .map(|u_16| u_16 as i16)
-            .unwrap_or(-1)
-        }
-
-        /// Create a name-to-enum mapper for the `General_Category` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::GeneralCategory, Enum)]
-        #[diplomat::attr(auto, named_constructor = "general_category")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_general_category() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::GeneralCategory>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-
-        /// Create a name-to-enum mapper for the `General_Category` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::GeneralCategory, Enum)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "general_category_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_general_category_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<
-                                    icu_properties::props::GeneralCategory,
-                                >::try_new_unstable(&provider.get_unstable()?)?
-                    .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Hangul_Syllable_Type` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::HangulSyllableType, Struct)]
-        #[diplomat::attr(auto, named_constructor = "hangul_syllable_type")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_hangul_syllable_type() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::HangulSyllableType>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Hangul_Syllable_Type` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::HangulSyllableType, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "hangul_syllable_type_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_hangul_syllable_type_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                        icu_properties::PropertyParser::<
-                                icu_properties::props::HangulSyllableType,
-                            >::try_new_unstable(&provider.get_unstable()?)?
-                    .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `East_Asian_Width` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::EastAsianWidth, Struct)]
-        #[diplomat::attr(auto, named_constructor = "east_asian_width")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_east_asian_width() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::EastAsianWidth>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `East_Asian_Width` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::EastAsianWidth, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "east_asian_width_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_east_asian_width_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<
-                                    icu_properties::props::EastAsianWidth,
-                                >::try_new_unstable(&provider.get_unstable()?
-                    )?
-                    .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Bidi_Class` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::BidiClass, Struct)]
-        #[diplomat::attr(auto, named_constructor = "bidi_class")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_bidi_class() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::BidiClass>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Bidi_Class` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::BidiClass, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_class_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_bidi_class_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                    icu_properties::PropertyParser::<icu_properties::props::BidiClass>::try_new_unstable(&provider.get_unstable()?)?
-                .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Indic_Syllabic_Category` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::IndicSyllabicCategory, Struct)]
-        #[diplomat::attr(auto, named_constructor = "indic_syllabic_category")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_indic_syllabic_category() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(icu_properties::PropertyParser::<icu_properties::props::IndicSyllabicCategory>::new().static_to_owned().erase()))
-        }
-        /// Create a name-to-enum mapper for the `Indic_Syllabic_Category` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::IndicSyllabicCategory, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "indic_syllabic_category_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_indic_syllabic_category_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(
-                Box::new(
-                    PropertyValueNameToEnumMapper(
-                        icu_properties::PropertyParser::<
-                            icu_properties::props::IndicSyllabicCategory,
-                        >::try_new_unstable(&provider.get_unstable()?)?
-                        .erase(),
-                    ),
-                ),
-            )
-        }
-        /// Create a name-to-enum mapper for the `Line_Break` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::LineBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "line_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_line_break() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::LineBreak>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Line_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::LineBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "line_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_line_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                    icu_properties::PropertyParser::<icu_properties::props::LineBreak>::try_new_unstable(&provider.get_unstable()?
-                )?
-                .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Grapheme_Cluster_Break` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::GraphemeClusterBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "grapheme_cluster_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_grapheme_cluster_break() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::GraphemeClusterBreak>::new(
-                )
-                .static_to_owned()
-                .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Grapheme_Cluster_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::GraphemeClusterBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_cluster_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_grapheme_cluster_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(
-                Box::new(
-                    PropertyValueNameToEnumMapper(
-                        icu_properties::PropertyParser::<
-                            icu_properties::props::GraphemeClusterBreak,
-                        >::try_new_unstable(&provider.get_unstable()?)?
-                        .erase(),
-                    ),
-                ),
-            )
-        }
-        /// Create a name-to-enum mapper for the `Word_Break` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::WordBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "word_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_word_break() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::WordBreak>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Word_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::WordBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "word_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_word_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                    icu_properties::PropertyParser::<icu_properties::props::WordBreak>::try_new_unstable(&provider.get_unstable()?)?
-                .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Sentence_Break` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::SentenceBreak, Struct)]
-        #[diplomat::attr(auto, named_constructor = "sentence_break")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_sentence_break() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::SentenceBreak>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Sentence_Break` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::SentenceBreak, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "sentence_break_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_sentence_break_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<
-                                        icu_properties::props::SentenceBreak,
-                                    >::try_new_unstable(&provider.get_unstable()?
-                    )?
-                    .erase(),
-            )))
-        }
-        /// Create a name-to-enum mapper for the `Script` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::Script, Struct)]
-        #[diplomat::attr(auto, named_constructor = "script")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_script() -> Box<PropertyValueNameToEnumMapper> {
-            Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::Script>::new()
-                    .static_to_owned()
-                    .erase(),
-            ))
-        }
-        /// Create a name-to-enum mapper for the `Script` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::Script, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "script_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_script_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<PropertyValueNameToEnumMapper>, DataError> {
-            Ok(Box::new(PropertyValueNameToEnumMapper(
-                icu_properties::PropertyParser::<icu_properties::props::Script>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?
-                .erase(),
-            )))
-        }
-    }
-
-    /// A type capable of looking up General Category Group values from a string name.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::properties::PropertyParser, Struct)]
-    #[diplomat::rust_link(icu::properties::props::GeneralCategory, Struct)]
-    pub struct GeneralCategoryNameToGroupMapper(
-        icu_properties::PropertyParser<icu_properties::props::GeneralCategoryGroup>,
-    );
-
-    impl GeneralCategoryNameToGroupMapper {
-        /// Get the mask value matching the given name, using strict matching
-        ///
-        /// Returns 0 if the name is unknown for this property
-        #[diplomat::rust_link(icu::properties::PropertyParserBorrowed::get_strict, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::PropertyParserBorrowed::get_strict_u16,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_strict(&self, name: &DiplomatStr) -> GeneralCategoryGroup {
-            if let Ok(name) = core::str::from_utf8(name) {
-                self.0.as_borrowed().get_strict(name)
-            } else {
-                None
-            }
-            .map(Into::into)
-            .unwrap_or_default()
-        }
-
-        /// Get the mask value matching the given name, using loose matching
-        ///
-        /// Returns 0 if the name is unknown for this property
-        #[diplomat::rust_link(icu::properties::PropertyParserBorrowed::get_loose, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::PropertyParserBorrowed::get_loose_u16,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_loose(&self, name: &DiplomatStr) -> GeneralCategoryGroup {
-            if let Ok(name) = core::str::from_utf8(name) {
-                self.0.as_borrowed().get_loose(name)
-            } else {
-                None
-            }
-            .map(Into::into)
-            .unwrap_or_default()
-        }
-        /// Create a name-to-mask mapper for the `General_Category` property, using compiled data.
-        #[diplomat::rust_link(icu_properties::props::GeneralCategoryGroup, Struct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<GeneralCategoryNameToGroupMapper> {
-            Box::new(GeneralCategoryNameToGroupMapper(
-                icu_properties::PropertyParser::<icu_properties::props::GeneralCategoryGroup>::new(
-                )
-                .static_to_owned(),
-            ))
-        }
-        /// Create a name-to-mask mapper for the `General_Category` property, using a particular data source.
-        #[diplomat::rust_link(icu_properties::props::GeneralCategoryGroup, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<GeneralCategoryNameToGroupMapper>, DataError> {
-            Ok(Box::new(
-                GeneralCategoryNameToGroupMapper(icu_properties::PropertyParser::<
-                    icu_properties::props::GeneralCategoryGroup,
-                >::try_new_unstable(
-                    &provider.get_unstable()?
-                )?),
-            ))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_sets.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_sets.rs
deleted file mode 100644
index 44cef29e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_sets.rs
+++ /dev/null
@@ -1,2103 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_properties::props::GeneralCategory;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_properties::props::{
-        Alnum, Alphabetic, AsciiHexDigit, BidiControl, BidiMirrored, Blank, CaseIgnorable,
-        CaseSensitive, Cased, ChangesWhenCasefolded, ChangesWhenCasemapped, ChangesWhenLowercased,
-        ChangesWhenNfkcCasefolded, ChangesWhenTitlecased, ChangesWhenUppercased, Dash,
-        DefaultIgnorableCodePoint, Deprecated, Diacritic, Emoji, EmojiComponent, EmojiModifier,
-        EmojiModifierBase, EmojiPresentation, ExtendedPictographic, Extender,
-        FullCompositionExclusion, Graph, GraphemeBase, GraphemeExtend, GraphemeLink, HexDigit,
-        Hyphen, IdContinue, IdStart, Ideographic, IdsBinaryOperator, IdsTrinaryOperator,
-        JoinControl, LogicalOrderException, Lowercase, Math, NfcInert, NfdInert, NfkcInert,
-        NfkdInert, NoncharacterCodePoint, PatternSyntax, PatternWhiteSpace,
-        PrependedConcatenationMark, Print, QuotationMark, Radical, RegionalIndicator,
-        SegmentStarter, SentenceTerminal, SoftDotted, TerminalPunctuation, UnifiedIdeograph,
-        Uppercase, VariationSelector, WhiteSpace, Xdigit, XidContinue, XidStart,
-    };
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::errors::ffi::DataError;
-    use crate::properties_iter::ffi::CodePointRangeIterator;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-
-    #[cfg(feature = "compiled_data")]
-    use diplomat_runtime::DiplomatChar;
-
-    #[diplomat::opaque]
-    /// An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-    #[diplomat::rust_link(icu::properties, Mod)]
-    #[diplomat::rust_link(icu::properties::CodePointSetData, Struct)]
-    #[diplomat::rust_link(icu::properties::CodePointSetData::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(icu::properties::CodePointSetDataBorrowed::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(icu::properties::CodePointSetDataBorrowed, Struct)]
-    pub struct CodePointSetData(pub icu_properties::CodePointSetData);
-
-    impl CodePointSetData {
-        /// Checks whether the code point is in the set.
-        #[diplomat::rust_link(icu::properties::CodePointSetDataBorrowed::contains, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::CodePointSetDataBorrowed::contains32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn contains(&self, cp: DiplomatChar) -> bool {
-            self.0.as_borrowed().contains32(cp)
-        }
-
-        /// Produces an iterator over ranges of code points contained in this set
-        #[diplomat::rust_link(icu::properties::CodePointSetDataBorrowed::iter_ranges, FnInStruct)]
-        pub fn iter_ranges<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0.as_borrowed().iter_ranges(),
-            )))
-        }
-
-        /// Produces an iterator over ranges of code points not contained in this set
-        #[diplomat::rust_link(
-            icu::properties::CodePointSetDataBorrowed::iter_ranges_complemented,
-            FnInStruct
-        )]
-        pub fn iter_ranges_complemented<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0.as_borrowed().iter_ranges_complemented(),
-            )))
-        }
-
-        /// Produces a set for obtaining General Category Group values
-        /// which is a mask with the same format as the `U_GC_XX_MASK` mask in ICU4C, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup, Struct)]
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::get_set_for_value_group,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, named_constructor = "general_category_group")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_general_category_group(
-            group: crate::properties_enums::ffi::GeneralCategoryGroup,
-        ) -> Box<CodePointSetData> {
-            let data = icu_properties::CodePointMapData::<GeneralCategory>::new().static_to_owned();
-
-            Box::new(CodePointSetData(
-                data.as_borrowed()
-                    .get_set_for_value_group(group.into_props_group()),
-            ))
-        }
-
-        /// Produces a set for obtaining General Category Group values
-        /// which is a mask with the same format as the `U_GC_XX_MASK` mask in ICU4C, using a provided data source.
-        #[diplomat::rust_link(icu::properties::props::GeneralCategoryGroup, Struct)]
-        #[diplomat::rust_link(
-            icu::properties::CodePointMapDataBorrowed::get_set_for_value_group,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "general_category_group_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_general_category_group_with_provider(
-            provider: &DataProvider,
-            group: u32,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointMapData::<GeneralCategory>::try_new_unstable(
-                    &provider.get_unstable()?,
-                )?
-                .as_borrowed()
-                .get_set_for_value_group(group.into()),
-            )))
-        }
-
-        /// Get the `Ascii_Hex_Digit` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn ascii_hex_digit_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<AsciiHexDigit>().contains32(ch)
-        }
-        /// Create a set for the `Ascii_Hex_Digit` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::AsciiHexDigit, Struct)]
-        #[diplomat::attr(auto, named_constructor = "ascii_hex_digit")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ascii_hex_digit() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<AsciiHexDigit>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Ascii_Hex_Digit` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::AsciiHexDigit, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ascii_hex_digit_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ascii_hex_digit_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<AsciiHexDigit>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Alnum` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn alnum_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Alnum>().contains32(ch)
-        }
-        /// Create a set for the `Alnum` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Alnum, Struct)]
-        #[diplomat::attr(auto, named_constructor = "alnum")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_alnum() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Alnum>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Alnum` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Alnum, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "alnum_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_alnum_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Alnum>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Alphabetic` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn alphabetic_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Alphabetic>().contains32(ch)
-        }
-        /// Create a set for the `Alphabetic` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Alphabetic, Struct)]
-        #[diplomat::attr(auto, named_constructor = "alphabetic")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_alphabetic() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Alphabetic>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Alphabetic` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Alphabetic, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "alphabetic_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_alphabetic_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Alphabetic>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Bidi_Control` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn bidi_control_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<BidiControl>().contains32(ch)
-        }
-        /// Create a set for the `Bidi_Control` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::BidiControl, Struct)]
-        #[diplomat::attr(auto, named_constructor = "bidi_control")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_bidi_control() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<BidiControl>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Bidi_Control` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::BidiControl, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_control_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_bidi_control_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<BidiControl>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Bidi_Mirrored` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn bidi_mirrored_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<BidiMirrored>().contains32(ch)
-        }
-        /// Create a set for the `Bidi_Mirrored` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::BidiMirrored, Struct)]
-        #[diplomat::attr(auto, named_constructor = "bidi_mirrored")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_bidi_mirrored() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<BidiMirrored>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Bidi_Mirrored` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::BidiMirrored, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_mirrored_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_bidi_mirrored_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<BidiMirrored>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Blank` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn blank_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Blank>().contains32(ch)
-        }
-        /// Create a set for the `Blank` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Blank, Struct)]
-        #[diplomat::attr(auto, named_constructor = "blank")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_blank() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Blank>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Blank` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Blank, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "blank_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_blank_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Blank>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Cased` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn cased_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Cased>().contains32(ch)
-        }
-        /// Create a set for the `Cased` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Cased, Struct)]
-        #[diplomat::attr(auto, named_constructor = "cased")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_cased() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Cased>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Cased` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Cased, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "cased_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_cased_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Cased>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Case_Ignorable` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn case_ignorable_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<CaseIgnorable>().contains32(ch)
-        }
-        /// Create a set for the `Case_Ignorable` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::CaseIgnorable, Struct)]
-        #[diplomat::attr(auto, named_constructor = "case_ignorable")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_case_ignorable() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<CaseIgnorable>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Case_Ignorable` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::CaseIgnorable, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "case_ignorable_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_case_ignorable_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<CaseIgnorable>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Full_Composition_Exclusion` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn full_composition_exclusion_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<FullCompositionExclusion>().contains32(ch)
-        }
-        /// Create a set for the `Full_Composition_Exclusion` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::FullCompositionExclusion, Struct)]
-        #[diplomat::attr(auto, named_constructor = "full_composition_exclusion")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_full_composition_exclusion() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<FullCompositionExclusion>()
-                    .static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Full_Composition_Exclusion` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::FullCompositionExclusion, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "full_composition_exclusion_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_full_composition_exclusion_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<FullCompositionExclusion>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Casefolded` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_casefolded_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenCasefolded>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Casefolded` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenCasefolded, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_casefolded")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_casefolded() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenCasefolded>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Casefolded` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenCasefolded, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_casefolded_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_casefolded_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenCasefolded>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Casemapped` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_casemapped_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenCasemapped>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Casemapped` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenCasemapped, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_casemapped")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_casemapped() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenCasemapped>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Casemapped` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenCasemapped, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_casemapped_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_casemapped_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenCasemapped>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Nfkc_Casefolded` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_nfkc_casefolded_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenNfkcCasefolded>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Nfkc_Casefolded` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenNfkcCasefolded, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_nfkc_casefolded")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_nfkc_casefolded() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenNfkcCasefolded>()
-                    .static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Nfkc_Casefolded` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenNfkcCasefolded, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_nfkc_casefolded_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_nfkc_casefolded_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenNfkcCasefolded>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Lowercased` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_lowercased_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenLowercased>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Lowercased` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenLowercased, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_lowercased")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_lowercased() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenLowercased>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Lowercased` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenLowercased, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_lowercased_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_lowercased_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenLowercased>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Titlecased` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_titlecased_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenTitlecased>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Titlecased` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenTitlecased, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_titlecased")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_titlecased() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenTitlecased>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Titlecased` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenTitlecased, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_titlecased_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_titlecased_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenTitlecased>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Changes_When_Uppercased` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn changes_when_uppercased_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ChangesWhenUppercased>().contains32(ch)
-        }
-        /// Create a set for the `Changes_When_Uppercased` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenUppercased, Struct)]
-        #[diplomat::attr(auto, named_constructor = "changes_when_uppercased")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_changes_when_uppercased() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ChangesWhenUppercased>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Changes_When_Uppercased` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ChangesWhenUppercased, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_uppercased_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_changes_when_uppercased_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ChangesWhenUppercased>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Dash` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn dash_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Dash>().contains32(ch)
-        }
-        /// Create a set for the `Dash` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Dash, Struct)]
-        #[diplomat::attr(auto, named_constructor = "dash")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dash() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Dash>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Dash` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Dash, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dash_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_dash_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Dash>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Deprecated` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn deprecated_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Deprecated>().contains32(ch)
-        }
-        /// Create a set for the `Deprecated` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Deprecated, Struct)]
-        #[diplomat::attr(auto, named_constructor = "deprecated")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_deprecated() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Deprecated>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Deprecated` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Deprecated, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "deprecated_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_deprecated_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Deprecated>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Default_Ignorable_Code_Point` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn default_ignorable_code_point_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<DefaultIgnorableCodePoint>().contains32(ch)
-        }
-        /// Create a set for the `Default_Ignorable_Code_Point` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::DefaultIgnorableCodePoint, Struct)]
-        #[diplomat::attr(auto, named_constructor = "default_ignorable_code_point")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_default_ignorable_code_point() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<DefaultIgnorableCodePoint>()
-                    .static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Default_Ignorable_Code_Point` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::DefaultIgnorableCodePoint, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "default_ignorable_code_point_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_default_ignorable_code_point_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<DefaultIgnorableCodePoint>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Diacritic` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn diacritic_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Diacritic>().contains32(ch)
-        }
-        /// Create a set for the `Diacritic` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Diacritic, Struct)]
-        #[diplomat::attr(auto, named_constructor = "diacritic")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_diacritic() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Diacritic>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Diacritic` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Diacritic, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "diacritic_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_diacritic_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Diacritic>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Emoji_Modifier_Base` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn emoji_modifier_base_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<EmojiModifierBase>().contains32(ch)
-        }
-        /// Create a set for the `Emoji_Modifier_Base` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::EmojiModifierBase, Struct)]
-        #[diplomat::attr(auto, named_constructor = "emoji_modifier_base")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_emoji_modifier_base() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<EmojiModifierBase>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Emoji_Modifier_Base` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::EmojiModifierBase, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_modifier_base_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_emoji_modifier_base_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<EmojiModifierBase>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Emoji_Component` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn emoji_component_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<EmojiComponent>().contains32(ch)
-        }
-        /// Create a set for the `Emoji_Component` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::EmojiComponent, Struct)]
-        #[diplomat::attr(auto, named_constructor = "emoji_component")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_emoji_component() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<EmojiComponent>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Emoji_Component` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::EmojiComponent, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_component_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_emoji_component_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<EmojiComponent>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Emoji_Modifier` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn emoji_modifier_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<EmojiModifier>().contains32(ch)
-        }
-        /// Create a set for the `Emoji_Modifier` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::EmojiModifier, Struct)]
-        #[diplomat::attr(auto, named_constructor = "emoji_modifier")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_emoji_modifier() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<EmojiModifier>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Emoji_Modifier` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::EmojiModifier, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_modifier_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_emoji_modifier_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<EmojiModifier>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Emoji` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn emoji_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Emoji>().contains32(ch)
-        }
-        /// Create a set for the `Emoji` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Emoji, Struct)]
-        #[diplomat::attr(auto, named_constructor = "emoji")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_emoji() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Emoji>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Emoji` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Emoji, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_emoji_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Emoji>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Emoji_Presentation` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn emoji_presentation_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<EmojiPresentation>().contains32(ch)
-        }
-        /// Create a set for the `Emoji_Presentation` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::EmojiPresentation, Struct)]
-        #[diplomat::attr(auto, named_constructor = "emoji_presentation")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_emoji_presentation() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<EmojiPresentation>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Emoji_Presentation` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::EmojiPresentation, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_presentation_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_emoji_presentation_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<EmojiPresentation>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Extender` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn extender_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Extender>().contains32(ch)
-        }
-        /// Create a set for the `Extender` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Extender, Struct)]
-        #[diplomat::attr(auto, named_constructor = "extender")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_extender() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Extender>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Extender` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Extender, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "extender_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_extender_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Extender>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Extended_Pictographic` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn extended_pictographic_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<ExtendedPictographic>().contains32(ch)
-        }
-        /// Create a set for the `Extended_Pictographic` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::ExtendedPictographic, Struct)]
-        #[diplomat::attr(auto, named_constructor = "extended_pictographic")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_extended_pictographic() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<ExtendedPictographic>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Extended_Pictographic` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::ExtendedPictographic, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "extended_pictographic_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_extended_pictographic_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<ExtendedPictographic>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Graph` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn graph_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Graph>().contains32(ch)
-        }
-        /// Create a set for the `Graph` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Graph, Struct)]
-        #[diplomat::attr(auto, named_constructor = "graph")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_graph() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Graph>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Graph` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Graph, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "graph_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_graph_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Graph>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Grapheme_Base` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn grapheme_base_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<GraphemeBase>().contains32(ch)
-        }
-        /// Create a set for the `Grapheme_Base` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GraphemeBase, Struct)]
-        #[diplomat::attr(auto, named_constructor = "grapheme_base")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_grapheme_base() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<GraphemeBase>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Grapheme_Base` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::GraphemeBase, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_base_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_grapheme_base_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<GraphemeBase>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Grapheme_Extend` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn grapheme_extend_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<GraphemeExtend>().contains32(ch)
-        }
-        /// Create a set for the `Grapheme_Extend` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GraphemeExtend, Struct)]
-        #[diplomat::attr(auto, named_constructor = "grapheme_extend")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_grapheme_extend() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<GraphemeExtend>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Grapheme_Extend` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::GraphemeExtend, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_extend_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_grapheme_extend_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<GraphemeExtend>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Grapheme_Link` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn grapheme_link_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<GraphemeLink>().contains32(ch)
-        }
-        /// Create a set for the `Grapheme_Link` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::GraphemeLink, Struct)]
-        #[diplomat::attr(auto, named_constructor = "grapheme_link")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_grapheme_link() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<GraphemeLink>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Grapheme_Link` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::GraphemeLink, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_link_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_grapheme_link_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<GraphemeLink>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Hex_Digit` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn hex_digit_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<HexDigit>().contains32(ch)
-        }
-        /// Create a set for the `Hex_Digit` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::HexDigit, Struct)]
-        #[diplomat::attr(auto, named_constructor = "hex_digit")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_hex_digit() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<HexDigit>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Hex_Digit` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::HexDigit, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "hex_digit_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_hex_digit_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<HexDigit>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Hyphen` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn hyphen_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Hyphen>().contains32(ch)
-        }
-        /// Create a set for the `Hyphen` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Hyphen, Struct)]
-        #[diplomat::attr(auto, named_constructor = "hyphen")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_hyphen() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Hyphen>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Hyphen` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Hyphen, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "hyphen_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_hyphen_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Hyphen>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Id_Continue` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn id_continue_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<IdContinue>().contains32(ch)
-        }
-        /// Create a set for the `Id_Continue` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::IdContinue, Struct)]
-        #[diplomat::attr(auto, named_constructor = "id_continue")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_id_continue() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<IdContinue>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Id_Continue` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::IdContinue, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "id_continue_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_id_continue_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<IdContinue>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Ideographic` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn ideographic_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Ideographic>().contains32(ch)
-        }
-        /// Create a set for the `Ideographic` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Ideographic, Struct)]
-        #[diplomat::attr(auto, named_constructor = "ideographic")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ideographic() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Ideographic>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Ideographic` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Ideographic, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ideographic_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ideographic_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Ideographic>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Id_Start` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn id_start_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<IdStart>().contains32(ch)
-        }
-        /// Create a set for the `Id_Start` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::IdStart, Struct)]
-        #[diplomat::attr(auto, named_constructor = "id_start")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_id_start() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<IdStart>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Id_Start` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::IdStart, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "id_start_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_id_start_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<IdStart>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Ids_Binary_Operator` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn ids_binary_operator_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<IdsBinaryOperator>().contains32(ch)
-        }
-        /// Create a set for the `Ids_Binary_Operator` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::IdsBinaryOperator, Struct)]
-        #[diplomat::attr(auto, named_constructor = "ids_binary_operator")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ids_binary_operator() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<IdsBinaryOperator>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Ids_Binary_Operator` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::IdsBinaryOperator, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ids_binary_operator_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ids_binary_operator_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<IdsBinaryOperator>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Ids_Trinary_Operator` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn ids_trinary_operator_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<IdsTrinaryOperator>().contains32(ch)
-        }
-        /// Create a set for the `Ids_Trinary_Operator` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::IdsTrinaryOperator, Struct)]
-        #[diplomat::attr(auto, named_constructor = "ids_trinary_operator")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_ids_trinary_operator() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<IdsTrinaryOperator>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Ids_Trinary_Operator` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::IdsTrinaryOperator, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "ids_trinary_operator_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_ids_trinary_operator_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<IdsTrinaryOperator>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Join_Control` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn join_control_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<JoinControl>().contains32(ch)
-        }
-        /// Create a set for the `Join_Control` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::JoinControl, Struct)]
-        #[diplomat::attr(auto, named_constructor = "join_control")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_join_control() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<JoinControl>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Join_Control` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::JoinControl, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "join_control_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_join_control_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<JoinControl>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Logical_Order_Exception` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn logical_order_exception_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<LogicalOrderException>().contains32(ch)
-        }
-        /// Create a set for the `Logical_Order_Exception` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::LogicalOrderException, Struct)]
-        #[diplomat::attr(auto, named_constructor = "logical_order_exception")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_logical_order_exception() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<LogicalOrderException>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Logical_Order_Exception` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::LogicalOrderException, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "logical_order_exception_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_logical_order_exception_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<LogicalOrderException>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Lowercase` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn lowercase_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Lowercase>().contains32(ch)
-        }
-        /// Create a set for the `Lowercase` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Lowercase, Struct)]
-        #[diplomat::attr(auto, named_constructor = "lowercase")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_lowercase() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Lowercase>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Lowercase` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Lowercase, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "lowercase_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_lowercase_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Lowercase>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Math` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn math_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Math>().contains32(ch)
-        }
-        /// Create a set for the `Math` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Math, Struct)]
-        #[diplomat::attr(auto, named_constructor = "math")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_math() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Math>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Math` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Math, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "math_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_math_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Math>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Noncharacter_Code_Point` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn noncharacter_code_point_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<NoncharacterCodePoint>().contains32(ch)
-        }
-        /// Create a set for the `Noncharacter_Code_Point` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::NoncharacterCodePoint, Struct)]
-        #[diplomat::attr(auto, named_constructor = "noncharacter_code_point")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_noncharacter_code_point() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<NoncharacterCodePoint>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Noncharacter_Code_Point` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::NoncharacterCodePoint, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "noncharacter_code_point_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_noncharacter_code_point_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<NoncharacterCodePoint>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Nfc_Inert` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn nfc_inert_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<NfcInert>().contains32(ch)
-        }
-        /// Create a set for the `Nfc_Inert` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::NfcInert, Struct)]
-        #[diplomat::attr(auto, named_constructor = "nfc_inert")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfc_inert() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<NfcInert>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Nfc_Inert` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::NfcInert, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfc_inert_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfc_inert_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<NfcInert>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Nfd_Inert` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn nfd_inert_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<NfdInert>().contains32(ch)
-        }
-        /// Create a set for the `Nfd_Inert` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::NfdInert, Struct)]
-        #[diplomat::attr(auto, named_constructor = "nfd_inert")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfd_inert() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<NfdInert>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Nfd_Inert` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::NfdInert, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfd_inert_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfd_inert_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<NfdInert>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Nfkc_Inert` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn nfkc_inert_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<NfkcInert>().contains32(ch)
-        }
-        /// Create a set for the `Nfkc_Inert` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::NfkcInert, Struct)]
-        #[diplomat::attr(auto, named_constructor = "nfkc_inert")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfkc_inert() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<NfkcInert>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Nfkc_Inert` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::NfkcInert, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkc_inert_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfkc_inert_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<NfkcInert>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Nfkd_Inert` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn nfkd_inert_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<NfkdInert>().contains32(ch)
-        }
-        /// Create a set for the `Nfkd_Inert` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::NfkdInert, Struct)]
-        #[diplomat::attr(auto, named_constructor = "nfkd_inert")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_nfkd_inert() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<NfkdInert>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Nfkd_Inert` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::NfkdInert, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkd_inert_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_nfkd_inert_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<NfkdInert>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Pattern_Syntax` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn pattern_syntax_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<PatternSyntax>().contains32(ch)
-        }
-        /// Create a set for the `Pattern_Syntax` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::PatternSyntax, Struct)]
-        #[diplomat::attr(auto, named_constructor = "pattern_syntax")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_pattern_syntax() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<PatternSyntax>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Pattern_Syntax` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::PatternSyntax, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "pattern_syntax_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_pattern_syntax_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<PatternSyntax>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Pattern_White_Space` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn pattern_white_space_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<PatternWhiteSpace>().contains32(ch)
-        }
-        /// Create a set for the `Pattern_White_Space` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::PatternWhiteSpace, Struct)]
-        #[diplomat::attr(auto, named_constructor = "pattern_white_space")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_pattern_white_space() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<PatternWhiteSpace>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Pattern_White_Space` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::PatternWhiteSpace, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "pattern_white_space_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_pattern_white_space_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<PatternWhiteSpace>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Prepended_Concatenation_Mark` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn prepended_concatenation_mark_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<PrependedConcatenationMark>().contains32(ch)
-        }
-        /// Create a set for the `Prepended_Concatenation_Mark` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::PrependedConcatenationMark, Struct)]
-        #[diplomat::attr(auto, named_constructor = "prepended_concatenation_mark")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_prepended_concatenation_mark() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<PrependedConcatenationMark>()
-                    .static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Prepended_Concatenation_Mark` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::PrependedConcatenationMark, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "prepended_concatenation_mark_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_prepended_concatenation_mark_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<PrependedConcatenationMark>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Print` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn print_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Print>().contains32(ch)
-        }
-        /// Create a set for the `Print` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Print, Struct)]
-        #[diplomat::attr(auto, named_constructor = "print")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_print() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Print>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Print` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Print, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "print_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_print_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Print>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Quotation_Mark` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn quotation_mark_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<QuotationMark>().contains32(ch)
-        }
-        /// Create a set for the `Quotation_Mark` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::QuotationMark, Struct)]
-        #[diplomat::attr(auto, named_constructor = "quotation_mark")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_quotation_mark() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<QuotationMark>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Quotation_Mark` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::QuotationMark, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "quotation_mark_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_quotation_mark_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<QuotationMark>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Radical` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn radical_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Radical>().contains32(ch)
-        }
-        /// Create a set for the `Radical` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Radical, Struct)]
-        #[diplomat::attr(auto, named_constructor = "radical")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_radical() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Radical>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Radical` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Radical, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "radical_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_radical_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Radical>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Regional_Indicator` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn regional_indicator_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<RegionalIndicator>().contains32(ch)
-        }
-        /// Create a set for the `Regional_Indicator` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::RegionalIndicator, Struct)]
-        #[diplomat::attr(auto, named_constructor = "regional_indicator")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_regional_indicator() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<RegionalIndicator>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Regional_Indicator` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::RegionalIndicator, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "regional_indicator_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_regional_indicator_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<RegionalIndicator>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Soft_Dotted` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn soft_dotted_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<SoftDotted>().contains32(ch)
-        }
-        /// Create a set for the `Soft_Dotted` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::SoftDotted, Struct)]
-        #[diplomat::attr(auto, named_constructor = "soft_dotted")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_soft_dotted() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<SoftDotted>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Soft_Dotted` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::SoftDotted, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "soft_dotted_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_soft_dotted_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<SoftDotted>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Segment_Starter` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn segment_starter_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<SegmentStarter>().contains32(ch)
-        }
-        /// Create a set for the `Segment_Starter` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::SegmentStarter, Struct)]
-        #[diplomat::attr(auto, named_constructor = "segment_starter")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_segment_starter() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<SegmentStarter>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Segment_Starter` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::SegmentStarter, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "segment_starter_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_segment_starter_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<SegmentStarter>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Case_Sensitive` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn case_sensitive_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<CaseSensitive>().contains32(ch)
-        }
-        /// Create a set for the `Case_Sensitive` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::CaseSensitive, Struct)]
-        #[diplomat::attr(auto, named_constructor = "case_sensitive")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_case_sensitive() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<CaseSensitive>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Case_Sensitive` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::CaseSensitive, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "case_sensitive_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_case_sensitive_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<CaseSensitive>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Sentence_Terminal` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn sentence_terminal_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<SentenceTerminal>().contains32(ch)
-        }
-        /// Create a set for the `Sentence_Terminal` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::SentenceTerminal, Struct)]
-        #[diplomat::attr(auto, named_constructor = "sentence_terminal")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_sentence_terminal() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<SentenceTerminal>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Sentence_Terminal` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::SentenceTerminal, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "sentence_terminal_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_sentence_terminal_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<SentenceTerminal>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Terminal_Punctuation` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn terminal_punctuation_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<TerminalPunctuation>().contains32(ch)
-        }
-        /// Create a set for the `Terminal_Punctuation` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::TerminalPunctuation, Struct)]
-        #[diplomat::attr(auto, named_constructor = "terminal_punctuation")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_terminal_punctuation() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<TerminalPunctuation>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Terminal_Punctuation` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::TerminalPunctuation, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "terminal_punctuation_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_terminal_punctuation_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<TerminalPunctuation>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Unified_Ideograph` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn unified_ideograph_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<UnifiedIdeograph>().contains32(ch)
-        }
-        /// Create a set for the `Unified_Ideograph` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::UnifiedIdeograph, Struct)]
-        #[diplomat::attr(auto, named_constructor = "unified_ideograph")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_unified_ideograph() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<UnifiedIdeograph>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Unified_Ideograph` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::UnifiedIdeograph, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "unified_ideograph_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_unified_ideograph_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<UnifiedIdeograph>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Uppercase` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn uppercase_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Uppercase>().contains32(ch)
-        }
-        /// Create a set for the `Uppercase` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Uppercase, Struct)]
-        #[diplomat::attr(auto, named_constructor = "uppercase")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_uppercase() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Uppercase>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Uppercase` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Uppercase, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "uppercase_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_uppercase_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Uppercase>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Variation_Selector` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn variation_selector_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<VariationSelector>().contains32(ch)
-        }
-        /// Create a set for the `Variation_Selector` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::VariationSelector, Struct)]
-        #[diplomat::attr(auto, named_constructor = "variation_selector")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_variation_selector() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<VariationSelector>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Variation_Selector` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::VariationSelector, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "variation_selector_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_variation_selector_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<VariationSelector>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `White_Space` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn white_space_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<WhiteSpace>().contains32(ch)
-        }
-        /// Create a set for the `White_Space` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::WhiteSpace, Struct)]
-        #[diplomat::attr(auto, named_constructor = "white_space")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_white_space() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<WhiteSpace>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `White_Space` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::WhiteSpace, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "white_space_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_white_space_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<WhiteSpace>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Xdigit` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn xdigit_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<Xdigit>().contains32(ch)
-        }
-        /// Create a set for the `Xdigit` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::Xdigit, Struct)]
-        #[diplomat::attr(auto, named_constructor = "xdigit")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_xdigit() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<Xdigit>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Xdigit` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::Xdigit, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "xdigit_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_xdigit_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<Xdigit>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Xid_Continue` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn xid_continue_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<XidContinue>().contains32(ch)
-        }
-        /// Create a set for the `Xid_Continue` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::XidContinue, Struct)]
-        #[diplomat::attr(auto, named_constructor = "xid_continue")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_xid_continue() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<XidContinue>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Xid_Continue` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::XidContinue, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "xid_continue_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_xid_continue_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<XidContinue>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// Get the `Xid_Start` value for a given character, using compiled data
-        #[diplomat::rust_link(icu::properties::props::BinaryProperty::for_char, FnInTrait)]
-        #[cfg(feature = "compiled_data")]
-        pub fn xid_start_for_char(ch: DiplomatChar) -> bool {
-            icu_properties::CodePointSetData::new::<XidStart>().contains32(ch)
-        }
-        /// Create a set for the `Xid_Start` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::XidStart, Struct)]
-        #[diplomat::attr(auto, named_constructor = "xid_start")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_xid_start() -> Box<CodePointSetData> {
-            Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::new::<XidStart>().static_to_owned(),
-            ))
-        }
-
-        /// Create a set for the `Xid_Start` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::XidStart, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "xid_start_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_xid_start_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_unstable::<XidStart>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-
-        /// [ecma]: https://tc39.es/ecma262/#table-binary-unicode-properties
-        #[diplomat::rust_link(icu::properties::CodePointSetData::new_for_ecma262, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_ecma262")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_for_ecma262(
-            property_name: &DiplomatStr,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            let data = icu_properties::CodePointSetData::new_for_ecma262(property_name)
-                .ok_or(DataError::Custom)?
-                .static_to_owned();
-            Ok(Box::new(CodePointSetData(data)))
-        }
-
-        /// [ecma]: https://tc39.es/ecma262/#table-binary-unicode-properties
-        #[diplomat::rust_link(icu::properties::CodePointSetData::new_for_ecma262, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "for_ecma262_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_for_ecma262_with_provider(
-            provider: &DataProvider,
-            property_name: &DiplomatStr,
-        ) -> Result<Box<CodePointSetData>, DataError> {
-            Ok(Box::new(CodePointSetData(
-                icu_properties::CodePointSetData::try_new_for_ecma262_unstable(
-                    &provider.get_unstable()?,
-                    property_name,
-                )
-                .ok_or(DataError::Custom)??,
-            )))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_unisets.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_unisets.rs
deleted file mode 100644
index 02652ac..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_unisets.rs
+++ /dev/null
@@ -1,69 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_properties::props::BasicEmoji;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::opaque]
-    /// An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
-    #[diplomat::rust_link(icu::properties, Mod)]
-    #[diplomat::rust_link(icu::properties::EmojiSetData, Struct)]
-    #[diplomat::rust_link(icu::properties::EmojiSetData::new, FnInStruct)]
-    #[diplomat::rust_link(icu::properties::EmojiSetDataBorrowed::new, FnInStruct, hidden)]
-    #[diplomat::rust_link(icu::properties::EmojiSetDataBorrowed, Struct)]
-    pub struct EmojiSetData(pub icu_properties::EmojiSetData);
-
-    impl EmojiSetData {
-        /// Checks whether the string is in the set.
-        #[diplomat::rust_link(icu::properties::EmojiSetDataBorrowed::contains_str, FnInStruct)]
-        #[diplomat::attr(supports = method_overloading, rename = "contains")]
-        pub fn contains_str(&self, s: &DiplomatStr) -> bool {
-            let Ok(s) = core::str::from_utf8(s) else {
-                return false;
-            };
-            self.0.as_borrowed().contains_str(s)
-        }
-        /// Checks whether the code point is in the set.
-        #[diplomat::rust_link(icu::properties::EmojiSetDataBorrowed::contains, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::EmojiSetDataBorrowed::contains32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn contains(&self, cp: DiplomatChar) -> bool {
-            self.0.as_borrowed().contains32(cp)
-        }
-
-        /// Create a map for the `Basic_Emoji` property, using compiled data.
-        #[diplomat::rust_link(icu::properties::props::BasicEmoji, Struct)]
-        #[diplomat::attr(auto, named_constructor = "basic")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_basic() -> Box<EmojiSetData> {
-            Box::new(EmojiSetData(
-                icu_properties::EmojiSetData::new::<BasicEmoji>().static_to_owned(),
-            ))
-        }
-        /// Create a map for the `Basic_Emoji` property, using a particular data source.
-        #[diplomat::rust_link(icu::properties::props::BasicEmoji, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "basic_with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_basic_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<EmojiSetData>, DataError> {
-            Ok(Box::new(EmojiSetData(
-                icu_properties::EmojiSetData::try_new_unstable::<BasicEmoji>(
-                    &provider.get_unstable()?,
-                )?,
-            )))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/provider.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/provider.rs
deleted file mode 100644
index 3cb87a2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/provider.rs
+++ /dev/null
@@ -1,159 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-#[cfg(feature = "buffer_provider")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use icu_provider::buf::BufferProvider;
-
-    use crate::errors::ffi::DataError;
-
-    #[diplomat::opaque]
-    /// An ICU4X data provider, capable of loading ICU4X data keys from some source.
-    ///
-    /// Currently the only source supported is loading from "blob" formatted data from a bytes buffer or the file system.
-    ///
-    /// If you wish to use ICU4X's builtin "compiled data", use the version of the constructors that do not have `_with_provider`
-    /// in their names.
-    #[diplomat::rust_link(icu_provider, Mod)]
-    pub struct DataProvider(Option<Box<dyn BufferProvider + 'static>>);
-
-    impl DataProvider {
-        // These will be unused if almost *all* components are turned off, which is tedious and unproductive to gate for
-        #[allow(unused)]
-        pub(crate) fn get(
-            &self,
-        ) -> Result<&(dyn icu_provider::buf::BufferProvider + 'static), icu_provider::DataError>
-        {
-            match &self.0 {
-                None => Err(icu_provider::DataError::custom(
-                    "This provider has been destroyed",
-                ))?,
-                Some(ref buffer_provider) => Ok(buffer_provider),
-            }
-        }
-
-        // These will be unused if almost *all* components are turned off, which is tedious and unproductive to gate for
-        #[allow(unused)]
-        pub(crate) fn get_unstable(
-            &self,
-        ) -> Result<
-            icu_provider::buf::DeserializingBufferProvider<
-                (dyn icu_provider::buf::BufferProvider + 'static),
-            >,
-            icu_provider::DataError,
-        > {
-            self.get()
-                .map(icu_provider::buf::AsDeserializingBufferProvider::as_deserializing)
-        }
-
-        /// Constructs an `FsDataProvider` and returns it as an [`DataProvider`].
-        /// Requires the `provider_fs` Cargo feature.
-        /// Not supported in WASM.
-        #[diplomat::rust_link(icu_provider_fs::FsDataProvider, Struct)]
-        #[cfg(all(
-            feature = "provider_fs",
-            not(any(target_arch = "wasm32", target_os = "none"))
-        ))]
-        #[diplomat::attr(any(dart, js), disable)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_fs(path: &DiplomatStr) -> Result<Box<DataProvider>, DataError> {
-            Ok(Box::new(DataProvider(Some(Box::new(
-                icu_provider_fs::FsDataProvider::try_new(
-                    // In the future we can start using OsString APIs to support non-utf8 paths
-                    core::str::from_utf8(path)
-                        .map_err(|_| DataError::Io)?
-                        .into(),
-                )?,
-            )))))
-        }
-
-        /// Constructs a `BlobDataProvider` and returns it as an [`DataProvider`].
-        #[diplomat::rust_link(icu_provider_blob::BlobDataProvider, Struct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        #[diplomat::attr(not(supports = static_slices), disable)]
-        pub fn from_byte_slice(
-            blob: &'static [DiplomatByte],
-        ) -> Result<Box<DataProvider>, DataError> {
-            Ok(Box::new(DataProvider(Some(Box::new(
-                icu_provider_blob::BlobDataProvider::try_new_from_static_blob(blob)?,
-            )))))
-        }
-
-        /// Creates a provider that tries the current provider and then, if the current provider
-        /// doesn't support the data key, another provider `other`.
-        ///
-        /// This takes ownership of the `other` provider, leaving an empty provider in its place.
-        #[diplomat::rust_link(icu_provider_adapters::fork::ForkByMarkerProvider, Typedef)]
-        #[diplomat::rust_link(
-            icu_provider_adapters::fork::predicates::MarkerNotFoundPredicate,
-            Struct,
-            hidden
-        )]
-        pub fn fork_by_key(&mut self, other: &mut DataProvider) -> Result<(), DataError> {
-            *self = match (core::mem::take(&mut self.0), core::mem::take(&mut other.0)) {
-                (None, _) | (_, None) => Err(icu_provider::DataError::custom(
-                    "This provider has been destroyed",
-                ))?,
-                (Some(a), Some(b)) => DataProvider(Some(Box::new(
-                    icu_provider_adapters::fork::ForkByMarkerProvider::new(a, b),
-                ))),
-            };
-            Ok(())
-        }
-
-        /// Same as `fork_by_key` but forks by locale instead of key.
-        #[diplomat::rust_link(
-            icu_provider_adapters::fork::predicates::IdentifierNotFoundPredicate,
-            Struct
-        )]
-        pub fn fork_by_locale(&mut self, other: &mut DataProvider) -> Result<(), DataError> {
-            *self = match (core::mem::take(&mut self.0), core::mem::take(&mut other.0)) {
-                (None, _) | (_, None) => Err(icu_provider::DataError::custom(
-                    "This provider has been destroyed",
-                ))?,
-                (Some(a), Some(b)) => DataProvider(Some(Box::new(
-                    icu_provider_adapters::fork::ForkByErrorProvider::new_with_predicate(
-                        a,
-                        b,
-                        icu_provider_adapters::fork::predicates::IdentifierNotFoundPredicate,
-                    ),
-                ))),
-            };
-            Ok(())
-        }
-
-        #[diplomat::rust_link(
-            icu_provider_adapters::fallback::LocaleFallbackProvider::new,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu_provider_adapters::fallback::LocaleFallbackProvider,
-            Struct,
-            compact
-        )]
-        #[allow(unused_variables)] // feature-gated
-        #[cfg(feature = "locale")]
-        pub fn enable_locale_fallback_with(
-            &mut self,
-            fallbacker: &crate::fallbacker::ffi::LocaleFallbacker,
-        ) -> Result<(), DataError> {
-            *self = match core::mem::take(&mut self.0) {
-                None => Err(icu_provider::DataError::custom(
-                    "This provider has been destroyed",
-                ))?,
-                Some(inner) => DataProvider(Some(Box::new(
-                    icu_provider_adapters::fallback::LocaleFallbackProvider::new(
-                        inner,
-                        fallbacker.0.clone(),
-                    ),
-                ))),
-            };
-            Ok(())
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/script.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/script.rs
deleted file mode 100644
index 35d88c1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/script.rs
+++ /dev/null
@@ -1,203 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::properties_iter::ffi::CodePointRangeIterator;
-    use crate::properties_sets::ffi::CodePointSetData;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::opaque]
-    /// An ICU4X ScriptWithExtensions map object, capable of holding a map of codepoints to scriptextensions values
-    #[diplomat::rust_link(icu::properties::script::ScriptWithExtensions, Struct)]
-    pub struct ScriptWithExtensions(pub icu_properties::script::ScriptWithExtensions);
-
-    #[diplomat::opaque]
-    /// A slightly faster ScriptWithExtensions object
-    #[diplomat::rust_link(icu::properties::script::ScriptWithExtensionsBorrowed, Struct)]
-    pub struct ScriptWithExtensionsBorrowed<'a>(
-        pub icu_properties::script::ScriptWithExtensionsBorrowed<'a>,
-    );
-    #[diplomat::opaque]
-    /// An object that represents the Script_Extensions property for a single character
-    #[diplomat::rust_link(icu::properties::script::ScriptExtensionsSet, Struct)]
-    pub struct ScriptExtensionsSet<'a>(pub icu_properties::script::ScriptExtensionsSet<'a>);
-
-    impl ScriptWithExtensions {
-        /// Create a map for the `Script`/`Script_Extensions` properties, using compiled data.
-        #[diplomat::rust_link(icu::properties::script::ScriptWithExtensions::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<ScriptWithExtensions> {
-            Box::new(ScriptWithExtensions(
-                icu_properties::script::ScriptWithExtensions::new().static_to_owned(),
-            ))
-        }
-
-        /// Create a map for the `Script`/`Script_Extensions` properties, using compiled data.
-        #[diplomat::rust_link(icu::properties::script::ScriptWithExtensions::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::new,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<ScriptWithExtensions>, DataError> {
-            Ok(Box::new(ScriptWithExtensions(
-                icu_properties::script::ScriptWithExtensions::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        /// Get the Script property value for a code point
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_val,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_val32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_script_val(&self, ch: DiplomatChar) -> u16 {
-            self.0.as_borrowed().get_script_val32(ch).to_icu4c_value()
-        }
-
-        /// Check if the Script_Extensions property of the given code point covers the given script
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::has_script,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::has_script32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn has_script(&self, ch: DiplomatChar, script: u16) -> bool {
-            self.0
-                .as_borrowed()
-                .has_script32(ch, icu_properties::props::Script::from_icu4c_value(script))
-        }
-
-        /// Borrow this object for a slightly faster variant with more operations
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensions::as_borrowed,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, getter)]
-        pub fn as_borrowed<'a>(&'a self) -> Box<ScriptWithExtensionsBorrowed<'a>> {
-            Box::new(ScriptWithExtensionsBorrowed(self.0.as_borrowed()))
-        }
-
-        /// Get a list of ranges of code points that contain this script in their Script_Extensions values
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_extensions_ranges,
-            FnInStruct
-        )]
-        pub fn iter_ranges_for_script<'a>(
-            &'a self,
-            script: u16,
-        ) -> Box<CodePointRangeIterator<'a>> {
-            Box::new(CodePointRangeIterator(Box::new(
-                self.0.as_borrowed().get_script_extensions_ranges(
-                    icu_properties::props::Script::from_icu4c_value(script),
-                ),
-            )))
-        }
-    }
-
-    impl<'a> ScriptWithExtensionsBorrowed<'a> {
-        /// Get the Script property value for a code point
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_val,
-            FnInStruct
-        )]
-        /// Get the Script property value for a code point
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_val32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_script_val(&self, ch: DiplomatChar) -> u16 {
-            self.0.get_script_val32(ch).to_icu4c_value()
-        }
-        /// Get the Script property value for a code point
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_extensions_val,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_extensions_val32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn get_script_extensions_val(&self, ch: DiplomatChar) -> Box<ScriptExtensionsSet<'a>> {
-            Box::new(ScriptExtensionsSet(self.0.get_script_extensions_val32(ch)))
-        }
-        /// Check if the Script_Extensions property of the given code point covers the given script
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::has_script,
-            FnInStruct
-        )]
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::has_script32,
-            FnInStruct,
-            hidden
-        )]
-        pub fn has_script(&self, ch: DiplomatChar, script: u16) -> bool {
-            self.0
-                .has_script32(ch, icu_properties::props::Script::from_icu4c_value(script))
-        }
-
-        /// Build the CodePointSetData corresponding to a codepoints matching a particular script
-        /// in their Script_Extensions
-        #[diplomat::rust_link(
-            icu::properties::script::ScriptWithExtensionsBorrowed::get_script_extensions_set,
-            FnInStruct
-        )]
-        pub fn get_script_extensions_set(&self, script: u16) -> Box<CodePointSetData> {
-            let list = self
-                .0
-                .get_script_extensions_set(icu_properties::props::Script::from_icu4c_value(script))
-                .into_owned();
-            let set = icu_properties::CodePointSetData::from_code_point_inversion_list(list);
-            Box::new(CodePointSetData(set))
-        }
-    }
-    impl<'a> ScriptExtensionsSet<'a> {
-        /// Check if the Script_Extensions property of the given code point covers the given script
-        #[diplomat::rust_link(icu::properties::script::ScriptExtensionsSet::contains, FnInStruct)]
-        pub fn contains(&self, script: u16) -> bool {
-            self.0
-                .contains(&icu_properties::props::Script::from_icu4c_value(script))
-        }
-
-        /// Get the number of scripts contained in here
-        #[diplomat::rust_link(icu::properties::script::ScriptExtensionsSet::iter, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn count(&self) -> usize {
-            self.0.array_len()
-        }
-
-        /// Get script at index
-        #[diplomat::rust_link(icu::properties::script::ScriptExtensionsSet::iter, FnInStruct)]
-        pub fn script_at(&self, index: usize) -> Option<u16> {
-            self.0.array_get(index).map(|x| x.to_icu4c_value())
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_grapheme.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_grapheme.rs
deleted file mode 100644
index c085ee5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_grapheme.rs
+++ /dev/null
@@ -1,167 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    #[diplomat::opaque]
-    /// An ICU4X grapheme-cluster-break segmenter, capable of finding grapheme cluster breakpoints
-    /// in strings.
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter, Struct)]
-    pub struct GraphemeClusterSegmenter(icu_segmenter::GraphemeClusterSegmenter);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator, Struct)]
-    #[diplomat::rust_link(
-        icu::segmenter::GraphemeClusterBreakIteratorPotentiallyIllFormedUtf8,
-        Typedef,
-        hidden
-    )]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIteratorUtf8, Typedef, hidden)]
-    pub struct GraphemeClusterBreakIteratorUtf8<'a>(
-        icu_segmenter::GraphemeClusterBreakIteratorPotentiallyIllFormedUtf8<'a, 'a>,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIteratorUtf16, Typedef, hidden)]
-    pub struct GraphemeClusterBreakIteratorUtf16<'a>(
-        icu_segmenter::GraphemeClusterBreakIteratorUtf16<'a, 'a>,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIteratorLatin1, Typedef, hidden)]
-    pub struct GraphemeClusterBreakIteratorLatin1<'a>(
-        icu_segmenter::GraphemeClusterBreakIteratorLatin1<'a, 'a>,
-    );
-
-    impl GraphemeClusterSegmenter {
-        /// Construct an [`GraphemeClusterSegmenter`] using compiled data.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter::new, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<GraphemeClusterSegmenter> {
-            Box::new(GraphemeClusterSegmenter(
-                icu_segmenter::GraphemeClusterSegmenter::new(),
-            ))
-        }
-        /// Construct an [`GraphemeClusterSegmenter`].
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<GraphemeClusterSegmenter>, DataError> {
-            Ok(Box::new(GraphemeClusterSegmenter(
-                icu_segmenter::GraphemeClusterSegmenter::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(
-            icu::segmenter::GraphemeClusterSegmenter::segment_str,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter::segment_utf8, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "segment")]
-        pub fn segment_utf8<'a>(
-            &'a self,
-            input: &'a DiplomatStr,
-        ) -> Box<GraphemeClusterBreakIteratorUtf8<'a>> {
-            Box::new(GraphemeClusterBreakIteratorUtf8(self.0.segment_utf8(input)))
-        }
-
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter::segment_utf16, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "segment")]
-        #[diplomat::attr(supports = utf8_strings, rename = "segment16")]
-        pub fn segment_utf16<'a>(
-            &'a self,
-            input: &'a DiplomatStr16,
-        ) -> Box<GraphemeClusterBreakIteratorUtf16<'a>> {
-            Box::new(GraphemeClusterBreakIteratorUtf16(
-                self.0.segment_utf16(input),
-            ))
-        }
-
-        /// Segments a Latin-1 string.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterSegmenter::segment_latin1, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        pub fn segment_latin1<'a>(
-            &'a self,
-            input: &'a [u8],
-        ) -> Box<GraphemeClusterBreakIteratorLatin1<'a>> {
-            Box::new(GraphemeClusterBreakIteratorLatin1(
-                self.0.segment_latin1(input),
-            ))
-        }
-    }
-
-    impl<'a> GraphemeClusterBreakIteratorUtf8<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::GraphemeClusterBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> GraphemeClusterBreakIteratorUtf16<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::GraphemeClusterBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> GraphemeClusterBreakIteratorLatin1<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::GraphemeClusterBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::GraphemeClusterBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_line.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_line.rs
deleted file mode 100644
index ad7ebc2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_line.rs
+++ /dev/null
@@ -1,319 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::locale_core::ffi::Locale;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-    use diplomat_runtime::DiplomatOption;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_segmenter::options::LineBreakOptions;
-
-    #[diplomat::opaque]
-    /// An ICU4X line-break segmenter, capable of finding breakpoints in strings.
-    #[diplomat::rust_link(icu::segmenter::LineSegmenter, Struct)]
-    pub struct LineSegmenter(icu_segmenter::LineSegmenter);
-
-    #[diplomat::rust_link(icu::segmenter::options::LineBreakStrictness, Enum)]
-    #[diplomat::enum_convert(icu_segmenter::options::LineBreakStrictness, needs_wildcard)]
-    pub enum LineBreakStrictness {
-        Loose,
-        Normal,
-        Strict,
-        Anywhere,
-    }
-
-    #[diplomat::rust_link(icu::segmenter::options::LineBreakWordOption, Enum)]
-    #[diplomat::enum_convert(icu_segmenter::options::LineBreakWordOption, needs_wildcard)]
-    pub enum LineBreakWordOption {
-        Normal,
-        BreakAll,
-        KeepAll,
-    }
-
-    #[diplomat::rust_link(icu::segmenter::options::LineBreakOptions, Struct)]
-    #[diplomat::attr(supports = non_exhaustive_structs, rename = "LineBreakOptions")]
-    pub struct LineBreakOptionsV2 {
-        pub strictness: DiplomatOption<LineBreakStrictness>,
-        pub word_option: DiplomatOption<LineBreakWordOption>,
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIterator, Struct)]
-    #[diplomat::rust_link(
-        icu::segmenter::LineBreakIteratorPotentiallyIllFormedUtf8,
-        Typedef,
-        compact
-    )]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIteratorUtf8, Typedef, hidden)]
-    pub struct LineBreakIteratorUtf8<'a>(
-        icu_segmenter::LineBreakIteratorPotentiallyIllFormedUtf8<'a, 'a>,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIteratorUtf16, Typedef, compact)]
-    pub struct LineBreakIteratorUtf16<'a>(icu_segmenter::LineBreakIteratorUtf16<'a, 'a>);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::LineBreakIteratorLatin1, Typedef, compact)]
-    pub struct LineBreakIteratorLatin1<'a>(icu_segmenter::LineBreakIteratorLatin1<'a, 'a>);
-
-    impl LineSegmenter {
-        /// Construct a [`LineSegmenter`] with default options (no locale-based tailoring) using compiled data. It automatically loads the best
-        /// available payload data for Burmese, Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_auto, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "auto")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_auto() -> Box<LineSegmenter> {
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_auto(
-                Default::default(),
-            )))
-        }
-
-        /// Construct a [`LineSegmenter`] with default options (no locale-based tailoring) and LSTM payload data for
-        /// Burmese, Khmer, Lao, and Thai, using compiled data.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_lstm, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "lstm")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_lstm() -> Box<LineSegmenter> {
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_lstm(
-                Default::default(),
-            )))
-        }
-
-        /// Construct a [`LineSegmenter`] with default options (no locale-based tailoring) and dictionary payload data for
-        /// Burmese, Khmer, Lao, and Thai, using compiled data
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_dictionary, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "dictionary")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dictionary() -> Box<LineSegmenter> {
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_dictionary(
-                Default::default(),
-            )))
-        }
-
-        /// Construct a [`LineSegmenter`] with custom options using compiled data. It automatically loads the best
-        /// available payload data for Burmese, Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_auto, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "auto_with_options")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = named_constructors), named_constructor = "auto_with_options")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = named_constructors), named_constructor = "auto_with_options_v2")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_auto_with_options_v2(
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Box<LineSegmenter> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_auto(
-                options,
-            )))
-        }
-        /// Construct a [`LineSegmenter`] with custom options. It automatically loads the best
-        /// available payload data for Burmese, Khmer, Lao, and Thai, using a particular data source.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_auto, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "auto_with_options_and_provider")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = fallible_constructors, supports = named_constructors), named_constructor = "auto_with_options_and_provider")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = fallible_constructors, supports = named_constructors), named_constructor = "auto_with_options_v2_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_auto_with_options_v2_and_provider(
-            provider: &DataProvider,
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Result<Box<LineSegmenter>, DataError> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-
-            Ok(Box::new(LineSegmenter(
-                icu_segmenter::LineSegmenter::try_new_auto_with_buffer_provider(
-                    provider.get()?,
-                    options,
-                )?,
-            )))
-        }
-        /// Construct a [`LineSegmenter`] with custom options and LSTM payload data for
-        /// Burmese, Khmer, Lao, and Thai, using compiled data.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_lstm, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "lstm_with_options")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = named_constructors), named_constructor = "lstm_with_options")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = named_constructors), named_constructor = "lstm_with_options_v2")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_lstm_with_options_v2(
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Box<LineSegmenter> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_lstm(
-                options,
-            )))
-        }
-        /// Construct a [`LineSegmenter`] with custom options and LSTM payload data for
-        /// Burmese, Khmer, Lao, and Thai, using a particular data source.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_lstm, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "lstm_with_options_and_provider")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = fallible_constructors, supports = named_constructors), named_constructor = "lstm_with_options_and_provider")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = fallible_constructors, supports = named_constructors), named_constructor = "lstm_with_options_v2_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_lstm_with_options_v2_and_provider(
-            provider: &DataProvider,
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Result<Box<LineSegmenter>, DataError> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-
-            Ok(Box::new(LineSegmenter(
-                icu_segmenter::LineSegmenter::try_new_lstm_with_buffer_provider(
-                    provider.get()?,
-                    options,
-                )?,
-            )))
-        }
-        /// Construct a [`LineSegmenter`] with custom options and dictionary payload data for
-        /// Burmese, Khmer, Lao, and Thai, using compiled data.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_dictionary, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "dictionary_with_options")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = named_constructors), named_constructor = "dictionary_with_options")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = named_constructors), named_constructor = "dictionary_with_options_v2")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dictionary_with_options_v2(
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Box<LineSegmenter> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-
-            Box::new(LineSegmenter(icu_segmenter::LineSegmenter::new_dictionary(
-                options,
-            )))
-        }
-        /// Construct a [`LineSegmenter`] with custom options and dictionary payload data for
-        /// Burmese, Khmer, Lao, and Thai, using a particular data source.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::new_dictionary, FnInStruct)]
-        #[diplomat::attr(supports = non_exhaustive_structs, rename = "dictionary_with_options_and_provider")]
-        #[diplomat::attr(all(supports = non_exhaustive_structs, supports = fallible_constructors, supports = named_constructors), named_constructor = "dictionary_with_options_and_provider")]
-        #[diplomat::attr(all(not(supports = non_exhaustive_structs), supports = fallible_constructors, supports = named_constructors), named_constructor = "dictionary_with_options_v2_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_dictionary_with_options_v2_and_provider(
-            provider: &DataProvider,
-            content_locale: Option<&Locale>,
-            options: LineBreakOptionsV2,
-        ) -> Result<Box<LineSegmenter>, DataError> {
-            let mut options: LineBreakOptions = options.into();
-            options.content_locale = content_locale.map(|c| &c.0.id);
-
-            Ok(Box::new(LineSegmenter(
-                icu_segmenter::LineSegmenter::try_new_dictionary_with_buffer_provider(
-                    provider.get()?,
-                    options,
-                )?,
-            )))
-        }
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::segment_utf8, FnInStruct)]
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::segment_str, FnInStruct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "segment")]
-        pub fn segment_utf8<'a>(
-            &'a self,
-            input: &'a DiplomatStr,
-        ) -> Box<LineBreakIteratorUtf8<'a>> {
-            Box::new(LineBreakIteratorUtf8(self.0.segment_utf8(input)))
-        }
-
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::segment_utf16, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "segment")]
-        #[diplomat::attr(supports = utf8_strings, rename = "segment16")]
-        pub fn segment_utf16<'a>(
-            &'a self,
-            input: &'a DiplomatStr16,
-        ) -> Box<LineBreakIteratorUtf16<'a>> {
-            Box::new(LineBreakIteratorUtf16(self.0.segment_utf16(input)))
-        }
-
-        /// Segments a Latin-1 string.
-        #[diplomat::rust_link(icu::segmenter::LineSegmenter::segment_latin1, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        pub fn segment_latin1<'a>(&'a self, input: &'a [u8]) -> Box<LineBreakIteratorLatin1<'a>> {
-            Box::new(LineBreakIteratorLatin1(self.0.segment_latin1(input)))
-        }
-    }
-
-    impl<'a> LineBreakIteratorUtf8<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::LineBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::LineBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> LineBreakIteratorUtf16<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::LineBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::LineBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> LineBreakIteratorLatin1<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::LineBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::LineBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-}
-
-impl From<ffi::LineBreakOptionsV2> for icu_segmenter::options::LineBreakOptions<'_> {
-    fn from(other: ffi::LineBreakOptionsV2) -> Self {
-        let mut options = icu_segmenter::options::LineBreakOptions::default();
-        options.strictness = other.strictness.into_converted_option();
-        options.word_option = other.word_option.into_converted_option();
-        options
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_sentence.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_sentence.rs
deleted file mode 100644
index 15c34b5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_sentence.rs
+++ /dev/null
@@ -1,187 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-
-    #[diplomat::opaque]
-    /// An ICU4X sentence-break segmenter, capable of finding sentence breakpoints in strings.
-    #[diplomat::rust_link(icu::segmenter::SentenceSegmenter, Struct)]
-    pub struct SentenceSegmenter(icu_segmenter::SentenceSegmenter);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator, Struct)]
-    #[diplomat::rust_link(
-        icu::segmenter::SentenceBreakIteratorPotentiallyIllFormedUtf8,
-        Typedef,
-        hidden
-    )]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIteratorUtf8, Typedef, hidden)]
-    pub struct SentenceBreakIteratorUtf8<'a>(
-        icu_segmenter::SentenceBreakIteratorPotentiallyIllFormedUtf8<'a, 'a>,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIteratorUtf16, Typedef, hidden)]
-    pub struct SentenceBreakIteratorUtf16<'a>(icu_segmenter::SentenceBreakIteratorUtf16<'a, 'a>);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::SentenceBreakIteratorLatin1, Typedef, hidden)]
-    pub struct SentenceBreakIteratorLatin1<'a>(icu_segmenter::SentenceBreakIteratorLatin1<'a, 'a>);
-
-    impl SentenceSegmenter {
-        /// Construct a [`SentenceSegmenter`] using compiled data. This does not assume any content locale.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::new, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::options::SentenceBreakInvariantOptions,
-            Struct,
-            hidden
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<SentenceSegmenter> {
-            Box::new(SentenceSegmenter(icu_segmenter::SentenceSegmenter::new(
-                Default::default(),
-            )))
-        }
-        /// Construct a [`SentenceSegmenter`] for content known to be of a given locale, using compiled data.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::try_new, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::segmenter::options::SentenceBreakOptions, Struct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_content_locale")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_with_content_locale(
-            locale: &Locale,
-        ) -> Result<Box<SentenceSegmenter>, DataError> {
-            Ok(Box::new(SentenceSegmenter(
-                icu_segmenter::SentenceSegmenter::try_new(locale.into())?,
-            )))
-        }
-
-        /// Construct a [`SentenceSegmenter`]  for content known to be of a given locale, using a particular data source.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::try_new, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_content_locale_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_content_locale_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<SentenceSegmenter>, DataError> {
-            Ok(Box::new(SentenceSegmenter(
-                icu_segmenter::SentenceSegmenter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    locale.into(),
-                )?,
-            )))
-        }
-
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::segment_utf8, FnInStruct)]
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::segment_str, FnInStruct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "segment")]
-        pub fn segment_utf8<'a>(
-            &'a self,
-            input: &'a DiplomatStr,
-        ) -> Box<SentenceBreakIteratorUtf8<'a>> {
-            Box::new(SentenceBreakIteratorUtf8(self.0.segment_utf8(input)))
-        }
-
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::segment_utf16, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "segment")]
-        #[diplomat::attr(supports = utf8_strings, rename = "segment16")]
-        pub fn segment_utf16<'a>(
-            &'a self,
-            input: &'a DiplomatStr16,
-        ) -> Box<SentenceBreakIteratorUtf16<'a>> {
-            Box::new(SentenceBreakIteratorUtf16(self.0.segment_utf16(input)))
-        }
-
-        /// Segments a Latin-1 string.
-        #[diplomat::rust_link(icu::segmenter::SentenceSegmenter::segment_latin1, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        pub fn segment_latin1<'a>(
-            &'a self,
-            input: &'a [u8],
-        ) -> Box<SentenceBreakIteratorLatin1<'a>> {
-            Box::new(SentenceBreakIteratorLatin1(self.0.segment_latin1(input)))
-        }
-    }
-
-    impl<'a> SentenceBreakIteratorUtf8<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::SentenceBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> SentenceBreakIteratorUtf16<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::SentenceBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-
-    impl<'a> SentenceBreakIteratorLatin1<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::SentenceBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::SentenceBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-    }
-}
-
-impl<'a> From<&'a crate::locale_core::ffi::Locale>
-    for icu_segmenter::options::SentenceBreakOptions<'a>
-{
-    fn from(other: &'a crate::locale_core::ffi::Locale) -> Self {
-        let mut options = icu_segmenter::options::SentenceBreakOptions::default();
-        options.content_locale = Some(&other.0.id);
-        options
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_word.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_word.rs
deleted file mode 100644
index 0336425..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_word.rs
+++ /dev/null
@@ -1,356 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-
-    #[diplomat::enum_convert(icu_segmenter::options::WordType, needs_wildcard)]
-    #[diplomat::rust_link(icu::segmenter::options::WordType, Enum)]
-    pub enum SegmenterWordType {
-        None = 0,
-        Number = 1,
-        Letter = 2,
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X word-break segmenter, capable of finding word breakpoints in strings.
-    #[diplomat::rust_link(icu::segmenter::WordSegmenter, Struct)]
-    #[diplomat::demo(custom_func = "../../npm/demo_gen_custom/WordSegmenter.mjs")]
-    pub struct WordSegmenter(icu_segmenter::WordSegmenter);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIterator, Struct)]
-    #[diplomat::rust_link(
-        icu::segmenter::WordBreakIteratorPotentiallyIllFormedUtf8,
-        Typedef,
-        hidden
-    )]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIteratorUtf8, Typedef, hidden)]
-    pub struct WordBreakIteratorUtf8<'a>(
-        icu_segmenter::WordBreakIteratorPotentiallyIllFormedUtf8<'a, 'a>,
-    );
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIteratorUtf16, Typedef, hidden)]
-    pub struct WordBreakIteratorUtf16<'a>(icu_segmenter::WordBreakIteratorUtf16<'a, 'a>);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIterator, Struct)]
-    #[diplomat::rust_link(icu::segmenter::WordBreakIteratorLatin1, Typedef, hidden)]
-    pub struct WordBreakIteratorLatin1<'a>(icu_segmenter::WordBreakIteratorLatin1<'a, 'a>);
-
-    impl SegmenterWordType {
-        #[diplomat::rust_link(icu::segmenter::options::WordType::is_word_like, FnInEnum)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_word_like(self) -> bool {
-            icu_segmenter::options::WordType::from(self).is_word_like()
-        }
-    }
-
-    impl WordSegmenter {
-        /// Construct an [`WordSegmenter`] with automatically selecting the best available LSTM
-        /// or dictionary payload data, using compiled data. This does not assume any content locale.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::new_auto, FnInStruct)]
-        #[diplomat::rust_link(icu::segmenter::options::WordBreakInvariantOptions, Struct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "auto")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_auto() -> Box<WordSegmenter> {
-            Box::new(WordSegmenter(icu_segmenter::WordSegmenter::new_auto(
-                Default::default(),
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with automatically selecting the best available LSTM
-        /// or dictionary payload data, using compiled data.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_auto, FnInStruct)]
-        #[diplomat::rust_link(icu::segmenter::options::WordBreakOptions, Struct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "auto_with_content_locale")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_auto_with_content_locale(
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_auto(locale.into())?,
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with automatically selecting the best available LSTM
-        /// or dictionary payload data, using a particular data source.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_auto, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "auto_with_content_locale_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_auto_with_content_locale_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_auto_with_buffer_provider(
-                    provider.get()?,
-                    locale.into(),
-                )?,
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with LSTM payload data for Burmese, Khmer, Lao, and
-        /// Thai, using compiled data.  This does not assume any content locale.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::new_lstm, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "lstm")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_lstm() -> Box<WordSegmenter> {
-            Box::new(WordSegmenter(icu_segmenter::WordSegmenter::new_lstm(
-                Default::default(),
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with LSTM payload data for Burmese, Khmer, Lao, and
-        /// Thai, using compiled data.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_lstm, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "lstm_with_content_locale")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_lstm_with_content_locale(
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_lstm(locale.into())?,
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with LSTM payload data for Burmese, Khmer, Lao, and
-        /// Thai, using a particular data source.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_lstm, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "lstm_with_content_locale_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_lstm_with_content_locale_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_lstm_with_buffer_provider(
-                    provider.get()?,
-                    locale.into(),
-                )?,
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with with dictionary payload data for Chinese, Japanese,
-        /// Burmese, Khmer, Lao, and Thai, using compiled data.  This does not assume any content locale.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and dictionary for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::new_dictionary, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "dictionary")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dictionary() -> Box<WordSegmenter> {
-            Box::new(WordSegmenter(icu_segmenter::WordSegmenter::new_dictionary(
-                Default::default(),
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with dictionary payload data for Chinese, Japanese,
-        /// Burmese, Khmer, Lao, and Thai, using compiled data.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and dictionary for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_dictionary, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dictionary_with_content_locale")]
-        #[cfg(feature = "compiled_data")]
-        pub fn create_dictionary_with_content_locale(
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_dictionary(locale.into())?,
-            )))
-        }
-
-        /// Construct an [`WordSegmenter`] with dictionary payload data for Chinese, Japanese,
-        /// Burmese, Khmer, Lao, and Thai, using a particular data source.
-        ///
-        /// Note: currently, it uses dictionary for Chinese and Japanese, and dictionary for Burmese,
-        /// Khmer, Lao, and Thai.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::try_new_dictionary, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "dictionary_with_content_locale_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_dictionary_with_content_locale_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<WordSegmenter>, DataError> {
-            Ok(Box::new(WordSegmenter(
-                icu_segmenter::WordSegmenter::try_new_dictionary_with_buffer_provider(
-                    provider.get()?,
-                    locale.into(),
-                )?,
-            )))
-        }
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::segment_utf8, FnInStruct)]
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::segment_str, FnInStruct, hidden)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        #[diplomat::attr(*, rename = "segment")]
-        pub fn segment_utf8<'a>(
-            &'a self,
-            input: &'a DiplomatStr,
-        ) -> Box<WordBreakIteratorUtf8<'a>> {
-            Box::new(WordBreakIteratorUtf8(self.0.segment_utf8(input)))
-        }
-
-        /// Segments a string.
-        ///
-        /// Ill-formed input is treated as if errors had been replaced with REPLACEMENT CHARACTERs according
-        /// to the WHATWG Encoding Standard.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::segment_utf16, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), rename = "segment")]
-        #[diplomat::attr(supports = utf8_strings, rename = "segment16")]
-        pub fn segment_utf16<'a>(
-            &'a self,
-            input: &'a DiplomatStr16,
-        ) -> Box<WordBreakIteratorUtf16<'a>> {
-            Box::new(WordBreakIteratorUtf16(self.0.segment_utf16(input)))
-        }
-
-        /// Segments a Latin-1 string.
-        #[diplomat::rust_link(icu::segmenter::WordSegmenter::segment_latin1, FnInStruct)]
-        #[diplomat::attr(not(supports = utf8_strings), disable)]
-        pub fn segment_latin1<'a>(&'a self, input: &'a [u8]) -> Box<WordBreakIteratorLatin1<'a>> {
-            Box::new(WordBreakIteratorLatin1(self.0.segment_latin1(input)))
-        }
-    }
-
-    impl<'a> WordBreakIteratorUtf8<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::WordBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-
-        /// Return the status value of break boundary.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::word_type, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn word_type(&self) -> SegmenterWordType {
-            self.0.word_type().into()
-        }
-
-        /// Return true when break boundary is word-like such as letter/number/CJK
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::is_word_like, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_word_like(&self) -> bool {
-            self.0.is_word_like()
-        }
-    }
-
-    impl<'a> WordBreakIteratorUtf16<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::WordBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-
-        /// Return the status value of break boundary.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::word_type, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::WordBreakIterator::iter_with_word_type,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, getter)]
-        pub fn word_type(&self) -> SegmenterWordType {
-            self.0.word_type().into()
-        }
-
-        /// Return true when break boundary is word-like such as letter/number/CJK
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::is_word_like, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_word_like(&self) -> bool {
-            self.0.is_word_like()
-        }
-    }
-
-    impl<'a> WordBreakIteratorLatin1<'a> {
-        /// Finds the next breakpoint. Returns -1 if at the end of the string or if the index is
-        /// out of range of a 32-bit signed integer.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::next, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::segmenter::WordBreakIterator::Item,
-            AssociatedTypeInStruct,
-            hidden
-        )]
-        pub fn next(&mut self) -> i32 {
-            self.0
-                .next()
-                .and_then(|u| i32::try_from(u).ok())
-                .unwrap_or(-1)
-        }
-
-        /// Return the status value of break boundary.
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::word_type, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn word_type(&self) -> SegmenterWordType {
-            self.0.word_type().into()
-        }
-
-        /// Return true when break boundary is word-like such as letter/number/CJK
-        #[diplomat::rust_link(icu::segmenter::WordBreakIterator::is_word_like, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_word_like(&self) -> bool {
-            self.0.is_word_like()
-        }
-    }
-}
-
-impl<'a> From<&'a crate::locale_core::ffi::Locale>
-    for icu_segmenter::options::WordBreakOptions<'a>
-{
-    fn from(other: &'a crate::locale_core::ffi::Locale) -> Self {
-        let mut options = icu_segmenter::options::WordBreakOptions::default();
-        options.content_locale = Some(&other.0.id);
-        options
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/time.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/time.rs
deleted file mode 100644
index 6446283..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/time.rs
+++ /dev/null
@@ -1,84 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::errors::ffi::{CalendarError, CalendarParseError};
-
-    #[diplomat::opaque]
-    /// An ICU4X Time object representing a time in terms of hour, minute, second, nanosecond
-    #[diplomat::rust_link(icu::time::Time, Struct)]
-    pub struct Time(pub icu_time::Time);
-
-    impl Time {
-        /// Creates a new [`Time`] given field values
-        #[diplomat::rust_link(icu::time::Time::try_new, FnInStruct)]
-        #[diplomat::rust_link(icu::time::Time::new, FnInStruct, hidden)]
-        #[diplomat::attr(supports = fallible_constructors, constructor)]
-        pub fn create(
-            hour: u8,
-            minute: u8,
-            second: u8,
-            subsecond: u32,
-        ) -> Result<Box<Time>, CalendarError> {
-            let hour = hour.try_into()?;
-            let minute = minute.try_into()?;
-            let second = second.try_into()?;
-            let subsecond = subsecond.try_into()?;
-            let time = icu_time::Time {
-                hour,
-                minute,
-                second,
-                subsecond,
-            };
-            Ok(Box::new(Time(time)))
-        }
-
-        /// Creates a new [`Time`] from an IXDTF string.
-        #[diplomat::rust_link(icu::time::Time::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::Time::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::Time::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn from_string(v: &DiplomatStr) -> Result<Box<Time>, CalendarParseError> {
-            Ok(Box::new(Time(icu_time::Time::try_from_utf8(v)?)))
-        }
-
-        /// Creates a new [`Time`] representing midnight (00:00.000).
-        #[diplomat::rust_link(icu::time::Time::midnight, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor)]
-        pub fn midnight() -> Result<Box<Time>, CalendarError> {
-            let time = icu_time::Time::midnight();
-            Ok(Box::new(Time(time)))
-        }
-
-        /// Returns the hour in this time
-        #[diplomat::rust_link(icu::time::Time::hour, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn hour(&self) -> u8 {
-            self.0.hour.into()
-        }
-        /// Returns the minute in this time
-        #[diplomat::rust_link(icu::time::Time::minute, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn minute(&self) -> u8 {
-            self.0.minute.into()
-        }
-        /// Returns the second in this time
-        #[diplomat::rust_link(icu::time::Time::second, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn second(&self) -> u8 {
-            self.0.second.into()
-        }
-        /// Returns the subsecond in this time as nanoseconds
-        #[diplomat::rust_link(icu::time::Time::subsecond, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn subsecond(&self) -> u32 {
-            self.0.subsecond.into()
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/timezone.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/timezone.rs
deleted file mode 100644
index a105ffe0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/timezone.rs
+++ /dev/null
@@ -1,211 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use ffi::TimeZoneInfo;
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::{
-        date::ffi::IsoDate,
-        datetime::ffi::IsoDateTime,
-        time::ffi::Time,
-        utc_offset::ffi::{UtcOffset, UtcOffsetCalculator},
-    };
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::TimeZone, Struct)]
-    pub struct TimeZone(pub(crate) icu_time::TimeZone);
-
-    impl TimeZone {
-        /// The unknown time zone.
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::unknown, FnInStruct)]
-        #[diplomat::rust_link(icu::time::TimeZone::unknown, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn unknown() -> Box<TimeZone> {
-            Box::new(TimeZone(icu_time::TimeZone::unknown()))
-        }
-
-        /// Creates a time zone from a BCP-47 string.
-        ///
-        /// Returns the unknown time zone if the string is not a valid BCP-47 subtag.
-        #[diplomat::rust_link(icu::time::TimeZone, Struct, compact)]
-        #[diplomat::rust_link(icu::time::TimeZone::from_str, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::TimeZone::deref, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::TimeZone::Target, AssociatedTypeInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "from_bcp47")]
-        #[diplomat::demo(default_constructor)]
-        pub fn create_from_bcp47(id: &DiplomatStr) -> Box<Self> {
-            tinystr::TinyAsciiStr::try_from_utf8(id)
-                .map(icu_time::TimeZone)
-                .map(TimeZone)
-                .map(Box::new)
-                .unwrap_or(Self::unknown())
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZone::with_offset, FnInStruct)]
-        pub fn with_offset(&self, offset: &UtcOffset) -> Box<TimeZoneInfo> {
-            Box::new(self.0.with_offset(Some(offset.0)).into())
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZone::without_offset, FnInStruct)]
-        pub fn without_offset(&self) -> Box<TimeZoneInfo> {
-            Box::new(self.0.without_offset().into())
-        }
-    }
-
-    #[diplomat::enum_convert(icu_time::zone::TimeZoneVariant, needs_wildcard)]
-    pub enum TimeZoneVariant {
-        Standard,
-        Daylight,
-    }
-
-    impl TimeZoneVariant {
-        /// Sets the `zone_variant` field to "daylight" time.
-        #[diplomat::rust_link(icu::time::zone::TimeZoneVariant::from_rearguard_isdst, FnInEnum)]
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::with_zone_variant, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::TimeZoneVariant, Enum, compact)]
-        pub fn from_rearguard_isdst(&mut self, isdst: bool) -> Self {
-            icu_time::zone::TimeZoneVariant::from_rearguard_isdst(isdst).into()
-        }
-    }
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::TimeZoneInfo, Struct)]
-    #[diplomat::rust_link(icu::time::zone::models::AtTime, Enum, hidden)]
-    #[diplomat::rust_link(icu::time::zone::models::Base, Enum, hidden)]
-    #[diplomat::rust_link(icu::time::zone::models::Full, Enum, hidden)]
-    pub struct TimeZoneInfo {
-        pub(crate) time_zone_id: icu_time::TimeZone,
-        pub(crate) offset: Option<icu_time::zone::UtcOffset>,
-        pub(crate) zone_variant: Option<icu_time::zone::TimeZoneVariant>,
-        pub(crate) local_time: Option<(icu_calendar::Date<icu_calendar::Iso>, icu_time::Time)>,
-    }
-
-    impl TimeZoneInfo {
-        /// Creates a time zone for UTC (Coordinated Universal Time).
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::utc, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::zero, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn utc() -> Box<TimeZoneInfo> {
-            Box::new(icu_time::TimeZoneInfo::utc().into())
-        }
-
-        /// Creates a time zone info from parts.
-        #[diplomat::attr(auto, constructor)]
-        pub fn from_parts(
-            time_zone_id: &TimeZone,
-            offset: Option<&UtcOffset>,
-            zone_variant: Option<TimeZoneVariant>,
-        ) -> Box<TimeZoneInfo> {
-            Box::new(Self {
-                time_zone_id: time_zone_id.0,
-                offset: offset.map(|o| o.0),
-                zone_variant: zone_variant.map(Into::into),
-                local_time: None,
-            })
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::time_zone_id, FnInStruct)]
-        pub fn time_zone_id(&self) -> Box<TimeZone> {
-            Box::new(TimeZone(self.time_zone_id))
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::at_time, FnInStruct)]
-        pub fn at_time(&self, date: &IsoDate, time: &Time) -> Box<Self> {
-            Box::new(Self {
-                local_time: Some((date.0, time.0)),
-                ..*self
-            })
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::local_time, FnInStruct)]
-        pub fn local_time(&self) -> Option<IsoDateTime> {
-            Some(IsoDateTime {
-                date: Box::new(IsoDate(self.local_time?.0)),
-                time: Box::new(Time(self.local_time?.1)),
-            })
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::with_zone_variant, FnInStruct)]
-        pub fn with_zone_variant(&self, time_zone_variant: TimeZoneVariant) -> Box<Self> {
-            Box::new(Self {
-                zone_variant: Some(time_zone_variant.into()),
-                ..*self
-            })
-        }
-
-        /// Infers the zone variant.
-        ///
-        /// Requires the offset and local time to be set.
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::infer_zone_variant, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::TimeZoneVariant, Enum, compact)]
-        pub fn infer_zone_variant(
-            &mut self,
-            offset_calculator: &UtcOffsetCalculator,
-        ) -> Option<()> {
-            let info = self
-                .time_zone_id
-                .with_offset(self.offset)
-                .at_time(self.local_time?)
-                .infer_zone_variant(&offset_calculator.0);
-
-            self.time_zone_id = info.time_zone_id();
-            self.zone_variant = Some(info.zone_variant());
-            Some(())
-        }
-
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::zone_variant, FnInStruct)]
-        pub fn zone_variant(&self) -> Option<TimeZoneVariant> {
-            self.zone_variant.map(Into::into)
-        }
-    }
-}
-
-impl From<icu_time::zone::UtcOffset> for TimeZoneInfo {
-    fn from(other: icu_time::zone::UtcOffset) -> Self {
-        Self {
-            time_zone_id: icu_time::TimeZone::unknown(),
-            offset: Some(other),
-            zone_variant: None,
-            local_time: None,
-        }
-    }
-}
-
-impl From<icu_time::TimeZoneInfo<icu_time::zone::models::Base>> for TimeZoneInfo {
-    fn from(other: icu_time::TimeZoneInfo<icu_time::zone::models::Base>) -> Self {
-        Self {
-            time_zone_id: other.time_zone_id(),
-            offset: other.offset(),
-            zone_variant: None,
-            local_time: None,
-        }
-    }
-}
-
-impl From<icu_time::TimeZoneInfo<icu_time::zone::models::AtTime>> for TimeZoneInfo {
-    fn from(other: icu_time::TimeZoneInfo<icu_time::zone::models::AtTime>) -> Self {
-        Self {
-            time_zone_id: other.time_zone_id(),
-            offset: other.offset(),
-            zone_variant: None,
-            local_time: Some(other.local_time()),
-        }
-    }
-}
-
-impl From<icu_time::TimeZoneInfo<icu_time::zone::models::Full>> for TimeZoneInfo {
-    fn from(other: icu_time::TimeZoneInfo<icu_time::zone::models::Full>) -> Self {
-        Self {
-            time_zone_id: other.time_zone_id(),
-            offset: other.offset(),
-            zone_variant: Some(other.zone_variant()),
-            local_time: Some(other.local_time()),
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/units_converter.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/units_converter.rs
deleted file mode 100644
index 32f2e71..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/units_converter.rs
+++ /dev/null
@@ -1,138 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::errors::ffi::DataError;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-
-    #[diplomat::opaque]
-    /// An ICU4X Units Converter Factory object, capable of creating converters a [`UnitsConverter`]
-    /// for converting between two [`MeasureUnit`]s.
-    ///
-    /// Also, it can parse the CLDR unit identifier (e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-    #[diplomat::rust_link(icu::experimental::units::converter_factory::ConverterFactory, Struct)]
-    pub struct UnitsConverterFactory(
-        pub icu_experimental::units::converter_factory::ConverterFactory,
-    );
-
-    impl UnitsConverterFactory {
-        /// Construct a new [`UnitsConverterFactory`] instance using compiled data.
-        #[diplomat::rust_link(
-            icu::experimental::units::converter_factory::ConverterFactory::new,
-            FnInStruct
-        )]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<UnitsConverterFactory> {
-            Box::new(UnitsConverterFactory(
-                icu_experimental::units::converter_factory::ConverterFactory::new(),
-            ))
-        }
-        /// Construct a new [`UnitsConverterFactory`] instance using a particular data source.
-        #[diplomat::rust_link(
-            icu::experimental::units::converter_factory::ConverterFactory::new,
-            FnInStruct
-        )]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<UnitsConverterFactory>, DataError> {
-            Ok(Box::new(UnitsConverterFactory(icu_experimental::units::converter_factory::ConverterFactory::try_new_with_buffer_provider(provider.get()?)?)))
-        }
-        /// Creates a new [`UnitsConverter`] from the input and output [`MeasureUnit`]s.
-        /// Returns nothing if the conversion between the two units is not possible.
-        /// For example, conversion between `meter` and `second` is not possible.
-        #[diplomat::rust_link(
-            icu::experimental::units::converter_factory::ConverterFactory::converter,
-            FnInStruct
-        )]
-        pub fn converter(
-            &self,
-            from: &MeasureUnit,
-            to: &MeasureUnit,
-        ) -> Option<Box<UnitsConverter>> {
-            self.0
-                .converter(&from.0, &to.0)
-                .map(UnitsConverter)
-                .map(Box::new)
-        }
-
-        /// Creates a parser to parse the CLDR unit identifier (e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-        #[diplomat::rust_link(
-            icu::experimental::units::converter_factory::ConverterFactory::parser,
-            FnInStruct
-        )]
-        pub fn parser<'a>(&'a self) -> Box<MeasureUnitParser<'a>> {
-            MeasureUnitParser(self.0.parser()).into()
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X Measurement Unit parser object which is capable of parsing the CLDR unit identifier
-    /// (e.g. `meter-per-square-second`) and get the [`MeasureUnit`].
-    #[diplomat::rust_link(icu::experimental::measure::parser::MeasureUnitParser, Struct)]
-    pub struct MeasureUnitParser<'a>(pub icu_experimental::measure::parser::MeasureUnitParser<'a>);
-
-    impl<'a> MeasureUnitParser<'a> {
-        /// Parses the CLDR unit identifier (e.g. `meter-per-square-second`) and returns the corresponding [`MeasureUnit`],
-        /// if the identifier is valid.
-        #[diplomat::rust_link(
-            icu::experimental::measure::parser::MeasureUnitParser::parse,
-            FnInStruct
-        )]
-        pub fn parse(&self, unit_id: &DiplomatStr) -> Option<Box<MeasureUnit>> {
-            self.0
-                .try_from_utf8(unit_id)
-                .ok()
-                .map(MeasureUnit)
-                .map(Box::new)
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An ICU4X Measurement Unit object which represents a single unit of measurement
-    /// such as `meter`, `second`, `kilometer-per-hour`, `square-meter`, etc.
-    ///
-    /// You can create an instance of this object using [`MeasureUnitParser`] by calling the `parse_measure_unit` method.
-    #[diplomat::rust_link(icu::experimental::measure::measureunit::MeasureUnit, Struct)]
-    pub struct MeasureUnit(pub icu_experimental::measure::measureunit::MeasureUnit);
-
-    #[diplomat::opaque]
-    /// An ICU4X Units Converter object, capable of converting between two [`MeasureUnit`]s.
-    ///
-    /// You can create an instance of this object using [`UnitsConverterFactory`] by calling the `converter` method.
-    #[diplomat::rust_link(icu::experimental::units::converter::UnitsConverter, Struct)]
-    pub struct UnitsConverter(pub icu_experimental::units::converter::UnitsConverter<f64>);
-    impl UnitsConverter {
-        /// Converts the input value from the input unit to the output unit (that have been used to create this converter).
-        /// NOTE:
-        ///   The conversion using floating-point operations is not as accurate as the conversion using ratios.
-        #[diplomat::rust_link(
-            icu::experimental::units::converter::UnitsConverter::convert,
-            FnInStruct
-        )]
-        #[diplomat::attr(supports = method_overloading, rename = "convert")]
-        #[diplomat::attr(js, rename = "convert_number")]
-        pub fn convert_double(&self, value: f64) -> f64 {
-            self.0.convert(&value)
-        }
-
-        /// Clones the current [`UnitsConverter`] object.
-        #[diplomat::rust_link(
-            icu::experimental::units::converter::UnitsConverter::clone,
-            FnInStruct
-        )]
-        pub fn clone(&self) -> Box<Self> {
-            Box::new(UnitsConverter(self.0.clone()))
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/utc_offset.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/utc_offset.rs
deleted file mode 100644
index 64d76cad..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/utc_offset.rs
+++ /dev/null
@@ -1,177 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::errors::ffi::DataError;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use crate::{
-        date::ffi::IsoDate, errors::ffi::TimeZoneInvalidOffsetError, time::ffi::Time,
-        timezone::ffi::TimeZone,
-    };
-
-    #[diplomat::rust_link(icu::time::zone::UtcOffsetCalculator, Struct)]
-    #[diplomat::opaque]
-    pub struct UtcOffsetCalculator(pub icu_time::zone::UtcOffsetCalculator);
-
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct)]
-    pub struct UtcOffset(pub(crate) icu_time::zone::UtcOffset);
-
-    #[diplomat::out]
-    #[diplomat::rust_link(icu::time::zone::UtcOffsets, Struct)]
-    pub struct UtcOffsets {
-        pub standard: Box<UtcOffset>,
-        pub daylight: Option<Box<UtcOffset>>,
-    }
-
-    impl UtcOffset {
-        /// Creates an offset from seconds.
-        ///
-        /// Errors if the offset seconds are out of range.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::try_from_seconds, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::zone::UtcOffset::from_seconds_unchecked,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "from_seconds")]
-        pub fn from_seconds(seconds: i32) -> Result<Box<UtcOffset>, TimeZoneInvalidOffsetError> {
-            Ok(Box::new(Self(icu_time::zone::UtcOffset::try_from_seconds(
-                seconds,
-            )?)))
-        }
-
-        /// Creates an offset from eighths of an hour.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::from_eighths_of_hour, FnInStruct)]
-        #[diplomat::attr(auto, named_constructor = "from_eights_of_hour")]
-        pub fn from_eighths_of_hour(eighths_of_hour: i8) -> Box<Self> {
-            Box::new(Self(icu_time::zone::UtcOffset::from_eighths_of_hour(
-                eighths_of_hour,
-            )))
-        }
-
-        /// Creates an offset from a string.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::from_str, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "from_string")]
-        #[diplomat::demo(default_constructor)]
-        pub fn from_string(offset: &DiplomatStr) -> Result<Box<Self>, TimeZoneInvalidOffsetError> {
-            icu_time::zone::UtcOffset::try_from_utf8(offset)
-                .map_err(|_| TimeZoneInvalidOffsetError)
-                .map(Self)
-                .map(Box::new)
-        }
-
-        /// Gets the offset as eighths of an hour.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::to_eighths_of_hour, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn eighths_of_hour(&self) -> i8 {
-            self.0.to_eighths_of_hour()
-        }
-
-        /// Returns the value as offset seconds.
-        #[diplomat::rust_link(icu::time::TimeZoneInfo::offset, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::to_seconds, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn seconds(&self) -> i32 {
-            self.0.to_seconds()
-        }
-
-        /// Returns whether the offset is positive.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::is_non_negative, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_non_negative(&self) -> bool {
-            self.0.is_non_negative()
-        }
-
-        /// Returns whether the offset is zero.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::is_zero, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn is_zero(&self) -> bool {
-            self.0.is_zero()
-        }
-
-        /// Returns the hours part of the offset.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::hours_part, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn hours_part(&self) -> i32 {
-            self.0.hours_part()
-        }
-
-        /// Returns the minutes part of the offset.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::minutes_part, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn minutes_part(&self) -> u32 {
-            self.0.minutes_part()
-        }
-
-        /// Returns the seconds part of the offset.
-        #[diplomat::rust_link(icu::time::zone::UtcOffset::seconds_part, FnInStruct)]
-        #[diplomat::rust_link(icu::time::zone::UtcOffset, Struct, compact)]
-        #[diplomat::attr(auto, getter)]
-        pub fn seconds_part(&self) -> u32 {
-            self.0.seconds_part()
-        }
-    }
-
-    impl UtcOffsetCalculator {
-        /// Construct a new [`UtcOffsetCalculator`] instance using compiled data.
-        #[diplomat::rust_link(icu::time::zone::UtcOffsetCalculator::new, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<UtcOffsetCalculator> {
-            Box::new(UtcOffsetCalculator(
-                icu_time::zone::UtcOffsetCalculator::new(),
-            ))
-        }
-        /// Construct a new [`UtcOffsetCalculator`] instance using a particular data source.
-        #[diplomat::rust_link(icu::time::zone::UtcOffsetCalculator::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<UtcOffsetCalculator>, DataError> {
-            Ok(Box::new(UtcOffsetCalculator(
-                icu_time::zone::UtcOffsetCalculator::try_new_with_buffer_provider(provider.get()?)?,
-            )))
-        }
-
-        #[diplomat::rust_link(
-            icu::time::zone::UtcOffsetCalculator::compute_offsets_from_time_zone,
-            FnInStruct
-        )]
-        pub fn compute_offsets_from_time_zone(
-            &self,
-            time_zone: &TimeZone,
-            local_date: &IsoDate,
-            local_time: &Time,
-        ) -> Option<UtcOffsets> {
-            let icu_time::zone::UtcOffsets {
-                standard, daylight, ..
-            } = self
-                .0
-                .compute_offsets_from_time_zone(time_zone.0, (local_date.0, local_time.0))?;
-
-            Some(UtcOffsets {
-                standard: Box::new(UtcOffset(standard)),
-                daylight: daylight.map(UtcOffset).map(Box::new),
-            })
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/week.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/week.rs
deleted file mode 100644
index 3aa46a6..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/week.rs
+++ /dev/null
@@ -1,140 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-
-    use crate::date::ffi::Weekday;
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
-
-    #[diplomat::rust_link(icu::calendar::week::RelativeUnit, Enum)]
-    #[diplomat::enum_convert(icu_calendar::week::RelativeUnit)]
-    pub enum WeekRelativeUnit {
-        Previous,
-        Current,
-        Next,
-    }
-
-    #[diplomat::rust_link(icu::calendar::week::WeekOf, Struct)]
-    #[diplomat::out]
-    pub struct WeekOf {
-        pub week: u8,
-        pub unit: WeekRelativeUnit,
-    }
-    /// A Week calculator, useful to be passed in to `week_of_year()` on Date and DateTime types
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::calendar::week::WeekCalculator, Struct)]
-    pub struct WeekCalculator(pub icu_calendar::week::WeekCalculator);
-
-    impl WeekCalculator {
-        /// Creates a new [`WeekCalculator`] from locale data using compiled data.
-        #[diplomat::rust_link(icu::calendar::week::WeekCalculator::try_new, FnInStruct)]
-        #[diplomat::attr(supports = fallible_constructors, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create(locale: &Locale) -> Result<Box<WeekCalculator>, DataError> {
-            let prefs = (&locale.0).into();
-
-            Ok(Box::new(WeekCalculator(
-                icu_calendar::week::WeekCalculator::try_new(prefs)?,
-            )))
-        }
-        /// Creates a new [`WeekCalculator`] from locale data using a particular data source.
-        #[diplomat::rust_link(icu::calendar::week::WeekCalculator::try_new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-        ) -> Result<Box<WeekCalculator>, DataError> {
-            let prefs = (&locale.0).into();
-
-            Ok(Box::new(WeekCalculator(
-                icu_calendar::week::WeekCalculator::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                )?,
-            )))
-        }
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::first_weekday,
-            StructField,
-            compact
-        )]
-        #[diplomat::rust_link(
-            icu::calendar::week::WeekCalculator::min_week_days,
-            StructField,
-            compact
-        )]
-        #[diplomat::attr(auto, named_constructor)]
-        pub fn from_first_day_of_week_and_min_week_days(
-            first_weekday: Weekday,
-            min_week_days: u8,
-        ) -> Box<WeekCalculator> {
-            let mut calculator = icu_calendar::week::WeekCalculator::default();
-            calculator.first_weekday = first_weekday.into();
-            calculator.min_week_days = min_week_days;
-            Box::new(WeekCalculator(calculator))
-        }
-
-        /// Returns the weekday that starts the week for this object's locale
-        #[diplomat::rust_link(icu::calendar::week::WeekCalculator::first_weekday, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn first_weekday(&self) -> Weekday {
-            self.0.first_weekday.into()
-        }
-        /// The minimum number of days overlapping a year required for a week to be
-        /// considered part of that year
-        #[diplomat::rust_link(icu::calendar::week::WeekCalculator::min_week_days, StructField)]
-        #[diplomat::attr(auto, getter)]
-        pub fn min_week_days(&self) -> u8 {
-            self.0.min_week_days
-        }
-
-        #[diplomat::rust_link(icu::calendar::week::WeekCalculator::weekend, FnInStruct)]
-        #[diplomat::attr(auto, getter)]
-        pub fn weekend(&self) -> WeekendContainsDay {
-            let mut contains = WeekendContainsDay::default();
-            for day in self.0.weekend() {
-                match day {
-                    icu_calendar::types::Weekday::Monday => contains.monday = true,
-                    icu_calendar::types::Weekday::Tuesday => contains.tuesday = true,
-                    icu_calendar::types::Weekday::Wednesday => contains.wednesday = true,
-                    icu_calendar::types::Weekday::Thursday => contains.thursday = true,
-                    icu_calendar::types::Weekday::Friday => contains.friday = true,
-                    icu_calendar::types::Weekday::Saturday => contains.saturday = true,
-                    icu_calendar::types::Weekday::Sunday => contains.sunday = true,
-                }
-            }
-            contains
-        }
-    }
-
-    /// Documents which days of the week are considered to be a part of the weekend
-    #[diplomat::rust_link(icu::calendar::week::WeekCalculator::weekend, FnInStruct)]
-    #[derive(Default)]
-    pub struct WeekendContainsDay {
-        pub monday: bool,
-        pub tuesday: bool,
-        pub wednesday: bool,
-        pub thursday: bool,
-        pub friday: bool,
-        pub saturday: bool,
-        pub sunday: bool,
-    }
-}
-
-impl From<icu_calendar::week::WeekOf> for ffi::WeekOf {
-    fn from(other: icu_calendar::week::WeekOf) -> Self {
-        ffi::WeekOf {
-            week: other.week,
-            unit: other.unit.into(),
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/windows_parser.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/windows_parser.rs
deleted file mode 100644
index 3a4aebaf..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/windows_parser.rs
+++ /dev/null
@@ -1,77 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use diplomat_runtime::DiplomatStr;
-
-    use crate::timezone::ffi::TimeZone;
-    #[cfg(feature = "buffer_provider")]
-    use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
-
-    /// A mapper between Windows time zone identifiers and BCP-47 time zone identifiers.
-    ///
-    /// This mapper supports two-way mapping, but it is optimized for the case of Windows to BCP-47.
-    /// It also supports normalizing and canonicalizing the Windows strings.
-    #[diplomat::opaque]
-    #[diplomat::rust_link(icu::time::zone::windows::WindowsParser, Struct)]
-    #[diplomat::rust_link(
-        icu::time::zone::windows::WindowsParser::as_borrowed,
-        FnInStruct,
-        hidden
-    )]
-    #[diplomat::rust_link(icu::time::zone::windows::WindowsParserBorrowed, Struct, hidden)]
-    #[diplomat::rust_link(
-        icu::time::zone::windows::WindowsParserBorrowed::new,
-        FnInStruct,
-        hidden
-    )]
-    pub struct WindowsParser(pub icu_time::zone::windows::WindowsParser);
-
-    impl WindowsParser {
-        /// Create a new [`WindowsParser`] using compiled data
-        #[diplomat::rust_link(icu::time::zone::windows::WindowsParser::new, FnInStruct)]
-        #[diplomat::attr(auto, constructor)]
-        #[cfg(feature = "compiled_data")]
-        pub fn create() -> Box<WindowsParser> {
-            Box::new(WindowsParser(
-                icu_time::zone::windows::WindowsParser::new().static_to_owned(),
-            ))
-        }
-
-        /// Create a new [`WindowsParser`] using a particular data source
-        #[diplomat::rust_link(icu::time::zone::windows::WindowsParser::new, FnInStruct)]
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_provider")]
-        #[cfg(feature = "buffer_provider")]
-        pub fn create_with_provider(
-            provider: &DataProvider,
-        ) -> Result<Box<WindowsParser>, DataError> {
-            Ok(Box::new(WindowsParser(
-                icu_time::zone::windows::WindowsParser::try_new_with_buffer_provider(
-                    provider.get()?,
-                )?,
-            )))
-        }
-
-        #[diplomat::rust_link(icu::time::zone::windows::WindowsParserBorrowed::parse, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::zone::windows::WindowsParserBorrowed::parse_from_utf8,
-            FnInStruct,
-            hidden
-        )]
-        pub fn parse(&self, value: &DiplomatStr, region: &DiplomatStr) -> Option<Box<TimeZone>> {
-            self.0
-                .as_borrowed()
-                .parse_from_utf8(
-                    value,
-                    Some(icu_locale_core::subtags::Region::try_from_utf8(region).ok()?),
-                )
-                .map(TimeZone)
-                .map(Box::new)
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_datetime.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_datetime.rs
deleted file mode 100644
index 5526916..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_datetime.rs
+++ /dev/null
@@ -1,157 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use icu_calendar::Iso;
-
-    use crate::calendar::ffi::Calendar;
-    use crate::date::ffi::{Date, IsoDate};
-    use crate::errors::ffi::CalendarParseError;
-    use crate::iana_parser::ffi::IanaParser;
-    use crate::time::ffi::Time;
-    use crate::timezone::ffi::TimeZoneInfo;
-    use crate::utc_offset::ffi::UtcOffsetCalculator;
-
-    /// An ICU4X ZonedDateTime object capable of containing a ISO-8601 date, time, and zone.
-    #[diplomat::rust_link(icu::time::ZonedDateTime, Struct)]
-    #[diplomat::out]
-    pub struct ZonedIsoDateTime {
-        pub date: Box<IsoDate>,
-        pub time: Box<Time>,
-        pub zone: Box<TimeZoneInfo>,
-    }
-
-    impl ZonedIsoDateTime {
-        /// Creates a new [`ZonedIsoDateTime`] from an IXDTF string.
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "from_string")]
-        pub fn from_string(
-            v: &DiplomatStr,
-            iana_parser: &IanaParser,
-            offset_calculator: &UtcOffsetCalculator,
-        ) -> Result<ZonedIsoDateTime, CalendarParseError> {
-            let icu_time::ZonedDateTime { date, time, zone } =
-                icu_time::ZonedDateTime::try_from_utf8(
-                    v,
-                    Iso,
-                    iana_parser.0.as_borrowed(),
-                    &offset_calculator.0,
-                )?;
-            Ok(ZonedIsoDateTime {
-                date: Box::new(IsoDate(date)),
-                time: Box::new(Time(time)),
-                zone: Box::new(TimeZoneInfo::from(zone)),
-            })
-        }
-    }
-
-    /// An ICU4X DateTime object capable of containing a date, time, and zone for any calendar.
-    #[diplomat::rust_link(icu::time::ZonedDateTime, Struct)]
-    #[diplomat::out]
-    pub struct ZonedDateTime {
-        pub date: Box<Date>,
-        pub time: Box<Time>,
-        pub zone: Box<TimeZoneInfo>,
-    }
-
-    impl ZonedDateTime {
-        /// Creates a new [`ZonedDateTime`] from an IXDTF string.
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "from_string")]
-        pub fn from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-            iana_parser: &IanaParser,
-            offset_calculator: &UtcOffsetCalculator,
-        ) -> Result<ZonedDateTime, CalendarParseError> {
-            let icu_time::ZonedDateTime { date, time, zone } =
-                icu_time::ZonedDateTime::try_from_utf8(
-                    v,
-                    calendar.0.clone(),
-                    iana_parser.0.as_borrowed(),
-                    &offset_calculator.0,
-                )?;
-            Ok(ZonedDateTime {
-                date: Box::new(Date(date)),
-                time: Box::new(Time(time)),
-                zone: Box::new(TimeZoneInfo::from(zone)),
-            })
-        }
-
-        /// Creates a new [`ZonedDateTime`] from a location-only IXDTF string.
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_location_only_from_str, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::ZonedDateTime::try_location_only_from_utf8,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "location_only_from_string")]
-        pub fn location_only_from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-            iana_parser: &IanaParser,
-        ) -> Result<ZonedDateTime, CalendarParseError> {
-            let icu_time::ZonedDateTime { date, time, zone } =
-                icu_time::ZonedDateTime::try_location_only_from_utf8(
-                    v,
-                    calendar.0.clone(),
-                    iana_parser.0.as_borrowed(),
-                )?;
-            Ok(ZonedDateTime {
-                date: Box::new(Date(date)),
-                time: Box::new(Time(time)),
-                zone: Box::new(TimeZoneInfo::from(zone)),
-            })
-        }
-
-        /// Creates a new [`ZonedDateTime`] from an offset-only IXDTF string.
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_offset_only_from_str, FnInStruct)]
-        #[diplomat::rust_link(
-            icu::time::ZonedDateTime::try_offset_only_from_utf8,
-            FnInStruct,
-            hidden
-        )]
-        #[diplomat::attr(auto, named_constructor = "offset_only_from_string")]
-        pub fn offset_only_from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-        ) -> Result<ZonedDateTime, CalendarParseError> {
-            let icu_time::ZonedDateTime { date, time, zone } =
-                icu_time::ZonedDateTime::try_offset_only_from_utf8(v, calendar.0.clone())?;
-            Ok(ZonedDateTime {
-                date: Box::new(Date(date)),
-                time: Box::new(Time(time)),
-                zone: Box::new(TimeZoneInfo::from(zone)),
-            })
-        }
-
-        /// Creates a new [`ZonedDateTime`] from an IXDTF string, without requiring the offset or calculating the zone variant.
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_loose_from_str, FnInStruct)]
-        #[diplomat::rust_link(icu::time::ZonedDateTime::try_loose_from_utf8, FnInStruct, hidden)]
-        #[diplomat::attr(auto, named_constructor = "loose_from_string")]
-        pub fn loose_from_string(
-            v: &DiplomatStr,
-            calendar: &Calendar,
-            iana_parser: &IanaParser,
-        ) -> Result<ZonedDateTime, CalendarParseError> {
-            let icu_time::ZonedDateTime { date, time, zone } =
-                icu_time::ZonedDateTime::try_loose_from_utf8(
-                    v,
-                    calendar.0.clone(),
-                    iana_parser.0.as_borrowed(),
-                )?;
-            Ok(ZonedDateTime {
-                date: Box::new(Date(date)),
-                time: Box::new(Time(time)),
-                zone: Box::new(TimeZoneInfo::from(zone)),
-            })
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_formatter.rs b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_formatter.rs
deleted file mode 100644
index 4a92b64e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_formatter.rs
+++ /dev/null
@@ -1,217 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-#[diplomat::bridge]
-#[diplomat::abi_rename = "icu4x_{0}_mv1"]
-#[diplomat::attr(auto, namespace = "icu4x")]
-pub mod ffi {
-    use alloc::boxed::Box;
-    use icu_datetime::fieldsets::{zone::GenericShort, Combo, YMDT};
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use icu_datetime::options::Length;
-
-    #[cfg(feature = "buffer_provider")]
-    use crate::provider::ffi::DataProvider;
-    use crate::{
-        date::ffi::{Date, IsoDate},
-        errors::ffi::DateTimeFormatError,
-        time::ffi::Time,
-        timezone::ffi::TimeZoneInfo,
-    };
-
-    #[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
-    use crate::{
-        datetime_formatter::ffi::DateTimeLength, errors::ffi::DateTimeFormatterLoadError,
-        locale_core::ffi::Locale,
-    };
-
-    use writeable::Writeable;
-
-    #[diplomat::opaque]
-    /// An object capable of formatting a date time with time zone to a string.
-    #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter, Struct)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct, compact)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::zone::GenericShort, Struct, compact)]
-    pub struct GregorianZonedDateTimeFormatter(
-        pub  icu_datetime::FixedCalendarDateTimeFormatter<
-            icu_calendar::Gregorian,
-            Combo<YMDT, GenericShort>,
-        >,
-    );
-
-    impl GregorianZonedDateTimeFormatter {
-        /// Creates a new [`GregorianZonedDateTimeFormatter`] from locale data using compiled data.
-        ///
-        /// This function has `date_length` and `time_length` arguments and uses default options
-        /// for the time zone.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length(
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<GregorianZonedDateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMDT::with_length(Length::from(length)).zone(GenericShort);
-
-            Ok(Box::new(GregorianZonedDateTimeFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new(prefs, options)?,
-            )))
-        }
-        /// Creates a new [`GregorianZonedDateTimeFormatter`] from locale data using a particular data source.
-        ///
-        /// This function has `date_length` and `time_length` arguments and uses default options
-        /// for the time zone.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<GregorianZonedDateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMDT::with_length(Length::from(length)).zone(GenericShort);
-
-            Ok(Box::new(GregorianZonedDateTimeFormatter(
-                icu_datetime::FixedCalendarDateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-        /// Formats an [`IsoDate`] a [`Time`], and a [`TimeZoneInfo`] to a string.
-        #[diplomat::rust_link(icu::datetime::FixedCalendarDateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format_iso(
-            &self,
-            date: &IsoDate,
-            time: &Time,
-            zone: &TimeZoneInfo,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeFormatError> {
-            let zdt = icu_time::ZonedDateTime {
-                date: icu_calendar::Date::new_from_iso(date.0, icu_calendar::Gregorian),
-                time: time.0,
-                zone: zone
-                    .time_zone_id
-                    .with_offset(zone.offset)
-                    .at_time((date.0, time.0))
-                    .with_zone_variant(
-                        zone.zone_variant
-                            .ok_or(DateTimeFormatError::ZoneInfoMissingFields)?,
-                    ),
-            };
-            let _infallible = self.0.format(&zdt).write_to(write);
-            Ok(())
-        }
-    }
-
-    #[diplomat::opaque]
-    /// An object capable of formatting a date time with time zone to a string.
-    #[diplomat::rust_link(icu::datetime::DateTimeFormatter, Struct)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::YMDT, Struct, compact)]
-    #[diplomat::rust_link(icu::datetime::fieldsets::zone::GenericShort, Struct, compact)]
-    pub struct ZonedDateTimeFormatter(
-        pub icu_datetime::DateTimeFormatter<Combo<YMDT, GenericShort>>,
-    );
-
-    impl ZonedDateTimeFormatter {
-        /// Creates a new [`ZonedDateTimeFormatter`] from locale data using compiled data.
-        ///
-        /// This function has `date_length` and `time_length` arguments and uses default options
-        /// for the time zone.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length")]
-        #[diplomat::demo(default_constructor)]
-        #[cfg(feature = "compiled_data")]
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length(
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<ZonedDateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMDT::with_length(Length::from(length)).zone(GenericShort);
-
-            Ok(Box::new(ZonedDateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new(prefs, options)?,
-            )))
-        }
-        /// Creates a new [`ZonedDateTimeFormatter`] from locale data using a particular data source.
-        ///
-        /// This function has `date_length` and `time_length` arguments and uses default options
-        /// for the time zone.
-        #[diplomat::attr(all(supports = fallible_constructors, supports = named_constructors), named_constructor = "with_length_and_provider")]
-        #[cfg(feature = "buffer_provider")]
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::try_new, FnInStruct)]
-        pub fn create_with_length_and_provider(
-            provider: &DataProvider,
-            locale: &Locale,
-            length: DateTimeLength,
-        ) -> Result<Box<ZonedDateTimeFormatter>, DateTimeFormatterLoadError> {
-            let prefs = (&locale.0).into();
-            let options = YMDT::with_length(Length::from(length)).zone(GenericShort);
-
-            Ok(Box::new(ZonedDateTimeFormatter(
-                icu_datetime::DateTimeFormatter::try_new_with_buffer_provider(
-                    provider.get()?,
-                    prefs,
-                    options,
-                )?,
-            )))
-        }
-        /// Formats a [`Date`] a [`Time`], and a [`TimeZoneInfo`] to a string.
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format(
-            &self,
-            date: &Date,
-            time: &Time,
-            zone: &TimeZoneInfo,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeFormatError> {
-            let zdt = icu_time::ZonedDateTime {
-                date: date.0.wrap_calendar_in_ref(),
-                time: time.0,
-                zone: zone
-                    .time_zone_id
-                    .with_offset(zone.offset)
-                    .at_time((date.0.to_iso(), time.0))
-                    .with_zone_variant(
-                        zone.zone_variant
-                            .ok_or(DateTimeFormatError::ZoneInfoMissingFields)?,
-                    ),
-            };
-            let _infallible = self.0.format(&zdt).write_to(write);
-            Ok(())
-        }
-
-        /// Formats an [`IsoDate`] a [`Time`], and a [`TimeZoneInfo`] to a string.
-        #[diplomat::rust_link(icu::datetime::DateTimeFormatter::format, FnInStruct)]
-        #[diplomat::rust_link(icu::datetime::FormattedDateTime, Struct, hidden)]
-        pub fn format_iso(
-            &self,
-            date: &IsoDate,
-            time: &Time,
-            zone: &TimeZoneInfo,
-            write: &mut diplomat_runtime::DiplomatWrite,
-        ) -> Result<(), DateTimeFormatError> {
-            let zdt = icu_time::ZonedDateTime {
-                date: date.0,
-                time: time.0,
-                zone: zone
-                    .time_zone_id
-                    .with_offset(zone.offset)
-                    .at_time((date.0, time.0))
-                    .with_zone_variant(
-                        zone.zone_variant
-                            .ok_or(DateTimeFormatError::ZoneInfoMissingFields)?,
-                    ),
-            };
-            let _infallible = self.0.format(&zdt).write_to(write);
-            Ok(())
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/tests/missing_apis.txt b/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/tests/missing_apis.txt
deleted file mode 100644
index 9d236dd..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_capi-v2/tests/missing_apis.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-# This file contains all APIs that are exposed in Rust but not over FFI, and not allowlisted in IGNORED_PATHS in tools/ffi_coverage/allowlist.rs.
-# It is generated by `cargo make diplomat-coverage`.
-#
-# If adding an API that expands this file, please consider:
-#
-#  - Whether you can expose that API over FFI in the same PR (and if you do so, be sure to add a `rust_link` annotation)
-#  - Whether the API already has its functionality exposed over FFI (if so, add a potentially-`hidden` `rust_link` annotation to the corresponding FFI API)
-#  - Whether that API is rust-specific functionality that need not be exposed (if so, add it to the allowlist with a note, or add a `hidden` `rust_link` annotation to a related API if possible)
-#  - Whether that API should be punted for later in FFI (if so, please check in with @Manishearth, @robertbastian, or @sffc)
-#  - Whether the API is experimental (if so, add it to the allowlist as experimental)
-#
-# It is acceptable to temporarily have APIs in this file that you plan to add in a soon-upcoming PR.
-#
-# Please check in with @Manishearth, @robertbastian, or @sffc if you have questions
-
-
-icu::datetime::fieldsets::Combo#Struct
-icu::datetime::fieldsets::Combo::into_enums#FnInStruct
-icu::datetime::fieldsets::D#Struct
-icu::datetime::fieldsets::D::long#FnInStruct
-icu::datetime::fieldsets::D::medium#FnInStruct
-icu::datetime::fieldsets::D::short#FnInStruct
-icu::datetime::fieldsets::D::with_alignment#FnInStruct
-icu::datetime::fieldsets::D::with_length#FnInStruct
-icu::datetime::fieldsets::D::zone#FnInStruct
-icu::datetime::fieldsets::DE#Struct
-icu::datetime::fieldsets::DE::long#FnInStruct
-icu::datetime::fieldsets::DE::medium#FnInStruct
-icu::datetime::fieldsets::DE::short#FnInStruct
-icu::datetime::fieldsets::DE::with_alignment#FnInStruct
-icu::datetime::fieldsets::DE::with_length#FnInStruct
-icu::datetime::fieldsets::DE::zone#FnInStruct
-icu::datetime::fieldsets::DET::zone#FnInStruct
-icu::datetime::fieldsets::DT::zone#FnInStruct
-icu::datetime::fieldsets::E#Struct
-icu::datetime::fieldsets::E::long#FnInStruct
-icu::datetime::fieldsets::E::medium#FnInStruct
-icu::datetime::fieldsets::E::short#FnInStruct
-icu::datetime::fieldsets::E::with_length#FnInStruct
-icu::datetime::fieldsets::E::zone#FnInStruct
-icu::datetime::fieldsets::ET::zone#FnInStruct
-icu::datetime::fieldsets::M#Struct
-icu::datetime::fieldsets::M::long#FnInStruct
-icu::datetime::fieldsets::M::medium#FnInStruct
-icu::datetime::fieldsets::M::short#FnInStruct
-icu::datetime::fieldsets::M::with_alignment#FnInStruct
-icu::datetime::fieldsets::M::with_length#FnInStruct
-icu::datetime::fieldsets::MD#Struct
-icu::datetime::fieldsets::MD::long#FnInStruct
-icu::datetime::fieldsets::MD::medium#FnInStruct
-icu::datetime::fieldsets::MD::short#FnInStruct
-icu::datetime::fieldsets::MD::with_alignment#FnInStruct
-icu::datetime::fieldsets::MD::with_length#FnInStruct
-icu::datetime::fieldsets::MD::zone#FnInStruct
-icu::datetime::fieldsets::MDE#Struct
-icu::datetime::fieldsets::MDE::long#FnInStruct
-icu::datetime::fieldsets::MDE::medium#FnInStruct
-icu::datetime::fieldsets::MDE::short#FnInStruct
-icu::datetime::fieldsets::MDE::with_alignment#FnInStruct
-icu::datetime::fieldsets::MDE::with_length#FnInStruct
-icu::datetime::fieldsets::MDE::zone#FnInStruct
-icu::datetime::fieldsets::MDET::zone#FnInStruct
-icu::datetime::fieldsets::MDT::zone#FnInStruct
-icu::datetime::fieldsets::T::hm#FnInStruct
-icu::datetime::fieldsets::T::long#FnInStruct
-icu::datetime::fieldsets::T::medium#FnInStruct
-icu::datetime::fieldsets::T::short#FnInStruct
-icu::datetime::fieldsets::T::with_alignment#FnInStruct
-icu::datetime::fieldsets::T::with_length#FnInStruct
-icu::datetime::fieldsets::T::with_time_precision#FnInStruct
-icu::datetime::fieldsets::T::zone#FnInStruct
-icu::datetime::fieldsets::Y#Struct
-icu::datetime::fieldsets::Y::long#FnInStruct
-icu::datetime::fieldsets::Y::medium#FnInStruct
-icu::datetime::fieldsets::Y::short#FnInStruct
-icu::datetime::fieldsets::Y::with_alignment#FnInStruct
-icu::datetime::fieldsets::Y::with_length#FnInStruct
-icu::datetime::fieldsets::Y::with_year_style#FnInStruct
-icu::datetime::fieldsets::YM#Struct
-icu::datetime::fieldsets::YM::long#FnInStruct
-icu::datetime::fieldsets::YM::medium#FnInStruct
-icu::datetime::fieldsets::YM::short#FnInStruct
-icu::datetime::fieldsets::YM::with_alignment#FnInStruct
-icu::datetime::fieldsets::YM::with_length#FnInStruct
-icu::datetime::fieldsets::YM::with_year_style#FnInStruct
-icu::datetime::fieldsets::YMD::long#FnInStruct
-icu::datetime::fieldsets::YMD::medium#FnInStruct
-icu::datetime::fieldsets::YMD::short#FnInStruct
-icu::datetime::fieldsets::YMD::with_alignment#FnInStruct
-icu::datetime::fieldsets::YMD::with_length#FnInStruct
-icu::datetime::fieldsets::YMD::with_year_style#FnInStruct
-icu::datetime::fieldsets::YMD::zone#FnInStruct
-icu::datetime::fieldsets::YMDE#Struct
-icu::datetime::fieldsets::YMDE::long#FnInStruct
-icu::datetime::fieldsets::YMDE::medium#FnInStruct
-icu::datetime::fieldsets::YMDE::short#FnInStruct
-icu::datetime::fieldsets::YMDE::with_alignment#FnInStruct
-icu::datetime::fieldsets::YMDE::with_length#FnInStruct
-icu::datetime::fieldsets::YMDE::with_year_style#FnInStruct
-icu::datetime::fieldsets::YMDE::zone#FnInStruct
-icu::datetime::fieldsets::YMDET::zone#FnInStruct
-icu::datetime::fieldsets::YMDT::zone#FnInStruct
-icu::datetime::fieldsets::builder::BuilderError#Enum
-icu::datetime::fieldsets::builder::DateFields#Enum
-icu::datetime::fieldsets::builder::FieldSetBuilder#Struct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_calendar_period#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_composite#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_composite_datetime#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_date#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_date_and_time#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_time#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::build_zone#FnInStruct
-icu::datetime::fieldsets::builder::FieldSetBuilder::new#FnInStruct
-icu::datetime::fieldsets::builder::ZoneStyle#Enum
-icu::datetime::fieldsets::enums::CalendarPeriodFieldSet#Enum
-icu::datetime::fieldsets::enums::CompositeDateTimeFieldSet#Enum
-icu::datetime::fieldsets::enums::CompositeDateTimeFieldSet::to_composite_field_set#FnInEnum
-icu::datetime::fieldsets::enums::CompositeDateTimeFieldSet::try_from_composite_field_set#FnInEnum
-icu::datetime::fieldsets::enums::CompositeFieldSet#Enum
-icu::datetime::fieldsets::enums::DateAndTimeFieldSet#Enum
-icu::datetime::fieldsets::enums::DateAndTimeFieldSet::zone#FnInEnum
-icu::datetime::fieldsets::enums::DateFieldSet#Enum
-icu::datetime::fieldsets::enums::DateFieldSet::zone#FnInEnum
-icu::datetime::fieldsets::enums::TimeFieldSet#Enum
-icu::datetime::fieldsets::enums::TimeFieldSet::zone#FnInEnum
-icu::datetime::fieldsets::enums::ZoneFieldSet#Enum
-icu::datetime::fieldsets::zone::ExemplarCity#Struct
-icu::datetime::fieldsets::zone::GenericLong#Struct
-icu::datetime::fieldsets::zone::LocalizedOffsetLong#Struct
-icu::datetime::fieldsets::zone::LocalizedOffsetShort#Struct
-icu::datetime::fieldsets::zone::Location#Struct
-icu::datetime::fieldsets::zone::SpecificLong#Struct
-icu::datetime::fieldsets::zone::SpecificShort#Struct
-icu::datetime::options::Alignment#Enum
-icu::datetime::options::SubsecondDigits#Enum
-icu::datetime::options::SubsecondError#Enum
-icu::datetime::options::TimePrecision#Enum
-icu::datetime::options::YearStyle#Enum
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/Cargo.toml
deleted file mode 100644
index f0b2c5f3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/Cargo.toml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_collator-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_collator"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-"compiled_data" = []
-"datagen" = []
-"default" = []
-"serde" = []
-
-[dependencies.displaydoc]
-version = "^0.2.3"
-default_features = false
-[dependencies.icu_collator_data]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_collections]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_locale_core]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.icu_normalizer]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_properties]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.smallvec]
-version = "^1.10.0"
-default_features = false
-[dependencies.utf16_iter]
-version = "^1.0.2"
-default_features = false
-[dependencies.utf8_iter]
-version = "^1.0.2"
-default_features = false
-[dependencies.zerovec]
-version = "^0.11.1"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/src/lib.rs
deleted file mode 100644
index b922e50..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_collator-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/Cargo.toml
deleted file mode 100644
index 0a8857af..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/Cargo.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_collator_data-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_collator_data"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-
-[dependencies.icu_locale]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider_baked]
-version = "~2.0.0-beta2"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/src/lib.rs
deleted file mode 100644
index 6c8260b..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_collator_data-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_collator_data-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/Cargo.toml
deleted file mode 100644
index 844fbdc..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/Cargo.toml
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_datetime-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_datetime"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-"compiled_data" = []
-"datagen" = []
-"default" = []
-"experimental" = []
-"ixdtf" = []
-"logging" = []
-"serde" = []
-
-[dependencies.displaydoc]
-version = "^0.2.3"
-default_features = false
-[dependencies.either]
-version = "^1.9.0"
-default_features = false
-[dependencies.fixed_decimal]
-version = "^0.7.0"
-default_features = false
-[dependencies.icu_calendar]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_datetime_data]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_decimal]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_locale_core]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.icu_pattern]
-version = "^0.4.0"
-default_features = false
-[dependencies.icu_plurals]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.icu_time]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.potential_utf]
-version = "^0.1.1"
-default_features = false
-[dependencies.smallvec]
-version = "^1.10.0"
-default_features = false
-[dependencies.tinystr]
-version = "^0.8.0"
-default_features = false
-[dependencies.writeable]
-version = "^0.6.0"
-default_features = false
-[dependencies.zerovec]
-version = "^0.11.1"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/src/lib.rs
deleted file mode 100644
index b6a443c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_datetime-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/Cargo.toml
deleted file mode 100644
index b845862..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/Cargo.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_datetime_data-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_datetime_data"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-
-[dependencies.icu_locale]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider_baked]
-version = "~2.0.0-beta2"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/src/lib.rs
deleted file mode 100644
index 267b089..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_datetime_data-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_datetime_data-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo_vcs_info.json
deleted file mode 100644
index a7a8e4f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/.cargo_vcs_info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "git": {
-    "sha1": "40c3a646731f4a14422c534a9eb5204c2008e623"
-  },
-  "path_in_vcs": "provider/adapters"
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.lock b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.lock
deleted file mode 100644
index 994abbc8..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.lock
+++ /dev/null
@@ -1,307 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "cobs"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
-
-[[package]]
-name = "databake"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff6ee9e2d2afb173bcdeee45934c89ec341ab26f91c9933774fc15c2b58f83ef"
-dependencies = [
- "databake-derive",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "databake-derive"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6834770958c7b84223607e49758ec0dde273c4df915e734aad50f62968a4c134"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "erased-serde"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "icu_collections"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63df3227b8f369b3f7cc4003f0bdd9ca0083b871e2672811f699d69b473cc174"
-dependencies = [
- "displaydoc",
- "potential_utf",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afa4c80f106c1cf0f1b66e0ae9806f603f1c2c41d004229af1b0c6cebe84c74a"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_provider",
- "potential_utf",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_core"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b80161b66511e4eb415ef110c67ea8cab4400b749f9e30c8691fff1354934b6b"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d462aad52985bb71e3140fcc44e54d816cf7f2c3f25cd9b090cc77a9798504"
-dependencies = [
- "databake",
- "displaydoc",
- "erased-serde",
- "icu_locale_core",
- "postcard",
- "serde",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_adapters"
-version = "2.0.0-beta2"
-dependencies = [
- "databake",
- "icu_locale",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "litemap"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
-
-[[package]]
-name = "postcard"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8"
-dependencies = [
- "cobs",
- "serde",
-]
-
-[[package]]
-name = "potential_utf"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
-dependencies = [
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.93"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "syn"
-version = "2.0.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
-dependencies = [
- "displaydoc",
- "zerovec",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
-
-[[package]]
-name = "writeable"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
-
-[[package]]
-name = "yoke"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e62113720e311984f461c56b00457ae9981c0bc7859d22306cc2ae2f95571c"
-dependencies = [
- "databake",
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml
deleted file mode 100644
index 19f202e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml
+++ /dev/null
@@ -1,82 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
-[package]
-edition = "2021"
-rust-version = "1.81"
-name = "icu_provider_adapters"
-version = "2.0.0-beta2"
-authors = ["The ICU4X Project Developers"]
-build = false
-include = [
-    "data/**/*",
-    "src/**/*",
-    "examples/**/*",
-    "benches/**/*",
-    "tests/**/*",
-    "Cargo.toml",
-    "LICENSE",
-    "README.md",
-]
-autolib = false
-autobins = false
-autoexamples = false
-autotests = false
-autobenches = false
-description = "Adapters for composing and manipulating data providers."
-homepage = "https://icu4x.unicode.org"
-readme = "README.md"
-categories = ["internationalization"]
-license = "Unicode-3.0"
-repository = "https://github.com/unicode-org/icu4x"
-
-[features]
-export = ["icu_provider/export"]
-
-[lib]
-name = "icu_provider_adapters"
-path = "src/lib.rs"
-
-[dependencies.databake]
-version = "0.2.0"
-features = ["derive"]
-optional = true
-default-features = false
-
-[dependencies.icu_locale]
-version = "~2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_provider]
-version = "2.0.0-beta2"
-features = ["alloc"]
-default-features = false
-
-[dependencies.serde]
-version = "1.0.110"
-features = [
-    "derive",
-    "alloc",
-]
-optional = true
-default-features = false
-
-[dependencies.tinystr]
-version = "0.8.0"
-features = ["zerovec"]
-default-features = false
-
-[dependencies.zerovec]
-version = "0.11.1"
-features = ["yoke"]
-default-features = false
-
-[dev-dependencies]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml.orig
deleted file mode 100644
index e4180e77..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/Cargo.toml.orig
+++ /dev/null
@@ -1,34 +0,0 @@
-# This file is part of ICU4X. For terms of use, please see the file
-# called LICENSE at the top level of the ICU4X source tree
-# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-[package]
-name = "icu_provider_adapters"
-description = "Adapters for composing and manipulating data providers."
-
-authors.workspace = true
-categories.workspace = true
-edition.workspace = true
-homepage.workspace = true
-include.workspace = true
-license.workspace = true
-repository.workspace = true
-rust-version.workspace = true
-version.workspace = true
-
-[dependencies]
-icu_locale = { workspace = true }
-icu_provider = { workspace = true, features = ["alloc"] }
-tinystr = { workspace = true, features = ["zerovec"] }
-zerovec = { workspace = true, features = ["yoke"] }
-
-databake = { workspace = true, features = ["derive"], optional = true}
-serde = { workspace = true, features = ["derive", "alloc"], optional = true }
-
-[dev-dependencies]
-icu_provider = { path = "../../provider/core", features = ["deserialize_json"] }
-icu_locale = { path = "../../components/locale" }
-writeable = { path = "../../utils/writeable" }
-
-[features]
-export = ["icu_provider/export"]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/LICENSE b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/LICENSE
deleted file mode 100644
index c9be601..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/LICENSE
+++ /dev/null
@@ -1,46 +0,0 @@
-UNICODE LICENSE V3
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright © 2020-2024 Unicode, Inc.
-
-NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
-SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
-TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
-DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of data files and any associated documentation (the "Data Files") or
-software and any associated documentation (the "Software") to deal in the
-Data Files or Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, and/or sell
-copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that either (a)
-this copyright and permission notice appear with all copies of the Data
-Files or Software, or (b) this copyright and permission notice appear in
-associated Documentation.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
-THIRD PARTY RIGHTS.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
-BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
-FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written
-authorization of the copyright holder.
-
-SPDX-License-Identifier: Unicode-3.0
-
-—
-
-Portions of ICU4X may have been adapted from ICU4C and/or ICU4J.
-ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/README.md b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/README.md
deleted file mode 100644
index fcbdce2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# icu_provider_adapters [![crates.io](https://img.shields.io/crates/v/icu_provider_adapters)](https://crates.io/crates/icu_provider_adapters)
-
-<!-- cargo-rdme start -->
-
-Adapters for composing and manipulating data providers.
-
-- Use the [`fork`] module to marshall data requests between multiple possible providers.
-- Use the [`either`] module to choose between multiple provider types at runtime.
-- Use the [`filter`] module to programmatically reject certain data requests.
-- Use the [`fallback`] module to automatically resolve arbitrary locales for data loading.
-
-<!-- cargo-rdme end -->
-
-## More Information
-
-For more information on development, authorship, contributing etc. please visit [`ICU4X home page`](https://github.com/unicode-org/icu4x).
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/either.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/either.rs
deleted file mode 100644
index bb48ac18..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/either.rs
+++ /dev/null
@@ -1,130 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Helpers for switching between multiple providers.
-
-use alloc::collections::BTreeSet;
-#[cfg(feature = "export")]
-use icu_provider::export::ExportableProvider;
-use icu_provider::prelude::*;
-
-/// A provider that is one of two types determined at runtime.
-///
-/// Data provider traits implemented by both `P0` and `P1` are implemented on
-/// `EitherProvider<P0, P1>`.
-#[allow(clippy::exhaustive_enums)] // this is stable
-#[derive(Debug)]
-pub enum EitherProvider<P0, P1> {
-    /// A value of type `P0`.
-    A(P0),
-    /// A value of type `P1`.
-    B(P1),
-}
-
-impl<M: DynamicDataMarker, P0: DynamicDataProvider<M>, P1: DynamicDataProvider<M>>
-    DynamicDataProvider<M> for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.load_data(marker, req),
-            B(p) => p.load_data(marker, req),
-        }
-    }
-}
-
-impl<M: DynamicDataMarker, P0: DynamicDryDataProvider<M>, P1: DynamicDryDataProvider<M>>
-    DynamicDryDataProvider<M> for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn dry_load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponseMetadata, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.dry_load_data(marker, req),
-            B(p) => p.dry_load_data(marker, req),
-        }
-    }
-}
-
-impl<M: DataMarker, P0: DataProvider<M>, P1: DataProvider<M>> DataProvider<M>
-    for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.load(req),
-            B(p) => p.load(req),
-        }
-    }
-}
-
-impl<M: DataMarker, P0: DryDataProvider<M>, P1: DryDataProvider<M>> DryDataProvider<M>
-    for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.dry_load(req),
-            B(p) => p.dry_load(req),
-        }
-    }
-}
-
-impl<
-        M: DynamicDataMarker,
-        P0: IterableDynamicDataProvider<M>,
-        P1: IterableDynamicDataProvider<M>,
-    > IterableDynamicDataProvider<M> for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn iter_ids_for_marker(
-        &self,
-        marker: DataMarkerInfo,
-    ) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.iter_ids_for_marker(marker),
-            B(p) => p.iter_ids_for_marker(marker),
-        }
-    }
-}
-
-impl<M: DataMarker, P0: IterableDataProvider<M>, P1: IterableDataProvider<M>>
-    IterableDataProvider<M> for EitherProvider<P0, P1>
-{
-    #[inline]
-    fn iter_ids(&self) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.iter_ids(),
-            B(p) => p.iter_ids(),
-        }
-    }
-}
-
-#[cfg(feature = "export")]
-impl<P0, P1> ExportableProvider for EitherProvider<P0, P1>
-where
-    P0: ExportableProvider,
-    P1: ExportableProvider,
-{
-    fn supported_markers(&self) -> alloc::collections::BTreeSet<DataMarkerInfo> {
-        use EitherProvider::*;
-        match self {
-            A(p) => p.supported_markers(),
-            B(p) => p.supported_markers(),
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/empty.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/empty.rs
deleted file mode 100644
index c0426d7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/empty.rs
+++ /dev/null
@@ -1,108 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Empty data provider implementations.
-//!
-//! Use [`EmptyDataProvider`] as a stand-in for a provider that always fails.
-
-use alloc::collections::BTreeSet;
-#[cfg(feature = "export")]
-use icu_provider::export::ExportableProvider;
-use icu_provider::prelude::*;
-
-/// A data provider that always returns an error.
-///
-/// The returned error kind is configurable.
-///
-/// # Examples
-///
-/// ```
-/// use icu_provider::hello_world::HelloWorldV1;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::empty::EmptyDataProvider;
-///
-/// let provider = EmptyDataProvider::new();
-///
-/// assert!(matches!(
-///     DataProvider::<HelloWorldV1>::load(&provider, Default::default()),
-///     Err(DataError {
-///         kind: DataErrorKind::MarkerNotFound,
-///         ..
-///     })
-/// ));
-/// ```
-#[derive(Debug)]
-pub struct EmptyDataProvider {
-    error_kind: DataErrorKind,
-}
-
-impl Default for EmptyDataProvider {
-    fn default() -> Self {
-        Self::new()
-    }
-}
-
-impl EmptyDataProvider {
-    /// Creates a data provider that always returns [`DataErrorKind::MarkerNotFound`].
-    pub fn new() -> Self {
-        Self {
-            error_kind: DataErrorKind::MarkerNotFound,
-        }
-    }
-
-    /// Creates a data provider that always returns the specified error kind.
-    pub fn new_with_error_kind(error_kind: DataErrorKind) -> Self {
-        Self { error_kind }
-    }
-}
-
-impl<M> DynamicDataProvider<M> for EmptyDataProvider
-where
-    M: DynamicDataMarker,
-{
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        base_req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        Err(self.error_kind.with_req(marker, base_req))
-    }
-}
-
-impl<M> DataProvider<M> for EmptyDataProvider
-where
-    M: DataMarker,
-{
-    fn load(&self, base_req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        Err(self.error_kind.with_req(M::INFO, base_req))
-    }
-}
-
-impl<M> IterableDataProvider<M> for EmptyDataProvider
-where
-    M: DataMarker,
-{
-    fn iter_ids(&self) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        Ok(Default::default())
-    }
-}
-
-impl<M> IterableDynamicDataProvider<M> for EmptyDataProvider
-where
-    M: DynamicDataMarker,
-{
-    fn iter_ids_for_marker(
-        &self,
-        _: DataMarkerInfo,
-    ) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        Ok(Default::default())
-    }
-}
-
-#[cfg(feature = "export")]
-impl ExportableProvider for EmptyDataProvider {
-    fn supported_markers(&self) -> alloc::collections::BTreeSet<DataMarkerInfo> {
-        Default::default()
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fallback/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fallback/mod.rs
deleted file mode 100644
index e14e9e31..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fallback/mod.rs
+++ /dev/null
@@ -1,300 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! A data provider wrapper that performs locale fallback.
-
-#[doc(no_inline)]
-pub use icu_locale::LocaleFallbacker;
-use icu_provider::prelude::*;
-use icu_provider::DryDataProvider;
-use icu_provider::DynamicDryDataProvider;
-
-/// A data provider wrapper that performs locale fallback. This enables arbitrary locales to be
-/// handled at runtime.
-///
-/// # Examples
-///
-/// ```
-/// use icu_locale::langid;
-/// use icu_provider::hello_world::*;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::fallback::LocaleFallbackProvider;
-///
-/// let provider = HelloWorldProvider;
-///
-/// let id = DataIdentifierCow::from_locale(langid!("ja-JP").into());
-///
-/// // The provider does not have data for "ja-JP":
-/// DataProvider::<HelloWorldV1>::load(
-///     &provider,
-///     DataRequest {
-///         id: id.as_borrowed(),
-///         ..Default::default()
-///     },
-/// )
-/// .expect_err("No fallback");
-///
-/// // But if we wrap the provider in a fallback provider...
-/// let provider = LocaleFallbackProvider::new(
-///     provider,
-///     icu_locale::LocaleFallbacker::new().static_to_owned(),
-/// );
-///
-/// // ...then we can load "ja-JP" based on "ja" data
-/// let response = DataProvider::<HelloWorldV1>::load(
-///     &provider,
-///     DataRequest {
-///         id: id.as_borrowed(),
-///         ..Default::default()
-///     },
-/// )
-/// .expect("successful with vertical fallback");
-///
-/// assert_eq!(response.metadata.locale.unwrap(), langid!("ja").into(),);
-/// assert_eq!(response.payload.get().message, "こんにちは世界",);
-/// ```
-#[derive(Clone, Debug)]
-pub struct LocaleFallbackProvider<P> {
-    inner: P,
-    fallbacker: LocaleFallbacker,
-}
-
-impl<P> LocaleFallbackProvider<P> {
-    /// Wraps a provider with a provider performing fallback under the given fallbacker.
-    ///
-    /// If the underlying provider contains deduplicated data, it is important to use the
-    /// same fallback data that `ExportDriver` used.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu_locale::langid;
-    /// use icu_locale::LocaleFallbacker;
-    /// use icu_provider::hello_world::*;
-    /// use icu_provider::prelude::*;
-    /// use icu_provider_adapters::fallback::LocaleFallbackProvider;
-    ///
-    /// let provider = HelloWorldProvider;
-    ///
-    /// let id = DataIdentifierCow::from_locale(langid!("de-CH").into());
-    ///
-    /// // There is no "de-CH" data in the `HelloWorldProvider`
-    /// DataProvider::<HelloWorldV1>::load(
-    ///     &provider,
-    ///     DataRequest {
-    ///         id: id.as_borrowed(),
-    ///         ..Default::default()
-    ///     },
-    /// )
-    /// .expect_err("No data for de-CH");
-    ///
-    /// // `HelloWorldProvider` does not contain fallback data,
-    /// // but we can construct a fallbacker with `icu_locale`'s
-    /// // compiled data.
-    /// let provider = LocaleFallbackProvider::new(
-    ///     provider,
-    ///     LocaleFallbacker::new().static_to_owned(),
-    /// );
-    ///
-    /// // Now we can load the "de-CH" data via fallback to "de".
-    /// let german_hello_world: DataResponse<HelloWorldV1> = provider
-    ///     .load(DataRequest {
-    ///         id: id.as_borrowed(),
-    ///         ..Default::default()
-    ///     })
-    ///     .expect("Loading should succeed");
-    ///
-    /// assert_eq!("Hallo Welt", german_hello_world.payload.get().message);
-    /// ```
-    pub fn new(provider: P, fallbacker: LocaleFallbacker) -> Self {
-        Self {
-            inner: provider,
-            fallbacker,
-        }
-    }
-
-    /// Returns a reference to the inner provider, bypassing fallback.
-    pub fn inner(&self) -> &P {
-        &self.inner
-    }
-
-    /// Returns a mutable reference to the inner provider.
-    pub fn inner_mut(&mut self) -> &mut P {
-        &mut self.inner
-    }
-
-    /// Returns ownership of the inner provider to the caller.
-    pub fn into_inner(self) -> P {
-        self.inner
-    }
-
-    /// Run the fallback algorithm with the data request using the inner data provider.
-    /// Internal function; external clients should use one of the trait impls below.
-    ///
-    /// Function arguments:
-    ///
-    /// - F1 should perform a data load for a single DataRequest and return the result of it
-    /// - F2 should map from the provider-specific response type to DataResponseMetadata
-    fn run_fallback<F1, F2, R>(
-        &self,
-        marker: DataMarkerInfo,
-        mut base_req: DataRequest,
-        mut f1: F1,
-        mut f2: F2,
-    ) -> Result<R, DataError>
-    where
-        F1: FnMut(DataRequest) -> Result<R, DataError>,
-        F2: FnMut(&mut R) -> &mut DataResponseMetadata,
-    {
-        if marker.is_singleton {
-            return f1(base_req);
-        }
-        let mut fallback_iterator = self
-            .fallbacker
-            .for_config(marker.fallback_config)
-            .fallback_for(*base_req.id.locale);
-        let base_silent = core::mem::replace(&mut base_req.metadata.silent, true);
-        loop {
-            let result = f1(DataRequest {
-                id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
-                    base_req.id.marker_attributes,
-                    fallback_iterator.get(),
-                ),
-                ..base_req
-            });
-
-            match result.allow_identifier_not_found() {
-                Ok(Some(mut result)) => {
-                    f2(&mut result).locale = Some(fallback_iterator.take());
-                    return Ok(result);
-                }
-                Ok(None) => {
-                    // If we just checked und, break out of the loop.
-                    if fallback_iterator.get().is_default() {
-                        break;
-                    }
-                    fallback_iterator.step();
-                }
-                Err(e) => {
-                    // Log the original request rather than the fallback request
-                    base_req.metadata.silent = base_silent;
-                    return Err(e.with_req(marker, base_req));
-                }
-            };
-        }
-        base_req.metadata.silent = base_silent;
-        Err(DataErrorKind::IdentifierNotFound.with_req(marker, base_req))
-    }
-}
-
-impl<P, M> DynamicDataProvider<M> for LocaleFallbackProvider<P>
-where
-    P: DynamicDataProvider<M>,
-    M: DynamicDataMarker,
-{
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        self.run_fallback(
-            marker,
-            req,
-            |req| self.inner.load_data(marker, req),
-            |res| &mut res.metadata,
-        )
-    }
-}
-
-impl<P, M> DynamicDryDataProvider<M> for LocaleFallbackProvider<P>
-where
-    P: DynamicDryDataProvider<M>,
-    M: DynamicDataMarker,
-{
-    fn dry_load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponseMetadata, DataError> {
-        self.run_fallback(
-            marker,
-            req,
-            |req| self.inner.dry_load_data(marker, req),
-            |m| m,
-        )
-    }
-}
-
-impl<P, M> DataProvider<M> for LocaleFallbackProvider<P>
-where
-    P: DataProvider<M>,
-    M: DataMarker,
-{
-    fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        self.run_fallback(
-            M::INFO,
-            req,
-            |req| self.inner.load(req),
-            |res| &mut res.metadata,
-        )
-    }
-}
-
-impl<P, M> DryDataProvider<M> for LocaleFallbackProvider<P>
-where
-    P: DryDataProvider<M>,
-    M: DataMarker,
-{
-    fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-        self.run_fallback(M::INFO, req, |req| self.inner.dry_load(req), |m| m)
-    }
-}
-
-#[test]
-fn dry_test() {
-    use icu_provider::hello_world::*;
-
-    struct TestProvider;
-    impl DataProvider<HelloWorldV1> for TestProvider {
-        fn load(&self, _: DataRequest) -> Result<DataResponse<HelloWorldV1>, DataError> {
-            panic!("pretend this is super expensive")
-        }
-    }
-
-    impl DryDataProvider<HelloWorldV1> for TestProvider {
-        fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-            // We support all languages except English, and no regional variants. This is cheap to check.
-            if req.id.locale.region.is_some() || req.id.locale.language.as_str() == "en" {
-                Err(DataErrorKind::IdentifierNotFound.into_error())
-            } else {
-                Ok(Default::default())
-            }
-        }
-    }
-
-    let provider =
-        LocaleFallbackProvider::new(TestProvider, LocaleFallbacker::new().static_to_owned());
-
-    assert_eq!(
-        provider
-            .dry_load(DataRequest {
-                id: DataIdentifierBorrowed::for_locale(&"de-CH".parse().unwrap()),
-                ..Default::default()
-            })
-            .unwrap()
-            .locale,
-        "de".parse::<DataLocale>().ok()
-    );
-
-    assert_eq!(
-        provider
-            .dry_load(DataRequest {
-                id: DataIdentifierBorrowed::for_locale(&"en-GB".parse().unwrap()),
-                ..Default::default()
-            })
-            .unwrap()
-            .locale,
-        Some(DataLocale::default())
-    );
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/impls.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/impls.rs
deleted file mode 100644
index 5f923850..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/impls.rs
+++ /dev/null
@@ -1,100 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use super::*;
-use alloc::boxed::Box;
-use icu_provider::prelude::*;
-
-impl<D> FilterDataProvider<D, fn(DataIdentifierBorrowed) -> bool> {
-    /// Creates a [`FilterDataProvider`] that does not do any filtering.
-    ///
-    /// Filters can be added using [`Self::with_filter`].
-    pub fn new(provider: D, filter_name: &'static str) -> Self {
-        Self {
-            inner: provider,
-            predicate: |_| true,
-            filter_name,
-        }
-    }
-}
-
-impl<D, F> FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool + Sync,
-{
-    /// Filter out data requests with certain langids according to the predicate function. The
-    /// predicate should return `true` to allow a langid and `false` to reject a langid.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu_locale::LanguageIdentifier;
-    /// use icu_locale::{langid, subtags::language};
-    /// use icu_provider::hello_world::*;
-    /// use icu_provider::prelude::*;
-    /// use icu_provider_adapters::filter::FilterDataProvider;
-    ///
-    /// let provider =
-    ///     FilterDataProvider::new(HelloWorldProvider, "Demo no-English filter")
-    ///         .with_filter(|id| id.locale.language != language!("en"));
-    ///
-    /// // German requests should succeed:
-    /// let de = DataIdentifierCow::from_locale(langid!("de").into());
-    /// let response: Result<DataResponse<HelloWorldV1>, _> =
-    ///     provider.load(DataRequest {
-    ///         id: de.as_borrowed(),
-    ///         ..Default::default()
-    ///     });
-    /// assert!(matches!(response, Ok(_)));
-    ///
-    /// // English requests should fail:
-    /// let en = DataIdentifierCow::from_locale(langid!("en-US").into());
-    /// let response: Result<DataResponse<HelloWorldV1>, _> =
-    ///     provider.load(DataRequest {
-    ///         id: en.as_borrowed(),
-    ///         ..Default::default()
-    ///     });
-    /// let response: Result<DataResponse<HelloWorldV1>, _> =
-    ///     provider.load(DataRequest {
-    ///         id: en.as_borrowed(),
-    ///         ..Default::default()
-    ///     });
-    /// assert!(matches!(
-    ///     response,
-    ///     Err(DataError {
-    ///         kind: DataErrorKind::IdentifierNotFound,
-    ///         ..
-    ///     })
-    /// ));
-    ///
-    /// // English should not appear in the iterator result:
-    /// let available_ids = provider
-    ///     .iter_ids()
-    ///     .expect("Should successfully make an iterator of supported locales");
-    /// assert!(available_ids
-    ///     .contains(&DataIdentifierCow::from_locale(langid!("de").into())));
-    /// assert!(!available_ids
-    ///     .contains(&DataIdentifierCow::from_locale(langid!("en").into())));
-    /// ```
-    #[allow(clippy::type_complexity)]
-    pub fn with_filter<'a>(
-        self,
-        predicate: impl Fn(DataIdentifierBorrowed) -> bool + Sync + 'a,
-    ) -> FilterDataProvider<D, Box<dyn Fn(DataIdentifierBorrowed) -> bool + Sync + 'a>>
-    where
-        F: 'a,
-    {
-        let old_predicate = self.predicate;
-        FilterDataProvider {
-            inner: self.inner,
-            predicate: Box::new(move |id| -> bool {
-                if !(old_predicate)(id) {
-                    return false;
-                }
-                predicate(id)
-            }),
-            filter_name: self.filter_name,
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/mod.rs
deleted file mode 100644
index 1d59b545..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/mod.rs
+++ /dev/null
@@ -1,170 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Providers that filter resource requests.
-//!
-//! Requests that fail a filter test will return [`DataError`] of kind [`Filtered`](
-//! DataErrorKind::IdentifierNotFound) and will not appear in [`IterableDynamicDataProvider`] iterators.
-//!
-//! # Examples
-//!
-//! ```
-//! use icu_locale::subtags::language;
-//! use icu_provider::hello_world::*;
-//! use icu_provider::prelude::*;
-//! use icu_provider_adapters::filter::FilterDataProvider;
-//!
-//! // Only return German data from a HelloWorldProvider:
-//! FilterDataProvider::new(HelloWorldProvider, "Demo German-only filter")
-//!     .with_filter(|id| id.locale.language == language!("de"));
-//! ```
-
-mod impls;
-
-use alloc::collections::BTreeSet;
-#[cfg(feature = "export")]
-use icu_provider::export::ExportableProvider;
-use icu_provider::prelude::*;
-
-/// A data provider that selectively filters out data requests.
-///
-/// Data requests that are rejected by the filter will return a [`DataError`] with kind
-/// [`Filtered`](DataErrorKind::IdentifierNotFound), and they will not be returned
-/// by [`IterableDynamicDataProvider::iter_ids_for_marker`].
-///
-/// Although this struct can be created directly, the traits in this module provide helper
-/// functions for common filtering patterns.
-#[allow(clippy::exhaustive_structs)] // this type is stable
-#[derive(Debug)]
-pub struct FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-{
-    /// The data provider to which we delegate requests.
-    pub inner: D,
-
-    /// The predicate function. A return value of `true` indicates that the request should
-    /// proceed as normal; a return value of `false` will reject the request.
-    pub predicate: F,
-
-    /// A name for this filter, used in error messages.
-    pub filter_name: &'static str,
-}
-
-impl<D, F> FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-{
-    fn check(&self, marker: DataMarkerInfo, req: DataRequest) -> Result<(), DataError> {
-        if !(self.predicate)(req.id) {
-            return Err(DataErrorKind::IdentifierNotFound
-                .with_str_context(self.filter_name)
-                .with_req(marker, req));
-        }
-        Ok(())
-    }
-}
-
-impl<D, F, M> DynamicDataProvider<M> for FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    M: DynamicDataMarker,
-    D: DynamicDataProvider<M>,
-{
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        self.check(marker, req)?;
-        self.inner.load_data(marker, req)
-    }
-}
-
-impl<D, F, M> DynamicDryDataProvider<M> for FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    M: DynamicDataMarker,
-    D: DynamicDryDataProvider<M>,
-{
-    fn dry_load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponseMetadata, DataError> {
-        self.check(marker, req)?;
-        self.inner.dry_load_data(marker, req)
-    }
-}
-
-impl<D, F, M> DataProvider<M> for FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    M: DataMarker,
-    D: DataProvider<M>,
-{
-    fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        self.check(M::INFO, req)?;
-        self.inner.load(req)
-    }
-}
-
-impl<D, F, M> DryDataProvider<M> for FilterDataProvider<D, F>
-where
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    M: DataMarker,
-    D: DryDataProvider<M>,
-{
-    fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-        self.check(M::INFO, req)?;
-        self.inner.dry_load(req)
-    }
-}
-
-impl<M, D, F> IterableDynamicDataProvider<M> for FilterDataProvider<D, F>
-where
-    M: DynamicDataMarker,
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    D: IterableDynamicDataProvider<M>,
-{
-    fn iter_ids_for_marker(
-        &self,
-        marker: DataMarkerInfo,
-    ) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        self.inner.iter_ids_for_marker(marker).map(|set| {
-            // Use filter_map instead of filter to avoid cloning the locale
-            set.into_iter()
-                .filter(|id| (self.predicate)(id.as_borrowed()))
-                .collect()
-        })
-    }
-}
-
-impl<M, D, F> IterableDataProvider<M> for FilterDataProvider<D, F>
-where
-    M: DataMarker,
-    F: Fn(DataIdentifierBorrowed) -> bool,
-    D: IterableDataProvider<M>,
-{
-    fn iter_ids(&self) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        self.inner.iter_ids().map(|vec| {
-            // Use filter_map instead of filter to avoid cloning the locale
-            vec.into_iter()
-                .filter(|id| (self.predicate)(id.as_borrowed()))
-                .collect()
-        })
-    }
-}
-
-#[cfg(feature = "export")]
-impl<P0, F> ExportableProvider for FilterDataProvider<P0, F>
-where
-    P0: ExportableProvider,
-    F: Fn(DataIdentifierBorrowed) -> bool + Sync,
-{
-    fn supported_markers(&self) -> alloc::collections::BTreeSet<DataMarkerInfo> {
-        // The predicate only takes DataIdentifier, not DataMarker, so we are not impacted
-        self.inner.supported_markers()
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fixed.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fixed.rs
deleted file mode 100644
index a486cb1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fixed.rs
+++ /dev/null
@@ -1,86 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Data provider always serving the same struct.
-
-use core::fmt;
-use icu_provider::prelude::*;
-use yoke::Yokeable;
-
-/// A data provider that returns clones of a fixed type-erased payload.
-///
-/// # Examples
-///
-/// ```
-/// use icu_provider::hello_world::*;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::fixed::FixedProvider;
-/// use std::borrow::Cow;
-/// use writeable::assert_writeable_eq;
-///
-/// let provider = FixedProvider::<HelloWorldV1>::from_static(&HelloWorld {
-///     message: Cow::Borrowed("custom hello world"),
-/// });
-///
-/// // Check that it works:
-/// let formatter =
-///     HelloWorldFormatter::try_new_unstable(&provider, Default::default())
-///         .expect("marker matches");
-/// assert_writeable_eq!(formatter.format(), "custom hello world");
-/// ```
-#[allow(clippy::exhaustive_structs)] // this type is stable
-pub struct FixedProvider<M: DataMarker> {
-    data: DataPayload<M>,
-}
-
-impl<M: DataMarker> FixedProvider<M> {
-    /// Creates a `FixedProvider` with an owned (allocated) payload of the given data.
-    pub fn from_owned(data: M::DataStruct) -> Self {
-        Self::from_payload(DataPayload::from_owned(data))
-    }
-
-    /// Creates a `FixedProvider` with a statically borrowed payload of the given data.
-    pub fn from_static(data: &'static M::DataStruct) -> Self {
-        FixedProvider {
-            data: DataPayload::from_static_ref(data),
-        }
-    }
-
-    /// Creates a `FixedProvider` from an existing [`DataPayload`].
-    pub fn from_payload(data: DataPayload<M>) -> Self {
-        FixedProvider { data }
-    }
-
-    /// Creates a `FixedProvider` with the default (allocated) version of the data struct.
-    pub fn new_default() -> Self
-    where
-        M::DataStruct: Default,
-    {
-        Self::from_owned(M::DataStruct::default())
-    }
-}
-
-impl<M> DataProvider<M> for FixedProvider<M>
-where
-    M: DataMarker,
-    for<'a> <M::DataStruct as Yokeable<'a>>::Output: Clone,
-{
-    fn load(&self, _: DataRequest) -> Result<DataResponse<M>, DataError> {
-        Ok(DataResponse {
-            metadata: Default::default(),
-            payload: self.data.clone(),
-        })
-    }
-}
-
-impl<M> fmt::Debug for FixedProvider<M>
-where
-    M: DynamicDataMarker,
-    M: DataMarker,
-    for<'a> &'a <M::DataStruct as Yokeable<'a>>::Output: fmt::Debug,
-{
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        self.data.fmt(f)
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/by_error.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/by_error.rs
deleted file mode 100644
index 618975c..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/by_error.rs
+++ /dev/null
@@ -1,330 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use super::ForkByErrorPredicate;
-use alloc::{collections::BTreeSet, vec::Vec};
-#[cfg(feature = "export")]
-use icu_provider::export::ExportableProvider;
-use icu_provider::prelude::*;
-
-/// A provider that returns data from one of two child providers based on a predicate function.
-///
-/// This is an abstract forking provider that must be provided with a type implementing the
-/// [`ForkByErrorPredicate`] trait.
-///
-/// [`ForkByErrorProvider`] does not support forking between [`DataProvider`]s. However, it
-/// supports forking between [`BufferProvider`], and [`DynamicDataProvider`].
-#[derive(Debug, PartialEq, Eq)]
-pub struct ForkByErrorProvider<P0, P1, F>(P0, P1, F);
-
-impl<P0, P1, F> ForkByErrorProvider<P0, P1, F> {
-    /// Create a new provider that forks between the two children.
-    ///
-    /// The `predicate` argument should be an instance of a struct implementing
-    /// [`ForkByErrorPredicate`].
-    pub fn new_with_predicate(p0: P0, p1: P1, predicate: F) -> Self {
-        Self(p0, p1, predicate)
-    }
-
-    /// Returns references to the inner providers.
-    pub fn inner(&self) -> (&P0, &P1) {
-        (&self.0, &self.1)
-    }
-
-    /// Returns mutable references to the inner providers.
-    pub fn inner_mut(&mut self) -> (&mut P0, &mut P1) {
-        (&mut self.0, &mut self.1)
-    }
-
-    /// Returns ownership of the inner providers to the caller.
-    pub fn into_inner(self) -> (P0, P1) {
-        (self.0, self.1)
-    }
-}
-
-impl<M, P0, P1, F> DataProvider<M> for ForkByErrorProvider<P0, P1, F>
-where
-    M: DataMarker,
-    P0: DataProvider<M>,
-    P1: DataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        let result = self.0.load(req);
-        match result {
-            Ok(ok) => return Ok(ok),
-            Err(err) if !self.2.test(M::INFO, Some(req), err) => return Err(err),
-            _ => (),
-        };
-        self.1.load(req)
-    }
-}
-
-impl<M, P0, P1, F> DryDataProvider<M> for ForkByErrorProvider<P0, P1, F>
-where
-    M: DataMarker,
-    P0: DryDataProvider<M>,
-    P1: DryDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-        let result = self.0.dry_load(req);
-        match result {
-            Ok(ok) => return Ok(ok),
-            Err(err) if !self.2.test(M::INFO, Some(req), err) => return Err(err),
-            _ => (),
-        };
-        self.1.dry_load(req)
-    }
-}
-
-impl<M, P0, P1, F> DynamicDataProvider<M> for ForkByErrorProvider<P0, P1, F>
-where
-    M: DynamicDataMarker,
-    P0: DynamicDataProvider<M>,
-    P1: DynamicDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        let result = self.0.load_data(marker, req);
-        match result {
-            Ok(ok) => return Ok(ok),
-            Err(err) if !self.2.test(marker, Some(req), err) => return Err(err),
-            _ => (),
-        };
-        self.1.load_data(marker, req)
-    }
-}
-
-impl<M, P0, P1, F> DynamicDryDataProvider<M> for ForkByErrorProvider<P0, P1, F>
-where
-    M: DynamicDataMarker,
-    P0: DynamicDryDataProvider<M>,
-    P1: DynamicDryDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn dry_load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponseMetadata, DataError> {
-        let result = self.0.dry_load_data(marker, req);
-        match result {
-            Ok(ok) => return Ok(ok),
-            Err(err) if !self.2.test(marker, Some(req), err) => return Err(err),
-            _ => (),
-        };
-        self.1.dry_load_data(marker, req)
-    }
-}
-
-impl<M, P0, P1, F> IterableDynamicDataProvider<M> for ForkByErrorProvider<P0, P1, F>
-where
-    M: DynamicDataMarker,
-    P0: IterableDynamicDataProvider<M>,
-    P1: IterableDynamicDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn iter_ids_for_marker(
-        &self,
-        marker: DataMarkerInfo,
-    ) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        let result = self.0.iter_ids_for_marker(marker);
-        match result {
-            Ok(ok) => return Ok(ok),
-            Err(err) if !self.2.test(marker, None, err) => return Err(err),
-            _ => (),
-        };
-        self.1.iter_ids_for_marker(marker)
-    }
-}
-
-#[cfg(feature = "export")]
-impl<P0, P1, F> ExportableProvider for ForkByErrorProvider<P0, P1, F>
-where
-    P0: ExportableProvider,
-    P1: ExportableProvider,
-    F: ForkByErrorPredicate + Sync,
-{
-    fn supported_markers(&self) -> alloc::collections::BTreeSet<DataMarkerInfo> {
-        let mut markers = self.0.supported_markers();
-        markers.extend(self.1.supported_markers());
-        markers
-    }
-}
-
-/// A provider that returns data from the first child provider passing a predicate function.
-///
-/// This is an abstract forking provider that must be provided with a type implementing the
-/// [`ForkByErrorPredicate`] trait.
-///
-/// [`MultiForkByErrorProvider`] does not support forking between [`DataProvider`]s. However, it
-/// supports forking between [`BufferProvider`], and [`DynamicDataProvider`].
-#[derive(Debug)]
-pub struct MultiForkByErrorProvider<P, F> {
-    providers: Vec<P>,
-    predicate: F,
-}
-
-impl<P, F> MultiForkByErrorProvider<P, F> {
-    /// Create a new provider that forks between the vector of children.
-    ///
-    /// The `predicate` argument should be an instance of a struct implementing
-    /// [`ForkByErrorPredicate`].
-    pub fn new_with_predicate(providers: Vec<P>, predicate: F) -> Self {
-        Self {
-            providers,
-            predicate,
-        }
-    }
-
-    /// Returns a slice of the inner providers.
-    pub fn inner(&self) -> &[P] {
-        &self.providers
-    }
-
-    /// Exposes a mutable vector of providers to a closure so it can be mutated.
-    pub fn with_inner_mut(&mut self, f: impl FnOnce(&mut Vec<P>)) {
-        f(&mut self.providers)
-    }
-
-    /// Returns ownership of the inner providers to the caller.
-    pub fn into_inner(self) -> Vec<P> {
-        self.providers
-    }
-
-    /// Adds an additional child provider.
-    pub fn push(&mut self, provider: P) {
-        self.providers.push(provider);
-    }
-}
-
-impl<M, P, F> DataProvider<M> for MultiForkByErrorProvider<P, F>
-where
-    M: DataMarker,
-    P: DataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn load(&self, req: DataRequest) -> Result<DataResponse<M>, DataError> {
-        let mut last_error = F::UNIT_ERROR.with_marker(M::INFO);
-        for provider in self.providers.iter() {
-            let result = provider.load(req);
-            match result {
-                Ok(ok) => return Ok(ok),
-                Err(err) if !self.predicate.test(M::INFO, Some(req), err) => return Err(err),
-                Err(err) => last_error = err,
-            };
-        }
-        Err(last_error)
-    }
-}
-
-impl<M, P, F> DryDataProvider<M> for MultiForkByErrorProvider<P, F>
-where
-    M: DataMarker,
-    P: DryDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn dry_load(&self, req: DataRequest) -> Result<DataResponseMetadata, DataError> {
-        let mut last_error = F::UNIT_ERROR.with_marker(M::INFO);
-        for provider in self.providers.iter() {
-            let result = provider.dry_load(req);
-            match result {
-                Ok(ok) => return Ok(ok),
-                Err(err) if !self.predicate.test(M::INFO, Some(req), err) => return Err(err),
-                Err(err) => last_error = err,
-            };
-        }
-        Err(last_error)
-    }
-}
-
-impl<M, P, F> DynamicDataProvider<M> for MultiForkByErrorProvider<P, F>
-where
-    M: DynamicDataMarker,
-    P: DynamicDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponse<M>, DataError> {
-        let mut last_error = F::UNIT_ERROR.with_marker(marker);
-        for provider in self.providers.iter() {
-            let result = provider.load_data(marker, req);
-            match result {
-                Ok(ok) => return Ok(ok),
-                Err(err) if !self.predicate.test(marker, Some(req), err) => return Err(err),
-                Err(err) => last_error = err,
-            };
-        }
-        Err(last_error)
-    }
-}
-
-impl<M, P, F> DynamicDryDataProvider<M> for MultiForkByErrorProvider<P, F>
-where
-    M: DynamicDataMarker,
-    P: DynamicDryDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn dry_load_data(
-        &self,
-        marker: DataMarkerInfo,
-        req: DataRequest,
-    ) -> Result<DataResponseMetadata, DataError> {
-        let mut last_error = F::UNIT_ERROR.with_marker(marker);
-        for provider in self.providers.iter() {
-            let result = provider.dry_load_data(marker, req);
-            match result {
-                Ok(ok) => return Ok(ok),
-                Err(err) if !self.predicate.test(marker, Some(req), err) => return Err(err),
-                Err(err) => last_error = err,
-            };
-        }
-        Err(last_error)
-    }
-}
-
-impl<M, P, F> IterableDynamicDataProvider<M> for MultiForkByErrorProvider<P, F>
-where
-    M: DynamicDataMarker,
-    P: IterableDynamicDataProvider<M>,
-    F: ForkByErrorPredicate,
-{
-    fn iter_ids_for_marker(
-        &self,
-        marker: DataMarkerInfo,
-    ) -> Result<BTreeSet<DataIdentifierCow>, DataError> {
-        let mut last_error = F::UNIT_ERROR.with_marker(marker);
-        for provider in self.providers.iter() {
-            let result = provider.iter_ids_for_marker(marker);
-            match result {
-                Ok(ok) => return Ok(ok),
-                Err(err) if !self.predicate.test(marker, None, err) => return Err(err),
-                Err(err) => last_error = err,
-            };
-        }
-        Err(last_error)
-    }
-}
-
-#[cfg(feature = "export")]
-impl<P, F> ExportableProvider for MultiForkByErrorProvider<P, F>
-where
-    P: ExportableProvider,
-    F: ForkByErrorPredicate + Sync,
-{
-    fn supported_markers(&self) -> alloc::collections::BTreeSet<DataMarkerInfo> {
-        self.providers
-            .iter()
-            .flat_map(|p| p.supported_markers())
-            .collect()
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/mod.rs
deleted file mode 100644
index 03c721e..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/mod.rs
+++ /dev/null
@@ -1,219 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Providers that combine multiple other providers.
-//!
-//! # Types of Forking Providers
-//!
-//! ## Marker-Based
-//!
-//! To fork between providers that support different data markers, see:
-//!
-//! - [`ForkByMarkerProvider`]
-//! - [`MultiForkByMarkerProvider`]
-//!
-//! ## Locale-Based
-//!
-//! To fork between providers that support different locales, see:
-//!
-//! - [`ForkByErrorProvider`]`<`[`IdentiferNotFoundPredicate`]`>`
-//! - [`MultiForkByErrorProvider`]`<`[`IdentiferNotFoundPredicate`]`>`
-//!
-//! [`IdentiferNotFoundPredicate`]: predicates::IdentifierNotFoundPredicate
-//!
-//! # Examples
-//!
-//! See:
-//!
-//! - [`ForkByMarkerProvider`]
-//! - [`MultiForkByMarkerProvider`]
-//! - [`IdentiferNotFoundPredicate`]
-
-use alloc::vec::Vec;
-
-mod by_error;
-
-pub mod predicates;
-
-pub use by_error::ForkByErrorProvider;
-pub use by_error::MultiForkByErrorProvider;
-
-use predicates::ForkByErrorPredicate;
-use predicates::MarkerNotFoundPredicate;
-
-/// Create a provider that returns data from one of two child providers based on the marker.
-///
-/// The result of the first provider that supports a particular [`DataMarkerInfo`] will be returned,
-/// even if the request failed for other reasons (such as an unsupported language). Therefore,
-/// you should add child providers that support disjoint sets of markers.
-///
-/// [`ForkByMarkerProvider`] does not support forking between [`DataProvider`]s. However, it
-/// supports forking between [`BufferProvider`], and [`DynamicDataProvider`].
-///
-/// # Examples
-///
-/// Normal usage:
-///
-/// ```
-/// use icu_locale::langid;
-/// use icu_provider::hello_world::*;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::fork::ForkByMarkerProvider;
-///
-/// struct DummyBufferProvider;
-/// impl DynamicDataProvider<BufferMarker> for DummyBufferProvider {
-///     fn load_data(
-///         &self,
-///         marker: DataMarkerInfo,
-///         req: DataRequest,
-///     ) -> Result<DataResponse<BufferMarker>, DataError> {
-///         Err(DataErrorKind::MarkerNotFound.with_req(marker, req))
-///     }
-/// }
-///
-/// let forking_provider = ForkByMarkerProvider::new(
-///     DummyBufferProvider,
-///     HelloWorldProvider.into_json_provider(),
-/// );
-///
-/// let provider = forking_provider.as_deserializing();
-///
-/// let german_hello_world: DataResponse<HelloWorldV1> = provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("de").into()),
-///         ..Default::default()
-///     })
-///     .expect("Loading should succeed");
-///
-/// assert_eq!("Hallo Welt", german_hello_world.payload.get().message);
-/// ```
-///
-/// Stops at the first provider supporting a marker, even if the locale is not supported:
-///
-/// ```
-/// use icu_locale::{subtags::language, langid};
-/// use icu_provider::hello_world::*;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::filter::FilterDataProvider;
-/// use icu_provider_adapters::fork::ForkByMarkerProvider;
-///
-/// let forking_provider = ForkByMarkerProvider::new(
-///     FilterDataProvider::new(
-///         HelloWorldProvider.into_json_provider(),
-///         "Chinese"
-///     )
-///     .with_filter(|id| id.locale.language == language!("zh")),
-///     FilterDataProvider::new(
-///         HelloWorldProvider.into_json_provider(),
-///         "German"
-///     )
-///     .with_filter(|id| id.locale.language == language!("de")),
-/// );
-///
-/// let provider: &dyn DataProvider<HelloWorldV1> =
-///     &forking_provider.as_deserializing();
-///
-/// // Chinese is the first provider, so this succeeds
-/// let chinese_hello_world = provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("zh").into()),
-///         ..Default::default()
-///     })
-///     .expect("Loading should succeed");
-///
-/// assert_eq!("你好世界", chinese_hello_world.payload.get().message);
-///
-/// // German is shadowed by Chinese, so this fails
-/// provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("de").into()),
-///         ..Default::default()
-///     })
-///     .expect_err("Should stop at the first provider, even though the second has data");
-/// ```
-///
-/// [`DataMarkerInfo`]: icu_provider::DataMarkerInfo
-/// [`DataProvider`]: icu_provider::DataProvider
-/// [`BufferProvider`]: icu_provider::buf::BufferProvider
-/// [`DynamicDataProvider`]: icu_provider::DynamicDataProvider
-pub type ForkByMarkerProvider<P0, P1> = ForkByErrorProvider<P0, P1, MarkerNotFoundPredicate>;
-
-impl<P0, P1> ForkByMarkerProvider<P0, P1> {
-    /// A provider that returns data from one of two child providers based on the marker.
-    ///
-    /// See [`ForkByMarkerProvider`].
-    pub fn new(p0: P0, p1: P1) -> Self {
-        ForkByErrorProvider::new_with_predicate(p0, p1, MarkerNotFoundPredicate)
-    }
-}
-
-/// A provider that returns data from the first child provider supporting the marker.
-///
-/// The result of the first provider that supports a particular [`DataMarkerInfo`] will be returned,
-/// even if the request failed for other reasons (such as an unsupported language). Therefore,
-/// you should add child providers that support disjoint sets of markers.
-///
-/// [`MultiForkByMarkerProvider`] does not support forking between [`DataProvider`]s. However, it
-/// supports forking between [`BufferProvider`], and [`DynamicDataProvider`].
-///
-/// # Examples
-///
-/// ```
-/// use icu_locale::{subtags::language, langid};
-/// use icu_provider::hello_world::*;
-/// use icu_provider::prelude::*;
-/// use icu_provider_adapters::filter::FilterDataProvider;
-/// use icu_provider_adapters::fork::MultiForkByMarkerProvider;
-///
-/// let forking_provider = MultiForkByMarkerProvider::new(
-///     vec![
-///         FilterDataProvider::new(
-///             HelloWorldProvider.into_json_provider(),
-///             "Chinese"
-///         )
-///         .with_filter(|id| id.locale.language == language!("zh")),
-///         FilterDataProvider::new(
-///             HelloWorldProvider.into_json_provider(),
-///             "German"
-///         )
-///         .with_filter(|id| id.locale.language == language!("de")),
-///     ],
-/// );
-///
-/// let provider: &dyn DataProvider<HelloWorldV1> =
-///     &forking_provider.as_deserializing();
-///
-/// // Chinese is the first provider, so this succeeds
-/// let chinese_hello_world = provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("zh").into()),
-///         ..Default::default()
-///     })
-///     .expect("Loading should succeed");
-///
-/// assert_eq!("你好世界", chinese_hello_world.payload.get().message);
-///
-/// // German is shadowed by Chinese, so this fails
-/// provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("de").into()),
-///         ..Default::default()
-///     })
-///     .expect_err("Should stop at the first provider, even though the second has data");
-/// ```
-///
-/// [`DataMarkerInfo`]: icu_provider::DataMarkerInfo
-/// [`DataProvider`]: icu_provider::DataProvider
-/// [`BufferProvider`]: icu_provider::buf::BufferProvider
-/// [`DynamicDataProvider`]: icu_provider::DynamicDataProvider
-pub type MultiForkByMarkerProvider<P> = MultiForkByErrorProvider<P, MarkerNotFoundPredicate>;
-
-impl<P> MultiForkByMarkerProvider<P> {
-    /// Create a provider that returns data from the first child provider supporting the marker.
-    ///
-    /// See [`MultiForkByMarkerProvider`].
-    pub fn new(providers: Vec<P>) -> Self {
-        MultiForkByErrorProvider::new_with_predicate(providers, MarkerNotFoundPredicate)
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/predicates.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/predicates.rs
deleted file mode 100644
index 74d8e4d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/predicates.rs
+++ /dev/null
@@ -1,133 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Collection of predicate traits and functions for forking providers.
-
-use icu_provider::prelude::*;
-
-/// The predicate trait used by [`ForkByErrorProvider`].
-///
-/// [`ForkByErrorProvider`]: super::ForkByErrorProvider
-pub trait ForkByErrorPredicate {
-    /// The error to return if there are zero providers.
-    const UNIT_ERROR: DataErrorKind = DataErrorKind::MarkerNotFound;
-
-    /// This function is called when a data request fails and there are additional providers
-    /// that could possibly fulfill the request.
-    ///
-    /// Arguments:
-    ///
-    /// - `&self` = Reference to the struct implementing the trait (for data capture)
-    /// - `marker` = The [`DataMarkerInfo`] associated with the request
-    /// - `req` = The [`DataRequest`]. This may be `None` if there is no request, such as
-    ///           inside [`IterableDynamicDataProvider`].
-    /// - `err` = The error that occurred.
-    ///
-    /// Return value:
-    ///
-    /// - `true` to discard the error and attempt the request with the next provider.
-    /// - `false` to return the error and not perform any additional requests.
-    fn test(&self, marker: DataMarkerInfo, req: Option<DataRequest>, err: DataError) -> bool;
-}
-
-/// A predicate that allows forking providers to search for a provider that supports a
-/// particular data marker.
-///
-/// This is normally used implicitly by [`ForkByMarkerProvider`].
-///
-/// [`ForkByMarkerProvider`]: super::ForkByMarkerProvider
-#[derive(Debug, PartialEq, Eq)]
-#[non_exhaustive] // Not intended to be constructed
-pub struct MarkerNotFoundPredicate;
-
-impl ForkByErrorPredicate for MarkerNotFoundPredicate {
-    const UNIT_ERROR: DataErrorKind = DataErrorKind::MarkerNotFound;
-
-    #[inline]
-    fn test(&self, _: DataMarkerInfo, _: Option<DataRequest>, err: DataError) -> bool {
-        matches!(
-            err,
-            DataError {
-                kind: DataErrorKind::MarkerNotFound,
-                ..
-            }
-        )
-    }
-}
-
-/// A predicate that allows forking providers to search for a provider that supports a
-/// particular locale, based on whether it returns [`DataErrorKind::IdentifierNotFound`].
-///
-/// # Examples
-///
-/// ```
-/// use icu_provider_adapters::fork::ForkByErrorProvider;
-/// use icu_provider_adapters::fork::predicates::IdentifierNotFoundPredicate;
-/// use icu_provider::prelude::*;
-/// use icu_provider::hello_world::*;
-/// use icu_locale::langid;
-///
-/// struct SingleLocaleProvider(DataLocale);
-/// impl DataProvider<HelloWorldV1> for SingleLocaleProvider {
-///     fn load(&self, req: DataRequest) -> Result<DataResponse<HelloWorldV1>, DataError> {
-///         if *req.id.locale != self.0 {
-///             return Err(DataErrorKind::IdentifierNotFound.with_req(HelloWorldV1::INFO, req));
-///         }
-///         HelloWorldProvider.load(req)
-///     }
-/// }
-///
-/// let provider_de = SingleLocaleProvider(langid!("de").into());
-/// let provider_ro = SingleLocaleProvider(langid!("ro").into());
-///
-/// // Create the forking provider:
-/// let provider = ForkByErrorProvider::new_with_predicate(
-///     provider_de,
-///     provider_ro,
-///     IdentifierNotFoundPredicate
-/// );
-///
-/// // Test that we can load both "de" and "ro" data:
-///
-/// let german_hello_world: DataResponse<HelloWorldV1> = provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("de").into()),
-///         ..Default::default()
-///     })
-///     .expect("Loading should succeed");
-///
-/// assert_eq!("Hallo Welt", german_hello_world.payload.get().message);
-///
-/// let romanian_hello_world: DataResponse<HelloWorldV1> = provider
-///     .load(DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("ro").into()),
-///         ..Default::default()
-///     })
-///     .expect("Loading should succeed");
-///
-/// assert_eq!("Salut, lume", romanian_hello_world.payload.get().message);
-///
-/// // We should not be able to load "en" data because it is not in either provider:
-///
-/// DataProvider::<HelloWorldV1>::load(
-///     &provider,
-///     DataRequest {
-///         id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
-///         ..Default::default()
-///     }
-/// )
-/// .expect_err("No English data");
-/// ```
-#[derive(Debug, PartialEq, Eq)]
-#[allow(clippy::exhaustive_structs)] // empty type
-pub struct IdentifierNotFoundPredicate;
-
-impl ForkByErrorPredicate for IdentifierNotFoundPredicate {
-    const UNIT_ERROR: DataErrorKind = DataErrorKind::IdentifierNotFound;
-
-    #[inline]
-    fn test(&self, _: DataMarkerInfo, _: Option<DataRequest>, err: DataError) -> bool {
-        Err::<(), _>(err).allow_identifier_not_found().is_ok()
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/lib.rs
deleted file mode 100644
index 2b172a5..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/lib.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Adapters for composing and manipulating data providers.
-//!
-//! - Use the [`fork`] module to marshall data requests between multiple possible providers.
-//! - Use the [`either`] module to choose between multiple provider types at runtime.
-//! - Use the [`filter`] module to programmatically reject certain data requests.
-//! - Use the [`fallback`] module to automatically resolve arbitrary locales for data loading.
-
-// https://github.com/unicode-org/icu4x/blob/main/documents/process/boilerplate.md#library-annotations
-#![cfg_attr(not(any(test, doc)), no_std)]
-#![cfg_attr(
-    not(test),
-    deny(
-        clippy::indexing_slicing,
-        clippy::unwrap_used,
-        clippy::expect_used,
-        clippy::panic,
-        clippy::exhaustive_structs,
-        clippy::exhaustive_enums,
-        clippy::trivially_copy_pass_by_ref,
-        missing_debug_implementations,
-    )
-)]
-#![warn(missing_docs)]
-
-extern crate alloc;
-
-pub mod either;
-pub mod empty;
-pub mod fallback;
-pub mod filter;
-pub mod fixed;
-pub mod fork;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/Cargo.toml
deleted file mode 100644
index f2c00271..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/Cargo.toml
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_segmenter-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_segmenter"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-"auto" = []
-"compiled_data" = []
-"datagen" = []
-"default" = []
-"lstm" = []
-"serde" = []
-
-[dependencies.core_maths]
-version = "^0.1.0"
-default_features = false
-[dependencies.displaydoc]
-version = "^0.2.3"
-default_features = false
-[dependencies.icu_collections]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_locale_core]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider]
-version = "^2.0.0-beta2"
-default_features = false
-[dependencies.icu_segmenter_data]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.potential_utf]
-version = "^0.1.1"
-default_features = false
-[dependencies.utf8_iter]
-version = "^1.0.2"
-default_features = false
-[dependencies.zerovec]
-version = "^0.11.1"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/src/lib.rs
deleted file mode 100644
index 130ec0aec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_segmenter-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/Cargo.toml
deleted file mode 100644
index 6dd5f118..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/Cargo.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `icu_segmenter_data-2.0.0-beta2` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "icu_segmenter_data"
-version = "2.0.0-beta2"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-
-[dependencies.icu_locale]
-version = "~2.0.0-beta2"
-default_features = false
-[dependencies.icu_provider_baked]
-version = "~2.0.0-beta2"
-default_features = false
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/src/lib.rs
deleted file mode 100644
index b0ef8b2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_segmenter_data-v2/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `icu_segmenter_data-2.0.0-beta2` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo_vcs_info.json
deleted file mode 100644
index c50c51e7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/.cargo_vcs_info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "git": {
-    "sha1": "86fe50f272858bfc15640b2dd0572603b00e1210"
-  },
-  "path_in_vcs": "components/time"
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.lock b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.lock
deleted file mode 100644
index ead1fd7..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.lock
+++ /dev/null
@@ -1,405 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "calendrical_calculations"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97f73e95d668625c9b28a3072e6326773785a0cf807de9f3d632778438f3d38"
-dependencies = [
- "core_maths",
- "displaydoc",
-]
-
-[[package]]
-name = "core_maths"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
-dependencies = [
- "libm",
-]
-
-[[package]]
-name = "databake"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff6ee9e2d2afb173bcdeee45934c89ec341ab26f91c9933774fc15c2b58f83ef"
-dependencies = [
- "databake-derive",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "databake-derive"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6834770958c7b84223607e49758ec0dde273c4df915e734aad50f62968a4c134"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "icu_calendar"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f664d19093224c9de27db5d1797b4105ae9545c0c540faf0d351884d1b24ca6"
-dependencies = [
- "calendrical_calculations",
- "displaydoc",
- "icu_calendar_data",
- "icu_locale_core",
- "icu_provider",
- "ixdtf",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_calendar_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd70bb6c7a5d0d24c94fa18309118879bbde09052b18eec96fc75aa4c6dbf659"
-dependencies = [
- "icu_locale",
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_collections"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63df3227b8f369b3f7cc4003f0bdd9ca0083b871e2672811f699d69b473cc174"
-dependencies = [
- "displaydoc",
- "potential_utf",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afa4c80f106c1cf0f1b66e0ae9806f603f1c2c41d004229af1b0c6cebe84c74a"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locale_core",
- "icu_locale_data",
- "icu_provider",
- "potential_utf",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_core"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b80161b66511e4eb415ef110c67ea8cab4400b749f9e30c8691fff1354934b6b"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c1adc94a0bde584f8751381c0427d763ef5068fd388d670fabf966569f01465"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "icu_provider"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d462aad52985bb71e3140fcc44e54d816cf7f2c3f25cd9b090cc77a9798504"
-dependencies = [
- "displaydoc",
- "icu_locale_core",
- "serde",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_baked"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2794f00ee1999495f4f1a1e35aee8f54fe7cfcbcf909ec05b60522377200aecb"
-dependencies = [
- "icu_provider",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_time"
-version = "2.0.0-beta2"
-dependencies = [
- "calendrical_calculations",
- "databake",
- "displaydoc",
- "icu_calendar",
- "icu_provider",
- "icu_time_data",
- "ixdtf",
- "serde",
- "tinystr",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_time_data"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b15e682b25e7f4b790941d29f014e0581e00d9565e052ce0e3476b1f2a94332"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "ixdtf"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3be3d801e2817c5311a3be4f1e1b2148dcd2b10baadb3a5eade0544a0521ac9"
-dependencies = [
- "displaydoc",
- "utf8_iter",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
-
-[[package]]
-name = "litemap"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "potential_utf"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
-dependencies = [
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.93"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "syn"
-version = "2.0.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
-dependencies = [
- "databake",
- "displaydoc",
- "serde",
- "zerovec",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
-
-[[package]]
-name = "writeable"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
-
-[[package]]
-name = "yoke"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerotrie"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b7a6cf4865aac8394f19ad46e37f60b929c1ba5eed798b96a32820aa9392929"
-dependencies = [
- "databake",
- "displaydoc",
- "litemap",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e62113720e311984f461c56b00457ae9981c0bc7859d22306cc2ae2f95571c"
-dependencies = [
- "databake",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml
deleted file mode 100644
index 520803a3..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
-[package]
-edition = "2021"
-rust-version = "1.81"
-name = "icu_time"
-version = "2.0.0-beta2"
-authors = ["The ICU4X Project Developers"]
-build = false
-include = [
-    "data/**/*",
-    "src/**/*",
-    "examples/**/*",
-    "benches/**/*",
-    "tests/**/*",
-    "Cargo.toml",
-    "LICENSE",
-    "README.md",
-]
-autolib = false
-autobins = false
-autoexamples = false
-autotests = false
-autobenches = false
-description = "API for resolving and manipulating time zone information"
-homepage = "https://icu4x.unicode.org"
-readme = "README.md"
-categories = ["internationalization"]
-license = "Unicode-3.0"
-repository = "https://github.com/unicode-org/icu4x"
-
-[package.metadata.docs.rs]
-all-features = true
-
-[features]
-alloc = [
-    "tinystr/alloc",
-    "zerotrie/alloc",
-    "serde?/alloc",
-]
-compiled_data = [
-    "dep:icu_time_data",
-    "icu_calendar/compiled_data",
-]
-datagen = [
-    "serde",
-    "dep:databake",
-    "zerovec/databake",
-    "zerotrie/databake",
-    "tinystr/databake",
-]
-default = [
-    "compiled_data",
-    "ixdtf",
-]
-ixdtf = [
-    "dep:ixdtf",
-    "icu_calendar/ixdtf",
-]
-serde = [
-    "dep:serde",
-    "zerovec/serde",
-    "zerotrie/serde",
-    "tinystr/serde",
-    "icu_provider/serde",
-]
-
-[lib]
-name = "icu_time"
-path = "src/lib.rs"
-
-[dependencies.calendrical_calculations]
-version = "0.1.1"
-default-features = false
-
-[dependencies.databake]
-version = "0.2.0"
-features = ["derive"]
-optional = true
-default-features = false
-
-[dependencies.displaydoc]
-version = "0.2.3"
-default-features = false
-
-[dependencies.icu_calendar]
-version = "~2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_provider]
-version = "2.0.0-beta2"
-default-features = false
-
-[dependencies.icu_time_data]
-version = "~2.0.0-beta2"
-optional = true
-default-features = false
-
-[dependencies.ixdtf]
-version = "0.4.0"
-optional = true
-default-features = false
-
-[dependencies.serde]
-version = "1.0.110"
-features = ["derive"]
-optional = true
-default-features = false
-
-[dependencies.tinystr]
-version = "0.8.0"
-features = ["zerovec"]
-default-features = false
-
-[dependencies.writeable]
-version = "0.6.0"
-default-features = false
-
-[dependencies.zerotrie]
-version = "0.2.0"
-features = [
-    "yoke",
-    "zerofrom",
-]
-default-features = false
-
-[dependencies.zerovec]
-version = "0.11.1"
-features = [
-    "derive",
-    "yoke",
-]
-default-features = false
-
-[dev-dependencies]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml.orig
deleted file mode 100644
index bd8a5eb..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/Cargo.toml.orig
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is part of ICU4X. For terms of use, please see the file
-# called LICENSE at the top level of the ICU4X source tree
-# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-[package]
-name = "icu_time"
-description = "API for resolving and manipulating time zone information"
-
-authors.workspace = true
-categories.workspace = true
-edition.workspace = true
-homepage.workspace = true
-include.workspace = true
-license.workspace = true
-repository.workspace = true
-rust-version.workspace = true
-version.workspace = true
-
-[package.metadata.docs.rs]
-all-features = true
-
-[dependencies]
-calendrical_calculations = { workspace = true }
-displaydoc = { workspace = true }
-icu_calendar = { workspace = true }
-icu_provider = { workspace = true }
-ixdtf = { workspace = true, optional = true }
-tinystr = { workspace = true, features = ["zerovec"] }
-zerotrie = { workspace = true, features = ["yoke", "zerofrom"] }
-zerovec = { workspace = true, features = ["derive", "yoke"] }
-writeable = { workspace = true }
-
-databake = { workspace = true, optional = true, features = ["derive"] }
-serde = { workspace = true, features = ["derive"], optional = true }
-
-icu_time_data = { workspace = true, optional = true }
-
-[dev-dependencies]
-icu = { path = "../../components/icu", default-features = false }
-
-[features]
-default = ["compiled_data", "ixdtf"]
-ixdtf = ["dep:ixdtf", "icu_calendar/ixdtf"]
-serde = ["dep:serde", "zerovec/serde", "zerotrie/serde", "tinystr/serde", "icu_provider/serde"]
-datagen = ["serde", "dep:databake", "zerovec/databake", "zerotrie/databake", "tinystr/databake"]
-compiled_data = ["dep:icu_time_data", "icu_calendar/compiled_data"]
-alloc = ["tinystr/alloc", "zerotrie/alloc", "serde?/alloc"]
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/LICENSE b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/LICENSE
deleted file mode 100644
index c9be601..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/LICENSE
+++ /dev/null
@@ -1,46 +0,0 @@
-UNICODE LICENSE V3
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright © 2020-2024 Unicode, Inc.
-
-NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
-SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
-TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
-DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of data files and any associated documentation (the "Data Files") or
-software and any associated documentation (the "Software") to deal in the
-Data Files or Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, and/or sell
-copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that either (a)
-this copyright and permission notice appear with all copies of the Data
-Files or Software, or (b) this copyright and permission notice appear in
-associated Documentation.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
-THIRD PARTY RIGHTS.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
-BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
-FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written
-authorization of the copyright holder.
-
-SPDX-License-Identifier: Unicode-3.0
-
-—
-
-Portions of ICU4X may have been adapted from ICU4C and/or ICU4J.
-ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/README.md b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/README.md
deleted file mode 100644
index d2738ec..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# icu_time [![crates.io](https://img.shields.io/crates/v/icu_time)](https://crates.io/crates/icu_time)
-
-<!-- cargo-rdme start -->
-
-TODO
-
-<!-- cargo-rdme end -->
-
-## More Information
-
-For more information on development, authorship, contributing etc. please visit [`ICU4X home page`](https://github.com/unicode-org/icu4x).
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/ixdtf.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/ixdtf.rs
deleted file mode 100644
index 97209ae..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/ixdtf.rs
+++ /dev/null
@@ -1,817 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use crate::{
-    zone::{iana::IanaParserBorrowed, models, InvalidOffsetError, UtcOffset, UtcOffsetCalculator},
-    DateTime, Time, TimeZone, TimeZoneInfo, ZonedDateTime,
-};
-use core::str::FromStr;
-use icu_calendar::{AnyCalendarKind, AsCalendar, Date, DateError, Iso, RangeError};
-use ixdtf::{
-    parsers::{
-        records::{
-            DateRecord, IxdtfParseRecord, TimeRecord, TimeZoneAnnotation, TimeZoneRecord,
-            UtcOffsetRecord, UtcOffsetRecordOrZ,
-        },
-        IxdtfParser,
-    },
-    ParseError as IxdtfParseError,
-};
-
-/// The error type for parsing IXDTF syntax strings in `icu_time`.
-#[derive(Debug, PartialEq, displaydoc::Display)]
-#[non_exhaustive]
-pub enum ParseError {
-    /// Syntax error for IXDTF string.
-    #[displaydoc("Syntax error in the IXDTF string: {0}")]
-    Syntax(IxdtfParseError),
-    /// Parsed record is out of valid date range.
-    #[displaydoc("Value out of range: {0}")]
-    Range(RangeError),
-    /// Parsed date and time records were not a valid ISO date.
-    #[displaydoc("Parsed date and time records were not a valid ISO date: {0}")]
-    Date(DateError),
-    /// There were missing fields required to parse component.
-    MissingFields,
-    /// There were two offsets provided that were not consistent with each other.
-    InconsistentTimeUtcOffsets,
-    /// There was an invalid Offset.
-    InvalidOffsetError,
-    /// Parsed fractional digits had excessive precision beyond nanosecond.
-    ExcessivePrecision,
-    /// The set of time zone fields was not expected for the given type.
-    /// For example, if a named time zone was present with offset-only parsing,
-    /// or an offset was present with named-time-zone-only parsing.
-    #[displaydoc("The set of time zone fields was not expected for the given type")]
-    MismatchedTimeZoneFields,
-    /// An unknown calendar was provided.
-    UnknownCalendar,
-    /// Expected a different calendar.
-    #[displaydoc("Expected calendar {0} but found calendar {1}")]
-    MismatchedCalendar(AnyCalendarKind, AnyCalendarKind),
-    /// A timezone calculation is required to interpret this string, which is not supported.
-    ///
-    /// # Example
-    /// ```
-    /// use icu::calendar::Iso;
-    /// use icu::time::{ZonedDateTime, ParseError, zone::IanaParser};
-    ///
-    /// // This timestamp is in UTC, and requires a time zone calculation in order to display a Zurich time.
-    /// assert_eq!(
-    ///     ZonedDateTime::try_loose_from_str("2024-08-12T12:32:00Z[Europe/Zurich]", Iso, IanaParser::new()).unwrap_err(),
-    ///     ParseError::RequiresCalculation,
-    /// );
-    ///
-    /// // These timestamps are in local time
-    /// ZonedDateTime::try_loose_from_str("2024-08-12T14:32:00+02:00[Europe/Zurich]", Iso, IanaParser::new()).unwrap();
-    /// ZonedDateTime::try_loose_from_str("2024-08-12T14:32:00[Europe/Zurich]", Iso, IanaParser::new()).unwrap();
-    /// ```
-    #[displaydoc(
-        "A timezone calculation is required to interpret this string, which is not supported"
-    )]
-    RequiresCalculation,
-}
-
-impl core::error::Error for ParseError {}
-
-impl From<IxdtfParseError> for ParseError {
-    fn from(value: IxdtfParseError) -> Self {
-        Self::Syntax(value)
-    }
-}
-
-impl From<RangeError> for ParseError {
-    fn from(value: RangeError) -> Self {
-        Self::Range(value)
-    }
-}
-
-impl From<DateError> for ParseError {
-    fn from(value: DateError) -> Self {
-        Self::Date(value)
-    }
-}
-
-impl From<InvalidOffsetError> for ParseError {
-    fn from(_: InvalidOffsetError) -> Self {
-        Self::InvalidOffsetError
-    }
-}
-
-impl From<icu_calendar::ParseError> for ParseError {
-    fn from(value: icu_calendar::ParseError) -> Self {
-        match value {
-            icu_calendar::ParseError::MissingFields => Self::MissingFields,
-            icu_calendar::ParseError::Range(r) => Self::Range(r),
-            icu_calendar::ParseError::Syntax(s) => Self::Syntax(s),
-            icu_calendar::ParseError::UnknownCalendar => Self::UnknownCalendar,
-            _ => unreachable!(),
-        }
-    }
-}
-
-impl UtcOffset {
-    fn try_from_utc_offset_record(record: UtcOffsetRecord) -> Result<Self, ParseError> {
-        let hour_seconds = i32::from(record.hour) * 3600;
-        let minute_seconds = i32::from(record.minute) * 60;
-        Self::try_from_seconds(
-            i32::from(record.sign as i8)
-                * (hour_seconds + minute_seconds + i32::from(record.second)),
-        )
-        .map_err(Into::into)
-    }
-}
-
-struct Intermediate<'a> {
-    offset: Option<UtcOffsetRecord>,
-    is_z: bool,
-    iana_identifier: Option<&'a [u8]>,
-    date: DateRecord,
-    time: TimeRecord,
-}
-
-impl<'a> Intermediate<'a> {
-    fn try_from_ixdtf_record(ixdtf_record: &'a IxdtfParseRecord) -> Result<Self, ParseError> {
-        let (offset, is_z, iana_identifier) = match ixdtf_record {
-            // empty
-            IxdtfParseRecord {
-                offset: None,
-                tz: None,
-                ..
-            } => (None, false, None),
-            // -0800
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Offset(offset)),
-                tz: None,
-                ..
-            } => (Some(*offset), false, None),
-            // Z
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Z),
-                tz: None,
-                ..
-            } => (None, true, None),
-            // [-0800]
-            IxdtfParseRecord {
-                offset: None,
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Offset(offset),
-                        ..
-                    }),
-                ..
-            } => (Some(*offset), false, None),
-            // -0800[-0800]
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Offset(offset)),
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Offset(offset1),
-                        ..
-                    }),
-                ..
-            } => {
-                if offset != offset1 {
-                    return Err(ParseError::InconsistentTimeUtcOffsets);
-                }
-                (Some(*offset), false, None)
-            }
-            // -0800[America/Los_Angeles]
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Offset(offset)),
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Name(iana_identifier),
-                        ..
-                    }),
-                ..
-            } => (Some(*offset), false, Some(*iana_identifier)),
-            // Z[-0800]
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Z),
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Offset(offset),
-                        ..
-                    }),
-                ..
-            } => (Some(*offset), true, None),
-            // Z[America/Los_Angeles]
-            IxdtfParseRecord {
-                offset: Some(UtcOffsetRecordOrZ::Z),
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Name(iana_identifier),
-                        ..
-                    }),
-                ..
-            } => (None, true, Some(*iana_identifier)),
-            // [America/Los_Angeles]
-            IxdtfParseRecord {
-                offset: None,
-                tz:
-                    Some(TimeZoneAnnotation {
-                        tz: TimeZoneRecord::Name(iana_identifier),
-                        ..
-                    }),
-                ..
-            } => (None, false, Some(*iana_identifier)),
-            // non_exhaustive match: maybe something like [u-tz=uslax] in the future
-            IxdtfParseRecord {
-                tz: Some(TimeZoneAnnotation { tz, .. }),
-                ..
-            } => {
-                debug_assert!(false, "unexpected TimeZoneRecord: {tz:?}");
-                (None, false, None)
-            }
-        };
-        let IxdtfParseRecord {
-            date: Some(date),
-            time: Some(time),
-            ..
-        } = *ixdtf_record
-        else {
-            // Date or time was missing
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        Ok(Self {
-            offset,
-            is_z,
-            iana_identifier,
-            date,
-            time,
-        })
-    }
-
-    fn offset_only(self) -> Result<UtcOffset, ParseError> {
-        let None = self.iana_identifier else {
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        if self.is_z {
-            if let Some(offset) = self.offset {
-                if offset != UtcOffsetRecord::zero() {
-                    return Err(ParseError::RequiresCalculation);
-                }
-            }
-            return Ok(UtcOffset::zero());
-        }
-        let Some(offset) = self.offset else {
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        UtcOffset::try_from_utc_offset_record(offset)
-    }
-
-    fn location_only(
-        self,
-        iana_parser: IanaParserBorrowed<'_>,
-    ) -> Result<TimeZoneInfo<models::AtTime>, ParseError> {
-        let None = self.offset else {
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        let Some(iana_identifier) = self.iana_identifier else {
-            if self.is_z {
-                return Err(ParseError::RequiresCalculation);
-            }
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        let time_zone_id = iana_parser.parse_from_utf8(iana_identifier);
-        let date = Date::<Iso>::try_new_iso(self.date.year, self.date.month, self.date.day)?;
-        let time = Time::try_from_time_record(&self.time)?;
-        let offset = match time_zone_id.as_str() {
-            "utc" | "gmt" => Some(UtcOffset::zero()),
-            _ => None,
-        };
-        Ok(time_zone_id.with_offset(offset).at_time((date, time)))
-    }
-
-    fn loose(
-        self,
-        iana_parser: IanaParserBorrowed<'_>,
-    ) -> Result<TimeZoneInfo<models::AtTime>, ParseError> {
-        let time_zone_id = match self.iana_identifier {
-            Some(iana_identifier) => {
-                if self.is_z {
-                    return Err(ParseError::RequiresCalculation);
-                }
-                iana_parser.parse_from_utf8(iana_identifier)
-            }
-            None if self.is_z => TimeZone(tinystr::tinystr!(8, "utc")),
-            None => TimeZone::unknown(),
-        };
-        let offset = match self.offset {
-            Some(offset) => {
-                if self.is_z && offset != UtcOffsetRecord::zero() {
-                    return Err(ParseError::RequiresCalculation);
-                }
-                Some(UtcOffset::try_from_utc_offset_record(offset)?)
-            }
-            None => match time_zone_id.as_str() {
-                "utc" | "gmt" => Some(UtcOffset::zero()),
-                _ if self.is_z => Some(UtcOffset::zero()),
-                _ => None,
-            },
-        };
-        let date = Date::<Iso>::try_new_iso(self.date.year, self.date.month, self.date.day)?;
-        let time = Time::try_from_time_record(&self.time)?;
-        Ok(time_zone_id.with_offset(offset).at_time((date, time)))
-    }
-
-    fn full(
-        self,
-        iana_parser: IanaParserBorrowed<'_>,
-        offset_calculator: &UtcOffsetCalculator,
-    ) -> Result<TimeZoneInfo<models::Full>, ParseError> {
-        let Some(offset) = self.offset else {
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        let Some(iana_identifier) = self.iana_identifier else {
-            return Err(ParseError::MismatchedTimeZoneFields);
-        };
-        let time_zone_id = iana_parser.parse_from_utf8(iana_identifier);
-        let date = Date::try_new_iso(self.date.year, self.date.month, self.date.day)?;
-        let time = Time::try_from_time_record(&self.time)?;
-        let offset = UtcOffset::try_from_utc_offset_record(offset)?;
-        Ok(time_zone_id
-            .with_offset(Some(offset))
-            .at_time((date, time))
-            .infer_zone_variant(offset_calculator))
-    }
-}
-
-impl<A: AsCalendar> ZonedDateTime<A, UtcOffset> {
-    /// Create a [`ZonedDateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// Returns an error if the string has a calendar annotation that does not
-    /// match the calendar argument, unless the argument is [`Iso`].
-    ///
-    /// This function is "strict": the string should have only an offset and no named time zone.
-    pub fn try_offset_only_from_str(ixdtf_str: &str, calendar: A) -> Result<Self, ParseError> {
-        Self::try_offset_only_from_utf8(ixdtf_str.as_bytes(), calendar)
-    }
-
-    /// Create a [`ZonedDateTime`] in any calendar from IXDTF syntax UTF-8 bytes.
-    ///
-    /// See [`Self:try_offset_only_from_str`](Self::try_offset_only_from_str).
-    pub fn try_offset_only_from_utf8(ixdtf_str: &[u8], calendar: A) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse()?;
-        let date = Date::try_from_ixdtf_record(&ixdtf_record, calendar)?;
-        let time = Time::try_from_ixdtf_record(&ixdtf_record)?;
-        let zone = Intermediate::try_from_ixdtf_record(&ixdtf_record)?.offset_only()?;
-        Ok(ZonedDateTime { date, time, zone })
-    }
-}
-
-impl<A: AsCalendar> ZonedDateTime<A, TimeZoneInfo<models::AtTime>> {
-    /// Create a [`ZonedDateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// Returns an error if the string has a calendar annotation that does not
-    /// match the calendar argument, unless the argument is [`Iso`].
-    ///
-    /// This function is "strict": the string should have only a named time zone and no offset.
-    pub fn try_location_only_from_str(
-        ixdtf_str: &str,
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-    ) -> Result<Self, ParseError> {
-        Self::try_location_only_from_utf8(ixdtf_str.as_bytes(), calendar, iana_parser)
-    }
-
-    /// Create a [`ZonedDateTime`] in any calendar from IXDTF syntax UTF-8 bytes.
-    ///
-    /// See [`Self::try_location_only_from_str`].
-    pub fn try_location_only_from_utf8(
-        ixdtf_str: &[u8],
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-    ) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse()?;
-        let date = Date::try_from_ixdtf_record(&ixdtf_record, calendar)?;
-        let time = Time::try_from_ixdtf_record(&ixdtf_record)?;
-        let zone =
-            Intermediate::try_from_ixdtf_record(&ixdtf_record)?.location_only(iana_parser)?;
-        Ok(ZonedDateTime { date, time, zone })
-    }
-
-    /// Create a [`ZonedDateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// Returns an error if the string has a calendar annotation that does not
-    /// match the calendar argument, unless the argument is [`Iso`].
-    ///
-    /// This function is "loose": the string can have an offset, and named time zone, both, or
-    /// neither. If the named time zone is missing, it is returned as Etc/Unknown.
-    ///
-    /// The zone variant is _not_ calculated with this function. If you need it, use
-    /// [`Self::try_from_str`].
-    pub fn try_loose_from_str(
-        ixdtf_str: &str,
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-    ) -> Result<Self, ParseError> {
-        Self::try_loose_from_utf8(ixdtf_str.as_bytes(), calendar, iana_parser)
-    }
-
-    /// Create a [`ZonedDateTime`] in any calendar from IXDTF syntax UTF-8 bytes.
-    ///
-    /// See [`Self::try_loose_from_str`].
-    pub fn try_loose_from_utf8(
-        ixdtf_str: &[u8],
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-    ) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse()?;
-        let date = Date::try_from_ixdtf_record(&ixdtf_record, calendar)?;
-        let time = Time::try_from_ixdtf_record(&ixdtf_record)?;
-        let zone = Intermediate::try_from_ixdtf_record(&ixdtf_record)?.loose(iana_parser)?;
-        Ok(ZonedDateTime { date, time, zone })
-    }
-}
-
-impl<A: AsCalendar> ZonedDateTime<A, TimeZoneInfo<models::Full>> {
-    /// Create a [`ZonedDateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// Returns an error if the string has a calendar annotation that does not
-    /// match the calendar argument, unless the argument is [`Iso`].
-    ///
-    /// The string should have both an offset and a named time zone.
-    ///
-    /// For more information on IXDTF, see the [`ixdtf`] crate.
-    ///
-    /// # Examples
-    ///
-    /// Basic usage:
-    ///
-    /// ```
-    /// use icu_calendar::cal::Hebrew;
-    /// use icu_time::{
-    ///     zone::{IanaParser, TimeZoneVariant, UtcOffset, UtcOffsetCalculator},
-    ///     TimeZone, TimeZoneInfo, ZonedDateTime,
-    /// };
-    /// use tinystr::tinystr;
-    ///
-    /// let zoneddatetime = ZonedDateTime::try_from_str(
-    ///     "2024-08-08T12:08:19-05:00[America/Chicago][u-ca=hebrew]",
-    ///     Hebrew,
-    ///     IanaParser::new(),
-    ///     &UtcOffsetCalculator::new(),
-    /// )
-    /// .unwrap();
-    ///
-    /// assert_eq!(zoneddatetime.date.year().extended_year, 5784);
-    /// assert_eq!(
-    ///     zoneddatetime.date.month().standard_code,
-    ///     icu::calendar::types::MonthCode(tinystr::tinystr!(4, "M11"))
-    /// );
-    /// assert_eq!(zoneddatetime.date.day_of_month().0, 4);
-    ///
-    /// assert_eq!(zoneddatetime.time.hour.number(), 12);
-    /// assert_eq!(zoneddatetime.time.minute.number(), 8);
-    /// assert_eq!(zoneddatetime.time.second.number(), 19);
-    /// assert_eq!(zoneddatetime.time.subsecond.number(), 0);
-    /// assert_eq!(
-    ///     zoneddatetime.zone.time_zone_id(),
-    ///     TimeZone(tinystr!(8, "uschi"))
-    /// );
-    /// assert_eq!(
-    ///     zoneddatetime.zone.offset(),
-    ///     Some(UtcOffset::try_from_seconds(-18000).unwrap())
-    /// );
-    /// assert_eq!(zoneddatetime.zone.zone_variant(), TimeZoneVariant::Daylight);
-    /// let (_, _) = zoneddatetime.zone.local_time();
-    /// ```
-    ///
-    /// An IXDTF string can provide a time zone in two parts: the DateTime UTC Offset or the Time Zone
-    /// Annotation. A DateTime UTC Offset is the time offset as laid out by RFC3339; meanwhile, the Time
-    /// Zone Annotation is the annotation laid out by RFC9557 and is defined as a UTC offset or IANA Time
-    /// Zone identifier.
-    ///
-    /// ## DateTime UTC Offsets
-    ///
-    /// Below is an example of a time zone from a DateTime UTC Offset. The syntax here is familiar to a RFC3339
-    /// DateTime string.
-    ///
-    /// ```
-    /// use icu_calendar::Iso;
-    /// use icu_time::{zone::UtcOffset, TimeZoneInfo, ZonedDateTime};
-    ///
-    /// let tz_from_offset = ZonedDateTime::try_offset_only_from_str(
-    ///     "2024-08-08T12:08:19-05:00",
-    ///     Iso,
-    /// )
-    /// .unwrap();
-    ///
-    /// assert_eq!(
-    ///     tz_from_offset.zone,
-    ///     UtcOffset::try_from_seconds(-18000).unwrap()
-    /// );
-    /// ```
-    ///
-    /// ## Time Zone Annotations
-    ///
-    /// Below is an example of a time zone being provided by a time zone annotation.
-    ///
-    /// ```
-    /// use icu_calendar::Iso;
-    /// use icu_time::{
-    ///     zone::{IanaParser, TimeZoneVariant, UtcOffset},
-    ///     TimeZone, TimeZoneInfo, ZonedDateTime,
-    /// };
-    /// use tinystr::tinystr;
-    ///
-    /// let tz_from_offset_annotation = ZonedDateTime::try_offset_only_from_str(
-    ///     "2024-08-08T12:08:19[-05:00]",
-    ///     Iso,
-    /// )
-    /// .unwrap();
-    /// let tz_from_iana_annotation = ZonedDateTime::try_location_only_from_str(
-    ///     "2024-08-08T12:08:19[America/Chicago]",
-    ///     Iso,
-    ///     IanaParser::new(),
-    /// )
-    /// .unwrap();
-    ///
-    /// assert_eq!(
-    ///     tz_from_offset_annotation.zone,
-    ///     UtcOffset::try_from_seconds(-18000).unwrap()
-    /// );
-    ///
-    /// assert_eq!(
-    ///     tz_from_iana_annotation.zone.time_zone_id(),
-    ///     TimeZone(tinystr!(8, "uschi"))
-    /// );
-    /// assert_eq!(tz_from_iana_annotation.zone.offset(), None);
-    /// ```
-    ///
-    /// ## DateTime UTC Offset and Time Zone Annotations.
-    ///
-    /// An IXDTF string may contain both a DateTime UTC Offset and Time Zone Annotation. This is fine as long as
-    /// the time zone parts can be deemed as inconsistent or unknown consistency.
-    ///
-    /// ### DateTime UTC Offset with IANA identifier annotation
-    ///
-    /// In cases where the DateTime UTC Offset is provided and the IANA identifier, some validity checks are performed.
-    ///
-    /// ```
-    /// use icu_calendar::Iso;
-    /// use icu_time::{TimeZoneInfo, ZonedDateTime, TimeZone, ParseError, zone::{UtcOffset, TimeZoneVariant, IanaParser, UtcOffsetCalculator}};
-    /// use tinystr::tinystr;
-    ///
-    /// let consistent_tz_from_both = ZonedDateTime::try_from_str("2024-08-08T12:08:19-05:00[America/Chicago]", Iso, IanaParser::new(), &UtcOffsetCalculator::new()).unwrap();
-    ///
-    ///
-    /// assert_eq!(consistent_tz_from_both.zone.time_zone_id(), TimeZone(tinystr!(8, "uschi")));
-    /// assert_eq!(consistent_tz_from_both.zone.offset(), Some(UtcOffset::try_from_seconds(-18000).unwrap()));
-    /// assert_eq!(consistent_tz_from_both.zone.zone_variant(), TimeZoneVariant::Daylight);
-    /// let (_, _) = consistent_tz_from_both.zone.local_time();
-    ///
-    /// // There is no name for America/Los_Angeles never at -05:00 (at least in 2024), so either the
-    /// // time zone or the offset are wrong.
-    /// // The only valid way to display this zoned datetime is "GMT-5", so we drop the time zone.
-    /// assert_eq!(
-    ///     ZonedDateTime::try_from_str("2024-08-08T12:08:19-05:00[America/Los_Angeles]", Iso, IanaParser::new(), &UtcOffsetCalculator::new())
-    ///     .unwrap().zone.time_zone_id(),
-    ///     TimeZone::unknown()
-    /// );
-    ///
-    /// // We don't know that America/Los_Angeles didn't use standard time (-08:00) in August, but we have a
-    /// // name for Los Angeles at -8 (Pacific Standard Time), so this parses successfully.
-    /// assert!(
-    ///     ZonedDateTime::try_from_str("2024-08-08T12:08:19-08:00[America/Los_Angeles]", Iso, IanaParser::new(), &UtcOffsetCalculator::new()).is_ok()
-    /// );
-    /// ```
-    ///
-    /// ### DateTime UTC offset with UTC Offset annotation.
-    ///
-    /// These annotations must always be consistent as they should be either the same value or are inconsistent.
-    ///
-    /// ```
-    /// use icu_calendar::Iso;
-    /// use icu_time::{
-    ///     zone::UtcOffset, ParseError, TimeZone, TimeZoneInfo, ZonedDateTime,
-    /// };
-    /// use tinystr::tinystr;
-    ///
-    /// let consistent_tz_from_both = ZonedDateTime::try_offset_only_from_str(
-    ///     "2024-08-08T12:08:19-05:00[-05:00]",
-    ///     Iso,
-    /// )
-    /// .unwrap();
-    ///
-    /// assert_eq!(
-    ///     consistent_tz_from_both.zone,
-    ///     UtcOffset::try_from_seconds(-18000).unwrap()
-    /// );
-    ///
-    /// let inconsistent_tz_from_both = ZonedDateTime::try_offset_only_from_str(
-    ///     "2024-08-08T12:08:19-05:00[+05:00]",
-    ///     Iso,
-    /// );
-    ///
-    /// assert!(matches!(
-    ///     inconsistent_tz_from_both,
-    ///     Err(ParseError::InconsistentTimeUtcOffsets)
-    /// ));
-    /// ```
-    pub fn try_from_str(
-        ixdtf_str: &str,
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-        offset_calculator: &UtcOffsetCalculator,
-    ) -> Result<Self, ParseError> {
-        Self::try_from_utf8(
-            ixdtf_str.as_bytes(),
-            calendar,
-            iana_parser,
-            offset_calculator,
-        )
-    }
-
-    /// Create a [`ZonedDateTime`] in any calendar from IXDTF syntax UTF-8 bytes.
-    ///
-    /// See [`Self::try_from_str`].
-    pub fn try_from_utf8(
-        ixdtf_str: &[u8],
-        calendar: A,
-        iana_parser: IanaParserBorrowed,
-        offset_calculator: &UtcOffsetCalculator,
-    ) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse()?;
-        let date = Date::try_from_ixdtf_record(&ixdtf_record, calendar)?;
-        let time = Time::try_from_ixdtf_record(&ixdtf_record)?;
-        let zone = Intermediate::try_from_ixdtf_record(&ixdtf_record)?
-            .full(iana_parser, offset_calculator)?;
-
-        Ok(ZonedDateTime { date, time, zone })
-    }
-}
-
-impl FromStr for DateTime<Iso> {
-    type Err = ParseError;
-    fn from_str(ixdtf_str: &str) -> Result<Self, Self::Err> {
-        Self::try_from_str(ixdtf_str, Iso)
-    }
-}
-
-impl<A: AsCalendar> DateTime<A> {
-    /// Creates a [`DateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// Returns an error if the string has a calendar annotation that does not
-    /// match the calendar argument, unless the argument is [`Iso`].
-    ///
-    /// ✨ *Enabled with the `ixdtf` Cargo feature.*
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::calendar::cal::Hebrew;
-    /// use icu::time::DateTime;
-    ///
-    /// let datetime =
-    ///     DateTime::try_from_str("2024-07-17T16:01:17.045[u-ca=hebrew]", Hebrew)
-    ///         .unwrap();
-    ///
-    /// assert_eq!(datetime.date.year().era_year_or_extended(), 5784);
-    /// assert_eq!(
-    ///     datetime.date.month().standard_code,
-    ///     icu::calendar::types::MonthCode(tinystr::tinystr!(4, "M10"))
-    /// );
-    /// assert_eq!(datetime.date.day_of_month().0, 11);
-    ///
-    /// assert_eq!(datetime.time.hour.number(), 16);
-    /// assert_eq!(datetime.time.minute.number(), 1);
-    /// assert_eq!(datetime.time.second.number(), 17);
-    /// assert_eq!(datetime.time.subsecond.number(), 45000000);
-    /// ```
-    pub fn try_from_str(ixdtf_str: &str, calendar: A) -> Result<Self, ParseError> {
-        Self::try_from_utf8(ixdtf_str.as_bytes(), calendar)
-    }
-
-    /// Creates a [`DateTime`] in any calendar from an IXDTF syntax string.
-    ///
-    /// See [`Self::try_from_str()`].
-    ///
-    /// ✨ *Enabled with the `ixdtf` Cargo feature.*
-    pub fn try_from_utf8(ixdtf_str: &[u8], calendar: A) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse()?;
-        let date = Date::try_from_ixdtf_record(&ixdtf_record, calendar)?;
-        let time = Time::try_from_ixdtf_record(&ixdtf_record)?;
-        Ok(Self { date, time })
-    }
-}
-
-impl Time {
-    /// Creates a [`Time`] from an IXDTF syntax string of a time.
-    ///
-    /// Does not support parsing an IXDTF string with a date and time; for that, use [`DateTime`].
-    ///
-    /// ✨ *Enabled with the `ixdtf` Cargo feature.*
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::Time;
-    ///
-    /// let time = Time::try_from_str("16:01:17.045").unwrap();
-    ///
-    /// assert_eq!(time.hour.number(), 16);
-    /// assert_eq!(time.minute.number(), 1);
-    /// assert_eq!(time.second.number(), 17);
-    /// assert_eq!(time.subsecond.number(), 45000000);
-    /// ```
-    pub fn try_from_str(ixdtf_str: &str) -> Result<Self, ParseError> {
-        Self::try_from_utf8(ixdtf_str.as_bytes())
-    }
-
-    /// Creates a [`Time`] in the ISO-8601 calendar from an IXDTF syntax string.
-    ///
-    /// ✨ *Enabled with the `ixdtf` Cargo feature.*
-    ///
-    /// See [`Self::try_from_str()`].
-    pub fn try_from_utf8(ixdtf_str: &[u8]) -> Result<Self, ParseError> {
-        let ixdtf_record = IxdtfParser::from_utf8(ixdtf_str).parse_time()?;
-        Self::try_from_ixdtf_record(&ixdtf_record)
-    }
-
-    fn try_from_ixdtf_record(ixdtf_record: &IxdtfParseRecord) -> Result<Self, ParseError> {
-        let time_record = ixdtf_record.time.ok_or(ParseError::MissingFields)?;
-        Self::try_from_time_record(&time_record)
-    }
-
-    fn try_from_time_record(time_record: &TimeRecord) -> Result<Self, ParseError> {
-        let nanosecond = time_record
-            .fraction
-            .map(|fraction| {
-                fraction
-                    .to_nanoseconds()
-                    .ok_or(ParseError::ExcessivePrecision)
-            })
-            .transpose()?
-            .unwrap_or_default();
-
-        Ok(Self::try_new(
-            time_record.hour,
-            time_record.minute,
-            time_record.second,
-            nanosecond,
-        )?)
-    }
-}
-
-impl FromStr for Time {
-    type Err = ParseError;
-    fn from_str(ixdtf_str: &str) -> Result<Self, Self::Err> {
-        Self::try_from_str(ixdtf_str)
-    }
-}
-
-#[cfg(test)]
-mod test {
-    use super::*;
-    use crate::TimeZone;
-
-    #[test]
-    fn max_possible_ixdtf_utc_offset() {
-        assert_eq!(
-            ZonedDateTime::try_offset_only_from_str("2024-08-08T12:08:19+23:59:60.999999999", Iso)
-                .unwrap_err(),
-            ParseError::InvalidOffsetError
-        );
-    }
-
-    #[test]
-    fn zone_calculations() {
-        ZonedDateTime::try_offset_only_from_str("2024-08-08T12:08:19Z", Iso).unwrap();
-        assert_eq!(
-            ZonedDateTime::try_offset_only_from_str("2024-08-08T12:08:19Z[+08:00]", Iso)
-                .unwrap_err(),
-            ParseError::RequiresCalculation
-        );
-        assert_eq!(
-            ZonedDateTime::try_offset_only_from_str("2024-08-08T12:08:19Z[Europe/Zurich]", Iso)
-                .unwrap_err(),
-            ParseError::MismatchedTimeZoneFields
-        );
-    }
-
-    #[test]
-    fn future_zone() {
-        let result = ZonedDateTime::try_loose_from_str(
-            "2024-08-08T12:08:19[Future/Zone]",
-            Iso,
-            IanaParserBorrowed::new(),
-        )
-        .unwrap();
-        assert_eq!(result.zone.time_zone_id(), TimeZone::unknown());
-        assert_eq!(result.zone.offset(), None);
-    }
-
-    #[test]
-    fn lax() {
-        ZonedDateTime::try_location_only_from_str(
-            "2024-10-18T15:44[America/Los_Angeles]",
-            icu_calendar::cal::Gregorian,
-            IanaParserBorrowed::new(),
-        )
-        .unwrap();
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/lib.rs
deleted file mode 100644
index b519199..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/lib.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-// https://github.com/unicode-org/icu4x/blob/main/documents/process/boilerplate.md#library-annotations
-#![cfg_attr(not(any(test, doc)), no_std)]
-#![cfg_attr(
-    not(test),
-    deny(
-        clippy::indexing_slicing,
-        clippy::unwrap_used,
-        clippy::expect_used,
-        clippy::panic,
-        clippy::exhaustive_structs,
-        clippy::exhaustive_enums,
-        clippy::trivially_copy_pass_by_ref,
-        missing_debug_implementations,
-    )
-)]
-#![warn(missing_docs)]
-
-//! TODO
-
-#[cfg(feature = "alloc")]
-extern crate alloc;
-
-pub mod provider;
-pub mod scaffold;
-
-#[cfg(feature = "ixdtf")]
-mod ixdtf;
-#[cfg(feature = "ixdtf")]
-pub use ixdtf::ParseError;
-
-pub mod zone;
-#[doc(no_inline)]
-pub use zone::{TimeZone, TimeZoneInfo};
-
-mod types;
-pub use types::{DateTime, Hour, Minute, Nanosecond, Second, Time, ZonedDateTime};
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/iana.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/iana.rs
deleted file mode 100644
index 7af36087..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/iana.rs
+++ /dev/null
@@ -1,117 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! 🚧 \[Unstable\] Property names-related data for this component
-//!
-//! <div class="stab unstable">
-//! 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-//! including in SemVer minor releases. While the serde representation of data structs is guaranteed
-//! to be stable, their Rust representation might not be. Use with caution.
-//! </div>
-//!
-//! Read more about data providers: [`icu_provider`]
-
-use crate::TimeZone;
-use icu_provider::prelude::*;
-use zerotrie::ZeroAsciiIgnoreCaseTrie;
-use zerovec::{VarZeroVec, ZeroVec};
-
-/// [`IanaToBcp47Map`]'s trie cannot handle differently-cased prefixes, like `Mexico/BajaSur`` and `MET`.
-///
-/// Therefore, any ID that is not of the shape `{region}/{city}` gets prefixed with this character
-/// inside the trie.
-///
-/// During lookup, if the input is not of the shape `{region}/{city}`, the trie cursor has to be advanced over
-/// this byte.
-pub const NON_REGION_CITY_PREFIX: u8 = b'_';
-
-icu_provider::data_marker!(
-    /// See [`IanaToBcp47Map`]
-    ///
-    /// This marker uses a checksum to ensure consistency with [`TimeZoneIanaNamesV1`].
-    TimeZoneIanaMapV1,
-    "time/zone/iana/map/v1",
-    IanaToBcp47Map<'static>,
-    is_singleton = true,
-    has_checksum = true,
-);
-
-icu_provider::data_marker!(
-    /// See [`Bcp47ToIanaMap`]
-    ///
-    /// This marker uses a checksum to ensure consistency with [`TimeZoneIanaMapV1`].
-    TimeZoneIanaNamesV1,
-    "time/zone/iana/names/v1",
-    IanaNames<'static>,
-    is_singleton = true,
-    has_checksum = true,
-);
-
-/// A mapping from normal-case IANA time zone identifiers to BCP-47 time zone identifiers.
-///
-/// Multiple IANA time zone IDs can map to the same BCP-47 time zone ID.
-///
-/// <div class="stab unstable">
-/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
-/// to be stable, their Rust representation might not be. Use with caution.
-/// </div>
-#[derive(Debug, Clone, PartialEq, zerofrom::ZeroFrom, yoke::Yokeable)]
-#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
-#[cfg_attr(feature = "datagen", databake(path = icu_time::provider::iana))]
-#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
-pub struct IanaToBcp47Map<'data> {
-    /// A map from normal-case IANA time zone identifiers to indexes of BCP-47 time zone
-    /// identifiers along with a canonical flag. The IANA identifiers are normal-case.
-    ///
-    /// The `usize` values stored in the trie have the following form:
-    ///
-    /// - Lowest bit: 1 if canonical, 0 if not canonical
-    /// - All remaining bits: index into `bcp47_ids`
-    ///
-    /// For example, in CLDR 44, `"Africa/Abidjan"` has value 221, which means it is canonical
-    /// (low bit is 1 == odd number) and the index into `bcp47_ids` is 110 (221 >> 1).
-    #[cfg_attr(feature = "serde", serde(borrow))]
-    pub map: ZeroAsciiIgnoreCaseTrie<ZeroVec<'data, u8>>,
-    /// A list of BCP-47 time zone identifiers, sorted by canonical IANA ID.
-    #[cfg_attr(feature = "serde", serde(borrow))]
-    // Note: this is 9739B as `ZeroVec<TimeZone>` (`ZeroVec<TinyStr8>`)
-    // and 9335B as `VarZeroVec<str>`
-    pub bcp47_ids: ZeroVec<'data, TimeZone>,
-}
-
-icu_provider::data_struct!(
-    IanaToBcp47Map<'_>,
-    #[cfg(feature = "datagen")]
-);
-
-/// A mapping from IANA time zone identifiers to BCP-47 time zone identifiers.
-///
-/// The BCP-47 time zone ID maps to the default IANA time zone ID according to the CLDR data.
-///
-/// <div class="stab unstable">
-/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
-/// to be stable, their Rust representation might not be. Use with caution.
-/// </div>
-#[derive(Debug, Clone, PartialEq, zerofrom::ZeroFrom, yoke::Yokeable)]
-#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
-#[cfg_attr(feature = "datagen", databake(path = icu_time::provider::iana))]
-#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
-#[yoke(prove_covariance_manually)]
-pub struct IanaNames<'data> {
-    /// The list of all normalized IANA identifiers.
-    ///
-    /// The first `bcp47_ids.len()` identifiers are canonical for the
-    /// the BCP-47 IDs in [`IanaToBcp47Map::bcp47_ids`] at the same index.
-    ///
-    /// The remaining non-canonical identifiers are sorted in ascending lowercase order.
-    #[cfg_attr(feature = "serde", serde(borrow))]
-    pub normalized_iana_ids: VarZeroVec<'data, str>,
-}
-
-icu_provider::data_struct!(
-    IanaNames<'_>,
-    #[cfg(feature = "datagen")]
-);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/mod.rs
deleted file mode 100644
index 54aedd4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/mod.rs
+++ /dev/null
@@ -1,273 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-// Provider structs must be stable
-#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
-
-//! 🚧 \[Unstable\] Data provider struct definitions for this ICU4X component.
-//!
-//! <div class="stab unstable">
-//! 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-//! including in SemVer minor releases. While the serde representation of data structs is guaranteed
-//! to be stable, their Rust representation might not be. Use with caution.
-//! </div>
-//!
-//! Read more about data providers: [`icu_provider`]
-
-use crate::Time;
-use calendrical_calculations::rata_die::RataDie;
-use core::ops::Deref;
-use icu_calendar::{Date, Iso};
-use icu_provider::prelude::*;
-use tinystr::TinyAsciiStr;
-use zerovec::maps::ZeroMapKV;
-use zerovec::ule::{AsULE, ULE};
-use zerovec::{ZeroMap2d, ZeroSlice, ZeroVec};
-
-pub mod iana;
-pub mod windows;
-
-#[cfg(feature = "compiled_data")]
-#[derive(Debug)]
-/// Baked data
-///
-/// <div class="stab unstable">
-/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-/// including in SemVer minor releases. In particular, the `DataProvider` implementations are only
-/// guaranteed to match with this version's `*_unstable` providers. Use with caution.
-/// </div>
-pub struct Baked;
-
-#[cfg(feature = "compiled_data")]
-#[allow(unused_imports)]
-const _: () = {
-    use icu_time_data::*;
-    pub mod icu {
-        pub use crate as time;
-    }
-    make_provider!(Baked);
-    impl_time_zone_iana_map_v1!(Baked);
-    impl_time_zone_iana_names_v1!(Baked);
-    impl_time_zone_windows_v1!(Baked);
-    impl_time_zone_offsets_v1!(Baked);
-};
-
-#[cfg(feature = "datagen")]
-/// The latest minimum set of markers required by this component.
-pub const MARKERS: &[DataMarkerInfo] = &[
-    iana::TimeZoneIanaNamesV1::INFO,
-    iana::TimeZoneIanaMapV1::INFO,
-    windows::TimeZoneWindowsV1::INFO,
-    TimeZoneOffsetsV1::INFO,
-];
-
-/// A CLDR time zone identity.
-///
-/// This can be created directly from BCP-47 strings, or it can be parsed from IANA IDs.
-///
-/// CLDR uses difference equivalence classes than IANA. For example, `Europe/Oslo` is
-/// an alias to `Europe/Berlin` in IANA (because they agree since 1970), but these are
-/// different identities in CLDR, as we want to be able to say "Norway Time" and
-/// "Germany Time". On the other hand `Europe/Belfast` and `Europe/London` are the same
-/// CLDR identity ("UK Time").
-///
-/// ```
-/// use icu::time::zone::{IanaParser, TimeZone};
-/// use tinystr::tinystr;
-///
-/// let parser = IanaParser::new();
-/// assert_eq!(parser.parse("Europe/Oslo"), TimeZone(tinystr!(8, "noosl")));
-/// assert_eq!(
-///     parser.parse("Europe/Berlin"),
-///     TimeZone(tinystr!(8, "deber"))
-/// );
-/// assert_eq!(
-///     parser.parse("Europe/Belfast"),
-///     TimeZone(tinystr!(8, "gblon"))
-/// );
-/// assert_eq!(
-///     parser.parse("Europe/London"),
-///     TimeZone(tinystr!(8, "gblon"))
-/// );
-/// ```
-#[repr(transparent)]
-#[derive(Debug, Clone, Copy, Eq, Ord, PartialEq, PartialOrd, yoke::Yokeable, ULE, Hash)]
-#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
-#[cfg_attr(feature = "datagen", databake(path = icu_time::provider))]
-#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
-pub struct TimeZone(pub TinyAsciiStr<8>);
-
-impl TimeZone {
-    /// The synthetic `Etc/Unknown` time zone.
-    ///
-    /// This is the result of parsing unknown zones. It's important that such parsing does not
-    /// fail, as new zones are added all the time, and ICU4X might not be up to date.
-    pub const fn unknown() -> Self {
-        Self(tinystr::tinystr!(8, "unk"))
-    }
-}
-
-impl Deref for TimeZone {
-    type Target = TinyAsciiStr<8>;
-
-    fn deref(&self) -> &Self::Target {
-        &self.0
-    }
-}
-
-impl AsULE for TimeZone {
-    type ULE = Self;
-
-    #[inline]
-    fn to_unaligned(self) -> Self::ULE {
-        self
-    }
-
-    #[inline]
-    fn from_unaligned(unaligned: Self::ULE) -> Self {
-        unaligned
-    }
-}
-
-impl<'a> zerovec::maps::ZeroMapKV<'a> for TimeZone {
-    type Container = ZeroVec<'a, TimeZone>;
-    type Slice = ZeroSlice<TimeZone>;
-    type GetType = TimeZone;
-    type OwnedType = TimeZone;
-}
-
-/// A time zone variant, such as Standard Time, or Daylight/Summer Time.
-///
-/// This should not generally be constructed by client code. Instead, use
-/// * [`TimeZoneVariant::from_rearguard_isdst`]
-/// * [`TimeZoneInfo::infer_zone_variant`](crate::TimeZoneInfo::infer_zone_variant)
-#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[zerovec::make_ule(TimeZoneVariantULE)]
-#[repr(u8)]
-#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
-#[cfg_attr(feature = "datagen", databake(path = icu_time))]
-#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
-#[non_exhaustive]
-pub enum TimeZoneVariant {
-    /// The variant corresponding to `"standard"` in CLDR.
-    ///
-    /// The semantics vary from time zone to time zone. The time zone display
-    /// name of this variant may or may not be called "Standard Time".
-    ///
-    /// This is the variant with the lower UTC offset.
-    Standard = 0,
-    /// The variant corresponding to `"daylight"` in CLDR.
-    ///
-    /// The semantics vary from time zone to time zone. The time zone display
-    /// name of this variant may or may not be called "Daylight Time".
-    ///
-    /// This is the variant with the higher UTC offset.
-    Daylight = 1,
-}
-
-/// Storage type for storing UTC offsets as eights of an hour.
-pub type EighthsOfHourOffset = i8;
-/// Storage type for storing `(Date<Iso>, Time)`.
-#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Debug)]
-pub struct MinutesSinceEpoch(pub i32);
-
-impl From<(Date<Iso>, Time)> for MinutesSinceEpoch {
-    fn from((d, t): (Date<Iso>, Time)) -> MinutesSinceEpoch {
-        Self(
-            ((Iso::to_fixed(d) - Self::EPOCH) as i32 * 24 + t.hour.number() as i32) * 60
-                + t.minute.number() as i32,
-        )
-    }
-}
-
-impl MinutesSinceEpoch {
-    // This is 1970-01-01, but that is coincidental to anything UNIX and could be changed to 0 in the future.
-    const EPOCH: RataDie = RataDie::new(719163);
-}
-
-impl AsULE for MinutesSinceEpoch {
-    type ULE = <i32 as AsULE>::ULE;
-
-    fn from_unaligned(unaligned: Self::ULE) -> Self {
-        Self(i32::from_unaligned(unaligned))
-    }
-
-    fn to_unaligned(self) -> Self::ULE {
-        self.0.to_unaligned()
-    }
-}
-
-impl<'a> ZeroMapKV<'a> for MinutesSinceEpoch {
-    type Container = ZeroVec<'a, Self>;
-    type Slice = ZeroSlice<Self>;
-    type GetType = <Self as AsULE>::ULE;
-    type OwnedType = Self;
-}
-
-#[cfg(feature = "serde")]
-impl serde::Serialize for MinutesSinceEpoch {
-    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
-    where
-        S: serde::Serializer,
-    {
-        #[cfg(feature = "alloc")]
-        if serializer.is_human_readable() {
-            let minute = self.0 % 60;
-            let hour = self.0 / 60 % 24;
-            let days = self.0 / 60 / 24;
-            let date = Iso::from_fixed(Self::EPOCH + days as i64);
-            let year = date.year().extended_year;
-            let month = date.month().month_number();
-            let day = date.day_of_month().0;
-            return serializer.serialize_str(&alloc::format!(
-                "{year:04}-{month:02}-{day:02} {hour:02}:{minute:02}"
-            ));
-        }
-        serializer.serialize_i32(self.0)
-    }
-}
-
-#[cfg(feature = "serde")]
-impl<'de> serde::Deserialize<'de> for MinutesSinceEpoch {
-    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
-    where
-        D: serde::Deserializer<'de>,
-    {
-        #[cfg(feature = "alloc")]
-        if deserializer.is_human_readable() {
-            use serde::de::Error;
-            let e0 = D::Error::custom("invalid");
-            let e1 = |_| D::Error::custom("invalid");
-            let e2 = |_| D::Error::custom("invalid");
-            let e3 = |_| D::Error::custom("invalid");
-
-            let parts = alloc::borrow::Cow::<'de, str>::deserialize(deserializer)?;
-            if parts.len() != 16 {
-                return Err(e0);
-            }
-            let year = parts[0..4].parse::<i32>().map_err(e1)?;
-            let month = parts[5..7].parse::<u8>().map_err(e1)?;
-            let day = parts[8..10].parse::<u8>().map_err(e1)?;
-            let hour = parts[11..13].parse::<u8>().map_err(e1)?;
-            let minute = parts[14..16].parse::<u8>().map_err(e1)?;
-            return Ok(Self::from((
-                Date::try_new_iso(year, month, day).map_err(e2)?,
-                Time::try_new(hour, minute, 0, 0).map_err(e3)?,
-            )));
-        }
-        i32::deserialize(deserializer).map(Self)
-    }
-}
-
-icu_provider::data_marker!(
-    /// The default mapping between period and offsets. The second level key is a wall-clock time encoded as
-    /// [`MinutesSinceEpoch`]. It represents when the offsets started to be used.
-    ///
-    /// The values are the standard offset, and the daylight offset *relative to the standard offset*. As such,
-    /// if the second value is 0, there is no daylight time.
-    TimeZoneOffsetsV1,
-    "time/zone/offsets/v1",
-    ZeroMap2d<'static, TimeZone, MinutesSinceEpoch, (EighthsOfHourOffset, EighthsOfHourOffset)>,
-    is_singleton = true
-);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/windows.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/windows.rs
deleted file mode 100644
index 01108cb4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/windows.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! A provider for mapping Windows Zones to IANA identifiers.
-//!
-//! <div class="stab unstable">
-//! 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-//! including in SemVer minor releases. While the serde representation of data structs is guaranteed
-//! to be stable, their Rust representation might not be. Use with caution.
-//! </div>
-//!
-//! Read more about data providers: [`icu_provider`]
-
-use icu_provider::prelude::*;
-use zerotrie::ZeroTrieSimpleAscii;
-use zerovec::ZeroVec;
-
-use super::TimeZone;
-
-icu_provider::data_marker!(
-    /// See [`WindowsZonesToBcp47Map`].
-    TimeZoneWindowsV1,
-    "time/zone/windows/v1",
-    WindowsZonesToBcp47Map<'static>,
-    is_singleton = true,
-);
-
-/// A mapping from Windows Timezone names to the corresponding BCP-47 IDs.
-///
-/// <div class="stab unstable">
-/// 🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
-/// including in SemVer minor releases. While the serde representation of data structs is guaranteed
-/// to be stable, their Rust representation might not be. Use with caution.
-/// </div>
-#[derive(PartialEq, Debug, Clone, zerofrom::ZeroFrom, yoke::Yokeable)]
-#[cfg_attr(feature = "datagen", derive(serde::Serialize, databake::Bake))]
-#[cfg_attr(feature = "datagen", databake(path = icu_time::provider::windows))]
-#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
-pub struct WindowsZonesToBcp47Map<'data> {
-    /// A map from a `WindowsZoneIdentifier` and `WindowsRegion` to indexes of the associated BCP-47 time zone identifiers.
-    #[cfg_attr(feature = "serde", serde(borrow))]
-    pub map: ZeroTrieSimpleAscii<ZeroVec<'data, u8>>,
-
-    /// A sorted list of BCP-47 time zone identifiers.
-    #[cfg_attr(feature = "serde", serde(borrow))]
-    pub bcp47_ids: ZeroVec<'data, TimeZone>,
-}
-
-icu_provider::data_struct!(
-    WindowsZonesToBcp47Map<'_>,
-    #[cfg(feature = "datagen")]
-);
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/into_option.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/into_option.rs
deleted file mode 100644
index 2455c75f..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/into_option.rs
+++ /dev/null
@@ -1,127 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use crate::{
-    zone::{TimeZoneVariant, UtcOffset},
-    Hour, Minute, Nanosecond, Second, Time, TimeZone,
-};
-use icu_calendar::{types::*, AnyCalendarKind, Date, Iso};
-
-/// Converts Self to an `Option<T>`, either `Some(T)` if able or `None`
-pub trait IntoOption<T> {
-    /// Return `self` as an `Option<T>`
-    fn into_option(self) -> Option<T>;
-}
-
-impl<T> IntoOption<T> for Option<T> {
-    #[inline]
-    fn into_option(self) -> Option<T> {
-        self
-    }
-}
-
-impl<T> IntoOption<T> for () {
-    #[inline]
-    fn into_option(self) -> Option<T> {
-        None
-    }
-}
-
-impl IntoOption<YearInfo> for YearInfo {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<MonthInfo> for MonthInfo {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<DayOfMonth> for DayOfMonth {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<Weekday> for Weekday {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<DayOfYearInfo> for DayOfYearInfo {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<AnyCalendarKind> for AnyCalendarKind {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<Hour> for Hour {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<Minute> for Minute {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<Second> for Second {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<Nanosecond> for Nanosecond {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<TimeZone> for TimeZone {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<UtcOffset> for UtcOffset {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<TimeZoneVariant> for TimeZoneVariant {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
-
-impl IntoOption<(Date<Iso>, Time)> for (Date<Iso>, Time) {
-    #[inline]
-    fn into_option(self) -> Option<Self> {
-        Some(self)
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/mod.rs
deleted file mode 100644
index 9cb5292..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/mod.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Scaffolding traits and types not generally required in client code.
-
-mod into_option;
-
-pub use into_option::IntoOption;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/types.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/types.rs
deleted file mode 100644
index 0e4399d..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/types.rs
+++ /dev/null
@@ -1,188 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use icu_calendar::{AsCalendar, Date, RangeError};
-
-/// This macro defines a struct for 0-based date fields: hours, minutes, seconds
-/// and fractional seconds. Each unit is bounded by a range. The traits implemented
-/// here will return a Result on whether or not the unit is in range from the given
-/// input.
-macro_rules! dt_unit {
-    ($name:ident, $storage:ident, $value:expr, $(#[$docs:meta])+) => {
-        $(#[$docs])+
-        #[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)]
-        pub struct $name($storage);
-
-        impl $name {
-            /// Gets the numeric value for this component.
-            pub const fn number(self) -> $storage {
-                self.0
-            }
-
-            /// Creates a new value at 0.
-            pub const fn zero() -> $name {
-                Self(0)
-            }
-
-            /// Returns whether the value is zero.
-            #[inline]
-            pub fn is_zero(self) -> bool {
-                self.0 == 0
-            }
-        }
-
-        impl TryFrom<$storage> for $name {
-            type Error = RangeError;
-
-            fn try_from(input: $storage) -> Result<Self, Self::Error> {
-                if input > $value {
-                    Err(RangeError {
-                        field: stringify!($name),
-                        min: 0,
-                        max: $value,
-                        value: input as i32,
-                    })
-                } else {
-                    Ok(Self(input))
-                }
-            }
-        }
-
-        impl TryFrom<usize> for $name {
-            type Error = RangeError;
-
-            fn try_from(input: usize) -> Result<Self, Self::Error> {
-                if input > $value {
-                    Err(RangeError {
-                        field: "$name",
-                        min: 0,
-                        max: $value,
-                        value: input as i32,
-                    })
-                } else {
-                    Ok(Self(input as $storage))
-                }
-            }
-        }
-
-        impl From<$name> for $storage {
-            fn from(input: $name) -> Self {
-                input.0
-            }
-        }
-
-        impl From<$name> for usize {
-            fn from(input: $name) -> Self {
-                input.0 as Self
-            }
-        }
-    };
-}
-
-dt_unit!(
-    Hour,
-    u8,
-    23,
-    /// An ISO-8601 hour component, for use with ISO calendars.
-    ///
-    /// Must be within inclusive bounds `[0, 23]`.
-);
-
-dt_unit!(
-    Minute,
-    u8,
-    59,
-    /// An ISO-8601 minute component, for use with ISO calendars.
-    ///
-    /// Must be within inclusive bounds `[0, 59]`.
-);
-
-dt_unit!(
-    Second,
-    u8,
-    60,
-    /// An ISO-8601 second component, for use with ISO calendars.
-    ///
-    /// Must be within inclusive bounds `[0, 60]`. `60` accommodates for leap seconds.
-);
-
-dt_unit!(
-    Nanosecond,
-    u32,
-    999_999_999,
-    /// A fractional second component, stored as nanoseconds.
-    ///
-    /// Must be within inclusive bounds `[0, 999_999_999]`."
-);
-
-/// A representation of a time in hours, minutes, seconds, and nanoseconds
-#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[allow(clippy::exhaustive_structs)] // this type is stable
-pub struct Time {
-    /// Hour
-    pub hour: Hour,
-
-    /// Minute
-    pub minute: Minute,
-
-    /// Second
-    pub second: Second,
-
-    /// Subsecond
-    pub subsecond: Nanosecond,
-}
-
-impl Time {
-    /// Construct a new [`Time`], without validating that all components are in range
-    pub const fn new(hour: Hour, minute: Minute, second: Second, subsecond: Nanosecond) -> Self {
-        Self {
-            hour,
-            minute,
-            second,
-            subsecond,
-        }
-    }
-
-    /// Construct a new [`Time`] representing midnight (00:00.000)
-    pub const fn midnight() -> Self {
-        Self {
-            hour: Hour::zero(),
-            minute: Minute::zero(),
-            second: Second::zero(),
-            subsecond: Nanosecond::zero(),
-        }
-    }
-
-    /// Construct a new [`Time`], whilst validating that all components are in range
-    pub fn try_new(hour: u8, minute: u8, second: u8, nanosecond: u32) -> Result<Self, RangeError> {
-        Ok(Self {
-            hour: hour.try_into()?,
-            minute: minute.try_into()?,
-            second: second.try_into()?,
-            subsecond: nanosecond.try_into()?,
-        })
-    }
-}
-
-/// A date and time for a given calendar.
-#[derive(Debug, PartialEq, Eq)]
-#[allow(clippy::exhaustive_structs)] // this type is stable
-pub struct DateTime<A: AsCalendar> {
-    /// The date
-    pub date: Date<A>,
-    /// The time
-    pub time: Time,
-}
-
-/// A date and time for a given calendar, local to a specified time zone.
-#[derive(Debug, PartialEq, Eq)]
-#[allow(clippy::exhaustive_structs)] // this type is stable
-pub struct ZonedDateTime<A: AsCalendar, Z> {
-    /// The date, local to the time zone
-    pub date: Date<A>,
-    /// The time, local to the time zone
-    pub time: Time,
-    /// The time zone
-    pub zone: Z,
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/iana.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/iana.rs
deleted file mode 100644
index 08ccf74..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/iana.rs
+++ /dev/null
@@ -1,635 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! TODO
-
-use icu_provider::prelude::*;
-use zerovec::vecs::{VarZeroSliceIter, ZeroSliceIter};
-
-use crate::{
-    provider::iana::{
-        IanaNames, IanaToBcp47Map, TimeZoneIanaMapV1, TimeZoneIanaNamesV1, NON_REGION_CITY_PREFIX,
-    },
-    TimeZone,
-};
-
-/// A parser between IANA time zone identifiers and BCP-47 time zone identifiers.
-///
-/// This parser supports two-way mapping, but it is optimized for the case of IANA to BCP-47.
-/// It also supports normalizing and canonicalizing the IANA strings.
-///
-/// There are approximately 600 IANA identifiers and 450 BCP-47 identifiers.
-///
-/// BCP-47 time zone identifiers are 8 ASCII characters or less and currently
-/// average 5.1 characters long. Current IANA time zone identifiers are less than
-/// 40 ASCII characters and average 14.2 characters long.
-///
-/// These lists grow very slowly; in a typical year, 2-3 new identifiers are added.
-///
-/// # Normalization vs Canonicalization
-///
-/// Multiple IANA time zone identifiers can refer to the same BCP-47 time zone. For example, the
-/// following three IANA identifiers all map to `"usind"`:
-///
-/// - "America/Fort_Wayne"
-/// - "America/Indiana/Indianapolis"
-/// - "America/Indianapolis"
-/// - "US/East-Indiana"
-///
-/// There is only one canonical identifier, which is "America/Indiana/Indianapolis". The
-/// *canonicalization* operation returns the canonical identifier. You should canonicalize if
-/// you need to compare time zones for equality. Note that the canonical identifier can change
-/// over time. For example, the identifier "Europe/Kiev" was renamed to the newly-added
-/// identifier "Europe/Kyiv" in 2022.
-///
-/// The *normalization* operation, on the other hand, keeps the input identifier but normalizes
-/// the casing. For example, "AMERICA/FORT_WAYNE" normalizes to "America/Fort_Wayne".
-/// Normalization is a data-driven operation because there are no algorithmic casing rules that
-/// work for all IANA time zone identifiers.
-///
-/// Normalization is a cheap operation, but canonicalization might be expensive, since it might
-/// require searching over all IANA IDs to find the canonicalization. If you need
-/// canonicalization that is reliably fast, use [`IanaParserExtended`].
-///
-/// # Examples
-///
-/// ```
-/// use icu::time::zone::IanaParser;
-/// use icu::time::TimeZone;
-/// use tinystr::tinystr;
-///
-/// let parser = IanaParser::new();
-///
-/// // The IANA zone "Australia/Melbourne" is the BCP-47 zone "aumel":
-/// assert_eq!(
-///     parser.parse("Australia/Melbourne"),
-///     TimeZone(tinystr!(8, "aumel"))
-/// );
-///
-/// // Lookup is ASCII-case-insensitive:
-/// assert_eq!(
-///     parser.parse("australia/melbourne"),
-///     TimeZone(tinystr!(8, "aumel"))
-/// );
-///
-/// // The IANA zone "Australia/Victoria" is an alias:
-/// assert_eq!(
-///     parser.parse("Australia/Victoria"),
-///     TimeZone(tinystr!(8, "aumel"))
-/// );
-///
-/// // The IANA zone "Australia/Boing_Boing" does not exist
-/// // (maybe not *yet*), so it produces the special unknown
-/// // timezone in order for this operation to be infallible:
-/// assert_eq!(parser.parse("Australia/Boing_Boing"), TimeZone::unknown());
-/// ```
-#[derive(Debug, Clone)]
-pub struct IanaParser {
-    data: DataPayload<TimeZoneIanaMapV1>,
-    checksum: u64,
-}
-
-impl IanaParser {
-    /// Creates a new [`IanaParser`] using compiled data.
-    ///
-    /// See [`IanaParser`] for an example.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    #[allow(clippy::new_ret_no_self)]
-    pub fn new() -> IanaParserBorrowed<'static> {
-        IanaParserBorrowed::new()
-    }
-
-    icu_provider::gen_buffer_data_constructors!(() -> error: DataError,
-        functions: [
-            new: skip,
-                        try_new_with_buffer_provider,
-            try_new_unstable,
-            Self,
-        ]
-    );
-
-    #[doc = icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new)]
-    pub fn try_new_unstable<P>(provider: &P) -> Result<Self, DataError>
-    where
-        P: DataProvider<TimeZoneIanaMapV1> + ?Sized,
-    {
-        let response = provider.load(Default::default())?;
-        Ok(Self {
-            data: response.payload,
-            checksum: response.metadata.checksum.ok_or_else(|| {
-                DataError::custom("Missing checksum")
-                    .with_req(TimeZoneIanaMapV1::INFO, Default::default())
-            })?,
-        })
-    }
-
-    /// Returns a borrowed version of the parser that can be queried.
-    ///
-    /// This avoids a small potential indirection cost when querying the parser.
-    pub fn as_borrowed(&self) -> IanaParserBorrowed {
-        IanaParserBorrowed {
-            data: self.data.get(),
-            checksum: self.checksum,
-        }
-    }
-}
-
-impl AsRef<IanaParser> for IanaParser {
-    #[inline]
-    fn as_ref(&self) -> &IanaParser {
-        self
-    }
-}
-
-/// A borrowed wrapper around the time zone ID parser, returned by
-/// [`IanaParser::as_borrowed()`]. More efficient to query.
-#[derive(Debug, Copy, Clone)]
-pub struct IanaParserBorrowed<'a> {
-    data: &'a IanaToBcp47Map<'a>,
-    checksum: u64,
-}
-
-#[cfg(feature = "compiled_data")]
-impl Default for IanaParserBorrowed<'static> {
-    fn default() -> Self {
-        Self::new()
-    }
-}
-
-impl IanaParserBorrowed<'static> {
-    /// Creates a new [`IanaParserBorrowed`] using compiled data.
-    ///
-    /// See [`IanaParserBorrowed`] for an example.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    pub fn new() -> Self {
-        Self {
-            data: crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_MAP_V1,
-            checksum: crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM,
-        }
-    }
-
-    /// Cheaply converts a [`IanaParserBorrowed<'static>`] into a [`IanaParser`].
-    ///
-    /// Note: Due to branching and indirection, using [`IanaParser`] might inhibit some
-    /// compile-time optimizations that are possible with [`IanaParserBorrowed`].
-    pub fn static_to_owned(&self) -> IanaParser {
-        IanaParser {
-            data: DataPayload::from_static_ref(self.data),
-            checksum: self.checksum,
-        }
-    }
-}
-
-impl<'a> IanaParserBorrowed<'a> {
-    /// Gets the BCP-47 time zone ID from an IANA time zone ID
-    /// with a case-insensitive lookup.
-    ///
-    /// Returns [`TimeZone::unknown()`] if the IANA ID is not found.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu_time::zone::iana::IanaParser;
-    /// use icu_time::TimeZone;
-    ///
-    /// let parser = IanaParser::new();
-    ///
-    /// let result = parser.parse("Asia/CALCUTTA");
-    ///
-    /// assert_eq!(*result, "inccu");
-    ///
-    /// // Unknown IANA time zone ID:
-    /// assert_eq!(parser.parse("America/San_Francisco"), TimeZone::unknown());
-    /// ```
-    pub fn parse(&self, iana_id: &str) -> TimeZone {
-        self.parse_from_utf8(iana_id.as_bytes())
-    }
-
-    /// Same as [`Self::parse()`] but works with potentially ill-formed UTF-8.
-    pub fn parse_from_utf8(&self, iana_id: &[u8]) -> TimeZone {
-        let Some(trie_value) = self.trie_value(iana_id) else {
-            return TimeZone::unknown();
-        };
-        let Some(tz) = self.data.bcp47_ids.get(trie_value.index()) else {
-            debug_assert!(false, "index should be in range");
-            return TimeZone::unknown();
-        };
-        tz
-    }
-
-    fn trie_value(&self, iana_id: &[u8]) -> Option<IanaTrieValue> {
-        let mut cursor = self.data.map.cursor();
-        if !iana_id.contains(&b'/') {
-            cursor.step(NON_REGION_CITY_PREFIX);
-        }
-        for &b in iana_id {
-            cursor.step(b);
-        }
-        cursor.take_value().map(IanaTrieValue)
-    }
-
-    /// Returns an iterator over all known time zones.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::zone::IanaParser;
-    /// use icu::time::zone::TimeZone;
-    /// use std::collections::BTreeSet;
-    /// use tinystr::tinystr;
-    ///
-    /// let parser = IanaParser::new();
-    ///
-    /// let ids = parser.iter().collect::<BTreeSet<_>>();
-    ///
-    /// assert!(ids.contains(&TimeZone(tinystr!(8, "uaiev"))));
-    /// ```
-    pub fn iter(&self) -> TimeZoneIter<'a> {
-        TimeZoneIter {
-            inner: self.data.bcp47_ids.iter(),
-        }
-    }
-}
-
-/// Returned by [`IanaParserBorrowed::iter()`]
-#[derive(Debug)]
-pub struct TimeZoneIter<'a> {
-    inner: ZeroSliceIter<'a, TimeZone>,
-}
-
-impl Iterator for TimeZoneIter<'_> {
-    type Item = TimeZone;
-
-    fn next(&mut self) -> Option<Self::Item> {
-        self.inner.next()
-    }
-}
-
-/// A parser that supplements [`IanaParser`] with about 8 KB of additional data to
-/// improve the performance of canonical IANA ID lookup.
-///
-/// The data in [`IanaParser`] is optimized for IANA to BCP-47 lookup; the reverse
-/// requires a linear walk over all ~600 IANA identifiers. The data added here allows for
-/// constant-time mapping from BCP-47 to IANA.
-#[derive(Debug, Clone)]
-pub struct IanaParserExtended<I> {
-    inner: I,
-    data: DataPayload<TimeZoneIanaNamesV1>,
-}
-
-impl IanaParserExtended<IanaParser> {
-    /// Creates a new [`IanaParserExtended`] using compiled data.
-    ///
-    /// See [`IanaParserExtended`] for an example.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    #[allow(clippy::new_ret_no_self)]
-    pub fn new() -> IanaParserExtendedBorrowed<'static> {
-        IanaParserExtendedBorrowed::new()
-    }
-
-    icu_provider::gen_buffer_data_constructors!(() -> error: DataError,
-        functions: [
-            new: skip,
-                        try_new_with_buffer_provider,
-            try_new_unstable,
-            Self,
-        ]
-    );
-
-    #[doc = icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new)]
-    pub fn try_new_unstable<P>(provider: &P) -> Result<Self, DataError>
-    where
-        P: DataProvider<TimeZoneIanaMapV1> + DataProvider<TimeZoneIanaNamesV1> + ?Sized,
-    {
-        let parser = IanaParser::try_new_unstable(provider)?;
-        Self::try_new_with_parser_unstable(provider, parser)
-    }
-}
-
-impl<I> IanaParserExtended<I>
-where
-    I: AsRef<IanaParser>,
-{
-    /// Creates a new [`IanaParserExtended`] using compiled data
-    /// and a pre-existing [`IanaParser`], which can be borrowed.
-    ///
-    /// See [`IanaParserExtended`] for an example.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    pub fn try_new_with_parser(parser: I) -> Result<Self, DataError> {
-        if parser.as_ref().checksum
-            != crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM
-        {
-            return Err(DataErrorKind::InconsistentData(TimeZoneIanaMapV1::INFO)
-                .with_marker(TimeZoneIanaNamesV1::INFO));
-        }
-        Ok(Self {
-            inner: parser,
-            data: DataPayload::from_static_ref(
-                crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_NAMES_V1,
-            ),
-        })
-    }
-
-    icu_provider::gen_buffer_data_constructors!((parser: I) -> error: DataError,
-        functions: [
-            try_new_with_parser: skip,
-            try_new_with_parser_with_buffer_provider,
-            try_new_with_parser_unstable,
-            Self,
-        ]
-    );
-
-    #[doc = icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new)]
-    pub fn try_new_with_parser_unstable<P>(provider: &P, parser: I) -> Result<Self, DataError>
-    where
-        P: DataProvider<TimeZoneIanaMapV1> + DataProvider<TimeZoneIanaNamesV1> + ?Sized,
-    {
-        let response = provider.load(Default::default())?;
-        if Some(parser.as_ref().checksum) != response.metadata.checksum {
-            return Err(DataErrorKind::InconsistentData(TimeZoneIanaMapV1::INFO)
-                .with_marker(TimeZoneIanaNamesV1::INFO));
-        }
-        Ok(Self {
-            inner: parser,
-            data: response.payload,
-        })
-    }
-
-    /// Returns a borrowed version of the parser that can be queried.
-    ///
-    /// This avoids a small potential indirection cost when querying the parser.
-    pub fn as_borrowed(&self) -> IanaParserExtendedBorrowed {
-        IanaParserExtendedBorrowed {
-            inner: self.inner.as_ref().as_borrowed(),
-            data: self.data.get(),
-        }
-    }
-}
-
-/// A borrowed wrapper around the time zone ID parser, returned by
-/// [`IanaParserExtended::as_borrowed()`]. More efficient to query.
-#[derive(Debug, Copy, Clone)]
-pub struct IanaParserExtendedBorrowed<'a> {
-    inner: IanaParserBorrowed<'a>,
-    data: &'a IanaNames<'a>,
-}
-
-#[cfg(feature = "compiled_data")]
-impl Default for IanaParserExtendedBorrowed<'static> {
-    fn default() -> Self {
-        Self::new()
-    }
-}
-
-impl IanaParserExtendedBorrowed<'static> {
-    /// Creates a new [`IanaParserExtendedBorrowed`] using compiled data.
-    ///
-    /// See [`IanaParserExtendedBorrowed`] for an example.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    pub fn new() -> Self {
-        const _: () = assert!(
-            crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM
-                == crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM,
-        );
-        Self {
-            inner: IanaParserBorrowed::new(),
-            data: crate::provider::Baked::SINGLETON_TIME_ZONE_IANA_NAMES_V1,
-        }
-    }
-
-    /// Cheaply converts a [`IanaParserExtendedBorrowed<'static>`] into a [`IanaParserExtended`].
-    ///
-    /// Note: Due to branching and indirection, using [`IanaParserExtended`] might inhibit some
-    /// compile-time optimizations that are possible with [`IanaParserExtendedBorrowed`].
-    pub fn static_to_owned(&self) -> IanaParserExtended<IanaParser> {
-        IanaParserExtended {
-            inner: self.inner.static_to_owned(),
-            data: DataPayload::from_static_ref(self.data),
-        }
-    }
-}
-
-impl<'a> IanaParserExtendedBorrowed<'a> {
-    /// Gets the time zone, the canonical IANA ID, and the normalized IANA ID from an IANA time zone ID.
-    ///
-    /// Returns [`(TimeZone::unknown(), "Etc/Unknown", "Etc/Unknown")`] if the IANA ID is not found.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu_time::zone::iana::IanaParserExtended;
-    /// use icu_time::TimeZone;
-    ///
-    /// let parser = IanaParserExtended::new();
-    ///
-    /// let (tz, canonical, normalized) = parser.parse("Asia/CALCUTTA");
-    ///
-    /// assert_eq!(*tz, "inccu");
-    /// assert_eq!(canonical, "Asia/Kolkata");
-    /// assert_eq!(normalized, "Asia/Calcutta");
-    ///
-    /// // Unknown IANA time zone ID:
-    /// assert_eq!(
-    ///     parser.parse("America/San_Francisco"),
-    ///     (TimeZone::unknown(), "Etc/Unknown", "Etc/Unknown".into())
-    /// );
-    /// ```
-    pub fn parse(&self, iana_id: &str) -> (TimeZone, &'a str, &'a str) {
-        self.parse_from_utf8(iana_id.as_bytes())
-    }
-
-    /// Same as [`Self::parse()`] but works with potentially ill-formed UTF-8.
-    pub fn parse_from_utf8(&self, iana_id: &[u8]) -> (TimeZone, &'a str, &'a str) {
-        const FAILURE: (TimeZone, &str, &str) = (TimeZone::unknown(), "Etc/Unknown", "Etc/Unknown");
-        let Some(trie_value) = self.inner.trie_value(iana_id) else {
-            return FAILURE;
-        };
-        let Some(bcp47_id) = self.inner.data.bcp47_ids.get(trie_value.index()) else {
-            debug_assert!(false, "index should be in range");
-            return FAILURE;
-        };
-        let Some(canonical) = self.data.normalized_iana_ids.get(trie_value.index()) else {
-            debug_assert!(false, "index should be in range");
-            return FAILURE;
-        };
-        let normalized = if trie_value.is_canonical() {
-            canonical
-        } else {
-            let Some(Ok(index)) = self.data.normalized_iana_ids.binary_search_in_range_by(
-                |a| {
-                    a.as_bytes()
-                        .iter()
-                        .map(u8::to_ascii_lowercase)
-                        .cmp(iana_id.iter().map(u8::to_ascii_lowercase))
-                },
-                self.inner.data.bcp47_ids.len()..self.data.normalized_iana_ids.len(),
-            ) else {
-                debug_assert!(
-                    false,
-                    "binary search should succeed if trie lookup succeeds"
-                );
-                return FAILURE;
-            };
-            let Some(normalized) = self
-                .data
-                .normalized_iana_ids
-                .get(self.inner.data.bcp47_ids.len() + index)
-            else {
-                debug_assert!(false, "binary search returns valid index");
-                return FAILURE;
-            };
-            normalized
-        };
-        (bcp47_id, canonical, normalized)
-    }
-
-    /// Returns an iterator over all time zones and their canonical IANA identifiers.
-    ///
-    /// The iterator is sorted by the canonical IANA identifiers.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::zone::iana::IanaParserExtended;
-    /// use icu::time::zone::TimeZone;
-    /// use std::collections::BTreeSet;
-    /// use tinystr::tinystr;
-    ///
-    /// let parser = IanaParserExtended::new();
-    ///
-    /// let ids = parser.iter().collect::<BTreeSet<_>>();
-    ///
-    /// assert!(ids.contains(&(TimeZone(tinystr!(8, "uaiev")), "Europe/Kyiv")));
-    /// assert_eq!(ids.len(), 445);
-    /// ```
-    pub fn iter(&self) -> TimeZoneAndCanonicalIter<'a> {
-        TimeZoneAndCanonicalIter(
-            self.inner
-                .data
-                .bcp47_ids
-                .iter()
-                .zip(self.data.normalized_iana_ids.iter()),
-        )
-    }
-
-    /// Returns an iterator equivalent to calling [`Self::parse`] on all IANA time zone identifiers.
-    ///
-    /// The only guarantee w.r.t iteration order is that for a given time zone, the canonical IANA
-    /// identifier will come first, and the following non-canonical IANA identifiers will be sorted.
-    /// However, the output is not grouped by time zone.
-    ///
-    /// The current implementation returns all sorted canonical IANA identifiers first, followed by all
-    /// sorted non-canonical identifiers, however this is subject to change.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::zone::iana::IanaParserExtended;
-    /// use icu::time::zone::TimeZone;
-    /// use std::collections::BTreeMap;
-    /// use tinystr::tinystr;
-    ///
-    /// let parser = IanaParserExtended::new();
-    ///
-    /// let ids = parser.iter_all().enumerate().map(|(a, b)| (b, a)).collect::<std::collections::BTreeMap<_, _>>();
-    ///
-    /// let kyiv_idx = ids[&(TimeZone(tinystr!(8, "uaiev")), "Europe/Kyiv", "Europe/Kyiv")];
-    /// let kiev_idx = ids[&(TimeZone(tinystr!(8, "uaiev")), "Europe/Kyiv", "Europe/Kiev")];
-    /// let uzgh_idx = ids[&(TimeZone(tinystr!(8, "uaiev")), "Europe/Kyiv", "Europe/Uzhgorod")];
-    /// let zapo_idx = ids[&(TimeZone(tinystr!(8, "uaiev")), "Europe/Kyiv", "Europe/Zaporozhye")];
-    ///
-    /// // The order for a particular time zone is guaranteed
-    /// assert!(kyiv_idx < kiev_idx && kiev_idx < uzgh_idx && uzgh_idx < zapo_idx);
-    /// // It is not guaranteed that the entries for a particular time zone are consecutive
-    /// assert!(kyiv_idx + 1 != kiev_idx);
-    ///
-    /// assert_eq!(ids.len(), 598);
-    /// ```
-    pub fn iter_all(&self) -> TimeZoneAndCanonicalAndNormalizedIter<'a> {
-        TimeZoneAndCanonicalAndNormalizedIter(0, *self)
-    }
-}
-
-/// The iterator returned by [`IanaParserExtendedBorrowed::iter()`]
-#[derive(Debug)]
-pub struct TimeZoneAndCanonicalIter<'a>(
-    core::iter::Zip<ZeroSliceIter<'a, TimeZone>, VarZeroSliceIter<'a, str>>,
-);
-
-impl<'a> Iterator for TimeZoneAndCanonicalIter<'a> {
-    type Item = (TimeZone, &'a str);
-
-    fn next(&mut self) -> Option<Self::Item> {
-        self.0.next()
-    }
-}
-
-/// The iterator returned by [`IanaParserExtendedBorrowed::iter_all()`]
-#[derive(Debug)]
-pub struct TimeZoneAndCanonicalAndNormalizedIter<'a>(usize, IanaParserExtendedBorrowed<'a>);
-
-impl<'a> Iterator for TimeZoneAndCanonicalAndNormalizedIter<'a> {
-    type Item = (TimeZone, &'a str, &'a str);
-
-    fn next(&mut self) -> Option<Self::Item> {
-        if let (Some(tz), Some(canonical)) = (
-            self.1.inner.data.bcp47_ids.get(self.0),
-            self.1.data.normalized_iana_ids.get(self.0),
-        ) {
-            self.0 += 1;
-            Some((tz, canonical, canonical))
-        } else if let Some(normalized) = self.1.data.normalized_iana_ids.get(self.0) {
-            let Some(trie_value) = self.1.inner.trie_value(normalized.as_bytes()) else {
-                debug_assert!(false, "normalized value should be in trie");
-                return None;
-            };
-            let (Some(tz), Some(canonical)) = (
-                self.1.inner.data.bcp47_ids.get(trie_value.index()),
-                self.1.data.normalized_iana_ids.get(trie_value.index()),
-            ) else {
-                debug_assert!(false, "index should be in range");
-                return None;
-            };
-            self.0 += 1;
-            Some((tz, canonical, normalized))
-        } else {
-            None
-        }
-    }
-}
-
-#[derive(Copy, Clone, PartialEq, Eq)]
-#[repr(transparent)]
-struct IanaTrieValue(usize);
-
-impl IanaTrieValue {
-    #[inline]
-    pub(crate) fn index(self) -> usize {
-        self.0 >> 1
-    }
-    #[inline]
-    pub(crate) fn is_canonical(self) -> bool {
-        (self.0 & 0x1) != 0
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/mod.rs
deleted file mode 100644
index 4378213..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/mod.rs
+++ /dev/null
@@ -1,328 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Types for resolving and manipulating time zones.
-//!
-//! # Fields
-//!
-//! In ICU4X, a [formattable time zone] consists of up to four different fields:
-//!
-//! 1. The time zone ID
-//! 2. The offset from UTC
-//! 3. A timestamp, as time zone names can change over time
-//! 4. The zone variant, representing concepts such as Standard, Summer, Daylight, and Ramadan time
-//!
-//! ## Time Zone
-//!
-//! The time zone ID corresponds to a time zone from the time zone database. The time zone ID
-//! usually corresponds to the largest city in the time zone.
-//!
-//! There are two mostly-interchangeable standards for time zone IDs:
-//!
-//! 1. IANA time zone IDs, like `"America/Chicago"`
-//! 2. BCP-47 time zone IDs, like `"uschi"`
-//!
-//! ICU4X uses BCP-47 time zone IDs for all of its APIs. To get a BCP-47 time zone from an
-//! IANA time zone, use [`IanaParser`].
-//!
-//! ## UTC Offset
-//!
-//! The UTC offset precisely states the time difference between the time zone in question and
-//! Coordinated Universal Time (UTC).
-//!
-//! In localized strings, it is often rendered as "UTC-6", meaning 6 hours less than UTC (some locales
-//! use the term "GMT" instead of "UTC").
-//!
-//! ## Timestamp
-//!
-//! Some time zones change names over time, such as when changing "metazone". For example, Portugal changed from
-//! "Western European Time" to "Central European Time" and back in the 1990s, without changing time zone id
-//! (`Europe/Lisbon`/`ptlis`). Therefore, a timestamp is needed to resolve such generic time zone names.
-//!
-//! It is not required to set the timestamp on [`TimeZoneInfo`]. If it is not set, some string
-//! formats may be unsupported.
-//!
-//! ## Zone Variant
-//!
-//! Many zones use different names and offsets in the summer than in the winter. In ICU4X,
-//! this is called the _zone variant_.
-//!
-//! CLDR has two zone variants, named `"standard"` and `"daylight"`. However, the mapping of these
-//! variants to specific observed offsets varies from time zone to time zone, and they may not
-//! consistently represent winter versus summer time.
-//!
-//! Note: It is not required to set the zone variant on [`TimeZoneInfo`]. If it is not set, some string
-//! formats may be unsupported.
-//!
-//! # Examples
-//!
-//! ```
-//! use icu::calendar::Date;
-//! use icu::time::zone::IanaParser;
-//! use icu::time::zone::TimeZoneVariant;
-//! use icu::time::Time;
-//! use icu::time::TimeZone;
-//! use tinystr::tinystr;
-//!
-//! // Parse the IANA ID
-//! let id = IanaParser::new().parse("America/Chicago");
-//!
-//! // Alternatively, use the BCP47 ID directly
-//! let id = TimeZone(tinystr!(8, "uschi"));
-//!
-//! // Create a TimeZoneInfo<Base> by associating the ID with an offset
-//! let time_zone = id.with_offset("-0600".parse().ok());
-//!
-//! // Extend to a TimeZoneInfo<AtTime> by adding a local time
-//! let time_zone_at_time = time_zone
-//!     .at_time((Date::try_new_iso(2023, 12, 2).unwrap(), Time::midnight()));
-//!
-//! // Extend to a TimeZoneInfo<Full> by adding a zone variant
-//! let time_zone_with_variant =
-//!     time_zone_at_time.with_zone_variant(TimeZoneVariant::Standard);
-//! ```
-
-pub mod iana;
-mod offset;
-pub mod windows;
-
-#[doc(inline)]
-pub use crate::provider::{TimeZone, TimeZoneVariant};
-pub use offset::InvalidOffsetError;
-pub use offset::UtcOffset;
-pub use offset::UtcOffsetCalculator;
-pub use offset::UtcOffsets;
-
-#[doc(no_inline)]
-pub use iana::IanaParser;
-#[doc(no_inline)]
-pub use windows::WindowsParser;
-
-use crate::{scaffold::IntoOption, Time};
-use core::fmt;
-use icu_calendar::{Date, Iso};
-
-/// Time zone data model choices.
-pub mod models {
-    use super::*;
-    mod private {
-        pub trait Sealed {}
-    }
-
-    /// Trait encoding a particular data model for time zones.
-    ///
-    /// <div class="stab unstable">
-    /// 🚫 This trait is sealed; it cannot be implemented by user code. If an API requests an item that implements this
-    /// trait, please consider using a type from the implementors listed below.
-    /// </div>
-    pub trait TimeZoneModel: private::Sealed {
-        /// The zone variant, if required for this time zone model.
-        type TimeZoneVariant: IntoOption<TimeZoneVariant> + fmt::Debug + Copy;
-        /// The local time, if required for this time zone model.
-        type LocalTime: IntoOption<(Date<Iso>, Time)> + fmt::Debug + Copy;
-    }
-
-    /// A time zone containing a time zone ID and optional offset.
-    #[derive(Debug, PartialEq, Eq)]
-    #[non_exhaustive]
-    pub enum Base {}
-
-    impl private::Sealed for Base {}
-    impl TimeZoneModel for Base {
-        type TimeZoneVariant = ();
-        type LocalTime = ();
-    }
-
-    /// A time zone containing a time zone ID, optional offset, and local time.
-    #[derive(Debug, PartialEq, Eq)]
-    #[non_exhaustive]
-    pub enum AtTime {}
-
-    impl private::Sealed for AtTime {}
-    impl TimeZoneModel for AtTime {
-        type TimeZoneVariant = ();
-        type LocalTime = (Date<Iso>, Time);
-    }
-
-    /// A time zone containing a time zone ID, optional offset, local time, and zone variant.
-    #[derive(Debug, PartialEq, Eq)]
-    #[non_exhaustive]
-    pub enum Full {}
-
-    impl private::Sealed for Full {}
-    impl TimeZoneModel for Full {
-        type TimeZoneVariant = TimeZoneVariant;
-        type LocalTime = (Date<Iso>, Time);
-    }
-}
-
-/// A utility type that can hold time zone information.
-#[derive(Debug, PartialEq, Eq)]
-#[allow(clippy::exhaustive_structs)] // these four fields fully cover the needs of UTS 35
-pub struct TimeZoneInfo<Model: models::TimeZoneModel> {
-    time_zone_id: TimeZone,
-    offset: Option<UtcOffset>,
-    local_time: Model::LocalTime,
-    zone_variant: Model::TimeZoneVariant,
-}
-
-impl<Model: models::TimeZoneModel> Clone for TimeZoneInfo<Model> {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-
-impl<Model: models::TimeZoneModel> Copy for TimeZoneInfo<Model> {}
-
-impl<Model: models::TimeZoneModel> TimeZoneInfo<Model> {
-    /// The BCP47 time-zone identifier.
-    pub fn time_zone_id(self) -> TimeZone {
-        self.time_zone_id
-    }
-
-    /// The UTC offset, if known.
-    ///
-    /// This field is not enforced to be consistent with the time zone id.
-    pub fn offset(self) -> Option<UtcOffset> {
-        self.offset
-    }
-}
-
-impl<Model> TimeZoneInfo<Model>
-where
-    Model: models::TimeZoneModel<LocalTime = (Date<Iso>, Time)>,
-{
-    /// The time at which to interpret the time zone.
-    pub fn local_time(self) -> (Date<Iso>, Time) {
-        self.local_time
-    }
-}
-
-impl<Model> TimeZoneInfo<Model>
-where
-    Model: models::TimeZoneModel<TimeZoneVariant = TimeZoneVariant>,
-{
-    /// The time variant e.g. daylight or standard, if known.
-    ///
-    /// This field is not enforced to be consistent with the time zone id and offset.
-    pub fn zone_variant(self) -> TimeZoneVariant {
-        self.zone_variant
-    }
-}
-
-impl TimeZone {
-    /// Associates this [`TimeZone`] with a UTC offset, returning a [`TimeZoneInfo`].
-    pub const fn with_offset(self, offset: Option<UtcOffset>) -> TimeZoneInfo<models::Base> {
-        TimeZoneInfo {
-            offset,
-            time_zone_id: self,
-            local_time: (),
-            zone_variant: (),
-        }
-    }
-
-    /// Converts this [`TimeZone`] into a [`TimeZoneInfo`] without an offset.
-    pub const fn without_offset(self) -> TimeZoneInfo<models::Base> {
-        TimeZoneInfo {
-            offset: None,
-            time_zone_id: self,
-            local_time: (),
-            zone_variant: (),
-        }
-    }
-}
-
-impl TimeZoneInfo<models::Base> {
-    /// Creates a time zone info with no information.
-    pub const fn unknown() -> Self {
-        TimeZone::unknown().with_offset(None)
-    }
-
-    /// Creates a new [`TimeZoneInfo`] for the UTC time zone.
-    pub const fn utc() -> Self {
-        TimeZone(tinystr::tinystr!(8, "utc")).with_offset(Some(UtcOffset::zero()))
-    }
-
-    /// Sets a local time on this time zone.
-    pub const fn at_time(self, local_time: (Date<Iso>, Time)) -> TimeZoneInfo<models::AtTime> {
-        TimeZoneInfo {
-            offset: self.offset,
-            time_zone_id: self.time_zone_id,
-            local_time,
-            zone_variant: (),
-        }
-    }
-}
-
-impl TimeZoneInfo<models::AtTime> {
-    /// Sets a zone variant on this time zone.
-    pub const fn with_zone_variant(
-        self,
-        zone_variant: TimeZoneVariant,
-    ) -> TimeZoneInfo<models::Full> {
-        TimeZoneInfo {
-            offset: self.offset,
-            time_zone_id: self.time_zone_id,
-            local_time: self.local_time,
-            zone_variant,
-        }
-    }
-
-    /// Sets the zone variant by calculating it using a [`UtcOffsetCalculator`].
-    ///
-    /// If `offset()` is `None`, or if it doesn't match either of the
-    /// timezone's standard or daylight offset around `local_time()`,
-    /// the variant will be set to [`TimeZoneVariant::Standard`] and the time zone
-    /// to [`TimeZone::unknown()`].
-    pub fn infer_zone_variant(
-        self,
-        calculator: &UtcOffsetCalculator,
-    ) -> TimeZoneInfo<models::Full> {
-        let Some(offset) = self.offset else {
-            return TimeZone::unknown()
-                .with_offset(self.offset)
-                .at_time(self.local_time)
-                .with_zone_variant(TimeZoneVariant::Standard);
-        };
-        let Some(zone_variant) = calculator
-            .compute_offsets_from_time_zone(self.time_zone_id, self.local_time)
-            .and_then(|os| {
-                if os.standard == offset {
-                    Some(TimeZoneVariant::Standard)
-                } else if os.daylight == Some(offset) {
-                    Some(TimeZoneVariant::Daylight)
-                } else {
-                    None
-                }
-            })
-        else {
-            return TimeZone::unknown()
-                .with_offset(self.offset)
-                .at_time(self.local_time)
-                .with_zone_variant(TimeZoneVariant::Standard);
-        };
-        self.with_zone_variant(zone_variant)
-    }
-}
-
-impl TimeZoneVariant {
-    /// Creates a zone variant from a TZDB `isdst` flag, if it is known that the TZDB was built with
-    /// `DATAFORM=rearguard`.
-    ///
-    /// If it is known that the database was *not* built with `rearguard`, a caller can try to adjust
-    /// for the differences. This is a moving target, for example the known differences for 2025a are:
-    ///
-    /// * `Europe/Dublin` since 1968-10-27
-    /// * `Africa/Windhoek` between 1994-03-20 and 2017-10-24
-    /// * `Africa/Casablanca` and `Africa/El_Aaiun` since 2018-10-28
-    ///
-    /// If the TZDB build mode is unknown or variable, use [`TimeZoneInfo::infer_zone_variant`].
-    pub const fn from_rearguard_isdst(isdst: bool) -> Self {
-        if isdst {
-            TimeZoneVariant::Daylight
-        } else {
-            TimeZoneVariant::Standard
-        }
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/offset.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/offset.rs
deleted file mode 100644
index d34b3f77..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/offset.rs
+++ /dev/null
@@ -1,320 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-use core::str::FromStr;
-
-use crate::provider::{MinutesSinceEpoch, TimeZoneOffsetsV1};
-use crate::{Time, TimeZone};
-use icu_calendar::Date;
-use icu_calendar::Iso;
-use icu_provider::prelude::*;
-
-use displaydoc::Display;
-
-/// The time zone offset was invalid. Must be within ±18:00:00.
-#[derive(Display, Debug, Copy, Clone, PartialEq)]
-#[allow(clippy::exhaustive_structs)]
-pub struct InvalidOffsetError;
-
-/// An offset from Coordinated Universal Time (UTC)
-#[derive(Copy, Clone, Debug, PartialEq, Eq, Default, PartialOrd, Ord)]
-pub struct UtcOffset(i32);
-
-impl UtcOffset {
-    /// Attempt to create a [`UtcOffset`] from a seconds input.
-    ///
-    /// Returns [`InvalidOffsetError`] if the seconds are out of bounds.
-    pub fn try_from_seconds(seconds: i32) -> Result<Self, InvalidOffsetError> {
-        if seconds.unsigned_abs() > 18 * 60 * 60 {
-            Err(InvalidOffsetError)
-        } else {
-            Ok(Self(seconds))
-        }
-    }
-
-    /// Creates a [`UtcOffset`] from eighths of an hour.
-    ///
-    /// This is chosen because eighths of an hour cover all current time zones
-    /// and all values of i8 are within range of this type.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::zone::UtcOffset;
-    ///
-    /// assert_eq!(
-    ///     UtcOffset::try_from_str("-0600").unwrap(),
-    ///     UtcOffset::from_eighths_of_hour(-6 * 8),
-    /// );
-    /// ```
-    pub const fn from_eighths_of_hour(eighths_of_hour: i8) -> Self {
-        Self(eighths_of_hour as i32 * 450)
-    }
-
-    /// Creates a [`UtcOffset`] of zero.
-    pub const fn zero() -> Self {
-        Self(0)
-    }
-
-    /// Parse a [`UtcOffset`] from bytes.
-    ///
-    /// The offset must range from UTC-12 to UTC+14.
-    ///
-    /// The string must be an ISO-8601 time zone designator:
-    /// e.g. Z
-    /// e.g. +05
-    /// e.g. +0500
-    /// e.g. +05:00
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::time::zone::UtcOffset;
-    ///
-    /// let offset0: UtcOffset = UtcOffset::try_from_str("Z").unwrap();
-    /// let offset1: UtcOffset = UtcOffset::try_from_str("+05").unwrap();
-    /// let offset2: UtcOffset = UtcOffset::try_from_str("+0500").unwrap();
-    /// let offset3: UtcOffset = UtcOffset::try_from_str("-05:00").unwrap();
-    ///
-    /// let offset_err0 =
-    ///     UtcOffset::try_from_str("0500").expect_err("Invalid input");
-    /// let offset_err1 =
-    ///     UtcOffset::try_from_str("+05000").expect_err("Invalid input");
-    ///
-    /// assert_eq!(offset0.to_seconds(), 0);
-    /// assert_eq!(offset1.to_seconds(), 18000);
-    /// assert_eq!(offset2.to_seconds(), 18000);
-    /// assert_eq!(offset3.to_seconds(), -18000);
-    /// ```
-    #[inline]
-    pub fn try_from_str(s: &str) -> Result<Self, InvalidOffsetError> {
-        Self::try_from_utf8(s.as_bytes())
-    }
-
-    /// See [`Self::try_from_str`]
-    pub fn try_from_utf8(mut code_units: &[u8]) -> Result<Self, InvalidOffsetError> {
-        fn try_get_time_component([tens, ones]: [u8; 2]) -> Option<i32> {
-            Some(((tens as char).to_digit(10)? * 10 + (ones as char).to_digit(10)?) as i32)
-        }
-
-        let offset_sign = match code_units {
-            [b'+', rest @ ..] => {
-                code_units = rest;
-                1
-            }
-            [b'-', rest @ ..] => {
-                code_units = rest;
-                -1
-            }
-            // Unicode minus ("\u{2212}" == [226, 136, 146])
-            [226, 136, 146, rest @ ..] => {
-                code_units = rest;
-                -1
-            }
-            [b'Z'] => return Ok(Self(0)),
-            _ => return Err(InvalidOffsetError),
-        };
-
-        let hours = match code_units {
-            &[h1, h2, ..] => try_get_time_component([h1, h2]),
-            _ => None,
-        }
-        .ok_or(InvalidOffsetError)?;
-
-        let minutes = match code_units {
-            /* ±hh */
-            &[_, _] => Some(0),
-            /* ±hhmm, ±hh:mm */
-            &[_, _, m1, m2] | &[_, _, b':', m1, m2] => {
-                try_get_time_component([m1, m2]).filter(|&m| m < 60)
-            }
-            _ => None,
-        }
-        .ok_or(InvalidOffsetError)?;
-
-        Self::try_from_seconds(offset_sign * (hours * 60 + minutes) * 60)
-    }
-
-    /// Create a [`UtcOffset`] from a seconds input without checking bounds.
-    #[inline]
-    pub fn from_seconds_unchecked(seconds: i32) -> Self {
-        Self(seconds)
-    }
-
-    /// Returns the raw offset value in seconds.
-    pub fn to_seconds(self) -> i32 {
-        self.0
-    }
-
-    /// Returns the raw offset value in eights of an hour (7.5 minute units).
-    pub fn to_eighths_of_hour(self) -> i8 {
-        (self.0 / 450) as i8
-    }
-
-    /// Whether the [`UtcOffset`] is non-negative.
-    pub fn is_non_negative(self) -> bool {
-        self.0 >= 0
-    }
-
-    /// Whether the [`UtcOffset`] is zero.
-    pub fn is_zero(self) -> bool {
-        self.0 == 0
-    }
-
-    /// Returns the hours part of if the [`UtcOffset`]
-    pub fn hours_part(self) -> i32 {
-        self.0 / 3600
-    }
-
-    /// Returns the minutes part of if the [`UtcOffset`].
-    pub fn minutes_part(self) -> u32 {
-        (self.0 % 3600 / 60).unsigned_abs()
-    }
-
-    /// Returns the seconds part of if the [`UtcOffset`].
-    pub fn seconds_part(self) -> u32 {
-        (self.0 % 60).unsigned_abs()
-    }
-}
-
-impl FromStr for UtcOffset {
-    type Err = InvalidOffsetError;
-
-    #[inline]
-    fn from_str(s: &str) -> Result<Self, Self::Err> {
-        Self::try_from_str(s)
-    }
-}
-
-/// [`UtcOffsetCalculator`] uses data from the [data provider] to calculate time zone offsets.
-///
-/// [data provider]: icu_provider
-#[derive(Debug)]
-pub struct UtcOffsetCalculator {
-    pub(super) offset_period: DataPayload<TimeZoneOffsetsV1>,
-}
-
-#[cfg(feature = "compiled_data")]
-impl Default for UtcOffsetCalculator {
-    fn default() -> Self {
-        Self::new()
-    }
-}
-
-impl UtcOffsetCalculator {
-    /// Constructs a `UtcOffsetCalculator` using compiled data.
-    ///
-    /// ✨ *Enabled with the `compiled_data` Cargo feature.*
-    ///
-    /// [📚 Help choosing a constructor](icu_provider::constructors)
-    #[cfg(feature = "compiled_data")]
-    #[inline]
-    pub const fn new() -> Self {
-        UtcOffsetCalculator {
-            offset_period: DataPayload::from_static_ref(
-                crate::provider::Baked::SINGLETON_TIME_ZONE_OFFSETS_V1,
-            ),
-        }
-    }
-
-    icu_provider::gen_buffer_data_constructors!(() -> error: DataError,
-        functions: [
-            new: skip,
-                        try_new_with_buffer_provider,
-            try_new_unstable,
-            Self,
-        ]
-    );
-
-    #[doc = icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new)]
-    pub fn try_new_unstable(
-        provider: &(impl DataProvider<TimeZoneOffsetsV1> + ?Sized),
-    ) -> Result<Self, DataError> {
-        let metazone_period = provider.load(Default::default())?.payload;
-        Ok(Self {
-            offset_period: metazone_period,
-        })
-    }
-
-    /// Calculate zone offsets from timezone and local datetime.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// use icu::calendar::Date;
-    /// use icu::time::zone::UtcOffset;
-    /// use icu::time::zone::UtcOffsetCalculator;
-    /// use icu::time::Time;
-    /// use icu::time::TimeZone;
-    /// use tinystr::tinystr;
-    ///
-    /// let zoc = UtcOffsetCalculator::new();
-    ///
-    /// // America/Denver observes DST
-    /// let offsets = zoc
-    ///     .compute_offsets_from_time_zone(
-    ///         TimeZone(tinystr!(8, "usden")),
-    ///         (Date::try_new_iso(2024, 1, 1).unwrap(), Time::midnight()),
-    ///     )
-    ///     .unwrap();
-    /// assert_eq!(
-    ///     offsets.standard,
-    ///     UtcOffset::try_from_seconds(-7 * 3600).unwrap()
-    /// );
-    /// assert_eq!(
-    ///     offsets.daylight,
-    ///     Some(UtcOffset::try_from_seconds(-6 * 3600).unwrap())
-    /// );
-    ///
-    /// // America/Phoenix does not
-    /// let offsets = zoc
-    ///     .compute_offsets_from_time_zone(
-    ///         TimeZone(tinystr!(8, "usphx")),
-    ///         (Date::try_new_iso(2024, 1, 1).unwrap(), Time::midnight()),
-    ///     )
-    ///     .unwrap();
-    /// assert_eq!(
-    ///     offsets.standard,
-    ///     UtcOffset::try_from_seconds(-7 * 3600).unwrap()
-    /// );
-    /// assert_eq!(offsets.daylight, None);
-    /// ```
-    pub fn compute_offsets_from_time_zone(
-        &self,
-        time_zone_id: TimeZone,
-        dt: (Date<Iso>, Time),
-    ) -> Option<UtcOffsets> {
-        use zerovec::ule::AsULE;
-        match self.offset_period.get().get0(&time_zone_id) {
-            Some(cursor) => {
-                let mut offsets = None;
-                let minutes_since_epoch_walltime = MinutesSinceEpoch::from(dt);
-                for (minutes, id) in cursor.iter1_copied() {
-                    if minutes_since_epoch_walltime >= MinutesSinceEpoch::from_unaligned(*minutes) {
-                        offsets = Some(id);
-                    } else {
-                        break;
-                    }
-                }
-                let offsets = offsets?;
-                Some(UtcOffsets {
-                    standard: UtcOffset::from_eighths_of_hour(offsets.0),
-                    daylight: (offsets.1 != 0)
-                        .then_some(UtcOffset::from_eighths_of_hour(offsets.0 + offsets.1)),
-                })
-            }
-            None => None,
-        }
-    }
-}
-
-/// Represents the different offsets in use for a time zone
-#[non_exhaustive]
-#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord)]
-pub struct UtcOffsets {
-    /// The standard offset.
-    pub standard: UtcOffset,
-    /// The daylight-saving offset, if used.
-    pub daylight: Option<UtcOffset>,
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/windows.rs b/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/windows.rs
deleted file mode 100644
index 7b5fc458..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/windows.rs
+++ /dev/null
@@ -1,180 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! TODO
-
-use core::fmt::Write;
-
-use icu_provider::{
-    prelude::icu_locale_core::subtags::{region, Region},
-    DataError, DataPayload, DataProvider,
-};
-
-use crate::{
-    provider::windows::{TimeZoneWindowsV1, WindowsZonesToBcp47Map},
-    TimeZone,
-};
-
-/// A mapper between Windows time zone identifier and a BCP-47 ID.
-///
-/// This mapper currently only supports mapping from windows time zone identifiers
-/// to BCP-47 identifiers.
-///
-/// A windows time zone may vary depending on an associated territory/region. This is represented
-/// by the internal data mapping by delimiting the windows time zone and territory/region
-/// code with a "/".
-///
-/// For instance, Central Standard Time can vary depending on the provided regions listed below:
-///
-/// - Central Standard Time/001
-/// - Central Standard Time/US
-/// - Central Standard Time/CA
-/// - Central Standard Time/MX
-/// - Central Standard Time/ZZ
-///
-/// As such, a [`Region`] may be provided to further specify a desired territory/region when
-/// querying a BCP-47 identifier. If no region is provided or the specificity is not required,
-/// then the territory will default to the M.49 World Code, `001`.
-#[derive(Debug)]
-pub struct WindowsParser {
-    data: DataPayload<TimeZoneWindowsV1>,
-}
-
-impl WindowsParser {
-    /// Creates a new static [`WindowsParserBorrowed`].
-    #[allow(clippy::new_ret_no_self)]
-    #[cfg(feature = "compiled_data")]
-    pub fn new() -> WindowsParserBorrowed<'static> {
-        WindowsParserBorrowed::new()
-    }
-
-    icu_provider::gen_buffer_data_constructors!(() -> error: DataError,
-        functions: [
-            new: skip,
-                        try_new_with_buffer_provider,
-            try_new_unstable,
-            Self,
-        ]
-    );
-
-    #[doc = icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new)]
-    pub fn try_new_unstable<P>(provider: &P) -> Result<Self, DataError>
-    where
-        P: DataProvider<TimeZoneWindowsV1> + ?Sized,
-    {
-        let data = provider.load(Default::default())?.payload;
-        Ok(Self { data })
-    }
-
-    /// Returns the borrowed version of the mapper that can be queried from
-    /// the owned mapper.
-    ///
-    /// Using the borrowed version allows one to avoid a small potential
-    /// indirection cost when querying the mapper from the owned version.
-    pub fn as_borrowed(&self) -> WindowsParserBorrowed {
-        WindowsParserBorrowed {
-            data: self.data.get(),
-        }
-    }
-}
-
-/// A borrowed wrapper around the windows time zone mapper data.
-#[derive(Debug, Copy, Clone)]
-pub struct WindowsParserBorrowed<'a> {
-    data: &'a WindowsZonesToBcp47Map<'a>,
-}
-
-impl WindowsParserBorrowed<'static> {
-    /// Cheaply converts a [`WindowsParserBorrowed<'static>`] into a [`WindowsParser`].
-    ///
-    /// Note: Due to branching and indirection, using [`WindowsParser`] might inhibit some
-    /// compile-time optimizations that are possible with [`WindowsParserBorrowed`].
-    pub fn static_to_owned(&self) -> WindowsParser {
-        WindowsParser {
-            data: DataPayload::from_static_ref(self.data),
-        }
-    }
-}
-
-#[cfg(feature = "compiled_data")]
-impl Default for WindowsParserBorrowed<'_> {
-    fn default() -> Self {
-        Self::new()
-    }
-}
-
-impl WindowsParserBorrowed<'_> {
-    /// Creates a new static [`WindowsParserBorrowed`].
-    #[cfg(feature = "compiled_data")]
-    pub fn new() -> Self {
-        WindowsParserBorrowed {
-            data: crate::provider::Baked::SINGLETON_TIME_ZONE_WINDOWS_V1,
-        }
-    }
-
-    /// Returns the BCP-47 ID for a provided Windows time zone and [`Region`] with a case sensitive query.
-    ///
-    /// If no region is provided or the specificity is not required,
-    /// then the territory will default to the M.49 World Code, `001`.
-    ///
-    /// ```rust
-    /// use icu::locale::subtags::region;
-    /// use icu::time::{zone::WindowsParser, TimeZone};
-    /// use tinystr::tinystr;
-    ///
-    /// let win_tz_mapper = WindowsParser::new();
-    ///
-    /// let bcp47_id = win_tz_mapper.parse("Central Standard Time", None);
-    /// assert_eq!(bcp47_id, Some(TimeZone(tinystr!(8, "uschi"))));
-    ///
-    /// let bcp47_id =
-    ///     win_tz_mapper.parse("Central Standard Time", Some(region!("US")));
-    /// assert_eq!(bcp47_id, Some(TimeZone(tinystr!(8, "uschi"))));
-    ///
-    /// let bcp47_id =
-    ///     win_tz_mapper.parse("Central Standard Time", Some(region!("CA")));
-    /// assert_eq!(bcp47_id, Some(TimeZone(tinystr!(8, "cawnp"))));
-    /// ```
-    pub fn parse(self, windows_tz: &str, region: Option<Region>) -> Option<TimeZone> {
-        self.parse_from_utf8(windows_tz.as_bytes(), region)
-    }
-
-    /// See [`Self::parse`].
-    pub fn parse_from_utf8(self, windows_tz: &[u8], region: Option<Region>) -> Option<TimeZone> {
-        let mut cursor = self.data.map.cursor();
-        // Returns None if input is non-ASCII
-        for &byte in windows_tz {
-            cursor.step(byte);
-        }
-        cursor.step(b'/');
-        cursor
-            .write_str(region.unwrap_or(region!("001")).as_str())
-            // region is valid ASCII, but we can do this instead of unwrap
-            .ok()?;
-        self.data.bcp47_ids.get(cursor.take_value()?)
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-    use tinystr::tinystr;
-
-    #[test]
-    fn basic_windows_tz_lookup() {
-        let win_map = WindowsParser::new();
-
-        let result = win_map.parse("Central Standard Time", None);
-        assert_eq!(result, Some(TimeZone(tinystr!(8, "uschi"))));
-
-        let result = win_map.parse("Eastern Standard Time", None);
-        assert_eq!(result, Some(TimeZone(tinystr!(8, "usnyc"))));
-
-        let result = win_map.parse("Eastern Standard Time", Some(region!("CA")));
-        assert_eq!(result, Some(TimeZone(tinystr!(8, "cator"))));
-
-        let result = win_map.parse("GMT Standard Time", None);
-        assert_eq!(result, Some(TimeZone(tinystr!(8, "gblon"))));
-    }
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo_vcs_info.json
deleted file mode 100644
index c2fee49..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/.cargo_vcs_info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "git": {
-    "sha1": "86fe50f272858bfc15640b2dd0572603b00e1210"
-  },
-  "path_in_vcs": "provider/data/time"
-}
\ No newline at end of file
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.lock b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.lock
deleted file mode 100644
index 7e9e2256..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.lock
+++ /dev/null
@@ -1,230 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "displaydoc"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "icu_locale_core"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b80161b66511e4eb415ef110c67ea8cab4400b749f9e30c8691fff1354934b6b"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
-]
-
-[[package]]
-name = "icu_provider"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d462aad52985bb71e3140fcc44e54d816cf7f2c3f25cd9b090cc77a9798504"
-dependencies = [
- "displaydoc",
- "icu_locale_core",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_baked"
-version = "2.0.0-beta2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2794f00ee1999495f4f1a1e35aee8f54fe7cfcbcf909ec05b60522377200aecb"
-dependencies = [
- "icu_provider",
- "writeable",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_time_data"
-version = "2.0.0-beta2"
-dependencies = [
- "icu_provider_baked",
-]
-
-[[package]]
-name = "litemap"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.93"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.218"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "syn"
-version = "2.0.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
-dependencies = [
- "displaydoc",
- "zerovec",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
-
-[[package]]
-name = "writeable"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
-
-[[package]]
-name = "yoke"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
-]
-
-[[package]]
-name = "zerotrie"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b7a6cf4865aac8394f19ad46e37f60b929c1ba5eed798b96a32820aa9392929"
-dependencies = [
- "displaydoc",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e62113720e311984f461c56b00457ae9981c0bc7859d22306cc2ae2f95571c"
-dependencies = [
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml
deleted file mode 100644
index ab141f41..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml
+++ /dev/null
@@ -1,61 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
-[package]
-edition = "2021"
-rust-version = "1.81"
-name = "icu_time_data"
-version = "2.0.0-beta2"
-authors = ["The ICU4X Project Developers"]
-build = false
-include = [
-    "data/**/*",
-    "src/**/*",
-    "examples/**/*",
-    "benches/**/*",
-    "tests/**/*",
-    "Cargo.toml",
-    "LICENSE",
-    "README.md",
-]
-autolib = false
-autobins = false
-autoexamples = false
-autotests = false
-autobenches = false
-description = "Data for the icu_time crate"
-homepage = "https://icu4x.unicode.org"
-readme = "README.md"
-categories = ["internationalization"]
-license = "Unicode-3.0"
-repository = "https://github.com/unicode-org/icu4x"
-
-[package.metadata.sources.cldr]
-tagged = "47.0.0-BETA1"
-
-[package.metadata.sources.icuexport]
-tagged = "release-77-rc"
-
-[package.metadata.sources.segmenter_lstm]
-tagged = "v0.1.0"
-
-[lib]
-name = "icu_time_data"
-path = "src/lib.rs"
-
-[dependencies.icu_provider_baked]
-version = "~2.0.0-beta2"
-default-features = false
-
-[lints.rust.unexpected_cfgs]
-level = "warn"
-priority = 0
-check-cfg = ["cfg(icu4x_custom_data)"]
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml.orig
deleted file mode 100644
index c6f6400..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/Cargo.toml.orig
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of ICU4X. For terms of use, please see the file
-# called LICENSE at the top level of the ICU4X source tree
-# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-[package]
-name = "icu_time_data"
-description = "Data for the icu_time crate"
-license = "Unicode-3.0"
-version.workspace = true
-
-authors.workspace = true
-categories.workspace = true
-edition.workspace = true
-homepage.workspace = true
-include.workspace = true
-repository.workspace = true
-rust-version.workspace = true
-
-[package.metadata.sources]
-cldr = { tagged = "47.0.0-BETA1" }
-icuexport = { tagged = "release-77-rc" }
-segmenter_lstm = { tagged = "v0.1.0" }
-
-[lints.rust]
-unexpected_cfgs = { level = "warn", check-cfg = ['cfg(icu4x_custom_data)'] }
-
-[dependencies]
-icu_provider_baked = { workspace = true }
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/LICENSE b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/LICENSE
deleted file mode 100644
index c9be601..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/LICENSE
+++ /dev/null
@@ -1,46 +0,0 @@
-UNICODE LICENSE V3
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright © 2020-2024 Unicode, Inc.
-
-NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
-SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
-TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
-DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of data files and any associated documentation (the "Data Files") or
-software and any associated documentation (the "Software") to deal in the
-Data Files or Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, and/or sell
-copies of the Data Files or Software, and to permit persons to whom the
-Data Files or Software are furnished to do so, provided that either (a)
-this copyright and permission notice appear with all copies of the Data
-Files or Software, or (b) this copyright and permission notice appear in
-associated Documentation.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
-THIRD PARTY RIGHTS.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
-BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
-FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall
-not be used in advertising or otherwise to promote the sale, use or other
-dealings in these Data Files or Software without prior written
-authorization of the copyright holder.
-
-SPDX-License-Identifier: Unicode-3.0
-
-—
-
-Portions of ICU4X may have been adapted from ICU4C and/or ICU4J.
-ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation and others.
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/README.md b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/README.md
deleted file mode 100644
index f93dd147..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# icu_time_data [![crates.io](https://img.shields.io/crates/v/icu_time_data)](https://crates.io/crates/icu_time_data)
-
-<!-- cargo-rdme start -->
-
-Data for the `icu_time` crate
-
-This data was generated with CLDR version 47.0.0-BETA1, ICU version release-77-rc, and
-LSTM segmenter version v0.1.0.
-
-<!-- cargo-rdme end -->
-
-## More Information
-
-For more information on development, authorship, contributing etc. please visit [`ICU4X home page`](https://github.com/unicode-org/icu4x).
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/mod.rs b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/mod.rs
deleted file mode 100644
index cdd6773..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/mod.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// @generated
-include!("time_zone_iana_names_v1.rs.data");
-include!("time_zone_iana_map_v1.rs.data");
-include!("time_zone_offsets_v1.rs.data");
-include!("time_zone_windows_v1.rs.data");
-/// Marks a type as a data provider. You can then use macros like
-/// `impl_core_helloworld_v1` to add implementations.
-///
-/// ```ignore
-/// struct MyProvider;
-/// const _: () = {
-///     include!("path/to/generated/macros.rs");
-///     make_provider!(MyProvider);
-///     impl_core_helloworld_v1!(MyProvider);
-/// }
-/// ```
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __make_provider {
-    ($ name : ty) => {
-        #[clippy::msrv = "1.81"]
-        impl $name {
-            #[allow(dead_code)]
-            pub(crate) const MUST_USE_MAKE_PROVIDER_MACRO: () = ();
-        }
-        icu_provider::marker::impl_data_provider_never_marker!($name);
-    };
-}
-#[doc(inline)]
-pub use __make_provider as make_provider;
-#[allow(unused_macros)]
-macro_rules! impl_data_provider {
-    ($ provider : ty) => {
-        make_provider!($provider);
-        impl_time_zone_iana_names_v1!($provider);
-        impl_time_zone_iana_map_v1!($provider);
-        impl_time_zone_offsets_v1!($provider);
-        impl_time_zone_windows_v1!($provider);
-    };
-}
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_map_v1.rs.data b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_map_v1.rs.data
deleted file mode 100644
index 4dae935..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_map_v1.rs.data
+++ /dev/null
@@ -1,77 +0,0 @@
-// @generated
-/// Implement `DataProvider<TimeZoneIanaMapV1>` on the given struct using the data
-/// hardcoded in this file. This allows the struct to be used with
-/// `icu`'s `_unstable` constructors.
-///
-/// Using this implementation will embed the following data in the binary's data segment:
-/// * 9541B[^1] for the singleton data struct
-///
-/// [^1]: these numbers can be smaller in practice due to linker deduplication
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_time_zone_iana_map_v1 {
-    ($ provider : ty) => {
-        #[clippy::msrv = "1.81"]
-        const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
-        #[clippy::msrv = "1.81"]
-        impl $provider {
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_IANA_MAP_V1: &'static <icu::time::provider::iana::TimeZoneIanaMapV1 as icu_provider::DynamicDataMarker>::DataStruct = &icu::time::provider::iana::IanaToBcp47Map { map: zerotrie::ZeroAsciiIgnoreCaseTrie { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1i_ABCEIMPU\x01\x10\x10\x11\x14\x14\x14\x16TSz\x0FA\xB3\xD6\x8B\xE1qCEGHIJKLMNPRSTUWZ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x141Zi\x80\x8F\x99\x9F\xAF\xC2\xE2\xEB\xF5\xFC\x11\x1C\xC3ESu\x03\nT\x95\"T6CDT\x91\x1Eba\x91T\xC4EgiS\x03\x08\x0CT\x95\x1Aypt\x90\x08re\x95.T\x9205EDT\x92 \xC3BMr\t\x1A\x95F-Eire\x95FT\x94\\\xC3+-0\x03\x060\x94\\0\x94\\\x94\\eenwich\x94\\\xC2oS\x08ngkong\x93DT\x96:\xC3crs\x07\x0Beland\x94>an\x94\x18rael\x93Na\xC2mp\x06aica\x91lan\x94\x1Cwajalein\x96Bibya\x90R\xC2ES\x03T\x95\"T\x9247MDT\x912\xC2aZ\x06vajo\x912\x96 -CHAT\x96$\xC3oRS\x10\x13\xC2lr\x05and\x96\x02tugal\x95BC\x94\x0CT8PDT\x91zO\xC2CK\x02\x94\x12\x94\ningapore\x94\x0Eurkey\x958\xC3CnT\x03\x0CT\x95\x12iversal\x95\x12C\x95\x12\xC2-E\x04SU\x95TT\x95Bulu\x95\x12\xE1gfmnrstu\x02\t\t\t\r\x0E $\xA5\xB8\x7F\x05rica/\xE1rABCDEFGHJKLMNOPSTW\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01/m\x90\xB8\xC1\xCA\xD3\xDA\xEE\x13G|\xA3\xAF\xBA\xC3\xDC\xC5bcdls\x06\n\x14\x1Aidjan\x81cra\x83dis_Ababa\x85giers\x87m\xC2ae\x03ra\x89ra\x88\xC5ailru\x12\x18 +\xC2mn\x04ako\x8B\xC2gj\x03ui\x8Dul\x8Fssau\x90\x01antyre\x90\x03azzaville\x90\x05jumbura\x90\x07\xC3aeo\x11\x16\xC2is\x04ro\x90\tablanca\x90\x0Buta\x90\rnakry\x90\x0F\xC3ajo\x14\x1C\xC2kr\x04ar\x90\x11_es_Salaam\x90\x13ibouti\x90\x15uala\x90\x17l_Aaiun\x90\x19reetown\x90\x1Baborone\x90\x1Darare\x90\x1F\xC2ou\x0Channesburg\x90!ba\x90#\xC3ahi\x07\x0Fmpala\x90%artoum\x90'\xC2gn\x05ali\x90)shasa\x90+\xC4aiou\x05\x0F\x13gos\x90-breville\x90/me\x901\xC3abs\x05\x0Enda\x903umbashi\x905aka\x907\xC3abo\x15\x1C\xC3lps\x05\nabo\x909uto\x90;eru\x90=abane\x90?\xC2gn\x08adishu\x90Arovia\x90C\xC4adio\x07\x0F\x15irobi\x90Ejamena\x90Gamey\x90Iuakchott\x90Kuagadougou\x90Morto-Novo\x90Oao_Tome\x90Q\xC3iru\x07\x0Embuktu\x8Aipoli\x90Snis\x90Uindhoek\x90Werica/\xE1vABCDEFGHIJKLMNOPRSTVWY\0\x01\x01\x02\x02\x02\x02\x02\x03\x03\x03\x03\x04\x04\x04\x05\x05\x06\x06\x06\x06\xE7F\xEA#Nl\xC7\xE4]u\xAD\xE2\x88\xE2\xEA]\xA6C}\x90\xA6\xC5dnrst\x04\x1F\xC7\xCFak\x90Y\xC3cgt\x08\x0Fhorage\x90[uilla\x90]igua\x90_\xC3agu\x08\x9Eguaina\x90aentina/\xC9BCJLMRSTU\r17@HUmuuenos_Aires\x90c\xC2ao\ttamarca\x90e\xC2mr\rodRivadavia\x90ddoba\x90gujuy\x90ia_Rioja\x90kendoza\x90mio_Gallegos\x90oa\xC2ln\x04ta\x90q_\xC2JL\x05uan\x90suis\x90uucuman\x90wshuaia\x90yba\x90{uncion\x90}\xC2ik\x07kokan\x90\x7Fa\x90X\xC5aelou\x1A&2I\xC2hr\x0Fia\x91\x01_Banderas\x91\x03bados\x91\x05l\xC2ei\x03m\x91\x07ze\x91\tanc-Sablon\x91\x0B\xC3agi\x08\r_Vista\x91\rota\x91\x0Fse\x91\x11enos_Aires\x90b\xC6ahioruCTa\x82\x89\xC5mnrty\x19\x1E$,\xC2bp\x0Bridge_Bay\x91\x13o_Grande\x91\x15cun\x91\x17acas\x91\x19amarca\x90d\xC2em\x05nne\x91\x1Ban\x91\x1Di\xC2ch\x05ago\x91\x1Fuahua\x91!udad_Juarez\x91#\xC2rs\x14\xC2ad\x0Bl_Harbour\x90~oba\x90fta_Rica\x91%eston\x91'\xC2ir\x05aba\x91)acao\x91+\xC3aeo\x1C+\xC2nw\x0Bmarkshavn\x91-son\x91/_Creek\x911\xC2nt\x05ver\x913roit\x915minica\x917\xC4diln\x08\x10\x1Bmonton\x919runepe\x91;_Salvador\x91=senada\x92hort\xC2_a\x11\xC2NW\x07elson\x91?ayne\x91Xleza\x91A\xC4loru\t\x1B.ace_Bay\x91C\xC2do\x06thab\x92,se_Bay\x91E\xC2ae\tnd_Turk\x91Gnada\x91I\xC2ay\x1C\xC3dty\x08\x0Feloupe\x91Kemala\x91Maquil\x91Oana\x91Q\xC2ae\x0F\xC2lv\x06ifax\x91Sana\x91Urmosillo\x91W\xC2nqn\xC2dueiana\xC2/pW\xC7IKMPTVW\r\x12\x1A%/Andianapolis\x91Ynox\x91[arengo\x91]etersburg\x91_ell_City\x91a\xC2ei\x05vay\x91cncennes\x91einamac\x91golis\x91Xvik\x91ialuit\x91k\xC2au\x07maica\x91m\xC2jn\x04uy\x90heau\x91o\xC3enr!(ntucky/\xC2LM\x0Bouisville\x91qonticello\x91sox_IN\x91Zalendijk\x91u\xC3aio\x06\n_Paz\x91wma\x91y\xC3suw\n\x13_Angeles\x91{isville\x91per_Princes\x91}\xC4aeio;ks\xC5cnrtz\x05\x11\"*eio\x91\x7Fa\xC2gu\x04ua\x92\x01s\x92\x03\xC2it\x05got\x92\x05inique\x92\x07amoros\x92\tatlan\x92\x0B\xC4nrtx\x10\x15\x1E\xC2do\x05oza\x90lminee\x92\rida\x92\x0Flakatla\x92\x11ico_City\x92\x13quelon\x92\x15n\xC2ct\x05ton\x92\x17\xC3ers\x0F\x14\xC2rv\x05rey\x92\x19ideo\x92\x1Beal\x92jerrat\x92\x1D\xC5aeiou\x06\x0E\x15Lssau\x92\x1Fw_York\x92!pigon\x92j\xC2mr\x03e\x92#\xC2ot\x05nha\x92%h_Dakota/\xC3BCN\x07\x0Eeulah\x92'enter\x92)ew_Salem\x92+uk\x92-jinaga\x92/\xC4ahou\x1E%R\xC2nr\x11\xC2ag\x04ma\x921nirtung\x91jamaribo\x923oenix\x925rt\xC3-_o\x0B\x15au-Prince\x927of_Spain\x929_\xC2AV\x05cre\x92Helho\x92;\xC2en\nrto_Rico\x92=ta_Arenas\x92?\xC4aeio\x190:\xC2in\nny_River\x92rkin_Inlet\x92A\xC3cgs\x05\nife\x92Cina\x92Eolute\x92Go_Branco\x92Isario\x90f\xC6achitw2>FK\x84\xC2no&t\xC3aio\x10\x15\xC2_r\x08Isabel\x92hem\x92Kago\x92M_Domingo\x92O_Paulo\x92Qoresbysund\x92Siprock\x912tka\x92U_\xC6BJKLTV\x0B\x11\x17\x1D$arthelemy\x92Wohns\x92Yitts\x92[ucia\x92]homas\x92_incent\x92aift_Current\x92c\xC4ehio\x0B\x1C#gucigalpa\x92eu\xC2ln\x03e\x92gder_Bay\x92jjuana\x92ir\xC2ot\x05nto\x92kola\x92m\xC2ai\tncouver\x92orgin\x92^\xC2hi\nitehorse\x92qnnipeg\x92s\xC2ae\x07kutat\x92ullowknife\x918tarctica/\xC8CDMPRSTV\x06\x1D9@H[aasey\x92w\xC2au\x05vis\x92ymontDUrville\x92{\xC2ac\x11\xC2cw\x08quarie\x92}son\x92\x7FMurdo\x93\x01almer\x93\x03othera\x93\x05\xC2oy\nuth_Pole\x96 owa\x93\x07roll\x93\tostok\x93\x0Bctic/Longyearbyen\x93\ria/\xE1uABCDFGHIJKMNOPQRSTUVY\0\0\0\0\0\0\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x03\x03\x03G\x87\xC1\xF0\xFA\xFF,?]\xD0\xFD\x1F+Miz\xC1\x0BD\\\xC7dlmnqst\x04\n\x0F\x15!3en\x93\x0Fmaty\x93\x11man\x93\x13adyr\x93\x15t\xC2ao\x03u\x93\x17be\x93\x19h\xC2gk\x06abat\x93\x1Bhabad\x93\x1Ayrau\x93\x1D\xC4aeir%+2\xC5ghknr\x06\x0C\x0F\x15hdad\x93\x1Frain\x93!u\x93#gkok\x93%naul\x93'irut\x93)shkek\x93+unei\x93-\xC3aho\x08-lcutta\x93Z\xC3iou\x04\x17ta\x93/\xC2in\x08balsan\x94 gqing\x94\x0Cngking\x94\x0Clombo\x931\xC4ahiu\x0F\x14\x18\xC2cm\x04ca\x934ascus\x933aka\x935li\x937\xC2bs\x04ai\x939hanbe\x93;amagusta\x93=aza\x93?\xC3aeo\x06\x0Crbin\x94\x0Cbron\x93A\xC3_nv\n\x12Chi_Minh\x93Cg_Kong\x93Ed\x93G\xC2rs\x07kutsk\x93Itanbul\x958\xC2ae\x11\xC2ky\x06arta\x93Kapura\x93Mrusalem\x93O\xC5ahoru3;BM\xC5bmrst\x04\x0C\x12\x18ul\x93Qchatka\x93Sachi\x93Uhgar\x94\"\xC2hm\x07mandu\x93Wandu\x93Vandyga\x93Ylkata\x93[asnoyarsk\x93]\xC3acw\x0B\x11la_Lumpur\x93_hing\x93aait\x93c\xC2au#\xC4cgkn\t\x0F\x16a\xC2ou\x02\x93d\x93eadan\x93gassar\x93iila\x93kscat\x93m\xC2io\x07cosia\x93ovo\xC2ks\tuznetsk\x93qibirsk\x93s\xC2mr\x04sk\x93ual\x93w\xC3hoy\n\x13nom_Penh\x93yntianak\x93{ongyang\x93}\xC3aoy\x05\rtar\x93\x7Fstanay\x94\x01zylorda\x94\x03\xC2ai\x07ngoon\x94,yadh\x94\x05\xC5aehir\x1A\x1F'0\xC3ikm\x05\x0Cgon\x93Bhalin\x94\x07arkand\x94\toul\x94\x0Banghai\x94\rngapore\x94\x0Fednekolymsk\x94\x11\xC5abeho\x10\x17'4\xC2is\x05pei\x94\x13hkent\x94\x15ilisi\x94\x17\xC2hl\x05ran\x94\x19_Aviv\x93Nim\xC2bp\x03u\x94\x1Ahu\x94\x1B\xC2km\x04yo\x94\x1Dsk\x94\x1F\xC4jlrs\r#)ung_Pandang\x93ha\xC2an\tnbaatar\x94!_Bator\x94 umqi\x94#t-Nera\x94%\xC2il\tentiane\x94'adivostok\x94)\xC2ae\x0F\xC2kn\x06utsk\x94+gon\x94-\xC2kr\x0Caterinburg\x94/evan\x941lantic/\xC8ABCFJMRS\x07\x0F\"0:BLzores\x943ermuda\x945a\xC2np\x05ary\x947e_Verde\x949a\xC2er\x05roe\x94:oe\x94;an_Mayen\x93\x0Cadeira\x94=eykjavik\x94?\xC2ot\ruth_Georgia\x94A\xC2_a\x08Helena\x94Cnley\x94Estralia/\xD0ABCDEHLMNPQSTVWY\x0F%7>DKeo{\x81\x8C\x9B\xA4\xAD\xB2\xC2Cd\x03T\x94Zelaide\x94Gr\xC2io\x07sbane\x94Iken_Hill\x94K\xC2au\x08nberra\x94Zrrie\x94Parwin\x94Mucla\x94Oobart\x94Q\xC3Hio\x03\x0BI\x94Tndeman\x94Srd_Howe\x94Uelbourne\x94W\xC2oS\x05rth\x94LW\x94Zerth\x94Yueensland\x94H\xC2oy\x05uth\x94Fdney\x94[asmania\x94Pictoria\x94Vest\x94Xancowinna\x94Jrazil/\xC4ADEW\x05\x0F\x14cre\x92HeNoronha\x92$ast\x92Pest\x92\x02\xC2ahpnada/\xC8ACEMNPSY\t\x11*3@HUtlantic\x91Rentral\x92rast\xC2-e\x0ESaskatchewan\x92Drn\x92jountain\x918ewfoundland\x92Xacific\x92naskatchewan\x92Dukon\x92pile/\xC2CE\x0Continental\x92LasterIsland\x96(\xE1btu\0\xAAc/\xC3GUZ\x88\x9D\xC2Mr{T\x94]\xC3+-04p\xCA0123456789\x02\x10\x12\x14\x16\x18\x1A\x1C\x1E\x94\\\x94_\xC3012\x02\x04\x94a\x94c\x94e\x94g\x94i\x94k\x94m\x94o\x94q\x94s\x94u\xCA0123456789\x02\x18\x1A\x1C\x1E \"$&\x94\\\x94w\xC501234\x02\x04\x06\x08\x94y\x94{\x94}\x94\x7F\x95\x01\x95\x03\x95\x05\x95\x07\x95\t\x95\x0B\x95\r\x95\x0F\x95\x11\x94\\eenwich\x94\\\xC3CnT\x03\x0CT\x95\x12iversal\x95\x12C\x95\x13ulu\x95\x12rope/\xE1uABCDGHIJKLMNOPRSTUVWZ\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02'u\x8B\x92\xA7\xB0\xC6\xCD\xED\x14DLQkw\xC1\xDA\xEF\x1B\"\xC4mnst\t\x10\x19sterdam\x95\x15dorra\x95\x17trakhan\x95\x19hens\x95\x1B\xC3eru\x18,\xC2lr\x0F\xC2fg\x05ast\x95Frade\x95\x1Dlin\x95\x1F\xC2au\ttislava\x95!ssels\x95#\xC3cds\x08\x0Fharest\x95%apest\x95'ingen\x95)\xC2ho\x08isinau\x95+penhagen\x95-ublin\x95/\xC2iu\tbraltar\x951ernsey\x953elsinki\x955s\xC2lt\ne_of_Man\x957anbul\x959ersey\x95;\xC3aiy\x0B\x16liningrad\x95=\xC2er\x03v\x95@ov\x95?iv\x95A\xC4ijou\x06\x0F\x15sbon\x95Cubljana\x95Endon\x95Gxembourg\x95I\xC3aio\x17\x1C\xC3dlr\x05\trid\x95Kta\x95Miehamn\x95Onsk\x95Q\xC2ns\x05aco\x95Scow\x95Uicosia\x93nslo\x95W\xC3aor\x05\x0Eris\x95Ydgorica\x95[ague\x95]\xC2io\x04ga\x95_me\x95a\xC5aikot\",27\xC3mnr\x05\x0Eara\x95c_Marino\x95ea\xC2jt\x05evo\x95gov\x95imferopol\x95kopje\x95mfia\x95oockholm\x95q\xC2ai\x07llinn\x95sra\xC2ns\x03e\x95upol\x95*\xC2lz\tyanovsk\x95whgorod\x95@\xC3aio\x0E\x1D\xC2dt\x04uz\x95yican\x95{\xC2el\x05nna\x95}nius\x95\x7Flgograd\x96\x01arsaw\x96\x03\xC2au\x12\xC2gp\x05reb\x96\x05orozhye\x95@rich\x96\x07ndian/\xC5ACKMR\r/9Zntananarivo\x96\t\xC2ho\x11\xC2ar\x05gos\x96\x0Bistmas\x96\r\xC2cm\x04os\x96\x0Foro\x96\x11erguelen\x96\x13a\xC4hluy\x03\n\x12e\x96\x15dives\x96\x17ritius\x96\x19otte\x96\x1Beunion\x96\x1Dexico/\xC2BG\x11aja\xC2NS\x06orte\x92hur\x92\neneral\x92\x12acific/\xE1qABCEFGHJKMNPRSTWY\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x10\x1D,F_\x85\x8E\x97\xBE\xD9\xF71;Ijw\xC2pu\x04ia\x96\x1Fckland\x96!ougainville\x96#h\xC2au\x06tham\x96%uk\x96'\xC3afn\x06\x0Bster\x96)ate\x96+derbury\x96<\xC3aiu\x07\x0Bkaofo\x96-ji\x96/nafuti\x961\xC2au\x12\xC2lm\x08apagos\x963bier\x965a\xC2dm\talcanal\x967\x969onolulu\x96;ohnston\x96:\xC4aiow\x06\x10\x16nton\x96=ritimati\x96?srae\x96Aajalein\x96C\xC2ai\x11\xC2jr\x05uro\x96Equesas\x96Gdway\x96I\xC3aio\x05\turu\x96Kue\x96M\xC2ru\x06folk\x96Omea\x96Q\xC3aio\x10\x18\xC2gl\x08o_Pago\x96Sau\x96Utcairn\x96W\xC3hnr\x06\x0Bnpei\x96Yape\x96Xt_Moresby\x96[arotonga\x96]a\xC2im\x05pan\x96_oa\x96R\xC3aor\x0E\x17\xC2hr\x05iti\x96aawa\x96cngatapu\x96euk\x96&a\xC2kl\x03e\x96glis\x96iap\x96&S/\xC8ACEHIMPS\x1B#7>Mao\xC2lr\x10\xC2ae\x05ska\x90Zutian\x90Xizona\x924entral\x91\x1East\xC2-e\tIndiana\x91Xrn\x92 awaii\x96:ndiana-Starke\x91Z\xC2io\x08chigan\x914untain\x912acific\x91z-New\x91zamoa\x96R") } }, bcp47_ids: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"ciabj\0\0\0ghacc\0\0\0etadd\0\0\0dzalg\0\0\0erasm\0\0\0mlbko\0\0\0cfbgf\0\0\0gmbjl\0\0\0gwoxb\0\0\0mwblz\0\0\0cgbzv\0\0\0bibjm\0\0\0egcai\0\0\0macas\0\0\0esceu\0\0\0gncky\0\0\0sndkr\0\0\0tzdar\0\0\0djjib\0\0\0cmdla\0\0\0eheai\0\0\0slfna\0\0\0bwgbe\0\0\0zwhre\0\0\0zajnb\0\0\0ssjub\0\0\0ugkla\0\0\0sdkrt\0\0\0rwkgl\0\0\0cdfih\0\0\0nglos\0\0\0galbv\0\0\0tglfw\0\0\0aolad\0\0\0cdfbm\0\0\0zmlun\0\0\0gqssg\0\0\0mzmpm\0\0\0lsmsu\0\0\0szqmn\0\0\0somgq\0\0\0lrmlw\0\0\0kenbo\0\0\0tdndj\0\0\0nenim\0\0\0mrnkc\0\0\0bfoua\0\0\0bjptn\0\0\0sttms\0\0\0lytip\0\0\0tntun\0\0\0nawdh\0\0\0usadk\0\0\0usanc\0\0\0aiaxa\0\0\0aganu\0\0\0braux\0\0\0arbue\0\0\0arctc\0\0\0arcor\0\0\0arjuj\0\0\0arirj\0\0\0armdz\0\0\0arrgl\0\0\0arsla\0\0\0aruaq\0\0\0arluq\0\0\0artuc\0\0\0arush\0\0\0awaua\0\0\0pyasu\0\0\0cayzs\0\0\0brssa\0\0\0mxpvr\0\0\0bbbgi\0\0\0brbel\0\0\0bzbze\0\0\0caybx\0\0\0brbvb\0\0\0cobog\0\0\0usboi\0\0\0caycb\0\0\0brcgr\0\0\0mxcun\0\0\0veccs\0\0\0gfcay\0\0\0kygec\0\0\0uschi\0\0\0mxchi\0\0\0mxcjs\0\0\0crsjo\0\0\0cacfq\0\0\0brcgb\0\0\0ancur\0\0\0gldkshvncayda\0\0\0caydq\0\0\0usden\0\0\0usdet\0\0\0dmdom\0\0\0caedm\0\0\0brern\0\0\0svsal\0\0\0cafne\0\0\0brfor\0\0\0caglb\0\0\0cagoo\0\0\0tcgdt\0\0\0gdgnd\0\0\0gpbbr\0\0\0gtgua\0\0\0ecgye\0\0\0gygeo\0\0\0cahal\0\0\0cuhav\0\0\0mxhmo\0\0\0usind\0\0\0usknx\0\0\0usaeg\0\0\0uswsq\0\0\0ustel\0\0\0usinvev\0usoea\0\0\0uswlz\0\0\0cayev\0\0\0caiql\0\0\0jmkin\0\0\0usjnu\0\0\0uslui\0\0\0usmoc\0\0\0bqkra\0\0\0bolpb\0\0\0pelim\0\0\0uslax\0\0\0sxphi\0\0\0brmcz\0\0\0nimga\0\0\0brmao\0\0\0gpmsb\0\0\0mqfdf\0\0\0mxmam\0\0\0mxmzt\0\0\0usmnm\0\0\0mxmid\0\0\0usmtm\0\0\0mxmex\0\0\0pmmqc\0\0\0camon\0\0\0mxmty\0\0\0uymvd\0\0\0msmni\0\0\0bsnas\0\0\0usnyc\0\0\0usome\0\0\0brfen\0\0\0usxul\0\0\0usndcnt\0usndnsl\0glgoh\0\0\0mxoji\0\0\0papty\0\0\0srpbm\0\0\0usphx\0\0\0htpap\0\0\0ttpos\0\0\0brpvh\0\0\0prsju\0\0\0clpuq\0\0\0cayek\0\0\0brrec\0\0\0careg\0\0\0careb\0\0\0brrbr\0\0\0brstm\0\0\0clscl\0\0\0dosdq\0\0\0brsao\0\0\0globy\0\0\0ussit\0\0\0gpsbh\0\0\0casjf\0\0\0knbas\0\0\0lccas\0\0\0vistt\0\0\0vcsvd\0\0\0cayyn\0\0\0hntgu\0\0\0glthu\0\0\0mxtij\0\0\0cator\0\0\0vgtov\0\0\0cavan\0\0\0cayxy\0\0\0cawnp\0\0\0usyak\0\0\0aqcas\0\0\0aqdav\0\0\0aqddu\0\0\0aumqi\0\0\0aqmaw\0\0\0aqmcm\0\0\0aqplm\0\0\0aqrot\0\0\0aqsyw\0\0\0aqtrl\0\0\0aqvos\0\0\0sjlyr\0\0\0yeade\0\0\0kzala\0\0\0joamm\0\0\0rudyr\0\0\0kzaau\0\0\0kzakx\0\0\0tmasb\0\0\0kzguw\0\0\0iqbgw\0\0\0bhbah\0\0\0azbak\0\0\0thbkk\0\0\0rubax\0\0\0lbbey\0\0\0kgfru\0\0\0bnbwn\0\0\0ruchita\0lkcmb\0\0\0sydam\0\0\0bddac\0\0\0tldil\0\0\0aedxb\0\0\0tjdyu\0\0\0cyfmg\0\0\0gazastrphebron\0\0vnsgn\0\0\0hkhkg\0\0\0mnhvd\0\0\0ruikt\0\0\0idjkt\0\0\0iddjj\0\0\0jeruslm\0afkbl\0\0\0rupkc\0\0\0pkkhi\0\0\0npktm\0\0\0rukhndg\0inccu\0\0\0rukra\0\0\0mykul\0\0\0mykch\0\0\0kwkwi\0\0\0momfm\0\0\0rugdx\0\0\0idmak\0\0\0phmnl\0\0\0ommct\0\0\0cynic\0\0\0runoz\0\0\0ruovb\0\0\0ruoms\0\0\0kzura\0\0\0khpnh\0\0\0idpnk\0\0\0kpfnj\0\0\0qadoh\0\0\0kzksn\0\0\0kzkzo\0\0\0saruh\0\0\0ruuus\0\0\0uzskd\0\0\0krsel\0\0\0cnsha\0\0\0sgsin\0\0\0rusred\0\0twtpe\0\0\0uztas\0\0\0getbs\0\0\0irthr\0\0\0btthi\0\0\0jptyo\0\0\0rutof\0\0\0mnuln\0\0\0cnurc\0\0\0ruunera\0lavte\0\0\0ruvvo\0\0\0ruyks\0\0\0mmrgn\0\0\0ruyek\0\0\0amevn\0\0\0ptpdl\0\0\0bmbda\0\0\0eslpa\0\0\0cvrai\0\0\0fotho\0\0\0ptfnc\0\0\0isrey\0\0\0gsgrv\0\0\0shshn\0\0\0fkpsy\0\0\0auadl\0\0\0aubne\0\0\0aubhq\0\0\0audrw\0\0\0aueuc\0\0\0auhba\0\0\0auldc\0\0\0auldh\0\0\0aumel\0\0\0auper\0\0\0ausyd\0\0\0gmt\0\0\0\0\0utcw01\0\0utcw10\0\0utcw11\0\0utcw12\0\0utcw02\0\0utcw03\0\0utcw04\0\0utcw05\0\0utcw06\0\0utcw07\0\0utcw08\0\0utcw09\0\0utce01\0\0utce10\0\0utce11\0\0utce12\0\0utce13\0\0utce14\0\0utce02\0\0utce03\0\0utce04\0\0utce05\0\0utce06\0\0utce07\0\0utce08\0\0utce09\0\0utc\0\0\0\0\0nlams\0\0\0adalv\0\0\0ruasf\0\0\0grath\0\0\0rsbeg\0\0\0deber\0\0\0skbts\0\0\0bebru\0\0\0robuh\0\0\0hubud\0\0\0debsngn\0mdkiv\0\0\0dkcph\0\0\0iedub\0\0\0gigib\0\0\0gggci\0\0\0fihel\0\0\0imdgs\0\0\0trist\0\0\0jesth\0\0\0rukgd\0\0\0rukvx\0\0\0uaiev\0\0\0ptlis\0\0\0silju\0\0\0gblon\0\0\0lulux\0\0\0esmad\0\0\0mtmla\0\0\0fimhq\0\0\0bymsq\0\0\0mcmon\0\0\0rumow\0\0\0noosl\0\0\0frpar\0\0\0metgd\0\0\0czprg\0\0\0lvrix\0\0\0itrom\0\0\0rukuf\0\0\0smsai\0\0\0basjj\0\0\0rurtw\0\0\0uasip\0\0\0mkskp\0\0\0bgsof\0\0\0sesto\0\0\0eetll\0\0\0altia\0\0\0ruuly\0\0\0livdz\0\0\0vavat\0\0\0atvie\0\0\0ltvno\0\0\0ruvog\0\0\0plwaw\0\0\0hrzag\0\0\0chzrh\0\0\0mgtnr\0\0\0iodga\0\0\0cxxch\0\0\0cccck\0\0\0kmyva\0\0\0tfpfr\0\0\0scmaw\0\0\0mvmle\0\0\0muplu\0\0\0ytmam\0\0\0rereu\0\0\0wsapw\0\0\0nzakl\0\0\0pgraw\0\0\0nzcht\0\0\0fmtkk\0\0\0clipc\0\0\0vuvli\0\0\0tkfko\0\0\0fjsuv\0\0\0tvfun\0\0\0ecgps\0\0\0pfgmr\0\0\0sbhir\0\0\0gugum\0\0\0ushnl\0\0\0kipho\0\0\0kicxi\0\0\0fmksa\0\0\0mhkwa\0\0\0mhmaj\0\0\0pfnhv\0\0\0ummdy\0\0\0nrinu\0\0\0nuiue\0\0\0nfnlk\0\0\0ncnou\0\0\0asppg\0\0\0pwror\0\0\0pnpcn\0\0\0fmpni\0\0\0pgpom\0\0\0ckrar\0\0\0mpspn\0\0\0pfppt\0\0\0kitrw\0\0\0totbu\0\0\0umawk\0\0\0wfmau\0\0\0") } };
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM: u64 = 4903793488535745989u64;
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DataProvider<icu::time::provider::iana::TimeZoneIanaMapV1> for $provider {
-            fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu::time::provider::iana::TimeZoneIanaMapV1>, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_TIME_ZONE_IANA_MAP_V1), metadata: icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM) })
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaMapV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , ITER) => {
-        __impl_time_zone_iana_map_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::iana::TimeZoneIanaMapV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-    ($ provider : ty , DRY) => {
-        __impl_time_zone_iana_map_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::iana::TimeZoneIanaMapV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM))
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaMapV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , DRY , ITER) => {
-        __impl_time_zone_iana_map_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::iana::TimeZoneIanaMapV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_MAP_V1_CHECKSUM))
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaMapV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::iana::TimeZoneIanaMapV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-}
-#[doc(inline)]
-pub use __impl_time_zone_iana_map_v1 as impl_time_zone_iana_map_v1;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_names_v1.rs.data b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_names_v1.rs.data
deleted file mode 100644
index 36583542..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_iana_names_v1.rs.data
+++ /dev/null
@@ -1,77 +0,0 @@
-// @generated
-/// Implement `DataProvider<TimeZoneIanaNamesV1>` on the given struct using the data
-/// hardcoded in this file. This allows the struct to be used with
-/// `icu`'s `_unstable` constructors.
-///
-/// Using this implementation will embed the following data in the binary's data segment:
-/// * 9738B[^1] for the singleton data struct
-///
-/// [^1]: these numbers can be smaller in practice due to linker deduplication
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_time_zone_iana_names_v1 {
-    ($ provider : ty) => {
-        #[clippy::msrv = "1.81"]
-        const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
-        #[clippy::msrv = "1.81"]
-        impl $provider {
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_IANA_NAMES_V1: &'static <icu::time::provider::iana::TimeZoneIanaNamesV1 as icu_provider::DynamicDataMarker>::DataStruct = &icu::time::provider::iana::IanaNames { normalized_iana_ids: unsafe { zerovec::vecs::VarZeroVec16::from_bytes_unchecked(b"V\x02\x0E\0\x1A\0,\0:\0G\0T\0a\0n\0{\0\x8A\0\x9C\0\xAC\0\xB8\0\xC9\0\xD5\0\xE3\0\xEF\0\x03\x01\x12\x01\x1F\x01.\x01=\x01L\x01Y\x01l\x01w\x01\x85\x01\x94\x01\xA1\x01\xB0\x01\xBC\x01\xCD\x01\xD8\x01\xE5\x01\xF6\x01\x03\x02\x10\x02\x1D\x02*\x028\x02H\x02W\x02e\x02t\x02\x81\x02\x92\x02\xA4\x02\xB5\x02\xC4\x02\xD2\x02\xDE\x02\xED\x02\xF9\x02\n\x03\x1A\x03)\x03:\x03X\x03s\x03\x8C\x03\xA3\x03\xBD\x03\xD6\x03\xF4\x03\x0B\x04%\x04?\x04X\x04q\x04~\x04\x8E\x04\x9E\x04\xAB\x04\xC1\x04\xD1\x04\xDE\x04\xEC\x04\0\x05\x11\x05\x1F\x05,\x05A\x05U\x05c\x05r\x05\x81\x05\x8F\x05\x9E\x05\xAF\x05\xC4\x05\xD6\x05\xE5\x05\xF3\x05\x02\x06\x16\x06$\x068\x06F\x06U\x06e\x06u\x06\x85\x06\x98\x06\xAB\x06\xBC\x06\xCD\x06\xDE\x06\xF0\x06\xFF\x06\x11\x07\"\x073\x07A\x07P\x07^\x07p\x07\x8C\x07\xA0\x07\xB7\x07\xD1\x07\xEA\x07\xFF\x07\x18\x08/\x08=\x08L\x08[\x08i\x08\x84\x08\x9F\x08\xB1\x08\xBF\x08\xCB\x08\xDE\x08\xF3\x08\x01\t\x10\t\x1E\t-\t?\tP\t`\tq\t\x7F\t\x91\t\xA4\t\xB4\t\xC3\t\xD4\t\xE6\t\xF8\t\x06\n\x16\n\"\n1\nL\ng\n\x85\n\x91\n\xA0\n\xAE\n\xC0\n\xCF\n\xE5\n\xFA\n\r\x0B \x0B4\x0BH\x0BV\x0Bd\x0Bt\x0B\x86\x0B\x96\x0B\xA6\x0B\xBB\x0B\xCC\x0B\xE0\x0B\xED\x0B\x02\x0C\x12\x0C\"\x0C2\x0CC\x0CU\x0Cj\x0C}\x0C\x8A\x0C\x99\x0C\xA8\x0C\xB7\x0C\xC8\x0C\xDA\x0C\xEA\x0C\xF9\x0C\t\r\x19\r2\rF\rW\ri\rz\r\x8C\r\x9C\r\xAC\r\xBD\r\xD0\r\xD9\r\xE4\r\xEE\r\xF9\r\x03\x0E\x0E\x0E\x1B\x0E&\x0E2\x0E>\x0EG\x0ES\x0E_\x0Ej\x0Ev\x0E\x81\x0E\x8B\x0E\x97\x0E\xA4\x0E\xAE\x0E\xB7\x0E\xC1\x0E\xCE\x0E\xDC\x0E\xE5\x0E\xF0\x0E\0\x0F\x0E\x0F\x17\x0F#\x0F/\x0F<\x0FJ\x0FT\x0Fb\x0Fn\x0F|\x0F\x89\x0F\x95\x0F\xA5\x0F\xB6\x0F\xC2\x0F\xCD\x0F\xD7\x0F\xE3\x0F\xF0\x0F\xFB\x0F\x06\x10\x12\x10#\x103\x10<\x10E\x10T\x10b\x10p\x10z\x10\x87\x10\x95\x10\xA0\x10\xAD\x10\xBB\x10\xC5\x10\xD2\x10\xE0\x10\xF2\x10\xFD\x10\n\x11\x16\x11!\x11-\x117\x11A\x11Q\x11\\\x11i\x11w\x11\x87\x11\x93\x11\x9E\x11\xB0\x11\xBC\x11\xCB\x11\xDB\x11\xEA\x11\xFD\x11\x0B\x12\x1B\x12-\x12C\x12U\x12e\x12w\x12\x89\x12\x9E\x12\xAE\x12\xBD\x12\xCD\x12\xDF\x12\xF2\x12\x05\x13\x14\x13$\x13+\x134\x13>\x13H\x13R\x13[\x13d\x13m\x13v\x13\x7F\x13\x88\x13\x91\x13\x9A\x13\xA3\x13\xAD\x13\xB7\x13\xC1\x13\xCB\x13\xD5\x13\xDE\x13\xE7\x13\xF0\x13\xF9\x13\x02\x14\x0B\x14\x14\x14\x1D\x14$\x144\x14B\x14R\x14_\x14n\x14{\x14\x8C\x14\x9B\x14\xAB\x14\xBA\x14\xC9\x14\xD8\x14\xE9\x14\xF6\x14\x06\x15\x15\x15$\x156\x15E\x15R\x15d\x15p\x15{\x15\x88\x15\x98\x15\xA5\x15\xB6\x15\xC3\x15\xCF\x15\xDF\x15\xEB\x15\xF8\x15\x05\x16\x10\x16\x1C\x16,\x169\x16D\x16O\x16\\\x16m\x16|\x16\x8A\x16\x9B\x16\xA8\x16\xB4\x16\xC4\x16\xD2\x16\xDF\x16\xEF\x16\xFB\x16\t\x17\x16\x17$\x174\x17A\x17N\x17[\x17n\x17{\x17\x8B\x17\x97\x17\xA4\x17\xB4\x17\xBF\x17\xCE\x17\xDE\x17\xEC\x17\xFA\x17\x06\x18\x16\x18*\x189\x18F\x18T\x18a\x18p\x18|\x18\x8C\x18\x9D\x18\xAC\x18\xBF\x18\xCB\x18\xDB\x18\xE9\x18\xFB\x18\t\x19\x1A\x19(\x199\x19G\x19T\x19`\x19o\x19}\x19\x8E\x19\x9B\x19\xAB\x19\xBA\x19\xCE\x19\xDF\x19\xED\x19\xFB\x19\t\x1A\x1A\x1A&\x1A4\x1AA\x1AP\x1Ap\x1A|\x1A\x90\x1A\xA1\x1A\xB6\x1A\xC5\x1A\xD5\x1A\xE7\x1A\xF6\x1A\n\x1B\x17\x1B&\x1B8\x1BG\x1BW\x1Bf\x1By\x1B\x8B\x1B\x9E\x1B\xAD\x1B\xC1\x1B\xD1\x1B\xE4\x1B\xF2\x1B\x05\x1C\x1A\x1C(\x1C5\x1CD\x1CR\x1C`\x1Cj\x1Cu\x1C\x82\x1C\x8E\x1C\x9B\x1C\xA5\x1C\xB1\x1C\xBC\x1C\xC9\x1C\xD4\x1C\xE6\x1C\xF5\x1C\x04\x1D\x16\x1D#\x1D5\x1DE\x1DR\x1Da\x1Dn\x1D\x82\x1D\x91\x1D\xA3\x1D\xB5\x1D\xC3\x1D\xD7\x1D\xE2\x1D\xF2\x1D\xFD\x1D\x08\x1E\x17\x1E%\x1E=\x1EK\x1EZ\x1Em\x1E{\x1E\x8E\x1E\x9A\x1E\x9D\x1E\xAE\x1E\xC0\x1E\xC7\x1E\xCB\x1E\xCE\x1E\xD3\x1E\xD7\x1E\xDA\x1E\xE1\x1E\xEA\x1E\xF3\x1E\xFB\x1E\x08\x1F\x0F\x1F\x1C\x1F$\x1F2\x1F=\x1FK\x1FZ\x1Fi\x1Fz\x1F|\x1F\x83\x1F\x86\x1F\x8B\x1F\x90\x1F\x94\x1F\x9D\x1F\xA5\x1F\xA8\x1F\xAF\x1F\xB3\x1F\xB9\x1F\xC0\x1F\xC5\x1F\xCE\x1F\xD3\x1F\xD6\x1F\xE6\x1F\xF4\x1F\x02 \x05 \x0C \x12 \x14 \x1B , < J W c n t | \x7F \x86 \x89 \x8C \x95 \x9B \x9E \xA7 \xB0 \xBB \xC5 \xCF \xDE \xE8 \xF1 \x02!\r!\x18!\"!0!8!;!?!B!Africa/AbidjanAfrica/AccraAfrica/Addis_AbabaAfrica/AlgiersAfrica/AsmaraAfrica/BamakoAfrica/BanguiAfrica/BanjulAfrica/BissauAfrica/BlantyreAfrica/BrazzavilleAfrica/BujumburaAfrica/CairoAfrica/CasablancaAfrica/CeutaAfrica/ConakryAfrica/DakarAfrica/Dar_es_SalaamAfrica/DjiboutiAfrica/DoualaAfrica/El_AaiunAfrica/FreetownAfrica/GaboroneAfrica/HarareAfrica/JohannesburgAfrica/JubaAfrica/KampalaAfrica/KhartoumAfrica/KigaliAfrica/KinshasaAfrica/LagosAfrica/LibrevilleAfrica/LomeAfrica/LuandaAfrica/LubumbashiAfrica/LusakaAfrica/MalaboAfrica/MaputoAfrica/MaseruAfrica/MbabaneAfrica/MogadishuAfrica/MonroviaAfrica/NairobiAfrica/NdjamenaAfrica/NiameyAfrica/NouakchottAfrica/OuagadougouAfrica/Porto-NovoAfrica/Sao_TomeAfrica/TripoliAfrica/TunisAfrica/WindhoekAmerica/AdakAmerica/AnchorageAmerica/AnguillaAmerica/AntiguaAmerica/AraguainaAmerica/Argentina/Buenos_AiresAmerica/Argentina/CatamarcaAmerica/Argentina/CordobaAmerica/Argentina/JujuyAmerica/Argentina/La_RiojaAmerica/Argentina/MendozaAmerica/Argentina/Rio_GallegosAmerica/Argentina/SaltaAmerica/Argentina/San_JuanAmerica/Argentina/San_LuisAmerica/Argentina/TucumanAmerica/Argentina/UshuaiaAmerica/ArubaAmerica/AsuncionAmerica/AtikokanAmerica/BahiaAmerica/Bahia_BanderasAmerica/BarbadosAmerica/BelemAmerica/BelizeAmerica/Blanc-SablonAmerica/Boa_VistaAmerica/BogotaAmerica/BoiseAmerica/Cambridge_BayAmerica/Campo_GrandeAmerica/CancunAmerica/CaracasAmerica/CayenneAmerica/CaymanAmerica/ChicagoAmerica/ChihuahuaAmerica/Ciudad_JuarezAmerica/Costa_RicaAmerica/CrestonAmerica/CuiabaAmerica/CuracaoAmerica/DanmarkshavnAmerica/DawsonAmerica/Dawson_CreekAmerica/DenverAmerica/DetroitAmerica/DominicaAmerica/EdmontonAmerica/EirunepeAmerica/El_SalvadorAmerica/Fort_NelsonAmerica/FortalezaAmerica/Glace_BayAmerica/Goose_BayAmerica/Grand_TurkAmerica/GrenadaAmerica/GuadeloupeAmerica/GuatemalaAmerica/GuayaquilAmerica/GuyanaAmerica/HalifaxAmerica/HavanaAmerica/HermosilloAmerica/Indiana/IndianapolisAmerica/Indiana/KnoxAmerica/Indiana/MarengoAmerica/Indiana/PetersburgAmerica/Indiana/Tell_CityAmerica/Indiana/VevayAmerica/Indiana/VincennesAmerica/Indiana/WinamacAmerica/InuvikAmerica/IqaluitAmerica/JamaicaAmerica/JuneauAmerica/Kentucky/LouisvilleAmerica/Kentucky/MonticelloAmerica/KralendijkAmerica/La_PazAmerica/LimaAmerica/Los_AngelesAmerica/Lower_PrincesAmerica/MaceioAmerica/ManaguaAmerica/ManausAmerica/MarigotAmerica/MartiniqueAmerica/MatamorosAmerica/MazatlanAmerica/MenomineeAmerica/MeridaAmerica/MetlakatlaAmerica/Mexico_CityAmerica/MiquelonAmerica/MonctonAmerica/MonterreyAmerica/MontevideoAmerica/MontserratAmerica/NassauAmerica/New_YorkAmerica/NomeAmerica/NoronhaAmerica/North_Dakota/BeulahAmerica/North_Dakota/CenterAmerica/North_Dakota/New_SalemAmerica/NuukAmerica/OjinagaAmerica/PanamaAmerica/ParamariboAmerica/PhoenixAmerica/Port-au-PrinceAmerica/Port_of_SpainAmerica/Porto_VelhoAmerica/Puerto_RicoAmerica/Punta_ArenasAmerica/Rankin_InletAmerica/RecifeAmerica/ReginaAmerica/ResoluteAmerica/Rio_BrancoAmerica/SantaremAmerica/SantiagoAmerica/Santo_DomingoAmerica/Sao_PauloAmerica/ScoresbysundAmerica/SitkaAmerica/St_BarthelemyAmerica/St_JohnsAmerica/St_KittsAmerica/St_LuciaAmerica/St_ThomasAmerica/St_VincentAmerica/Swift_CurrentAmerica/TegucigalpaAmerica/ThuleAmerica/TijuanaAmerica/TorontoAmerica/TortolaAmerica/VancouverAmerica/WhitehorseAmerica/WinnipegAmerica/YakutatAntarctica/CaseyAntarctica/DavisAntarctica/DumontDUrvilleAntarctica/MacquarieAntarctica/MawsonAntarctica/McMurdoAntarctica/PalmerAntarctica/RotheraAntarctica/SyowaAntarctica/TrollAntarctica/VostokArctic/LongyearbyenAsia/AdenAsia/AlmatyAsia/AmmanAsia/AnadyrAsia/AqtauAsia/AqtobeAsia/AshgabatAsia/AtyrauAsia/BaghdadAsia/BahrainAsia/BakuAsia/BangkokAsia/BarnaulAsia/BeirutAsia/BishkekAsia/BruneiAsia/ChitaAsia/ColomboAsia/DamascusAsia/DhakaAsia/DiliAsia/DubaiAsia/DushanbeAsia/FamagustaAsia/GazaAsia/HebronAsia/Ho_Chi_MinhAsia/Hong_KongAsia/HovdAsia/IrkutskAsia/JakartaAsia/JayapuraAsia/JerusalemAsia/KabulAsia/KamchatkaAsia/KarachiAsia/KathmanduAsia/KhandygaAsia/KolkataAsia/KrasnoyarskAsia/Kuala_LumpurAsia/KuchingAsia/KuwaitAsia/MacauAsia/MagadanAsia/MakassarAsia/ManilaAsia/MuscatAsia/NicosiaAsia/NovokuznetskAsia/NovosibirskAsia/OmskAsia/OralAsia/Phnom_PenhAsia/PontianakAsia/PyongyangAsia/QatarAsia/QostanayAsia/QyzylordaAsia/RiyadhAsia/SakhalinAsia/SamarkandAsia/SeoulAsia/ShanghaiAsia/SingaporeAsia/SrednekolymskAsia/TaipeiAsia/TashkentAsia/TbilisiAsia/TehranAsia/ThimphuAsia/TokyoAsia/TomskAsia/UlaanbaatarAsia/UrumqiAsia/Ust-NeraAsia/VientianeAsia/VladivostokAsia/YakutskAsia/YangonAsia/YekaterinburgAsia/YerevanAtlantic/AzoresAtlantic/BermudaAtlantic/CanaryAtlantic/Cape_VerdeAtlantic/FaroeAtlantic/MadeiraAtlantic/ReykjavikAtlantic/South_GeorgiaAtlantic/St_HelenaAtlantic/StanleyAustralia/AdelaideAustralia/BrisbaneAustralia/Broken_HillAustralia/DarwinAustralia/EuclaAustralia/HobartAustralia/LindemanAustralia/Lord_HoweAustralia/MelbourneAustralia/PerthAustralia/SydneyEtc/GMTEtc/GMT+1Etc/GMT+10Etc/GMT+11Etc/GMT+12Etc/GMT+2Etc/GMT+3Etc/GMT+4Etc/GMT+5Etc/GMT+6Etc/GMT+7Etc/GMT+8Etc/GMT+9Etc/GMT-1Etc/GMT-10Etc/GMT-11Etc/GMT-12Etc/GMT-13Etc/GMT-14Etc/GMT-2Etc/GMT-3Etc/GMT-4Etc/GMT-5Etc/GMT-6Etc/GMT-7Etc/GMT-8Etc/GMT-9Etc/UTCEurope/AmsterdamEurope/AndorraEurope/AstrakhanEurope/AthensEurope/BelgradeEurope/BerlinEurope/BratislavaEurope/BrusselsEurope/BucharestEurope/BudapestEurope/BusingenEurope/ChisinauEurope/CopenhagenEurope/DublinEurope/GibraltarEurope/GuernseyEurope/HelsinkiEurope/Isle_of_ManEurope/IstanbulEurope/JerseyEurope/KaliningradEurope/KirovEurope/KyivEurope/LisbonEurope/LjubljanaEurope/LondonEurope/LuxembourgEurope/MadridEurope/MaltaEurope/MariehamnEurope/MinskEurope/MonacoEurope/MoscowEurope/OsloEurope/ParisEurope/PodgoricaEurope/PragueEurope/RigaEurope/RomeEurope/SamaraEurope/San_MarinoEurope/SarajevoEurope/SaratovEurope/SimferopolEurope/SkopjeEurope/SofiaEurope/StockholmEurope/TallinnEurope/TiraneEurope/UlyanovskEurope/VaduzEurope/VaticanEurope/ViennaEurope/VilniusEurope/VolgogradEurope/WarsawEurope/ZagrebEurope/ZurichIndian/AntananarivoIndian/ChagosIndian/ChristmasIndian/CocosIndian/ComoroIndian/KerguelenIndian/MaheIndian/MaldivesIndian/MauritiusIndian/MayotteIndian/ReunionPacific/ApiaPacific/AucklandPacific/BougainvillePacific/ChathamPacific/ChuukPacific/EasterPacific/EfatePacific/FakaofoPacific/FijiPacific/FunafutiPacific/GalapagosPacific/GambierPacific/GuadalcanalPacific/GuamPacific/HonoluluPacific/KantonPacific/KiritimatiPacific/KosraePacific/KwajaleinPacific/MajuroPacific/MarquesasPacific/MidwayPacific/NauruPacific/NiuePacific/NorfolkPacific/NoumeaPacific/Pago_PagoPacific/PalauPacific/PitcairnPacific/PohnpeiPacific/Port_MoresbyPacific/RarotongaPacific/SaipanPacific/TahitiPacific/TarawaPacific/TongatapuPacific/WakePacific/WallisAfrica/AsmeraAfrica/TimbuktuAmerica/Argentina/ComodRivadaviaAmerica/AtkaAmerica/Buenos_AiresAmerica/CatamarcaAmerica/Coral_HarbourAmerica/CordobaAmerica/EnsenadaAmerica/Fort_WayneAmerica/GodthabAmerica/IndianapolisAmerica/JujuyAmerica/Knox_INAmerica/LouisvilleAmerica/MendozaAmerica/MontrealAmerica/NipigonAmerica/PangnirtungAmerica/Porto_AcreAmerica/Rainy_RiverAmerica/RosarioAmerica/Santa_IsabelAmerica/ShiprockAmerica/Thunder_BayAmerica/VirginAmerica/YellowknifeAntarctica/South_PoleAsia/AshkhabadAsia/CalcuttaAsia/ChoibalsanAsia/ChongqingAsia/ChungkingAsia/DaccaAsia/HarbinAsia/IstanbulAsia/KashgarAsia/KatmanduAsia/MacaoAsia/RangoonAsia/SaigonAsia/Tel_AvivAsia/ThimbuAsia/Ujung_PandangAsia/Ulan_BatorAtlantic/FaeroeAtlantic/Jan_MayenAustralia/ACTAustralia/CanberraAustralia/CurrieAustralia/LHIAustralia/NorthAustralia/NSWAustralia/QueenslandAustralia/SouthAustralia/TasmaniaAustralia/VictoriaAustralia/WestAustralia/YancowinnaBrazil/AcreBrazil/DeNoronhaBrazil/EastBrazil/WestCanada/AtlanticCanada/CentralCanada/East-SaskatchewanCanada/EasternCanada/MountainCanada/NewfoundlandCanada/PacificCanada/SaskatchewanCanada/YukonCETChile/ContinentalChile/EasterIslandCST6CDTCubaEETEgyptEireESTEST5EDTEtc/GMT+0Etc/GMT-0Etc/GMT0Etc/GreenwichEtc/UCTEtc/UniversalEtc/ZuluEurope/BelfastEurope/KievEurope/NicosiaEurope/TiraspolEurope/UzhgorodEurope/ZaporozhyeGBGB-EireGMTGMT+0GMT-0GMT0GreenwichHongkongHSTIcelandIranIsraelJamaicaJapanKwajaleinLibyaMETMexico/BajaNorteMexico/BajaSurMexico/GeneralMSTMST7MDTNavajoNZNZ-CHATPacific/EnderburyPacific/JohnstonPacific/PonapePacific/SamoaPacific/TrukPacific/YapPolandPortugalPRCPST8PDTROCROKSingaporeTurkeyUCTUniversalUS/AlaskaUS/AleutianUS/ArizonaUS/CentralUS/East-IndianaUS/EasternUS/HawaiiUS/Indiana-StarkeUS/MichiganUS/MountainUS/PacificUS/Pacific-NewUS/SamoaUTCW-SUWETZulu") } };
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM: u64 = 4903793488535745989u64;
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DataProvider<icu::time::provider::iana::TimeZoneIanaNamesV1> for $provider {
-            fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu::time::provider::iana::TimeZoneIanaNamesV1>, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_TIME_ZONE_IANA_NAMES_V1), metadata: icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM) })
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaNamesV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , ITER) => {
-        __impl_time_zone_iana_names_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::iana::TimeZoneIanaNamesV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-    ($ provider : ty , DRY) => {
-        __impl_time_zone_iana_names_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::iana::TimeZoneIanaNamesV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM))
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaNamesV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , DRY , ITER) => {
-        __impl_time_zone_iana_names_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::iana::TimeZoneIanaNamesV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default().with_checksum(Self::SINGLETON_TIME_ZONE_IANA_NAMES_V1_CHECKSUM))
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::iana::TimeZoneIanaNamesV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::iana::TimeZoneIanaNamesV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-}
-#[doc(inline)]
-pub use __impl_time_zone_iana_names_v1 as impl_time_zone_iana_names_v1;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_offsets_v1.rs.data b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_offsets_v1.rs.data
deleted file mode 100644
index bd16dcc0..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_offsets_v1.rs.data
+++ /dev/null
@@ -1,78 +0,0 @@
-// @generated
-/// Implement `DataProvider<TimeZoneOffsetsV1>` on the given struct using the data
-/// hardcoded in this file. This allows the struct to be used with
-/// `icu`'s `_unstable` constructors.
-///
-/// Using this implementation will embed the following data in the binary's data segment:
-/// * 13410B[^1] for the singleton data struct
-///
-/// [^1]: these numbers can be smaller in practice due to linker deduplication
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_time_zone_offsets_v1 {
-    ($ provider : ty) => {
-        #[clippy::msrv = "1.81"]
-        const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
-        #[clippy::msrv = "1.81"]
-        impl $provider {
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_OFFSETS_V1: &'static <icu::time::provider::TimeZoneOffsetsV1 as icu_provider::DynamicDataMarker>::DataStruct = &unsafe {
-                #[allow(unused_unsafe)]
-                zerovec::ZeroMap2d::from_parts_unchecked(unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"adalv\0\0\0aedxb\0\0\0afkbl\0\0\0aganu\0\0\0aiaxa\0\0\0altia\0\0\0amevn\0\0\0ancur\0\0\0aolad\0\0\0aqcas\0\0\0aqdav\0\0\0aqddu\0\0\0aqmaw\0\0\0aqmcm\0\0\0aqplm\0\0\0aqrot\0\0\0aqsyw\0\0\0aqtrl\0\0\0aqvos\0\0\0arbue\0\0\0arcor\0\0\0arctc\0\0\0arirj\0\0\0arjuj\0\0\0arluq\0\0\0armdz\0\0\0arrgl\0\0\0arsla\0\0\0artuc\0\0\0aruaq\0\0\0arush\0\0\0asppg\0\0\0atvie\0\0\0auadl\0\0\0aubhq\0\0\0aubne\0\0\0audrw\0\0\0aueuc\0\0\0auhba\0\0\0auldc\0\0\0auldh\0\0\0aumel\0\0\0aumqi\0\0\0auper\0\0\0ausyd\0\0\0awaua\0\0\0azbak\0\0\0basjj\0\0\0bbbgi\0\0\0bddac\0\0\0bebru\0\0\0bfoua\0\0\0bgsof\0\0\0bhbah\0\0\0bibjm\0\0\0bjptn\0\0\0bmbda\0\0\0bnbwn\0\0\0bolpb\0\0\0bqkra\0\0\0braux\0\0\0brbel\0\0\0brbvb\0\0\0brcgb\0\0\0brcgr\0\0\0brern\0\0\0brfen\0\0\0brfor\0\0\0brmao\0\0\0brmcz\0\0\0brpvh\0\0\0brrbr\0\0\0brrec\0\0\0brsao\0\0\0brssa\0\0\0brstm\0\0\0bsnas\0\0\0btthi\0\0\0bwgbe\0\0\0bymsq\0\0\0bzbze\0\0\0cacfq\0\0\0caedm\0\0\0cafne\0\0\0caglb\0\0\0cagoo\0\0\0cahal\0\0\0caiql\0\0\0camon\0\0\0careb\0\0\0careg\0\0\0casjf\0\0\0cator\0\0\0cavan\0\0\0cawnp\0\0\0caybx\0\0\0caycb\0\0\0cayda\0\0\0caydq\0\0\0cayek\0\0\0cayev\0\0\0cayxy\0\0\0cayyn\0\0\0cayzs\0\0\0cccck\0\0\0cdfbm\0\0\0cdfih\0\0\0cfbgf\0\0\0cgbzv\0\0\0chzrh\0\0\0ciabj\0\0\0ckrar\0\0\0clipc\0\0\0clpuq\0\0\0clscl\0\0\0cmdla\0\0\0cnsha\0\0\0cnurc\0\0\0cobog\0\0\0crsjo\0\0\0cuhav\0\0\0cvrai\0\0\0cxxch\0\0\0cyfmg\0\0\0cynic\0\0\0czprg\0\0\0deber\0\0\0debsngn\0djjib\0\0\0dkcph\0\0\0dmdom\0\0\0dosdq\0\0\0dzalg\0\0\0ecgps\0\0\0ecgye\0\0\0eetll\0\0\0egcai\0\0\0eheai\0\0\0erasm\0\0\0esceu\0\0\0eslpa\0\0\0esmad\0\0\0etadd\0\0\0fihel\0\0\0fimhq\0\0\0fjsuv\0\0\0fkpsy\0\0\0fmksa\0\0\0fmpni\0\0\0fmtkk\0\0\0fotho\0\0\0frpar\0\0\0galbv\0\0\0gazastrpgblon\0\0\0gdgnd\0\0\0getbs\0\0\0gfcay\0\0\0gggci\0\0\0ghacc\0\0\0gigib\0\0\0gldkshvnglgoh\0\0\0globy\0\0\0glthu\0\0\0gmbjl\0\0\0gmt\0\0\0\0\0gncky\0\0\0gpbbr\0\0\0gpmsb\0\0\0gpsbh\0\0\0gqssg\0\0\0grath\0\0\0gsgrv\0\0\0gtgua\0\0\0gugum\0\0\0gwoxb\0\0\0gygeo\0\0\0hebron\0\0hkhkg\0\0\0hntgu\0\0\0hrzag\0\0\0htpap\0\0\0hubud\0\0\0iddjj\0\0\0idjkt\0\0\0idmak\0\0\0idpnk\0\0\0iedub\0\0\0imdgs\0\0\0inccu\0\0\0iodga\0\0\0iqbgw\0\0\0irthr\0\0\0isrey\0\0\0itrom\0\0\0jeruslm\0jesth\0\0\0jmkin\0\0\0joamm\0\0\0jptyo\0\0\0kenbo\0\0\0kgfru\0\0\0khpnh\0\0\0kicxi\0\0\0kipho\0\0\0kitrw\0\0\0kmyva\0\0\0knbas\0\0\0kpfnj\0\0\0krsel\0\0\0kwkwi\0\0\0kygec\0\0\0kzaau\0\0\0kzakx\0\0\0kzala\0\0\0kzguw\0\0\0kzksn\0\0\0kzkzo\0\0\0kzura\0\0\0lavte\0\0\0lbbey\0\0\0lccas\0\0\0livdz\0\0\0lkcmb\0\0\0lrmlw\0\0\0lsmsu\0\0\0ltvno\0\0\0lulux\0\0\0lvrix\0\0\0lytip\0\0\0macas\0\0\0mcmon\0\0\0mdkiv\0\0\0metgd\0\0\0mgtnr\0\0\0mhkwa\0\0\0mhmaj\0\0\0mkskp\0\0\0mlbko\0\0\0mmrgn\0\0\0mnhvd\0\0\0mnuln\0\0\0momfm\0\0\0mpspn\0\0\0mqfdf\0\0\0mrnkc\0\0\0msmni\0\0\0mtmla\0\0\0muplu\0\0\0mvmle\0\0\0mwblz\0\0\0mxchi\0\0\0mxcjs\0\0\0mxcun\0\0\0mxhmo\0\0\0mxmam\0\0\0mxmex\0\0\0mxmid\0\0\0mxmty\0\0\0mxmzt\0\0\0mxoji\0\0\0mxpvr\0\0\0mxtij\0\0\0mykch\0\0\0mykul\0\0\0mzmpm\0\0\0nawdh\0\0\0ncnou\0\0\0nenim\0\0\0nfnlk\0\0\0nglos\0\0\0nimga\0\0\0nlams\0\0\0noosl\0\0\0npktm\0\0\0nrinu\0\0\0nuiue\0\0\0nzakl\0\0\0nzcht\0\0\0ommct\0\0\0papty\0\0\0pelim\0\0\0pfgmr\0\0\0pfnhv\0\0\0pfppt\0\0\0pgpom\0\0\0pgraw\0\0\0phmnl\0\0\0pkkhi\0\0\0plwaw\0\0\0pmmqc\0\0\0pnpcn\0\0\0prsju\0\0\0ptfnc\0\0\0ptlis\0\0\0ptpdl\0\0\0pwror\0\0\0pyasu\0\0\0qadoh\0\0\0rereu\0\0\0robuh\0\0\0rsbeg\0\0\0ruasf\0\0\0rubax\0\0\0ruchita\0rudyr\0\0\0rugdx\0\0\0ruikt\0\0\0rukgd\0\0\0rukhndg\0rukra\0\0\0rukuf\0\0\0rukvx\0\0\0rumow\0\0\0runoz\0\0\0ruoms\0\0\0ruovb\0\0\0rupkc\0\0\0rurtw\0\0\0rusred\0\0rutof\0\0\0ruuly\0\0\0ruunera\0ruuus\0\0\0ruvog\0\0\0ruvvo\0\0\0ruyek\0\0\0ruyks\0\0\0rwkgl\0\0\0saruh\0\0\0sbhir\0\0\0scmaw\0\0\0sdkrt\0\0\0sesto\0\0\0sgsin\0\0\0shshn\0\0\0silju\0\0\0sjlyr\0\0\0skbts\0\0\0slfna\0\0\0smsai\0\0\0sndkr\0\0\0somgq\0\0\0srpbm\0\0\0ssjub\0\0\0sttms\0\0\0svsal\0\0\0sxphi\0\0\0sydam\0\0\0szqmn\0\0\0tcgdt\0\0\0tdndj\0\0\0tfpfr\0\0\0tglfw\0\0\0thbkk\0\0\0tjdyu\0\0\0tkfko\0\0\0tldil\0\0\0tmasb\0\0\0tntun\0\0\0totbu\0\0\0trist\0\0\0ttpos\0\0\0tvfun\0\0\0twtpe\0\0\0tzdar\0\0\0uaiev\0\0\0uasip\0\0\0ugkla\0\0\0umawk\0\0\0ummdy\0\0\0usadk\0\0\0usaeg\0\0\0usanc\0\0\0usboi\0\0\0uschi\0\0\0usden\0\0\0usdet\0\0\0ushnl\0\0\0usind\0\0\0usinvev\0usjnu\0\0\0usknx\0\0\0uslax\0\0\0uslui\0\0\0usmnm\0\0\0usmoc\0\0\0usmtm\0\0\0usndcnt\0usndnsl\0usnyc\0\0\0usoea\0\0\0usome\0\0\0usphx\0\0\0ussit\0\0\0ustel\0\0\0uswlz\0\0\0uswsq\0\0\0usxul\0\0\0usyak\0\0\0utc\0\0\0\0\0utce01\0\0utce02\0\0utce03\0\0utce04\0\0utce05\0\0utce06\0\0utce07\0\0utce08\0\0utce09\0\0utce10\0\0utce11\0\0utce12\0\0utce13\0\0utce14\0\0utcw01\0\0utcw02\0\0utcw03\0\0utcw04\0\0utcw05\0\0utcw06\0\0utcw07\0\0utcw08\0\0utcw09\0\0utcw10\0\0utcw11\0\0utcw12\0\0uymvd\0\0\0uzskd\0\0\0uztas\0\0\0vavat\0\0\0vcsvd\0\0\0veccs\0\0\0vgtov\0\0\0vistt\0\0\0vnsgn\0\0\0vuvli\0\0\0wfmau\0\0\0wsapw\0\0\0yeade\0\0\0ytmam\0\0\0zajnb\0\0\0zmlun\0\0\0zwhre\0\0\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x02\0\0\0\x03\0\0\0\x04\0\0\0\x05\0\0\0\x06\0\0\0\t\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0#\0\0\0(\0\0\0)\0\0\0+\0\0\0,\0\0\x001\0\0\x003\0\0\x004\0\0\x006\0\0\0:\0\0\0@\0\0\0H\0\0\0R\0\0\0\\\0\0\0f\0\0\0t\0\0\0\x82\0\0\0\x8A\0\0\0\x92\0\0\0\x9C\0\0\0\xA6\0\0\0\xAE\0\0\0\xAF\0\0\0\xB2\0\0\0\xB4\0\0\0\xB8\0\0\0\xBB\0\0\0\xBC\0\0\0\xBE\0\0\0\xBF\0\0\0\xC4\0\0\0\xC8\0\0\0\xCA\0\0\0\xCB\0\0\0\xCD\0\0\0\xCF\0\0\0\xD0\0\0\0\xD6\0\0\0\xD8\0\0\0\xDA\0\0\0\xDD\0\0\0\xDF\0\0\0\xE0\0\0\0\xE4\0\0\0\xE6\0\0\0\xE7\0\0\0\xE8\0\0\0\xEA\0\0\0\xEB\0\0\0\xEC\0\0\0\xED\0\0\0\xF3\0\0\0\xF5\0\0\0\xF9\0\0\0\xFD\0\0\0\xFF\0\0\0\x05\x01\0\0\x0B\x01\0\0\x11\x01\0\0\x15\x01\0\0\x1D\x01\0\0\x1F\x01\0\0#\x01\0\0)\x01\0\0+\x01\0\0/\x01\0\x002\x01\0\x005\x01\0\x007\x01\0\08\x01\0\0>\x01\0\0@\x01\0\0A\x01\0\0D\x01\0\0H\x01\0\0L\x01\0\0Q\x01\0\0T\x01\0\0W\x01\0\0\\\x01\0\0b\x01\0\0c\x01\0\0h\x01\0\0k\x01\0\0n\x01\0\0q\x01\0\0r\x01\0\0w\x01\0\0{\x01\0\0}\x01\0\0\x80\x01\0\0\x84\x01\0\0\x87\x01\0\0\x89\x01\0\0\x8A\x01\0\0\x8B\x01\0\0\x8C\x01\0\0\x8D\x01\0\0\x8E\x01\0\0\x8F\x01\0\0\x91\x01\0\0\x92\x01\0\0\x95\x01\0\0\x97\x01\0\0\x9A\x01\0\0\x9B\x01\0\0\x9C\x01\0\0\x9E\x01\0\0\x9F\x01\0\0\xA1\x01\0\0\xA3\x01\0\0\xA4\x01\0\0\xA6\x01\0\0\xA7\x01\0\0\xAC\x01\0\0\xAF\x01\0\0\xB1\x01\0\0\xB3\x01\0\0\xB5\x01\0\0\xB6\x01\0\0\xB8\x01\0\0\xB9\x01\0\0\xBE\x01\0\0\xC5\x01\0\0\xC8\x01\0\0\xCA\x01\0\0\xCF\x01\0\0\xD0\x01\0\0\xD5\x01\0\0\xD6\x01\0\0\xDA\x01\0\0\xDC\x01\0\0\xDF\x01\0\0\xE0\x01\0\0\xE3\x01\0\0\xE6\x01\0\0\xE8\x01\0\0\xED\x01\0\0\xEF\x01\0\0\xF0\x01\0\0\xF1\x01\0\0\xF3\x01\0\0\xF6\x01\0\0\xF7\x01\0\0\0\x02\0\0\x04\x02\0\0\x05\x02\0\0\n\x02\0\0\x0B\x02\0\0\x0F\x02\0\0\x10\x02\0\0\x12\x02\0\0\x15\x02\0\0\x19\x02\0\0\x1E\x02\0\0\x1F\x02\0\0 \x02\0\0!\x02\0\0\"\x02\0\0#\x02\0\0$\x02\0\0%\x02\0\0&\x02\0\0)\x02\0\0*\x02\0\0,\x02\0\0.\x02\0\x000\x02\0\x003\x02\0\08\x02\0\0:\x02\0\0<\x02\0\0>\x02\0\0?\x02\0\0B\x02\0\0C\x02\0\0D\x02\0\0E\x02\0\0G\x02\0\0K\x02\0\0O\x02\0\0P\x02\0\0R\x02\0\0U\x02\0\0Z\x02\0\0[\x02\0\0^\x02\0\0_\x02\0\0c\x02\0\0f\x02\0\0i\x02\0\0j\x02\0\0k\x02\0\0p\x02\0\0q\x02\0\0t\x02\0\0w\x02\0\0x\x02\0\0y\x02\0\0z\x02\0\0}\x02\0\0\x7F\x02\0\0\x80\x02\0\0\x81\x02\0\0\x88\x02\0\0\x90\x02\0\0\x96\x02\0\0\x9D\x02\0\0\xA6\x02\0\0\xB0\x02\0\0\xB8\x02\0\0\xB9\x02\0\0\xBA\x02\0\0\xBB\x02\0\0\xBD\x02\0\0\xC1\x02\0\0\xC3\x02\0\0\xC4\x02\0\0\xCA\x02\0\0\xCC\x02\0\0\xD3\x02\0\0\xDB\x02\0\0\xE2\x02\0\0\xE5\x02\0\0\xE9\x02\0\0\xEB\x02\0\0\xEC\x02\0\0\xEE\x02\0\0\xEF\x02\0\0\xF1\x02\0\0\xF2\x02\0\0\xF3\x02\0\0\xF6\x02\0\0\xF9\x02\0\0\xFB\x02\0\0\xFD\x02\0\0\0\x03\0\0\x01\x03\0\0\x02\x03\0\0\x07\x03\0\0\t\x03\0\0\n\x03\0\0\x0B\x03\0\0\x10\x03\0\0\x15\x03\0\0\x19\x03\0\0\x1C\x03\0\0\x1E\x03\0\0\"\x03\0\0&\x03\0\0)\x03\0\0+\x03\0\x000\x03\0\x002\x03\0\x006\x03\0\x007\x03\0\09\x03\0\0:\x03\0\0>\x03\0\0@\x03\0\0A\x03\0\0F\x03\0\0G\x03\0\0P\x03\0\0R\x03\0\0T\x03\0\0V\x03\0\0X\x03\0\0Y\x03\0\0Z\x03\0\0[\x03\0\0\\\x03\0\0]\x03\0\0_\x03\0\0`\x03\0\0a\x03\0\0b\x03\0\0c\x03\0\0e\x03\0\0g\x03\0\0j\x03\0\0l\x03\0\0o\x03\0\0q\x03\0\0r\x03\0\0v\x03\0\0z\x03\0\0~\x03\0\0\x7F\x03\0\0\x84\x03\0\0\x86\x03\0\0\x87\x03\0\0\x8C\x03\0\0\x8E\x03\0\0\x96\x03\0\0\x9E\x03\0\0\xA4\x03\0\0\xAA\x03\0\0\xB0\x03\0\0\xB5\x03\0\0\xBA\x03\0\0\xC3\x03\0\0\xC8\x03\0\0\xD0\x03\0\0\xD7\x03\0\0\xDC\x03\0\0\xE1\x03\0\0\xE6\x03\0\0\xEE\x03\0\0\xF3\x03\0\0\xFB\x03\0\0\0\x04\0\0\x08\x04\0\0\x0F\x04\0\0\x16\x04\0\0\x1E\x04\0\0'\x04\0\0,\x04\0\x001\x04\0\x006\x04\0\x007\x04\0\08\x04\0\09\x04\0\0:\x04\0\0>\x04\0\0@\x04\0\0B\x04\0\0C\x04\0\0E\x04\0\0G\x04\0\0I\x04\0\0J\x04\0\0M\x04\0\0N\x04\0\0O\x04\0\0Q\x04\0\0U\x04\0\0X\x04\0\0Z\x04\0\0[\x04\0\0^\x04\0\0_\x04\0\0c\x04\0\0f\x04\0\0g\x04\0\0h\x04\0\0i\x04\0\0m\x04\0\0o\x04\0\0r\x04\0\0u\x04\0\0w\x04\0\0z\x04\0\0\x86\x04\0\0\x87\x04\0\0\x88\x04\0\0\x8A\x04\0\0\x8B\x04\0\0\x8F\x04\0\0\x99\x04\0\0\x9A\x04\0\0\x9B\x04\0\0\x9C\x04\0\0\xA1\x04\0\0\xA7\x04\0\0\xAC\x04\0\0\xAF\x04\0\0\xB0\x04\0\0\xB1\x04\0\0\xB5\x04\0\0\xB6\x04\0\0\xB9\x04\0\0\xBC\x04\0\0\xC0\x04\0\0\xC3\x04\0\0\xC4\x04\0\0\xC8\x04\0\0\xCA\x04\0\0\xCC\x04\0\0\xD1\x04\0\0\xD3\x04\0\0\xD5\x04\0\0\xD6\x04\0\0\xDB\x04\0\0\xE0\x04\0\0\xE1\x04\0\0\xE3\x04\0\0\xE6\x04\0\0\xEB\x04\0\0\xF0\x04\0\0\xF2\x04\0\0\xF3\x04\0\0\xF4\x04\0\0\xF5\x04\0\0\xF6\x04\0\0\xF7\x04\0\0\xF8\x04\0\0\xF9\x04\0\0\xFA\x04\0\0\xFB\x04\0\0\xFC\x04\0\0\xFD\x04\0\0\xFE\x04\0\0\xFF\x04\0\0\0\x05\0\0\x01\x05\0\0\x02\x05\0\0\x03\x05\0\0\x04\x05\0\0\x05\x05\0\0\x06\x05\0\0\x07\x05\0\0\x08\x05\0\0\t\x05\0\0\n\x05\0\0\x0B\x05\0\0\x0C\x05\0\0\r\x05\0\0\x0E\x05\0\0\x12\x05\0\0\x17\x05\0\0\x1A\x05\0\0\x1D\x05\0\0\x1E\x05\0\0!\x05\0\0\"\x05\0\0#\x05\0\0%\x05\0\0'\x05\0\0(\x05\0\0,\x05\0\0-\x05\0\0.\x05\0\0/\x05\0\x000\x05\0\x001\x05\0\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0\0\0xXz\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE8\xACj\0`Xt\0\0\0\0\0TWr\0\xC0\xB1\xD8\0\x88\xE8B\x01\xC4\xE8B\x01`\nI\x01\x08\xE8J\x01\0\0\0\0\0\0\0\0\0\0\0\0\xD8_?\x01\x18hB\x01X\xA2O\x01\\2R\x01\0\xA5w\x01\x90\xBE\x82\x01\xD0[\x87\x014\xE5\x8A\x01\xD4O\x8F\x01T\xBD\x92\x01\xE1Y\x97\x01\x80\xE3\x9A\x01aY\x9F\x01\0\xE3\xA2\x01\xE1X\xA7\x01T\xD2\xAA\x01\0\0\0\0\xD8_?\x01p\x88B\x01X\xA2O\x01\x103R\x01\0\0\0\0\0\0\0\0\xD8_?\x01\0\0\0\0\0\0\0\0X\x96 \0`\xF1b\0\xF0\x98f\x01\xE0\x96x\x01\0\0\0\0\xC0\x807\0\0\0\0\0\0\0\0\0@\xD2\x19\x01\0\0\0\0 K\xC1\0\xC0J\xC7\0\x98\x0F\xB1\x01\0\0\0\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0X`7\x01\0\0\0\0\x98\xCF\x97\0@\xF2\xAE\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0X`7\x01\0\0\0\0\x98\xCF\x97\0@\xF2\xAE\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0@2\x14\x01 \x9D\x14\x01\x98\xEA0\x01\0\0\0\0\x98\xCF\x97\0\x80L\xAB\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0@2\x14\x01 \x9D\x14\x01\x98\xEA0\x01\0\0\0\0\x98\xCF\x97\0 \x1A\xA7\0\xA0-\xAA\0\x80\xA3\xAE\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0\x98\xEA0\x01\0\0\0\0\xA0\x17\xA2\0\0\xD1\xA6\0\xA0\xD3\xA9\0 \xD9\xAB\08\xF2\xB6\0\xE0\xC6\xEE\0\xE0\x1D\xF2\0\xA0,\x14\x01\0b\x15\x01\x98\xEA0\x01\xE0e1\x01497\x01\08?\x01\0\0\0\0\x98\xCF\x97\0\0\xD1\xA6\0\xA0\xD3\xA9\0 \xD6\xAE\0`\xDE\xB1\0\xC0\xF1\xB6\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0\xA0\xFF\x13\x01`\xC4\x16\x01\x98\xEA0\x01\0\0\0\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0@2\x14\x01 \x9D\x14\x01\x98\xEA0\x01\0\0\0\0\x98\xCF\x97\0@\xF2\xAE\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0\x98\xEA0\x01\0\0\0\0\x98\xCF\x97\0@\xF2\xAE\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0@2\x14\x01\xC0u\x14\x01X`7\x01\0\0\0\0\x98\xCF\x97\0\x80L\xAB\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0\xA0,\x14\x01\0b\x15\x01\x98\xEA0\x01\0\0\0\08\xF2\xB6\0\xE0\xC6\xEE\0\x94\xC7\xEE\0\xE0\x1D\xF2\0\0'\x14\x01 \x9D\x14\x01\x98\xEA0\x01\0\0\0\0\0\0\0\0\x08ZR\0@IX\0\0\0\0\0 \x05\x08\0\0\0\0\0 \x05\x08\0\x9Eb\xEF\0 \xC1\xF0\0\0\0\0\0 \x05\x08\0\xC0\x17\xAF\0\0\0\0\0\0\0\0\0\xAB\x857\x01\0\0\0\0\0\0\0\0 \x05\x08\0\xC0\x17\xAF\0\xA0\x8C\xB4\0 >\xBF\0\0\0\0\0 \x95Y\0\x86\xF3v\0\x80]|\0\0\0\0\0 \x05\x08\0\0\0\0\0\0\0\0\0\xD8\x857\x01\0\0\0\0 \x05\x08\0\0\0\0\0\0\0\0\0TWr\0\0\xA7\xD0\0\x88\xE8B\x01\xC4\xE8B\x01\xA4\rk\x01\0\0\0\0\xA0\x8Eg\0\0\0\0\0l\xAAR\0\0\0\0\0 \09\x01\x80\xBA<\x01\0\0\0\0 /8\0\0\0\0\0\0\0\0\0d3J\0\x90Xb\0\x942f\0\0\0\0\0@a\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\xB8\xAC\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\xCC\x9E\0\xE0A\xCE\0\xB8\x8A\x07\x01@\x85W\x018\x83\x7F\x01\0\0\0\0\xB8\xF4\x8E\0\0\0\0\0\xF4\xF4\x8E\0\0\xB6\xEE\0\x94\xC7\xEE\0\0\0\0\0\xF4\x8A\x07\x01\x80\xE0\x16\x01\x14\xF9\x87\x01\0\0\0\0\x14\xF9\x87\x01\0\0\0\x000\xF5\x8E\0`\x86\xBE\x000\xF1\xCE\0\xC0\xCD4\x01\xE0\xFA_\x01\0\0\0\0\x1C\xCC\x9E\0\0\xB6\xEE\0\x1C\xC7\xEE\0@f\xFE\0\xDC\x14\xFF\0\0\0\0\0X\xCC\x9E\0\0\xB6\xEE\0X\xC7\xEE\0@f\xFE\0\x18\x15\xFF\0\0\0\0\0\xF4\xF4\x8E\0`\x86\xBE\0\xF4\xF0\xCE\0\0\0\0\0X\xCC\x9E\0\0\xE5\xCE\0\xB8\xF0\xCE\0\0\xB6\xEE\0X\xC7\xEE\0@f\xFE\0\x18\x15\xFF\0\0\0\0\0\xF4\xF4\x8E\0\0\0\0\x000\xF5\x8E\0\xC0\xCD4\x01\xE0\xFA_\x01\0\0\0\0X\xCC\x9E\0\0\xB6\xEE\0X\xC7\xEE\0@f\xFE\0\x18\x15\xFF\0\0\0\0\0\xD8\xF8\x87\x01\0\0\0\0\xB8\x8A\x07\x01`^O\x018\x83\x7F\x01\0\0\0\0\xF4\xF4\x8E\0\xC0\xCD4\x01\0\0\0\0(\xAE\x1A\0 \x1A \0\0\0\0\0@m\x8E\0\0\0\0\0\0\0\0\0\x90Wr\0\xD8|\xAA\0\xC4\xE8B\x01\0\xE9B\x01\xF8\xE8J\x01\0\0\0\0\xEC\x05h\0\0\0\0\0\0\0\0\0\xE0\xF6\x82\0\xA0m\x88\0\0\0\0\0\x1C\xF7\x82\0\xA0m\x88\08\x98j\x01\0\0\0\0@\n\x10\0\xEC\xAD\x1A\0 \x1A \0\0\0\0\0\x15\x7F\x8A\0Y~\x92\0u\x9AJ\x01`\xB8O\x01\0\0\0\0\xEC\xAD\x1A\0 \x1A \0\0\0\0\0h\xEC\"\x01\xA4\xEC\"\x01\0\0\0\0l\xAE\x12\0\0\x15\x18\0,\xEC\"\x01@\xF0(\x01\0\0\0\0\xA4\xF6\x82\0\xD4\xC6\xFA\0\xA4\xEC\"\x01\xB8\x88'\x01\x14u*\x01\0\0\0\0\0\0\0\0\xF7~\x8A\0;~\x92\0W\x9AJ\x01`\xB8O\x01\0\0\0\0(\xAE\x1A\0 \x1A \0\0\0\0\0\x1C\xF7\x82\0\xA0m\x88\0\0\0\0\0`\xED\x1A\x01 \xEB \x01\0\0\0\0\0\0\0\0\xE0\xF6\x82\0Xd\xF7\0@\x8B\xF7\0\xD4\xC6\xFA\0\0\0\0\0\x80\xAC\x1E\0\x80>P\0`\xF7\x97\x01\0\0\0\0\x1C\xF7\x82\0\0\0\0\0\xA4\xF6\x82\0\xD4\xC6\xFA\0\0\0\0\0\x80>P\0\xE0\xF6\x82\0\x1C\xF7\x82\0\0\0\0\0\x80>P\0`\xF7\x97\x01\0\0\0\0\xB8\xAD\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@IX\0\0\0\0\0\0\0\0\0  G\0Z\x1C\xA7\0\0\0\0\0p\xA6\x8E\0\0\0\0\0\xF0\x98f\x01\xE0\x96x\x01\0\0\0\0\0\0\0\0\0\0\0\0|\xC9\xAA\0\0\0\0\0\0\0\0\0\xB0A\xB3\0\0\0\0\0\xAC\xED\xB0\0\0\0\0\0\0\0\0\0\xB8T/\0\0\0\0\0\0\0\0\0\x8C\x9F\xE2\0\xC0\r\xE6\0\x80\xADv\x01\xBC\xD1\x7F\x01\0\0\0\0\x8C\x9F\xE2\0\xC0\r\xE6\0\0\0\0\0`9H\0\0\0\0\0\x80>P\0\0\0\0\0@IX\0\0\0\0\0\0\0\0\0\x80>P\0\0\0\0\0\0\0\0\0\x8E\xAD\x1E\0\0\xAC&\0Xd\xF7\0h\xEC\"\x01\0\0\0\0\xC4\x8B\n\0@\x9F>\0D\x01B\0\xA0\xC5N\0$\xC5R\0@\xECZ\0\0\0\0\0\x80h\x80\0\x8C\xD9\xB7\0\0\0\0\0P\xD9\xB7\0\0\0\0\0\x90Wr\0Pe\xEF\0\xE0\xEF\x01\x01\xC4\xE8B\x01\0\0\0\0\0\0\0\0`m2\0\x9C\x0C\x83\x01\xB4\xD1\x87\x01<\xD6\xAD\x03\0\0\0\0\0\0\0\0d\x85C\0\x80\xFEq\0\x80h\x80\0\0\0\0\0\x80ZR\0\0\0\0\0\\4B\0`9H\0\0\0\0\0\0\0\0\0\xE41b\0\x80Sh\0\0\0\0\0\xE41b\0\x80Sh\0\0\0\0\0l\x08\x99\x01\0\0\0\0\x80\xF6j\0\xF8\tv\0\0\t~\0\xCCsF\x01\0\0\0\0\0\xBC\xE8\0\0\0\0\0\0\0\0\0\0\0\0\0@IX\0\0\0\0\0\x84\r2\0 /8\0\0\0\0\0\0\0\0\0\xCC\x95\xCA\0\0\xA7\xD0\0\xAC\xBB\xE2\0\0\xBC\xE8\0\xCC\xE9*\x01\xE0Q6\x01\x8C\xDD:\x01\x80\x0FQ\x01\0\0\0\0\xF8\xAD\x0E\0\x9Cz\xCA\0\0\xA7\xD0\0\0\0\0\0\0\0\0\0TWr\0\xA0z\xC6\0\x88\xE8B\x01\xC4\xE8B\x01\0\0\0\0\0\0\0\0\xF8\xAD\x0E\0\x9Cz\xCA\0\0\xA7\xD0\0\0\0\0\0\0\0\0\0`N`\0\0\0\0\0\xF8ZR\0\0\xA7\xD0\0\0\0\0\0\xF8ZR\0|1\xAB\x01\x1C\xF6\xAF\x01\0\0\0\0\xF8ZR\0p[R\0\xA02Z\0 X\xB3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAC=R\0@IX\0\0\0\0\0\0\0\0\0\xAC\x89#\x01\0\0\0\0\xA4\xA8:\0\0\0\0\0@\x1F(\0\0\0\0\0\xC0\xC7,\0\x1C|\xB2\0\0\0\0\0\xCC\x95\xCA\0\0\xA7\xD0\0\xAC\xBB\xE2\0\0\xBC\xE8\0\0\0\0\0\x96\x1EK\0\0\0\0\0\x0C\xB1#\x01\0\0\0\0\xA0\x8Eg\0\0\0\0\0\0\0\0\0(1j\0\xA0Xp\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC0r\x90\0\0\0\0\0\xF8\xAD\x0E\0\x9Cz\xCA\0\0\xA7\xD0\0\0\0\0\0\xF8\xAD\x0E\0\x9Cz\xCA\0\0\xA7\xD0\0\0\0\0\0\0\0\0\0\0\xA7\xD0\0\0\0\0\0`\xF1b\0\x80\xEA*\x01\0\0\0\0@\x9F>\0\xF4\x05B\0`9H\0\x92\x14\xA3\x01\0\0\0\0\0\0\0\0dnK\0\x80>P\0\0\0\0\0\0\0\0\0\xF8\xAD\x0E\0\x9Cz\xCA\0\0\xA7\xD0\0\0\0\0\0 \x1A \0h\xF6\x82\0\0\0\0\0L&\x9B\x01 \xEB\xA7\x01\0\0\0\0\0\0\0\0\0\0\0\0\xDCVr\0`\xCC\x1D\x01\x10\xE8B\x01L\xE8B\x01\0\0\0\0\0\0\0\0\09N\0@\x9C\xC8\0\0\0\0\0\09N\0@\x9C\xC8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC0\x1Bn\x01\xE2\xF2\x83\x01\0\0\0\0\xE0@\x93\0\0\0\0\0\0\0\0\0\0\0\0\0\xE0H^\0\xA0Hb\0\x18Wr\0\x18{\xC6\0L\xE8B\x01\x88\xE8B\x01\0\0\0\0\x80CZ\0\xE0H^\0\xA0Hb\0\x18Wr\0\xB8\x89\x17\x01L\xE8B\x01\x88\xE8B\x01\0\0\0\0\xDCVr\0\xB8\x89\x17\x01\x10\xE8B\x01L\xE8B\x01`\xAF\xB2\x01\0\0\0\0\xE0H^\0\xA0Hb\0\x18Wr\08\xA0\xEA\0L\xE8B\x01\x88\xE8B\x01\0\0\0\0\x80CZ\0\xE0H^\0\xA0Hb\0\x18Wr\0\xB8\x89\x17\x01L\xE8B\x01\x88\xE8B\x01`\xAF\xB2\x01\0\0\0\0\x80CZ\0\xE0H^\0\xA0Hb\0\x18Wr\0\x98\xF2\xB0\0\x10\xE8B\x01L\xE8B\x01\x88\xE8B\x01\xC0\0\x89\x01\0\0\0\0\x80CZ\0\xE0H^\0\xA0Hb\0\x18Wr\0X|\xB2\0L\xE8B\x01\x88\xE8B\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@IX\0\0\0\0\0\xA0\xD6\xD3\0\xFE8\xD7\0>4#\x01\0\0\0\0\0,\x10\0\0\0\0\0\0\0\0\0\x90Wr\0|\xA0\xE2\0\x9Cd\xEF\0 \xD6\x08\x01\xC4\xE8B\x01\0\0\0\0 /8\0\0\0\0\0\x90Wr\0@\xA1\xD2\0@\"\xD9\0\0\r\xF2\0\x80\xD1\xF8\0\xC4\xE8B\x01\0\0\0\0`N`\0Hw\x9A\0\x806\xA3\0\xA0\xA6\xD6\0@\xC2\xDE\08\xF6W\x01X\xA1_\x01\0\0\0\0d\x85C\0\x80\xFEq\0\x80h\x80\0\x9C\x0C\x83\x01\xB4\xD1\x87\x01<\xD6\xAD\x03\0\0\0\0\x84\r2\0 /8\0\0\0\0\0\x90Wr\0\xC0\xB1\xD8\0\xC4\xE8B\x01\0\0\0\0\xA0\x8Eg\0\0\0\0\0\0\0\0\0\xA0\xB0\xBD\0\0\0\0\0\0\0\0\0\xA0\x8Eg\0\0\0\0\0\0\0\0\0\0\0\0\0@4@\0X\x06s\x01\0\0\0\0@4@\0\x1C\x06s\x01\0\0\0\0\x96\x1EK\0\0\0\0\0\xA4\xA8:\0\0\0\0\0\x80ZR\0\xE02V\0\0\0\0\0\0\0\0\0\0\0\0\0\x84J\x13\0\xA0\t\x1A\0\xC08R\0@IX\0\0\0\0\0\x8C\x867\x01\0\0\0\0\0\0\0\0\0\0\0\0T\xC8\xE2\0D\xC8\xF2\0\0[\xA3\x01\xD8\xF6\xA7\x01\0\0\0\0T\xC8\xE2\0D\xC8\xF2\0\xD8\xF6\xA7\x01\xC0\xA4\xA8\x01\0\0\0\0\x18-`\0xe\xE5\0\xC4Z\xA3\x01\0\0\0\0\0\xA7\xD0\0\x80\xC8\xF2\0\0\0\0\0\xC0r\x90\0\0\0\0\0D\xC8\xF2\0@\xEA\x01\x01\xC4Z\xA3\x01\0\0\0\0\x18-`\0x\x02g\0\xC4Z\xA3\x01\0\0\0\0\xC0r\x90\0\xC4Z\xA3\x01\0\0\0\0\0[\xA3\x01\0\0\0\0T\xC8\xE2\0D\xC8\xF2\0\xD8\xF6\xA7\x01\xC0\xA4\xA8\x01\0\0\0\0\0[\xA3\x01\0\0\0\0`$0\0\x1C\xF7\x82\0\xE0\xCB\xF8\0\0\0\0\0\0\0\0\0\x80L`\0\0\0\0\0\0\0\0\0 Y\xC2\0\x80\x96~\x01`\xB5\x7F\x01\0\0\0\0D\x01\xD8\0\0\0\0\0\0\0\0\0x\xAC&\08q)\0x5o\x01\xC08\x8D\x01\0\0\0\0\0\0\0\0\0\xB8\x1A\0\0\")\0\x8C\xE5Q\0\xD0\x8D\xB0\0\xC0j\xB6\0\xA0\x97\xB8\0\xC0\xB1\xD8\0$\x8A#\x01\0\0\0\0 /8\0\0\0\0\0\x80>P\0\0\0\0\0\x80h\x80\0\0\0\0\0\xD8\x1AI\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB0\x9D\xC0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0x\x0Ei\x01\0\0\0\0\x04\x94\xA3\0\0\0\0\0\xA0\xDD\t\0\xB8G;\x01\0\0\0\0 /8\0\0\0\0\0 \xE7R\0\xA0m\x88\0\0\0\0\0`C\xE3\0\0\0\0\0\0\0\0\0\x80Yb\0\x80W\x82\0`\x0B\x85\0\0\0\0\0\xBC\r6\0\xDC{\xB6\0|\xA1\xD2\0\0\0\0\0 2b\0\xBC{\xB8\0<C\xBC\0\0\0\0\0\0\0\0\0\x80\x0F\x16\0`\x14\"\0\xF4\x7F\xB7\x01\xE0\xB1\xB7\x01\0\0\0\0@a\x13\0\0\0\0\0\0\0\0\0\x90YR\0\x183Z\0\xE8z\xBA\0\xC0\x9C\xC0\0\0\0\0\0\xA0\x8Eg\0\0\0\0\0TWr\0X|\xB2\0\x88\xE8B\x01\xC4\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\xD8\rs\x01\0\0\0\0\xA0Vr\0\xC0\xDC\xCB\0\xD4\xE7B\x01\x10\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\xD8\rs\x01\0\0\0\0\\\xE7B\x01\x98\xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\xD8\rs\x01\0\0\0\08Ur\0\xA8\xE6B\x01\xE4\xE6B\x01x\xE9B\x01\xF8\xE8J\x01\0\0\0\0\xE4\xE6B\x01 \xE7B\x01\xF8\xE8J\x01\x18\xACg\x01X\xABs\x01\0\0\0\0\x98\xE7B\x01\xD4\xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\xC4\xE8B\x01\0\xE9B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0(Vr\0@\xDB\x10\x01 \xE7B\x01\\\xE7B\x01\x98\xE7B\x01\xF8\xE8J\x01\xC0\xA4N\x01\x18\xACg\x01\0\0\0\0\xD4\xE7B\x01\x10\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0TWr\0\xF4\xF2\xAE\0\x88\xE8B\x01\xC4\xE8B\x01\0\xE9B\x01x\xE9B\x01\xF8\xE8J\x01\0\0\0\0TWr\0X|\xB2\0\x88\xE8B\x01\xC4\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\xC4\xE8B\x01\0\xE9B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\xD4\xE7B\x01\x10\xE8B\x01x\xE9B\x01\xF8\xE8J\x01\0\0\0\0\x10\xE8B\x01L\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\xA0Vr\0`\xB6\xBB\0\xD4\xE7B\x01\x10\xE8B\x01\xF8\xE8J\x01\x18\xACg\x018\xABu\x01\0\0\0\0\xA8\xE6B\x01\xE4\xE6B\x01x\xE9B\x01\xF8\xE8J\x01\0\0\0\0TWr\0X|\xB2\0\x88\xE8B\x01\xC4\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01X\x97x\x01\0\0\0\0\xE4\xE6B\x01 \xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\xA0Vr\0\xB4t\x03\x01\xD4\xE7B\x01\x10\xE8B\x01\xF8\xE8J\x01\x18\xACg\x018pt\x01\0\0\0\0\x88\xE8B\x01\xC4\xE8B\x01\0\xE9B\x01\xF8\xE8J\x01\x18\xACg\x01\xD8\rs\x01\0\0\0\0\x80CZ\0\xE4\xE6B\x01 \xE7B\x01\xF8\xE8J\x01\xC0\xA4N\x01\x18\xACg\x01\0\0\0\0\xB0Ur\08\xA1\xDA\0\xE4\xE6B\x01 \xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\xD8\rs\x01\0\0\0\0TWr\0X|\xB2\0\x88\xE8B\x01\xC4\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01x\xD1\x87\x01\xD82\x99\x01\0\0\0\0 \xE7B\x01\\\xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0L\xE8B\x01\x88\xE8B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\\\xE7B\x01\x98\xE7B\x01\xF8\xE8J\x01\x18\xACg\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCC\xF4z\0\xB0\x12\xF1\0`\xE2\x7F\x01\0\0\0\0\x80>P\0\0\0\0\0\x80L`\0\0\0\0\0\0\0\0\0\xA0\x8Eg\0\0\0\0\0\x80>P\0\0\0\0\0`9H\0\0\0\0\0\0\0\0\0dnK\0\x80>P\0\0\0\0\0\0\0\0\0\0\0\0\0\xE0]v\0\0\0\0\0\xCC\xF4z\0\xB0\x12\xF1\0\xE0\xFC\x99\x01\0\0\0\0\xBC9\x81\x01\x18?\x89\x01\0\0\0\0\x8C\x1C\x93\0\0\0\0\0\0\0\0\0\xCC%\xA3\x01 \xEB\xA7\x01\0\0\0\0\0\0\0\0`9H\08\x98j\x01T\xBE\x82\x01\0\0\0\0 \x82N\0`\xB7Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDCVr\0\x18\x0C\xAE\0\x10\xE8B\x01\0\0\0\0@\x04Q\x01\0\0\0\0@\xD82\0\xA0w\xF6\0\0\0\0\0L\xE8B\x01\x88\xE8B\x01\0\0\0\0<\xEA2\x01\0\0\0\0\0\xBC\xE8\0\x90\xF6w\x01\0\0\0\0\xE43B\0 #D\0\xE8\xF5l\0\xB8\x0Cw\0d\xC3\"\x01@\xF0(\x01\xBC\xE8J\x01\\\xEEJ\x01\x9C\x0Ec\x01<\x14c\x01\xE0\xA7v\x01\0\0\0\0\0\0\0\0\0\0\0\0d1L\0\0\0\0\0\0\0\0\0\x90Wr\0 \x93\xD3\0\xC4\xE8B\x01\0\0\0\0\x90Wr\08}\xA4\0@I\xB2\0\xC0?\xC3\x004?\xD7\0\xFC\xA0\xDA\0\xC4\xE8B\x01\xD8\x0Ec\x01\x18\xACg\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000L)\0\xA0\xA4o\0\x94\xF7\x82\0\xD0\xF7\x82\0\0\0\0\0(\xAE\x1A\0\xB86 \0x\xAC&\0\xC8J)\0 \xEB \x01\0\0\0\0\xF4K)\0\xA0\xA4o\0X\xF7\x82\0\x94\xF7\x82\0\0\0\0\0\xA0\xAE\x1A\08\xD4 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15\x18\0\xA87 \08\xAC*\0\0\0\0\0\0\0\0\0(\xAE\x1A\0 \xEB \x01\0\0\0\0(\xAE\x1A\0 \xEB \x01\0\0\0\0|K)\0\xB8\xF6n\0\x1C\xF7\x82\0\0\0\0\0\xA4\xF6\x82\0x\xEB\"\x01\0\0\0\0\0\0\0\0(\xAE\x1A\0\xB86 \0x\xAC&\0\0\0\0\08\xAD\x1A\0\0\0\0\0\xA4\xEC\"\x01\0\0\0\0\x1C\xF7\x82\0\xF8\xD2o\x01\xD8\xF8\x87\x01\xF8\xA9\x89\x01\0\0\0\0\xE0\xEC\"\x01\0\0\0\0\xE0\xEC\"\x01\0\0\0\0\0\0\0\0(\xAE\x1A\0x\xEB\"\x01\xA4\xEC\"\x01\x98\xAF/\x01\0\0\0\x000L)\0\xA0\xA4o\0X\xF7\x82\0\xD0\xF7\x82\0\0\0\0\0\0\0\0\0\x1C\xF7\x82\0\0\0\0\0(\xAE\x1A\0x\xEB\"\x01\0\0\0\0(\xAE\x1A\0x\xEB\"\x01\xA4\xEC\"\x01\xD8t*\x01\0\0\0\0\xA4\xF6\x82\0x\xEB\"\x01\xA4\xEC\"\x01\x98\xAF/\x01\0\0\0\0x\xD5G\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\x86\x12\0\0\xE7'\0p6g\x01\0\0\0\0\x80CZ\0\xE0H^\0\xA0Hb\0L\xE8B\x01\0\0\0\0\x10\xE8B\x01L\xE8B\x01\0\0\0\0dnK\0\x80>P\0\0\0\0\0\0\0\0\0\xB4t0\x01\xD6\xD2s\x01\0\0\0\0\0\0\0\0\0\0\0\0 \xB4+\0\0\0\0\0P\x16\xB7\0\0\0\0\0\0\0\0\0\x18\xEBF\x01@\x04Q\x01\xEC/\x97\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x08\0\x08\x08 \0$\0\xE0\0\xE0\0\x08\x08\x08\0\x08\x08 \x08 \0 \x08\x18\x08 \0 \x08 \0\xE0\0\x08\0@\0X\0@\0X\0@\0X\0@\0X\0@\0X\0@\0X\0@\0X\0@\0X\0@\08\0(\08\0(\08\0P\x000\0(\0`\x08\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\0\0\xE8\0\x18\0\0\0\0\x108\0\0\08\0(\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE8\0\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE8\x08\xE0\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE0\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xE0\0\xE8\x08\xE8\0\xA8\0\x08\x08\x08\0\x08\x08L\0L\x08L\0L\x08L\0L\x08P\0P\x08P\0L\0F\x08F\0P\x08P\0P\x08P\0P\x08P\0P\0T\x08T\0T\x04P\0P\x08P\x08@\x08@\0P\0P\x08\xE0\0 \x08 \0 \x08\x18\x08 \x08 \0\x08\0\x08\x08\xE0\x08\xE0\x000\x000\x080\0\x08\0\x08\x08\0\0\x10\0\x10\x08\x10\0\x10\x08 \0\x18\0\x10\0\x08\0\xE0\0\xE0\x08@\0\xE0\0\xE0\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xD8\x08\xD8\0\xD8\x08\xD8\0\xE0\0\xD8\0\xF0\x08\xF0\0\xF0\x08\xF0\0\xF0\x08\xF0\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE0\x08\xE0\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xD8\x08\xD8\0\xE0\0\xD8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE8\x08\xE8\0\xE0\x08\xE0\0\xE8\0\xD8\x08\xD8\0\xD8\x08,\x000\0\x10\0\x18\x08\x18\0\x18\x08\x10\x08\x10\0\x18\0\xD0\x08\xD0\0\xC8\0\xC8\x08\xC8\0\xC8\x08\xC0\x08\xC0\0\xC0\x08\xC8\0\xE0\0\xE0\x08\xE0\0\xE0\x08\xE0\x08\xE0\x10\xE0\x08\xE0\0\xE0\x08\xE0\x08\xE0\0\xE0\x08\xD8\x08\xD0\x08\xD8\x08\xE0\x08\xE0\0\xE0\x08\xE0\0\xE0\x08\xD0\x08\xD8\0\xD0\x08\xD0\0\xD8\0\xD0\x08\xD0\0\xE4\x08\xE4\x10\xE4\x08\xE4\0\xE4\x08\xD8\x08\xD8\0\xD8\x08\xC0\x08\xC0\0\xC0\x08\xD0\x08\xD0\0\xD0\x08\xE0\0\xC8\x08\xD0\0\xD8\0\xD0\0\xC8\x08\xB8\0\xC0\0\xC0\x08\xC8\0\xC0\x08\xC8\0\xD0\x08\xD8\0\xD0\x08\xC8\0\xC8\x08\xC0\x08\xC8\x08\xC0\0\xC0\x08\xC8\0\xC8\0\xD0\0\xD8\x004\0\x10\0\x08\0\x08\0\x08\0\x08\0\x08\x08\0\0\xAC\0\xB0\x04\xB0\0\xC8\x08\xD0\x08\xE0\x08\xE0\0\xE8\0\xE0\x08\x08\0@\x08@\x000\0\xD8\x08\xD8\0\xD0\x08\xD0\0\xD8\x08\xF0\0\xF8\08\0\x10\x08\x10\0\x10\x08\x18\0\x10\x08\x10\x08\x10\0\x10\x08\x08\0\x08\x08\x08\0\x08\x08\x08\0\x08\x08\x18\0\x08\0\x08\x08\xE0\0\xD8\x04\xD8\0\xE0\0\xD8\x08\xE0\0\0\x08\0\0\x08\x08\x08\0\0\x08\0\0\x08\0\xD8\0\xD0\x08\xD0\0\xD8\x08\xD8\0\x18\x08\x10\x08\x10\0\x18\x08\x10\x08\x10\x08\xF8\0\0\x08\0\0\0\x08\0\0\x18\0\0\x08\0\0\x08\0\x08\x08\0\0\0\x08\x08\x08\x08\0\x08\x08\x18\0\x10\x08\x10\0\x10\x08\x10\x08\x10\0\x10\x08`\x08`\0\xE0\0\xE8\x08\xE8\0\xE0\x08\xE8\0`\0X\0X\0P\0\0\0\0\x08\x08\x08\x08\0\x08\x08\x08\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x08\0\0\x08\0\0\0\x08\xE0\0 \x08\x18\0 \x08\x18\x08 \0\xE8\0\x08\0\0\x08\0\0\0\x08\0\0\x08\0\x08\x08\xE8\0\xE8\x08\0\0\xE8\0\xE8\x08\xF0\0\xF0\x08\xF0\0\xF0\x08\xF0\0\xF8\x08\xF0\x08\xE0\x08\0\0\0\0\0\0\xE0\0\xE0\0\xE0\0\x08\0\x10\x08\x10\0\x10\x08\xF0\0\xD0\x08\xD0\0P\x08P\0\xF8\0\0\0\xE2\0\xE8\0\xE0\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08@\x08@\0\xD0\x08\xD0\0\x08\0\x08\x08\xD8\x08\x08\x08\x08\0\x08\x08H\08\0@\0@\08\0\x08\0\0\x08\0\0\0\x08\x08\0\0\x08\0\0\0\x08,\0(\x000\0\x18\0\x18\x08\x18\0\x1C\0 \x08 \0\x1C\x08\x1C\0\0\0\x08\x08\x08\0\x08\x08\x10\x08\x08\0\0\x08\0\0\0\x08\xD8\0\xD8\x08\xD8\0\x10\x08\x10\0\x18\0H\0\x18\x000\x08(\x000\x08(\x080\08\0\xAB\0\xB0\0p\0\xA0\0\xA8\0h\0`\0\x18\0\xE0\0H\0D\0H\0H\x08H\0\x18\0\xD8\0(\x000\0(\x08(\0(\x08 \x08(\0(\0(\x080\0(\x08(\0(\x08 \x08(\x000\x080\x000\x08(\x080\0(\0(\x000\0(\x08(\0(\x08 \x08(\0(\0(\x080\0(\x08(\0(\x08 \x080\0(\0(\0(\x080\0(\x08(\x000\x08(\x08 \x080\0(\0(\0(\x080\0(\x08(\0(\x08 \x08(\08\0\x10\x08\xE0\0\x08\0\x08\x08,\x004\x000\0,\0\xFB\0\0\0\x10\0\x18\x08\x10\0\x08\x08\x10\0\x18\x08\x10\x08\x08\0\x08\x08\x18\x08\x10\x08\x10\0\x10\x08\x10\0\x18\x08\x10\x08\x10\0\x08\x08\x08\0\x10\0\x08\0\x10\0\x08\0\x10\0\0\x08\0\0\x08\0\0\x08\0\0\0\x08\0\0\x08\x08\x08\0\x08\x08\x18\x08\x10\0\x18\x08\x10\x08\x08\0\x08\x08\x18\0\xA0\0`\0`\0\x08\0\x08\x08\0\x004\x000\08\x088\08\0@\x08@\0@\x08@\0P\x08P\0\xE0\0\xE0\x08\xE0\0\0\0\xE0\0\x08\x08\x08\0\x08\x08\x08\0\x08\x08 \x08 \0(\0\x10\0\xD0\0\xD0\x08\xC8\x08\xC8\0\xD0\0\xD0\0\xD0\x08\xC8\x08\xD0\0\xC8\x08\xD0\0\xD8\0\xD0\x08\xD8\0\xC8\0\xC8\x08\xC8\0\xD0\0\xD0\x08\xD0\x08\xD0\0\xD0\x08\xD0\0\xD0\0\xD8\0\xD0\x08\xD0\0\xD0\0\xD0\x08\xD0\0\xC8\x08\xC8\0\xD0\0\xD0\x08\xC8\x08\xD0\0\xD0\x08\xC8\x08\xD0\0\xC0\0\xC0\x08\xC0\0\xC0\x08@\0<\0@\0\x10\0\x10\0\x08\x08\x08\0\x10\0X\x08X\0\x08\0\\\0\\\x08\\\0X\0X\x08\x08\0\xD0\0\xD8\0\xD0\x08\xD0\0\xD8\0\xD0\0\xD8\0\xD0\x08\xD0\0\x08\0\x08\x08\x08\0\x08\x08,\0.\0\\\0`\0\xA8\0`\x08f\x08 \0\xD8\0\xD8\x08\xD8\0\xB8\0\xB4\0\xB0\0P\0P\0X\0@\x08@\0(\0(\x08(\0\x08\0\x08\x08\xE0\0\xE8\0\xE8\x08\xBC\0\xC0\0\xE0\0\0\0\0\x08\0\0\0\x08\x08\0\0\x08\x08\x08\0\x08\xF8\0\xF8\x08\0\x08\xF8\x08H\0\xE0\0\xE8\0\xE0\x08\xE0\0\xE8\0 \0\x18\0 \0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x08\0\x08\x08 \x08 \0 \x08\x18\x08\x18\0 \0\x18\0 \08\x088\08\x080\x080\08\x000\08\0H\x08@\x08H\0P\0@\0H\0h\x08`\x08X\x08`\0X\0`\0X\x08P\x08X\0`\0P\0X\0@\x088\x08@\0H\0@\0\x18\x08\x10\x08\x10\0\x18\0\x10\0H\x08H\0P\x08H\x08@\x08P\0X\0P\0H\08\x080\x088\0@\08\0 \x08\x18\0 \x08\x18\x08\x10\x08 \0\x18\0 \0 \x08 \0 \x08\x18\x08\x18\0 \0\x18\0\x18\x08\x10\x08\x18\0 \0\x18\08\x080\x088\x000\08\x000\x08(\x080\08\x000\08\x088\08\x080\x080\08\x000\08\0`\x08X\x08`\0X\0`\0 \x08 \0 \x08\x18\x08\x18\0 \0\x18\0 \0X\x08P\x08X\0`\0X\08\x088\08\x080\x080\08\x000\08\0 \x08\x18\x08\x10\x08\x18\0 \0\x18\0 \0H\0X\x08P\x08X\0`\0X\0P\0X\x08X\0X\x08P\x08P\0X\0P\0X\0 \x08 \0 \x08\x18\x08\x18\0 \0\x18\0 \0\x18\0P\x08H\x08P\0X\0P\0(\x08 \x08(\x000\0(\0H\x08@\x08H\0P\0H\0\x10\0\x18\0X\0 \0\x10\x08\x10\0\x18\0\x10\0\x08\0\x08\x08<\0@\0\0\0\x08\0\x08\x08\x08\0\x08\x08\x08\0\x08\x08\0\0\x08\x08\x08\0\x08\x08\0\0\x18\0\xE4\0\xE8\0\x10\x08\x10\0\x18\0\x10\0\0\0\x08\0\0\0\xD0\x08\xD0\0\xE0\0\x10\x08\x10\0\x18\0\x10\0\xD8\0\xD8\x08\xE0\0\xD8\x08\x08\0\x08\x08\x08\0(\0\0\08\x000\x08(\x080\x08(\0\xA8\0h\0H\0@\0H\0(\x08 \x08(\0\x08\x08\x08\0h\0h\x08h\0\x10\x08\x10\0\x18\x08\x18\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x10\0\x10\x08\x18\0\xE0\0`\0@\x08@\0\x18\0\x18\x08\x10\x08\x18\x08\x10\x08\x18\x08\x18\0\x10\0\x10\x08\x18\x08\x18\0\x18\x08\x10\x08 \0\x18\0\x18\0`\0\xA8\0\xA8\x08\xB0\0\xB0\x08\xA8\x08\xB0\x08\xD8\x08\xD8\0\xD0\x08\xD8\x08\xD8\0\xD8\x08\xB0\x08\xB8\0\xB8\x08\xB0\x08\xB8\x08\xC8\x08\xC8\0\xC8\x08\xD0\x08\xC8\x08\xD8\0\xD8\x08\xD8\0\xD8\x08\xB0\0\xD8\x08\xD8\0\xD8\x08\xD8\x08\xD8\0\xD8\x08\xC0\x08\xC0\0\xC0\x08\xB8\x08\xD0\x08\xD8\0\xD0\x08\xC0\x08\xD8\x08\xD8\0\xD0\x08\xD8\x08\xD8\0\xD0\x08\xD0\x08\xD8\x08\xC0\x08\xC0\0\xB8\x08\xC0\0\xB8\x08\xC8\x08\xD0\x08\xC8\x08\xD0\x08\xD8\x08\xD8\x08\xD8\0\xD0\x08\xD0\0\xD8\x08\xA8\x08\xB8\0\xB8\x08\xA8\x08\xB8\x08\xC8\0\xC0\x08\xB8\x08\xD8\x08\xD8\0\xD0\x08\xD8\x08\xD8\0\xD0\x08\xD0\0\xD8\x08\xD0\x08\xD8\0\xD0\x08\xD0\0\xD8\x08\xC8\x08\xD0\x08\xB8\x08\0\0\x08\0\x10\0\x18\0 \0(\x000\08\0@\0H\0P\0X\0`\0h\0p\0\xF8\0\xF0\0\xE8\0\xE0\0\xD8\0\xD0\0\xC8\0\xC0\0\xB8\0\xB0\0\xA8\0\xA0\0\xE8\x08\xE8\0\xE8\x08\xE8\0(\0(\x080\0(\x08(\x000\x08(\x08(\0\x08\x08\x08\0\x08\x08\xE0\0\xE0\0\xDC\0\xE0\0\xE0\0\xE0\0@\08\0X\x08X\0`\0\xA8\x08\xA8\0h\x08h\0\x18\0\x18\0\x10\0\x10\0\x10\0") })
-            };
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DataProvider<icu::time::provider::TimeZoneOffsetsV1> for $provider {
-            fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu::time::provider::TimeZoneOffsetsV1>, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_TIME_ZONE_OFFSETS_V1), metadata: icu_provider::DataResponseMetadata::default() })
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::TimeZoneOffsetsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , ITER) => {
-        __impl_time_zone_offsets_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::TimeZoneOffsetsV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-    ($ provider : ty , DRY) => {
-        __impl_time_zone_offsets_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::TimeZoneOffsetsV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default())
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::TimeZoneOffsetsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , DRY , ITER) => {
-        __impl_time_zone_offsets_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::TimeZoneOffsetsV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default())
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::TimeZoneOffsetsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::TimeZoneOffsetsV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-}
-#[doc(inline)]
-pub use __impl_time_zone_offsets_v1 as impl_time_zone_offsets_v1;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_windows_v1.rs.data b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_windows_v1.rs.data
deleted file mode 100644
index 684c7c1..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/data/time_zone_windows_v1.rs.data
+++ /dev/null
@@ -1,75 +0,0 @@
-// @generated
-/// Implement `DataProvider<TimeZoneWindowsV1>` on the given struct using the data
-/// hardcoded in this file. This allows the struct to be used with
-/// `icu`'s `_unstable` constructors.
-///
-/// Using this implementation will embed the following data in the binary's data segment:
-/// * 8634B[^1] for the singleton data struct
-///
-/// [^1]: these numbers can be smaller in practice due to linker deduplication
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_time_zone_windows_v1 {
-    ($ provider : ty) => {
-        #[clippy::msrv = "1.81"]
-        const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO;
-        #[clippy::msrv = "1.81"]
-        impl $provider {
-            #[doc(hidden)]
-            pub const SINGLETON_TIME_ZONE_WINDOWS_V1: &'static <icu::time::provider::windows::TimeZoneWindowsV1 as icu_provider::DynamicDataMarker>::DataStruct = &icu::time::provider::windows::WindowsZonesToBcp47Map { map: zerotrie::ZeroTrieSimpleAscii { store: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\xE1xABCDEFGHIJKLMNOPQRSTUVWY\x02\x02\x05\x05\x06\x07\x08\x08\x08\t\t\t\x0B\x0C\x0C\r\r\r\x11\x12\x13\x13\x15-\xBCRs\xE8AS\xA2\xFF\x1Eb\xCF<|\x995W\xE6\x15Z\x90\xFB\xBA\xE1hUflrstuz\0\0\0\x01\x01\x01\x01Fg\xC6]~\xA8\xCES \xC2CE entral Standard Time/\xC20A\x0401\x90\x06U\x90\x06astern Standard Time/\xC20A\x0401\x90\x0BU\x90\x0Bghanistan Standard Time/\xC20A\x0301\x82F\x82\xC3aet\x1E=skan Standard Time/\xC20U\x0401\x92&S\x92&utian Standard Time/\xC20U\x0401\x92%S\x92%ai Standard Time/\xC20R\x0401\x91gU\x91g\xC2agsb\xC2 i-Standard Time/\xC60BKQSY\x04\x07\n\r\x1001\x91{H\x90\x14W\x91\x17A\x91bA\x91{E\x92T\xC2ac#n Standard Time/\xC40AOZ\x03\x05\x0801\x81E\x81M\x91PZ\x922 Standard Time/\xC20I\x0401\x91\x04Q\x91\x04entina Standard Time/\xC20A\x0401\x90\x01R\x90\x01trakhan Standard Time/\xC20R\x0401\x91fU\x91flantic Standard Time/\xC40BCG\x04\x07\n01\x90*M\x90\x17A\x90*L\x90js Central W. Standard Time/\xC20A\x0401\x90\x07U\x90\x07\xC2eo!rbaijan Standard Time/\xC20A\x0401\x90\rZ\x90\rres Standard Time/\xC30GP\x04\x0701\x91_L\x90iT\x91_\xC3aeoFe\xC2hn\x1Cia Standard Time/\xC20B\x0401\x90\"R\x90\"gladesh Standard Time/\xC20B\x0401\x90\x10\xC2DT\x02\x90\x10\x90$larus Standard Time/\xC20B\x0401\x90&Y\x90&ugainville Standard Time/\xC20P\x0401\x91WG\x91W\xE1daehu\0\x02\x02n\x1En\xC3npu%Kada Central Standard Time/\xC20C\x0401\x90+A\x90+e Verde Standard Time/\xC30CZ\x04\x0701\x90DV\x90DZ\x92=casus Standard Time/\xC20A\x0301\x86M\x86n\xE1b.t\0$ Australia Standard Time/\xC20A\x0401\x90\x04U\x90\x04ral \xE1eABEPS\0\0\x01\x01v\x98\x019\xC2msBerica Standard Time/\xC90BCEGHNSZ\x04\x07\n\r\x10\x13\x16\x1901\x90sZ\x90'R\x90BC\x90NT\x90sN\x90yI\x91HV\x92\x0CZ\x92Bia Standard Time/\xC60ACIKZ\x04\x07\n\r\x1001\x91\x0EQ\x90\0N\x90@O\x91\x03G\x91\x0EZ\x924razilian Standard Time/\xC20B\x0401\x90\x1CR\x90\x1Curope\xC2 a6Standard Time/\xC70ACHMRS\x04\x06\t\x0C\x0F\x1201\x90|L\x85Z\x90GU\x90|E\x91)S\x91e\xC2IK\x02\x92\x02\x92\x04n Standard Time/\xC50BHMP\x04\x07\n\r01\x91ZA\x90\x0ER\x90zK\x91,L\x91Zacific Standard Time/\xC70AFNSVZ\x04\x06\t\x0C\x0F\x1201\x91|Q\x89M\x90[C\x91DB\x91|U\x92QZ\x929tandard Time\xC2 /\x14(Mexico)/\xC20M\x0401\x91>X\x91>\xC40CMU\x04\x07\n01\x92'A\x90/X\x91=S\x92'\xC2ai&tham Islands Standard Time/\xC20N\x0401\x91OZ\x91Ona Standard Time/\xC40CHM\x04\x07\n01\x90?N\x90?K\x90xO\x911ba Standard Time/\xC20C\x0401\x90CU\x90Cateline Standard Time/\xC20Z\x0401\x92HZ\x92H\xE1d.agk\0\x01\x01\xC5(E \xC3AESy\x98\xC2fuTrica Standard Time/\xCB0ADEKMSTUYZ\x04\x06\t\x11\x19\x1C\x1F\"%(01\x91\rQ\x8FJ\x90I\xC2RT\x02\x90S\x90V\xC2EM\x02\x91\r\x91\x13G\x91*O\x92\x08Z\x92\x1FG\x92\"T\x92UZ\x921stralia Standard Time/\xC20A\x0401\x90\x05U\x90\x05urope Standard Time/\xC20M\x0401\x91(D\x91(outh America Standard Time/\xC20B\x0401\x90!R\x90!ster\xC2 n Island Standard Time/\xC20C\x0401\x90;L\x90; Standard Time\xC2 /\x14(Mexico)/\xC20M\x0401\x91;X\x91;\xC40BCU\x04\x07\n01\x92,S\x90#A\x90-S\x92,ypt Standard Time/\xC20E\x0401\x90QG\x90Qaterinburg Standard Time/\xC20R\x0401\x91xU\x91x\xC2Li9E Standard Time/\xC70ABEFLU\x04\x07\n\r\x10\x1801\x92 X\x90XG\x90\x13E\x90PI\x90W\xC2TV\x02\x91\"\x91$A\x92 ji Standard Time/\xC20F\x0401\x90YJ\x90Y\xE1dMTer\0\0\0>c\x83T Standard Time/\xC70EFGIJP\x04\x07\n\x12\x1A\x1D01\x90`S\x90TO\x90]\xC2BG\x02\x90`\x90d\xC2EM\x02\x91\0\x91\x01E\x91\tT\x91^B Standard Time/\xC40CGR\x04\x07\n01\x91dY\x90FR\x90qO\x91dorgian Standard Time/\xC20G\x0401\x90bE\x90been\xC2lw\x1Dand Standard Time/\xC20G\x0401\x90hL\x90hich Standard Time/\xC90BCGILMST\x04\x07\n\x1E!$,801\x91\x06F\x90\x12I\x909\xC5HLMNW\x02\x04\x06\x08\x90e\x90g\x90k\x90l\x90uS\x91\x06R\x91 \xC2LR\x02\x91-\x914\xC3HLN\x02\x04\x92\x01\x92\x05\x92\x07G\x92\x13a\xC2iw\x1Cti Standard Time/\xC20H\x0401\x90{T\x90{aiian Standard Time/\xC50CPUZ\x04\x07\n\r01\x92)K\x90:F\x91US\x92)Z\x92F\xC3nrs\x1D9dia Standard Time/\xC20I\x0401\x91\x02N\x91\x02an Standard Time/\xC20I\x0401\x91\x05R\x91\x05rael Standard Time/\xC20I\x0401\x91\x08L\x91\x08ordan Standard Time/\xC20J\x0401\x91\x0BO\x91\x0B\xC2ao#liningrad Standard Time/\xC20R\x0401\x91kU\x91krea Standard Time/\xC20K\x0401\x91\x16R\x91\x16\xC2ioH\xC2bn\x1Cya Standard Time/\xC20L\x0401\x91%Y\x91%e Islands Standard Time/\xC30KZ\x04\x0701\x91\x10I\x91\x10Z\x92<rd Howe Standard Time/\xC20A\x0401\x90\tU\x90\t\xE1daioy\0\0\x01\x90\xB3=\xC3gru@`a\xC2dl\x1Can Standard Time/\xC20R\x0401\x91iU\x91ilanes Standard Time/\xC20C\x0401\x90<L\x90<quesas Standard Time/\xC20P\x0401\x91TF\x91Tritius Standard Time/\xC40MRS\x04\x07\n01\x917U\x917E\x91cC\x91}ddle East Standard Time/\xC20L\x0401\x91\x1CB\x91\x1C\xC3nru!Dtevideo Standard Time/\xC20U\x0401\x92IY\x92Iocco Standard Time/\xC30EM\x04\x0701\x91&H\x90RA\x91&ntain Standard Time\xC2 /\x14(Mexico)/\xC20M\x0401\x91?X\x91?\xC40CMU\x04\x07\n01\x92(A\x90)X\x91:S\x92(anmar Standard Time/\xC30CM\x04\x0701\x91.C\x903M\x91.\xE1d.aeo\0\0\0'F\xB1 Central Asia Standard Time/\xC20R\x0401\x91pU\x91pmibia Standard Time/\xC20N\x0401\x91CA\x91C\xC2pw\x1Cal Standard Time/\xC20N\x0401\x91KP\x91K\xC2 f%Zealand Standard Time/\xC30AN\x04\x0601\x91NQ\x8DZ\x91Noundland Standard Time/\xC20C\x0401\x90,A\x90,r\xC2ft\x1Dolk Standard Time/\xC20N\x0401\x91FF\x91Fh \xC2AK=sia \xC2ES\x1Dast Standard Time/\xC20R\x0401\x91jU\x91jtandard Time/\xC20R\x0401\x91lU\x91lorea Standard Time/\xC20K\x0401\x91\x15P\x91\x15msk Standard Time/\xC20R\x0401\x91oU\x91oa\xC3ckrWvific S\xC2At\x1A Standard Time/\xC20C\x0401\x90=L\x90=andard Time\xC2 /\x14(Mexico)/\xC20M\x0401\x91@X\x91@\xC30CU\x04\x0701\x92+A\x90.S\x92+istan Standard Time/\xC20P\x0401\x91YK\x91Yaguay Standard Time/\xC20P\x0401\x91aY\x91ayzylorda Standard Time/\xC20K\x0401\x91\x19Z\x91\x19\xC2ou.mance Standard Time/\xC50BDEF\x04\x07\n\r01\x90^E\x90\x11K\x90JS\x90UR\x90^ssia\xC2 n6Time Zone \xC213\x1C\xC201\x0C/\xC20R\x0401\x91sU\x91s/\xC20R\x0401\x91qU\x91q/\xC20R\x0401\x91mU\x91m Standard Time/\xC30RU\x04\x0701\x91nU\x91nA\x92!\xE1hAEaioruy\x01\x01\x02\x02\x02\x02\x02\"c\x08B\xBC\xDD\xFA \xE1cEPW\0\08\x80astern Standard Time/\xC70ABFGSZ\x04\x06\t\x0C\x0F\x1201\x90cQ\x8ER\x90\x1EK\x90ZF\x90cR\x92\tZ\x92?acific Standard Time/\xC80BCEJKPZ\x04\x07\x0F\x12\x15\x18 01\x90AR\x90 \xC2AO\x02\x902\x90AC\x90OM\x91\nY\x91\x18\xC2AE\x02\x91Q\x91RZ\x92Aestern Standard Time/\xCE0ABCDGKLMPSTVZ\x04\x0E\")1=@CORUXd01\x90\x19\xC3GIW\x01\x02\x83\x84\x90\x0C\xC5BLOQR\x02\x04\x06\x08\x90\x0F\x90o\x90\x19\x90\x1A\x90\x1F\xC2AW\x02\x900\x87\xC2MO\x02\x90K\x90L\xC3DPY\x02\x04\x90a\x90m\x90vN\x91\x14C\x91\x1D\xC3FQS\x02\x04\x90n\x913\x915R\x91]X\x92\rT\x92\x1C\xC3CGI\x02\x04\x92L\x92N\x92OZ\x92@ Asia Standard Time/\xC90ACIKLTVZ\x04\x06\t\x0C\x0F\x12\x15\x1801\x92\x14Q\x8AX\x90ED\x90~H\x91\x0FA\x91\x1BH\x92\x14N\x92PZ\x925\xC5ikmor#B^}nt Pierre Standard Time/\xC20P\x0401\x91[M\x91[halin Standard Time/\xC20R\x0401\x91uU\x91uoa Standard Time/\xC20W\x0401\x92SS\x92S Tome Standard Time/\xC20S\x0401\x92\x0BT\x92\x0Batov Standard Time/\xC20R\x0401\x91rU\x91rngapore Standard Time/\xC70BIMPSZ\x04\x07\n\r\x10\x1301\x92\0N\x90\x18D\x90\x7FY\x91AH\x91XG\x92\0Z\x926uth \xC2ASTfrica Standard Time/\xC80BCLMRSZ\x04\x0C\x0F\x12\x1A\x1D 01\x92V\xC2IW\x02\x90\x15\x90%D\x904S\x91!\xC2WZ\x02\x919\x91BW\x91zZ\x92\x0F\xC4AMWZ\x02\x04\x06\x92V\x92W\x92X\x920udan Standard Time/\xC20S\x0401\x92\nS\x92\ni Lanka Standard Time/\xC20L\x0401\x91\x1FK\x91\x1Fdan Standard Time/\xC20S\x0401\x91~D\x91~ria Standard Time/\xC20S\x0401\x92\x0EY\x92\x0E\xE1daoru\0\0\0@\xD0\xF3\xC2is\x1Dpei Standard Time/\xC20T\x0401\x92\x1EW\x92\x1Emania Standard Time/\xC20A\x0401\x90\x08U\x90\x08\xC4ckmn Plantins Standard Time/\xC20B\x0401\x90\x1BR\x90\x1Byo Standard Time/\xC60IJPTZ\x04\x07\n\r\x1001\x91\x0CD\x90}P\x91\x0CW\x91`L\x92\x17Z\x927sk Standard Time/\xC20R\x0401\x91tU\x91tga Standard Time/\xC20T\x0401\x92\x1AO\x92\x1Aansbaikal Standard Time/\xC20R\x0401\x91hU\x91hrk\xC2es\x1By Standard Time/\xC20T\x0401\x92\x1BR\x92\x1B And Caicos Standard Time/\xC20T\x0401\x92\x10C\x92\x10\xE1cSTl\0\x01U\n \xC2EM astern Standard Time/\xC20U\x0401\x92*S\x92*ountain Standard Time/\xC50CMUZ\x04\x07\n\r01\x92-A\x90(X\x91<S\x92-Z\x92CC\xC3+-/E\xA31\xC223*/\xC80KMNTUWZ\x04\x07\n\r\x10\x13\x1601\x92:I\x91\x12H\x91+R\x91LV\x92\x1DM\x92#F\x92RZ\x92:/\xC40KTZ\x04\x07\n01\x92;I\x91\x11K\x92\x16Z\x92;\xC201>\xC3289\x16'/\xC40BGZ\x04\x07\n01\x92>R\x90\x1DS\x90rZ\x92>/\xC30PZ\x04\x0701\x92DN\x91\\Z\x92D/\xC30PZ\x04\x0701\x92EF\x91SZ\x92E1/\xC50ANUZ\x04\x07\n\r01\x92GS\x90\x02U\x91MM\x92$Z\x92G\xC20Z\x0401\x92.Z\x92.aanbaatar Standard Time/\xC20M\x0401\x910N\x910\xC3elo!Dnezuela Standard Time/\xC20V\x0401\x92ME\x92Madivostok Standard Time/\xC20R\x0401\x91wU\x91wlgograd Standard Time/\xC20R\x0401\x91vU\x91v\xE1b.e\x01\x1D \xE1dACEM\0\0\0\"\x87\xEFustralia Standard Time/\xC20A\x0401\x90\nU\x90\nentral Africa Standard Time/\xC90ABCDGNTZ\x04\x06\t\x19\x1C$,401\x91GO\x88J\x90\x16\xC4DFGM\x02\x04\x06\x905\x906\x907\x90>Z\x90M\xC2AQ\x02\x90_\x90p\xC2EG\x02\x91E\x91G\xC2DN\x02\x92\x11\x92\x19Z\x92/urope Standard Time/\xCB0ACDGILMNSV\x04\x0B\x0E\x11\x14\x17\x1F'/;01\x90H\xC2DT\x01\x80\x90\x03H\x908E\x90HI\x90fT\x91\x07\xC2IU\x02\x91\x1E\x91#\xC2CT\x02\x91'\x916\xC2LO\x02\x91I\x91J\xC3EJM\x02\x04\x91\x7F\x92\x03\x92\x06A\x92Kongolia Standard Time/\xC20M\x0401\x91/N\x91/st \xC3ABP>[sia Standard Time/\xC70AKMTUZ\x04\x06\t\x0C\x18\x1B01\x92JQ\x8CZ\x91\x1AV\x918\xC3FJM\x02\x04\x92\x12\x92\x15\x92\x18Z\x92JZ\x923ank Standard Time/\xC20P\x0401\x90wS\x90wacific Standard Time/\xC70AFGMPZ\x04\x06\t\x0C\x0F\x1201\x91VQ\x8BM\x90\\U\x90tP\x912G\x91VZ\x928\xC2au\x1Fkutsk Standard Time/\xC20R\x0401\x91yU\x91ykon Standard Time/\xC20C\x0401\x901A\x901") } }, bcp47_ids: unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"adalv\0\0\0aedxb\0\0\0afkbl\0\0\0aganu\0\0\0aiaxa\0\0\0altia\0\0\0amevn\0\0\0ancur\0\0\0aolad\0\0\0aqcas\0\0\0aqdav\0\0\0aqddu\0\0\0aqmaw\0\0\0aqmcm\0\0\0aqrot\0\0\0aqsyw\0\0\0aqvos\0\0\0arbue\0\0\0asppg\0\0\0atvie\0\0\0auadl\0\0\0aubne\0\0\0audrw\0\0\0aueuc\0\0\0auhba\0\0\0auldh\0\0\0auper\0\0\0ausyd\0\0\0awaua\0\0\0azbak\0\0\0basjj\0\0\0bbbgi\0\0\0bddac\0\0\0bebru\0\0\0bfoua\0\0\0bgsof\0\0\0bhbah\0\0\0bibjm\0\0\0bjptn\0\0\0bmbda\0\0\0bnbwn\0\0\0bolpb\0\0\0bqkra\0\0\0braux\0\0\0brcgb\0\0\0brfen\0\0\0brfor\0\0\0brmao\0\0\0brrbr\0\0\0brsao\0\0\0brssa\0\0\0bsnas\0\0\0btthi\0\0\0bwgbe\0\0\0bymsq\0\0\0bzbze\0\0\0cacfq\0\0\0caedm\0\0\0cahal\0\0\0careg\0\0\0casjf\0\0\0cator\0\0\0cavan\0\0\0cawnp\0\0\0caybx\0\0\0cayxy\0\0\0cayzs\0\0\0cccck\0\0\0cdfbm\0\0\0cdfih\0\0\0cfbgf\0\0\0cgbzv\0\0\0chzrh\0\0\0ciabj\0\0\0ckrar\0\0\0clipc\0\0\0clpuq\0\0\0clscl\0\0\0cmdla\0\0\0cnsha\0\0\0cnurc\0\0\0cobog\0\0\0crsjo\0\0\0cuhav\0\0\0cvrai\0\0\0cxxch\0\0\0cynic\0\0\0czprg\0\0\0deber\0\0\0djjib\0\0\0dkcph\0\0\0dmdom\0\0\0dosdq\0\0\0dzalg\0\0\0ecgps\0\0\0ecgye\0\0\0eetll\0\0\0egcai\0\0\0eheai\0\0\0erasm\0\0\0eslpa\0\0\0esmad\0\0\0etadd\0\0\0fihel\0\0\0fimhq\0\0\0fjsuv\0\0\0fkpsy\0\0\0fmpni\0\0\0fmtkk\0\0\0fotho\0\0\0frpar\0\0\0galbv\0\0\0gblon\0\0\0gdgnd\0\0\0getbs\0\0\0gfcay\0\0\0gggci\0\0\0ghacc\0\0\0gigib\0\0\0gldkshvnglgoh\0\0\0globy\0\0\0glthu\0\0\0gmbjl\0\0\0gncky\0\0\0gpbbr\0\0\0gpmsb\0\0\0gpsbh\0\0\0gqssg\0\0\0grath\0\0\0gsgrv\0\0\0gtgua\0\0\0gugum\0\0\0gwoxb\0\0\0gygeo\0\0\0hebron\0\0hkhkg\0\0\0hntgu\0\0\0hrzag\0\0\0htpap\0\0\0hubud\0\0\0iddjj\0\0\0idjkt\0\0\0idmak\0\0\0iedub\0\0\0imdgs\0\0\0inccu\0\0\0iodga\0\0\0iqbgw\0\0\0irthr\0\0\0isrey\0\0\0itrom\0\0\0jeruslm\0jesth\0\0\0jmkin\0\0\0joamm\0\0\0jptyo\0\0\0kenbo\0\0\0kgfru\0\0\0khpnh\0\0\0kicxi\0\0\0kipho\0\0\0kitrw\0\0\0kmyva\0\0\0knbas\0\0\0kpfnj\0\0\0krsel\0\0\0kwkwi\0\0\0kygec\0\0\0kzkzo\0\0\0kzura\0\0\0lavte\0\0\0lbbey\0\0\0lccas\0\0\0livdz\0\0\0lkcmb\0\0\0lrmlw\0\0\0lsmsu\0\0\0ltvno\0\0\0lulux\0\0\0lvrix\0\0\0lytip\0\0\0macas\0\0\0mcmon\0\0\0mdkiv\0\0\0metgd\0\0\0mgtnr\0\0\0mhmaj\0\0\0mkskp\0\0\0mlbko\0\0\0mmrgn\0\0\0mnhvd\0\0\0mnuln\0\0\0momfm\0\0\0mpspn\0\0\0mqfdf\0\0\0mrnkc\0\0\0msmni\0\0\0mtmla\0\0\0muplu\0\0\0mvmle\0\0\0mwblz\0\0\0mxcjs\0\0\0mxcun\0\0\0mxhmo\0\0\0mxmam\0\0\0mxmex\0\0\0mxmzt\0\0\0mxtij\0\0\0mykul\0\0\0mzmpm\0\0\0nawdh\0\0\0ncnou\0\0\0nenim\0\0\0nfnlk\0\0\0nglos\0\0\0nimga\0\0\0nlams\0\0\0noosl\0\0\0npktm\0\0\0nrinu\0\0\0nuiue\0\0\0nzakl\0\0\0nzcht\0\0\0ommct\0\0\0papty\0\0\0pelim\0\0\0pfgmr\0\0\0pfnhv\0\0\0pfppt\0\0\0pgpom\0\0\0pgraw\0\0\0phmnl\0\0\0pkkhi\0\0\0plwaw\0\0\0pmmqc\0\0\0pnpcn\0\0\0prsju\0\0\0ptlis\0\0\0ptpdl\0\0\0pwror\0\0\0pyasu\0\0\0qadoh\0\0\0rereu\0\0\0robuh\0\0\0rsbeg\0\0\0ruasf\0\0\0rubax\0\0\0ruchita\0rugdx\0\0\0ruikt\0\0\0rukgd\0\0\0rukra\0\0\0rukuf\0\0\0rumow\0\0\0ruoms\0\0\0ruovb\0\0\0rupkc\0\0\0rurtw\0\0\0rusred\0\0rutof\0\0\0ruuus\0\0\0ruvog\0\0\0ruvvo\0\0\0ruyek\0\0\0ruyks\0\0\0rwkgl\0\0\0saruh\0\0\0sbhir\0\0\0scmaw\0\0\0sdkrt\0\0\0sesto\0\0\0sgsin\0\0\0shshn\0\0\0silju\0\0\0sjlyr\0\0\0skbts\0\0\0slfna\0\0\0smsai\0\0\0sndkr\0\0\0somgq\0\0\0srpbm\0\0\0ssjub\0\0\0sttms\0\0\0svsal\0\0\0sxphi\0\0\0sydam\0\0\0szqmn\0\0\0tcgdt\0\0\0tdndj\0\0\0tfpfr\0\0\0tglfw\0\0\0thbkk\0\0\0tjdyu\0\0\0tkfko\0\0\0tldil\0\0\0tmasb\0\0\0tntun\0\0\0totbu\0\0\0trist\0\0\0ttpos\0\0\0tvfun\0\0\0twtpe\0\0\0tzdar\0\0\0uaiev\0\0\0uasip\0\0\0ugkla\0\0\0umawk\0\0\0ummdy\0\0\0usadk\0\0\0usanc\0\0\0uschi\0\0\0usden\0\0\0ushnl\0\0\0usind\0\0\0uslax\0\0\0usnyc\0\0\0usphx\0\0\0utc\0\0\0\0\0utce01\0\0utce02\0\0utce03\0\0utce04\0\0utce05\0\0utce06\0\0utce07\0\0utce08\0\0utce09\0\0utce10\0\0utce11\0\0utce12\0\0utce13\0\0utce14\0\0utcw01\0\0utcw02\0\0utcw03\0\0utcw04\0\0utcw05\0\0utcw06\0\0utcw07\0\0utcw08\0\0utcw09\0\0utcw10\0\0utcw11\0\0utcw12\0\0uymvd\0\0\0uztas\0\0\0vavat\0\0\0vcsvd\0\0\0veccs\0\0\0vgtov\0\0\0vistt\0\0\0vnsgn\0\0\0vuvli\0\0\0wfmau\0\0\0wsapw\0\0\0yeade\0\0\0ytmam\0\0\0zajnb\0\0\0zmlun\0\0\0zwhre\0\0\0") } };
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DataProvider<icu::time::provider::windows::TimeZoneWindowsV1> for $provider {
-            fn load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponse<icu::time::provider::windows::TimeZoneWindowsV1>, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponse { payload: icu_provider::DataPayload::from_static_ref(Self::SINGLETON_TIME_ZONE_WINDOWS_V1), metadata: icu_provider::DataResponseMetadata::default() })
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::windows::TimeZoneWindowsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , ITER) => {
-        __impl_time_zone_windows_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::windows::TimeZoneWindowsV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-    ($ provider : ty , DRY) => {
-        __impl_time_zone_windows_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::windows::TimeZoneWindowsV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default())
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::windows::TimeZoneWindowsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-    };
-    ($ provider : ty , DRY , ITER) => {
-        __impl_time_zone_windows_v1!($provider);
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::DryDataProvider<icu::time::provider::windows::TimeZoneWindowsV1> for $provider {
-            fn dry_load(&self, req: icu_provider::DataRequest) -> Result<icu_provider::DataResponseMetadata, icu_provider::DataError> {
-                if req.id.locale.is_default() {
-                    Ok(icu_provider::DataResponseMetadata::default())
-                } else {
-                    Err(icu_provider::DataErrorKind::InvalidRequest.with_req(<icu::time::provider::windows::TimeZoneWindowsV1 as icu_provider::DataMarker>::INFO, req))
-                }
-            }
-        }
-        #[clippy::msrv = "1.81"]
-        impl icu_provider::IterableDataProvider<icu::time::provider::windows::TimeZoneWindowsV1> for $provider {
-            fn iter_ids(&self) -> Result<std::collections::BtreeSet<icu_provider::DataIdentifierCow<'static>>, icu_provider::DataError> {
-                Ok([Default::default()].into_iter().collect())
-            }
-        }
-    };
-}
-#[doc(inline)]
-pub use __impl_time_zone_windows_v1 as impl_time_zone_windows_v1;
diff --git a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/lib.rs
deleted file mode 100644
index f15e2cc2..0000000
--- a/third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/lib.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-//! Data for the `icu_time` crate
-//!
-//! This data was generated with CLDR version 47.0.0-BETA1, ICU version release-77-rc, and
-//! LSTM segmenter version v0.1.0.
-
-#![no_std]
-// The source is not readable and is massive as HTML.
-#![doc(html_no_source)]
-
-#[cfg(icu4x_custom_data)]
-include!(concat!(core::env!("ICU4X_DATA_DIR"), "/mod.rs"));
-#[cfg(not(icu4x_custom_data))]
-include!("../data/mod.rs");
-
-#[rustfmt::skip]
-pub use icu_provider_baked;
diff --git a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/Cargo.toml
deleted file mode 100644
index d099afd4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/Cargo.toml
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `unicode-bidi-0.3.18` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "unicode-bidi"
-version = "0.3.18"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-"bench_it" = []
-"default" = []
-"flame" = []
-"flame_it" = []
-"flamer" = []
-"hardcoded-data" = []
-"serde" = []
-"smallvec" = []
-"std" = []
-"unstable" = []
-"with_serde" = []
-
diff --git a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/src/lib.rs
deleted file mode 100644
index 1c5c78a..0000000
--- a/third_party/rust/chromium_crates_io/vendor/unicode-bidi-v0_3/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `unicode-bidi-0.3.18` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/.cargo-checksum.json
deleted file mode 100644
index 697c9ce..0000000
--- a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/Cargo.toml
deleted file mode 100644
index 6e48c1e4..0000000
--- a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from `tools/crates/gnrt/removed_Cargo.toml.hbs`
-# by `tools/crates/run_gnrt.py vendor`. Do not edit!
-#
-# This is an empty placeholder that has replaced the
-# `utf16_iter-1.0.5` crate.
-#
-# See `//tools/crates/gnrt/removed_crate.md` to learn more.
-
-[package]
-name = "utf16_iter"
-version = "1.0.5"
-
-[package.metadata.gnrt]
-is_placeholder = true
-
-[features]
-
diff --git a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/src/lib.rs
deleted file mode 100644
index 88f82151..0000000
--- a/third_party/rust/chromium_crates_io/vendor/utf16_iter-v1/src/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// @generated from `tools/crates/gnrt/removed_lib.rs.hbs`
-// by `tools/crates/run_gnrt.py vendor`. Do not edit!
-//
-// This is an empty placeholder that has replaced the
-// `utf16_iter-1.0.5` crate.
-//
-// See `//tools/crates/gnrt/removed_crate.md` to learn more.
diff --git a/third_party/rust/crossbeam_utils/v0_8/BUILD.gn b/third_party/rust/crossbeam_utils/v0_8/BUILD.gn
deleted file mode 100644
index af39994..0000000
--- a/third_party/rust/crossbeam_utils/v0_8/BUILD.gn
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from third_party/rust/chromium_crates_io/BUILD.gn.hbs by
-# tools/crates/gnrt.
-# Do not edit!
-
-import("//build/rust/cargo_crate.gni")
-
-cargo_crate("lib") {
-  crate_name = "crossbeam_utils"
-  epoch = "0.8"
-  enabled = current_cpu == "arm"
-  crate_type = "rlib"
-  crate_root = "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/lib.rs"
-  sources = [
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/atomic/atomic_cell.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/atomic/consume.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/atomic/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/atomic/seq_lock.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/atomic/seq_lock_wide.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/backoff.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/cache_padded.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/lib.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/sync/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/sync/once_lock.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/sync/parker.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/sync/sharded_lock.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/sync/wait_group.rs",
-    "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/src/thread.rs",
-  ]
-  inputs = []
-
-  build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_name = "crossbeam-utils"
-  cargo_pkg_description = "Utilities for concurrent programming"
-  cargo_pkg_version = "0.8.21"
-
-  allow_unsafe = false
-
-  features = [
-    "default",
-    "std",
-  ]
-  build_root = "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/build.rs"
-  build_sources = [ "//third_party/rust/chromium_crates_io/vendor/crossbeam-utils-v0_8/build.rs" ]
-
-  # Only for usage from third-party crates. Add the crate to
-  # //third_party/rust/chromium_crates_io/Cargo.toml to use
-  # it from first-party code.
-  visibility = [ "//third_party/rust/*" ]
-
-  #####################################################################
-  # Tweaking which GN `config`s apply to this target.
-
-  # Config changes that apply to all `//third_party/rust` crates.
-  _configs_to_remove = [
-    # We don't need code coverage data for any `chromium_crates_io` crates.
-    "//build/config/coverage:default_coverage",
-
-    # This is third-party code, so remove `chromium_code` config.  We are not
-    # at the same time adding `//build/config/compiler:no_chromium_code`,
-    # because 1) we don't want to pull how warnings are handled by that config
-    # and 2) that config doesn't have any non-warnings-related stuff.
-    "//build/config/compiler:chromium_code",
-  ]
-  _configs_to_add = []
-
-  # Changing (if needed) which configs apply to this specific crate (based on
-  # `extra_kv.configs_to_remove` and `extra_kv.configs_to_add` from
-  # `gnrt_config.toml`).
-  _configs_to_remove += []
-  _configs_to_add += []
-
-  # Applying config changes.
-  library_configs -= _configs_to_remove
-  library_configs += _configs_to_add
-  executable_configs -= _configs_to_remove
-  executable_configs += _configs_to_add
-  proc_macro_configs -= _configs_to_remove
-  proc_macro_configs += _configs_to_add
-}
diff --git a/third_party/rust/icu_calendar/v2/BUILD.gn b/third_party/rust/icu_calendar/v2/BUILD.gn
index c654916..9171db5 100644
--- a/third_party/rust/icu_calendar/v2/BUILD.gn
+++ b/third_party/rust/icu_calendar/v2/BUILD.gn
@@ -63,16 +63,11 @@
     "//third_party/rust/icu_calendar_data/v2:lib",
     "//third_party/rust/icu_locale_core/v2:lib",
     "//third_party/rust/icu_provider/v2:lib",
-    "//third_party/rust/ixdtf/v0_4:lib",
     "//third_party/rust/tinystr/v0_8:lib",
     "//third_party/rust/writeable/v0_6:lib",
     "//third_party/rust/zerovec/v0_11:lib",
   ]
-  features = [
-    "alloc",
-    "compiled_data",
-    "ixdtf",
-  ]
+  features = [ "compiled_data" ]
 
   # Only for usage from third-party crates. Add the crate to
   # //third_party/rust/chromium_crates_io/Cargo.toml to use
diff --git a/third_party/rust/icu_capi/v2/BUILD.gn b/third_party/rust/icu_capi/v2/BUILD.gn
deleted file mode 100644
index cfbd228..0000000
--- a/third_party/rust/icu_capi/v2/BUILD.gn
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from third_party/rust/chromium_crates_io/BUILD.gn.hbs by
-# tools/crates/gnrt.
-# Do not edit!
-
-import("//build/rust/cargo_crate.gni")
-
-cargo_crate("lib") {
-  crate_name = "icu_capi"
-  epoch = "2"
-  crate_type = "rlib"
-  crate_root =
-      "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/lib.rs"
-  sources = [
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/bidi.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/calendar.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/casemap.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collator.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/collections_sets.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/date.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/datetime_formatter.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/decimal.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/displaynames.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/errors.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/exemplar_chars.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fallbacker.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/fixed_decimal.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/iana_parser.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/lib.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/list.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_core.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/locale_directionality.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/logging.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/neo_datetime.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/normalizer_properties.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/pluralrules.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_bidi.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_enums.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_iter.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_maps.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_names.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_sets.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/properties_unisets.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/provider.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/script.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_grapheme.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_line.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_sentence.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/segmenter_word.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/time.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/timezone.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/units_converter.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/utc_offset.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/week.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/windows_parser.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_datetime.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_capi-v2/src/zoned_formatter.rs",
-  ]
-  inputs = []
-
-  build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_authors = "The ICU4X Project Developers"
-  cargo_pkg_name = "icu_capi"
-  cargo_pkg_description = "C interface to ICU4X"
-  cargo_pkg_version = "2.0.0-beta2"
-
-  allow_unsafe = false
-
-  deps = [
-    "//third_party/rust/diplomat/v0_10:lib",
-    "//third_party/rust/diplomat_runtime/v0_10:lib",
-    "//third_party/rust/icu_calendar/v2:lib",
-    "//third_party/rust/icu_casemap/v2:lib",
-    "//third_party/rust/icu_experimental/v0_3:lib",
-    "//third_party/rust/icu_locale_core/v2:lib",
-    "//third_party/rust/icu_provider/v2:lib",
-    "//third_party/rust/icu_provider_adapters/v2:lib",
-    "//third_party/rust/icu_time/v2:lib",
-    "//third_party/rust/potential_utf/v0_1:lib",
-    "//third_party/rust/tinystr/v0_8:lib",
-    "//third_party/rust/writeable/v0_6:lib",
-    "//third_party/rust/zerovec/v0_11:lib",
-  ]
-  features = [
-    "calendar",
-    "casemap",
-    "compiled_data",
-    "experimental",
-  ]
-
-  #####################################################################
-  # Tweaking which GN `config`s apply to this target.
-
-  # Config changes that apply to all `//third_party/rust` crates.
-  _configs_to_remove = [
-    # We don't need code coverage data for any `chromium_crates_io` crates.
-    "//build/config/coverage:default_coverage",
-
-    # This is third-party code, so remove `chromium_code` config.  We are not
-    # at the same time adding `//build/config/compiler:no_chromium_code`,
-    # because 1) we don't want to pull how warnings are handled by that config
-    # and 2) that config doesn't have any non-warnings-related stuff.
-    "//build/config/compiler:chromium_code",
-  ]
-  _configs_to_add = []
-
-  # Changing (if needed) which configs apply to this specific crate (based on
-  # `extra_kv.configs_to_remove` and `extra_kv.configs_to_add` from
-  # `gnrt_config.toml`).
-  _configs_to_remove += []
-  _configs_to_add += []
-
-  # Applying config changes.
-  library_configs -= _configs_to_remove
-  library_configs += _configs_to_add
-  executable_configs -= _configs_to_remove
-  executable_configs += _configs_to_add
-  proc_macro_configs -= _configs_to_remove
-  proc_macro_configs += _configs_to_add
-}
diff --git a/third_party/rust/icu_capi/v2/README.chromium b/third_party/rust/icu_capi/v2/README.chromium
deleted file mode 100644
index fb813f6..0000000
--- a/third_party/rust/icu_capi/v2/README.chromium
+++ /dev/null
@@ -1,10 +0,0 @@
-Name: icu_capi
-URL: https://crates.io/crates/icu_capi
-Version: 2.0.0-beta2
-Revision: 40c3a646731f4a14422c534a9eb5204c2008e623
-License: Unicode-3.0
-License File: //third_party/rust/chromium_crates_io/vendor/icu_capi-v2/LICENSE
-Shipped: yes
-Security Critical: yes
-
-Description: C interface to ICU4X
diff --git a/third_party/rust/icu_provider_adapters/v2/BUILD.gn b/third_party/rust/icu_provider_adapters/v2/BUILD.gn
deleted file mode 100644
index cfcea752..0000000
--- a/third_party/rust/icu_provider_adapters/v2/BUILD.gn
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from third_party/rust/chromium_crates_io/BUILD.gn.hbs by
-# tools/crates/gnrt.
-# Do not edit!
-
-import("//build/rust/cargo_crate.gni")
-
-cargo_crate("lib") {
-  crate_name = "icu_provider_adapters"
-  epoch = "2"
-  crate_type = "rlib"
-  crate_root = "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/lib.rs"
-  sources = [
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/either.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/empty.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fallback/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/impls.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/filter/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fixed.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/by_error.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/fork/predicates.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/src/lib.rs",
-  ]
-  inputs = []
-
-  build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_authors = "The ICU4X Project Developers"
-  cargo_pkg_name = "icu_provider_adapters"
-  cargo_pkg_description =
-      "Adapters for composing and manipulating data providers."
-  cargo_pkg_version = "2.0.0-beta2"
-
-  allow_unsafe = false
-
-  deps = [
-    "//third_party/rust/icu_locale/v2:lib",
-    "//third_party/rust/icu_provider/v2:lib",
-    "//third_party/rust/tinystr/v0_8:lib",
-    "//third_party/rust/zerovec/v0_11:lib",
-  ]
-
-  # Only for usage from third-party crates. Add the crate to
-  # //third_party/rust/chromium_crates_io/Cargo.toml to use
-  # it from first-party code.
-  visibility = [ "//third_party/rust/*" ]
-
-  #####################################################################
-  # Tweaking which GN `config`s apply to this target.
-
-  # Config changes that apply to all `//third_party/rust` crates.
-  _configs_to_remove = [
-    # We don't need code coverage data for any `chromium_crates_io` crates.
-    "//build/config/coverage:default_coverage",
-
-    # This is third-party code, so remove `chromium_code` config.  We are not
-    # at the same time adding `//build/config/compiler:no_chromium_code`,
-    # because 1) we don't want to pull how warnings are handled by that config
-    # and 2) that config doesn't have any non-warnings-related stuff.
-    "//build/config/compiler:chromium_code",
-  ]
-  _configs_to_add = []
-
-  # Changing (if needed) which configs apply to this specific crate (based on
-  # `extra_kv.configs_to_remove` and `extra_kv.configs_to_add` from
-  # `gnrt_config.toml`).
-  _configs_to_remove += []
-  _configs_to_add += []
-
-  # Applying config changes.
-  library_configs -= _configs_to_remove
-  library_configs += _configs_to_add
-  executable_configs -= _configs_to_remove
-  executable_configs += _configs_to_add
-  proc_macro_configs -= _configs_to_remove
-  proc_macro_configs += _configs_to_add
-}
diff --git a/third_party/rust/icu_provider_adapters/v2/README.chromium b/third_party/rust/icu_provider_adapters/v2/README.chromium
deleted file mode 100644
index d1b7e67c..0000000
--- a/third_party/rust/icu_provider_adapters/v2/README.chromium
+++ /dev/null
@@ -1,10 +0,0 @@
-Name: icu_provider_adapters
-URL: https://crates.io/crates/icu_provider_adapters
-Version: 2.0.0-beta2
-Revision: 40c3a646731f4a14422c534a9eb5204c2008e623
-License: Unicode-3.0
-License File: //third_party/rust/chromium_crates_io/vendor/icu_provider_adapters-v2/LICENSE
-Shipped: yes
-Security Critical: yes
-
-Description: Adapters for composing and manipulating data providers.
diff --git a/third_party/rust/icu_time/v2/BUILD.gn b/third_party/rust/icu_time/v2/BUILD.gn
deleted file mode 100644
index 0669abc..0000000
--- a/third_party/rust/icu_time/v2/BUILD.gn
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from third_party/rust/chromium_crates_io/BUILD.gn.hbs by
-# tools/crates/gnrt.
-# Do not edit!
-
-import("//build/rust/cargo_crate.gni")
-
-cargo_crate("lib") {
-  crate_name = "icu_time"
-  epoch = "2"
-  crate_type = "rlib"
-  crate_root =
-      "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/lib.rs"
-  sources = [
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/ixdtf.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/lib.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/iana.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/provider/windows.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/into_option.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/scaffold/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/types.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/iana.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/offset.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time-v2/src/zone/windows.rs",
-  ]
-  inputs = []
-
-  build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_authors = "The ICU4X Project Developers"
-  cargo_pkg_name = "icu_time"
-  cargo_pkg_description =
-      "API for resolving and manipulating time zone information"
-  cargo_pkg_version = "2.0.0-beta2"
-
-  allow_unsafe = false
-
-  deps = [
-    "//third_party/rust/calendrical_calculations/v0_1:lib",
-    "//third_party/rust/displaydoc/v0_2:lib",
-    "//third_party/rust/icu_calendar/v2:lib",
-    "//third_party/rust/icu_provider/v2:lib",
-    "//third_party/rust/icu_time_data/v2:lib",
-    "//third_party/rust/ixdtf/v0_4:lib",
-    "//third_party/rust/tinystr/v0_8:lib",
-    "//third_party/rust/writeable/v0_6:lib",
-    "//third_party/rust/zerotrie/v0_2:lib",
-    "//third_party/rust/zerovec/v0_11:lib",
-  ]
-  features = [
-    "alloc",
-    "compiled_data",
-    "ixdtf",
-  ]
-
-  # Only for usage from third-party crates. Add the crate to
-  # //third_party/rust/chromium_crates_io/Cargo.toml to use
-  # it from first-party code.
-  visibility = [ "//third_party/rust/*" ]
-
-  #####################################################################
-  # Tweaking which GN `config`s apply to this target.
-
-  # Config changes that apply to all `//third_party/rust` crates.
-  _configs_to_remove = [
-    # We don't need code coverage data for any `chromium_crates_io` crates.
-    "//build/config/coverage:default_coverage",
-
-    # This is third-party code, so remove `chromium_code` config.  We are not
-    # at the same time adding `//build/config/compiler:no_chromium_code`,
-    # because 1) we don't want to pull how warnings are handled by that config
-    # and 2) that config doesn't have any non-warnings-related stuff.
-    "//build/config/compiler:chromium_code",
-  ]
-  _configs_to_add = []
-
-  # Changing (if needed) which configs apply to this specific crate (based on
-  # `extra_kv.configs_to_remove` and `extra_kv.configs_to_add` from
-  # `gnrt_config.toml`).
-  _configs_to_remove += []
-  _configs_to_add += []
-
-  # Applying config changes.
-  library_configs -= _configs_to_remove
-  library_configs += _configs_to_add
-  executable_configs -= _configs_to_remove
-  executable_configs += _configs_to_add
-  proc_macro_configs -= _configs_to_remove
-  proc_macro_configs += _configs_to_add
-}
diff --git a/third_party/rust/icu_time/v2/README.chromium b/third_party/rust/icu_time/v2/README.chromium
deleted file mode 100644
index 3fd2844..0000000
--- a/third_party/rust/icu_time/v2/README.chromium
+++ /dev/null
@@ -1,10 +0,0 @@
-Name: icu_time
-URL: https://crates.io/crates/icu_time
-Version: 2.0.0-beta2
-Revision: 86fe50f272858bfc15640b2dd0572603b00e1210
-License: Unicode-3.0
-License File: //third_party/rust/chromium_crates_io/vendor/icu_time-v2/LICENSE
-Shipped: yes
-Security Critical: yes
-
-Description: API for resolving and manipulating time zone information
diff --git a/third_party/rust/icu_time_data/v2/BUILD.gn b/third_party/rust/icu_time_data/v2/BUILD.gn
deleted file mode 100644
index 40bac5c..0000000
--- a/third_party/rust/icu_time_data/v2/BUILD.gn
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# @generated from third_party/rust/chromium_crates_io/BUILD.gn.hbs by
-# tools/crates/gnrt.
-# Do not edit!
-
-import("//build/rust/cargo_crate.gni")
-
-cargo_crate("lib") {
-  crate_name = "icu_time_data"
-  epoch = "2"
-  crate_type = "rlib"
-  crate_root =
-      "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/lib.rs"
-  sources = [
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/lib.rs",
-  ]
-  inputs = [
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/mod.rs",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_iana_map_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_iana_map_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_iana_names_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_iana_names_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_offsets_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_offsets_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_windows_v1.rs.data",
-    "//third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/src/../data/time_zone_windows_v1.rs.data",
-  ]
-
-  build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_authors = "The ICU4X Project Developers"
-  cargo_pkg_name = "icu_time_data"
-  cargo_pkg_description = "Data for the icu_time crate"
-  cargo_pkg_version = "2.0.0-beta2"
-
-  allow_unsafe = false
-
-  deps = [ "//third_party/rust/icu_provider_baked/v2:lib" ]
-
-  # Only for usage from third-party crates. Add the crate to
-  # //third_party/rust/chromium_crates_io/Cargo.toml to use
-  # it from first-party code.
-  visibility = [ "//third_party/rust/*" ]
-
-  #####################################################################
-  # Tweaking which GN `config`s apply to this target.
-
-  # Config changes that apply to all `//third_party/rust` crates.
-  _configs_to_remove = [
-    # We don't need code coverage data for any `chromium_crates_io` crates.
-    "//build/config/coverage:default_coverage",
-
-    # This is third-party code, so remove `chromium_code` config.  We are not
-    # at the same time adding `//build/config/compiler:no_chromium_code`,
-    # because 1) we don't want to pull how warnings are handled by that config
-    # and 2) that config doesn't have any non-warnings-related stuff.
-    "//build/config/compiler:chromium_code",
-  ]
-  _configs_to_add = []
-
-  # Changing (if needed) which configs apply to this specific crate (based on
-  # `extra_kv.configs_to_remove` and `extra_kv.configs_to_add` from
-  # `gnrt_config.toml`).
-  _configs_to_remove += []
-  _configs_to_add += []
-
-  # Applying config changes.
-  library_configs -= _configs_to_remove
-  library_configs += _configs_to_add
-  executable_configs -= _configs_to_remove
-  executable_configs += _configs_to_add
-  proc_macro_configs -= _configs_to_remove
-  proc_macro_configs += _configs_to_add
-}
diff --git a/third_party/rust/icu_time_data/v2/README.chromium b/third_party/rust/icu_time_data/v2/README.chromium
deleted file mode 100644
index 052a2d48..0000000
--- a/third_party/rust/icu_time_data/v2/README.chromium
+++ /dev/null
@@ -1,10 +0,0 @@
-Name: icu_time_data
-URL: https://crates.io/crates/icu_time_data
-Version: 2.0.0-beta2
-Revision: 86fe50f272858bfc15640b2dd0572603b00e1210
-License: Unicode-3.0
-License File: //third_party/rust/chromium_crates_io/vendor/icu_time_data-v2/LICENSE
-Shipped: yes
-Security Critical: yes
-
-Description: Data for the icu_time crate
diff --git a/third_party/rust/potential_utf/v0_1/BUILD.gn b/third_party/rust/potential_utf/v0_1/BUILD.gn
index abdf1f5..3a237d0 100644
--- a/third_party/rust/potential_utf/v0_1/BUILD.gn
+++ b/third_party/rust/potential_utf/v0_1/BUILD.gn
@@ -30,13 +30,9 @@
 
   allow_unsafe = true
 
-  deps = [
-    "//third_party/rust/writeable/v0_6:lib",
-    "//third_party/rust/zerovec/v0_11:lib",
-  ]
+  deps = [ "//third_party/rust/zerovec/v0_11:lib" ]
   features = [
     "alloc",
-    "writeable",
     "zerovec",
   ]
 
diff --git a/third_party/rust/temporal_capi/BUILD.gn b/third_party/rust/temporal_capi/BUILD.gn
new file mode 100644
index 0000000..1fe0017c
--- /dev/null
+++ b/third_party/rust/temporal_capi/BUILD.gn
@@ -0,0 +1,13 @@
+# v8 depends on temporal_capi, which may occasionally update in ways that
+# change its API. Since temporal_capi lives in the chromium repo, v8 cannot
+# be atomically upgraded alongside temporal_capi changes. Instead, we have some
+# defines here that let v8 detect which version of temporal_capi is vendored.
+#
+# In case we are vendoring multiple versions of temporal_capi, it is acceptable
+# for this array to contain multiple defines.
+#
+# It is not mandatory to update this array every time temporal_capi updates; it
+# is just a convenient tool to use as needed.
+config("temporal_capi_versioning_defines") {
+  defines = [ "TEMPORAL_CAPI_VERSION_0_0_6" ]
+}
diff --git a/third_party/skia b/third_party/skia
index 0fae585..8e79825 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit 0fae585fa05766247a4916e53838f662417c0ecc
+Subproject commit 8e79825beaa25971588d6d40652d2c48f431aef1
diff --git a/third_party/wpt_tools/README.chromium b/third_party/wpt_tools/README.chromium
index 20fd7a9..53cc85c 100644
--- a/third_party/wpt_tools/README.chromium
+++ b/third_party/wpt_tools/README.chromium
@@ -2,7 +2,7 @@
 Short Name: wpt
 URL: https://github.com/web-platform-tests/wpt/
 Version: N/A
-Revision: 8701edacb0cf9c50725c5aa462528854402bb417
+Revision: c518eee7a46a7f77a9721270c2b5d6af4cecdc03
 License: BSD-3-Clause
 Security Critical: no
 Shipped: no
diff --git a/third_party/wpt_tools/wpt/tools/ci/requirements_build.txt b/third_party/wpt_tools/wpt/tools/ci/requirements_build.txt
index 60c0917..4fb858b 100644
--- a/third_party/wpt_tools/wpt/tools/ci/requirements_build.txt
+++ b/third_party/wpt_tools/wpt/tools/ci/requirements_build.txt
@@ -3,3 +3,4 @@
 genshi==0.7.7
 jinja2==3.1.6
 pyyaml==6.0.1
+types-pyyaml==6.0.12.20241230
diff --git a/third_party/wpt_tools/wpt/tools/manifest/download.py b/third_party/wpt_tools/wpt/tools/manifest/download.py
index 8527fb2..8b119ab 100644
--- a/third_party/wpt_tools/wpt/tools/manifest/download.py
+++ b/third_party/wpt_tools/wpt/tools/manifest/download.py
@@ -5,13 +5,13 @@
 import io
 import os
 from datetime import datetime, timedelta
-from typing import Any, Callable, List, Optional, Text
+from typing import Any, Callable, List, Optional, Text, cast
 from urllib.request import urlopen
 
 try:
     import zstandard
 except ImportError:
-    zstandard = None
+    zstandard = cast(Any, None)
 
 from .utils import git
 
diff --git a/third_party/wpt_tools/wpt/tools/manifest/sourcefile.py b/third_party/wpt_tools/wpt/tools/manifest/sourcefile.py
index 4e74fb2..8682c233 100644
--- a/third_party/wpt_tools/wpt/tools/manifest/sourcefile.py
+++ b/third_party/wpt_tools/wpt/tools/manifest/sourcefile.py
@@ -5,7 +5,7 @@
 from fnmatch import fnmatch
 from io import BytesIO
 from typing import (Any, BinaryIO, Callable, Deque, Dict, Iterable, List,
-                    Optional, Pattern, Set, Text, Tuple, TypedDict, Union, cast)
+                    Optional, Pattern, Set, Text, Tuple, TypedDict, Union)
 from urllib.parse import parse_qs, urlparse, urljoin
 
 try:
@@ -39,7 +39,7 @@
 
 reference_file_re = re.compile(r'(^|[\-_])(not)?ref[0-9]*([\-_]|$)')
 
-space_chars: Text = "".join(html5lib.constants.spaceCharacters)
+space_chars: Text = "".join(html5lib.constants.spaceCharacters)  # type: ignore[attr-defined]
 
 
 def replace_end(s: Text, old: Text, new: Text) -> Text:
@@ -179,8 +179,7 @@
 
 
 def _parse_html(f: BinaryIO) -> ElementTree.Element:
-    doc = html5lib.parse(f, treebuilder="etree", useChardet=False)
-    return cast(ElementTree.Element, doc)
+    return html5lib.parse(f, treebuilder="etree", useChardet=False)
 
 def _parse_xml(f: BinaryIO) -> ElementTree.Element:
     try:
diff --git a/third_party/wpt_tools/wpt/tools/metadata/yaml/requirements.txt b/third_party/wpt_tools/wpt/tools/metadata/yaml/requirements.txt
index cf39afa6..1a15129 100644
--- a/third_party/wpt_tools/wpt/tools/metadata/yaml/requirements.txt
+++ b/third_party/wpt_tools/wpt/tools/metadata/yaml/requirements.txt
@@ -1 +1,2 @@
 pyyaml==6.0.1
+types-pyyaml==6.0.12.20241230
diff --git a/third_party/wpt_tools/wpt/tools/serve/serve.py b/third_party/wpt_tools/wpt/tools/serve/serve.py
index d86e66a..8343a54b 100644
--- a/third_party/wpt_tools/wpt/tools/serve/serve.py
+++ b/third_party/wpt_tools/wpt/tools/serve/serve.py
@@ -93,9 +93,7 @@
         return html[:offset] + script_tag + html[offset:]
 
 
-class WrapperHandler:
-
-    __meta__ = abc.ABCMeta
+class WrapperHandler(metaclass=abc.ABCMeta):
 
     headers: ClassVar[List[Tuple[str, str]]] = []
 
@@ -207,7 +205,6 @@
         # a specific metadata key: value pair.
         pass
 
-    @abc.abstractmethod
     def check_exposure(self, request):
         # Raise an exception if this handler shouldn't be exposed after all.
         pass
diff --git a/third_party/wpt_tools/wpt/tools/webdriver/webdriver/bidi/transport.py b/third_party/wpt_tools/wpt/tools/webdriver/webdriver/bidi/transport.py
index 841b9d0..7423155 100644
--- a/third_party/wpt_tools/wpt/tools/webdriver/webdriver/bidi/transport.py
+++ b/third_party/wpt_tools/wpt/tools/webdriver/webdriver/bidi/transport.py
@@ -28,7 +28,7 @@
                  msg_handler: Callable[[Mapping[str, Any]], Coroutine[Any, Any, None]],
                  loop: Optional[asyncio.AbstractEventLoop] = None):
         self.url = url
-        self.connection: Optional[websockets.WebSocketClientProtocol] = None  # type: ignore
+        self.connection: Optional[websockets.WebSocketClientProtocol] = None
         self.msg_handler = msg_handler
         self.send_buf: List[Mapping[str, Any]] = []
 
@@ -41,7 +41,7 @@
     async def start(self) -> None:
         # Default max_size of 1048576 bytes is too small for some messages.
         # 128MB should be enough.
-        self.connection = await websockets.connect(self.url, max_size=128 * 1024 * 1024)  # type: ignore
+        self.connection = await websockets.connect(self.url, max_size=128 * 1024 * 1024)
         self.read_message_task = self.loop.create_task(self.read_messages())
 
         for msg in self.send_buf:
@@ -55,7 +55,7 @@
 
     @staticmethod
     async def _send(
-        connection: websockets.WebSocketClientProtocol,  # type: ignore
+        connection: websockets.WebSocketClientProtocol,
         data: Mapping[str, Any]
     ) -> None:
         msg = json.dumps(data)
diff --git a/third_party/wpt_tools/wpt/tools/webtransport/h3/capsule.py b/third_party/wpt_tools/wpt/tools/webtransport/h3/capsule.py
index fc8183a6..1708bd2 100644
--- a/third_party/wpt_tools/wpt/tools/webtransport/h3/capsule.py
+++ b/third_party/wpt_tools/wpt/tools/webtransport/h3/capsule.py
@@ -1,11 +1,7 @@
-# mypy: no-warn-return-any
-
 from enum import IntEnum
 from typing import Iterator, Optional
 
-# TODO(bashi): Remove import check suppressions once aioquic dependency is
-# resolved.
-from aioquic.buffer import UINT_VAR_MAX_SIZE, Buffer, BufferReadError  # type: ignore
+from aioquic.buffer import UINT_VAR_MAX_SIZE, Buffer, BufferReadError
 
 
 class CapsuleType(IntEnum):
diff --git a/third_party/wpt_tools/wpt/tools/webtransport/h3/webtransport_h3_server.py b/third_party/wpt_tools/wpt/tools/webtransport/h3/webtransport_h3_server.py
index 2dd8f645..d2a31a93 100644
--- a/third_party/wpt_tools/wpt/tools/webtransport/h3/webtransport_h3_server.py
+++ b/third_party/wpt_tools/wpt/tools/webtransport/h3/webtransport_h3_server.py
@@ -1,5 +1,3 @@
-# mypy: allow-subclassing-any, no-warn-return-any
-
 import asyncio
 import contextlib
 import logging
@@ -9,24 +7,24 @@
 import threading
 import traceback
 from enum import IntEnum
-from urllib.parse import urlparse
+from pathlib import Path
 from typing import Any, Dict, List, Optional, Tuple, cast
+from urllib.parse import urlparse
 
-# TODO(bashi): Remove import check suppressions once aioquic dependency is resolved.
-from aioquic.buffer import Buffer  # type: ignore
-from aioquic.asyncio import QuicConnectionProtocol, serve  # type: ignore
-from aioquic.asyncio.client import connect  # type: ignore
-from aioquic.asyncio.protocol import QuicStreamAdapter  # type: ignore
-from aioquic.h3.connection import H3_ALPN, FrameType, H3Connection, ProtocolError, SettingsError  # type: ignore
-from aioquic.h3.events import H3Event, HeadersReceived, WebTransportStreamDataReceived, DatagramReceived, DataReceived  # type: ignore
-from aioquic.quic.configuration import QuicConfiguration  # type: ignore
-from aioquic.quic.connection import logger as quic_connection_logger  # type: ignore
+from aioquic.buffer import Buffer
+from aioquic.asyncio import QuicConnectionProtocol, serve
+from aioquic.asyncio.client import connect
+from aioquic.asyncio.protocol import QuicStreamAdapter
+from aioquic.h3.connection import H3_ALPN, FrameType, H3Connection, ProtocolError, SettingsError
+from aioquic.h3.events import H3Event, HeadersReceived, WebTransportStreamDataReceived, DatagramReceived, DataReceived
+from aioquic.quic.configuration import QuicConfiguration
+from aioquic.quic.connection import logger as quic_connection_logger
 from aioquic.quic.connection import (
     stream_is_client_initiated,
     stream_is_unidirectional,
 )
-from aioquic.quic.events import QuicEvent, ProtocolNegotiated, ConnectionTerminated, StreamReset  # type: ignore
-from aioquic.tls import SessionTicket  # type: ignore
+from aioquic.quic.events import QuicEvent, ProtocolNegotiated, ConnectionTerminated, StreamReset
+from aioquic.tls import SessionTicket
 
 from tools import localpaths  # noqa: F401
 from wptserve import stash
@@ -315,7 +313,8 @@
         self.request_headers = request_headers
 
         self._protocol: WebTransportH3Protocol = protocol
-        self._http: H3Connection = protocol._http
+        assert protocol._http is not None
+        self._http: H3ConnectionWithDatagram = protocol._http
 
         # Use the a shared default path for all handlers so that different
         # WebTransport sessions can access the same store easily.
@@ -413,7 +412,7 @@
         """
         if not self._protocol._allow_datagrams:
             _logger.warn(
-                "Sending a datagram while that's now allowed - discarding it")
+                "Sending a datagram while that's not allowed - discarding it")
             return
         stream_id = self.session_id
         if self._http.datagram_setting is not None:
@@ -541,17 +540,25 @@
             except Exception as e:
                 _logger.warn(str(e))
 
-        configuration = QuicConfiguration(
-            alpn_protocols=H3_ALPN,
-            is_client=False,
-            max_datagram_frame_size=65536,
-            secrets_log_file=secrets_log_file,
-        )
+        # Workaround https://github.com/aiortc/aioquic/issues/567 with if/else
+        if secrets_log_file is not None:
+            configuration = QuicConfiguration(
+                alpn_protocols=H3_ALPN,
+                is_client=False,
+                max_datagram_frame_size=65536,
+                secrets_log_file=secrets_log_file,
+            )
+        else:
+            configuration = QuicConfiguration(
+                alpn_protocols=H3_ALPN,
+                is_client=False,
+                max_datagram_frame_size=65536,
+            )
 
         _logger.info("Starting WebTransport over HTTP/3 server on %s:%s",
                      self.host, self.port)
 
-        configuration.load_cert_chain(self.cert_path, self.key_path)
+        configuration.load_cert_chain(Path(self.cert_path), Path(self.key_path))
 
         ticket_store = SessionTicketStore()
 
diff --git a/third_party/wpt_tools/wpt/tools/wpt/browser.py b/third_party/wpt_tools/wpt/tools/wpt/browser.py
index 0ac1b98..d38017c 100644
--- a/third_party/wpt_tools/wpt/tools/wpt/browser.py
+++ b/third_party/wpt_tools/wpt/tools/wpt/browser.py
@@ -1,4 +1,6 @@
 # mypy: allow-untyped-defs
+import configparser
+import json
 import os
 import platform
 import re
@@ -9,7 +11,7 @@
 from abc import ABCMeta, abstractmethod
 from datetime import datetime, timedelta, timezone
 from shutil import which
-from typing import Optional
+from typing import Any, Dict, Optional, Tuple
 from urllib.parse import urlsplit, quote
 
 import html5lib
@@ -81,6 +83,11 @@
     return resp
 
 
+def get_file_github(repo: str, ref: str, path: str) -> bytes:
+    data: bytes = get(f"https://raw.githubusercontent.com/{repo}/{ref}/{path}").content  # type: ignore
+    return data
+
+
 class Browser:
     __metaclass__ = ABCMeta
 
@@ -359,43 +366,134 @@
     def find_webdriver(self, venv_path=None, channel=None):
         return which("geckodriver")
 
-    def get_version_and_channel(self, binary):
-        version_string = call(binary, "--version").strip()
-        m = re.match(r"Mozilla Firefox (\d+\.\d+(?:\.\d+)?)(a|b)?", version_string)
+    def extract_version_number(self, version_string: str) -> Tuple[Optional[str], str]:
+        version_parser = re.compile(r"^(\d+)\.(\d+)(?:\.(\d+))?((a|b)\d+)?")
+        m = version_parser.match(version_string)
         if not m:
             return None, "nightly"
-        version, status = m.groups()
-        channel = {"a": "nightly", "b": "beta"}
-        return version, channel.get(status, "stable")
+        major, minor, patch, pre, channel_id = m.groups()
+        version = f"{major}.{minor}"
+        if patch is not None:
+            version += f".{patch}"
+        if pre is not None:
+            version += pre
+        channel = {"a": "nightly", "b": "beta"}.get(channel_id, "stable")
+        return version, channel
 
-    def get_profile_bundle_url(self, version, channel):
+    def get_version_and_channel(self, binary: str) -> Tuple[Optional[str], str, Optional[str]]:
+        application_ini_path = os.path.join(os.path.dirname(binary), "application.ini")
+        if os.path.exists(application_ini_path):
+            try:
+                return self.get_version_and_channel_application_ini(application_ini_path)
+            except ValueError as e:
+                self.logger.info(f"Reading application ini file failed: {e}")
+                # Fall back to calling the binary
+        version_string: str = call(binary, "--version").strip()  # type: ignore
+        version_re = re.compile(r"Mozilla Firefox (.*)")
+        m = version_re.match(version_string)
+        if not m:
+            return None, "nightly", None
+        version, channel = self.extract_version_number(m.group(1))
+        return version, channel, None
+
+    def get_version_and_channel_application_ini(self, path: str) -> Tuple[Optional[str], str, Optional[str]]:
+        """Try to read application version from an ini file
+
+        This doesn't work in all cases e.g. local builds don't have
+        all the information, or builds where the binary path is a shell
+        script or similar."""
+        config = configparser.ConfigParser()
+        paths = config.read(path)
+        if path not in paths:
+            raise ValueError("Failed to read config file")
+
+        version = config.get("App", "Version", fallback=None)
+        if version is None:
+            raise ValueError("Failed to find Version key")
+        version, channel = self.extract_version_number(version)
+
+        rev = None
+        if channel == "nightly":
+            source_repo = config.get("App", "SourceRepository", fallback=None)
+            commit = config.get("App", "SourceStamp", fallback=None)
+            if source_repo is not None and commit is not None:
+                if source_repo.startswith("https://hg.mozilla.org"):
+                    try:
+                        commit_data: Dict[str, Any] = get(
+                            f"https://hg-edge.mozilla.org/integration/autoland/json-rev/{commit}"
+                        ).json()  # type: ignore
+                        rev = commit_data.get("git_commit")
+                    except Exception:
+                        pass
+                else:
+                    rev = commit
+
+        return version, channel, rev
+
+    def get_git_ref(self, version: str, channel: str, rev: Optional[str]) -> str:
+        if rev is not None:
+            return rev
+
         if channel == "stable":
-            repo = "https://hg.mozilla.org/releases/mozilla-release"
-            tag = "FIREFOX_%s_RELEASE" % version.replace(".", "_")
-        elif channel == "beta":
-            repo = "https://hg.mozilla.org/releases/mozilla-beta"
-            major_version = version.split(".", 1)[0]
-            # For beta we have a different format for betas that are now in stable releases
-            # vs those that are not
-            tags = get("https://hg.mozilla.org/releases/mozilla-beta/json-tags").json()["tags"]
-            tags = {item["tag"] for item in tags}
-            end_tag = "FIREFOX_BETA_%s_END" % major_version
-            if end_tag in tags:
-                tag = end_tag
-            else:
-                tag = "tip"
-        else:
-            repo = "https://hg.mozilla.org/mozilla-central"
-            # Always use tip as the tag for nightly; this isn't quite right
-            # but to do better we need the actual build revision, which we
-            # can get if we have an application.ini file
-            tag = "tip"
+            return "FIREFOX_%s_RELEASE" % version.replace(".", "_")
 
-        return "%s/archive/%s.zip/testing/profiles/" % (repo, tag)
+        if channel == "beta":
+            ref_prefix = "FIREFOX_%s" % version.replace(".", "_")
+            tags = []
+            build_re = re.compile(fr"{ref_prefix}_BUILD(\d)+")
+            for tag_data in get(
+                    f"https://api.github.com/repos/mozilla-firefox/firefox/git/matching-refs/tags/{ref_prefix}"
+            ).json():  # type: ignore
+                tag = tag_data["ref"].rsplit("/", 1)[1]
+                if tag.endswith("_RELEASE"):
+                    tags = [(0, tag)]
+                    break
+                m = build_re.match(tag)
+                if m:
+                    tags.append((int(m.group(1)), tag))
+            tags.sort()
+            if not tags:
+                raise ValueError(f"No tag found for {version} beta")
+            return f"{tags[-1][1]}"
+
+        return "main"
+
+    def get_profile_github(self, version: str, channel: str, dest: str, rev: Optional[str]) -> None:
+        """Read the testing/profiles data from firefox source on GitHub"""
+
+        # There are several possible approaches here, none of which are great:
+        # 1. Shallow, sparse, clone of the repo with no history and just the testing/profiles
+        #    directory. This is too slow to be usable.
+        # 2. Use the Github repository contents API to read all the files under that directory.
+        #    This requires auth to not run into rate limits.
+        # 3. Gitub tree API has basically the same problems
+        # 4. Download a full archive of the relevant commit from Github and extract only the
+        #    required directory. This is also too slow to be useful.
+        #
+        # In the end we use githubusercontent.com, which has the problem that it doesn't allow
+        # directory listings. So we have to hardcode in all the files we need. In particular
+        # for each profile we are currently just downloading the user.js file and ignoring the
+        # extensions/ directory, which is currently unused.
+        ref = self.get_git_ref(version, channel, rev)
+        file_data = {}
+        profiles_bytes = get_file_github("mozilla-firefox/firefox", ref, "testing/profiles/profiles.json")
+        profiles = json.loads(profiles_bytes)
+        file_data["profiles.json"] = profiles_bytes
+        for subdir in profiles["web-platform-tests"]:
+            rel_path = os.path.join(subdir, "user.js")
+            file_data[rel_path] = get_file_github("mozilla-firefox/firefox",
+                                                  ref,
+                                                  f"testing/profiles/{subdir}/user.js")
+
+        for path, data in file_data.items():
+            dest_path = os.path.join(dest, path)
+            os.makedirs(os.path.dirname(dest_path), exist_ok=True)
+            with open(dest_path, "wb") as f:
+                f.write(data)
 
     def install_prefs(self, binary, dest=None, channel=None):
         if binary and not binary.endswith(".apk"):
-            version, channel_ = self.get_version_and_channel(binary)
+            version, channel_, rev = self.get_version_and_channel(binary)
             if channel is not None and channel != channel_:
                 # Beta doesn't always seem to have the b in the version string, so allow the
                 # manually supplied value to override the one from the binary
@@ -403,12 +501,13 @@
             elif channel is None:
                 channel = channel_
         else:
+            rev = None
             version = None
 
         if dest is None:
             dest = os.curdir
 
-        dest = os.path.join(dest, "profiles", channel)
+        dest = os.path.join(dest, "profiles", rev if rev is not None else channel)
         if version:
             dest = os.path.join(dest, version)
         have_cache = False
@@ -426,19 +525,7 @@
                 rmtree(dest)
             os.makedirs(dest)
 
-            url = self.get_profile_bundle_url(version, channel)
-
-            self.logger.info(f"Downloading test prefs from {url}")
-            try:
-                extract_dir = tempfile.mkdtemp()
-                unzip(get(url).raw, dest=extract_dir)
-
-                profiles = os.path.join(extract_dir, os.listdir(extract_dir)[0], 'testing', 'profiles')
-                for name in os.listdir(profiles):
-                    path = os.path.join(profiles, name)
-                    shutil.move(path, dest)
-            finally:
-                rmtree(extract_dir)
+            self.get_profile_github(version, channel, dest, rev)
             self.logger.info(f"Test prefs downloaded to {dest}")
         else:
             self.logger.info(f"Using cached test prefs from {dest}")
diff --git a/third_party/wpt_tools/wpt/tools/wpt/run.py b/third_party/wpt_tools/wpt/tools/wpt/run.py
index 5ad9d544..3eee16d 100644
--- a/third_party/wpt_tools/wpt/tools/wpt/run.py
+++ b/third_party/wpt_tools/wpt/tools/wpt/run.py
@@ -513,6 +513,9 @@
             if kwargs["enable_webtransport_h3"] is None:
                 # To start the WebTransport over HTTP/3 test server.
                 kwargs["enable_webtransport_h3"] = True
+        elif browser_channel is not None:
+            # browser_channel is not set when running WPT in chromium
+            kwargs["enable_experimental"] = False
         if os.getenv("TASKCLUSTER_ROOT_URL"):
             # We are on Taskcluster, where our Docker container does not have
             # enough capabilities to run Chrome with sandboxing. (gh-20133)
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/requirements.txt b/third_party/wpt_tools/wpt/tools/wptrunner/requirements.txt
index 97b5693..6605de2 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/requirements.txt
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/requirements.txt
@@ -7,5 +7,7 @@
 pillow==10.4.0; python_version < '3.9'
 pillow==11.1.0; python_version >= '3.9'
 requests==2.32.3
+types-requests==2.32.0.20241016
 six==1.16.0
+types-six==1.17.0.20241205
 urllib3==2.2.2
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_firefox.txt b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_firefox.txt
index 59a9cd7b..2b98c0a 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_firefox.txt
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_firefox.txt
@@ -7,4 +7,5 @@
 mozrunner==8.3.2
 mozversion==2.4.0
 psutil==5.9.8
+types-psutil==6.1.0.20241221
 redo==3.0.0
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_safari.txt b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_safari.txt
index 0704b2db..177446e 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_safari.txt
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_safari.txt
@@ -1 +1,2 @@
 psutil==5.9.8
+types-psutil==6.1.0.20241221
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_sauce.txt b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_sauce.txt
index f6f1581..c7bdc25b 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/requirements_sauce.txt
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/requirements_sauce.txt
@@ -1,2 +1,3 @@
 selenium==4.20.0
 requests==2.32.3
+types-requests==2.32.0.20241016
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/android_webview.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/android_webview.py
index c796be1..d336efe 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/android_webview.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/android_webview.py
@@ -86,17 +86,9 @@
     ``wptrunner.webdriver.ChromeDriverServer``.
     """
 
-    def __init__(self, logger, binary, webdriver_binary="chromedriver",
-                 adb_binary=None,
-                 device_serial=None,
-                 webdriver_args=None,
-                 stackwalk_binary=None,
-                 symbols_path=None):
+    def __init__(self, logger, *, binary=None, **kwargs):
         """Creates a new representation of Chrome.  The `binary` argument gives
         the browser binary to use for testing."""
-        super().__init__(logger,
-                         webdriver_binary, adb_binary,
-                         device_serial, webdriver_args, stackwalk_binary,
-                         symbols_path)
+        super().__init__(logger, **kwargs)
         self.binary = binary
         self.wptserver_ports = _wptserve_ports
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/base.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/base.py
index fee8895e..3e4b516c 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/base.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/base.py
@@ -103,8 +103,12 @@
 
     init_timeout: float = 30
 
-    def __init__(self, logger: StructuredLogger):
+    def __init__(self, logger: StructuredLogger, *, manager_number: int, **kwargs: Any):
+        if kwargs:
+            logger.warning(f"Browser.__init__ kwargs: {kwargs!r}")
+        super().__init__()
         self.logger = logger
+        self.manager_number = manager_number
 
     def setup(self) -> None:
         """Used for browser-specific setup that happens at the start of a test run"""
@@ -167,9 +171,6 @@
 
 
 class NullBrowser(Browser):
-    def __init__(self, logger: StructuredLogger, **kwargs: Any):
-        super().__init__(logger)
-
     def start(self, group_metadata: GroupMetadata, **kwargs: Any) -> None:
         """No-op browser to use in scenarios where the TestRunnerManager shouldn't
         actually own the browser process (e.g. Servo where we start one browser
@@ -305,7 +306,7 @@
                  env: Optional[Mapping[str, str]] = None,
                  supports_pac: bool = True,
                  **kwargs: Any):
-        super().__init__(logger)
+        super().__init__(logger, **kwargs)
 
         if webdriver_binary is None:
             raise ValueError("WebDriver server binary must be given "
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome.py
index 2472373..4f4b34ba 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome.py
@@ -174,16 +174,26 @@
         # https://chromium.googlesource.com/chromium/src/+/HEAD/docs/gpu/swiftshader.md
         chrome_options["args"].extend(["--use-gl=angle", "--use-angle=swiftshader", "--enable-unsafe-swiftshader"])
 
-    if kwargs["enable_experimental"]:
-        chrome_options["args"].extend(["--enable-experimental-web-platform-features"])
-
     # Copy over any other flags that were passed in via `--binary-arg` or the
     # subsuite config.
     binary_args = kwargs.get("binary_args", []) + subsuite.config.get("binary_args", [])
     for arg in binary_args:
+        if arg == "--stable-release-mode":
+            continue
         if arg not in chrome_options["args"]:
             chrome_options["args"].append(arg)
 
+    # Enable experimental features based on stable release mode setting. It is
+    # unfortunately that we need to do this based on a content shell specific
+    # setting, we choose to do this because we can not dynamically set
+    # enable-experimental in run_wpt_tests.py.
+    if kwargs["enable_experimental"] is None and "--stable-release-mode" not in binary_args:
+        chrome_options["args"].extend(["--enable-experimental-web-platform-features",
+                                       "--enable-blink-test-features"])
+
+    # Upstream CI should always explicitly enable/disable experimental features.
+    if kwargs["enable_experimental"]:
+        chrome_options["args"].extend(["--enable-experimental-web-platform-features"])
 
     # Pass the --headless=new flag to Chrome if WPT's own --headless flag was
     # set. '--headless' should always mean the new headless mode, as the old
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome_android.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome_android.py
index 4ed7707..2b3ffe53 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome_android.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/chrome_android.py
@@ -121,18 +121,15 @@
 class ChromeAndroidBrowserBase(WebDriverBrowser):
     def __init__(self,
                  logger,
-                 webdriver_binary="chromedriver",
+                 *,
                  adb_binary=None,
                  device_serial=None,
-                 webdriver_args=None,
                  stackwalk_binary=None,
-                 symbols_path=None):
-        super().__init__(logger,
-                         binary=None,
-                         webdriver_binary=webdriver_binary,
-                         webdriver_args=webdriver_args,)
+                 symbols_path=None,
+                 **kwargs):
+        super().__init__(logger, **kwargs)
         self.adb_binary = adb_binary or "adb"
-        self.device_serial = device_serial
+        self.device_serial = device_serial[self.manager_number]
         self.stackwalk_binary = stackwalk_binary
         self.symbols_path = symbols_path
         self.logcat_runner = LogcatRunner(self.logger, self)
@@ -210,16 +207,7 @@
     ``wptrunner.webdriver.ChromeDriverServer``.
     """
 
-    def __init__(self, logger, package_name,
-                 webdriver_binary="chromedriver",
-                 adb_binary=None,
-                 device_serial=None,
-                 webdriver_args=None,
-                 stackwalk_binary=None,
-                 symbols_path=None):
-        super().__init__(logger,
-                         webdriver_binary, adb_binary,
-                         device_serial, webdriver_args, stackwalk_binary,
-                         symbols_path)
+    def __init__(self, logger, *, package_name, **kwargs):
+        super().__init__(logger, **kwargs)
         self.package_name = package_name
         self.wptserver_ports = _wptserve_ports
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox.py
index c63bfa2c..f862987 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -107,11 +107,8 @@
 def browser_kwargs(logger, test_type, run_info_data, config, subsuite, **kwargs):
     browser_kwargs = {"binary": kwargs["binary"],
                       "package_name": None,
-                      "webdriver_binary": kwargs["webdriver_binary"],
-                      "webdriver_args": kwargs["webdriver_args"].copy(),
                       "prefs_root": kwargs["prefs_root"],
                       "extra_prefs": kwargs["extra_prefs"].copy(),
-                      "test_type": test_type,
                       "debug_info": kwargs["debug_info"],
                       "symbols_path": kwargs["symbols_path"],
                       "stackwalk_binary": kwargs["stackwalk_binary"],
@@ -120,22 +117,35 @@
                       "e10s": kwargs["gecko_e10s"],
                       "disable_fission": kwargs["disable_fission"],
                       "stackfix_dir": kwargs["stackfix_dir"],
-                      "binary_args": kwargs["binary_args"].copy(),
-                      "timeout_multiplier": get_timeout_multiplier(test_type, run_info_data, **kwargs),
                       "leak_check": run_info_data["debug"] and (kwargs["leak_check"] is not False),
                       "asan": run_info_data.get("asan"),
                       "chaos_mode_flags": kwargs["chaos_mode_flags"],
                       "config": config,
                       "browser_channel": kwargs["browser_channel"],
                       "headless": kwargs["headless"],
-                      "preload_browser": kwargs["preload_browser"] and not kwargs["pause_after_test"] and not kwargs["num_test_groups"] == 1,
-                      "specialpowers_path": kwargs["specialpowers_path"],
                       "allow_list_paths": kwargs["allow_list_paths"],
                       "gmp_path": kwargs["gmp_path"] if "gmp_path" in kwargs else None,
                       "debug_test": kwargs["debug_test"]}
-    if test_type == "wdspec" and kwargs["binary"]:
-        browser_kwargs["webdriver_args"].extend(["--binary", kwargs["binary"]])
-    browser_kwargs["binary_args"].extend(subsuite.config.get("binary_args", []))
+
+    if test_type == "wdspec":
+        browser_kwargs["webdriver_binary"] = kwargs["webdriver_binary"]
+        browser_kwargs["webdriver_args"] = kwargs["webdriver_args"].copy()
+
+        if kwargs["binary"]:
+            browser_kwargs["webdriver_args"].extend(["--binary", kwargs["binary"]])
+
+    else:
+        browser_kwargs["binary_args"] = kwargs["binary_args"].copy()
+        browser_kwargs["binary_args"].extend(subsuite.config.get("binary_args", []))
+        browser_kwargs["preload_browser"] = (
+            kwargs["preload_browser"] and
+            not kwargs["pause_after_test"] and
+            not kwargs["num_test_groups"] == 1
+        )
+        browser_kwargs["specialpowers_path"] = kwargs["specialpowers_path"]
+        browser_kwargs["test_type"] = test_type
+        browser_kwargs["timeout_multiplier"] = get_timeout_multiplier(test_type, run_info_data, **kwargs)
+
     browser_kwargs["extra_prefs"].extend(subsuite.config.get("prefs", []))
     return browser_kwargs
 
@@ -823,9 +833,7 @@
                  browser_channel="nightly", headless=None, preload_browser=False,
                  specialpowers_path=None, debug_test=False, allow_list_paths=None,
                  gmp_path=None, **kwargs):
-        Browser.__init__(self, logger)
-
-        self.logger = logger
+        super().__init__(logger, **kwargs)
 
         if timeout_multiplier:
             self.init_timeout = self.init_timeout * timeout_multiplier
@@ -931,7 +939,7 @@
                  headless=None, debug_test=False, profile_creator_cls=ProfileCreator,
                  allow_list_paths=None, gmp_path=None, **kwargs):
 
-        super().__init__(logger, binary, webdriver_binary, webdriver_args)
+        super().__init__(logger, binary, webdriver_binary, webdriver_args, **kwargs)
         self.binary = binary
         self.package_name = package_name
         self.webdriver_binary = webdriver_binary
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox_android.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox_android.py
index 32a82d7..7bb2e57d 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox_android.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/firefox_android.py
@@ -47,35 +47,42 @@
 
 
 def browser_kwargs(logger, test_type, run_info_data, config, **kwargs):
-    return {"adb_binary": kwargs["adb_binary"],
-            "webdriver_binary": kwargs["webdriver_binary"],
-            "webdriver_args": kwargs["webdriver_args"].copy(),
-            "binary": None,
-            "package_name": kwargs["package_name"],
-            "device_serial": kwargs["device_serial"],
-            "prefs_root": kwargs["prefs_root"],
-            "extra_prefs": kwargs["extra_prefs"].copy(),
-            "test_type": test_type,
-            "debug_info": kwargs["debug_info"],
-            "symbols_path": kwargs["symbols_path"],
-            "stackwalk_binary": kwargs["stackwalk_binary"],
-            "certutil_binary": kwargs["certutil_binary"],
-            "ca_certificate_path": config.ssl_config["ca_cert_path"],
-            "stackfix_dir": kwargs["stackfix_dir"],
-            "binary_args": kwargs["binary_args"].copy(),
-            "timeout_multiplier": get_timeout_multiplier(test_type,
-                                                         run_info_data,
-                                                         **kwargs),
-            "disable_fission": kwargs["disable_fission"],
-            # desktop only
-            "leak_check": False,
-            "chaos_mode_flags": kwargs["chaos_mode_flags"],
-            "config": config,
-            "install_fonts": kwargs["install_fonts"],
-            "tests_root": config.doc_root,
-            "specialpowers_path": kwargs["specialpowers_path"],
-            "debug_test": kwargs["debug_test"],
-            "env_extras": dict([x.split('=') for x in kwargs.get("env", [])])}
+    browser_kwargs = {"adb_binary": kwargs["adb_binary"],
+                      "package_name": kwargs["package_name"],
+                      "device_serial": kwargs["device_serial"],
+                      "prefs_root": kwargs["prefs_root"],
+                      "extra_prefs": kwargs["extra_prefs"].copy(),
+                      "debug_info": kwargs["debug_info"],
+                      "symbols_path": kwargs["symbols_path"],
+                      "stackwalk_binary": kwargs["stackwalk_binary"],
+                      "certutil_binary": kwargs["certutil_binary"],
+                      "ca_certificate_path": config.ssl_config["ca_cert_path"],
+                      "stackfix_dir": kwargs["stackfix_dir"],
+                      "disable_fission": kwargs["disable_fission"],
+                      # desktop only
+                      "leak_check": False,
+                      "chaos_mode_flags": kwargs["chaos_mode_flags"],
+                      "config": config,
+                      "debug_test": kwargs["debug_test"],
+                      }
+
+    if test_type == "wdspec":
+        browser_kwargs["webdriver_binary"] = kwargs["webdriver_binary"]
+        browser_kwargs["webdriver_args"] = kwargs["webdriver_args"].copy()
+        browser_kwargs["binary"] = None
+
+    else:
+        browser_kwargs["test_type"] = test_type
+        browser_kwargs["binary_args"] = kwargs["binary_args"].copy()
+        browser_kwargs["timeout_multiplier"] = get_timeout_multiplier(test_type,
+                                                                      run_info_data,
+                                                                      **kwargs)
+        browser_kwargs["install_fonts"] = kwargs["install_fonts"]
+        browser_kwargs["tests_root"] = config.doc_root
+        browser_kwargs["specialpowers_path"] = kwargs["specialpowers_path"]
+        browser_kwargs["env_extras"] = dict([x.split('=') for x in kwargs.get("env", [])])
+
+    return browser_kwargs
 
 
 def executor_kwargs(logger, test_type, test_environment, run_info_data,
@@ -160,7 +167,7 @@
 
     @staticmethod
     def default_prefs():
-        return {"fission.disableSessionHistoryInParent": True}
+        return {"fission.disableSessionHistoryInParent": False}
 
     def _set_required_prefs(self, profile):
         profile.set_preferences({
@@ -207,13 +214,13 @@
                  binary_args=None, timeout_multiplier=None, leak_check=False, asan=False,
                  chaos_mode_flags=None, config=None, browser_channel="nightly",
                  install_fonts=False, tests_root=None, specialpowers_path=None, adb_binary=None,
-                 debug_test=False, disable_fission=False, **kwargs):
+                 debug_test=False, disable_fission=False, env_extras=None, **kwargs):
 
-        super().__init__(logger)
+        super().__init__(logger, **kwargs)
         self.prefs_root = prefs_root
         self.test_type = test_type
         self.package_name = package_name
-        self.device_serial = device_serial
+        self.device_serial = device_serial[self.manager_number]
         self.debug_info = debug_info
         self.symbols_path = symbols_path
         self.stackwalk_binary = stackwalk_binary
@@ -249,7 +256,7 @@
         self.marionette_port = None
         self.profile = None
         self.runner = None
-        self.env_extras = kwargs["env_extras"]
+        self.env_extras = env_extras
         self._settings = {}
 
     def settings(self, test):
@@ -372,29 +379,14 @@
 
 
 class FirefoxAndroidWdSpecBrowser(FirefoxWdSpecBrowser):
-    def __init__(self, logger, prefs_root, webdriver_binary, webdriver_args,
-                 extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None,
-                 certutil_binary=None, ca_certificate_path=None,
-                 disable_fission=False, stackfix_dir=None, leak_check=False,
-                 asan=False, chaos_mode_flags=None, config=None,
-                 browser_channel="nightly", headless=None, debug_test=None,
-                 binary=None, package_name="org.mozilla.geckoview.test_runner", device_serial=None,
-                 adb_binary=None, profile_creator_cls=ProfileCreator, **kwargs):
+    def __init__(self, logger, config=None, device_serial=None, adb_binary=None, **kwargs):
 
-        super().__init__(logger, None, package_name, prefs_root, webdriver_binary, webdriver_args,
-                         extra_prefs=extra_prefs, debug_info=debug_info, symbols_path=symbols_path,
-                         stackwalk_binary=stackwalk_binary, certutil_binary=certutil_binary,
-                         ca_certificate_path=ca_certificate_path,
-                         disable_fission=disable_fission, stackfix_dir=stackfix_dir,
-                         leak_check=leak_check, asan=asan,
-                         chaos_mode_flags=chaos_mode_flags, config=config,
-                         browser_channel=browser_channel, headless=headless,
-                         debug_test=debug_test, profile_creator_cls=profile_creator_cls, **kwargs)
+        super().__init__(logger, config=config, **kwargs)
 
         self.config = config
-        self.device_serial = device_serial
+        self.device_serial = device_serial[self.manager_number]
         # This is just to support the same adb lookup as for other test types
-        context = get_app_context("fennec")(adb_path=adb_binary, device_serial=device_serial)
+        context = get_app_context("fennec")(adb_path=adb_binary, device_serial=self.device_serial)
         self.device = context.get_device(context.adb, self.device_serial)
 
     def start(self, group_metadata, **kwargs):
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/safari.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/safari.py
index 44d289c..fc3cc11 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/safari.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/safari.py
@@ -146,24 +146,19 @@
     """Safari is backed by safaridriver, which is supplied through
     ``wptrunner.webdriver.SafariDriverServer``.
     """
-    def __init__(self, logger, binary=None, webdriver_binary=None, webdriver_args=None,
-                 port=None, env=None, kill_safari=False, **kwargs):
+    def __init__(self, logger, kill_safari=False, **kwargs):
         """Creates a new representation of Safari.  The `webdriver_binary`
         argument gives the WebDriver binary to use for testing. (The browser
         binary location cannot be specified, as Safari and SafariDriver are
         coupled.) If `kill_safari` is True, then `Browser.stop` will stop Safari."""
         super().__init__(logger,
-                         binary,
-                         webdriver_binary,
-                         webdriver_args=webdriver_args,
-                         port=None,
                          supports_pac=False,
-                         env=env)
+                         **kwargs)
 
-        if "/" not in webdriver_binary:
-            wd_path = which(webdriver_binary)
+        if "/" not in self.webdriver_binary:
+            wd_path = which(self.webdriver_binary)
         else:
-            wd_path = webdriver_binary
+            wd_path = self.webdriver_binary
         self.safari_path = self._find_safari_executable(wd_path)
 
         logger.debug("WebDriver executable path: %s" % wd_path)
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/sauce.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/sauce.py
index 465aac6..6df7c84 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/sauce.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/sauce.py
@@ -222,7 +222,7 @@
     init_timeout = 300
 
     def __init__(self, logger, sauce_config, **kwargs):
-        Browser.__init__(self, logger)
+        super().__init__(logger, **kwargs)
         self.sauce_config = sauce_config
 
     def start(self, **kwargs):
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/servodriver.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/servodriver.py
index 7121e1d..5011a8f 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/servodriver.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/browsers/servodriver.py
@@ -6,8 +6,7 @@
 from tools.serve.serve import make_hosts_file
 
 from .base import (WebDriverBrowser,
-                   require_arg,
-                   get_free_port)
+                   require_arg)
 from .base import get_timeout_multiplier   # noqa: F401
 from ..executors import executor_kwargs as base_executor_kwargs
 from ..executors.base import WdspecExecutor  # noqa: F401
@@ -85,7 +84,6 @@
                  server_config=None, binary_args=None,
                  user_stylesheets=None, headless=None, **kwargs):
         hosts_path = write_hosts_file(server_config)
-        port = get_free_port()
         env = os.environ.copy()
         env["HOST_FILE"] = hosts_path
         env["RUST_BACKTRACE"] = "1"
@@ -95,7 +93,6 @@
 
         args = [
             "--hard-fail",
-            "--webdriver=%s" % port,
             "-u", "Servo/wptrunner",
             # See https://github.com/servo/servo/issues/30080.
             # For some reason rustls does not like the certificate generated by the WPT tooling.
@@ -115,11 +112,14 @@
         if headless:
             args += ["--headless"]
 
-        WebDriverBrowser.__init__(self, env=env, logger=logger, host=webdriver_host, port=port,
-                                  supports_pac=False, webdriver_binary=binary, webdriver_args=args,
-                                  binary=binary)
+        super().__init__(logger, binary=binary, webdriver_binary=binary,
+                         webdriver_args=args, host=webdriver_host, env=env,
+                         supports_pac=False, **kwargs)
         self.hosts_path = hosts_path
 
+    def make_command(self):
+        return [self.webdriver_binary, f"--webdriver={self.port}"] + self.webdriver_args
+
     def cleanup(self):
-        WebDriverBrowser.cleanup(self)
+        super().cleanup()
         os.remove(self.hosts_path)
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/asyncactions.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/asyncactions.py
index 8397d78..9f7f313f 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/asyncactions.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/asyncactions.py
@@ -1,5 +1,4 @@
 # mypy: allow-untyped-defs
-from webdriver.bidi.undefined import UNDEFINED
 
 webdriver = None
 
@@ -102,7 +101,7 @@
         # If `error` is present, do not pass `coordinates` (coordinates: UNDEFINED).
         # Otherwise, remove emulation (coordinates: None).
         coordinates = payload['coordinates'] if 'coordinates' in payload else (
-            None if error is None else UNDEFINED)
+            None if error is None else webdriver.bidi.undefined.UNDEFINED)
 
         if "contexts" not in payload:
             raise ValueError("Missing required parameter: contexts")
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/base.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/base.py
index 26a0483..76d703e7 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/base.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/base.py
@@ -494,6 +494,11 @@
 
         lhs = Image.open(io.BytesIO(base64.b64decode(screenshots[0]))).convert("RGB")
         rhs = Image.open(io.BytesIO(base64.b64decode(screenshots[1]))).convert("RGB")
+        if lhs.size != rhs.size:
+            self.logger.info(
+                f"Images differ in size; {urls[0]} is {lhs.size}, {urls[1]} is {rhs.size}" +
+                ("" if page_idx is None else f" on page {page_idx + 1}")
+            )
         self.check_if_solid_color(lhs, urls[0])
         self.check_if_solid_color(rhs, urls[1])
         diff = ImageChops.difference(lhs, rhs)
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 7ca46a05..6bed903 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -405,7 +405,7 @@
         self.webdriver = self.parent.webdriver
 
     def element(self, element):
-        self.logger.info("click " + repr(element))
+        self.logger.debug("click " + repr(element))
         return element.click()
 
 
@@ -414,15 +414,15 @@
         self.webdriver = self.parent.webdriver
 
     def delete_all_cookies(self):
-        self.logger.info("Deleting all cookies")
+        self.logger.debug("Deleting all cookies")
         return self.webdriver.send_session_command("DELETE", "cookie")
 
     def get_all_cookies(self):
-        self.logger.info("Getting all cookies")
+        self.logger.debug("Getting all cookies")
         return self.webdriver.send_session_command("GET", "cookie")
 
     def get_named_cookie(self, name):
-        self.logger.info("Getting cookie named %s" % name)
+        self.logger.debug("Getting cookie named %s" % name)
         try:
             return self.webdriver.send_session_command("GET", "cookie/%s" % name)
         except webdriver_error.NoSuchCookieException:
@@ -434,15 +434,15 @@
         self.webdriver = self.parent.webdriver
 
     def minimize(self):
-        self.logger.info("Minimizing")
+        self.logger.debug("Minimizing")
         return self.webdriver.window.minimize()
 
     def set_rect(self, rect):
-        self.logger.info("Restoring")
+        self.logger.debug("Restoring")
         self.webdriver.window.rect = rect
 
     def get_rect(self):
-        self.logger.info("Getting rect")
+        self.logger.debug("Getting rect")
         return self.webdriver.window.rect
 
 
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/protocol.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/protocol.py
index 16eb3cb..6b9a0de9 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/protocol.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/executors/protocol.py
@@ -6,9 +6,10 @@
 
 from abc import ABCMeta, abstractmethod
 from typing import Any, Awaitable, Callable, ClassVar, List, Mapping, Optional, \
-    Tuple, Type, Union
+    Tuple, Type, TYPE_CHECKING, Union
 
-from webdriver.bidi.undefined import Undefined
+if TYPE_CHECKING:
+    from webdriver.bidi.undefined import Undefined
 
 
 def merge_dicts(target, source):
@@ -455,7 +456,7 @@
 
     @abstractmethod
     async def set_geolocation_override(self,
-            coordinates: Optional[Union[Mapping[str, Any], Undefined]],
+            coordinates: Optional[Union[Mapping[str, Any], "Undefined"]],
             error: Optional[Mapping[str, Any]],
             contexts: List[str]) -> None:
         pass
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/formatters/wptreport.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/formatters/wptreport.py
index 5919631a..600d45d 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/formatters/wptreport.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/formatters/wptreport.py
@@ -26,8 +26,8 @@
         self.results = {}
 
     def suite_start(self, data):
-        self.results['run_info'] = data.get('run_info', {})
-        self.results['time_start'] = data['time']
+        self.results["run_info"] = data.get("run_info", {})
+        self.results["time_start"] = data["time"]
         self.results["results"] = []
         self.results["subsuites"] = {}
 
@@ -35,7 +35,7 @@
         self.results["subsuites"][data["name"]] = data.get("run_info", {})
 
     def suite_end(self, data):
-        self.results['time_end'] = data['time']
+        self.results["time_end"] = data["time"]
         for subsuite, results in self.raw_results.items():
             for test_name, result in results.items():
                 result["test"] = test_name
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
index 2c2da79..19c814b 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
@@ -1,6 +1,8 @@
 # mypy: allow-untyped-defs
 
+import random
 import threading
+import time
 import traceback
 from queue import Empty
 from collections import namedtuple, defaultdict
@@ -340,7 +342,8 @@
                  test_implementations, stop_flag, retry_index=0, rerun=1,
                  pause_after_test=False, pause_on_unexpected=False,
                  restart_on_unexpected=True, debug_info=None,
-                 capture_stdio=True, restart_on_new_group=True, recording=None, max_restarts=5):
+                 capture_stdio=True, restart_on_new_group=True, recording=None,
+                 max_restarts=5, max_restart_backoff=0):
         """Thread that owns a single TestRunner process and any processes required
         by the TestRunner (e.g. the Firefox binary).
 
@@ -359,21 +362,7 @@
         self.suite_name = suite_name
         self.manager_number = index
         self.test_implementation_key = None
-
-        self.test_implementations = {}
-        for key, test_implementation in test_implementations.items():
-            browser_kwargs = test_implementation.browser_kwargs
-            if browser_kwargs.get("device_serial"):
-                browser_kwargs = browser_kwargs.copy()
-                # Assign Android device to runner according to current manager index
-                browser_kwargs["device_serial"] = browser_kwargs["device_serial"][index]
-                self.test_implementations[key] = TestImplementation(
-                    test_implementation.executor_cls,
-                    test_implementation.executor_kwargs,
-                    test_implementation.browser_cls,
-                    browser_kwargs)
-            else:
-                self.test_implementations[key] = test_implementation
+        self.test_implementations = test_implementations
 
         # Flags used to shut down this thread if we get a sigint
         self.parent_stop_flag = stop_flag
@@ -391,6 +380,7 @@
         self.capture_stdio = capture_stdio
         self.restart_on_new_group = restart_on_new_group
         self.max_restarts = max_restarts
+        self.max_restart_backoff = max_restart_backoff
 
         assert recording is not None
         self.recording = recording
@@ -595,6 +585,12 @@
         if self.state.failure_count > self.max_restarts:
             self.logger.critical("Max restarts exceeded")
             return RunnerManagerState.error()
+        elif self.state.failure_count > 0 and self.max_restart_backoff:
+            # Subtract one so we start with 2**0 (i.e., 1)
+            base_backoff = min(self.max_restart_backoff, 2**(self.state.failure_count-1))
+            used_backoff = base_backoff + random.uniform(0, 1)
+            self.logger.info(f"Waiting {used_backoff:.2f}s before restarting browser")
+            time.sleep(used_backoff)
 
         if (self.state.subsuite, self.state.test_type) != self.test_implementation_key:
             if self.browser is not None:
@@ -602,6 +598,7 @@
                 self.browser.browser.cleanup()
             impl = self.test_implementations[(self.state.subsuite, self.state.test_type)]
             browser = impl.browser_cls(self.logger,
+                                       manager_number=self.manager_number,
                                        **impl.browser_kwargs)
             browser.setup()
             self.browser = BrowserManager(self.logger,
@@ -1049,7 +1046,8 @@
                  capture_stdio=True,
                  restart_on_new_group=True,
                  recording=None,
-                 max_restarts=5):
+                 max_restarts=5,
+                 max_restart_backoff=0):
         self.suite_name = suite_name
         self.test_queue_builder = test_queue_builder
         self.test_implementations = test_implementations
@@ -1064,6 +1062,7 @@
         self.recording = recording
         assert recording is not None
         self.max_restarts = max_restarts
+        self.max_restart_backoff = max_restart_backoff
 
         self.pool = set()
         self.stop_flag = None
@@ -1096,7 +1095,8 @@
                                         self.capture_stdio,
                                         self.restart_on_new_group,
                                         recording=self.recording,
-                                        max_restarts=self.max_restarts)
+                                        max_restarts=self.max_restarts,
+                                        max_restart_backoff=self.max_restart_backoff)
             manager.start()
             self.pool.add(manager)
         self.wait()
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptcommandline.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptcommandline.py
index 7bfeef3..813af1e 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptcommandline.py
@@ -69,6 +69,10 @@
                         help="Number of simultaneous processes to use")
     parser.add_argument("--max-restarts", type=int, default=5,
                         help="Maximum number of browser restart retries")
+    parser.add_argument("--max-restart-backoff", type=int, default=0,
+                        help="Increase duration between restart retries exponentially "
+                        "until reaching this maximum number of seconds (zero will "
+                        "always restart immediately)")
 
     parser.add_argument("--no-capture-stdio", action="store_true",
                         help="Don't capture stdio and write to logging")
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptrunner.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptrunner.py
index 40a9aec..15f017d8 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptrunner.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/wptrunner.py
@@ -313,6 +313,7 @@
                           kwargs["restart_on_new_group"],
                           recording=recording,
                           max_restarts=kwargs["max_restarts"],
+                          max_restart_backoff=kwargs["max_restart_backoff"],
                           ) as manager_group:
             try:
                 handle_interrupt_signals()
diff --git a/third_party/wpt_tools/wpt/tools/wptserve/wptserve/server.py b/third_party/wpt_tools/wpt/tools/wptserve/wptserve/server.py
index 1863861..ba68339 100644
--- a/third_party/wpt_tools/wpt/tools/wptserve/wptserve/server.py
+++ b/third_party/wpt_tools/wpt/tools/wptserve/wptserve/server.py
@@ -1,6 +1,7 @@
 # mypy: allow-untyped-defs
 
 import errno
+import http
 import http.server
 import os
 import socket
@@ -342,6 +343,34 @@
             self.setup()
         return
 
+    def log_request(self, code="-", size="-"):
+        if isinstance(code, http.HTTPStatus):
+            code = code.value
+
+        self.logger.debug(
+            "{} - - [{}] {!r} {!s} {!s}".format(
+                self.address_string(),
+                self.log_date_time_string(),
+                self.requestline,
+                code,
+                size,
+            )
+        )
+
+    def log_error(self, format, *args):
+        self.logger.error(
+            "{} - - [{}] {}".format(
+                self.address_string(), self.log_date_time_string(), format % args
+            )
+        )
+
+    def log_message(self, format, *args):
+        self.logger.info(
+            "{} - - [{}] {}".format(
+                self.address_string(), self.log_date_time_string(), format % args
+            )
+        )
+
 
 class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
     protocol_version = "HTTP/2.0"
diff --git a/third_party/wpt_tools/wpt/tools/wptserve/wptserve/ws_h2_handshake.py b/third_party/wpt_tools/wpt/tools/wptserve/wptserve/ws_h2_handshake.py
index ab1ab95..99d4dbe 100644
--- a/third_party/wpt_tools/wpt/tools/wptserve/wptserve/ws_h2_handshake.py
+++ b/third_party/wpt_tools/wpt/tools/wptserve/wptserve/ws_h2_handshake.py
@@ -20,7 +20,7 @@
         raise HandshakeException('Method is not CONNECT: %r' % request.method)
 
 
-class WsH2Handshaker(HandshakerBase):  # type: ignore
+class WsH2Handshaker(HandshakerBase):
     def __init__(self, request, dispatcher):
         """Bootstrapping handshake processor for the WebSocket protocol with HTTP/2 (RFC 8441).
 
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 6d02cc4..6ecf2dd 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -440,6 +440,10 @@
     "META": {"sizes": {"includes": [50]}},
     "includes": [4040],
   },
+  "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/infobar_internals/resources.grd": {
+    "META": {"sizes": {"includes": [10],}},
+    "includes": [4050],
+  },
   "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/inline_login/resources.grd": {
     "META": {"sizes": {"includes": [10]}},
     "includes": [4080],
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index f6ce2228..09a20fa6 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -10520,7 +10520,6 @@
       label="OmniboxUIExperimentJogTextfieldOnPopup:disabled"/>
   <int value="-1351107814" label="Picker:enabled"/>
   <int value="-1350572940" label="BatchUploadDesktop:enabled"/>
-  <int value="-1350537890" label="GlicUserResize:disabled"/>
   <int value="-1350260119" label="OngoingProcesses:disabled"/>
   <int value="-1349896789" label="DelayNavigation:enabled"/>
   <int value="-1349872906"
@@ -15265,10 +15264,12 @@
   <int value="439858569" label="OmniboxForceAllowedToBeDefault:enabled"/>
   <int value="439859371" label="WebXRWebGPUBinding:disabled"/>
   <int value="441096714" label="WebBluetoothConfirmPairingSupport:disabled"/>
+  <int value="441851855" label="EdgeToEdgeTablet:disabled"/>
   <int value="441992617" label="OmniboxContextualSuggestions:enabled"/>
   <int value="442561299" label="FeatureNotificationGuide:disabled"/>
   <int value="442898264"
       label="CrOSLateBootChromeboxUsbPassthroughRestrictions:disabled"/>
+  <int value="443826886" label="EdgeToEdgeTablet:enabled"/>
   <int value="444411390" label="enable-incognito-shortcut-on-desktop"/>
   <int value="444461915" label="LogoPolish:enabled"/>
   <int value="444754854" label="LegacyTLSWarnings:disabled"/>
@@ -18795,7 +18796,6 @@
       label="AccessibilityInternalsPageImprovements:disabled"/>
   <int value="1779720440"
       label="AutofillEnableIbanClientSideUrlFiltering:disabled"/>
-  <int value="1780206325" label="GlicUserResize:enabled"/>
   <int value="1780392521"
       label="OmniboxUpdatedConnectionSecurityIndicators:disabled"/>
   <int value="1781225884" label="FedCmAuthz:disabled"/>
diff --git a/tools/metrics/histograms/metadata/accessibility/histograms.xml b/tools/metrics/histograms/metadata/accessibility/histograms.xml
index e255110d2..6e55d50 100644
--- a/tools/metrics/histograms/metadata/accessibility/histograms.xml
+++ b/tools/metrics/histograms/metadata/accessibility/histograms.xml
@@ -2333,7 +2333,7 @@
 </histogram>
 
 <histogram name="Accessibility.PdfOcr.MediaApp.PercentageReadingProgression"
-    units="%" expires_after="2025-06-30">
+    units="%" expires_after="2026-06-30">
   <owner>kyungjunlee@google.com</owner>
   <owner>chrome-a11y-core@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index 5ff6e27..74df65d3 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -616,6 +616,18 @@
 </histogram>
 
 <histogram
+    name="Android.AssistContent.WebPageContentProvider.GetAssistantPackageResult"
+    enum="BooleanSuccess" expires_after="2025-09-07">
+  <owner>salg@google.com</owner>
+  <owner>ssid@google.com</owner>
+  <summary>
+    Records whether we were able to get the package name of the default
+    assistant app from Android's settings. Recorded when AssistContent is
+    requested for web pages.
+  </summary>
+</histogram>
+
+<histogram
     name="Android.AssistContent.WebPageContentProvider.Latency.CreateToExtractionStart"
     units="ms" expires_after="2025-10-12">
   <owner>salg@google.com</owner>
@@ -4207,6 +4219,17 @@
   </summary>
 </histogram>
 
+<histogram name="Android.Pdf.AssistContent.GetAssistantPackageResult"
+    enum="BooleanSuccess" expires_after="2025-09-07">
+  <owner>salg@google.com</owner>
+  <owner>clank-large-form-factors@google.com</owner>
+  <summary>
+    Records whether we were able to get the package name of the default
+    assistant app from Android's settings. Recorded when AssistContent is
+    requested for pdf pages.
+  </summary>
+</histogram>
+
 <histogram name="Android.Pdf.AssistContent.IsEnterpriseInfoCached"
     enum="Boolean" expires_after="2025-09-07">
   <owner>shuyng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml
index 8b60f34..192d436a 100644
--- a/tools/metrics/histograms/metadata/enterprise/histograms.xml
+++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -2312,6 +2312,18 @@
   </token>
 </histogram>
 
+<histogram name="Enterprise.FileAnalysisRequest.FileSize" units="KB"
+    expires_after="2025-11-16">
+  <owner>eliashomsi@google.com</owner>
+  <owner>nancylanxiao@google.com</owner>
+  <owner>cbe-cep-eng@google.com</owner>
+  <summary>
+    Records the size of files being scanned for a file content analysis request.
+    These requests happen for CEP to scan downloaded and uploaded files for DLP
+    rules.
+  </summary>
+</histogram>
+
 <histogram name="Enterprise.FileDownloadObfuscation.Result"
     enum="EnterpriseObfuscationError" expires_after="2026-01-01">
   <owner>haihan@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/fingerprinting_protection/histograms.xml b/tools/metrics/histograms/metadata/fingerprinting_protection/histograms.xml
index 01b9c34..1721b18 100644
--- a/tools/metrics/histograms/metadata/fingerprinting_protection/histograms.xml
+++ b/tools/metrics/histograms/metadata/fingerprinting_protection/histograms.xml
@@ -25,7 +25,7 @@
 <histogram
     name="FingerprintingProtection.BlockedDomainListComponent.InstallationResult"
     enum="FingerprintingProtectionComponentInstallationResult"
-    expires_after="2025-10-10">
+    expires_after="2025-12-30">
   <owner>trishalfonso@google.com</owner>
   <owner>src/components/fingerprinting_protection_filter/OWNERS</owner>
   <summary>
@@ -118,7 +118,7 @@
 
 <histogram
     name="FingerprintingProtection.DocumentLoad.SubframeFilteringDelay.NameAlias.{Result}"
-    units="microseconds" expires_after="2025-08-29">
+    units="microseconds" expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>johnykim@google.com</owner>
@@ -145,7 +145,7 @@
 
 <histogram
     name="FingerprintingProtection.DocumentLoad.SubframeFilteringDelay.NameAlias.{Result}.Incognito"
-    units="microseconds" expires_after="2025-08-29">
+    units="microseconds" expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>johnykim@google.com</owner>
@@ -173,7 +173,7 @@
 
 <histogram
     name="FingerprintingProtection.DocumentLoad.SubframeFilteringDelay.{Result}"
-    units="microseconds" expires_after="2025-11-09">
+    units="microseconds" expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>rizvis@google.com</owner>
@@ -195,7 +195,7 @@
 
 <histogram
     name="FingerprintingProtection.DocumentLoad.SubframeFilteringDelay.{Result}.Incognito"
-    units="microseconds" expires_after="2025-07-06">
+    units="microseconds" expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>rizvis@google.com</owner>
@@ -216,7 +216,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.IndexRuleset.CPUDuration" units="ms"
-    expires_after="2025-11-02">
+    expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -229,7 +229,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.IndexRuleset.NumUnsupportedRules"
-    units="rules" expires_after="2025-11-02">
+    units="rules" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -244,7 +244,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.IndexRuleset.Verify.Status"
-    enum="SubresourceFilterVerifyStatus" expires_after="2025-09-28">
+    enum="SubresourceFilterVerifyStatus" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -260,7 +260,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.IndexRuleset.Verify2.WallDuration"
-    units="ms" expires_after="2025-09-28">
+    units="ms" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -274,7 +274,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.IndexRuleset.WallDuration" units="ms"
-    expires_after="2025-11-02">
+    expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -288,7 +288,7 @@
 
 <histogram
     name="FingerprintingProtection.MainFrameLoad.RulesetIsAvailableAnyActivationLevel"
-    enum="BooleanAvailable" expires_after="2025-10-10">
+    enum="BooleanAvailable" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -302,7 +302,7 @@
 
 <histogram name="FingerprintingProtection.PageLoad.ActivationDecision"
     enum="FingerprintingProtectionActivationDecision"
-    expires_after="2025-11-02">
+    expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>rizvis@google.com</owner>
@@ -316,7 +316,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.PageLoad.ActivationLevel"
-    enum="FingerprintingProtectionActivationLevel" expires_after="2025-10-05">
+    enum="FingerprintingProtectionActivationLevel" expires_after="2025-12-30">
   <owner>thesalsa@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>rizvis@google.com</owner>
@@ -331,7 +331,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Disallowed"
-    units="resource loads" expires_after="2025-10-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -346,7 +346,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Disallowed.Incognito"
-    units="resource loads" expires_after="2025-08-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -361,7 +361,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Evaluated"
-    units="resource loads" expires_after="2025-10-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -376,7 +376,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Evaluated.Incognito"
-    units="resource loads" expires_after="2025-08-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -392,7 +392,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.MatchedRules"
-    units="resource loads" expires_after="2025-10-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -407,7 +407,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.MatchedRules.Incognito"
-    units="resource loads" expires_after="2025-08-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -421,7 +421,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Total"
-    units="resource loads" expires_after="2025-10-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -435,7 +435,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Total.Incognito"
-    units="resource loads" expires_after="2025-08-05">
+    units="resource loads" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -449,7 +449,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.RefreshCount.SiteHasBreakageException"
-    enum="BooleanAvailable" expires_after="2025-07-01">
+    enum="BooleanAvailable" expires_after="2025-12-30">
   <owner>aabeshouse@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
@@ -464,7 +464,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.RefreshCount.SiteHasBreakageExceptionWallDuration"
-    units="microseconds" expires_after="2025-07-01">
+    units="microseconds" expires_after="2025-12-30">
   <owner>aabeshouse@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
@@ -482,7 +482,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.RootNavigation.ActivationState"
-    enum="SubresourceFilterActivationState" expires_after="2025-11-02">
+    enum="SubresourceFilterActivationState" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>thesalsa@google.com</owner>
@@ -497,7 +497,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.RootNavigation.ActivationState.DidInherit"
-    enum="SubresourceFilterActivationState" expires_after="2025-07-01">
+    enum="SubresourceFilterActivationState" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
   <owner>thesalsa@google.com</owner>
@@ -512,7 +512,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.SubresourceEvaluation.TotalCPUDuration"
-    units="microseconds" expires_after="2025-10-05">
+    units="microseconds" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -529,7 +529,7 @@
 
 <histogram
     name="FingerprintingProtection.PageLoad.SubresourceEvaluation.TotalWallDuration"
-    units="microseconds" expires_after="2025-10-05">
+    units="microseconds" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -546,7 +546,7 @@
 
 <histogram
     name="FingerprintingProtection.SubresourceLoad.Evaluation.CPUDuration"
-    units="microseconds" expires_after="2025-10-31">
+    units="microseconds" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -566,7 +566,7 @@
 
 <histogram
     name="FingerprintingProtection.SubresourceLoad.Evaluation.WallDuration"
-    units="microseconds" expires_after="2025-10-31">
+    units="microseconds" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -585,7 +585,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.WebContentsObserver.RefreshCount"
-    units="refresh counts" expires_after="2025-10-19">
+    units="refresh counts" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
@@ -599,7 +599,7 @@
 
 <histogram
     name="FingerprintingProtection.WebContentsObserver.RefreshCount.AddBreakageException"
-    enum="BooleanAvailable" expires_after="2025-07-01">
+    enum="BooleanAvailable" expires_after="2025-12-30">
   <owner>aabeshouse@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
@@ -613,7 +613,7 @@
 
 <histogram
     name="FingerprintingProtection.WebContentsObserver.RefreshCount.AddBreakageExceptionWallDuration"
-    units="microseconds" expires_after="2025-07-01">
+    units="microseconds" expires_after="2025-12-30">
   <owner>aabeshouse@google.com</owner>
   <owner>rizvis@google.com</owner>
   <owner>trishalfonso@google.com</owner>
@@ -630,7 +630,7 @@
 </histogram>
 
 <histogram name="FingerprintingProtection.WriteRuleset.Result"
-    enum="SubresourceFilterWriteRulesetResult" expires_after="2025-11-02">
+    enum="SubresourceFilterWriteRulesetResult" expires_after="2025-12-30">
   <owner>rizvis@google.com</owner>
   <owner>thesalsa@google.com</owner>
   <owner>tanub@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/glic/enums.xml b/tools/metrics/histograms/metadata/glic/enums.xml
index 1fb2d62..8ac04c8 100644
--- a/tools/metrics/histograms/metadata/glic/enums.xml
+++ b/tools/metrics/histograms/metadata/glic/enums.xml
@@ -242,6 +242,21 @@
 
 <!-- LINT.ThenChange(//chrome/browser/glic/glic_metrics.h:ResponseSegmentation) -->
 
+<!-- LINT.IfChange(GlicScrollToErrorReason) -->
+
+<enum name="GlicScrollToErrorReason">
+  <int value="0" label="NotSupported"/>
+  <int value="1" label="NewerScrollToCall"/>
+  <int value="2" label="NoFocusedTab"/>
+  <int value="3" label="NoMatchFound"/>
+  <int value="4" label="FocusedTabChangedOrNavigated"/>
+  <int value="5" label="NoMatchingDocument"/>
+  <int value="6" label="SearchRangeInvalid"/>
+  <int value="7" label="TabContextPermissionDisabled"/>
+</enum>
+
+<!-- LINT.ThenChange(//chrome/browser/glic/host/glic.mojom:ScrollToErrorReason) -->
+
 <!-- LINT.IfChange(TieredRolloutEnablementStatus) -->
 
 <enum name="GlicTieredRolloutEnablementStatus">
@@ -252,7 +267,7 @@
 
 <!-- LINT.ThenChange(//chrome/browser/glic/glic_metrics_provider.h:TieredRolloutEnablementStatus) -->
 
-<!-- LINT.IfChange(WebClientMode) -->
+<!-- LINT.IfChange(GlicWebClientMode) -->
 
 <enum name="GlicWebClientMode">
   <int value="0" label="Text"/>
diff --git a/tools/metrics/histograms/metadata/glic/histograms.xml b/tools/metrics/histograms/metadata/glic/histograms.xml
index 195ac2a2..1deac69 100644
--- a/tools/metrics/histograms/metadata/glic/histograms.xml
+++ b/tools/metrics/histograms/metadata/glic/histograms.xml
@@ -594,6 +594,35 @@
   </summary>
 </histogram>
 
+<histogram name="Glic.ScrollTo.ErrorReason" enum="GlicScrollToErrorReason"
+    expires_after="2026-01-15">
+  <owner>liuwilliam@google.com</owner>
+  <owner>adithyas@google.com</owner>
+  <summary>Records the error reason when scrollTo() fails.</summary>
+</histogram>
+
+<histogram name="Glic.ScrollTo.MatchDuration.{MatchResult}" units="ms"
+    expires_after="2026-01-15">
+  <owner>liuwilliam@google.com</owner>
+  <owner>adithyas@google.com</owner>
+  <summary>Measures the time taken to match content for scrollTo().</summary>
+  <token key="MatchResult">
+    <variant name="RangeInvalid"/>
+    <variant name="SelectorNotMatched"/>
+    <variant name="Success"/>
+  </token>
+</histogram>
+
+<histogram name="Glic.ScrollTo.ScrollDistance" units="dip"
+    expires_after="2026-01-15">
+  <owner>liuwilliam@google.com</owner>
+  <owner>adithyas@google.com</owner>
+  <summary>
+    Records the scroll distance (in device independent pixels) for a scroll
+    triggered by scrollTo()
+  </summary>
+</histogram>
+
 <histogram name="Glic.Session.AttachStateChanges" units="count"
     expires_after="2026-01-15">
   <owner>dullweber@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml
index 36047860..4a93dde 100644
--- a/tools/metrics/histograms/metadata/media/histograms.xml
+++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -3242,17 +3242,30 @@
 </histogram>
 
 <histogram
-    name="Media.EME.MediaFoundationService.Widevine.HardwareSecure.IsTypeSupported"
+    name="Media.EME.MediaFoundationService.{KeySystem}.HardwareSecure.GetCdmCapability"
+    units="ms" expires_after="2026-01-15">
+  <owner>vpasupathy@chromium.org</owner>
+  <owner>media-dev-uma@chromium.org</owner>
+  <summary>
+    The time spent to get CdmCapability for {KeySystem}. The value will be
+    reported once per CDM instance for hw security in MediaFoundationService.
+  </summary>
+  <token key="KeySystem" variants="KeySystem"/>
+</histogram>
+
+<histogram
+    name="Media.EME.MediaFoundationService.{KeySystem}.HardwareSecure.IsTypeSupported"
     units="ms" expires_after="2026-01-15">
   <owner>xhwang@chromium.org</owner>
   <owner>media-dev-uma@chromium.org</owner>
   <summary>
     Time for IMFContentDecryptionModuleFactory::IsTypeSupported() to finish in
-    MediaFoundationService when using Widevine in hardware secure mode, which
+    MediaFoundationService when using {KeySystem} in hardware secure mode, which
     are called by MediaFoundationService.IsKeySystemSupported() (called once per
     browser session lifetime). IsKeySystemSupported() calls IsTypeSupported()
     multiple times, for different audio/video codecs and encryption schemes.
   </summary>
+  <token key="KeySystem" variants="KeySystem"/>
 </histogram>
 
 <histogram name="Media.EME.MojoCdm.ConnectionError"
diff --git a/tools/metrics/histograms/metadata/performance_manager/histograms.xml b/tools/metrics/histograms/metadata/performance_manager/histograms.xml
index 122cb6b..b693013 100644
--- a/tools/metrics/histograms/metadata/performance_manager/histograms.xml
+++ b/tools/metrics/histograms/metadata/performance_manager/histograms.xml
@@ -225,38 +225,6 @@
 
 </histogram>
 
-<histogram name="PerformanceManager.LoadingNotQuiescentPageCount.{Visibility}"
-    units="pages" expires_after="2025-06-22">
-  <owner>joenotcharles@google.com</owner>
-  <owner>chrome-catan@google.com</owner>
-  <summary>
-    Recorded every 30 seconds with the number of PageNodes that have started
-    loading and not reached quiescence at the end of the interval (ie. in
-    LoadingState kLoading or kLoadedBusy). This variant records pages that are
-    {Visibility} for the entire load. PerformanceManager.QuiescentPageCount is
-    recorded at the same time for comparison.
-  </summary>
-  <token key="Visibility">
-    <variant name="All" summary="in any visibility state"/>
-    <variant name="Hidden" summary="hidden"/>
-    <variant name="MixedVisibility" summary="in a mix of visibility states"/>
-    <variant name="Visible" summary="visible"/>
-  </token>
-</histogram>
-
-<histogram name="PerformanceManager.QuiescentPageCount" units="pages"
-    expires_after="2025-06-22">
-  <owner>joenotcharles@google.com</owner>
-  <owner>chrome-catan@google.com</owner>
-  <summary>
-    Recorded every 30 seconds with the number of PageNodes that have not started
-    loading (ie. in LoadingState kLoadingNotStarted or kLoadingTimedOut) or have
-    reached quiescence (ie. in LoadingState kLoadedIdle) at the end of the
-    interval. PerformanceManager.LoadingNotQuiescentPageCount is recorded at the
-    same time for comparison.
-  </summary>
-</histogram>
-
 <histogram
     name="PerformanceManager.RegistryStats.FrontEndHeapDebugOptionsOutcome"
     enum="FrontEndHeapDebugOptionsOutcome" expires_after="2025-09-30">
diff --git a/tools/metrics/histograms/metadata/ui/enums.xml b/tools/metrics/histograms/metadata/ui/enums.xml
index 326eb062..205ce25 100644
--- a/tools/metrics/histograms/metadata/ui/enums.xml
+++ b/tools/metrics/histograms/metadata/ui/enums.xml
@@ -575,6 +575,7 @@
   <int value="-2103246641" label="chrome://signin-internals/"/>
   <int value="-2087891836" label="chrome://debug-webuis-disabled/"/>
   <int value="-2086395469" label="chrome://dlp-internals/"/>
+  <int value="-2084645929" label="chrome://infobar-internals/"/>
   <int value="-2069349961" label="chrome://history-clusters-internals/"/>
   <int value="-2061366287" label="chrome://dev-ui-loader/"/>
   <int value="-2034706497" label="chrome://net-internals/"/>
diff --git a/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml b/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
index 5e62b0d..a1d4888 100644
--- a/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
+++ b/tools/metrics/histograms/metadata/visited_url_ranking/enums.xml
@@ -41,6 +41,13 @@
   <int value="3" label="Dismissed"/>
 </enum>
 
+<enum name="TabGroupSuggestionThrottleReason">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="OverlappingTabs"/>
+  <int value="2" label="OverlappingHosts"/>
+  <int value="3" label="GroupNotVisible"/>
+</enum>
+
 <enum name="VisitedURLRankingRequestStepStatus">
   <int value="0" label="Unknown"/>
   <int value="1" label="Success"/>
diff --git a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
index e71dc512..b28fc36c 100644
--- a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
+++ b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
@@ -54,6 +54,17 @@
   </summary>
 </histogram>
 
+<histogram name="GroupSuggestionsService.SuggestionThrottledReason"
+    enum="TabGroupSuggestionThrottleReason" expires_after="2025-11-02">
+  <owner>yuezhanggg@chromium.org</owner>
+  <owner>ssid@chromium.org</owner>
+  <owner>chrome-tab-group-eng@google.com</owner>
+  <summary>
+    Records the reason why the group suggestion is throttled. Logged every time
+    the group suggestion was computed and then throttled.
+  </summary>
+</histogram>
+
 <histogram
     name="GroupSuggestionsService.TopSuggestionContainsLastTab.{ReasonVariant}"
     enum="Boolean" expires_after="2025-11-02">
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 3b7d81c..0bee7e8 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "20a49d2c6f31c920e2e4b30270abe1c9f8d04413",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/d7a0fbbdd095ac711ef4ce704776b3b26b1171a6/trace_processor_shell.exe"
+            "hash": "bf334133349e1eee49d41795f915c95cd7d16daa",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/cb916e8629e991df2b19fe07f1dbf37575544519/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "99f971ca131f6d11c73f4b918099d434bdd8093c",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "c064d9f5a7f7f174bf8d16f7e6df090b37548f67",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/b4fbf1b9302d8e1fcc869098c54453a659c61211/trace_processor_shell"
+            "hash": "8d35f73db085aa3f52e5f26d917936d1fab5bdf8",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/a943bf85f6af4a91705fd3604d16fb4215c3fe16/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/ui/accessibility/platform/browser_accessibility_cocoa.mm b/ui/accessibility/platform/browser_accessibility_cocoa.mm
index af556c31..d4019d6 100644
--- a/ui/accessibility/platform/browser_accessibility_cocoa.mm
+++ b/ui/accessibility/platform/browser_accessibility_cocoa.mm
@@ -2725,7 +2725,10 @@
   } else if ([action isEqualToString:NSAccessibilityShowMenuAction]) {
     manager->ShowContextMenu(*actionTarget);
   } else if ([action isEqualToString:NSAccessibilityScrollToVisibleAction]) {
-    manager->ScrollToMakeVisible(*actionTarget, gfx::Rect());
+    ui::AXPlatformNodeBase* mac_obj =
+        [base::apple::ObjCCastStrict<BrowserAccessibilityCocoa>(
+            actionTarget->GetNativeViewAccessible().Get()) node];
+    mac_obj->ScrollToNode(ui::AXPlatformNodeMac::ScrollType::Anywhere);
   } else if ([action isEqualToString:NSAccessibilityIncrementAction]) {
     manager->Increment(*actionTarget);
   } else if ([action isEqualToString:NSAccessibilityDecrementAction]) {
diff --git a/ui/accessibility/platform/browser_accessibility_manager.cc b/ui/accessibility/platform/browser_accessibility_manager.cc
index 1247e946..92575c7 100644
--- a/ui/accessibility/platform/browser_accessibility_manager.cc
+++ b/ui/accessibility/platform/browser_accessibility_manager.cc
@@ -1910,9 +1910,12 @@
     const AXNode* changed_node = change.node;
     DCHECK(changed_node);
 
-    BrowserAccessibility* obj = GetFromAXNode(changed_node);
-    if (obj)
-      nodes_needing_update->insert(obj->GetAXPlatformNode());
+    if (!changed_node->IsIgnored()) {
+      BrowserAccessibility* obj = GetFromAXNode(changed_node);
+      if (obj) {
+        nodes_needing_update->insert(obj->GetAXPlatformNode());
+      }
+    }
 
     const AXNode* parent = changed_node->GetUnignoredParent();
     if (!parent)
diff --git a/ui/accessibility/platform/iaccessible2/scoped_co_mem_array.h b/ui/accessibility/platform/iaccessible2/scoped_co_mem_array.h
index c79f2b2..553b8ec 100644
--- a/ui/accessibility/platform/iaccessible2/scoped_co_mem_array.h
+++ b/ui/accessibility/platform/iaccessible2/scoped_co_mem_array.h
@@ -7,8 +7,10 @@
 
 #include <objbase.h>
 
+#include <algorithm>
 #include <cstddef>
 #include <utility>
+#include <vector>
 
 #include "base/check_op.h"
 #include "base/compiler_specific.h"
@@ -17,6 +19,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/raw_ptr_exclusion.h"
 #include "base/numerics/safe_conversions.h"
+#include "base/process/memory.h"
 #include "base/win/windows_types.h"
 
 struct IA2TextSelection;
@@ -35,6 +38,9 @@
  public:
   ScopedCoMemArray() = default;
 
+  // Constructs an instance from the contents of `data`.
+  explicit ScopedCoMemArray(std::vector<T>&& data);
+
   ScopedCoMemArray(const ScopedCoMemArray&) = delete;
   ScopedCoMemArray& operator=(const ScopedCoMemArray&) = delete;
 
@@ -51,6 +57,8 @@
   ~ScopedCoMemArray() { Reset(nullptr, 0); }
 
   LONG size() const { return size_; }
+  const T* data() const { return mem_ptr_; }
+  T* data() { return mem_ptr_; }
 
   base::span<const T> as_span() const {
     // SAFETY: mem_ptr_ and size_ originate from accessibility COM calls.
@@ -82,6 +90,21 @@
   LONG size_ = 0;
 };
 
+template <typename T>
+ScopedCoMemArray<T>::ScopedCoMemArray(std::vector<T>&& data)
+    : mem_ptr_(reinterpret_cast<T*>(::CoTaskMemAlloc(data.size() * sizeof(T)))),
+      size_(base::checked_cast<LONG>(data.size())) {
+  if (!mem_ptr_) {
+    base::TerminateBecauseOutOfMemory(data.size() * sizeof(T));
+  }
+  // SAFETY: mem_ptr_ is sized based on the contents of `data`.
+  std::ranges::move(
+      data,
+      UNSAFE_BUFFERS(base::span(mem_ptr_, base::checked_cast<size_t>(size_)))
+          .begin());
+  data.clear();
+}
+
 // Release the references to the two IAccessibleText pointers in each element.
 template <>
 void ScopedCoMemArray<IA2TextSelection>::FreeContents(
diff --git a/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.cc b/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.cc
index 6a62c10b..a243bef 100644
--- a/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.cc
+++ b/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.cc
@@ -15,7 +15,7 @@
     Microsoft::WRL::ComPtr<ia2_interface> obj;                                \
     HRESULT hr = IA2QueryInterface<ia2_interface>(target.Get(), &obj);        \
     if (hr == S_OK)                                                           \
-      return AXOptionalObject({obj});                                         \
+      return AXOptionalObject({std::move(obj)});                              \
     if (hr == E_NOINTERFACE)                                                  \
       return AXOptionalObject::Error(interface_name + " is not implemented"); \
     return AXOptionalObject::Error("Unexpected error when querying " +        \
@@ -161,7 +161,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForAXElement(
-    IAccessibleComPtr target,
+    const IAccessibleComPtr& target,
     const AXPropertyNode& property_node) const {
   if (property_node.name_or_value == "role") {
     return GetRole(target);
@@ -207,7 +207,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2(
-    IA2ComPtr target,
+    const IA2ComPtr& target,
     const AXPropertyNode& property_node) const {
   if (property_node.name_or_value == "role")
     return GetIA2Role(target);
@@ -228,13 +228,13 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2Hypertext(
-    IA2HypertextComPtr target,
+    const IA2HypertextComPtr& target,
     const AXPropertyNode& property_node) const {
   return AXOptionalObject::Error();
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2Table(
-    IA2TableComPtr target,
+    const IA2TableComPtr& target,
     const AXPropertyNode& property_node) const {
   if (property_node.name_or_value == "selectedColumns") {
     return GetSelectedColumns(target);
@@ -244,7 +244,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2TableCell(
-    IA2TableCellComPtr target,
+    const IA2TableCellComPtr& target,
     const AXPropertyNode& property_node) const {
   return AXOptionalObject::Error();
 
@@ -256,7 +256,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2TextSelectionContainer(
-    IA2TextSelectionContainerComPtr target,
+    const IA2TextSelectionContainerComPtr& target,
     const AXPropertyNode& property_node) const {
   if (property_node.name_or_value == "selections") {
     return GetSelections(target);
@@ -270,13 +270,13 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2Text(
-    IA2TextComPtr target,
+    const IA2TextComPtr& target,
     const AXPropertyNode& property_node) const {
   return AXOptionalObject::Error();
 }
 
 AXOptionalObject AXCallStatementInvokerWin::InvokeForIA2Value(
-    IA2ValueComPtr target,
+    const IA2ValueComPtr& target,
     const AXPropertyNode& property_node) const {
   return AXOptionalObject::Error();
 
@@ -287,7 +287,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetRole(
-    IAccessibleComPtr target) const {
+    const IAccessibleComPtr& target) const {
   base::win::ScopedVariant variant_self(CHILDID_SELF);
   base::win::ScopedVariant ia_role_variant;
   if (SUCCEEDED(target->get_accRole(variant_self, ia_role_variant.Receive()))) {
@@ -298,7 +298,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetName(
-    IAccessibleComPtr target) const {
+    const IAccessibleComPtr& target) const {
   base::win::ScopedVariant variant_self(CHILDID_SELF);
   base::win::ScopedBstr name;
   auto result = target->get_accName(variant_self, name.Receive());
@@ -311,7 +311,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetDescription(
-    IAccessibleComPtr target) const {
+    const IAccessibleComPtr& target) const {
   base::win::ScopedVariant variant_self(CHILDID_SELF);
   base::win::ScopedBstr desc;
   auto result = target->get_accDescription(variant_self, desc.Receive());
@@ -323,8 +323,9 @@
   return AXOptionalObject::Error();
 }
 
-AXOptionalObject AXCallStatementInvokerWin::HasState(IAccessibleComPtr target,
-                                                     std::string state) const {
+AXOptionalObject AXCallStatementInvokerWin::HasState(
+    const IAccessibleComPtr& target,
+    std::string state) const {
   base::win::ScopedVariant variant_self(CHILDID_SELF);
   int32_t ia_state = 0;
   base::win::ScopedVariant ia_state_variant;
@@ -345,7 +346,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::QueryInterface(
-    IAccessibleComPtr target,
+    const IAccessibleComPtr& target,
     std::string interface_name) const {
   DEFINE_IA2_QI_ENTRY(IAccessible2)
   DEFINE_IA2_QI_ENTRY(IAccessibleHypertext)
@@ -360,7 +361,8 @@
 }
 #undef DEFINE_IA2_QI_ENTRY
 
-AXOptionalObject AXCallStatementInvokerWin::GetIA2Role(IA2ComPtr target) const {
+AXOptionalObject AXCallStatementInvokerWin::GetIA2Role(
+    const IA2ComPtr& target) const {
   LONG role = 0;
   if (SUCCEEDED(target->role(&role)))
     return AXOptionalObject(
@@ -370,7 +372,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetIA2Attribute(
-    IA2ComPtr target,
+    const IA2ComPtr& target,
     const AXPropertyNode& property_node) const {
   CHECK_ARGS_1(property_node)
 
@@ -383,7 +385,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::HasIA2State(
-    IA2ComPtr target,
+    const IA2ComPtr& target,
     const AXPropertyNode& property_node) const {
   CHECK_ARGS_1(property_node)
   std::string state = property_node.arguments[0].name_or_value;
@@ -404,7 +406,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetSelectedColumns(
-    const IA2TableComPtr target) const {
+    const IA2TableComPtr& target) const {
   ScopedCoMemArray<LONG> columns;
   if (target->get_selectedColumns(INT_MAX, columns.Receive(),
                                   columns.ReceiveSize()) == S_OK) {
@@ -414,7 +416,7 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::GetSelections(
-    IA2TextSelectionContainerComPtr target) const {
+    const IA2TextSelectionContainerComPtr& target) const {
   ScopedCoMemArray<IA2TextSelection> selections;
   if (target->get_selections(selections.Receive(), selections.ReceiveSize()) ==
       S_OK) {
@@ -424,11 +426,11 @@
 }
 
 AXOptionalObject AXCallStatementInvokerWin::SetSelections(
-    const IA2TextSelectionContainerComPtr target,
+    const IA2TextSelectionContainerComPtr& target,
     const AXPropertyNode& property_node) const {
   CHECK_ARGS_1(property_node)
 
-  std::vector<IA2TextSelection> selections =
+  ScopedCoMemArray<IA2TextSelection> selections =
       PropertyNodeToIA2TextSelectionArray(property_node.arguments[0]);
 
   if (target->setSelections(selections.size(), selections.data()) == S_OK) {
@@ -494,7 +496,7 @@
   return {std::move(text_selection)};
 }
 
-std::vector<IA2TextSelection>
+ScopedCoMemArray<IA2TextSelection>
 AXCallStatementInvokerWin::PropertyNodeToIA2TextSelectionArray(
     const AXPropertyNode& node) const {
   if (!node.IsArray()) {
@@ -510,7 +512,7 @@
     }
     array.push_back(std::move(*item));
   }
-  return array;
+  return ScopedCoMemArray<IA2TextSelection>(std::move(array));
 }
 
 }  // namespace ui
diff --git a/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.h b/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.h
index 68ffe23..64b7e17 100644
--- a/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.h
+++ b/ui/accessibility/platform/inspect/ax_call_statement_invoker_win.h
@@ -7,6 +7,7 @@
 
 #include "base/component_export.h"
 #include "base/memory/raw_ptr.h"
+#include "ui/accessibility/platform/iaccessible2/scoped_co_mem_array.h"
 #include "ui/accessibility/platform/inspect/ax_optional.h"
 #include "ui/accessibility/platform/inspect/ax_property_node.h"
 #include "ui/accessibility/platform/inspect/ax_target_win.h"
@@ -40,53 +41,53 @@
 
   // Invokes a property node for a given AXElement.
   AXOptionalObject InvokeForAXElement(
-      IAccessibleComPtr target,
+      const IAccessibleComPtr& target,
       const AXPropertyNode& property_node) const;
 
   // Invoke for a given interface.
-  AXOptionalObject InvokeForIA2(IA2ComPtr target,
+  AXOptionalObject InvokeForIA2(const IA2ComPtr& target,
                                 const AXPropertyNode& property_node) const;
   AXOptionalObject InvokeForIA2Hypertext(
-      IA2HypertextComPtr target,
+      const IA2HypertextComPtr& target,
       const AXPropertyNode& property_node) const;
-  AXOptionalObject InvokeForIA2Table(IA2TableComPtr target,
+  AXOptionalObject InvokeForIA2Table(const IA2TableComPtr& target,
                                      const AXPropertyNode& property_node) const;
   AXOptionalObject InvokeForIA2TableCell(
-      IA2TableCellComPtr target,
+      const IA2TableCellComPtr& target,
       const AXPropertyNode& property_node) const;
   AXOptionalObject InvokeForIA2TextSelectionContainer(
-      IA2TextSelectionContainerComPtr target,
+      const IA2TextSelectionContainerComPtr& target,
       const AXPropertyNode& property_node) const;
-  AXOptionalObject InvokeForIA2Text(IA2TextComPtr target,
+  AXOptionalObject InvokeForIA2Text(const IA2TextComPtr& target,
                                     const AXPropertyNode& property_node) const;
-  AXOptionalObject InvokeForIA2Value(IA2ValueComPtr target,
+  AXOptionalObject InvokeForIA2Value(const IA2ValueComPtr& target,
                                      const AXPropertyNode& property_node) const;
 
   // IUnknown functionality.
-  AXOptionalObject QueryInterface(const IAccessibleComPtr target,
+  AXOptionalObject QueryInterface(const IAccessibleComPtr& target,
                                   std::string interface_name) const;
 
   // IAccessible functionality.
-  AXOptionalObject GetRole(IAccessibleComPtr target) const;
-  AXOptionalObject GetName(const IAccessibleComPtr target) const;
-  AXOptionalObject GetDescription(const IAccessibleComPtr target) const;
-  AXOptionalObject HasState(const IAccessibleComPtr target,
+  AXOptionalObject GetRole(const IAccessibleComPtr& target) const;
+  AXOptionalObject GetName(const IAccessibleComPtr& target) const;
+  AXOptionalObject GetDescription(const IAccessibleComPtr& target) const;
+  AXOptionalObject HasState(const IAccessibleComPtr& target,
                             std::string state) const;
 
   // IAccessible2 functionality.
-  AXOptionalObject GetIA2Role(IA2ComPtr target) const;
-  AXOptionalObject GetIA2Attribute(const IA2ComPtr target,
+  AXOptionalObject GetIA2Role(const IA2ComPtr& target) const;
+  AXOptionalObject GetIA2Attribute(const IA2ComPtr& target,
                                    const AXPropertyNode& property_node) const;
-  AXOptionalObject HasIA2State(const IA2ComPtr target,
+  AXOptionalObject HasIA2State(const IA2ComPtr& target,
                                const AXPropertyNode& property_node) const;
 
   // AccessibleTable functionality
-  AXOptionalObject GetSelectedColumns(const IA2TableComPtr target) const;
+  AXOptionalObject GetSelectedColumns(const IA2TableComPtr& target) const;
 
   // IAccessibleSelectionContainer functionality.
   AXOptionalObject GetSelections(
-      const IA2TextSelectionContainerComPtr target) const;
-  AXOptionalObject SetSelections(const IA2TextSelectionContainerComPtr target,
+      const IA2TextSelectionContainerComPtr& target) const;
+  AXOptionalObject SetSelections(const IA2TextSelectionContainerComPtr& target,
                                  const AXPropertyNode& property_node) const;
 
   bool IsIAccessibleAndNotNull(const Target& target) const;
@@ -111,7 +112,7 @@
   std::optional<IA2TextSelection> PropertyNodeToIA2TextSelection(
       const AXPropertyNode& node) const;
 
-  std::vector<IA2TextSelection> PropertyNodeToIA2TextSelectionArray(
+  ScopedCoMemArray<IA2TextSelection> PropertyNodeToIA2TextSelectionArray(
       const AXPropertyNode& node) const;
 
   // Map between IAccessible objects and their DOMIds/accessible tree
diff --git a/ui/views/layout/flex_layout_types.h b/ui/views/layout/flex_layout_types.h
index 58715615..0763a3c 100644
--- a/ui/views/layout/flex_layout_types.h
+++ b/ui/views/layout/flex_layout_types.h
@@ -61,7 +61,7 @@
 // there is extra size available for that view to occupy.
 enum class MaximumFlexSizeRule {
   kPreferred,       // Don't resize above preferred size.
-  kScaleToMaximum,  // Allow resize up to the maximum size.
+  kScaleToMaximum,  // Allow resize up to the child view's `GetMaximumSize()`.
   kUnbounded        // Allow resize to arbitrary size.
 };
 
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index f754ca0c..18cd413 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -206,26 +206,7 @@
       display::win::GetScreenWin()->DIPToScreenRect(nullptr, params.bounds);
   message_handler_->Init(parent_hwnd, pixel_bounds);
 
-  // If the Redirection Surface is removed, there needs to be a replacement
-  // "background" of the Chromium window. Create a Windows.Ui.Composition
-  // backdrop and apply it to the window. If the frame is system drawn, it means
-  // that the window controls are rendered by Windows. In that case, they would
-  // be covered by the WUC backdrop, so only create the backdrop when frame mode
-  // is not `FrameMode::SYSTEM_DRAWN`.
-  if (((message_handler_->window_ex_style() & WS_EX_NOREDIRECTIONBITMAP) ==
-       WS_EX_NOREDIRECTIONBITMAP) &&
-      !message_handler_->is_translucent() &&
-      GetFrameMode() != FrameMode::SYSTEM_DRAWN) {
-    // Ensure that the hwnd has been created.
-    CHECK(GetHWND());
-
-    // Apply backdrop to the window.
-    wuc_backdrop_ = std::make_unique<gfx::WUCBackdrop>(GetHWND());
-
-    wuc_backdrop_->UpdateBackdropColor(
-        GetWidget()->GetColorProvider()->GetColor(ui::kColorFrameActive));
-  }
-
+  UpdateWUCBackdrop();
   CreateCompositor(params.force_software_compositing);
   OnAcceleratedWidgetAvailable();
   InitHost();
@@ -262,10 +243,7 @@
 
 void DesktopWindowTreeHostWin::OnWidgetThemeChanged(
     ui::ColorProviderKey::ColorMode color_mode) {
-  if (GetWidget() && wuc_backdrop_) {
-    wuc_backdrop_->UpdateBackdropColor(
-        GetWidget()->GetColorProvider()->GetColor(ui::kColorFrameActive));
-  }
+  UpdateWUCBackdrop();
 }
 
 std::unique_ptr<corewm::Tooltip> DesktopWindowTreeHostWin::CreateTooltip() {
@@ -1509,6 +1487,36 @@
                            allow_screenshots_ ? WDA_NONE : WDA_MONITOR);
 }
 
+void DesktopWindowTreeHostWin::UpdateWUCBackdrop() {
+  // If the Redirection Surface is removed, there needs to be a replacement
+  // "background" of the Chromium window. Create a Windows.Ui.Composition
+  // backdrop and apply it to the window. If the frame is system drawn, it means
+  // that the window controls are rendered by Windows. In that case, they would
+  // be covered by the WUC backdrop, so only create the backdrop when frame mode
+  // is not `FrameMode::SYSTEM_DRAWN`. If the backdrop already exists, we need
+  // to check whether to keep it before updating it.
+  if (GetFrameMode() == FrameMode::SYSTEM_DRAWN) {
+    wuc_backdrop_.reset();
+    return;
+  }
+
+  if (GetWidget() &&
+      ((message_handler_->window_ex_style() & WS_EX_NOREDIRECTIONBITMAP) ==
+       WS_EX_NOREDIRECTIONBITMAP) &&
+      !message_handler_->is_translucent()) {
+    // Ensure that the hwnd has been created.
+    CHECK(GetHWND());
+
+    // Apply backdrop to the window.
+    if (!wuc_backdrop_) {
+      wuc_backdrop_ = std::make_unique<gfx::WUCBackdrop>(GetHWND());
+    }
+
+    wuc_backdrop_->UpdateBackdropColor(
+        GetWidget()->GetColorProvider()->GetColor(ui::kColorFrameActive));
+  }
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // DesktopWindowTreeHost, public:
 
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index dab595a..28cbd6326 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -296,6 +296,12 @@
   // Call Windows API to update the window display affinity.
   void UpdateAllowScreenshots();
 
+  // Creates a Windows.Ui.Composition backdrop and attaches it to the hwnd if
+  // the window does not have a redirection bitmap and Chromium is responsible
+  // for drawing the frame. Also resets the backdrop if the frame mode is
+  // changed to be system drawn.
+  void UpdateWUCBackdrop();
+
   std::unique_ptr<HWNDMessageHandler> message_handler_;
   std::unique_ptr<aura::client::FocusClient> focus_client_;
 
diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h
index 89de188..febaf77b 100644
--- a/ui/views/widget/widget_delegate.h
+++ b/ui/views/widget/widget_delegate.h
@@ -166,7 +166,7 @@
 }
 
 namespace enterprise_connectors {
-class ContentAnalysisDialog;
+class ContentAnalysisDialogController;
 class ContentAnalysisDialogBehaviorBrowserTest;
 }  // namespace enterprise_connectors
 
@@ -430,7 +430,7 @@
     friend class ::constrained_window::BrowserModalHelper;
     friend class ::content::ShellPlatformDelegate;
     friend class ::crostini::AppRestartDialog;
-    friend class ::enterprise_connectors::ContentAnalysisDialog;
+    friend class ::enterprise_connectors::ContentAnalysisDialogController;
     friend class ::enterprise_connectors::
         ContentAnalysisDialogBehaviorBrowserTest;
     friend class ::exo::ShellSurfaceBase;
diff --git a/v8 b/v8
index bd836a5..7d3a5cd 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit bd836a5ff68ddc86387c45b6af93a141f7c25657
+Subproject commit 7d3a5cd5ba0fd37ddb72af29a540b50a8a07067b