[roll] Update third-party dart packages

Roller-URL: https://ci.chromium.org/b/8789717802113815489
Roller-Owners: flutter-on-fuchsia-team@google.com, godofredoc@google.com
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I2c8fe4e6ddce7dafacc639182a4da1eee90e5861
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/dart-pkg/+/799411
Commit-Queue: GI Roller <global-integration-roller@fuchsia-infra.iam.gserviceaccount.com>
diff --git a/intl/.gitignore b/intl/.gitignore
deleted file mode 100644
index 0a83cae..0000000
--- a/intl/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Don't commit the following directories created by pub.
-.dart_tool/
-.packages
-pubspec.lock
diff --git a/intl/.travis.yml b/intl/.travis.yml
deleted file mode 100644
index c096ec9..0000000
--- a/intl/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: dart
-
-addons:
-  chrome: stable
-
-dart:
-  - dev
-
-jobs:
-  include:
-  - script: pub run test
-  - script: pub run test -p chrome
-  - dart_task: dartfmt
-  - dart_task:
-      dartanalyzer: --fatal-infos --fatal-warnings .
-
-# Only building master means that we don't run two builds for each pull request.
-branches:
-  only: [master]
-
-cache:
-  directories:
-    - $HOME/.pub-cache
diff --git a/intl/BUILD.gn b/intl/BUILD.gn
index 4019c11..69488e1 100644
--- a/intl/BUILD.gn
+++ b/intl/BUILD.gn
@@ -1,4 +1,4 @@
-# This file is generated by package_importer.py for intl-0.17.0
+# This file is generated by package_importer.py for intl-0.18.0
 
 import("//build/dart/dart_library.gni")
 
@@ -11,6 +11,7 @@
 
   deps = [
     "//third_party/dart-pkg/pub/clock",
+    "//third_party/dart-pkg/pub/meta",
     "//third_party/dart-pkg/pub/path",
   ]
 
@@ -42,13 +43,12 @@
     "src/intl/date_computation.dart",
     "src/intl/date_format.dart",
     "src/intl/date_format_field.dart",
-    "src/intl/intl_stream.dart",
     "src/intl/micro_money.dart",
     "src/intl/number_format.dart",
     "src/intl/number_format_parser.dart",
     "src/intl/number_parser.dart",
     "src/intl/regexp.dart",
-    "src/intl/string_iterator.dart",
+    "src/intl/string_stack.dart",
     "src/intl/text_direction.dart",
     "src/intl_helpers.dart",
     "src/lazy_locale_data.dart",
diff --git a/intl/CHANGELOG.md b/intl/CHANGELOG.md
index 572f9ca..75ca155 100644
--- a/intl/CHANGELOG.md
+++ b/intl/CHANGELOG.md
@@ -1,17 +1,23 @@
+## 0.18.0
+ * Add support for `minimumSignificantDigits` / `maximumSignificantDigits` in
+   NumberFormat.
+ * Add support for plural in `NumberFormat.compact()` ('2 milliards').
+ * Fix negative number formatting / parsing in `NumberFormat.compact()`.
+ * Add optional parameter to `NumberFormat.compact()` to explicitly add sign
+   even for positive values.
+ * Add `decimalPatternDigits` to NumberFormat which supports specifying the
+   number of decimal digits in a decimal pattern.
+ * Update to cldr 40.
+ * Migrate to `package:lints/recommended.yaml`.
+ * Remove some instances of dynamic types from the API.
+ * Fix a bug caused by a typo in the plural rules calculation.
+ * Unify `IntlStream` and `StringIterator` into `StringStack`.
+ * Update to CLDR v41.
+ * Add new locales: as, bm, en_NZ, fur, mg, nyn.
+ * Remove unimplemented `formatDuration` and `formatDurationFrom`.
+ * Make `shortLocale` and `canonicalizedLocale` implementations smarter.
+
 ## 0.17.0
-
-* Stable release for null safety.
-
-## 0.17.0-nullsafety.2
-
-* Update SDK constraints to >=2.12.0-0 <3.0.0 based on beta release guidelines.
-
-## 0.17.0-nullsafety.1
-
-* Allow prereleases of the 2.12 Dart SDK.
-
-## 0.17.0-nullsafety
-
  * Migrate to null safety.
  * Add `@pragma('vm:prefer-inline')` to `Intl` methods that already have
    `@pragma('dart2js:tryInline')`, for the same reason: to help omit message
diff --git a/intl/LICENSE b/intl/LICENSE
index ee99930..7efe25f 100644
--- a/intl/LICENSE
+++ b/intl/LICENSE
@@ -1,4 +1,5 @@
-Copyright 2013, the Dart project authors. All rights reserved.
+Copyright 2013, the Dart project authors.
+
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:
@@ -9,7 +10,7 @@
       copyright notice, this list of conditions and the following
       disclaimer in the documentation and/or other materials provided
       with the distribution.
-    * Neither the name of Google Inc. nor the names of its
+    * Neither the name of Google LLC nor the names of its
       contributors may be used to endorse or promote products derived
       from this software without specific prior written permission.
 
diff --git a/intl/README.md b/intl/README.md
index fe53456..1b5836b 100644
--- a/intl/README.md
+++ b/intl/README.md
@@ -1,3 +1,6 @@
+[![Dart CI](https://github.com/dart-lang/intl/actions/workflows/test-package.yml/badge.svg)](https://github.com/dart-lang/intl/actions/workflows/test-package.yml)
+[![Pub](https://img.shields.io/pub/v/intl.svg)](https://pub.dev/packages/intl)
+
 Provides internationalization and localization facilities,
 including message translation, plurals and genders, date/number formatting
 and parsing, and bidirectional text.
@@ -38,7 +41,7 @@
 [defaultLocale][defaultLocale].
 
 ```dart
-Intl.withLocale('fr', () => print(myLocalizedMessage());
+Intl.withLocale('fr', () => print(myLocalizedMessage()));
 ```
 
 To specify the locale for an operation you can create a format object in
@@ -144,7 +147,7 @@
         other: 'There are $howMany emails left for $userName.')}''',
   name: 'remainingEmailsMessage',
   args: [howMany, userName],
-  desc: How many emails remain after archiving.',
+  desc: 'How many emails remain after archiving.',
   examples: const {'howMany': 42, 'userName': 'Fred'});
 
 print(remainingEmailsMessage(1, 'Fred'));
@@ -238,7 +241,7 @@
 ```dart
 var f = NumberFormat('###.0#', 'en_US');
 print(f.format(12.345));
-  ==> 12.34
+  ==> 12.35
 ```
 
 The locale parameter is optional. If omitted, then it will use the
diff --git a/intl/analysis_options.yaml b/intl/analysis_options.yaml
index 4cce960..a48635a 100644
--- a/intl/analysis_options.yaml
+++ b/intl/analysis_options.yaml
@@ -1,96 +1,19 @@
-analyzer:
-  enable-experiment:
-  - non-nullable
+include: package:lints/recommended.yaml
 
+analyzer:
   language:
     strict-raw-types: true
-
-  exclude:
-     - test/number_format_compact_icu_test.dart # TODO(240): Update for FFI changes
-
-errors:
-    dead_code: error
-    missing_required_param: error
-    override_on_non_overriding_method: error
-    unused_element: error
-    unused_import: error
-    unused_local_variable: error
+  errors:
+    deprecated_member_use_from_same_package: ignore
 
 linter:
   rules:
+    # Enable additional lints.
     - always_declare_return_types
-    - avoid_classes_with_only_static_members
-    - avoid_empty_else
-    - avoid_function_literals_in_foreach_calls
-    - avoid_init_to_null
-    - avoid_null_checks_in_equality_operators
-    - avoid_relative_lib_imports
-    - avoid_renaming_method_parameters
-    - avoid_return_types_on_setters
-    - avoid_returning_null_for_void
-    - avoid_shadowing_type_parameters
-    - avoid_single_cascade_in_expression_statements
-    - avoid_types_as_parameter_names
-    - avoid_unused_constructor_parameters
-    - await_only_futures
-    - camel_case_types
-    - cancel_subscriptions
-    - constant_identifier_names
-    - control_flow_in_finally
-    - curly_braces_in_flow_control_structures
     - directives_ordering
-    - empty_catches
-    - empty_constructor_bodies
-    - empty_statements
-    - file_names
-    - hash_and_equals
-    - implementation_imports
-    - iterable_contains_unrelated_type
-    - library_names
-    - library_prefixes
-    - list_remove_unrelated_type
-    - literal_only_boolean_expressions
-    - no_duplicate_case_values
-    - non_constant_identifier_names
-    - null_closures
-    - omit_local_variable_types
-    - only_throw_errors
-    - overridden_fields
-    - package_api_docs
-    - package_names
-    - package_prefixed_library_names
-    - prefer_adjacent_string_concatenation
-    - prefer_conditional_assignment
-    - prefer_const_constructors
-    - prefer_contains
-    - prefer_equal_for_default_values
-    - prefer_final_fields
-    - prefer_generic_function_type_aliases
-    - prefer_initializing_formals
-    - prefer_interpolation_to_compose_strings
-    - prefer_iterable_whereType
-    - prefer_is_empty
-    - prefer_is_not_empty
-    - prefer_null_aware_operators
-    - prefer_typing_uninitialized_variables
-    - recursive_getters
-    - slash_for_doc_comments
-    - test_types_in_equals
-    - throw_in_finally
-    - type_init_formals
-    - unawaited_futures
-    - unnecessary_brace_in_string_interps
-    - unnecessary_const
-    - unnecessary_getters_setters
-    - unnecessary_lambdas
-    - unnecessary_new
-    - unnecessary_null_aware_assignments
-    - unnecessary_null_in_if_null_operators
-    - unnecessary_parenthesis
-    - unnecessary_statements
-    - unnecessary_this
-    - unrelated_type_equality_checks
-    - use_function_type_syntax_for_parameters
-    - use_rethrow_when_possible
-    - valid_regexps
-    - void_checks
+    - prefer_single_quotes
+    - sort_pub_dependencies
+
+    # These are works in progress.
+    # - avoid_dynamic_calls
+    # - type_annotate_public_apis
diff --git a/intl/benchmark/string_char_conversion_benchmark.dart b/intl/benchmark/string_char_conversion_benchmark.dart
new file mode 100644
index 0000000..efbfae6
--- /dev/null
+++ b/intl/benchmark/string_char_conversion_benchmark.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:math';
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+
+const int asciiZeroCodeUnit = 2;
+const int listlength = 10000;
+
+String string = String.fromCharCodes(Iterable.generate(
+  listlength,
+  (_) => Random().nextInt(80) + 15,
+));
+
+/// This class tests the implementation speed of
+/// _DateFormatPatternField::nextInteger, which is assumed to be called often and
+/// thus being performance-critical.
+class NewMethod extends BenchmarkBase {
+  late String result;
+  int zeroDigit = 15;
+  NewMethod() : super('New version of _DateFormatPatternField::nextInteger');
+
+  @override
+  void run() {
+    var codeUnits = string.codeUnits;
+    result = String.fromCharCodes(List.generate(
+      codeUnits.length,
+      (index) => codeUnits[index] - zeroDigit + asciiZeroCodeUnit,
+      growable: false,
+    ));
+  }
+}
+
+// THIS WILL BE REMOVED AFTER CR
+class OldMethod extends BenchmarkBase {
+  late String result;
+  int zeroDigit = 15;
+  OldMethod() : super('Old version of _DateFormatPatternField::nextInteger');
+
+  @override
+  void setup() => string = String.fromCharCodes(Iterable.generate(
+        listlength,
+        (index) => Random().nextInt(80) + zeroDigit,
+      ));
+
+  @override
+  void run() {
+    var oldDigits = string.codeUnits;
+    var newDigits = List<int>.filled(string.length, 0);
+    for (var i = 0; i < string.length; i++) {
+      newDigits[i] = oldDigits[i] - zeroDigit + asciiZeroCodeUnit;
+    }
+    result = String.fromCharCodes(newDigits);
+  }
+}
+// THIS WILL BE REMOVED AFTER CR
+
+void main() {
+  OldMethod().report();
+  NewMethod().report();
+}
diff --git a/intl/lib/date_symbol_data_file.dart b/intl/lib/date_symbol_data_file.dart
index bb14310..fa8a607 100644
--- a/intl/lib/date_symbol_data_file.dart
+++ b/intl/lib/date_symbol_data_file.dart
@@ -30,6 +30,7 @@
       LazyLocaleData(reader2, (x) => x, availableLocalesForDateFormatting));
   return initializeIndividualLocaleDateFormatting((symbols, patterns) {
     return Future.wait(<Future<dynamic>>[
+      /* LazyLocaleData */
       symbols.initLocale(locale),
       patterns.initLocale(locale)
     ]);
diff --git a/intl/lib/date_symbol_data_local.dart b/intl/lib/date_symbol_data_local.dart
index 296d42e..fd68142 100644
--- a/intl/lib/date_symbol_data_local.dart
+++ b/intl/lib/date_symbol_data_local.dart
@@ -9,7 +9,7 @@
 /// DO NOT EDIT. This file is autogenerated by script.  See
 /// 'http://go/generate_datetime_constants.py' using the --for_dart
 /// flag.
-/// File generated from CLDR ver. 35.1
+/// File generated from CLDR ver. 41
 ///
 /// Before checkin, this file could have been manually edited. This is
 /// to incorporate changes before we could correct CLDR. All manual
@@ -37,7 +37,8 @@
 /// Returns a Map from locale names to the DateSymbols instance for
 /// that locale. Internal use only. Call initializeDateFormatting
 /// instead.
-Map<dynamic, dynamic> dateTimeSymbolMap() => {
+// TODO(#482): "Map<String, DateSymbols>"
+Map<dynamic, dynamic> dateTimeSymbolMap() => <String, DateSymbols>{
       // Date/time formatting symbols for locale en_ISO.
       "en_ISO": DateSymbols(
           NAME: 'en_ISO',
@@ -624,7 +625,12 @@
             'h:mm:ss a',
             'h:mm a'
           ],
-          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1} في {0}',
+            '{1} في {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 5,
           WEEKENDRANGE: const [4, 5],
           FIRSTWEEKCUTOFFDAY: 4),
@@ -780,7 +786,12 @@
             'h:mm:ss a',
             'h:mm a'
           ],
-          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1} في {0}',
+            '{1} في {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 5,
           WEEKENDRANGE: const [4, 5],
           FIRSTWEEKCUTOFFDAY: 4),
@@ -938,10 +949,167 @@
             'h:mm:ss a',
             'h:mm a'
           ],
-          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1} في {0}',
+            '{1} في {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 5,
           WEEKENDRANGE: const [4, 5],
           FIRSTWEEKCUTOFFDAY: 4),
+      // Date/time formatting symbols for locale as.
+      "as": new DateSymbols(
+          NAME: "as",
+          ZERODIGIT: '\u09E6',
+          ERAS: const ['খ্ৰীঃ পূঃ', 'খ্ৰীঃ'],
+          ERANAMES: const ['খ্ৰীষ্টপূৰ্ব', 'খ্ৰীষ্টাব্দ'],
+          NARROWMONTHS: const [
+            'জ',
+            'ফ',
+            'ম',
+            'এ',
+            'ম',
+            'জ',
+            'জ',
+            'আ',
+            'ছ',
+            'অ',
+            'ন',
+            'ড'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'জ',
+            'ফ',
+            'ম',
+            'এ',
+            'ম',
+            'জ',
+            'জ',
+            'আ',
+            'ছ',
+            'অ',
+            'ন',
+            'ড'
+          ],
+          MONTHS: const [
+            'জানুৱাৰী',
+            'ফেব্ৰুৱাৰী',
+            'মাৰ্চ',
+            'এপ্ৰিল',
+            'মে’',
+            'জুন',
+            'জুলাই',
+            'আগষ্ট',
+            'ছেপ্তেম্বৰ',
+            'অক্টোবৰ',
+            'নৱেম্বৰ',
+            'ডিচেম্বৰ'
+          ],
+          STANDALONEMONTHS: const [
+            'জানুৱাৰী',
+            'ফেব্ৰুৱাৰী',
+            'মাৰ্চ',
+            'এপ্ৰিল',
+            'মে’',
+            'জুন',
+            'জুলাই',
+            'আগষ্ট',
+            'ছেপ্তেম্বৰ',
+            'অক্টোবৰ',
+            'নৱেম্বৰ',
+            'ডিচেম্বৰ'
+          ],
+          SHORTMONTHS: const [
+            'জানু',
+            'ফেব্ৰু',
+            'মাৰ্চ',
+            'এপ্ৰিল',
+            'মে’',
+            'জুন',
+            'জুলাই',
+            'আগ',
+            'ছেপ্তে',
+            'অক্টো',
+            'নৱে',
+            'ডিচে'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'জানু',
+            'ফেব্ৰু',
+            'মাৰ্চ',
+            'এপ্ৰিল',
+            'মে’',
+            'জুন',
+            'জুলাই',
+            'আগ',
+            'ছেপ্তে',
+            'অক্টো',
+            'নৱে',
+            'ডিচে'
+          ],
+          WEEKDAYS: const [
+            'দেওবাৰ',
+            'সোমবাৰ',
+            'মঙ্গলবাৰ',
+            'বুধবাৰ',
+            'বৃহস্পতিবাৰ',
+            'শুক্ৰবাৰ',
+            'শনিবাৰ'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'দেওবাৰ',
+            'সোমবাৰ',
+            'মঙ্গলবাৰ',
+            'বুধবাৰ',
+            'বৃহস্পতিবাৰ',
+            'শুক্ৰবাৰ',
+            'শনিবাৰ'
+          ],
+          SHORTWEEKDAYS: const [
+            'দেও',
+            'সোম',
+            'মঙ্গল',
+            'বুধ',
+            'বৃহ',
+            'শুক্ৰ',
+            'শনি'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'দেও',
+            'সোম',
+            'মঙ্গল',
+            'বুধ',
+            'বৃহ',
+            'শুক্ৰ',
+            'শনি'
+          ],
+          NARROWWEEKDAYS: const ['দ', 'স', 'ম', 'ব', 'ব', 'শ', 'শ'],
+          STANDALONENARROWWEEKDAYS: const ['দ', 'স', 'ম', 'ব', 'ব', 'শ', 'শ'],
+          SHORTQUARTERS: const ['১মঃ তিঃ', '২য়ঃ তিঃ', '৩য়ঃ তিঃ', '৪ৰ্থঃ তিঃ'],
+          QUARTERS: const [
+            'প্ৰথম তিনিমাহ',
+            'দ্বিতীয় তিনিমাহ',
+            'তৃতীয় তিনিমাহ',
+            'চতুৰ্থ তিনিমাহ'
+          ],
+          AMPMS: const ['পূৰ্বাহ্ন', 'অপৰাহ্ন'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM, y',
+            'd MMMM, y',
+            'dd-MM-y',
+            'd-M-y'
+          ],
+          TIMEFORMATS: const [
+            'a h.mm.ss zzzz',
+            'a h.mm.ss z',
+            'a h.mm.ss',
+            'a h.mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 6,
+          WEEKENDRANGE: const [6, 6],
+          FIRSTWEEKCUTOFFDAY: 5),
       // Date/time formatting symbols for locale az.
       "az": new DateSymbols(
           NAME: "az",
@@ -990,18 +1158,18 @@
             'dekabr'
           ],
           STANDALONEMONTHS: const [
-            'Yanvar',
-            'Fevral',
-            'Mart',
-            'Aprel',
-            'May',
-            'İyun',
-            'İyul',
-            'Avqust',
-            'Sentyabr',
-            'Oktyabr',
-            'Noyabr',
-            'Dekabr'
+            'yanvar',
+            'fevral',
+            'mart',
+            'aprel',
+            'may',
+            'iyun',
+            'iyul',
+            'avqust',
+            'sentyabr',
+            'oktyabr',
+            'noyabr',
+            'dekabr'
           ],
           SHORTMONTHS: const [
             'yan',
@@ -1049,7 +1217,7 @@
             'cümə',
             'şənbə'
           ],
-          SHORTWEEKDAYS: const ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'],
+          SHORTWEEKDAYS: const ['B.', 'B.e.', 'Ç.a.', 'Ç.', 'C.a.', 'C.', 'Ş.'],
           STANDALONESHORTWEEKDAYS: const [
             'B.',
             'B.E.',
@@ -1215,7 +1383,7 @@
           DATEFORMATS: const [
             'EEEE, d MMMM y \'г\'.',
             'd MMMM y \'г\'.',
-            'd.MM.y',
+            'd MMM y \'г\'.',
             'd.MM.yy'
           ],
           TIMEFORMATS: const [
@@ -1381,6 +1549,152 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
+      // Date/time formatting symbols for locale bm.
+      "bm": new DateSymbols(
+          NAME: "bm",
+          ERAS: const ['J.-C. ɲɛ', 'ni J.-C.'],
+          ERANAMES: const ['jezu krisiti ɲɛ', 'jezu krisiti minkɛ'],
+          NARROWMONTHS: const [
+            'Z',
+            'F',
+            'M',
+            'A',
+            'M',
+            'Z',
+            'Z',
+            'U',
+            'S',
+            'Ɔ',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'Z',
+            'F',
+            'M',
+            'A',
+            'M',
+            'Z',
+            'Z',
+            'U',
+            'S',
+            'Ɔ',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'zanwuye',
+            'feburuye',
+            'marisi',
+            'awirili',
+            'mɛ',
+            'zuwɛn',
+            'zuluye',
+            'uti',
+            'sɛtanburu',
+            'ɔkutɔburu',
+            'nowanburu',
+            'desanburu'
+          ],
+          STANDALONEMONTHS: const [
+            'zanwuye',
+            'feburuye',
+            'marisi',
+            'awirili',
+            'mɛ',
+            'zuwɛn',
+            'zuluye',
+            'uti',
+            'sɛtanburu',
+            'ɔkutɔburu',
+            'nowanburu',
+            'desanburu'
+          ],
+          SHORTMONTHS: const [
+            'zan',
+            'feb',
+            'mar',
+            'awi',
+            'mɛ',
+            'zuw',
+            'zul',
+            'uti',
+            'sɛt',
+            'ɔku',
+            'now',
+            'des'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'zan',
+            'feb',
+            'mar',
+            'awi',
+            'mɛ',
+            'zuw',
+            'zul',
+            'uti',
+            'sɛt',
+            'ɔku',
+            'now',
+            'des'
+          ],
+          WEEKDAYS: const [
+            'kari',
+            'ntɛnɛ',
+            'tarata',
+            'araba',
+            'alamisa',
+            'juma',
+            'sibiri'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'kari',
+            'ntɛnɛ',
+            'tarata',
+            'araba',
+            'alamisa',
+            'juma',
+            'sibiri'
+          ],
+          SHORTWEEKDAYS: const [
+            'kar',
+            'ntɛ',
+            'tar',
+            'ara',
+            'ala',
+            'jum',
+            'sib'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'kar',
+            'ntɛ',
+            'tar',
+            'ara',
+            'ala',
+            'jum',
+            'sib'
+          ],
+          NARROWWEEKDAYS: const ['K', 'N', 'T', 'A', 'A', 'J', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['K', 'N', 'T', 'A', 'A', 'J', 'S'],
+          SHORTQUARTERS: const ['KS1', 'KS2', 'KS3', 'KS4'],
+          QUARTERS: const [
+            'kalo saba fɔlɔ',
+            'kalo saba filanan',
+            'kalo saba sabanan',
+            'kalo saba naaninan'
+          ],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale bn.
       "bn": new DateSymbols(
           NAME: "bn",
@@ -2020,10 +2334,10 @@
             'd MMM y',
             'd/M/yy'
           ],
-          TIMEFORMATS: const ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'],
+          TIMEFORMATS: const ['H:mm:ss (zzzz)', 'H:mm:ss z', 'H:mm:ss', 'H:mm'],
           DATETIMEFORMATS: const [
-            '{1} \'a\' \'les\' {0}',
-            '{1} \'a\' \'les\' {0}',
+            '{1}, \'a\' \'les\' {0}',
+            '{1}, \'a\' \'les\' {0}',
             '{1}, {0}',
             '{1} {0}'
           ],
@@ -2384,7 +2698,7 @@
             'Ion',
             'Chwef',
             'Maw',
-            'Ebrill',
+            'Ebr',
             'Mai',
             'Meh',
             'Gorff',
@@ -3235,12 +3549,7 @@
             '4ο τρίμηνο'
           ],
           AMPMS: const ['π.μ.', 'μ.μ.'],
-          DATEFORMATS: const [
-            'EEEE, d MMMM y',
-            'd MMMM y',
-            'd MMM y',
-            'd/M/yy'
-          ],
+          DATEFORMATS: const ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'],
           TIMEFORMATS: const [
             'h:mm:ss a zzzz',
             'h:mm:ss a z',
@@ -3479,10 +3788,10 @@
             'Mar',
             'Apr',
             'May',
-            'Jun',
-            'Jul',
+            'June',
+            'July',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -3573,9 +3882,9 @@
             '{1}, {0}',
             '{1}, {0}'
           ],
-          FIRSTDAYOFWEEK: 6,
+          FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
-          FIRSTWEEKCUTOFFDAY: 5),
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale en_CA.
       "en_CA": new DateSymbols(
           NAME: "en_CA",
@@ -3638,32 +3947,32 @@
             'December'
           ],
           SHORTMONTHS: const [
-            'Jan.',
-            'Feb.',
-            'Mar.',
-            'Apr.',
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
             'May',
-            'Jun.',
-            'Jul.',
-            'Aug.',
-            'Sep.',
-            'Oct.',
-            'Nov.',
-            'Dec.'
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sept',
+            'Oct',
+            'Nov',
+            'Dec'
           ],
           STANDALONESHORTMONTHS: const [
-            'Jan.',
-            'Feb.',
-            'Mar.',
-            'Apr.',
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
             'May',
-            'Jun.',
-            'Jul.',
-            'Aug.',
-            'Sep.',
-            'Oct.',
-            'Nov.',
-            'Dec.'
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sept',
+            'Oct',
+            'Nov',
+            'Dec'
           ],
           WEEKDAYS: const [
             'Sunday',
@@ -3684,22 +3993,22 @@
             'Saturday'
           ],
           SHORTWEEKDAYS: const [
-            'Sun.',
-            'Mon.',
-            'Tue.',
-            'Wed.',
-            'Thu.',
-            'Fri.',
-            'Sat.'
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'Sun.',
-            'Mon.',
-            'Tue.',
-            'Wed.',
-            'Thu.',
-            'Fri.',
-            'Sat.'
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
           ],
           NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
           STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
@@ -3802,7 +4111,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -3816,7 +4125,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -3958,7 +4267,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -3972,7 +4281,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4114,7 +4423,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4128,7 +4437,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4270,7 +4579,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4284,7 +4593,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4356,6 +4665,162 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 6),
+      // Date/time formatting symbols for locale en_NZ.
+      "en_NZ": new DateSymbols(
+          NAME: "en_NZ",
+          ERAS: const ['BC', 'AD'],
+          ERANAMES: const ['Before Christ', 'Anno Domini'],
+          NARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'January',
+            'February',
+            'March',
+            'April',
+            'May',
+            'June',
+            'July',
+            'August',
+            'September',
+            'October',
+            'November',
+            'December'
+          ],
+          STANDALONEMONTHS: const [
+            'January',
+            'February',
+            'March',
+            'April',
+            'May',
+            'June',
+            'July',
+            'August',
+            'September',
+            'October',
+            'November',
+            'December'
+          ],
+          SHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'May',
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sept',
+            'Oct',
+            'Nov',
+            'Dec'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'May',
+            'Jun',
+            'Jul',
+            'Aug',
+            'Sept',
+            'Oct',
+            'Nov',
+            'Dec'
+          ],
+          WEEKDAYS: const [
+            'Sunday',
+            'Monday',
+            'Tuesday',
+            'Wednesday',
+            'Thursday',
+            'Friday',
+            'Saturday'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'Sunday',
+            'Monday',
+            'Tuesday',
+            'Wednesday',
+            'Thursday',
+            'Friday',
+            'Saturday'
+          ],
+          SHORTWEEKDAYS: const [
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'Sun',
+            'Mon',
+            'Tue',
+            'Wed',
+            'Thu',
+            'Fri',
+            'Sat'
+          ],
+          NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+          SHORTQUARTERS: const ['Q1', 'Q2', 'Q3', 'Q4'],
+          QUARTERS: const [
+            '1st quarter',
+            '2nd quarter',
+            '3rd quarter',
+            '4th quarter'
+          ],
+          AMPMS: const ['am', 'pm'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM y',
+            'd MMMM y',
+            'd/MM/y',
+            'd/MM/yy'
+          ],
+          TIMEFORMATS: const [
+            'h:mm:ss a zzzz',
+            'h:mm:ss a z',
+            'h:mm:ss a',
+            'h:mm a'
+          ],
+          DATETIMEFORMATS: const [
+            '{1} \'at\' {0}',
+            '{1} \'at\' {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale en_SG.
       "en_SG": new DateSymbols(
           NAME: "en_SG",
@@ -4426,7 +4891,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4440,7 +4905,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4739,7 +5204,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4753,7 +5218,7 @@
             'Jun',
             'Jul',
             'Aug',
-            'Sep',
+            'Sept',
             'Oct',
             'Nov',
             'Dec'
@@ -4887,32 +5352,32 @@
             'diciembre'
           ],
           SHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sept.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           STANDALONESHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sept.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -4933,22 +5398,22 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           NARROWWEEKDAYS: const ['D', 'L', 'M', 'X', 'J', 'V', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'X', 'J', 'V', 'S'],
@@ -4967,7 +5432,12 @@
             'd/M/yy'
           ],
           TIMEFORMATS: const ['H:mm:ss (zzzz)', 'H:mm:ss z', 'H:mm:ss', 'H:mm'],
-          DATETIMEFORMATS: const ['{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
@@ -5033,32 +5503,32 @@
             'diciembre'
           ],
           SHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           STANDALONESHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -5079,22 +5549,22 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           NARROWWEEKDAYS: const ['d', 'l', 'm', 'm', 'j', 'v', 's'],
           STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
@@ -5105,7 +5575,7 @@
             '3.º trimestre',
             '4.º trimestre'
           ],
-          AMPMS: const ['a.m.', 'p.m.'],
+          AMPMS: const ['a. m.', 'p. m.'],
           DATEFORMATS: const [
             'EEEE, d \'de\' MMMM \'de\' y',
             'd \'de\' MMMM \'de\' y',
@@ -5118,7 +5588,12 @@
             'HH:mm:ss',
             'HH:mm'
           ],
-          DATETIMEFORMATS: const ['{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1} {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
@@ -5185,32 +5660,32 @@
             'diciembre'
           ],
           SHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sept.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           STANDALONESHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sept.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -5231,22 +5706,22 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           NARROWWEEKDAYS: const ['D', 'L', 'M', 'X', 'J', 'V', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'X', 'J', 'V', 'S'],
@@ -5265,7 +5740,12 @@
             'd/M/yy'
           ],
           TIMEFORMATS: const ['H:mm:ss (zzzz)', 'H:mm:ss z', 'H:mm:ss', 'H:mm'],
-          DATETIMEFORMATS: const ['{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
@@ -5331,32 +5811,32 @@
             'diciembre'
           ],
           SHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           STANDALONESHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -5377,36 +5857,31 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           NARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
-          SHORTQUARTERS: const [
-            '1er. trim.',
-            '2º. trim.',
-            '3er. trim.',
-            '4º trim.'
-          ],
+          SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
           QUARTERS: const [
             '1.er trimestre',
-            '2º. trimestre',
+            '2.º trimestre',
             '3.er trimestre',
-            '4o. trimestre'
+            '4.º trimestre'
           ],
           AMPMS: const ['a. m.', 'p. m.'],
           DATEFORMATS: const [
@@ -5415,8 +5890,18 @@
             'd MMM y',
             'dd/MM/yy'
           ],
-          TIMEFORMATS: const ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'],
-          DATETIMEFORMATS: const ['{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}'],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const [
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1} {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 5),
@@ -5482,32 +5967,32 @@
             'diciembre'
           ],
           SHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           STANDALONESHORTMONTHS: const [
-            'ene.',
-            'feb.',
-            'mar.',
-            'abr.',
-            'may.',
-            'jun.',
-            'jul.',
-            'ago.',
-            'sep.',
-            'oct.',
-            'nov.',
-            'dic.'
+            'ene',
+            'feb',
+            'mar',
+            'abr',
+            'may',
+            'jun',
+            'jul',
+            'ago',
+            'sept',
+            'oct',
+            'nov',
+            'dic'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -5528,30 +6013,30 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom.',
-            'lun.',
-            'mar.',
-            'mié.',
-            'jue.',
-            'vie.',
-            'sáb.'
+            'dom',
+            'lun',
+            'mar',
+            'mié',
+            'jue',
+            'vie',
+            'sáb'
           ],
           NARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
           SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
           QUARTERS: const [
-            '1.er trimestre',
+            '1.º trimestre',
             '2.º trimestre',
-            '3.er trimestre',
+            '3.º trimestre',
             '4.º trimestre'
           ],
           AMPMS: const ['a. m.', 'p. m.'],
@@ -5567,7 +6052,12 @@
             'h:mm:ss a',
             'h:mm a'
           ],
-          DATETIMEFORMATS: const ['{1}, {0}', '{1}, {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}',
+            '{1}, {0}'
+          ],
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 5),
@@ -5661,22 +6151,22 @@
             'dets'
           ],
           WEEKDAYS: const [
-            'pühapäev',
-            'esmaspäev',
-            'teisipäev',
-            'kolmapäev',
-            'neljapäev',
-            'reede',
-            'laupäev'
+            'Pühapäev',
+            'Esmaspäev',
+            'Teisipäev',
+            'Kolmapäev',
+            'Neljapäev',
+            'Reede',
+            'Laupäev'
           ],
           STANDALONEWEEKDAYS: const [
-            'pühapäev',
-            'esmaspäev',
-            'teisipäev',
-            'kolmapäev',
-            'neljapäev',
-            'reede',
-            'laupäev'
+            'Pühapäev',
+            'Esmaspäev',
+            'Teisipäev',
+            'Kolmapäev',
+            'Neljapäev',
+            'Reede',
+            'Laupäev'
           ],
           SHORTWEEKDAYS: const ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
           STANDALONESHORTWEEKDAYS: const ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
@@ -5740,18 +6230,18 @@
             'A'
           ],
           MONTHS: const [
-            'urtarrila',
-            'otsaila',
-            'martxoa',
-            'apirila',
-            'maiatza',
-            'ekaina',
-            'uztaila',
-            'abuztua',
-            'iraila',
-            'urria',
-            'azaroa',
-            'abendua'
+            'urtarrilak',
+            'otsailak',
+            'martxoak',
+            'apirilak',
+            'maiatzak',
+            'ekainak',
+            'uztailak',
+            'abuztuak',
+            'irailak',
+            'urriak',
+            'azaroak',
+            'abenduak'
           ],
           STANDALONEMONTHS: const [
             'urtarrila',
@@ -5920,13 +6410,13 @@
             'دسامبر'
           ],
           SHORTMONTHS: const [
-            'ژانویهٔ',
-            'فوریهٔ',
+            'ژانویه',
+            'فوریه',
             'مارس',
             'آوریل',
-            'مهٔ',
+            'مه',
             'ژوئن',
-            'ژوئیهٔ',
+            'ژوئیه',
             'اوت',
             'سپتامبر',
             'اکتبر',
@@ -6472,7 +6962,7 @@
           DATETIMEFORMATS: const [
             '{1} \'à\' {0}',
             '{1} \'à\' {0}',
-            '{1} \'à\' {0}',
+            '{1}, {0}',
             '{1} {0}'
           ],
           FIRSTDAYOFWEEK: 0,
@@ -6617,7 +7107,7 @@
             'EEEE d MMMM y',
             'd MMMM y',
             'd MMM y',
-            'yy-MM-dd'
+            'y-MM-dd'
           ],
           TIMEFORMATS: const [
             'HH \'h\' mm \'min\' ss \'s\' zzzz',
@@ -6628,7 +7118,7 @@
           DATETIMEFORMATS: const [
             '{1} \'à\' {0}',
             '{1} \'à\' {0}',
-            '{1} {0}',
+            '{1}, {0}',
             '{1} {0}'
           ],
           FIRSTDAYOFWEEK: 6,
@@ -6784,12 +7274,163 @@
           DATETIMEFORMATS: const [
             '{1} \'à\' {0}',
             '{1} \'à\' {0}',
-            '{1} \'à\' {0}',
+            '{1}, {0}',
             '{1} {0}'
           ],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
+      // Date/time formatting symbols for locale fur.
+      "fur": new DateSymbols(
+          NAME: "fur",
+          ERAS: const ['pdC', 'ddC'],
+          ERANAMES: const ['pdC', 'ddC'],
+          NARROWMONTHS: const [
+            'Z',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'L',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'Z',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'L',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'Zenâr',
+            'Fevrâr',
+            'Març',
+            'Avrîl',
+            'Mai',
+            'Jugn',
+            'Lui',
+            'Avost',
+            'Setembar',
+            'Otubar',
+            'Novembar',
+            'Dicembar'
+          ],
+          STANDALONEMONTHS: const [
+            'Zenâr',
+            'Fevrâr',
+            'Març',
+            'Avrîl',
+            'Mai',
+            'Jugn',
+            'Lui',
+            'Avost',
+            'Setembar',
+            'Otubar',
+            'Novembar',
+            'Dicembar'
+          ],
+          SHORTMONTHS: const [
+            'Zen',
+            'Fev',
+            'Mar',
+            'Avr',
+            'Mai',
+            'Jug',
+            'Lui',
+            'Avo',
+            'Set',
+            'Otu',
+            'Nov',
+            'Dic'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'Zen',
+            'Fev',
+            'Mar',
+            'Avr',
+            'Mai',
+            'Jug',
+            'Lui',
+            'Avo',
+            'Set',
+            'Otu',
+            'Nov',
+            'Dic'
+          ],
+          WEEKDAYS: const [
+            'domenie',
+            'lunis',
+            'martars',
+            'miercus',
+            'joibe',
+            'vinars',
+            'sabide'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'domenie',
+            'lunis',
+            'martars',
+            'miercus',
+            'joibe',
+            'vinars',
+            'sabide'
+          ],
+          SHORTWEEKDAYS: const [
+            'dom',
+            'lun',
+            'mar',
+            'mie',
+            'joi',
+            'vin',
+            'sab'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'dom',
+            'lun',
+            'mar',
+            'mie',
+            'joi',
+            'vin',
+            'sab'
+          ],
+          NARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+          STANDALONENARROWWEEKDAYS: const ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+          SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
+          QUARTERS: const [
+            'Prin trimestri',
+            'Secont trimestri',
+            'Tierç trimestri',
+            'Cuart trimestri'
+          ],
+          AMPMS: const ['a.', 'p.'],
+          DATEFORMATS: const [
+            'EEEE d \'di\' MMMM \'dal\' y',
+            'd \'di\' MMMM \'dal\' y',
+            'dd/MM/y',
+            'dd/MM/yy'
+          ],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale ga.
       "ga": new DateSymbols(
           NAME: "ga",
@@ -10833,10 +11474,161 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 6),
+      // Date/time formatting symbols for locale mg.
+      "mg": new DateSymbols(
+          NAME: "mg",
+          ERAS: const ['BC', 'AD'],
+          ERANAMES: const ['Alohan’i JK', 'Aorian’i JK'],
+          NARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'Janoary',
+            'Febroary',
+            'Martsa',
+            'Aprily',
+            'Mey',
+            'Jona',
+            'Jolay',
+            'Aogositra',
+            'Septambra',
+            'Oktobra',
+            'Novambra',
+            'Desambra'
+          ],
+          STANDALONEMONTHS: const [
+            'Janoary',
+            'Febroary',
+            'Martsa',
+            'Aprily',
+            'Mey',
+            'Jona',
+            'Jolay',
+            'Aogositra',
+            'Septambra',
+            'Oktobra',
+            'Novambra',
+            'Desambra'
+          ],
+          SHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'Mey',
+            'Jon',
+            'Jol',
+            'Aog',
+            'Sep',
+            'Okt',
+            'Nov',
+            'Des'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'Jan',
+            'Feb',
+            'Mar',
+            'Apr',
+            'Mey',
+            'Jon',
+            'Jol',
+            'Aog',
+            'Sep',
+            'Okt',
+            'Nov',
+            'Des'
+          ],
+          WEEKDAYS: const [
+            'Alahady',
+            'Alatsinainy',
+            'Talata',
+            'Alarobia',
+            'Alakamisy',
+            'Zoma',
+            'Asabotsy'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'Alahady',
+            'Alatsinainy',
+            'Talata',
+            'Alarobia',
+            'Alakamisy',
+            'Zoma',
+            'Asabotsy'
+          ],
+          SHORTWEEKDAYS: const [
+            'Alah',
+            'Alats',
+            'Tal',
+            'Alar',
+            'Alak',
+            'Zom',
+            'Asab'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'Alah',
+            'Alats',
+            'Tal',
+            'Alar',
+            'Alak',
+            'Zom',
+            'Asab'
+          ],
+          NARROWWEEKDAYS: const ['A', 'A', 'T', 'A', 'A', 'Z', 'A'],
+          STANDALONENARROWWEEKDAYS: const ['A', 'A', 'T', 'A', 'A', 'Z', 'A'],
+          SHORTQUARTERS: const ['T1', 'T2', 'T3', 'T4'],
+          QUARTERS: const [
+            'Telovolana voalohany',
+            'Telovolana faharoa',
+            'Telovolana fahatelo',
+            'Telovolana fahefatra'
+          ],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const [
+            'EEEE d MMMM y',
+            'd MMMM y',
+            'y MMM d',
+            'y-MM-dd'
+          ],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale mk.
       "mk": new DateSymbols(
           NAME: "mk",
-          ERAS: const ['пр.н.е.', 'н.е.'],
+          ERAS: const ['п.н.е.', 'н.е.'],
           ERANAMES: const ['пред нашата ера', 'од нашата ера'],
           NARROWMONTHS: const [
             'ј',
@@ -10943,7 +11735,7 @@
           SHORTWEEKDAYS: const [
             'нед.',
             'пон.',
-            'вт.',
+            'вто.',
             'сре.',
             'чет.',
             'пет.',
@@ -10968,19 +11760,19 @@
             'четврто тромесечје'
           ],
           AMPMS: const ['претпладне', 'попладне'],
-          DATEFORMATS: const [
-            'EEEE, dd MMMM y',
-            'dd MMMM y',
-            'dd.M.y',
-            'dd.M.yy'
-          ],
+          DATEFORMATS: const ['EEEE, d MMMM y', 'd MMMM y', 'd.M.y', 'd.M.yy'],
           TIMEFORMATS: const [
             'HH:mm:ss zzzz',
             'HH:mm:ss z',
             'HH:mm:ss',
             'HH:mm'
           ],
-          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const [
+            '{1}, \'во\' {0}',
+            '{1}, \'во\' {0}',
+            '{1}, \'во\' {0}',
+            '{1}, \'во\' {0}'
+          ],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 6),
@@ -11289,8 +12081,8 @@
           ],
           AMPMS: const ['ү.ө.', 'ү.х.'],
           DATEFORMATS: const [
-            'y.MM.dd, EEEE',
-            'y.MM.dd',
+            'y \'оны\' MMMM\'ын\' d, EEEE \'гараг\'',
+            'y \'оны\' MMMM\'ын\' d',
             'y \'оны\' MMM\'ын\' d',
             'y.MM.dd'
           ],
@@ -11447,7 +12239,7 @@
             'तृतीय तिमाही',
             'चतुर्थ तिमाही'
           ],
-          AMPMS: const ['म.पू.', 'म.उ.'],
+          AMPMS: const ['AM', 'PM'],
           DATEFORMATS: const [
             'EEEE, d MMMM, y',
             'd MMMM, y',
@@ -11916,17 +12708,12 @@
           ],
           AMPMS: const ['နံနက်', 'ညနေ'],
           DATEFORMATS: const [
-            'y၊ MMMM d၊ EEEE',
-            'y၊ d MMMM',
-            'y၊ MMM d',
+            'y- MMMM d- EEEE',
+            'y- MMMM d',
+            'y- MMM d',
             'dd-MM-yy'
           ],
-          TIMEFORMATS: const [
-            'zzzz HH:mm:ss',
-            'z HH:mm:ss',
-            'B HH:mm:ss',
-            'B H:mm'
-          ],
+          TIMEFORMATS: const ['zzzz HH:mm:ss', 'z HH:mm:ss', 'H:mm:ss', 'H:mm'],
           DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
           FIRSTDAYOFWEEK: 6,
           WEEKENDRANGE: const [5, 6],
@@ -12079,7 +12866,7 @@
             'HH:mm'
           ],
           DATETIMEFORMATS: const [
-            '{1} {0}',
+            '{1} \'kl\'. {0}',
             '{1} \'kl\'. {0}',
             '{1}, {0}',
             '{1}, {0}'
@@ -12548,7 +13335,7 @@
             'HH:mm'
           ],
           DATETIMEFORMATS: const [
-            '{1} {0}',
+            '{1} \'kl\'. {0}',
             '{1} \'kl\'. {0}',
             '{1}, {0}',
             '{1}, {0}'
@@ -12705,7 +13492,7 @@
             'HH:mm'
           ],
           DATETIMEFORMATS: const [
-            '{1} {0}',
+            '{1} \'kl\'. {0}',
             '{1} \'kl\'. {0}',
             '{1}, {0}',
             '{1}, {0}'
@@ -12713,6 +13500,152 @@
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 3),
+      // Date/time formatting symbols for locale nyn.
+      "nyn": new DateSymbols(
+          NAME: "nyn",
+          ERAS: const ['BC', 'AD'],
+          ERANAMES: const ['Kurisito Atakaijire', 'Kurisito Yaijire'],
+          NARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          STANDALONENARROWMONTHS: const [
+            'J',
+            'F',
+            'M',
+            'A',
+            'M',
+            'J',
+            'J',
+            'A',
+            'S',
+            'O',
+            'N',
+            'D'
+          ],
+          MONTHS: const [
+            'Okwokubanza',
+            'Okwakabiri',
+            'Okwakashatu',
+            'Okwakana',
+            'Okwakataana',
+            'Okwamukaaga',
+            'Okwamushanju',
+            'Okwamunaana',
+            'Okwamwenda',
+            'Okwaikumi',
+            'Okwaikumi na kumwe',
+            'Okwaikumi na ibiri'
+          ],
+          STANDALONEMONTHS: const [
+            'Okwokubanza',
+            'Okwakabiri',
+            'Okwakashatu',
+            'Okwakana',
+            'Okwakataana',
+            'Okwamukaaga',
+            'Okwamushanju',
+            'Okwamunaana',
+            'Okwamwenda',
+            'Okwaikumi',
+            'Okwaikumi na kumwe',
+            'Okwaikumi na ibiri'
+          ],
+          SHORTMONTHS: const [
+            'KBZ',
+            'KBR',
+            'KST',
+            'KKN',
+            'KTN',
+            'KMK',
+            'KMS',
+            'KMN',
+            'KMW',
+            'KKM',
+            'KNK',
+            'KNB'
+          ],
+          STANDALONESHORTMONTHS: const [
+            'KBZ',
+            'KBR',
+            'KST',
+            'KKN',
+            'KTN',
+            'KMK',
+            'KMS',
+            'KMN',
+            'KMW',
+            'KKM',
+            'KNK',
+            'KNB'
+          ],
+          WEEKDAYS: const [
+            'Sande',
+            'Orwokubanza',
+            'Orwakabiri',
+            'Orwakashatu',
+            'Orwakana',
+            'Orwakataano',
+            'Orwamukaaga'
+          ],
+          STANDALONEWEEKDAYS: const [
+            'Sande',
+            'Orwokubanza',
+            'Orwakabiri',
+            'Orwakashatu',
+            'Orwakana',
+            'Orwakataano',
+            'Orwamukaaga'
+          ],
+          SHORTWEEKDAYS: const [
+            'SAN',
+            'ORK',
+            'OKB',
+            'OKS',
+            'OKN',
+            'OKT',
+            'OMK'
+          ],
+          STANDALONESHORTWEEKDAYS: const [
+            'SAN',
+            'ORK',
+            'OKB',
+            'OKS',
+            'OKN',
+            'OKT',
+            'OMK'
+          ],
+          NARROWWEEKDAYS: const ['S', 'K', 'R', 'S', 'N', 'T', 'M'],
+          STANDALONENARROWWEEKDAYS: const ['S', 'K', 'R', 'S', 'N', 'T', 'M'],
+          SHORTQUARTERS: const ['K1', 'K2', 'K3', 'K4'],
+          QUARTERS: const ['KWOTA 1', 'KWOTA 2', 'KWOTA 3', 'KWOTA 4'],
+          AMPMS: const ['AM', 'PM'],
+          DATEFORMATS: const [
+            'EEEE, d MMMM y',
+            'd MMMM y',
+            'd MMM y',
+            'dd/MM/y'
+          ],
+          TIMEFORMATS: const [
+            'HH:mm:ss zzzz',
+            'HH:mm:ss z',
+            'HH:mm:ss',
+            'HH:mm'
+          ],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          FIRSTDAYOFWEEK: 0,
+          WEEKENDRANGE: const [5, 6],
+          FIRSTWEEKCUTOFFDAY: 6),
       // Date/time formatting symbols for locale or.
       "or": new DateSymbols(
           NAME: "or",
@@ -13180,7 +14113,7 @@
             'EEEE, d MMMM y',
             'd MMMM y',
             'd MMM y',
-            'dd.MM.y'
+            'd.MM.y'
           ],
           TIMEFORMATS: const [
             'HH:mm:ss zzzz',
@@ -13234,7 +14167,7 @@
             'مۍ',
             'جون',
             'جولای',
-            'اگست',
+            'اګست',
             'سېپتمبر',
             'اکتوبر',
             'نومبر',
@@ -13248,7 +14181,7 @@
             'مۍ',
             'جون',
             'جولای',
-            'اگست',
+            'اګست',
             'سپتمبر',
             'اکتوبر',
             'نومبر',
@@ -13262,7 +14195,7 @@
             'مۍ',
             'جون',
             'جولای',
-            'اگست',
+            'اګست',
             'سېپتمبر',
             'اکتوبر',
             'نومبر',
@@ -13276,7 +14209,7 @@
             'مۍ',
             'جون',
             'جولای',
-            'اگست',
+            'اګست',
             'سپتمبر',
             'اکتوبر',
             'نومبر',
@@ -13406,32 +14339,32 @@
             'dezembro'
           ],
           SHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           STANDALONESHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -13452,22 +14385,22 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom',
-            'seg',
-            'ter',
-            'qua',
-            'qui',
-            'sex',
-            'sáb'
+            'dom.',
+            'seg.',
+            'ter.',
+            'qua.',
+            'qui.',
+            'sex.',
+            'sáb.'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom',
-            'seg',
-            'ter',
-            'qua',
-            'qui',
-            'sex',
-            'sáb'
+            'dom.',
+            'seg.',
+            'ter.',
+            'qua.',
+            'qui.',
+            'sex.',
+            'sáb.'
           ],
           NARROWWEEKDAYS: const ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
@@ -13558,32 +14491,32 @@
             'dezembro'
           ],
           SHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           STANDALONESHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -13604,22 +14537,22 @@
             'sábado'
           ],
           SHORTWEEKDAYS: const [
-            'dom',
-            'seg',
-            'ter',
-            'qua',
-            'qui',
-            'sex',
-            'sáb'
+            'dom.',
+            'seg.',
+            'ter.',
+            'qua.',
+            'qui.',
+            'sex.',
+            'sáb.'
           ],
           STANDALONESHORTWEEKDAYS: const [
-            'dom',
-            'seg',
-            'ter',
-            'qua',
-            'qui',
-            'sex',
-            'sáb'
+            'dom.',
+            'seg.',
+            'ter.',
+            'qua.',
+            'qui.',
+            'sex.',
+            'sáb.'
           ],
           NARROWWEEKDAYS: const ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
           STANDALONENARROWWEEKDAYS: const ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
@@ -13709,32 +14642,32 @@
             'dezembro'
           ],
           SHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           STANDALONESHORTMONTHS: const [
-            'jan',
-            'fev',
-            'mar',
-            'abr',
-            'mai',
-            'jun',
-            'jul',
-            'ago',
-            'set',
-            'out',
-            'nov',
-            'dez'
+            'jan.',
+            'fev.',
+            'mar.',
+            'abr.',
+            'mai.',
+            'jun.',
+            'jul.',
+            'ago.',
+            'set.',
+            'out.',
+            'nov.',
+            'dez.'
           ],
           WEEKDAYS: const [
             'domingo',
@@ -14076,7 +15009,7 @@
             'пт',
             'сб'
           ],
-          NARROWWEEKDAYS: const ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+          NARROWWEEKDAYS: const ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'],
           STANDALONENARROWWEEKDAYS: const ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'],
           SHORTQUARTERS: const ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'],
           QUARTERS: const [
@@ -14545,8 +15478,8 @@
           ],
           AMPMS: const ['dop.', 'pop.'],
           DATEFORMATS: const [
-            'EEEE, dd. MMMM y',
-            'dd. MMMM y',
+            'EEEE, d. MMMM y',
+            'd. MMMM y',
             'd. MMM y',
             'd. MM. yy'
           ],
@@ -14556,7 +15489,7 @@
             'HH:mm:ss',
             'HH:mm'
           ],
-          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
+          DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'],
           FIRSTDAYOFWEEK: 0,
           WEEKENDRANGE: const [5, 6],
           FIRSTWEEKCUTOFFDAY: 6),
@@ -14848,18 +15781,18 @@
           ],
           NARROWWEEKDAYS: const ['н', 'п', 'у', 'с', 'ч', 'п', 'с'],
           STANDALONENARROWWEEKDAYS: const ['н', 'п', 'у', 'с', 'ч', 'п', 'с'],
-          SHORTQUARTERS: const ['К1', 'К2', 'К3', 'К4'],
+          SHORTQUARTERS: const ['1. кв.', '2. кв.', '3. кв.', '4. кв.'],
           QUARTERS: const [
             'први квартал',
             'други квартал',
             'трећи квартал',
             'четврти квартал'
           ],
-          AMPMS: const ['пре подне', 'по подне'],
+          AMPMS: const ['AM', 'PM'],
           DATEFORMATS: const [
-            'EEEE, dd. MMMM y.',
-            'dd. MMMM y.',
-            'dd.MM.y.',
+            'EEEE, d. MMMM y.',
+            'd. MMMM y.',
+            'd. M. y.',
             'd.M.yy.'
           ],
           TIMEFORMATS: const [
@@ -14999,18 +15932,18 @@
           ],
           NARROWWEEKDAYS: const ['n', 'p', 'u', 's', 'č', 'p', 's'],
           STANDALONENARROWWEEKDAYS: const ['n', 'p', 'u', 's', 'č', 'p', 's'],
-          SHORTQUARTERS: const ['K1', 'K2', 'K3', 'K4'],
+          SHORTQUARTERS: const ['1. kv.', '2. kv.', '3. kv.', '4. kv.'],
           QUARTERS: const [
             'prvi kvartal',
             'drugi kvartal',
             'treći kvartal',
             'četvrti kvartal'
           ],
-          AMPMS: const ['pre podne', 'po podne'],
+          AMPMS: const ['AM', 'PM'],
           DATEFORMATS: const [
-            'EEEE, dd. MMMM y.',
-            'dd. MMMM y.',
-            'dd.MM.y.',
+            'EEEE, d. MMMM y.',
+            'd. MMMM y.',
+            'd. M. y.',
             'd.M.yy.'
           ],
           TIMEFORMATS: const [
@@ -15165,7 +16098,7 @@
             'y-MM-dd'
           ],
           TIMEFORMATS: const [
-            '\'kl\'. HH:mm:ss zzzz',
+            'HH:mm:ss zzzz',
             'HH:mm:ss z',
             'HH:mm:ss',
             'HH:mm'
@@ -15481,8 +16414,8 @@
             'a h:mm'
           ],
           DATETIMEFORMATS: const [
-            '{1} ’அன்று’ {0}',
-            '{1} ’அன்று’ {0}',
+            '{1} அன்று {0}',
+            '{1} அன்று {0}',
             '{1}, {0}',
             '{1}, {0}'
           ],
@@ -16562,8 +17495,8 @@
       // Date/time formatting symbols for locale vi.
       "vi": new DateSymbols(
           NAME: "vi",
-          ERAS: const ['Trước CN', 'sau CN'],
-          ERANAMES: const ['Trước CN', 'sau CN'],
+          ERAS: const ['Trước CN', 'Sau CN'],
+          ERANAMES: const ['Trước Thiên Chúa', 'Sau Công Nguyên'],
           NARROWMONTHS: const [
             '1',
             '2',
@@ -16829,10 +17762,10 @@
           AMPMS: const ['上午', '下午'],
           DATEFORMATS: const ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'y/M/d'],
           TIMEFORMATS: const [
-            'zzzz ah:mm:ss',
-            'z ah:mm:ss',
-            'ah:mm:ss',
-            'ah:mm'
+            'zzzz HH:mm:ss',
+            'z HH:mm:ss',
+            'HH:mm:ss',
+            'HH:mm'
           ],
           DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
           FIRSTDAYOFWEEK: 6,
@@ -16955,10 +17888,10 @@
           AMPMS: const ['上午', '下午'],
           DATEFORMATS: const ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'y/M/d'],
           TIMEFORMATS: const [
-            'zzzz ah:mm:ss',
-            'z ah:mm:ss',
-            'ah:mm:ss',
-            'ah:mm'
+            'zzzz HH:mm:ss',
+            'z HH:mm:ss',
+            'HH:mm:ss',
+            'HH:mm'
           ],
           DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
           FIRSTDAYOFWEEK: 6,
@@ -17205,10 +18138,10 @@
           AMPMS: const ['上午', '下午'],
           DATEFORMATS: const ['y年M月d日 EEEE', 'y年M月d日', 'y年M月d日', 'y/M/d'],
           TIMEFORMATS: const [
-            'ah:mm:ss [zzzz]',
-            'ah:mm:ss [z]',
-            'ah:mm:ss',
-            'ah:mm'
+            'Bh:mm:ss [zzzz]',
+            'Bh:mm:ss [z]',
+            'Bh:mm:ss',
+            'Bh:mm'
           ],
           DATETIMEFORMATS: const ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'],
           FIRSTDAYOFWEEK: 6,
diff --git a/intl/lib/date_symbols.dart b/intl/lib/date_symbols.dart
index e4214e4..38df0a8 100644
--- a/intl/lib/date_symbols.dart
+++ b/intl/lib/date_symbols.dart
@@ -4,7 +4,7 @@
 library date_symbols;
 
 // Suppress naming lints, as changes would be breaking.
-// ignore_for_file: avoid_types_as_parameter_names,non_constant_identifier_names
+// ignore_for_file: non_constant_identifier_names
 
 /// This holds onto information about how a particular locale formats dates. It
 /// contains mostly strings, e.g. what the names of months or weekdays are,
@@ -136,34 +136,35 @@
   // TODO(alanknight): Replace this with use of a more general serialization
   // facility once one is available. Issue 4926.
   factory DateSymbols.deserializeFromMap(Map<dynamic, dynamic> map) {
-    List<String> _getStringList(String name) => List<String>.from(map[name]);
+    List<String> getStringList(String name) => List<String>.from(map[name]);
+
     return DateSymbols(
       NAME: map['NAME'],
-      ERAS: _getStringList('ERAS'),
-      ERANAMES: _getStringList('ERANAMES'),
-      NARROWMONTHS: _getStringList('NARROWMONTHS'),
-      STANDALONENARROWMONTHS: _getStringList('STANDALONENARROWMONTHS'),
-      MONTHS: _getStringList('MONTHS'),
-      STANDALONEMONTHS: _getStringList('STANDALONEMONTHS'),
-      SHORTMONTHS: _getStringList('SHORTMONTHS'),
-      STANDALONESHORTMONTHS: _getStringList('STANDALONESHORTMONTHS'),
-      WEEKDAYS: _getStringList('WEEKDAYS'),
-      STANDALONEWEEKDAYS: _getStringList('STANDALONEWEEKDAYS'),
-      SHORTWEEKDAYS: _getStringList('SHORTWEEKDAYS'),
-      STANDALONESHORTWEEKDAYS: _getStringList('STANDALONESHORTWEEKDAYS'),
-      NARROWWEEKDAYS: _getStringList('NARROWWEEKDAYS'),
-      STANDALONENARROWWEEKDAYS: _getStringList('STANDALONENARROWWEEKDAYS'),
-      SHORTQUARTERS: _getStringList('SHORTQUARTERS'),
-      QUARTERS: _getStringList('QUARTERS'),
-      AMPMS: _getStringList('AMPMS'),
+      ERAS: getStringList('ERAS'),
+      ERANAMES: getStringList('ERANAMES'),
+      NARROWMONTHS: getStringList('NARROWMONTHS'),
+      STANDALONENARROWMONTHS: getStringList('STANDALONENARROWMONTHS'),
+      MONTHS: getStringList('MONTHS'),
+      STANDALONEMONTHS: getStringList('STANDALONEMONTHS'),
+      SHORTMONTHS: getStringList('SHORTMONTHS'),
+      STANDALONESHORTMONTHS: getStringList('STANDALONESHORTMONTHS'),
+      WEEKDAYS: getStringList('WEEKDAYS'),
+      STANDALONEWEEKDAYS: getStringList('STANDALONEWEEKDAYS'),
+      SHORTWEEKDAYS: getStringList('SHORTWEEKDAYS'),
+      STANDALONESHORTWEEKDAYS: getStringList('STANDALONESHORTWEEKDAYS'),
+      NARROWWEEKDAYS: getStringList('NARROWWEEKDAYS'),
+      STANDALONENARROWWEEKDAYS: getStringList('STANDALONENARROWWEEKDAYS'),
+      SHORTQUARTERS: getStringList('SHORTQUARTERS'),
+      QUARTERS: getStringList('QUARTERS'),
+      AMPMS: getStringList('AMPMS'),
       ZERODIGIT: map['ZERODIGIT'],
-      DATEFORMATS: _getStringList('DATEFORMATS'),
-      TIMEFORMATS: _getStringList('TIMEFORMATS'),
+      DATEFORMATS: getStringList('DATEFORMATS'),
+      TIMEFORMATS: getStringList('TIMEFORMATS'),
       AVAILABLEFORMATS: Map<String, String>.from(map['AVAILABLEFORMATS'] ?? {}),
       FIRSTDAYOFWEEK: map['FIRSTDAYOFWEEK'],
       WEEKENDRANGE: List<int>.from(map['WEEKENDRANGE']),
       FIRSTWEEKCUTOFFDAY: map['FIRSTWEEKCUTOFFDAY'],
-      DATETIMEFORMATS: _getStringList('DATETIMEFORMATS'),
+      DATETIMEFORMATS: getStringList('DATETIMEFORMATS'),
     );
   }
 
@@ -205,12 +206,13 @@
         'DATETIMEFORMATS': DATETIMEFORMATS,
       };
 
+  @override
   String toString() => NAME;
 }
 
 /// We hard-code the locale data for en_US here so that there's at least one
 /// locale always available.
-var en_USSymbols = DateSymbols(
+final DateSymbols en_USSymbols = DateSymbols(
     NAME: 'en_US',
     ERAS: const ['BC', 'AD'],
     ERANAMES: const ['Before Christ', 'Anno Domini'],
@@ -348,7 +350,8 @@
       '{1}, {0}'
     ]);
 
-var en_USPatterns = const {
+// ignore: constant_identifier_names
+const Map<String, String> en_USPatterns = {
   'd': 'd', // DAY
   'E': 'EEE', // ABBR_WEEKDAY
   'EEEE': 'EEEE', // WEEKDAY
diff --git a/intl/lib/date_time_patterns.dart b/intl/lib/date_time_patterns.dart
index 162dc20..6735c2e 100644
--- a/intl/lib/date_time_patterns.dart
+++ b/intl/lib/date_time_patterns.dart
@@ -6,7 +6,7 @@
 ///
 /// DO NOT EDIT. This file is autogenerated from ICU data. See
 /// 'http://go/generate_datetime_pattern_dart.cc' (Google internal)
-/// File generated from CLDR ver. 35.1
+/// File generated from CLDR ver. 41.0
 
 // MANUAL EDIT TO SUPPRESS WARNINGS IN GENERATED CODE
 // ignore_for_file: unnecessary_const
@@ -16,7 +16,7 @@
 /// Returns a Map from locale names to another Map that goes from skeletons
 /// to the locale-specific formatting patterns.
 /// Internal use only. Call initializeDateFormatting instead.
-Map<String, Map<String, String>> dateTimePatternMap() => const {
+Map<String, Map<String, String>> dateTimePatternMap() => {
       /// Extended set of localized date/time patterns for locale af.
       'af': const {
         'd': 'd', // DAY
@@ -122,7 +122,7 @@
         'LLLL': 'LLLL', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
         'Md': 'd/‏M', // NUM_MONTH_DAY
-        'MEd': 'EEE، d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MEd': 'EEE، d/‏M', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'LLL', // ABBR_MONTH
         'MMMd': 'd MMM', // ABBR_MONTH_DAY
         'MMMEd': 'EEE، d MMM', // ABBR_MONTH_WEEKDAY_DAY
@@ -170,7 +170,7 @@
         'LLLL': 'LLLL', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
         'Md': 'd/‏M', // NUM_MONTH_DAY
-        'MEd': 'EEE، d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MEd': 'EEE، d/‏M', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'LLL', // ABBR_MONTH
         'MMMd': 'd MMM', // ABBR_MONTH_DAY
         'MMMEd': 'EEE، d MMM', // ABBR_MONTH_WEEKDAY_DAY
@@ -218,7 +218,7 @@
         'LLLL': 'LLLL', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
         'Md': 'd/‏M', // NUM_MONTH_DAY
-        'MEd': 'EEE، d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MEd': 'EEE، d/‏M', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'LLL', // ABBR_MONTH
         'MMMd': 'd MMM', // ABBR_MONTH_DAY
         'MMMEd': 'EEE، d MMM', // ABBR_MONTH_WEEKDAY_DAY
@@ -383,15 +383,15 @@
         'yMMMMEEEEd': 'EEEE, d MMMM y \'г\'.', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y \'г\'.', // YEAR_ABBR_QUARTER
         'yQQQQ': 'QQQQ y \'г\'.', // YEAR_QUARTER
-        'H': 'H \'ч\'.', // HOUR24
-        'Hm': 'H:mm \'ч\'.', // HOUR24_MINUTE
-        'Hms': 'H:mm:ss \'ч\'.', // HOUR24_MINUTE_SECOND
-        'j': 'H \'ч\'.', // HOUR
-        'jm': 'H:mm \'ч\'.', // HOUR_MINUTE
-        'jms': 'H:mm:ss \'ч\'.', // HOUR_MINUTE_SECOND
+        'H': 'HH \'ч\'.', // HOUR24
+        'Hm': 'HH:mm \'ч\'.', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss \'ч\'.', // HOUR24_MINUTE_SECOND
+        'j': 'HH \'ч\'.', // HOUR
+        'jm': 'HH:mm \'ч\'.', // HOUR_MINUTE
+        'jms': 'HH:mm:ss \'ч\'.', // HOUR_MINUTE_SECOND
         'jmv': 'HH:mm \'ч\'. v', // HOUR_MINUTE_GENERIC_TZ
         'jmz': 'HH:mm \'ч\'. z', // HOUR_MINUTETZ
-        'jz': 'H \'ч\'. z', // HOURGENERIC_TZ
+        'jz': 'HH \'ч\'. z', // HOURGENERIC_TZ
         'm': 'm', // MINUTE
         'ms': 'm:ss', // MINUTE_SECOND
         's': 's', // SECOND
@@ -938,27 +938,27 @@
         'LLLL': 'MMMM', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
         'Md': 'd/M', // NUM_MONTH_DAY
-        'MEd': 'EEE, d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MEd': 'EEE d/M', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'MMM', // ABBR_MONTH
         'MMMd': 'd MMM', // ABBR_MONTH_DAY
-        'MMMEd': 'EEE, d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
         'MMMM': 'MMMM', // MONTH
         'MMMMd': 'd MMMM', // MONTH_DAY
-        'MMMMEEEEd': 'EEEE, d MMMM', // MONTH_WEEKDAY_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
         'QQQ': 'QQQ', // ABBR_QUARTER
         'QQQQ': 'QQQQ', // QUARTER
         'y': 'y', // YEAR
         'yM': 'M/y', // YEAR_NUM_MONTH
         'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
-        'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMEd': 'EEE d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'LLLL y', // YEAR_MONTH
         'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
-        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
-        'yQQQ': 'y QQQ', // YEAR_ABBR_QUARTER
-        'yQQQQ': 'y QQQQ', // YEAR_QUARTER
+        'yMMMMEEEEd': 'EEEE d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
         'H': 'HH', // HOUR24
         'Hm': 'HH:mm', // HOUR24_MINUTE
         'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
@@ -1092,7 +1092,7 @@
         'QQQ': 'QQQ', // ABBR_QUARTER
         'QQQQ': 'QQQQ', // QUARTER
         'y': 'y', // YEAR
-        'yM': 'y-MM', // YEAR_NUM_MONTH
+        'yM': 'MM/y', // YEAR_NUM_MONTH
         'yMd': 'y-MM-dd', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, y-MM-dd', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
@@ -1479,9 +1479,9 @@
         'yM': 'M/y', // YEAR_NUM_MONTH
         'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
-        'yMMM': 'MMMM \'de\' y', // YEAR_ABBR_MONTH
-        'yMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d \'de\' MMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'MMMM \'de\' y', // YEAR_MONTH
         'yMMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d \'de\' MMMM \'de\' y', // YEAR_MONTH_WEEKDAY_DAY
@@ -1493,8 +1493,8 @@
         'j': 'HH', // HOUR
         'jm': 'HH:mm', // HOUR_MINUTE
         'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
-        'jmv': 'H:mm v', // HOUR_MINUTE_GENERIC_TZ
-        'jmz': 'H:mm z', // HOUR_MINUTETZ
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
         'jz': 'HH z', // HOURGENERIC_TZ
         'm': 'm', // MINUTE
         'ms': 'mm:ss', // MINUTE_SECOND
@@ -1575,20 +1575,20 @@
         'yM': 'M/y', // YEAR_NUM_MONTH
         'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
-        'yMMM': 'MMMM \'de\' y', // YEAR_ABBR_MONTH
-        'yMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d \'de\' MMMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d \'de\' MMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'MMMM \'de\' y', // YEAR_MONTH
         'yMMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d \'de\' MMMM \'de\' y', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
         'yQQQQ': 'QQQQ \'de\' y', // YEAR_QUARTER
         'H': 'HH', // HOUR24
-        'Hm': 'H:mm', // HOUR24_MINUTE
-        'Hms': 'H:mm:ss', // HOUR24_MINUTE_SECOND
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
         'j': 'HH', // HOUR
-        'jm': 'H:mm', // HOUR_MINUTE
-        'jms': 'H:mm:ss', // HOUR_MINUTE_SECOND
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
         'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
         'jmz': 'HH:mm z', // HOUR_MINUTETZ
         'jz': 'HH z', // HOURGENERIC_TZ
@@ -1623,9 +1623,9 @@
         'yM': 'M/y', // YEAR_NUM_MONTH
         'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
-        'yMMM': 'MMMM \'de\' y', // YEAR_ABBR_MONTH
-        'yMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d \'de\' MMMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d \'de\' MMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'MMMM \'de\' y', // YEAR_MONTH
         'yMMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d \'de\' MMMM \'de\' y', // YEAR_MONTH_WEEKDAY_DAY
@@ -1782,11 +1782,11 @@
         'j': 'H', // HOUR
         'jm': 'H:mm', // HOUR_MINUTE
         'jms': 'H:mm:ss', // HOUR_MINUTE_SECOND
-        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmv': 'H:mm v', // HOUR_MINUTE_GENERIC_TZ
         'jmz': 'HH:mm (z)', // HOUR_MINUTETZ
         'jz': 'H (z)', // HOURGENERIC_TZ
         'm': 'm', // MINUTE
-        'ms': 'mm:ss', // MINUTE_SECOND
+        'ms': 'm:ss', // MINUTE_SECOND
         's': 's', // SECOND
         'v': 'v', // ABBR_GENERIC_TZ
         'z': 'z', // ABBR_SPECIFIC_TZ
@@ -2057,8 +2057,8 @@
         'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM \'de\' y', // YEAR_ABBR_MONTH
-        'yMMMd': 'd/MM/y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d/MM/y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMd': 'd \'de\' MMM \'de\' y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d \'de\' MMM \'de\' y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'MMMM \'de\' y', // YEAR_MONTH
         'yMMMMd': 'd \'de\' MMMM \'de\' y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d \'de\' MMMM \'de\' y', // YEAR_MONTH_WEEKDAY_DAY
@@ -3206,7 +3206,7 @@
         'QQQQ': 'QQQQ', // QUARTER
         'y': 'y. \'g\'.', // YEAR
         'yM': 'MM.y.', // YEAR_NUM_MONTH
-        'yMd': 'y.MM.d.', // YEAR_NUM_MONTH_DAY
+        'yMd': 'd.MM.y.', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, d.M.y.', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'y. \'g\'. MMM', // YEAR_ABBR_MONTH
         'yMMMd': 'y. \'g\'. d. MMM', // YEAR_ABBR_MONTH_DAY
@@ -3357,7 +3357,8 @@
         'yMMMEd': 'y \'оны\' MMM\'ын\' d. EEE', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'y \'оны\' MMMM', // YEAR_MONTH
         'yMMMMd': 'y \'оны\' MMMM\'ын\' d', // YEAR_MONTH_DAY
-        'yMMMMEEEEd': 'y \'оны\' MMMM\'ын\' d. EEEE', // YEAR_MONTH_WEEKDAY_DAY
+        'yMMMMEEEEd': 'y \'оны\' MMMM\'ын\' d, EEEE \'гараг\'',
+        // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'y \'оны\' QQQ', // YEAR_ABBR_QUARTER
         'yQQQQ': 'y \'оны\' QQQQ', // YEAR_QUARTER
         'H': 'HH \'ц\'', // HOUR24
@@ -3579,10 +3580,10 @@
         'LLLL': 'LLLL', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
         'Md': 'd/M', // NUM_MONTH_DAY
-        'MEd': 'd/M၊ EEE', // NUM_MONTH_WEEKDAY_DAY
+        'MEd': 'd-M- EEE', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'LLL', // ABBR_MONTH
         'MMMd': 'd MMM', // ABBR_MONTH_DAY
-        'MMMEd': 'MMM d၊ EEE', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMEd': 'MMM d- EEE', // ABBR_MONTH_WEEKDAY_DAY
         'MMMM': 'LLLL', // MONTH
         'MMMMd': 'MMMM d', // MONTH_DAY
         'MMMMEEEEd': 'MMMM d ရက် EEEEနေ့', // MONTH_WEEKDAY_DAY
@@ -3591,13 +3592,13 @@
         'y': 'y', // YEAR
         'yM': 'M/y', // YEAR_NUM_MONTH
         'yMd': 'dd-MM-y', // YEAR_NUM_MONTH_DAY
-        'yMEd': 'd/M/y၊ EEE', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMEd': 'd/M/y- EEE', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
-        'yMMMd': 'y၊ MMM d', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'y၊ MMM d၊ EEE', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMd': 'y- MMM d', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'y- MMM d- EEE', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'y MMMM', // YEAR_MONTH
-        'yMMMMd': 'y၊ d MMMM', // YEAR_MONTH_DAY
-        'yMMMMEEEEd': 'y၊ MMMM d၊ EEEE', // YEAR_MONTH_WEEKDAY_DAY
+        'yMMMMd': 'y- MMMM d', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'y- MMMM d- EEEE', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'y QQQ', // YEAR_ABBR_QUARTER
         'yQQQQ': 'y QQQQ', // YEAR_QUARTER
         'H': 'HH', // HOUR24
@@ -3639,7 +3640,7 @@
         'y': 'y', // YEAR
         'yM': 'M.y', // YEAR_NUM_MONTH
         'yMd': 'd.M.y', // YEAR_NUM_MONTH_DAY
-        'yMEd': 'EEE d.MM.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMEd': 'EEE d.M.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd. MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE d. MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
@@ -3783,7 +3784,7 @@
         'y': 'y', // YEAR
         'yM': 'M.y', // YEAR_NUM_MONTH
         'yMd': 'd.M.y', // YEAR_NUM_MONTH_DAY
-        'yMEd': 'EEE d.MM.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMEd': 'EEE d.M.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd. MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE d. MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
@@ -3831,7 +3832,7 @@
         'y': 'y', // YEAR
         'yM': 'M.y', // YEAR_NUM_MONTH
         'yMd': 'd.M.y', // YEAR_NUM_MONTH_DAY
-        'yMEd': 'EEE d.MM.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMEd': 'EEE d.M.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd. MMM y', // YEAR_ABBR_MONTH_DAY
         'yMMMEd': 'EEE d. MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
@@ -4650,7 +4651,7 @@
         'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
         'yMMM': 'MMM y', // YEAR_ABBR_MONTH
         'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, MMM d, y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
         'yMMMM': 'MMMM y', // YEAR_MONTH
         'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
@@ -4936,10 +4937,10 @@
         'yM': 'MM.y', // YEAR_NUM_MONTH
         'yMd': 'dd.MM.y', // YEAR_NUM_MONTH_DAY
         'yMEd': 'EEE, dd.MM.y', // YEAR_NUM_MONTH_WEEKDAY_DAY
-        'yMMM': 'LLL y', // YEAR_ABBR_MONTH
-        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
-        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
-        'yMMMM': 'LLLL y', // YEAR_MONTH
+        'yMMM': 'LLL y \'р\'.', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y \'р\'.', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d MMM y \'р\'.', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'LLLL y \'р\'.', // YEAR_MONTH
         'yMMMMd': 'd MMMM y \'р\'.', // YEAR_MONTH_DAY
         'yMMMMEEEEd': 'EEEE, d MMMM y \'р\'.', // YEAR_MONTH_WEEKDAY_DAY
         'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
@@ -5139,12 +5140,12 @@
         'H': 'H时', // HOUR24
         'Hm': 'HH:mm', // HOUR24_MINUTE
         'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
-        'j': 'ah时', // HOUR
-        'jm': 'ah:mm', // HOUR_MINUTE
-        'jms': 'ah:mm:ss', // HOUR_MINUTE_SECOND
-        'jmv': 'v ah:mm', // HOUR_MINUTE_GENERIC_TZ
-        'jmz': 'z ah:mm', // HOUR_MINUTETZ
-        'jz': 'zah时', // HOURGENERIC_TZ
+        'j': 'H时', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'v HH:mm', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'z HH:mm', // HOUR_MINUTETZ
+        'jz': 'zH时', // HOURGENERIC_TZ
         'm': 'm', // MINUTE
         'ms': 'mm:ss', // MINUTE_SECOND
         's': 's', // SECOND
@@ -5187,12 +5188,12 @@
         'H': 'H时', // HOUR24
         'Hm': 'HH:mm', // HOUR24_MINUTE
         'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
-        'j': 'ah时', // HOUR
-        'jm': 'ah:mm', // HOUR_MINUTE
-        'jms': 'ah:mm:ss', // HOUR_MINUTE_SECOND
-        'jmv': 'v ah:mm', // HOUR_MINUTE_GENERIC_TZ
-        'jmz': 'z ah:mm', // HOUR_MINUTETZ
-        'jz': 'zah时', // HOURGENERIC_TZ
+        'j': 'H时', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'v HH:mm', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'z HH:mm', // HOUR_MINUTETZ
+        'jz': 'zH时', // HOURGENERIC_TZ
         'm': 'm', // MINUTE
         'ms': 'mm:ss', // MINUTE_SECOND
         's': 's', // SECOND
@@ -5541,8 +5542,8 @@
       /// Extended set of localized date/time patterns for locale ps.
       'ps': const {
         'd': 'd', // DAY
-        'E': 'ccc', // ABBR_WEEKDAY
-        'EEEE': 'cccc', // WEEKDAY
+        'E': 'EEE', // ABBR_WEEKDAY
+        'EEEE': 'EEEE', // WEEKDAY
         'LLL': 'LLL', // ABBR_STANDALONE_MONTH
         'LLLL': 'LLLL', // STANDALONE_MONTH
         'M': 'L', // NUM_MONTH
@@ -5550,10 +5551,10 @@
         'MEd': 'MM-dd, EEE', // NUM_MONTH_WEEKDAY_DAY
         'MMM': 'LLL', // ABBR_MONTH
         'MMMd': 'MMM d', // ABBR_MONTH_DAY
-        'MMMEd': 'MMM d, EEE', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMEd': 'EEE, MMM d', // ABBR_MONTH_WEEKDAY_DAY
         'MMMM': 'LLLL', // MONTH
         'MMMMd': 'MMMM d', // MONTH_DAY
-        'MMMMEEEEd': 'MMMM d, EEEE', // MONTH_WEEKDAY_DAY
+        'MMMMEEEEd': 'EEEE, MMMM d', // MONTH_WEEKDAY_DAY
         'QQQ': 'QQQ', // ABBR_QUARTER
         'QQQQ': 'QQQQ', // QUARTER
         'y': 'y', // YEAR
@@ -5584,5 +5585,293 @@
         'z': 'z', // ABBR_SPECIFIC_TZ
         'zzzz': 'zzzz', // SPECIFIC_TZ
         'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale fur.
+      'fur': const {
+        'd': 'd', // DAY
+        'E': 'EEE', // ABBR_WEEKDAY
+        'EEEE': 'EEEE', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'd/M', // NUM_MONTH_DAY
+        'MEd': 'EEE d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd \'di\' MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M/y', // YEAR_NUM_MONTH
+        'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'y MMM d', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'LLLL \'dal\' y', // YEAR_MONTH
+        'yMMMMd': 'd \'di\' MMMM \'dal\' y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE d \'di\' MMMM \'dal\' y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'H', // HOUR24
+        'Hm': 'H:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'H', // HOUR
+        'jm': 'H:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'H z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale bm.
+      'bm': const {
+        'd': 'd', // DAY
+        'E': 'EEE', // ABBR_WEEKDAY
+        'EEEE': 'EEEE', // WEEKDAY
+        'LLL': 'MMM', // ABBR_STANDALONE_MONTH
+        'LLLL': 'MMMM', // STANDALONE_MONTH
+        'M': 'M', // NUM_MONTH
+        'Md': 'd/M', // NUM_MONTH_DAY
+        'MEd': 'MM-dd, EEE', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'MMM', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'MMMM', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M/y', // YEAR_NUM_MONTH
+        'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'H', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'H', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'H z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale as.
+      'as': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'dd-MM', // NUM_MONTH_DAY
+        'MEd': 'EEE, dd-MM', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE, d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE, d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'MM-y', // YEAR_NUM_MONTH
+        'yMd': 'dd-MM-y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, dd-MM-y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM, y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM, y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'a h', // HOUR
+        'jm': 'a h:mm', // HOUR_MINUTE
+        'jms': 'a h:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'a h:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'a h:mm z', // HOUR_MINUTETZ
+        'jz': 'a h z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale mg.
+      'mg': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'MMM', // ABBR_STANDALONE_MONTH
+        'LLLL': 'MMMM', // STANDALONE_MONTH
+        'M': 'M', // NUM_MONTH
+        'Md': 'd/M', // NUM_MONTH_DAY
+        'MEd': 'EEE d/M', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'MMM', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'MMMM', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M/y', // YEAR_NUM_MONTH
+        'yMd': 'y-MM-dd', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE d/M/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'HH', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'HH z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale en_NZ.
+      'en_NZ': const {
+        'd': 'd', // DAY
+        'E': 'ccc', // ABBR_WEEKDAY
+        'EEEE': 'cccc', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'd/M', // NUM_MONTH_DAY
+        'MEd': 'EEE, dd/MM', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'd MMM', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE, d MMM', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'd MMMM', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE, d MMMM', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'MM/y', // YEAR_NUM_MONTH
+        'yMd': 'd/MM/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, dd/MM/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, d MMM y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'HH', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'h a', // HOUR
+        'jm': 'h:mm a', // HOUR_MINUTE
+        'jms': 'h:mm:ss a', // HOUR_MINUTE_SECOND
+        'jmv': 'h:mm a v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'h:mm a z', // HOUR_MINUTETZ
+        'jz': 'h a z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
+      },
+
+      /// Extended set of localized date/time patterns for locale nyn.
+      'nyn': const {
+        'd': 'd', // DAY
+        'E': 'EEE', // ABBR_WEEKDAY
+        'EEEE': 'EEEE', // WEEKDAY
+        'LLL': 'LLL', // ABBR_STANDALONE_MONTH
+        'LLLL': 'LLLL', // STANDALONE_MONTH
+        'M': 'L', // NUM_MONTH
+        'Md': 'M/d', // NUM_MONTH_DAY
+        'MEd': 'EEE, M/d', // NUM_MONTH_WEEKDAY_DAY
+        'MMM': 'LLL', // ABBR_MONTH
+        'MMMd': 'MMM d', // ABBR_MONTH_DAY
+        'MMMEd': 'EEE, MMM d', // ABBR_MONTH_WEEKDAY_DAY
+        'MMMM': 'LLLL', // MONTH
+        'MMMMd': 'MMMM d', // MONTH_DAY
+        'MMMMEEEEd': 'EEEE, MMMM d', // MONTH_WEEKDAY_DAY
+        'QQQ': 'QQQ', // ABBR_QUARTER
+        'QQQQ': 'QQQQ', // QUARTER
+        'y': 'y', // YEAR
+        'yM': 'M/y', // YEAR_NUM_MONTH
+        'yMd': 'd/M/y', // YEAR_NUM_MONTH_DAY
+        'yMEd': 'EEE, M/d/y', // YEAR_NUM_MONTH_WEEKDAY_DAY
+        'yMMM': 'MMM y', // YEAR_ABBR_MONTH
+        'yMMMd': 'd MMM y', // YEAR_ABBR_MONTH_DAY
+        'yMMMEd': 'EEE, MMM d, y', // YEAR_ABBR_MONTH_WEEKDAY_DAY
+        'yMMMM': 'MMMM y', // YEAR_MONTH
+        'yMMMMd': 'd MMMM y', // YEAR_MONTH_DAY
+        'yMMMMEEEEd': 'EEEE, d MMMM y', // YEAR_MONTH_WEEKDAY_DAY
+        'yQQQ': 'QQQ y', // YEAR_ABBR_QUARTER
+        'yQQQQ': 'QQQQ y', // YEAR_QUARTER
+        'H': 'H', // HOUR24
+        'Hm': 'HH:mm', // HOUR24_MINUTE
+        'Hms': 'HH:mm:ss', // HOUR24_MINUTE_SECOND
+        'j': 'H', // HOUR
+        'jm': 'HH:mm', // HOUR_MINUTE
+        'jms': 'HH:mm:ss', // HOUR_MINUTE_SECOND
+        'jmv': 'HH:mm v', // HOUR_MINUTE_GENERIC_TZ
+        'jmz': 'HH:mm z', // HOUR_MINUTETZ
+        'jz': 'H z', // HOURGENERIC_TZ
+        'm': 'm', // MINUTE
+        'ms': 'mm:ss', // MINUTE_SECOND
+        's': 's', // SECOND
+        'v': 'v', // ABBR_GENERIC_TZ
+        'z': 'z', // ABBR_SPECIFIC_TZ
+        'zzzz': 'zzzz', // SPECIFIC_TZ
+        'ZZZZ': 'ZZZZ' // ABBR_UTC_TZ
       }
     };
diff --git a/intl/lib/intl.dart b/intl/lib/intl.dart
index 2aab2b9..8de6bfc 100644
--- a/intl/lib/intl.dart
+++ b/intl/lib/intl.dart
@@ -100,8 +100,7 @@
   /// locale to be used, otherwise, we will attempt to infer it (acceptable if
   /// Dart is running on the client, we can infer from the browser/client
   /// preferences).
-  Intl([String? aLocale])
-      : _locale = aLocale != null ? aLocale : getCurrentLocale();
+  Intl([String? aLocale]) : _locale = aLocale ?? getCurrentLocale();
 
   /// Use this for a message that will be translated for different locales. The
   /// expected usage is that this is inside an enclosing function that only
@@ -223,7 +222,7 @@
   /// The [other] named argument is mandatory.
   /// The [precision] is the number of fractional digits that would be rendered
   /// when [howMany] is formatted. In some cases just knowing the numeric value
-  /// of [howMany] itsef is not enough, for example "1 mile" vs "1.00 miles"
+  /// of [howMany] itself is not enough, for example "1 mile" vs "1.00 miles"
   ///
   /// For an explanation of plurals and the [zero], [one], [two], [few], [many]
   /// categories see http://cldr.unicode.org/index/cldr-spec/plural-rules
@@ -302,7 +301,8 @@
       required T other,
       String? locale,
       int? precision,
-      String? meaning}) {
+      String? meaning,
+      bool useExplicitNumberCases = true}) {
     ArgumentError.checkNotNull(other, 'other');
     ArgumentError.checkNotNull(howMany, 'howMany');
     // If we haven't specified precision and we have a float that is an integer
@@ -318,7 +318,7 @@
     // the new behavior, since [precision] did not exist before.
     // For an English example: if the precision is 2 then the formatted string
     // would not map to 'one' (for example "1.00 miles")
-    if (precision == null || precision == 0) {
+    if (useExplicitNumberCases && (precision == null || precision == 0)) {
       // If there's an explicit case for the exact number, we use it. This is
       // not strictly in accord with the CLDR rules, but it seems to be the
       // expectation. At least I see e.g. Russian translations that have a zero
@@ -422,9 +422,9 @@
     ArgumentError.checkNotNull(other, 'other');
     switch (targetGender) {
       case 'female':
-        return female == null ? other : female;
+        return female ?? other;
       case 'male':
-        return male == null ? other : male;
+        return male ?? other;
       default:
         return other;
     }
@@ -442,8 +442,6 @@
   /// toString() of the enum and using just the name part. We will
   /// do this for any class or strings that are passed, since we
   /// can't actually identify if something is an enum or not.
-  ///
-  /// The first argument in [args] must correspond to the [choice] Object.
   @pragma('dart2js:tryInline')
   @pragma('vm:prefer-inline')
   static String select(Object choice, Map<Object, String> cases,
@@ -461,12 +459,13 @@
   @pragma('dart2js:noInline')
   static String _select(Object choice, Map<Object, String> cases,
       {String? locale, String? name, List<Object>? args, String? meaning}) {
+    if (choice is! String && args != null) {
+      var stringChoice = '$choice'.split('.').last;
+      args = args.map((a) => identical(a, choice) ? stringChoice : a).toList();
+    }
     // Look up our translation, but pass in a null message so we don't have to
     // eagerly evaluate calls that may not be necessary.
-    var stringChoice = choice is String ? choice : '$choice'.split('.').last;
-    var modifiedArgs =
-        args == null ? null : (<Object>[stringChoice]..addAll(args.skip(1)));
-    var translated = _lookupMessage(null, locale, name, modifiedArgs, meaning);
+    var translated = _lookupMessage(null, locale, name, args, meaning);
 
     /// If there's a translation, return it, otherwise evaluate with our
     /// original text.
@@ -532,6 +531,7 @@
     return defaultLocale ??= systemLocale;
   }
 
+  @override
   String toString() => 'Intl($locale)';
 }
 
@@ -559,7 +559,7 @@
 String _upperCaseLetter(String input, String? locale) {
   // Hard-code the important edge case of i->İ
   if (locale != null) {
-    if (input == 'i' && locale.startsWith('tr') || locale.startsWith('az')) {
+    if (input == 'i' && (locale.startsWith('tr') || locale.startsWith('az'))) {
       return '\u0130';
     }
   }
diff --git a/intl/lib/intl_standalone.dart b/intl/lib/intl_standalone.dart
index 00de3d3..2a94cf0 100644
--- a/intl/lib/intl_standalone.dart
+++ b/intl/lib/intl_standalone.dart
@@ -24,7 +24,7 @@
   try {
     Intl.systemLocale = Intl.canonicalizedLocale(Platform.localeName);
   } catch (e) {
-    return Future.value();
+    return Future.value(Intl.systemLocale);
   }
   return Future.value(Intl.systemLocale);
 }
diff --git a/intl/lib/message_format.dart b/intl/lib/message_format.dart
index 45b47ef..404bddd 100644
--- a/intl/lib/message_format.dart
+++ b/intl/lib/message_format.dart
@@ -76,7 +76,7 @@
 /// produce `"I see Mark and one other person in Athens."` as output.
 ///
 /// Calling `format({'NUM_PEOPLE': 5, 'WHO': 'Mark', 'PLACE': 'Athens'})` would
-/// produce `"I see Mark and one 4 other people in Athens."` as output.
+/// produce `"I see Mark and 4 other people in Athens."` as output.
 /// Notice how the "#" is the value of `NUM_PEOPLE` - 1 (the offset).
 ///
 /// Another important thing to notice is the existence of both `"=1"` and
@@ -136,10 +136,10 @@
   static const String _other = 'other';
 
   /// Regular expression for looking for string literals.
-  static final RegExp _regexLiteral = RegExp("'([{}#].*?)'");
+  static final RegExp _regexLiteral = RegExp(r"'([{}#].*?)'");
 
-  /// Regular expression for looking for '' in the message.
-  static final RegExp _regexDoubleApostrophe = RegExp("''");
+  /// Pattern for looking for '' in the message.
+  static final Pattern _patternDoubleApostrophe = "''";
 
   /// Create a MessageFormat for the ICU message string [pattern].
   /// It does parameter substitutions in a locale-aware way.
@@ -253,8 +253,6 @@
       var patternValue = currentPattern._value;
       var patternType = currentPattern._type;
 
-      _checkAndThrow(patternType is _BlockType,
-          'The type should be a block type: $patternType');
       switch (patternType) {
         case _BlockType.string:
           result.add(patternValue as String);
@@ -355,7 +353,7 @@
   /// Each formatting stage appends its product to the [result].
   void _formatPluralOrdinalBlock(
       Map<String, Object> parsedBlocks,
-      var namedParameters,
+      dynamic namedParameters,
       Function(num, String) pluralSelector,
       bool ignorePound,
       Queue<String> result) {
@@ -410,7 +408,6 @@
     var pluralResult = Queue<String>();
     _formatBlock(option!, namedParameters, ignorePound, pluralResult);
     var plural = pluralResult.join('');
-    _checkAndThrow(plural is String, 'Empty block in plural.');
     if (ignorePound) {
       result.add(plural);
     } else {
@@ -445,14 +442,14 @@
 
     // First replace '' with single quote placeholder since they can be found
     // inside other literals.
-    pattern = pattern.replaceAllMapped(_regexDoubleApostrophe, (match) {
+    pattern = pattern.replaceAllMapped(_patternDoubleApostrophe, (match) {
       literals.add("'");
       return buildPlaceholder(literals);
     });
 
     pattern = pattern.replaceAllMapped(_regexLiteral, (match) {
       // match, text
-      var text = match.group(1)!;
+      var text = match[1]!;
       literals.add(text);
       return buildPlaceholder(literals);
     });
@@ -466,7 +463,7 @@
     var braceStack = Queue<String>();
     var results = Queue<_ElementTypeAndVal>();
 
-    var braces = RegExp('[{}]');
+    var braces = RegExp(r'[{}]');
 
     Match match;
     for (match in braces.allMatches(pattern)) {
@@ -515,19 +512,18 @@
   ///
   /// It extracts the argument index and offset (if any).
   static final RegExp _pluralBlockRe =
-      RegExp('^\\s*(\\w+)\\s*,\\s*plural\\s*,(?:\\s*offset:(\\d+))?');
+      RegExp(r'^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?');
 
   /// A regular expression to parse the ordinal block.
   ///
   /// It extracts the argument index.
   static final RegExp _ordinalBlockRe =
-      RegExp('^\\s*(\\w+)\\s*,\\s*selectordinal\\s*,');
+      RegExp(r'^\s*(\w+)\s*,\s*selectordinal\s*,');
 
   /// A regular expression to parse the select block.
   ///
   /// It extracts the argument index.
-  static final RegExp _selectBlockRe =
-      RegExp('^\\s*(\\w+)\\s*,\\s*select\\s*,');
+  static final RegExp _selectBlockRe = RegExp(r'^\s*(\w+)\s*,\s*select\s*,');
 
   /// Detects the block type of the [pattern].
   _BlockType _parseBlockType(String pattern) {
@@ -543,7 +539,7 @@
       return _BlockType.select;
     }
 
-    if (RegExp('^\\s*\\w+\\s*').hasMatch(pattern)) {
+    if (RegExp(r'^\s*\w').hasMatch(pattern)) {
       return _BlockType.simple;
     }
 
@@ -562,8 +558,6 @@
       if (_ElementType.string == thePart._type) {
         block = _BlockTypeAndVal(_BlockType.string, thePart._value);
       } else if (_ElementType.block == thePart._type) {
-        _checkAndThrow(thePart._value is String,
-            'The value should be a string: ${thePart._value}');
         var blockType = _parseBlockType(thePart._value);
 
         switch (blockType) {
@@ -604,7 +598,7 @@
     var replaceRegex = _selectBlockRe;
     pattern = pattern.replaceFirstMapped(replaceRegex, (match) {
       // string, name
-      argumentName = match.group(1)!;
+      argumentName = match[1]!;
       return '';
     });
     var result = <String, Object>{'argumentName': argumentName};
@@ -614,7 +608,6 @@
     var pos = 0;
     while (pos < parts.length) {
       var thePart = parts.elementAt(pos);
-      _checkAndThrow(thePart._value is String, 'Missing select key element.');
       var key = thePart._value;
 
       pos++;
@@ -628,7 +621,7 @@
       } else {
         _checkAndThrow(false, 'Expected block type.');
       }
-      result[key.replaceAll(RegExp('\\s'), '')] = value!;
+      result[key.replaceAll(RegExp(r'\s+'), '')] = value!;
       pos++;
     }
 
@@ -647,9 +640,9 @@
     var replaceRegex = _pluralBlockRe;
     pattern = pattern.replaceFirstMapped(replaceRegex, (match) {
       // string, name, offset
-      argumentName = match.group(1)!;
-      if (_isDef(match.group(2))) {
-        argumentOffset = int.parse(match.group(2)!);
+      argumentName = match[1]!;
+      if (_isDef(match[2])) {
+        argumentOffset = int.parse(match[2]!);
       }
       return '';
     });
@@ -664,7 +657,6 @@
     var pos = 0;
     while (pos < parts.length) {
       var thePart = parts.elementAt(pos);
-      _checkAndThrow(thePart._value is String, 'Missing plural key element.');
       var key = thePart._value;
 
       pos++;
@@ -678,8 +670,8 @@
       } else {
         _checkAndThrow(false, 'Expected block type.');
       }
-      key = key.replaceFirstMapped(RegExp('\\s*(?:=)?(\\w+)\\s*'), (match) {
-        return match.group(1).toString();
+      key = key.replaceFirstMapped(RegExp(r'\s*=?(\w+)\s*'), (match) {
+        return match[1].toString();
       });
       result[key] = value!;
       pos++;
@@ -711,7 +703,7 @@
     var replaceRegex = _ordinalBlockRe;
     pattern = pattern.replaceFirstMapped(replaceRegex, (match) {
       // string, name
-      argumentName = match.group(1)!;
+      argumentName = match[1]!;
       return '';
     });
 
@@ -722,7 +714,6 @@
     var pos = 0;
     while (pos < parts.length) {
       var thePart = parts.elementAt(pos);
-      _checkAndThrow(thePart._value is String, 'Missing ordinal key element.');
       var key = thePart._value;
 
       pos++;
@@ -736,8 +727,8 @@
       } else {
         _checkAndThrow(false, 'Expected block type.');
       }
-      key = key.replaceFirstMapped(RegExp('\\s*(?:=)?(\\w+)\\s*'), (match) {
-        return match.group(1).toString();
+      key = key.replaceFirstMapped(RegExp(r'\s*=?(\w+)\s*'), (match) {
+        return match[1].toString();
       });
       result[key] = value!;
       pos++;
@@ -768,7 +759,7 @@
   return obj != null;
 }
 
-// Closure calls assert, which actually ends up with an exception on can catch.
+// Closure calls assert, which actually ends up with an exception one can catch.
 // In Dart assert is only for debug, so I am using this small wrapper method.
 void _checkAndThrow(bool condition, String message) {
   if (!condition) {
@@ -777,7 +768,7 @@
 }
 
 // Dart has no support for ordinals
-// TODO(b/142132665): add ordial rules to intl, then fix this
+// TODO(b/142132665): add ordinal rules to intl, then fix this
 class _OrdinalRules {
   static String select(num n, String locale) {
     return _PluralRules.select(n, locale);
@@ -794,7 +785,8 @@
         few: 'few',
         many: 'many',
         other: 'other',
-        locale: locale);
+        locale: locale,
+        useExplicitNumberCases: false);
   }
 }
 
@@ -803,7 +795,7 @@
   final T _type;
   final V _value;
 
-  _TypeAndVal(var this._type, var this._value);
+  _TypeAndVal(this._type, this._value);
 
   @override
   String toString() {
@@ -815,12 +807,12 @@
 enum _ElementType { string, block }
 
 class _ElementTypeAndVal extends _TypeAndVal<_ElementType, String> {
-  _ElementTypeAndVal(var _type, var _value) : super(_type, _value);
+  _ElementTypeAndVal(_ElementType type, String value) : super(type, value);
 }
 
 /// Block type.
 enum _BlockType { plural, ordinal, select, simple, string, unknown }
 
 class _BlockTypeAndVal extends _TypeAndVal<_BlockType, Object> {
-  _BlockTypeAndVal(var _type, var _value) : super(_type, _value);
+  _BlockTypeAndVal(_BlockType type, Object value) : super(type, value);
 }
diff --git a/intl/lib/message_lookup_by_library.dart b/intl/lib/message_lookup_by_library.dart
index ce35041..3a75d6c 100644
--- a/intl/lib/message_lookup_by_library.dart
+++ b/intl/lib/message_lookup_by_library.dart
@@ -19,10 +19,11 @@
 /// of individual [MessageLookupByLibrary] instances.
 class CompositeMessageLookup implements MessageLookup {
   /// A map from locale names to the corresponding lookups.
-  Map<String, MessageLookupByLibrary> availableMessages = Map();
+  Map<String, MessageLookupByLibrary> availableMessages = {};
 
   /// Return true if we have a message lookup for [localeName].
-  bool localeExists(localeName) => availableMessages.containsKey(localeName);
+  bool localeExists(String localeName) =>
+      availableMessages.containsKey(localeName);
 
   /// The last locale in which we looked up messages.
   ///
@@ -36,6 +37,7 @@
   /// Look up the message with the given [name] and [locale] and return the
   /// translated version with the values in [args] interpolated.  If nothing is
   /// found, return the result of [ifAbsent] or [messageText].
+  @override
   String? lookupMessage(String? messageText, String? locale, String? name,
       List<Object>? args, String? meaning,
       {MessageIfAbsent? ifAbsent}) {
@@ -65,6 +67,7 @@
   /// If we do not already have a locale for [localeName] then
   /// [findLocale] will be called and the result stored as the lookup
   /// mechanism for that locale.
+  @override
   void addLocale(String localeName, Function findLocale) {
     if (localeExists(localeName)) return;
     var canonical = Intl.canonicalizedLocale(localeName);
@@ -129,6 +132,7 @@
   /// Subclasses should override this to return their locale, e.g. 'en_US'
   String get localeName;
 
+  @override
   String toString() => localeName;
 
   /// Return a function that returns the given string.
diff --git a/intl/lib/number_symbols.dart b/intl/lib/number_symbols.dart
index 2f5c4bf..b16156e 100644
--- a/intl/lib/number_symbols.dart
+++ b/intl/lib/number_symbols.dart
@@ -4,7 +4,7 @@
 library number_symbols;
 
 // Suppress naming issues as changes would be breaking.
-// ignore_for_file: avoid_types_as_parameter_names, non_constant_identifier_names
+// ignore_for_file: non_constant_identifier_names
 
 /// This holds onto information about how a particular locale formats
 /// numbers. It contains strings for things like the decimal separator, digit to
@@ -46,6 +46,7 @@
       required this.CURRENCY_PATTERN,
       required this.DEF_CURRENCY_CODE});
 
+  @override
   String toString() => NAME;
 }
 
@@ -54,9 +55,9 @@
 /// (This class' members contain more than just symbols: they contain the full
 /// number formatting pattern.)
 class CompactNumberSymbols {
-  final Map<int, String> COMPACT_DECIMAL_SHORT_PATTERN;
-  final Map<int, String>? COMPACT_DECIMAL_LONG_PATTERN;
-  final Map<int, String> COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN;
+  final Map<int, Map<String, String>> COMPACT_DECIMAL_SHORT_PATTERN;
+  final Map<int, Map<String, String>>? COMPACT_DECIMAL_LONG_PATTERN;
+  final Map<int, Map<String, String>> COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN;
   CompactNumberSymbols(
       {required this.COMPACT_DECIMAL_SHORT_PATTERN,
       this.COMPACT_DECIMAL_LONG_PATTERN,
diff --git a/intl/lib/number_symbols_data.dart b/intl/lib/number_symbols_data.dart
index 8536d1c..5109ebe 100644
--- a/intl/lib/number_symbols_data.dart
+++ b/intl/lib/number_symbols_data.dart
@@ -8,6 +8,7 @@
 ///
 /// DO NOT EDIT. This file is autogenerated by script.  See
 /// http://go/generate_number_constants.py using the --for_dart flag.
+/// File generated from CLDR ver. 41
 ///
 /// Before checkin, this file could have been manually edited. This is
 /// to incorporate changes before we could correct CLDR. All manual
@@ -21,7 +22,8 @@
 import "number_symbols.dart";
 
 /// Map from locale to [NumberSymbols] used for that locale.
-Map<dynamic, dynamic> numberFormatSymbols = <String, NumberSymbols>{
+// TODO(#482): "final Map<String, NumberSymbols>"
+final Map<dynamic, dynamic> numberFormatSymbols = <String, NumberSymbols>{
   // Number formatting symbols for locale af.
   "af": new NumberSymbols(
       NAME: "af",
@@ -112,6 +114,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'EGP'),
+  // Number formatting symbols for locale as.
+  "as": new NumberSymbols(
+      NAME: "as",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '\u09E6',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00',
+      DEF_CURRENCY_CODE: 'INR'),
   // Number formatting symbols for locale az.
   "az": new NumberSymbols(
       NAME: "az",
@@ -166,6 +186,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'BGN'),
+  // Number formatting symbols for locale bm.
+  "bm": new NumberSymbols(
+      NAME: "bm",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4#,##0.00',
+      DEF_CURRENCY_CODE: 'XOF'),
   // Number formatting symbols for locale bn.
   "bn": new NumberSymbols(
       NAME: "bn",
@@ -427,7 +465,7 @@
       ZERO_DIGIT: '0',
       PLUS_SIGN: '+',
       MINUS_SIGN: '-',
-      EXP_SYMBOL: 'e',
+      EXP_SYMBOL: 'E',
       PERMILL: '\u2030',
       INFINITY: '\u221E',
       NAN: 'NaN',
@@ -488,7 +526,7 @@
       DECIMAL_PATTERN: '#,##,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##,##0%',
-      CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00',
+      CURRENCY_PATTERN: '\u00A4#,##,##0.00',
       DEF_CURRENCY_CODE: 'INR'),
   // Number formatting symbols for locale en_MY.
   "en_MY": new NumberSymbols(
@@ -508,6 +546,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '\u00A4#,##0.00',
       DEF_CURRENCY_CODE: 'MYR'),
+  // Number formatting symbols for locale en_NZ.
+  "en_NZ": new NumberSymbols(
+      NAME: "en_NZ",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4#,##0.00',
+      DEF_CURRENCY_CODE: 'NZD'),
   // Number formatting symbols for locale en_SG.
   "en_SG": new NumberSymbols(
       NAME: "en_SG",
@@ -796,6 +852,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'CHF'),
+  // Number formatting symbols for locale fur.
+  "fur": new NumberSymbols(
+      NAME: "fur",
+      DECIMAL_SEP: ',',
+      GROUP_SEP: '.',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      DEF_CURRENCY_CODE: 'EUR'),
   // Number formatting symbols for locale ga.
   "ga": new NumberSymbols(
       NAME: "ga",
@@ -808,7 +882,7 @@
       EXP_SYMBOL: 'E',
       PERMILL: '\u2030',
       INFINITY: '\u221E',
-      NAN: 'NaN',
+      NAN: 'Nuimh',
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##0%',
@@ -931,7 +1005,7 @@
       PERCENT: '%',
       ZERO_DIGIT: '0',
       PLUS_SIGN: '+',
-      MINUS_SIGN: '-',
+      MINUS_SIGN: '\u2212',
       EXP_SYMBOL: 'E',
       PERMILL: '\u2030',
       INFINITY: '\u221E',
@@ -1286,6 +1360,24 @@
       PERCENT_PATTERN: '#,##0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'EUR'),
+  // Number formatting symbols for locale mg.
+  "mg": new NumberSymbols(
+      NAME: "mg",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      DEF_CURRENCY_CODE: 'MGA'),
   // Number formatting symbols for locale mk.
   "mk": new NumberSymbols(
       NAME: "mk",
@@ -1301,7 +1393,7 @@
       NAN: 'NaN',
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
-      PERCENT_PATTERN: '#,##0%',
+      PERCENT_PATTERN: '#,##0\u00A0%',
       CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4',
       DEF_CURRENCY_CODE: 'MKD'),
   // Number formatting symbols for locale ml.
@@ -1429,7 +1521,7 @@
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##0\u00A0%',
-      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00;\u00A4\u00A0-#,##0.00',
       DEF_CURRENCY_CODE: 'NOK'),
   // Number formatting symbols for locale ne.
   "ne": new NumberSymbols(
@@ -1444,10 +1536,10 @@
       PERMILL: '\u2030',
       INFINITY: '\u221E',
       NAN: 'NaN',
-      DECIMAL_PATTERN: '#,##0.###',
+      DECIMAL_PATTERN: '#,##,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
-      PERCENT_PATTERN: '#,##0%',
-      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      PERCENT_PATTERN: '#,##,##0%',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00',
       DEF_CURRENCY_CODE: 'NPR'),
   // Number formatting symbols for locale nl.
   "nl": new NumberSymbols(
@@ -1483,7 +1575,7 @@
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##0\u00A0%',
-      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00;\u00A4\u00A0-#,##0.00',
       DEF_CURRENCY_CODE: 'NOK'),
   // Number formatting symbols for locale no_NO.
   "no_NO": new NumberSymbols(
@@ -1501,8 +1593,26 @@
       DECIMAL_PATTERN: '#,##0.###',
       SCIENTIFIC_PATTERN: '#E0',
       PERCENT_PATTERN: '#,##0\u00A0%',
-      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00',
+      CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00;\u00A4\u00A0-#,##0.00',
       DEF_CURRENCY_CODE: 'NOK'),
+  // Number formatting symbols for locale nyn.
+  "nyn": new NumberSymbols(
+      NAME: "nyn",
+      DECIMAL_SEP: '.',
+      GROUP_SEP: ',',
+      PERCENT: '%',
+      ZERO_DIGIT: '0',
+      PLUS_SIGN: '+',
+      MINUS_SIGN: '-',
+      EXP_SYMBOL: 'E',
+      PERMILL: '\u2030',
+      INFINITY: '\u221E',
+      NAN: 'NaN',
+      DECIMAL_PATTERN: '#,##0.###',
+      SCIENTIFIC_PATTERN: '#E0',
+      PERCENT_PATTERN: '#,##0%',
+      CURRENCY_PATTERN: '\u00A4#,##0.00',
+      DEF_CURRENCY_CODE: 'UGX'),
   // Number formatting symbols for locale or.
   "or": new NumberSymbols(
       NAME: "or",
@@ -2066,4597 +2176,3099 @@
 Map<String, CompactNumberSymbols> compactNumberSymbols = {
   // Compact number symbols for locale af.
   "af": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0k',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0m',
-    7: '00\u00A0m',
-    8: '000\u00A0m',
-    9: '0\u00A0mjd',
-    10: '00\u00A0mjd',
-    11: '000\u00A0mjd',
-    12: '0\u00A0bn',
-    13: '00\u00A0bn',
-    14: '000\u00A0bn',
+    3: {'other': '0\u00A0k'},
+    6: {'other': '0\u00A0m'},
+    9: {'other': '0\u00A0mjd'},
+    12: {'other': '0\u00A0bn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 duisend',
-    4: '00 duisend',
-    5: '000 duisend',
-    6: '0 miljoen',
-    7: '00 miljoen',
-    8: '000 miljoen',
-    9: '0 miljard',
-    10: '00 miljard',
-    11: '000 miljard',
-    12: '0 biljoen',
-    13: '00 biljoen',
-    14: '000 biljoen',
+    3: {'other': '0 duisend'},
+    6: {'other': '0 miljoen'},
+    9: {'other': '0 miljard'},
+    12: {'other': '0 biljoen'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0k',
-    4: '\u00A400\u00A0k',
-    5: '\u00A4000\u00A0k',
-    6: '\u00A40\u00A0m',
-    7: '\u00A400\u00A0m',
-    8: '\u00A4000\u00A0m',
-    9: '\u00A40\u00A0mjd',
-    10: '\u00A400\u00A0mjd',
-    11: '\u00A4000\u00A0mjd',
-    12: '\u00A40\u00A0bn',
-    13: '\u00A400\u00A0bn',
-    14: '\u00A4000\u00A0bn',
+    3: {'other': '\u00A40\u00A0k'},
+    6: {'other': '\u00A40\u00A0m'},
+    9: {'other': '\u00A40\u00A0mjd'},
+    12: {'other': '\u00A40\u00A0bn'},
   }),
   // Compact number symbols for locale am.
   "am": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u123A',
-    4: '00\u00A0\u123A',
-    5: '000\u00A0\u123A',
-    6: '0\u00A0\u121C\u1275\u122D',
-    7: '00\u00A0\u121C\u1275\u122D',
-    8: '000\u121C',
-    9: '0\u00A0\u1262',
-    10: '00\u00A0\u1262',
-    11: '000\u00A0\u1262',
-    12: '0\u00A0\u1275',
-    13: '00\u00A0\u1275',
-    14: '000\u00A0\u1275',
+    3: {'other': '0\u00A0\u123A'},
+    6: {'other': '0\u00A0\u121A'},
+    9: {'other': '0\u00A0\u1262'},
+    12: {'other': '0\u00A0\u1275'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u123A',
-    4: '00 \u123A',
-    5: '000 \u123A',
-    6: '0 \u121A\u120A\u12EE\u1295',
-    7: '00 \u121A\u120A\u12EE\u1295',
-    8: '000 \u121A\u120A\u12EE\u1295',
-    9: '0 \u1262\u120A\u12EE\u1295',
-    10: '00 \u1262\u120A\u12EE\u1295',
-    11: '000 \u1262\u120A\u12EE\u1295',
-    12: '0 \u1275\u122A\u120A\u12EE\u1295',
-    13: '00 \u1275\u122A\u120A\u12EE\u1295',
-    14: '000 \u1275\u122A\u120A\u12EE\u1295',
+    3: {'other': '0 \u123A'},
+    6: {'other': '0 \u121A\u120A\u12EE\u1295'},
+    9: {'other': '0 \u1262\u120A\u12EE\u1295'},
+    12: {'other': '0 \u1275\u122A\u120A\u12EE\u1295'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u123A',
-    4: '\u00A400\u00A0\u123A',
-    5: '\u00A4000\u00A0\u123A',
-    6: '\u00A40\u00A0\u121C\u1275\u122D',
-    7: '\u00A400\u00A0\u121C\u1275\u122D',
-    8: '\u00A4000\u00A0\u121C\u1275\u122D',
-    9: '\u00A40\u00A0\u1262',
-    10: '\u00A400\u00A0\u1262',
-    11: '\u00A4000\u00A0\u1262',
-    12: '\u00A40\u00A0\u1275',
-    13: '\u00A400\u00A0\u1275',
-    14: '\u00A4000\u00A0\u1275',
+    3: {'other': '\u00A40\u00A0\u123A'},
+    6: {'other': '\u00A40\u00A0\u121A'},
+    9: {'other': '\u00A40\u00A0\u1262'},
+    12: {'other': '\u00A40\u00A0\u1275'},
   }),
   // Compact number symbols for locale ar.
   "ar": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0623\u0644\u0641',
-    4: '00\u00A0\u0623\u0644\u0641',
-    5: '000\u00A0\u0623\u0644\u0641',
-    6: '0\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '0\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0\u00A0\u0622\u0644\u0627\u0641',
+      'many': '0\u00A0\u0623\u0644\u0641',
+      'one': '0\u00A0\u0623\u0644\u0641',
+      'other': '0\u00A0\u0623\u0644\u0641',
+      'two': '0\u00A0\u0623\u0644\u0641',
+      'zero': '0\u00A0\u0623\u0644\u0641',
+    },
+    4: {'other': '00\u00A0\u0623\u0644\u0641'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0623\u0644\u0641',
-    4: '00 \u0623\u0644\u0641',
-    5: '000 \u0623\u0644\u0641',
-    6: '0 \u0645\u0644\u064A\u0648\u0646',
-    7: '00 \u0645\u0644\u064A\u0648\u0646',
-    8: '000 \u0645\u0644\u064A\u0648\u0646',
-    9: '0 \u0645\u0644\u064A\u0627\u0631',
-    10: '00 \u0645\u0644\u064A\u0627\u0631',
-    11: '000 \u0645\u0644\u064A\u0627\u0631',
-    12: '0 \u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00 \u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000 \u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0 \u0622\u0644\u0627\u0641',
+      'many': '0 \u0623\u0644\u0641',
+      'one': '0 \u0623\u0644\u0641',
+      'other': '0 \u0623\u0644\u0641',
+      'two': '0 \u0623\u0644\u0641',
+      'zero': '0 \u0623\u0644\u0641',
+    },
+    4: {'other': '00 \u0623\u0644\u0641'},
+    6: {
+      'few': '0 \u0645\u0644\u0627\u064A\u064A\u0646',
+      'many': '0 \u0645\u0644\u064A\u0648\u0646',
+      'one': '0 \u0645\u0644\u064A\u0648\u0646',
+      'other': '0 \u0645\u0644\u064A\u0648\u0646',
+      'two': '0 \u0645\u0644\u064A\u0648\u0646',
+      'zero': '0 \u0645\u0644\u064A\u0648\u0646',
+    },
+    8: {'other': '000 \u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0 \u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0 \u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u0623\u0644\u0641',
-    4: '\u00A4\u00A000\u00A0\u0623\u0644\u0641',
-    5: '\u00A4\u00A0000\u00A0\u0623\u0644\u0641',
-    6: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '\u00A4\u00A00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '\u00A4\u00A000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '\u00A4\u00A0000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {'other': '0\u00A0\u0623\u0644\u0641\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ar_DZ.
   "ar_DZ": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0623\u0644\u0641',
-    4: '00\u00A0\u0623\u0644\u0641',
-    5: '000\u00A0\u0623\u0644\u0641',
-    6: '0\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '0\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0\u00A0\u0622\u0644\u0627\u0641',
+      'many': '0\u00A0\u0623\u0644\u0641',
+      'one': '0\u00A0\u0623\u0644\u0641',
+      'other': '0\u00A0\u0623\u0644\u0641',
+      'two': '0\u00A0\u0623\u0644\u0641',
+      'zero': '0\u00A0\u0623\u0644\u0641',
+    },
+    4: {'other': '00\u00A0\u0623\u0644\u0641'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0623\u0644\u0641',
-    4: '00 \u0623\u0644\u0641',
-    5: '000 \u0623\u0644\u0641',
-    6: '0 \u0645\u0644\u064A\u0648\u0646',
-    7: '00 \u0645\u0644\u064A\u0648\u0646',
-    8: '000 \u0645\u0644\u064A\u0648\u0646',
-    9: '0 \u0645\u0644\u064A\u0627\u0631',
-    10: '00 \u0645\u0644\u064A\u0627\u0631',
-    11: '000 \u0645\u0644\u064A\u0627\u0631',
-    12: '0 \u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00 \u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000 \u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0 \u0622\u0644\u0627\u0641',
+      'many': '0 \u0623\u0644\u0641',
+      'one': '0 \u0623\u0644\u0641',
+      'other': '0 \u0623\u0644\u0641',
+      'two': '0 \u0623\u0644\u0641',
+      'zero': '0 \u0623\u0644\u0641',
+    },
+    4: {'other': '00 \u0623\u0644\u0641'},
+    6: {
+      'few': '0 \u0645\u0644\u0627\u064A\u064A\u0646',
+      'many': '0 \u0645\u0644\u064A\u0648\u0646',
+      'one': '0 \u0645\u0644\u064A\u0648\u0646',
+      'other': '0 \u0645\u0644\u064A\u0648\u0646',
+      'two': '0 \u0645\u0644\u064A\u0648\u0646',
+      'zero': '0 \u0645\u0644\u064A\u0648\u0646',
+    },
+    8: {'other': '000 \u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0 \u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0 \u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u0623\u0644\u0641',
-    4: '\u00A4\u00A000\u00A0\u0623\u0644\u0641',
-    5: '\u00A4\u00A0000\u00A0\u0623\u0644\u0641',
-    6: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '\u00A4\u00A00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '\u00A4\u00A000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '\u00A4\u00A0000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {'other': '0\u00A0\u0623\u0644\u0641\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ar_EG.
   "ar_EG": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0623\u0644\u0641',
-    4: '00\u00A0\u0623\u0644\u0641',
-    5: '000\u00A0\u0623\u0644\u0641',
-    6: '0\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '0\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0\u00A0\u0622\u0644\u0627\u0641',
+      'many': '0\u00A0\u0623\u0644\u0641',
+      'one': '0\u00A0\u0623\u0644\u0641',
+      'other': '0\u00A0\u0623\u0644\u0641',
+      'two': '0\u00A0\u0623\u0644\u0641',
+      'zero': '0\u00A0\u0623\u0644\u0641',
+    },
+    4: {'other': '00\u00A0\u0623\u0644\u0641'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0623\u0644\u0641',
-    4: '00 \u0623\u0644\u0641',
-    5: '000 \u0623\u0644\u0641',
-    6: '0 \u0645\u0644\u064A\u0648\u0646',
-    7: '00 \u0645\u0644\u064A\u0648\u0646',
-    8: '000 \u0645\u0644\u064A\u0648\u0646',
-    9: '0 \u0645\u0644\u064A\u0627\u0631',
-    10: '00 \u0645\u0644\u064A\u0627\u0631',
-    11: '000 \u0645\u0644\u064A\u0627\u0631',
-    12: '0 \u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '00 \u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '000 \u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {
+      'few': '0 \u0622\u0644\u0627\u0641',
+      'many': '0 \u0623\u0644\u0641',
+      'one': '0 \u0623\u0644\u0641',
+      'other': '0 \u0623\u0644\u0641',
+      'two': '0 \u0623\u0644\u0641',
+      'zero': '0 \u0623\u0644\u0641',
+    },
+    4: {'other': '00 \u0623\u0644\u0641'},
+    6: {
+      'few': '0 \u0645\u0644\u0627\u064A\u064A\u0646',
+      'many': '0 \u0645\u0644\u064A\u0648\u0646',
+      'one': '0 \u0645\u0644\u064A\u0648\u0646',
+      'other': '0 \u0645\u0644\u064A\u0648\u0646',
+      'two': '0 \u0645\u0644\u064A\u0648\u0646',
+      'zero': '0 \u0645\u0644\u064A\u0648\u0646',
+    },
+    8: {'other': '000 \u0645\u0644\u064A\u0648\u0646'},
+    9: {'other': '0 \u0645\u0644\u064A\u0627\u0631'},
+    12: {'other': '0 \u062A\u0631\u0644\u064A\u0648\u0646'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u0623\u0644\u0641',
-    4: '\u00A4\u00A000\u00A0\u0623\u0644\u0641',
-    5: '\u00A4\u00A0000\u00A0\u0623\u0644\u0641',
-    6: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0648\u0646',
-    7: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    8: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0648\u0646',
-    9: '\u00A4\u00A00\u00A0\u0645\u0644\u064A\u0627\u0631',
-    10: '\u00A4\u00A000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    11: '\u00A4\u00A0000\u00A0\u0645\u0644\u064A\u0627\u0631',
-    12: '\u00A4\u00A00\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    13: '\u00A4\u00A000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
-    14: '\u00A4\u00A0000\u00A0\u062A\u0631\u0644\u064A\u0648\u0646',
+    3: {'other': '0\u00A0\u0623\u0644\u0641\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u0645\u0644\u064A\u0648\u0646\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u0645\u0644\u064A\u0627\u0631\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648\u0646\u00A0\u00A4'},
+  }),
+  // Compact number symbols for locale as.
+  "as": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0\u00A0\u09B9\u09BE\u099C\u09BE\u09F0'},
+    5: {'other': '0\u00A0\u09B2\u09BE\u0996'},
+    6: {'other': '0\u00A0\u09A8\u09BF\u09AF\u09C1\u09A4'},
+    8: {'other': '000\u00A0\u09A8\u09BF\u0983'},
+    9: {'other': '0\u00A0\u09B6\u0983\u00A0\u0995\u09CB\u0983'},
+    11: {'other': '000\u00A0\u09B6\u0983\u00A0\u0995\u0983'},
+    12: {'other': '0\u00A0\u09B6\u0983\u00A0\u09AA\u0983'},
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: {'other': '0 \u09B9\u09BE\u099C\u09BE\u09F0'},
+    5: {'other': '0 \u09B2\u09BE\u0996'},
+    6: {'other': '0 \u09A8\u09BF\u09AF\u09C1\u09A4'},
+    9: {'other': '0 \u09B6\u09A4 \u0995\u09CB\u099F\u09BF'},
+    12: {
+      'other': '0 \u09B6\u09A4 \u09AA\u09F0\u09BE\u09F0\u09CD\u09A6\u09CD\u09A7'
+    },
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A4\u00A00\u00A0\u09B9\u09BE\u099C\u09BE\u09F0'},
+    5: {'other': '\u00A4\u00A0000\u00A0\u09B2\u09BE\u0996'},
+    6: {'other': '\u00A4\u00A00\u00A0\u09A8\u09BF\u09AF\u09C1\u09A4'},
+    9: {
+      'other': '\u00A4\u00A00\u00A0\u09B6\u09A4\u00A0\u0995\u09CB\u099F\u09BF'
+    },
+    12: {
+      'other':
+          '\u00A4\u00A00\u00A0\u09B6\u09A4\u00A0\u09AA\u09F0\u09BE\u09F0\u09CD\u09A6\u09CD\u09A7'
+    },
   }),
   // Compact number symbols for locale az.
   "az": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0\u00A0mln'},
+    9: {'other': '0\u00A0mlrd'},
+    12: {'other': '0\u00A0trln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 min',
-    4: '00 min',
-    5: '000 min',
-    6: '0 milyon',
-    7: '00 milyon',
-    8: '000 milyon',
-    9: '0 milyard',
-    10: '00 milyard',
-    11: '000 milyard',
-    12: '0 trilyon',
-    13: '00 trilyon',
-    14: '000 trilyon',
+    3: {'other': '0 min'},
+    6: {'other': '0 milyon'},
+    9: {'other': '0 milyard'},
+    12: {'other': '0 trilyon'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0K\u00A0\u00A4',
-    4: '00K\u00A0\u00A4',
-    5: '000K\u00A0\u00A4',
-    6: '0M\u00A0\u00A4',
-    7: '00M\u00A0\u00A4',
-    8: '000M\u00A0\u00A4',
-    9: '0G\u00A0\u00A4',
-    10: '00G\u00A0\u00A4',
-    11: '000G\u00A0\u00A4',
-    12: '0T\u00A0\u00A4',
-    13: '00T\u00A0\u00A4',
-    14: '000T\u00A0\u00A4',
+    3: {'other': '0K\u00A0\u00A4'},
+    6: {'other': '0M\u00A0\u00A4'},
+    9: {'other': '0G\u00A0\u00A4'},
+    12: {'other': '0T\u00A0\u00A4'},
   }),
   // Compact number symbols for locale be.
   "be": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0442\u044B\u0441.',
-    4: '00\u00A0\u0442\u044B\u0441.',
-    5: '000\u00A0\u0442\u044B\u0441.',
-    6: '0\u00A0\u043C\u043B\u043D',
-    7: '00\u00A0\u043C\u043B\u043D',
-    8: '000\u00A0\u043C\u043B\u043D',
-    9: '0\u00A0\u043C\u043B\u0440\u0434',
-    10: '00\u00A0\u043C\u043B\u0440\u0434',
-    11: '000\u00A0\u043C\u043B\u0440\u0434',
-    12: '0\u00A0\u0442\u0440\u043B\u043D',
-    13: '00\u00A0\u0442\u0440\u043B\u043D',
-    14: '000\u00A0\u0442\u0440\u043B\u043D',
+    3: {'other': '0\u00A0\u0442\u044B\u0441.'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0442\u044B\u0441\u044F\u0447\u044B',
-    4: '00 \u0442\u044B\u0441\u044F\u0447\u044B',
-    5: '000 \u0442\u044B\u0441\u044F\u0447\u044B',
-    6: '0 \u043C\u0456\u043B\u044C\u0451\u043D\u0430',
-    7: '00 \u043C\u0456\u043B\u044C\u0451\u043D\u0430',
-    8: '000 \u043C\u0456\u043B\u044C\u0451\u043D\u0430',
-    9: '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    10: '00 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    11: '000 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    12: '0 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u0430',
-    13: '00 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u0430',
-    14: '000 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u0430',
+    3: {
+      'few': '0 \u0442\u044B\u0441\u044F\u0447\u044B',
+      'many': '0 \u0442\u044B\u0441\u044F\u0447',
+      'one': '0 \u0442\u044B\u0441\u044F\u0447\u0430',
+      'other': '0 \u0442\u044B\u0441\u044F\u0447\u044B',
+    },
+    6: {
+      'few': '0 \u043C\u0456\u043B\u044C\u0451\u043D\u044B',
+      'many': '0 \u043C\u0456\u043B\u044C\u0451\u043D\u0430\u045E',
+      'one': '0 \u043C\u0456\u043B\u044C\u0451\u043D',
+      'other': '0 \u043C\u0456\u043B\u044C\u0451\u043D\u0430',
+    },
+    9: {
+      'few': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u044B',
+      'many': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430\u045E',
+      'one': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434',
+      'other': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
+    },
+    12: {
+      'few': '0 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u044B',
+      'many': '0 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u0430\u045E',
+      'one': '0 \u0442\u0440\u044B\u043B\u044C\u0451\u043D',
+      'other': '0 \u0442\u0440\u044B\u043B\u044C\u0451\u043D\u0430',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    4: '00\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    5: '000\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4\u00A0',
-    10: '00\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0442\u044B\u0441.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4'},
   }),
   // Compact number symbols for locale bg.
   "bg": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0445\u0438\u043B.',
-    4: '00\u00A0\u0445\u0438\u043B.',
-    5: '000\u00A0\u0445\u0438\u043B.',
-    6: '0\u00A0\u043C\u043B\u043D.',
-    7: '00\u00A0\u043C\u043B\u043D.',
-    8: '000\u00A0\u043C\u043B\u043D.',
-    9: '0\u00A0\u043C\u043B\u0440\u0434.',
-    10: '00\u00A0\u043C\u043B\u0440\u0434.',
-    11: '000\u00A0\u043C\u043B\u0440\u0434.',
-    12: '0\u00A0\u0442\u0440\u043B\u043D.',
-    13: '00\u00A0\u0442\u0440\u043B\u043D.',
-    14: '000\u00A0\u0442\u0440\u043B\u043D.',
+    3: {'other': '0\u00A0\u0445\u0438\u043B.'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D.'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434.'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0445\u0438\u043B\u044F\u0434\u0438',
-    4: '00 \u0445\u0438\u043B\u044F\u0434\u0438',
-    5: '000 \u0445\u0438\u043B\u044F\u0434\u0438',
-    6: '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    7: '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    8: '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    9: '0 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430',
-    10: '00 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430',
-    11: '000 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430',
-    12: '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430',
-    13: '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430',
-    14: '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430',
+    3: {
+      'one': '0 \u0445\u0438\u043B.',
+      'other': '0 \u0445\u0438\u043B\u044F\u0434\u0438',
+    },
+    4: {'other': '00 \u0445\u0438\u043B\u044F\u0434\u0438'},
+    6: {
+      'one': '0 \u043C\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
+    },
+    7: {'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430'},
+    9: {
+      'one': '0 \u043C\u0438\u043B\u0438\u0430\u0440\u0434',
+      'other': '0 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430',
+    },
+    10: {'other': '00 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430'},
+    12: {
+      'one': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430',
+    },
+    13: {'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0445\u0438\u043B.\u00A0\u00A4',
-    4: '00\u00A0\u0445\u0438\u043B.\u00A0\u00A4',
-    5: '000\u00A0\u0445\u0438\u043B.\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D.\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D.\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D.\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D.\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D.\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D.\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0445\u0438\u043B.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D.\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D.\u00A0\u00A4'},
+  }),
+  // Compact number symbols for locale bm.
+  "bm": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40G'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale bn.
   "bn": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u09B9\u09BE',
-    4: '00\u00A0\u09B9\u09BE',
-    5: '0\u00A0\u09B2\u09BE',
-    6: '00\u00A0\u09B2\u09BE',
-    7: '0\u00A0\u0995\u09CB',
-    8: '00\u00A0\u0995\u09CB',
-    9: '000\u00A0\u0995\u09CB',
-    10: '0000\u00A0\u0995\u09CB',
-    11: '00000\u00A0\u0995\u09CB',
-    12: '0\u00A0\u09B2\u09BE.\u0995\u09CB.',
-    13: '00\u00A0\u09B2\u09BE.\u0995\u09CB.',
-    14: '000\u00A0\u09B2\u09BE.\u0995\u09CB.',
+    3: {'other': '0\u00A0\u09B9\u09BE'},
+    5: {'other': '0\u00A0\u09B2\u09BE'},
+    7: {'other': '0\u00A0\u0995\u09CB'},
+    10: {
+      'one': '00\u00A0\u09B6\u09A4\u00A0\u0995\u09CB',
+      'other': '00\u09B6\u09A4\u00A0\u0995\u09CB',
+    },
+    11: {'other': '000\u0995\u09CB'},
+    12: {'other': '0\u00A0\u09B2\u09BE.\u0995\u09CB.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u09B9\u09BE\u099C\u09BE\u09B0',
-    4: '00 \u09B9\u09BE\u099C\u09BE\u09B0',
-    5: '0 \u09B2\u09BE\u0996',
-    6: '00 \u09B2\u09BE\u0996',
-    7: '0 \u0995\u09CB\u099F\u09BF',
-    8: '00 \u0995\u09CB\u099F\u09BF',
-    9: '000 \u0995\u09CB\u099F\u09BF',
-    10: '0000 \u0995\u09CB\u099F\u09BF',
-    11: '00000 \u0995\u09CB\u099F\u09BF',
-    12: '0 \u09B2\u09BE\u0996 \u0995\u09CB\u099F\u09BF',
-    13: '00 \u09B2\u09BE\u0996 \u0995\u09CB\u099F\u09BF',
-    14: '000 \u09B2\u09BE\u0996 \u0995\u09CB\u099F\u09BF',
+    3: {'other': '0 \u09B9\u09BE\u099C\u09BE\u09B0'},
+    5: {'other': '0 \u09B2\u09BE\u0996'},
+    7: {'other': '0 \u0995\u09CB\u099F\u09BF'},
+    12: {'other': '0 \u09B2\u09BE\u0996 \u0995\u09CB\u099F\u09BF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u09B9\u09BE\u00A4',
-    4: '00\u00A0\u09B9\u09BE\u00A4',
-    5: '0\u00A0\u09B2\u09BE\u00A4',
-    6: '00\u00A0\u09B2\u09BE\u00A4',
-    7: '0\u00A0\u0995\u09CB\u00A4',
-    8: '00\u00A0\u0995\u09CB\u00A4',
-    9: '000\u00A0\u0995\u09CB\u00A4',
-    10: '0000\u00A0\u0995\u09CB\u00A4',
-    11: '00000\u00A0\u0995\u09CB\u00A4',
-    12: '0\u00A0\u09B2\u09BE.\u0995\u09CB.\u00A4',
-    13: '00\u00A0\u09B2\u09BE.\u0995\u09CB.\u00A4',
-    14: '000\u00A0\u09B2\u09BE.\u0995\u09CB.\u00A4',
+    3: {'other': '0\u00A0\u09B9\u09BE\u00A4'},
+    5: {'other': '0\u00A0\u09B2\u09BE\u00A4'},
+    7: {'other': '0\u00A0\u0995\u09CB\u00A4'},
+    12: {'other': '0\u00A0\u09B2\u09BE.\u0995\u09CB.\u00A4'},
   }),
   // Compact number symbols for locale br.
   "br": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0k',
-    4: '00k',
-    5: '000k',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0k'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 miliad',
-    4: '00 miliad',
-    5: '000 miliad',
-    6: '0 milion',
-    7: '00 milion',
-    8: '000 milion',
-    9: '0 miliard',
-    10: '00 miliard',
-    11: '000 miliard',
-    12: '0 bilion',
-    13: '00 bilion',
-    14: '000 bilion',
+    3: {
+      'few': '0 miliad',
+      'many': '0 a viliado\u00F9',
+      'one': '0 miliad',
+      'other': '0 miliad',
+      'two': '0 viliad',
+    },
+    6: {
+      'few': '0 milion',
+      'many': '0 a v/miliono\u00F9',
+      'one': '0 milion',
+      'other': '0 milion',
+      'two': '0 v/milion',
+    },
+    9: {
+      'few': '0 miliard',
+      'many': '0 a viliardo\u00F9',
+      'one': '0 miliard',
+      'other': '0 miliard',
+      'two': '0 viliard',
+    },
+    12: {
+      'few': '0 bilion',
+      'many': '0 a v/biliono\u00F9',
+      'one': '0 bilion',
+      'other': '0 bilion',
+      'two': '0 v/bilion',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0k\u00A4',
-    4: '00\u00A0k\u00A4',
-    5: '000\u00A0k\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0\u00A0G\u00A4',
-    10: '00\u00A0G\u00A4',
-    11: '000\u00A0G\u00A4',
-    12: '0\u00A0T\u00A4',
-    13: '00\u00A0T\u00A4',
-    14: '000\u00A0T\u00A4',
+    3: {'other': '0\u00A0k\u00A4'},
+    6: {'other': '0\u00A0M\u00A4'},
+    9: {'other': '0\u00A0G\u00A4'},
+    12: {'other': '0\u00A0T\u00A4'},
   }),
   // Compact number symbols for locale bs.
   "bs": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0hilj.',
-    4: '00\u00A0hilj.',
-    5: '000\u00A0hilj.',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mlr.',
-    10: '00\u00A0mlr.',
-    11: '000\u00A0mlr.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0hilj.'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mlr.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 hiljada',
-    4: '00 hiljada',
-    5: '000 hiljada',
-    6: '0 miliona',
-    7: '00 miliona',
-    8: '000 miliona',
-    9: '0 milijardi',
-    10: '00 milijardi',
-    11: '000 milijardi',
-    12: '0 biliona',
-    13: '00 biliona',
-    14: '000 biliona',
+    3: {
+      'few': '0 hiljade',
+      'one': '0 hiljada',
+      'other': '0 hiljada',
+    },
+    6: {
+      'few': '0 miliona',
+      'one': '0 milion',
+      'other': '0 miliona',
+    },
+    9: {
+      'few': '0 milijarde',
+      'one': '0 milijarda',
+      'other': '0 milijardi',
+    },
+    12: {
+      'few': '0 biliona',
+      'one': '0 bilion',
+      'other': '0 biliona',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0hilj.\u00A0\u00A4',
-    4: '00\u00A0hilj.\u00A0\u00A4',
-    5: '000\u00A0hilj.\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mlr.\u00A0\u00A4',
-    10: '00\u00A0mlr.\u00A0\u00A4',
-    11: '000\u00A0mlr.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0hilj.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mlr.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ca.
   "ca": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0m',
-    4: '00m',
-    5: '000m',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0000\u00A0M',
-    10: '00mM',
-    11: '000mM',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0m'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00mM'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 milers',
-    4: '00 milers',
-    5: '000 milers',
-    6: '0 milions',
-    7: '00 milions',
-    8: '000 milions',
-    9: '0 milers de milions',
-    10: '00 milers de milions',
-    11: '000 milers de milions',
-    12: '0 bilions',
-    13: '00 bilions',
-    14: '000 bilions',
+    3: {
+      'one': '0 miler',
+      'other': '0 milers',
+    },
+    4: {'other': '00 milers'},
+    6: {
+      'one': '0 mili\u00F3',
+      'other': '0 milions',
+    },
+    7: {'other': '00 milions'},
+    9: {
+      'one': '0 miler de milions',
+      'other': '0 milers de milions',
+    },
+    10: {'other': '00 milers de milions'},
+    12: {
+      'one': '0 bili\u00F3',
+      'other': '0 bilions',
+    },
+    13: {'other': '00 bilions'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0m\u00A0\u00A4',
-    4: '00m\u00A0\u00A4',
-    5: '000m\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0000\u00A0M\u00A0\u00A4',
-    10: '00mM\u00A0\u00A4',
-    11: '000mM\u00A0\u00A4',
-    12: '0\u00A0B\u00A0\u00A4',
-    13: '00\u00A0B\u00A0\u00A4',
-    14: '000\u00A0B\u00A0\u00A4',
+    3: {'other': '0m\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    10: {'other': '00mM\u00A0\u00A4'},
+    12: {'other': '0\u00A0B\u00A0\u00A4'},
   }),
   // Compact number symbols for locale chr.
   "chr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u13A2\u13EF\u13A6\u13F4\u13B5',
-    4: '00 \u13A2\u13EF\u13A6\u13F4\u13B5',
-    5: '000 \u13A2\u13EF\u13A6\u13F4\u13B5',
-    6: '0 \u13A2\u13F3\u13C6\u13D7\u13C5\u13DB',
-    7: '00 \u13A2\u13F3\u13C6\u13D7\u13C5\u13DB',
-    8: '000 \u13A2\u13F3\u13C6\u13D7\u13C5\u13DB',
-    9: '0 \u13A2\u13EF\u13D4\u13B3\u13D7\u13C5\u13DB',
-    10: '00 \u13A2\u13EF\u13D4\u13B3\u13D7\u13C5\u13DB',
-    11: '000 \u13A2\u13EF\u13D4\u13B3\u13D7\u13C5\u13DB',
-    12: '0 \u13A2\u13EF\u13E6\u13A0\u13D7\u13C5\u13DB',
-    13: '00 \u13A2\u13EF\u13E6\u13A0\u13D7\u13C5\u13DB',
-    14: '000 \u13A2\u13EF\u13E6\u13A0\u13D7\u13C5\u13DB',
+    3: {'other': '0 \u13A2\u13EF\u13A6\u13F4\u13B5'},
+    6: {'other': '0 \u13A2\u13F3\u13C6\u13D7\u13C5\u13DB'},
+    9: {'other': '0 \u13A2\u13EF\u13D4\u13B3\u13D7\u13C5\u13DB'},
+    12: {'other': '0 \u13A2\u13EF\u13E6\u13A0\u13D7\u13C5\u13DB'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale cs.
   "cs": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tis.',
-    4: '00\u00A0tis.',
-    5: '000\u00A0tis.',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mld.',
-    10: '00\u00A0mld.',
-    11: '000\u00A0mld.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0tis.'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mld.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tis\u00EDc',
-    4: '00 tis\u00EDc',
-    5: '000 tis\u00EDc',
-    6: '0 milion\u016F',
-    7: '00 milion\u016F',
-    8: '000 milion\u016F',
-    9: '0 miliard',
-    10: '00 miliard',
-    11: '000 miliard',
-    12: '0 bilion\u016F',
-    13: '00 bilion\u016F',
-    14: '000 bilion\u016F',
+    3: {
+      'few': '0 tis\u00EDce',
+      'many': '0 tis\u00EDce',
+      'one': '0 tis\u00EDc',
+      'other': '0 tis\u00EDc',
+    },
+    4: {
+      'few': '00 tis\u00EDc',
+      'many': '00 tis\u00EDce',
+      'one': '00 tis\u00EDc',
+      'other': '00 tis\u00EDc',
+    },
+    6: {
+      'few': '0 miliony',
+      'many': '0 milionu',
+      'one': '0 milion',
+      'other': '0 milion\u016F',
+    },
+    7: {
+      'few': '00 milion\u016F',
+      'many': '00 milionu',
+      'one': '00 milion\u016F',
+      'other': '00 milion\u016F',
+    },
+    9: {
+      'few': '0 miliardy',
+      'many': '0 miliardy',
+      'one': '0 miliarda',
+      'other': '0 miliard',
+    },
+    10: {
+      'few': '00 miliard',
+      'many': '00 miliardy',
+      'one': '00 miliard',
+      'other': '00 miliard',
+    },
+    12: {
+      'few': '0 biliony',
+      'many': '0 bilionu',
+      'one': '0 bilion',
+      'other': '0 bilion\u016F',
+    },
+    13: {
+      'few': '00 bilion\u016F',
+      'many': '00 bilionu',
+      'one': '00 bilion\u016F',
+      'other': '00 bilion\u016F',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tis.\u00A0\u00A4',
-    4: '00\u00A0tis.\u00A0\u00A4',
-    5: '000\u00A0tis.\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mld.\u00A0\u00A4',
-    10: '00\u00A0mld.\u00A0\u00A4',
-    11: '000\u00A0mld.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0tis.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale cy.
   "cy": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 miliwn',
-    7: '00 miliwn',
-    8: '000 miliwn',
-    9: '0 biliwn',
-    10: '00 biliwn',
-    11: '000 biliwn',
-    12: '0 triliwn',
-    13: '00 triliwn',
-    14: '000 triliwn',
+    3: {
+      'few': '0K',
+      'many': '0K',
+      'one': '0 mil',
+      'other': '0 mil',
+      'two': '0K',
+      'zero': '0 mil',
+    },
+    4: {
+      'few': '00K',
+      'many': '00K',
+      'one': '00 mil',
+      'other': '00 mil',
+      'two': '00K',
+      'zero': '00K',
+    },
+    6: {
+      'few': '0M',
+      'many': '0M',
+      'one': '0 miliwn',
+      'other': '0 miliwn',
+      'two': '0M',
+      'zero': '0M',
+    },
+    9: {
+      'few': '0B',
+      'many': '0B',
+      'one': '0 biliwn',
+      'other': '0 biliwn',
+      'two': '0B',
+      'zero': '0B',
+    },
+    12: {
+      'few': '0T',
+      'many': '0T',
+      'one': '0 triliwn',
+      'other': '0 triliwn',
+      'two': '0T',
+      'zero': '0T',
+    },
+    14: {
+      'few': '000T',
+      'many': '000T',
+      'one': '000T',
+      'other': '000 triliwn',
+      'two': '000T',
+      'zero': '000T',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale da.
   "da": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0t',
-    4: '00\u00A0t',
-    5: '000\u00A0t',
-    6: '0\u00A0mio.',
-    7: '00\u00A0mio.',
-    8: '000\u00A0mio.',
-    9: '0\u00A0mia.',
-    10: '00\u00A0mia.',
-    11: '000\u00A0mia.',
-    12: '0\u00A0bio.',
-    13: '00\u00A0bio.',
-    14: '000\u00A0bio.',
+    3: {'other': '0\u00A0t'},
+    6: {'other': '0\u00A0mio.'},
+    9: {'other': '0\u00A0mia.'},
+    12: {'other': '0\u00A0bio.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tusind',
-    4: '00 tusind',
-    5: '000 tusind',
-    6: '0 millioner',
-    7: '00 millioner',
-    8: '000 millioner',
-    9: '0 milliarder',
-    10: '00 milliarder',
-    11: '000 milliarder',
-    12: '0 billioner',
-    13: '00 billioner',
-    14: '000 billioner',
+    3: {'other': '0 tusind'},
+    6: {
+      'one': '0 million',
+      'other': '0 millioner',
+    },
+    7: {'other': '00 millioner'},
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliarder',
+    },
+    10: {'other': '00 milliarder'},
+    12: {
+      'one': '0 billion',
+      'other': '0 billioner',
+    },
+    13: {'other': '00 billioner'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0t\u00A0\u00A4',
-    4: '00\u00A0t\u00A0\u00A4',
-    5: '000\u00A0t\u00A0\u00A4',
-    6: '0\u00A0mio.\u00A0\u00A4',
-    7: '00\u00A0mio.\u00A0\u00A4',
-    8: '000\u00A0mio.\u00A0\u00A4',
-    9: '0\u00A0mia.\u00A0\u00A4',
-    10: '00\u00A0mia.\u00A0\u00A4',
-    11: '000\u00A0mia.\u00A0\u00A4',
-    12: '0\u00A0bio.\u00A0\u00A4',
-    13: '00\u00A0bio.\u00A0\u00A4',
-    14: '000\u00A0bio.\u00A0\u00A4',
+    3: {'other': '0\u00A0t\u00A0\u00A4'},
+    6: {'other': '0\u00A0mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mia.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bio.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale de.
   "de": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.',
-    7: '00\u00A0Mio.',
-    8: '000\u00A0Mio.',
-    9: '0\u00A0Mrd.',
-    10: '00\u00A0Mrd.',
-    11: '000\u00A0Mrd.',
-    12: '0\u00A0Bio.',
-    13: '00\u00A0Bio.',
-    14: '000\u00A0Bio.',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.'},
+    9: {'other': '0\u00A0Mrd.'},
+    12: {'other': '0\u00A0Bio.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 Tausend',
-    4: '00 Tausend',
-    5: '000 Tausend',
-    6: '0 Millionen',
-    7: '00 Millionen',
-    8: '000 Millionen',
-    9: '0 Milliarden',
-    10: '00 Milliarden',
-    11: '000 Milliarden',
-    12: '0 Billionen',
-    13: '00 Billionen',
-    14: '000 Billionen',
+    3: {'other': '0 Tausend'},
+    6: {
+      'one': '0 Million',
+      'other': '0 Millionen',
+    },
+    7: {'other': '00 Millionen'},
+    9: {
+      'one': '0 Milliarde',
+      'other': '0 Milliarden',
+    },
+    10: {'other': '00 Milliarden'},
+    12: {
+      'one': '0 Billion',
+      'other': '0 Billionen',
+    },
+    13: {'other': '00 Billionen'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.\u00A0\u00A4',
-    7: '00\u00A0Mio.\u00A0\u00A4',
-    8: '000\u00A0Mio.\u00A0\u00A4',
-    9: '0\u00A0Mrd.\u00A0\u00A4',
-    10: '00\u00A0Mrd.\u00A0\u00A4',
-    11: '000\u00A0Mrd.\u00A0\u00A4',
-    12: '0\u00A0Bio.\u00A0\u00A4',
-    13: '00\u00A0Bio.\u00A0\u00A4',
-    14: '000\u00A0Bio.\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bio.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale de_AT.
   "de_AT": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.',
-    7: '00\u00A0Mio.',
-    8: '000\u00A0Mio.',
-    9: '0\u00A0Mrd.',
-    10: '00\u00A0Mrd.',
-    11: '000\u00A0Mrd.',
-    12: '0\u00A0Bio.',
-    13: '00\u00A0Bio.',
-    14: '000\u00A0Bio.',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.'},
+    9: {'other': '0\u00A0Mrd.'},
+    12: {'other': '0\u00A0Bio.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 Tausend',
-    4: '00 Tausend',
-    5: '000 Tausend',
-    6: '0 Millionen',
-    7: '00 Millionen',
-    8: '000 Millionen',
-    9: '0 Milliarden',
-    10: '00 Milliarden',
-    11: '000 Milliarden',
-    12: '0 Billionen',
-    13: '00 Billionen',
-    14: '000 Billionen',
+    3: {'other': '0 Tausend'},
+    6: {
+      'one': '0 Million',
+      'other': '0 Millionen',
+    },
+    7: {'other': '00 Millionen'},
+    9: {
+      'one': '0 Milliarde',
+      'other': '0 Milliarden',
+    },
+    10: {'other': '00 Milliarden'},
+    12: {
+      'one': '0 Billion',
+      'other': '0 Billionen',
+    },
+    13: {'other': '00 Billionen'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.\u00A0\u00A4',
-    7: '00\u00A0Mio.\u00A0\u00A4',
-    8: '000\u00A0Mio.\u00A0\u00A4',
-    9: '0\u00A0Mrd.\u00A0\u00A4',
-    10: '00\u00A0Mrd.\u00A0\u00A4',
-    11: '000\u00A0Mrd.\u00A0\u00A4',
-    12: '0\u00A0Bio.\u00A0\u00A4',
-    13: '00\u00A0Bio.\u00A0\u00A4',
-    14: '000\u00A0Bio.\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bio.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale de_CH.
   "de_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.',
-    7: '00\u00A0Mio.',
-    8: '000\u00A0Mio.',
-    9: '0\u00A0Mrd.',
-    10: '00\u00A0Mrd.',
-    11: '000\u00A0Mrd.',
-    12: '0\u00A0Bio.',
-    13: '00\u00A0Bio.',
-    14: '000\u00A0Bio.',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.'},
+    9: {'other': '0\u00A0Mrd.'},
+    12: {'other': '0\u00A0Bio.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 Tausend',
-    4: '00 Tausend',
-    5: '000 Tausend',
-    6: '0 Millionen',
-    7: '00 Millionen',
-    8: '000 Millionen',
-    9: '0 Milliarden',
-    10: '00 Milliarden',
-    11: '000 Milliarden',
-    12: '0 Billionen',
-    13: '00 Billionen',
-    14: '000 Billionen',
+    3: {'other': '0 Tausend'},
+    6: {
+      'one': '0 Million',
+      'other': '0 Millionen',
+    },
+    7: {'other': '00 Millionen'},
+    9: {
+      'one': '0 Milliarde',
+      'other': '0 Milliarden',
+    },
+    10: {'other': '00 Milliarden'},
+    12: {
+      'one': '0 Billion',
+      'other': '0 Billionen',
+    },
+    13: {'other': '00 Billionen'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio.\u00A0\u00A4',
-    7: '00\u00A0Mio.\u00A0\u00A4',
-    8: '000\u00A0Mio.\u00A0\u00A4',
-    9: '0\u00A0Mrd.\u00A0\u00A4',
-    10: '00\u00A0Mrd.\u00A0\u00A4',
-    11: '000\u00A0Mrd.\u00A0\u00A4',
-    12: '0\u00A0Bio.\u00A0\u00A4',
-    13: '00\u00A0Bio.\u00A0\u00A4',
-    14: '000\u00A0Bio.\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bio.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale el.
   "el": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u03C7\u03B9\u03BB.',
-    4: '00\u00A0\u03C7\u03B9\u03BB.',
-    5: '000\u00A0\u03C7\u03B9\u03BB.',
-    6: '0\u00A0\u03B5\u03BA.',
-    7: '00\u00A0\u03B5\u03BA.',
-    8: '000\u00A0\u03B5\u03BA.',
-    9: '0\u00A0\u03B4\u03B9\u03C3.',
-    10: '00\u00A0\u03B4\u03B9\u03C3.',
-    11: '000\u00A0\u03B4\u03B9\u03C3.',
-    12: '0\u00A0\u03C4\u03C1\u03B9\u03C3.',
-    13: '00\u00A0\u03C4\u03C1\u03B9\u03C3.',
-    14: '000\u00A0\u03C4\u03C1\u03B9\u03C3.',
+    3: {'other': '0\u00A0\u03C7\u03B9\u03BB.'},
+    6: {'other': '0\u00A0\u03B5\u03BA.'},
+    9: {'other': '0\u00A0\u03B4\u03B9\u03C3.'},
+    12: {'other': '0\u00A0\u03C4\u03C1\u03B9\u03C3.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2',
-    4: '00 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2',
-    5: '000 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2',
-    6: '0 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    7: '00 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    8: '000 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    9: '0 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    10: '00 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    11: '000 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    12: '0 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    13: '00 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
-    14: '000 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
+    3: {
+      'one': '0 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B1',
+      'other': '0 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2',
+    },
+    4: {'other': '00 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2'},
+    6: {
+      'one':
+          '0 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03BF',
+      'other':
+          '0 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
+    },
+    7: {
+      'other':
+          '00 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1'
+    },
+    9: {
+      'one':
+          '0 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03BF',
+      'other':
+          '0 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
+    },
+    10: {
+      'other':
+          '00 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1'
+    },
+    12: {
+      'one':
+          '0 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03BF',
+      'other':
+          '0 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1',
+    },
+    13: {
+      'other':
+          '00 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1'
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u03C7\u03B9\u03BB.\u00A0\u00A4',
-    4: '00\u00A0\u03C7\u03B9\u03BB.\u00A0\u00A4',
-    5: '000\u00A0\u03C7\u03B9\u03BB.\u00A0\u00A4',
-    6: '0\u00A0\u03B5\u03BA.\u00A0\u00A4',
-    7: '00\u00A0\u03B5\u03BA.\u00A0\u00A4',
-    8: '000\u00A0\u03B5\u03BA.\u00A0\u00A4',
-    9: '0\u00A0\u03B4\u03B9\u03C3.\u00A0\u00A4',
-    10: '00\u00A0\u03B4\u03B9\u03C3.\u00A0\u00A4',
-    11: '000\u00A0\u03B4\u03B9\u03C3.\u00A0\u00A4',
-    12: '0\u00A0\u03C4\u03C1\u03B9\u03C3.\u00A0\u00A4',
-    13: '00\u00A0\u03C4\u03C1\u03B9\u03C3.\u00A0\u00A4',
-    14: '000\u00A0\u03C4\u03C1\u03B9\u03C3.\u00A0\u00A4',
+    3: {'other': '0\u00A0\u03C7\u03B9\u03BB.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u03B5\u03BA.\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u03B4\u03B9\u03C3.\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u03C4\u03C1\u03B9\u03C3.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale en.
   "en": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_AU.
   "en_AU": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_CA.
   "en_CA": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_GB.
   "en_GB": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_IE.
   "en_IE": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_IN.
   "en_IN": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0T'},
+    5: {'other': '0L'},
+    7: {'other': '0Cr'},
+    10: {'other': '0TCr'},
+    12: {'other': '0LCr'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40T',
-    4: '\u00A400T',
-    5: '\u00A40L',
-    6: '\u00A400L',
-    7: '\u00A40Cr',
-    8: '\u00A400Cr',
-    9: '\u00A4000Cr',
-    10: '\u00A40TCr',
-    11: '\u00A400TCr',
-    12: '\u00A40LCr',
-    13: '\u00A400LCr',
-    14: '\u00A4000LCr',
+    3: {'other': '\u00A40T'},
+    5: {'other': '\u00A40L'},
+    7: {'other': '\u00A40Cr'},
+    10: {'other': '\u00A40TCr'},
+    12: {'other': '\u00A40LCr'},
   }),
   // Compact number symbols for locale en_MY.
   "en_MY": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
+  }),
+  // Compact number symbols for locale en_NZ.
+  "en_NZ": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
+  }, COMPACT_DECIMAL_LONG_PATTERN: const {
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_SG.
   "en_SG": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_US.
   "en_US": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale en_ZA.
   "en_ZA": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 thousand',
-    4: '00 thousand',
-    5: '000 thousand',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 billion',
-    10: '00 billion',
-    11: '000 billion',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 thousand'},
+    6: {'other': '0 million'},
+    9: {'other': '0 billion'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale es.
   "es": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mil',
-    4: '00\u00A0mil',
-    5: '000\u00A0mil',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0000\u00A0M',
-    10: '00\u00A0mil\u00A0M',
-    11: '000\u00A0mil\u00A0M',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0\u00A0mil'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00\u00A0mil\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 millones',
-    7: '00 millones',
-    8: '000 millones',
-    9: '0 mil millones',
-    10: '00 mil millones',
-    11: '000 mil millones',
-    12: '0 billones',
-    13: '00 billones',
-    14: '000 billones',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 millones',
+    },
+    7: {'other': '00 millones'},
+    9: {'other': '0 mil millones'},
+    12: {
+      'one': '0 bill\u00F3n',
+      'other': '0 billones',
+    },
+    13: {'other': '00 billones'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0mil\u00A0\u00A4',
-    4: '00\u00A0mil\u00A0\u00A4',
-    5: '000\u00A0mil\u00A0\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0000\u00A0M\u00A4',
-    10: '00\u00A0mil\u00A0M\u00A4',
-    11: '000\u00A0mil\u00A0M\u00A4',
-    12: '0\u00A0B\u00A4',
-    13: '00\u00A0B\u00A4',
-    14: '000\u00A0B\u00A4',
+    3: {'other': '0\u00A0mil\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A4'},
+    10: {'other': '00\u00A0mil\u00A0M\u00A4'},
+    12: {'other': '0\u00A0B\u00A4'},
   }),
   // Compact number symbols for locale es_419.
   "es_419": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0K',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0k\u00A0M',
-    10: '00k\u00A0M',
-    11: '000k\u00A0M',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0\u00A0K'},
+    4: {'other': '00\u00A0k'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00\u00A0mil\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 millones',
-    7: '00 millones',
-    8: '000 millones',
-    9: '0 mil millones',
-    10: '00 mil millones',
-    11: '000 mil millones',
-    12: '0 bill\u00F3n',
-    13: '00 billones',
-    14: '000 billones',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 millones',
+    },
+    7: {'other': '00 millones'},
+    9: {'other': '0 mil millones'},
+    12: {'other': '0 bill\u00F3n'},
+    13: {'other': '00 billones'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0K',
-    4: '\u00A400\u00A0K',
-    5: '\u00A4000\u00A0K',
-    6: '\u00A40\u00A0M',
-    7: '\u00A400\u00A0M',
-    8: '\u00A4000\u00A0M',
-    9: '\u00A40000\u00A0M',
-    10: '\u00A400\u00A0MRD',
-    11: '\u00A4000\u00A0MRD',
-    12: '\u00A40\u00A0B',
-    13: '\u00A400\u00A0B',
-    14: '\u00A4000\u00A0B',
+    3: {'other': '\u00A40\u00A0K'},
+    6: {'other': '\u00A40\u00A0M'},
+    10: {'other': '\u00A400\u00A0MRD'},
+    12: {'other': '\u00A40\u00A0B'},
   }),
   // Compact number symbols for locale es_ES.
   "es_ES": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mil',
-    4: '00\u00A0mil',
-    5: '000\u00A0mil',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0000\u00A0M',
-    10: '00\u00A0mil\u00A0M',
-    11: '000\u00A0mil\u00A0M',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0\u00A0mil'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00\u00A0mil\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 millones',
-    7: '00 millones',
-    8: '000 millones',
-    9: '0 mil millones',
-    10: '00 mil millones',
-    11: '000 mil millones',
-    12: '0 billones',
-    13: '00 billones',
-    14: '000 billones',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 millones',
+    },
+    7: {'other': '00 millones'},
+    9: {'other': '0 mil millones'},
+    12: {
+      'one': '0 bill\u00F3n',
+      'other': '0 billones',
+    },
+    13: {'other': '00 billones'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0mil\u00A0\u00A4',
-    4: '00\u00A0mil\u00A0\u00A4',
-    5: '000\u00A0mil\u00A0\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0000\u00A0M\u00A4',
-    10: '00\u00A0mil\u00A0M\u00A4',
-    11: '000\u00A0mil\u00A0M\u00A4',
-    12: '0\u00A0B\u00A4',
-    13: '00\u00A0B\u00A4',
-    14: '000\u00A0B\u00A4',
+    3: {'other': '0\u00A0mil\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A4'},
+    10: {'other': '00\u00A0mil\u00A0M\u00A4'},
+    12: {'other': '0\u00A0B\u00A4'},
   }),
   // Compact number symbols for locale es_MX.
   "es_MX": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0k',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0000\u00A0M',
-    10: '00\u00A0mil\u00A0M',
-    11: '000\u00A0mil\u00A0M',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0\u00A0k'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00\u00A0mil\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 millones',
-    7: '00 millones',
-    8: '000 millones',
-    9: '0 mil millones',
-    10: '00 mil millones',
-    11: '000 mil millones',
-    12: '0 billones',
-    13: '00 billones',
-    14: '000 billones',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 millones',
+    },
+    7: {'other': '00 millones'},
+    9: {'other': '0 mil millones'},
+    12: {
+      'one': '0 bill\u00F3n',
+      'other': '0 billones',
+    },
+    13: {'other': '00 billones'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0k\u00A4',
-    4: '00\u00A0k\u00A4',
-    5: '000\u00A0k\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0000\u00A0M\u00A4',
-    10: '00\u00A0MRD\u00A0\u00A4',
-    11: '000\u00A0MRD\u00A0\u00A4',
-    12: '0\u00A0B\u00A4',
-    13: '00\u00A0B\u00A4',
-    14: '000\u00A0B\u00A4',
+    3: {'other': '0\u00A0k\u00A4'},
+    6: {'other': '0\u00A0M\u00A4'},
+    10: {'other': '00\u00A0MRD\u00A0\u00A4'},
+    12: {'other': '0\u00A0B\u00A4'},
   }),
   // Compact number symbols for locale es_US.
   "es_US": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0K',
-    4: '00\u00A0K',
-    5: '000\u00A0K',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0B',
-    10: '00\u00A0B',
-    11: '000\u00A0B',
-    12: '0\u00A0T',
-    13: '00\u00A0T',
-    14: '000\u00A0T',
+    3: {'other': '0\u00A0K'},
+    6: {'other': '0\u00A0M'},
+    10: {'other': '00\u00A0mil\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 millones',
-    7: '00 millones',
-    8: '000 millones',
-    9: '0 billones',
-    10: '00 billones',
-    11: '000 billones',
-    12: '0 trillones',
-    13: '00 trillones',
-    14: '000 trillones',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 millones',
+    },
+    7: {'other': '00 millones'},
+    9: {'other': '0 mil millones'},
+    12: {'other': '0 bill\u00F3n'},
+    13: {'other': '00 billones'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0K\u00A0\u00A4',
-    4: '00\u00A0K\u00A0\u00A4',
-    5: '000\u00A0K\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0000\u00A0M\u00A0\u00A4',
-    10: '\u00A400\u00A0B',
-    11: '\u00A4000\u00A0B',
-    12: '\u00A40\u00A0T',
-    13: '\u00A400\u00A0T',
-    14: '\u00A4000\u00A0T',
+    3: {'other': '\u00A40\u00A0K'},
+    6: {'other': '\u00A40\u00A0M'},
+    10: {'other': '\u00A400\u00A0B'},
+    12: {'other': '\u00A40\u00A0T'},
   }),
   // Compact number symbols for locale et.
   "et": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tuh',
-    4: '00\u00A0tuh',
-    5: '000\u00A0tuh',
-    6: '0\u00A0mln',
-    7: '00\u00A0mln',
-    8: '000\u00A0mln',
-    9: '0\u00A0mld',
-    10: '00\u00A0mld',
-    11: '000\u00A0mld',
-    12: '0\u00A0trl',
-    13: '00\u00A0trl',
-    14: '000\u00A0trl',
+    3: {'other': '0\u00A0tuh'},
+    6: {'other': '0\u00A0mln'},
+    9: {'other': '0\u00A0mld'},
+    12: {'other': '0\u00A0trln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tuhat',
-    4: '00 tuhat',
-    5: '000 tuhat',
-    6: '0 miljonit',
-    7: '00 miljonit',
-    8: '000 miljonit',
-    9: '0 miljardit',
-    10: '00 miljardit',
-    11: '000 miljardit',
-    12: '0 triljonit',
-    13: '00 triljonit',
-    14: '000 triljonit',
+    3: {'other': '0 tuhat'},
+    6: {
+      'one': '0 miljon',
+      'other': '0 miljonit',
+    },
+    7: {'other': '00 miljonit'},
+    9: {
+      'one': '0 miljard',
+      'other': '0 miljardit',
+    },
+    10: {'other': '00 miljardit'},
+    12: {
+      'one': '0 triljon',
+      'other': '0 triljonit',
+    },
+    13: {'other': '00 triljonit'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tuh\u00A0\u00A4',
-    4: '00\u00A0tuh\u00A0\u00A4',
-    5: '000\u00A0tuh\u00A0\u00A4',
-    6: '0\u00A0mln\u00A0\u00A4',
-    7: '00\u00A0mln\u00A0\u00A4',
-    8: '000\u00A0mln\u00A0\u00A4',
-    9: '0\u00A0mld\u00A0\u00A4',
-    10: '00\u00A0mld\u00A0\u00A4',
-    11: '000\u00A0mld\u00A0\u00A4',
-    12: '0\u00A0trl\u00A0\u00A4',
-    13: '00\u00A0trl\u00A0\u00A4',
-    14: '000\u00A0trl\u00A0\u00A4',
+    3: {'other': '0\u00A0tuh\u00A0\u00A4'},
+    6: {'other': '0\u00A0mln\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld\u00A0\u00A4'},
+    12: {'other': '0\u00A0trln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale eu.
   "eu": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0000',
-    4: '00000',
-    5: '000000',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0000\u00A0M',
-    10: '00000\u00A0M',
-    11: '000000\u00A0M',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0000',
-    4: '00000',
-    5: '000000',
-    6: '0 milioi',
-    7: '00 milioi',
-    8: '000 milioi',
-    9: '0000 milioi',
-    10: '00000 milioi',
-    11: '000000 milioi',
-    12: '0 bilioi',
-    13: '00 bilioi',
-    14: '000 bilioi',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0 milioi'},
+    12: {'other': '0 bilioi'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0000\u00A0\u00A4',
-    4: '00000\u00A0\u00A4',
-    5: '000000\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0000\u00A0M\u00A0\u00A4',
-    10: '00000\u00A0M\u00A0\u00A4',
-    11: '000000\u00A0M\u00A0\u00A4',
-    12: '0\u00A0B\u00A0\u00A4',
-    13: '00\u00A0B\u00A0\u00A4',
-    14: '000\u00A0B\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    12: {'other': '0\u00A0B\u00A0\u00A4'},
   }),
   // Compact number symbols for locale fa.
   "fa": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0647\u0632\u0627\u0631',
-    4: '00\u00A0\u0647\u0632\u0627\u0631',
-    5: '000\u00A0\u0647\u0632\u0627\u0631',
-    6: '0\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646',
-    7: '00\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646',
-    8: '000\u00A0\u0645',
-    9: '0\u00A0\u0645',
-    10: '00\u00A0\u0645',
-    11: '000\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    12: '0\u00A0\u062A\u0631\u06CC\u0644\u06CC\u0648\u0646',
-    13: '00\u00A0\u062A',
-    14: '000\u00A0\u062A',
+    3: {'other': '0\u00A0\u0647\u0632\u0627\u0631'},
+    6: {'other': '0\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646'},
+    9: {'other': '0\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F'},
+    12: {'other': '0\u00A0\u062A\u0631\u06CC\u0644\u06CC\u0648\u0646'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0647\u0632\u0627\u0631',
-    4: '00 \u0647\u0632\u0627\u0631',
-    5: '000 \u0647\u0632\u0627\u0631',
-    6: '0 \u0645\u06CC\u0644\u06CC\u0648\u0646',
-    7: '00 \u0645\u06CC\u0644\u06CC\u0648\u0646',
-    8: '000 \u0645\u06CC\u0644\u06CC\u0648\u0646',
-    9: '0 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    10: '00 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    11: '000 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    12: '0 \u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    13: '00 \u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
-    14: '000 \u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F',
+    3: {'other': '0 \u0647\u0632\u0627\u0631'},
+    6: {'other': '0 \u0645\u06CC\u0644\u06CC\u0648\u0646'},
+    9: {'other': '0 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F'},
+    12: {
+      'other':
+          '0 \u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F'
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0647\u0632\u0627\u0631\u00A0\u00A4',
-    4: '00\u00A0\u0647\u0632\u0627\u0631\u00A0\u00A4',
-    5: '000\u00A0\u0647\u0632\u0627\u0631\u00A0\u00A4',
-    6: '0\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646\u00A0\u00A4',
-    7: '00\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646\u00A0\u00A4',
-    8: '000\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646\u00A0\u00A4',
-    9: '0\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
-    10: '00\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
-    11: '000\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
-    12: '0\u00A0\u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
-    13: '00\u00A0\u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
-    14: '000\u00A0\u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0647\u0632\u0627\u0631\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u0645\u06CC\u0644\u06CC\u0648\u0646\u00A0\u00A4'},
+    9: {
+      'other': '0\u00A0\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4'
+    },
+    12: {
+      'other':
+          '0\u00A0\u0647\u0632\u0627\u0631\u0645\u06CC\u0644\u06CC\u0627\u0631\u062F\u00A0\u00A4'
+    },
   }),
   // Compact number symbols for locale fi.
   "fi": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0t.',
-    4: '00\u00A0t.',
-    5: '000\u00A0t.',
-    6: '0\u00A0milj.',
-    7: '00\u00A0milj.',
-    8: '000\u00A0milj.',
-    9: '0\u00A0mrd.',
-    10: '00\u00A0mrd.',
-    11: '000\u00A0mrd.',
-    12: '0\u00A0bilj.',
-    13: '00\u00A0bilj.',
-    14: '000\u00A0bilj.',
+    3: {'other': '0\u00A0t.'},
+    6: {'other': '0\u00A0milj.'},
+    9: {'other': '0\u00A0mrd.'},
+    12: {'other': '0\u00A0bilj.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tuhatta',
-    4: '00 tuhatta',
-    5: '000 tuhatta',
-    6: '0 miljoonaa',
-    7: '00 miljoonaa',
-    8: '000 miljoonaa',
-    9: '0 miljardia',
-    10: '00 miljardia',
-    11: '000 miljardia',
-    12: '0 biljoonaa',
-    13: '00 biljoonaa',
-    14: '000 biljoonaa',
+    3: {
+      'one': '0 tuhat',
+      'other': '0 tuhatta',
+    },
+    4: {'other': '00 tuhatta'},
+    6: {
+      'one': '0 miljoona',
+      'other': '0 miljoonaa',
+    },
+    7: {'other': '00 miljoonaa'},
+    9: {
+      'one': '0 miljardi',
+      'other': '0 miljardia',
+    },
+    10: {'other': '00 miljardia'},
+    12: {
+      'one': '0 biljoona',
+      'other': '0 biljoonaa',
+    },
+    13: {'other': '00 biljoonaa'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0t.\u00A0\u00A4',
-    4: '00\u00A0t.\u00A0\u00A4',
-    5: '000\u00A0t.\u00A0\u00A4',
-    6: '0\u00A0milj.\u00A0\u00A4',
-    7: '00\u00A0milj.\u00A0\u00A4',
-    8: '000\u00A0milj.\u00A0\u00A4',
-    9: '0\u00A0mrd.\u00A0\u00A4',
-    10: '00\u00A0mrd.\u00A0\u00A4',
-    11: '000\u00A0mrd.\u00A0\u00A4',
-    12: '0\u00A0bilj.\u00A0\u00A4',
-    13: '00\u00A0bilj.\u00A0\u00A4',
-    14: '000\u00A0bilj.\u00A0\u00A4',
+    3: {'other': '0\u00A0t.\u00A0\u00A4'},
+    6: {'other': '0\u00A0milj.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bilj.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale fil.
   "fil": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 na libo',
-    4: '00 na libo',
-    5: '000 na libo',
-    6: '0 na milyon',
-    7: '00 na milyon',
-    8: '000 na milyon',
-    9: '0 na bilyon',
-    10: '00 na bilyon',
-    11: '000 na bilyon',
-    12: '0 na trilyon',
-    13: '00 na trilyon',
-    14: '000 na trilyon',
+    3: {
+      'one': '0 libo',
+      'other': '0 na libo',
+    },
+    6: {
+      'one': '0 milyon',
+      'other': '0 na milyon',
+    },
+    9: {
+      'one': '0 bilyon',
+      'other': '0 na bilyon',
+    },
+    12: {
+      'one': '0 trilyon',
+      'other': '0 na trilyon',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale fr.
   "fr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0k',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0Md',
-    10: '00\u00A0Md',
-    11: '000\u00A0Md',
-    12: '0\u00A0Bn',
-    13: '00\u00A0Bn',
-    14: '000\u00A0Bn',
+    3: {'other': '0\u00A0k'},
+    6: {'other': '0\u00A0M'},
+    9: {'other': '0\u00A0Md'},
+    12: {'other': '0\u00A0Bn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mille',
-    4: '00 mille',
-    5: '000 mille',
-    6: '0 millions',
-    7: '00 millions',
-    8: '000 millions',
-    9: '0 milliards',
-    10: '00 milliards',
-    11: '000 milliards',
-    12: '0 billions',
-    13: '00 billions',
-    14: '000 billions',
+    3: {
+      '1': 'mille',
+      'one': '0 millier',
+      'other': '0 mille',
+    },
+    4: {'other': '00 mille'},
+    6: {
+      'one': '0 million',
+      'other': '0 millions',
+    },
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliards',
+    },
+    12: {
+      'one': '0 billion',
+      'other': '0 billions',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0k\u00A0\u00A4',
-    4: '00\u00A0k\u00A0\u00A4',
-    5: '000\u00A0k\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0\u00A0Md\u00A0\u00A4',
-    10: '00\u00A0Md\u00A0\u00A4',
-    11: '000\u00A0Md\u00A0\u00A4',
-    12: '0\u00A0Bn\u00A0\u00A4',
-    13: '00\u00A0Bn\u00A0\u00A4',
-    14: '000\u00A0Bn\u00A0\u00A4',
+    3: {'other': '0\u00A0k\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    9: {'other': '0\u00A0Md\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bn\u00A0\u00A4'},
   }),
   // Compact number symbols for locale fr_CA.
   "fr_CA": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0k',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0G',
-    10: '00\u00A0G',
-    11: '000\u00A0G',
-    12: '0\u00A0T',
-    13: '00\u00A0T',
-    14: '000\u00A0T',
+    3: {'other': '0\u00A0k'},
+    6: {'other': '0\u00A0M'},
+    9: {'other': '0\u00A0G'},
+    12: {'other': '0\u00A0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mille',
-    4: '00 mille',
-    5: '000 mille',
-    6: '0 millions',
-    7: '00 millions',
-    8: '000 millions',
-    9: '0 milliards',
-    10: '00 milliards',
-    11: '000 milliards',
-    12: '0 billions',
-    13: '00 billions',
-    14: '000 billions',
+    3: {'other': '0 mille'},
+    4: {'other': '00 mille'},
+    6: {
+      'one': '0 million',
+      'other': '0 millions',
+    },
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliards',
+    },
+    12: {
+      'one': '0 billion',
+      'other': '0 billions',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0k\u00A4',
-    4: '00\u00A0k\u00A4',
-    5: '000\u00A0k\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0\u00A0G\u00A4',
-    10: '00\u00A0G\u00A4',
-    11: '000\u00A0G\u00A4',
-    12: '0\u00A0T\u00A4',
-    13: '00\u00A0T\u00A4',
-    14: '000\u00A0T\u00A4',
+    3: {'other': '0\u00A0k\u00A4'},
+    6: {'other': '0\u00A0M\u00A4'},
+    9: {'other': '0\u00A0G\u00A4'},
+    12: {'other': '0\u00A0T\u00A4'},
   }),
   // Compact number symbols for locale fr_CH.
   "fr_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0k',
-    4: '00\u00A0k',
-    5: '000\u00A0k',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0Md',
-    10: '00\u00A0Md',
-    11: '000\u00A0Md',
-    12: '0\u00A0Bn',
-    13: '00\u00A0Bn',
-    14: '000\u00A0Bn',
+    3: {'other': '0\u00A0k'},
+    6: {'other': '0\u00A0M'},
+    9: {'other': '0\u00A0Md'},
+    12: {'other': '0\u00A0Bn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mille',
-    4: '00 mille',
-    5: '000 mille',
-    6: '0 millions',
-    7: '00 millions',
-    8: '000 millions',
-    9: '0 milliards',
-    10: '00 milliards',
-    11: '000 milliards',
-    12: '0 billions',
-    13: '00 billions',
-    14: '000 billions',
+    3: {
+      '1': 'mille',
+      'one': '0 millier',
+      'other': '0 mille',
+    },
+    4: {'other': '00 mille'},
+    6: {
+      'one': '0 million',
+      'other': '0 millions',
+    },
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliards',
+    },
+    12: {
+      'one': '0 billion',
+      'other': '0 billions',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0k\u00A0\u00A4',
-    4: '00\u00A0k\u00A0\u00A4',
-    5: '000\u00A0k\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0\u00A0Md\u00A0\u00A4',
-    10: '00\u00A0Md\u00A0\u00A4',
-    11: '000\u00A0Md\u00A0\u00A4',
-    12: '0\u00A0Bn\u00A0\u00A4',
-    13: '00\u00A0Bn\u00A0\u00A4',
-    14: '000\u00A0Bn\u00A0\u00A4',
+    3: {'other': '0\u00A0k\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    9: {'other': '0\u00A0Md\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bn\u00A0\u00A4'},
+  }),
+  // Compact number symbols for locale fur.
+  "fur": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A4\u00A00K'},
+    6: {'other': '\u00A4\u00A00M'},
+    9: {'other': '\u00A4\u00A00G'},
+    12: {'other': '\u00A4\u00A00T'},
   }),
   // Compact number symbols for locale ga.
   "ga": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0k',
-    4: '00k',
-    5: '000k',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0k'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 m\u00EDle',
-    4: '00 m\u00EDle',
-    5: '000 m\u00EDle',
-    6: '0 milli\u00FAn',
-    7: '00 milli\u00FAn',
-    8: '000 milli\u00FAn',
-    9: '0 billi\u00FAn',
-    10: '00 billi\u00FAn',
-    11: '000 billi\u00FAn',
-    12: '0 trilli\u00FAn',
-    13: '00 trilli\u00FAn',
-    14: '000 trilli\u00FAn',
+    3: {
+      'few': '0 mh\u00EDle',
+      'many': '0 m\u00EDle',
+      'one': '0 mh\u00EDle',
+      'other': '0 m\u00EDle',
+      'two': '0 mh\u00EDle',
+    },
+    4: {'other': '00 m\u00EDle'},
+    6: {
+      'few': '0 mhilli\u00FAn',
+      'many': '0 milli\u00FAn',
+      'one': '0 mhilli\u00FAn',
+      'other': '0 milli\u00FAn',
+      'two': '0 mhilli\u00FAn',
+    },
+    7: {'other': '00 milli\u00FAn'},
+    9: {
+      'few': '0 bhilli\u00FAn',
+      'many': '0 mbilli\u00FAn',
+      'one': '0 bhilli\u00FAn',
+      'other': '0 billi\u00FAn',
+      'two': '0 bhilli\u00FAn',
+    },
+    10: {
+      'few': '00 billi\u00FAn',
+      'many': '00 mbilli\u00FAn',
+      'one': '00 billi\u00FAn',
+      'other': '00 billi\u00FAn',
+      'two': '00 billi\u00FAn',
+    },
+    11: {'other': '000 billi\u00FAn'},
+    12: {
+      'few': '0 thrilli\u00FAn',
+      'many': '0 dtrilli\u00FAn',
+      'one': '0 trilli\u00FAn',
+      'other': '0 trilli\u00FAn',
+      'two': '0 thrilli\u00FAn',
+    },
+    13: {
+      'few': '00 trilli\u00FAn',
+      'many': '00 dtrilli\u00FAn',
+      'one': '00 trilli\u00FAn',
+      'other': '00 trilli\u00FAn',
+      'two': '00 trilli\u00FAn',
+    },
+    14: {'other': '000 trilli\u00FAn'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40k',
-    4: '\u00A400k',
-    5: '\u00A4000k',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40k'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale gl.
   "gl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0',
-    10: '0',
-    11: '0',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0M'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0 mill\u00F3ns',
-    7: '00 mill\u00F3ns',
-    8: '000 mill\u00F3ns',
-    9: '0',
-    10: '0',
-    11: '0',
-    12: '0 bill\u00F3ns',
-    13: '00 bill\u00F3ns',
-    14: '000 bill\u00F3ns',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {
+      'one': '0 mill\u00F3n',
+      'other': '0 mill\u00F3ns',
+    },
+    7: {'other': '00 mill\u00F3ns'},
+    12: {
+      'one': '0 bill\u00F3n',
+      'other': '0 bill\u00F3ns',
+    },
+    13: {'other': '00 bill\u00F3ns'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u00A4',
-    4: '0\u00A0\u00A4',
-    5: '0\u00A0\u00A4',
-    6: '0\u00A0M\u00A4',
-    7: '00\u00A0M\u00A4',
-    8: '000\u00A0M\u00A4',
-    9: '0\u00A0\u00A4',
-    10: '0\u00A0\u00A4',
-    11: '0\u00A0\u00A4',
-    12: '0\u00A0B\u00A4',
-    13: '00\u00A0B\u00A4',
-    14: '000\u00A0B\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0M\u00A4'},
+    11: {'other': '00000\u00A0M\u00A4'},
+    12: {'other': '0\u00A0B\u00A4'},
   }),
   // Compact number symbols for locale gsw.
   "gsw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0Tsg.',
-    4: '00\u00A0Tsg.',
-    5: '000\u00A0Tsg.',
-    6: '0\u00A0Mio.',
-    7: '00\u00A0Mio.',
-    8: '000\u00A0Mio.',
-    9: '0\u00A0Mrd.',
-    10: '00\u00A0Mrd.',
-    11: '000\u00A0Mrd.',
-    12: '0\u00A0Bio.',
-    13: '00\u00A0Bio.',
-    14: '000\u00A0Bio.',
+    3: {'other': '0\u00A0Tsg.'},
+    6: {'other': '0\u00A0Mio.'},
+    9: {'other': '0\u00A0Mrd.'},
+    12: {'other': '0\u00A0Bio.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 Tuusig',
-    4: '00 Tuusig',
-    5: '000 Tuusig',
-    6: '0 Millioone',
-    7: '00 Millioone',
-    8: '000 Millioone',
-    9: '0 Milliarde',
-    10: '00 Milliarde',
-    11: '000 Milliarde',
-    12: '0 Billioone',
-    13: '00 Billioone',
-    14: '000 Billioone',
+    3: {'other': '0 Tuusig'},
+    6: {
+      'one': '0 Millioon',
+      'other': '0 Millioone',
+    },
+    9: {'other': '0 Milliarde'},
+    12: {
+      'one': '0 Billioon',
+      'other': '0 Billioone',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0Tsg.\u00A0\u00A4',
-    4: '00\u00A0Tsg.\u00A0\u00A4',
-    5: '000\u00A0Tsg.\u00A0\u00A4',
-    6: '0\u00A0Mio.\u00A0\u00A4',
-    7: '00\u00A0Mio.\u00A0\u00A4',
-    8: '000\u00A0Mio.\u00A0\u00A4',
-    9: '0\u00A0Mrd.\u00A0\u00A4',
-    10: '00\u00A0Mrd.\u00A0\u00A4',
-    11: '000\u00A0Mrd.\u00A0\u00A4',
-    12: '0\u00A0Bio.\u00A0\u00A4',
-    13: '00\u00A0Bio.\u00A0\u00A4',
-    14: '000\u00A0Bio.\u00A0\u00A4',
+    3: {'other': '0\u00A0Tsg.\u00A0\u00A4'},
+    6: {'other': '0\u00A0Mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bio.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale gu.
   "gu": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0AB9\u0A9C\u0ABE\u0AB0',
-    4: '00\u00A0\u0AB9\u0A9C\u0ABE\u0AB0',
-    5: '0\u00A0\u0AB2\u0ABE\u0A96',
-    6: '00\u00A0\u0AB2\u0ABE\u0A96',
-    7: '0\u00A0\u0A95\u0AB0\u0ACB\u0AA1',
-    8: '00\u00A0\u0A95\u0AB0\u0ACB\u0AA1',
-    9: '0\u00A0\u0A85\u0AAC\u0A9C',
-    10: '00\u00A0\u0A85\u0AAC\u0A9C',
-    11: '0\u00A0\u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5',
-    12: '0\u00A0\u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE',
-    13: '0\u00A0\u0AB6\u0A82\u0A95\u0AC1',
-    14: '0\u00A0\u0A9C\u0AB2\u0AA7\u0ABF',
+    3: {'other': '0\u00A0\u0AB9\u0A9C\u0ABE\u0AB0'},
+    5: {'other': '0\u00A0\u0AB2\u0ABE\u0A96'},
+    7: {'other': '0\u00A0\u0A95\u0AB0\u0ACB\u0AA1'},
+    9: {'other': '0\u00A0\u0A85\u0AAC\u0A9C'},
+    11: {'other': '0\u00A0\u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5'},
+    12: {'other': '0\u00A0\u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE'},
+    13: {'other': '0\u00A0\u0AB6\u0A82\u0A95\u0AC1'},
+    14: {'other': '0\u00A0\u0A9C\u0AB2\u0AA7\u0ABF'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0AB9\u0A9C\u0ABE\u0AB0',
-    4: '00 \u0AB9\u0A9C\u0ABE\u0AB0',
-    5: '0 \u0AB2\u0ABE\u0A96',
-    6: '00 \u0AB2\u0ABE\u0A96',
-    7: '0 \u0A95\u0AB0\u0ACB\u0AA1',
-    8: '00 \u0A95\u0AB0\u0ACB\u0AA1',
-    9: '0 \u0A85\u0AAC\u0A9C',
-    10: '00 \u0A85\u0AAC\u0A9C',
-    11: '0 \u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5',
-    12: '0 \u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE',
-    13: '0 \u0AB6\u0A82\u0A95\u0AC1',
-    14: '0 \u0A9C\u0AB2\u0AA7\u0ABF',
+    3: {'other': '0 \u0AB9\u0A9C\u0ABE\u0AB0'},
+    5: {'other': '0 \u0AB2\u0ABE\u0A96'},
+    7: {'other': '0 \u0A95\u0AB0\u0ACB\u0AA1'},
+    9: {'other': '0 \u0A85\u0AAC\u0A9C'},
+    11: {'other': '0 \u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5'},
+    12: {'other': '0 \u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE'},
+    13: {'other': '0 \u0AB6\u0A82\u0A95\u0AC1'},
+    14: {'other': '0 \u0A9C\u0AB2\u0AA7\u0ABF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u0AB9\u0A9C\u0ABE\u0AB0',
-    4: '\u00A400\u00A0\u0AB9\u0A9C\u0ABE\u0AB0',
-    5: '\u00A40\u00A0\u0AB2\u0ABE\u0A96',
-    6: '\u00A400\u00A0\u0AB2\u0ABE\u0A96',
-    7: '\u00A40\u00A0\u0A95\u0AB0\u0ACB\u0AA1',
-    8: '\u00A400\u00A0\u0A95\u0AB0\u0ACB\u0AA1',
-    9: '\u00A40\u00A0\u0A85\u0AAC\u0A9C',
-    10: '\u00A400\u00A0\u0A85\u0AAC\u0A9C',
-    11: '\u00A40\u00A0\u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5',
-    12: '\u00A40\u00A0\u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE',
-    13: '\u00A40\u00A0\u0AB6\u0A82\u0A95\u0AC1',
-    14: '\u00A40\u00A0\u0A9C\u0AB2\u0AA7\u0ABF',
+    3: {'other': '\u00A40\u00A0\u0AB9\u0A9C\u0ABE\u0AB0'},
+    5: {'other': '\u00A40\u00A0\u0AB2\u0ABE\u0A96'},
+    7: {'other': '\u00A40\u00A0\u0A95\u0AB0\u0ACB\u0AA1'},
+    9: {'other': '\u00A40\u00A0\u0A85\u0AAC\u0A9C'},
+    11: {'other': '\u00A40\u00A0\u0AA8\u0ABF\u0A96\u0AB0\u0ACD\u0AB5'},
+    12: {'other': '\u00A40\u00A0\u0AAE\u0AB9\u0ABE\u0AAA\u0AA6\u0ACD\u0AAE'},
+    13: {'other': '\u00A40\u00A0\u0AB6\u0A82\u0A95\u0AC1'},
+    14: {'other': '\u00A40\u00A0\u0A9C\u0AB2\u0AA7\u0ABF'},
   }),
   // Compact number symbols for locale haw.
   "haw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40G',
-    10: '\u00A400G',
-    11: '\u00A4000G',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40G'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale he.
   "he": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K\u200F'},
+    6: {'other': '0M\u200F'},
+    9: {'other': '0B\u200F'},
+    12: {'other': '0T\u200F'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '\u200F0 \u05D0\u05DC\u05E3',
-    4: '\u200F00 \u05D0\u05DC\u05E3',
-    5: '\u200F000 \u05D0\u05DC\u05E3',
-    6: '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    7: '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    8: '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    9: '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    10: '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    11: '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    12: '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
-    13: '\u200F00 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
-    14: '\u200F000 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
+    3: {'other': '\u200F0 \u05D0\u05DC\u05E3'},
+    6: {'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF'},
+    9: {'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3'},
+    12: {'other': '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00K',
-    4: '\u00A4\u00A000K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K\u200F'},
+    6: {'other': '\u00A40M\u200F'},
+    9: {'other': '\u00A40B\u200F'},
+    12: {'other': '\u00A40T\u200F'},
   }),
   // Compact number symbols for locale hi.
   "hi": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0939\u091C\u093C\u093E\u0930',
-    4: '00\u00A0\u0939\u091C\u093C\u093E\u0930',
-    5: '0\u00A0\u0932\u093E\u0916',
-    6: '00\u00A0\u0932\u093E\u0916',
-    7: '0\u00A0\u0915\u0970',
-    8: '00\u00A0\u0915\u0970',
-    9: '0\u00A0\u0905\u0970',
-    10: '00\u00A0\u0905\u0970',
-    11: '0\u00A0\u0916\u0970',
-    12: '00\u00A0\u0916\u0970',
-    13: '0\u00A0\u0928\u0940\u0932',
-    14: '00\u00A0\u0928\u0940\u0932',
+    3: {'other': '0\u00A0\u0939\u091C\u093C\u093E\u0930'},
+    5: {'other': '0\u00A0\u0932\u093E\u0916'},
+    7: {'other': '0\u00A0\u0915\u0970'},
+    9: {'other': '0\u00A0\u0905\u0970'},
+    11: {'other': '0\u00A0\u0916\u0970'},
+    13: {'other': '0\u00A0\u0928\u0940\u0932'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0939\u091C\u093C\u093E\u0930',
-    4: '00 \u0939\u091C\u093C\u093E\u0930',
-    5: '0 \u0932\u093E\u0916',
-    6: '00 \u0932\u093E\u0916',
-    7: '0 \u0915\u0930\u094B\u0921\u093C',
-    8: '00 \u0915\u0930\u094B\u0921\u093C',
-    9: '0 \u0905\u0930\u092C',
-    10: '00 \u0905\u0930\u092C',
-    11: '0 \u0916\u0930\u092C',
-    12: '00 \u0916\u0930\u092C',
-    13: '000 \u0916\u0930\u092C',
-    14: '0000 \u0916\u0930\u092C',
+    3: {'other': '0 \u0939\u091C\u093C\u093E\u0930'},
+    5: {'other': '0 \u0932\u093E\u0916'},
+    7: {'other': '0 \u0915\u0930\u094B\u0921\u093C'},
+    9: {'other': '0 \u0905\u0930\u092C'},
+    11: {'other': '0 \u0916\u0930\u092C'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u0939\u091C\u093C\u093E\u0930',
-    4: '\u00A400\u00A0\u0939\u091C\u093C\u093E\u0930',
-    5: '\u00A40\u00A0\u0932\u093E\u0916',
-    6: '\u00A400\u00A0\u0932\u093E\u0916',
-    7: '\u00A40\u00A0\u0915\u0970',
-    8: '\u00A400\u00A0\u0915\u0970',
-    9: '\u00A40\u00A0\u0905\u0970',
-    10: '\u00A400\u00A0\u0905\u0970',
-    11: '\u00A40\u00A0\u0916\u0970',
-    12: '\u00A400\u00A0\u0916\u0970',
-    13: '\u00A40\u00A0\u0928\u0940\u0932',
-    14: '\u00A400\u00A0\u0928\u0940\u0932',
+    3: {'other': '\u00A40\u00A0\u0939\u091C\u093C\u093E\u0930'},
+    5: {'other': '\u00A40\u00A0\u0932\u093E\u0916'},
+    7: {'other': '\u00A40\u00A0\u0915\u0970'},
+    9: {'other': '\u00A40\u00A0\u0905\u0970'},
+    11: {'other': '\u00A40\u00A0\u0916\u0970'},
+    13: {'other': '\u00A40\u00A0\u0928\u0940\u0932'},
   }),
   // Compact number symbols for locale hr.
   "hr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tis.',
-    4: '00\u00A0tis.',
-    5: '000\u00A0tis.',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mlr.',
-    10: '00\u00A0mlr.',
-    11: '000\u00A0mlr.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0tis.'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mlr.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tisu\u0107a',
-    4: '00 tisu\u0107a',
-    5: '000 tisu\u0107a',
-    6: '0 milijuna',
-    7: '00 milijuna',
-    8: '000 milijuna',
-    9: '0 milijardi',
-    10: '00 milijardi',
-    11: '000 milijardi',
-    12: '0 bilijuna',
-    13: '00 bilijuna',
-    14: '000 bilijuna',
+    3: {
+      'few': '0 tisu\u0107e',
+      'one': '0 tisu\u0107a',
+      'other': '0 tisu\u0107a',
+    },
+    6: {
+      'few': '0 milijuna',
+      'one': '0 milijun',
+      'other': '0 milijuna',
+    },
+    9: {
+      'few': '0 milijarde',
+      'one': '0 milijarda',
+      'other': '0 milijardi',
+    },
+    12: {
+      'few': '0 bilijuna',
+      'one': '0 bilijun',
+      'other': '0 bilijuna',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0000\u00A4',
-    4: '00\u00A0tis.\u00A0\u00A4',
-    5: '000\u00A0tis.\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mlr.\u00A0\u00A4',
-    10: '00\u00A0mlr.\u00A0\u00A4',
-    11: '000\u00A0mlr.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0tis.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mlr.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale hu.
   "hu": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0E',
-    4: '00\u00A0E',
-    5: '000\u00A0E',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0Mrd',
-    10: '00\u00A0Mrd',
-    11: '000\u00A0Mrd',
-    12: '0\u00A0B',
-    13: '00\u00A0B',
-    14: '000\u00A0B',
+    3: {'other': '0\u00A0E'},
+    6: {'other': '0\u00A0M'},
+    9: {'other': '0\u00A0Mrd'},
+    12: {'other': '0\u00A0B'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ezer',
-    4: '00 ezer',
-    5: '000 ezer',
-    6: '0 milli\u00F3',
-    7: '00 milli\u00F3',
-    8: '000 milli\u00F3',
-    9: '0 milli\u00E1rd',
-    10: '00 milli\u00E1rd',
-    11: '000 milli\u00E1rd',
-    12: '0 billi\u00F3',
-    13: '00 billi\u00F3',
-    14: '000 billi\u00F3',
+    3: {'other': '0 ezer'},
+    6: {'other': '0 milli\u00F3'},
+    9: {'other': '0 milli\u00E1rd'},
+    12: {'other': '0 billi\u00F3'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0E\u00A0\u00A4',
-    4: '00\u00A0E\u00A0\u00A4',
-    5: '000\u00A0E\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0\u00A0Mrd\u00A0\u00A4',
-    10: '00\u00A0Mrd\u00A0\u00A4',
-    11: '000\u00A0Mrd\u00A0\u00A4',
-    12: '0\u00A0B\u00A0\u00A4',
-    13: '00\u00A0B\u00A0\u00A4',
-    14: '000\u00A0B\u00A0\u00A4',
+    3: {'other': '0\u00A0E\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd\u00A0\u00A4'},
+    12: {'other': '0\u00A0B\u00A0\u00A4'},
   }),
   // Compact number symbols for locale hy.
   "hy": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0570\u0566\u0580',
-    4: '00\u00A0\u0570\u0566\u0580',
-    5: '000\u00A0\u0570\u0566\u0580',
-    6: '0\u00A0\u0574\u056C\u0576',
-    7: '00\u00A0\u0574\u056C\u0576',
-    8: '000\u00A0\u0574\u056C\u0576',
-    9: '0\u00A0\u0574\u056C\u0580\u0564',
-    10: '00\u00A0\u0574\u056C\u0580\u0564',
-    11: '000\u00A0\u0574\u056C\u0580\u0564',
-    12: '0\u00A0\u057F\u0580\u056C\u0576',
-    13: '00\u00A0\u057F\u0580\u056C\u0576',
-    14: '000\u00A0\u057F\u0580\u056C\u0576',
+    3: {'other': '0\u00A0\u0570\u0566\u0580'},
+    6: {'other': '0\u00A0\u0574\u056C\u0576'},
+    9: {'other': '0\u00A0\u0574\u056C\u0580\u0564'},
+    12: {'other': '0\u00A0\u057F\u0580\u056C\u0576'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0570\u0561\u0566\u0561\u0580',
-    4: '00 \u0570\u0561\u0566\u0561\u0580',
-    5: '000 \u0570\u0561\u0566\u0561\u0580',
-    6: '0 \u0574\u056B\u056C\u056B\u0578\u0576',
-    7: '00 \u0574\u056B\u056C\u056B\u0578\u0576',
-    8: '000 \u0574\u056B\u056C\u056B\u0578\u0576',
-    9: '0 \u0574\u056B\u056C\u056B\u0561\u0580\u0564',
-    10: '00 \u0574\u056B\u056C\u056B\u0561\u0580\u0564',
-    11: '000 \u0574\u056B\u056C\u056B\u0561\u0580\u0564',
-    12: '0 \u057F\u0580\u056B\u056C\u056B\u0578\u0576',
-    13: '00 \u057F\u0580\u056B\u056C\u056B\u0578\u0576',
-    14: '000 \u057F\u0580\u056B\u056C\u056B\u0578\u0576',
+    3: {'other': '0 \u0570\u0561\u0566\u0561\u0580'},
+    6: {'other': '0 \u0574\u056B\u056C\u056B\u0578\u0576'},
+    9: {'other': '0 \u0574\u056B\u056C\u056B\u0561\u0580\u0564'},
+    12: {'other': '0 \u057F\u0580\u056B\u056C\u056B\u0578\u0576'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0570\u0566\u0580\u00A0\u00A4',
-    4: '00\u00A0\u0570\u0566\u0580\u00A0\u00A4',
-    5: '000\u00A0\u0570\u0566\u0580\u00A0\u00A4',
-    6: '0\u00A0\u0574\u056C\u0576\u00A0\u00A4',
-    7: '00\u00A0\u0574\u056C\u0576\u00A0\u00A4',
-    8: '000\u00A0\u0574\u056C\u0576\u00A0\u00A4',
-    9: '0\u00A0\u0574\u056C\u0580\u0564\u00A0\u00A4',
-    10: '00\u00A0\u0574\u056C\u0580\u0564\u00A0\u00A4',
-    11: '000\u00A0\u0574\u056C\u0580\u0564\u00A0\u00A4',
-    12: '0\u00A0\u057F\u0580\u056C\u0576\u00A0\u00A4',
-    13: '00\u00A0\u057F\u0580\u056C\u0576\u00A0\u00A4',
-    14: '000\u00A0\u057F\u0580\u056C\u0576\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0570\u0566\u0580\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u0574\u056C\u0576\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u0574\u056C\u0580\u0564\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u057F\u0580\u056C\u0576\u00A0\u00A4'},
   }),
   // Compact number symbols for locale id.
   "id": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0rb',
-    4: '00\u00A0rb',
-    5: '000\u00A0rb',
-    6: '0\u00A0jt',
-    7: '00\u00A0jt',
-    8: '000\u00A0jt',
-    9: '0\u00A0M',
-    10: '00\u00A0M',
-    11: '000\u00A0M',
-    12: '0\u00A0T',
-    13: '00\u00A0T',
-    14: '000\u00A0T',
+    3: {'other': '0\u00A0rb'},
+    6: {'other': '0\u00A0jt'},
+    9: {'other': '0\u00A0M'},
+    12: {'other': '0\u00A0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ribu',
-    4: '00 ribu',
-    5: '000 ribu',
-    6: '0 juta',
-    7: '00 juta',
-    8: '000 juta',
-    9: '0 miliar',
-    10: '00 miliar',
-    11: '000 miliar',
-    12: '0 triliun',
-    13: '00 triliun',
-    14: '000 triliun',
+    3: {'other': '0 ribu'},
+    6: {'other': '0 juta'},
+    9: {'other': '0 miliar'},
+    12: {'other': '0 triliun'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0rb',
-    4: '\u00A400\u00A0rb',
-    5: '\u00A4000\u00A0rb',
-    6: '\u00A40\u00A0jt',
-    7: '\u00A400\u00A0jt',
-    8: '\u00A4000\u00A0jt',
-    9: '\u00A40\u00A0M',
-    10: '\u00A400\u00A0M',
-    11: '\u00A4000\u00A0M',
-    12: '\u00A40\u00A0T',
-    13: '\u00A400\u00A0T',
-    14: '\u00A4000\u00A0T',
+    3: {'other': '\u00A40\u00A0rb'},
+    6: {'other': '\u00A40\u00A0jt'},
+    9: {'other': '\u00A40\u00A0M'},
+    12: {'other': '\u00A40\u00A0T'},
   }),
   // Compact number symbols for locale in.
   "in": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0rb',
-    4: '00\u00A0rb',
-    5: '000\u00A0rb',
-    6: '0\u00A0jt',
-    7: '00\u00A0jt',
-    8: '000\u00A0jt',
-    9: '0\u00A0M',
-    10: '00\u00A0M',
-    11: '000\u00A0M',
-    12: '0\u00A0T',
-    13: '00\u00A0T',
-    14: '000\u00A0T',
+    3: {'other': '0\u00A0rb'},
+    6: {'other': '0\u00A0jt'},
+    9: {'other': '0\u00A0M'},
+    12: {'other': '0\u00A0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ribu',
-    4: '00 ribu',
-    5: '000 ribu',
-    6: '0 juta',
-    7: '00 juta',
-    8: '000 juta',
-    9: '0 miliar',
-    10: '00 miliar',
-    11: '000 miliar',
-    12: '0 triliun',
-    13: '00 triliun',
-    14: '000 triliun',
+    3: {'other': '0 ribu'},
+    6: {'other': '0 juta'},
+    9: {'other': '0 miliar'},
+    12: {'other': '0 triliun'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0rb',
-    4: '\u00A400\u00A0rb',
-    5: '\u00A4000\u00A0rb',
-    6: '\u00A40\u00A0jt',
-    7: '\u00A400\u00A0jt',
-    8: '\u00A4000\u00A0jt',
-    9: '\u00A40\u00A0M',
-    10: '\u00A400\u00A0M',
-    11: '\u00A4000\u00A0M',
-    12: '\u00A40\u00A0T',
-    13: '\u00A400\u00A0T',
-    14: '\u00A4000\u00A0T',
+    3: {'other': '\u00A40\u00A0rb'},
+    6: {'other': '\u00A40\u00A0jt'},
+    9: {'other': '\u00A40\u00A0M'},
+    12: {'other': '\u00A40\u00A0T'},
   }),
   // Compact number symbols for locale is.
   "is": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u00FE.',
-    4: '00\u00A0\u00FE.',
-    5: '000\u00A0\u00FE.',
-    6: '0\u00A0m.',
-    7: '00\u00A0m.',
-    8: '000\u00A0m.',
-    9: '0\u00A0ma.',
-    10: '00\u00A0ma.',
-    11: '000\u00A0ma.',
-    12: '0\u00A0bn',
-    13: '00\u00A0bn',
-    14: '000\u00A0bn',
+    3: {'other': '0\u00A0\u00FE.'},
+    6: {'other': '0\u00A0m.'},
+    9: {'other': '0\u00A0ma.'},
+    12: {'other': '0\u00A0bn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u00FE\u00FAsund',
-    4: '00 \u00FE\u00FAsund',
-    5: '000 \u00FE\u00FAsund',
-    6: '0 millj\u00F3nir',
-    7: '00 millj\u00F3nir',
-    8: '000 millj\u00F3nir',
-    9: '0 milljar\u00F0ar',
-    10: '00 milljar\u00F0ar',
-    11: '000 milljar\u00F0ar',
-    12: '0 billj\u00F3nir',
-    13: '00 billj\u00F3nir',
-    14: '000 billj\u00F3nir',
+    3: {'other': '0 \u00FE\u00FAsund'},
+    6: {
+      'one': '0 millj\u00F3n',
+      'other': '0 millj\u00F3nir',
+    },
+    9: {
+      'one': '0 milljar\u00F0ur',
+      'other': '0 milljar\u00F0ar',
+    },
+    12: {
+      'one': '0 billj\u00F3n',
+      'other': '0 billj\u00F3nir',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u00FE.\u00A0\u00A4',
-    4: '00\u00A0\u00FE.\u00A0\u00A4',
-    5: '000\u00A0\u00FE.\u00A0\u00A4',
-    6: '0\u00A0m.\u00A0\u00A4',
-    7: '00\u00A0m.\u00A0\u00A4',
-    8: '000\u00A0m.\u00A0\u00A4',
-    9: '0\u00A0ma.\u00A0\u00A4',
-    10: '00\u00A0ma.\u00A0\u00A4',
-    11: '000\u00A0ma.\u00A0\u00A4',
-    12: '0\u00A0bn\u00A0\u00A4',
-    13: '00\u00A0bn\u00A0\u00A4',
-    14: '000\u00A0bn\u00A0\u00A4',
+    3: {'other': '0\u00A0\u00FE.\u00A0\u00A4'},
+    6: {'other': '0\u00A0m.\u00A0\u00A4'},
+    9: {'other': '0\u00A0ma.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bn\u00A0\u00A4'},
   }),
   // Compact number symbols for locale it.
   "it": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mln',
-    7: '00\u00A0Mln',
-    8: '000\u00A0Mln',
-    9: '0\u00A0Mrd',
-    10: '00\u00A0Mrd',
-    11: '000\u00A0Mrd',
-    12: '0\u00A0Bln',
-    13: '00\u00A0Bln',
-    14: '000\u00A0Bln',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mln'},
+    9: {'other': '0\u00A0Mrd'},
+    12: {'other': '0\u00A0Bln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mila',
-    4: '00 mila',
-    5: '000 mila',
-    6: '0 milioni',
-    7: '00 milioni',
-    8: '000 milioni',
-    9: '0 miliardi',
-    10: '00 miliardi',
-    11: '000 miliardi',
-    12: '0 mila miliardi',
-    13: '00 mila miliardi',
-    14: '000 mila miliardi',
+    3: {
+      'one': 'mille',
+      'other': '0 mila',
+    },
+    4: {'other': '00 mila'},
+    6: {
+      'one': '0 milione',
+      'other': '0 milioni',
+    },
+    7: {'other': '00 milioni'},
+    9: {
+      'one': '0 miliardo',
+      'other': '0 miliardi',
+    },
+    10: {'other': '00 miliardi'},
+    12: {
+      'one': '0 mille miliardi',
+      'other': '0 mila miliardi',
+    },
+    13: {'other': '00 mila miliardi'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio\u00A0\u00A4',
-    7: '00\u00A0Mio\u00A0\u00A4',
-    8: '000\u00A0Mio\u00A0\u00A4',
-    9: '0\u00A0Mrd\u00A0\u00A4',
-    10: '00\u00A0Mrd\u00A0\u00A4',
-    11: '000\u00A0Mrd\u00A0\u00A4',
-    12: '0\u00A0Bln\u00A0\u00A4',
-    13: '00\u00A0Bln\u00A0\u00A4',
-    14: '000\u00A0Bln\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale it_CH.
   "it_CH": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mln',
-    7: '00\u00A0Mln',
-    8: '000\u00A0Mln',
-    9: '0\u00A0Mrd',
-    10: '00\u00A0Mrd',
-    11: '000\u00A0Mrd',
-    12: '0\u00A0Bln',
-    13: '00\u00A0Bln',
-    14: '000\u00A0Bln',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mln'},
+    9: {'other': '0\u00A0Mrd'},
+    12: {'other': '0\u00A0Bln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mila',
-    4: '00 mila',
-    5: '000 mila',
-    6: '0 milioni',
-    7: '00 milioni',
-    8: '000 milioni',
-    9: '0 miliardi',
-    10: '00 miliardi',
-    11: '000 miliardi',
-    12: '0 mila miliardi',
-    13: '00 mila miliardi',
-    14: '000 mila miliardi',
+    3: {
+      'one': 'mille',
+      'other': '0 mila',
+    },
+    4: {'other': '00 mila'},
+    6: {
+      'one': '0 milione',
+      'other': '0 milioni',
+    },
+    7: {'other': '00 milioni'},
+    9: {
+      'one': '0 miliardo',
+      'other': '0 miliardi',
+    },
+    10: {'other': '00 miliardi'},
+    12: {
+      'one': '0 mille miliardi',
+      'other': '0 mila miliardi',
+    },
+    13: {'other': '00 mila miliardi'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '0',
-    5: '0',
-    6: '0\u00A0Mio\u00A0\u00A4',
-    7: '00\u00A0Mio\u00A0\u00A4',
-    8: '000\u00A0Mio\u00A0\u00A4',
-    9: '0\u00A0Mrd\u00A0\u00A4',
-    10: '00\u00A0Mrd\u00A0\u00A4',
-    11: '000\u00A0Mrd\u00A0\u00A4',
-    12: '0\u00A0Bln\u00A0\u00A4',
-    13: '00\u00A0Bln\u00A0\u00A4',
-    14: '000\u00A0Bln\u00A0\u00A4',
+    3: {'other': '0'},
+    4: {'other': '0'},
+    5: {'other': '0'},
+    6: {'other': '0\u00A0Mio\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mrd\u00A0\u00A4'},
+    12: {'other': '0\u00A0Bln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale iw.
   "iw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K\u200F'},
+    6: {'other': '0M\u200F'},
+    9: {'other': '0B\u200F'},
+    12: {'other': '0T\u200F'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '\u200F0 \u05D0\u05DC\u05E3',
-    4: '\u200F00 \u05D0\u05DC\u05E3',
-    5: '\u200F000 \u05D0\u05DC\u05E3',
-    6: '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    7: '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    8: '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF',
-    9: '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    10: '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    11: '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3',
-    12: '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
-    13: '\u200F00 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
-    14: '\u200F000 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF',
+    3: {'other': '\u200F0 \u05D0\u05DC\u05E3'},
+    6: {'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF'},
+    9: {'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3'},
+    12: {'other': '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00K',
-    4: '\u00A4\u00A000K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K\u200F'},
+    6: {'other': '\u00A40M\u200F'},
+    9: {'other': '\u00A40B\u200F'},
+    12: {'other': '\u00A40T\u200F'},
   }),
   // Compact number symbols for locale ja.
   "ja": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u5104',
-    9: '00\u5104',
-    10: '000\u5104',
-    11: '0000\u5104',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u5104'},
+    12: {'other': '0\u5146'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u5104',
-    9: '00\u5104',
-    10: '000\u5104',
-    11: '0000\u5104',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u5104'},
+    12: {'other': '0\u5146'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '\u00A40\u4E07',
-    5: '\u00A400\u4E07',
-    6: '\u00A4000\u4E07',
-    7: '\u00A40000\u4E07',
-    8: '\u00A40\u5104',
-    9: '\u00A400\u5104',
-    10: '\u00A4000\u5104',
-    11: '\u00A40000\u5104',
-    12: '\u00A40\u5146',
-    13: '\u00A400\u5146',
-    14: '\u00A4000\u5146',
+    3: {'other': '0'},
+    4: {'other': '\u00A40\u4E07'},
+    8: {'other': '\u00A40\u5104'},
+    12: {'other': '\u00A40\u5146'},
   }),
   // Compact number symbols for locale ka.
   "ka": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u10D0\u10D7.',
-    4: '00\u00A0\u10D0\u10D7.',
-    5: '000\u00A0\u10D0\u10D7.',
-    6: '0\u00A0\u10DB\u10DA\u10DC.',
-    7: '00\u00A0\u10DB\u10DA\u10DC.',
-    8: '000\u00A0\u10DB\u10DA\u10DC.',
-    9: '0\u00A0\u10DB\u10DA\u10E0\u10D3.',
-    10: '00\u00A0\u10DB\u10DA\u10E0\u10D3.',
-    11: '000\u00A0\u10DB\u10DA\u10E0.',
-    12: '0\u00A0\u10E2\u10E0\u10DA.',
-    13: '00\u00A0\u10E2\u10E0\u10DA.',
-    14: '000\u00A0\u10E2\u10E0\u10DA.',
+    3: {'other': '0\u00A0\u10D0\u10D7.'},
+    6: {'other': '0\u00A0\u10DB\u10DA\u10DC.'},
+    9: {'other': '0\u00A0\u10DB\u10DA\u10E0\u10D3.'},
+    11: {'other': '000\u00A0\u10DB\u10DA\u10E0.'},
+    12: {'other': '0\u00A0\u10E2\u10E0\u10DA.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u10D0\u10D7\u10D0\u10E1\u10D8',
-    4: '00 \u10D0\u10D7\u10D0\u10E1\u10D8',
-    5: '000 \u10D0\u10D7\u10D0\u10E1\u10D8',
-    6: '0 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
-    7: '00 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
-    8: '000 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
-    9: '0 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8',
-    10: '00 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8',
-    11: '000 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8',
-    12: '0 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
-    13: '00 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
-    14: '000 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8',
+    3: {'other': '0 \u10D0\u10D7\u10D0\u10E1\u10D8'},
+    6: {'other': '0 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8'},
+    9: {'other': '0 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8'},
+    12: {'other': '0 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u10D0\u10D7.\u00A0\u00A4',
-    4: '00\u00A0\u10D0\u10D7.\u00A0\u00A4',
-    5: '000\u00A0\u10D0\u10D7.\u00A0\u00A4',
-    6: '0\u00A0\u10DB\u10DA\u10DC.\u00A0\u00A4',
-    7: '00\u00A0\u10DB\u10DA\u10DC.\u00A0\u00A4',
-    8: '000\u00A0\u10DB\u10DA\u10DC.\u00A0\u00A4',
-    9: '0\u00A0\u10DB\u10DA\u10E0\u10D3.\u00A0\u00A4',
-    10: '00\u00A0\u10DB\u10DA\u10E0\u10D3.\u00A0\u00A4',
-    11: '000\u00A0\u10DB\u10DA\u10E0.\u00A0\u00A4',
-    12: '0\u00A0\u10E2\u10E0\u10DA.\u00A0\u00A4',
-    13: '00\u00A0\u10E2\u10E0\u10DA.\u00A0\u00A4',
-    14: '000\u00A0\u10E2\u10E0\u10DA.\u00A0\u00A4',
+    3: {'other': '0\u00A0\u10D0\u10D7.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u10DB\u10DA\u10DC.\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u10DB\u10DA\u10E0\u10D3.\u00A0\u00A4'},
+    11: {'other': '000\u00A0\u10DB\u10DA\u10E0.\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u10E2\u10E0\u10DA.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale kk.
   "kk": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u043C\u044B\u04A3',
-    4: '00\u00A0\u043C\u044B\u04A3',
-    5: '000\u00A0\u043C.',
-    6: '0\u00A0\u043C\u043B\u043D',
-    7: '00\u00A0\u043C\u043B\u043D',
-    8: '000\u00A0\u043C\u043B\u043D',
-    9: '0\u00A0\u043C\u043B\u0440\u0434',
-    10: '00\u00A0\u043C\u043B\u0440\u0434',
-    11: '000\u00A0\u043C\u043B\u0440\u0434',
-    12: '0\u00A0\u0442\u0440\u043B\u043D',
-    13: '00\u00A0\u0442\u0440\u043B\u043D',
-    14: '000\u00A0\u0442\u0440\u043B\u043D',
+    3: {'other': '0\u00A0\u043C\u044B\u04A3'},
+    5: {'other': '000\u00A0\u043C.'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u043C\u044B\u04A3',
-    4: '00 \u043C\u044B\u04A3',
-    5: '000 \u043C\u044B\u04A3',
-    6: '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    7: '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    8: '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    9: '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    10: '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    11: '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    12: '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
-    13: '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
-    14: '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
+    3: {'other': '0 \u043C\u044B\u04A3'},
+    6: {'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D'},
+    9: {'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434'},
+    12: {'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u043C\u044B\u04A3\u00A0\u00A4',
-    4: '00\u00A0\u043C\u044B\u04A3\u00A0\u00A4',
-    5: '000\u00A0\u043C\u044B\u04A3\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
+    3: {'other': '0\u00A0\u043C\u044B\u04A3\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4'},
   }),
   // Compact number symbols for locale km.
   "km": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u1796\u17B6\u1793\u17CB',
-    4: '00\u00A0\u1796\u17B6\u1793\u17CB',
-    5: '000\u00A0\u1796\u17B6\u1793\u17CB',
-    6: '0\u00A0\u179B\u17B6\u1793',
-    7: '00\u00A0\u179B\u17B6\u1793',
-    8: '000\u00A0\u179B\u17B6\u1793',
-    9: '0\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    10: '00\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    11: '000\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    12: '0\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    13: '00\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    14: '000\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
+    3: {'other': '0\u1796\u17B6\u1793\u17CB'},
+    4: {'other': '00\u00A0\u1796\u17B6\u1793\u17CB'},
+    6: {'other': '0\u00A0\u179B\u17B6\u1793'},
+    9: {'other': '0\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793'},
+    12: {'other': '0\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u1796\u17B6\u1793\u17CB',
-    4: '00 \u1796\u17B6\u1793\u17CB',
-    5: '000\u1796\u17B6\u1793\u17CB',
-    6: '0 \u179B\u17B6\u1793',
-    7: '00 \u179B\u17B6\u1793',
-    8: '000 \u179B\u17B6\u1793',
-    9: '0 \u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    10: '00 \u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    11: '000 \u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    12: '0 \u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    13: '00 \u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    14: '000 \u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
+    3: {'other': '0 \u1796\u17B6\u1793\u17CB'},
+    5: {'other': '000\u1796\u17B6\u1793\u17CB'},
+    6: {'other': '0 \u179B\u17B6\u1793'},
+    9: {'other': '0 \u1794\u17CA\u17B8\u179B\u17B6\u1793'},
+    12: {'other': '0 \u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u1796\u17B6\u1793\u17CB',
-    4: '\u00A400\u00A0\u1796\u17B6\u1793\u17CB',
-    5: '\u00A4000\u00A0\u1796\u17B6\u1793\u17CB',
-    6: '\u00A40\u00A0\u179B\u17B6\u1793',
-    7: '\u00A400\u00A0\u179B\u17B6\u1793',
-    8: '\u00A4000\u00A0\u179B\u17B6\u1793',
-    9: '\u00A40\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    10: '\u00A400\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    11: '\u00A4000\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793',
-    12: '\u00A40\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    13: '\u00A400\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
-    14: '\u00A4000\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793',
+    3: {'other': '\u00A40\u00A0\u1796\u17B6\u1793\u17CB'},
+    6: {'other': '\u00A40\u00A0\u179B\u17B6\u1793'},
+    9: {'other': '\u00A40\u00A0\u1794\u17CA\u17B8\u179B\u17B6\u1793'},
+    12: {'other': '\u00A40\u00A0\u1791\u17D2\u179A\u17B8\u179B\u17B6\u1793'},
   }),
   // Compact number symbols for locale kn.
   "kn": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u0CB8\u0CBE',
-    4: '00\u0CB8\u0CBE',
-    5: '000\u0CB8\u0CBE',
-    6: '0\u0CAE\u0CBF',
-    7: '00\u0CAE\u0CBF',
-    8: '000\u0CAE\u0CBF',
-    9: '0\u0CAC\u0CBF',
-    10: '00\u0CAC\u0CBF',
-    11: '000\u0CAC\u0CBF',
-    12: '0\u0C9F\u0CCD\u0CB0\u0CBF',
-    13: '00\u0C9F\u0CCD\u0CB0\u0CBF',
-    14: '000\u0C9F\u0CCD\u0CB0\u0CBF',
+    3: {'other': '0\u0CB8\u0CBE'},
+    6: {'other': '0\u0CAE\u0CBF'},
+    9: {'other': '0\u0CAC\u0CBF'},
+    12: {'other': '0\u0C9F\u0CCD\u0CB0\u0CBF'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0',
-    4: '00 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0',
-    5: '000 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0',
-    6: '0 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    7: '00 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    8: '000 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    9: '0 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    10: '00 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    11: '000 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD',
-    12: '0 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C',
-    13: '00 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C',
-    14: '000 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C',
+    3: {'other': '0 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0'},
+    6: {'other': '0 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD'},
+    9: {'other': '0 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD'},
+    12: {
+      'other': '0 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C'
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u0CB8\u0CBE',
-    4: '\u00A400\u0CB8\u0CBE',
-    5: '\u00A4000\u0CB8\u0CBE',
-    6: '\u00A40\u0CAE\u0CBF',
-    7: '\u00A400\u0CAE\u0CBF',
-    8: '\u00A4000\u0CAE\u0CBF',
-    9: '\u00A40\u0CAC\u0CBF',
-    10: '\u00A400\u0CAC\u0CBF',
-    11: '\u00A4000\u0CAC\u0CBF',
-    12: '\u00A40\u0C9F\u0CCD\u0CB0\u0CBF',
-    13: '\u00A400\u0C9F\u0CCD\u0CB0\u0CBF',
-    14: '\u00A4000\u0C9F\u0CCD\u0CB0\u0CBF',
+    3: {'other': '\u00A40\u0CB8\u0CBE'},
+    6: {'other': '\u00A40\u0CAE\u0CBF'},
+    9: {'other': '\u00A40\u0CAC\u0CBF'},
+    12: {'other': '\u00A40\u0C9F\u0CCD\u0CB0\u0CBF'},
   }),
   // Compact number symbols for locale ko.
   "ko": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\uCC9C',
-    4: '0\uB9CC',
-    5: '00\uB9CC',
-    6: '000\uB9CC',
-    7: '0000\uB9CC',
-    8: '0\uC5B5',
-    9: '00\uC5B5',
-    10: '000\uC5B5',
-    11: '0000\uC5B5',
-    12: '0\uC870',
-    13: '00\uC870',
-    14: '000\uC870',
+    3: {'other': '0\uCC9C'},
+    4: {'other': '0\uB9CC'},
+    8: {'other': '0\uC5B5'},
+    12: {'other': '0\uC870'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\uCC9C',
-    4: '0\uB9CC',
-    5: '00\uB9CC',
-    6: '000\uB9CC',
-    7: '0000\uB9CC',
-    8: '0\uC5B5',
-    9: '00\uC5B5',
-    10: '000\uC5B5',
-    11: '0000\uC5B5',
-    12: '0\uC870',
-    13: '00\uC870',
-    14: '000\uC870',
+    3: {'other': '0\uCC9C'},
+    4: {'other': '0\uB9CC'},
+    8: {'other': '0\uC5B5'},
+    12: {'other': '0\uC870'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\uCC9C',
-    4: '\u00A40\uB9CC',
-    5: '\u00A400\uB9CC',
-    6: '\u00A4000\uB9CC',
-    7: '\u00A40000\uB9CC',
-    8: '\u00A40\uC5B5',
-    9: '\u00A400\uC5B5',
-    10: '\u00A4000\uC5B5',
-    11: '\u00A40000\uC5B5',
-    12: '\u00A40\uC870',
-    13: '\u00A400\uC870',
-    14: '\u00A4000\uC870',
+    3: {'other': '\u00A40\uCC9C'},
+    4: {'other': '\u00A40\uB9CC'},
+    8: {'other': '\u00A40\uC5B5'},
+    12: {'other': '\u00A40\uC870'},
   }),
   // Compact number symbols for locale ky.
   "ky": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u043C\u0438\u04A3',
-    4: '00\u00A0\u043C\u0438\u04A3',
-    5: '000\u00A0\u043C\u0438\u04A3',
-    6: '0\u00A0\u043C\u043B\u043D',
-    7: '00\u00A0\u043C\u043B\u043D',
-    8: '000\u00A0\u043C\u043B\u043D',
-    9: '0\u00A0\u043C\u043B\u0434',
-    10: '00\u00A0\u043C\u043B\u0434',
-    11: '000\u00A0\u043C\u043B\u0434',
-    12: '0\u00A0\u0442\u0440\u043B\u043D',
-    13: '00\u00A0\u0442\u0440\u043B\u043D',
-    14: '000\u00A0\u0442\u0440\u043B\u043D',
+    3: {'other': '0\u00A0\u043C\u0438\u04A3'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D'},
+    9: {'other': '0\u00A0\u043C\u043B\u0434'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u043C\u0438\u04A3',
-    4: '00 \u043C\u0438\u04A3',
-    5: '000 \u043C\u0438\u04A3',
-    6: '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    7: '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    8: '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
-    9: '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    10: '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    11: '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
-    12: '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
-    13: '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
-    14: '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
+    3: {'other': '0 \u043C\u0438\u04A3'},
+    6: {'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D'},
+    9: {'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434'},
+    12: {'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u043C\u0438\u04A3\u00A0\u00A4',
-    4: '00\u00A0\u043C\u0438\u04A3\u00A0\u00A4',
-    5: '000\u00A0\u043C\u0438\u04A3\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0434\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0434\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0434\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
+    3: {'other': '0\u00A0\u043C\u0438\u04A3\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0434\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ln.
   "ln": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0K\u00A0\u00A4',
-    4: '00K\u00A0\u00A4',
-    5: '000K\u00A0\u00A4',
-    6: '0M\u00A0\u00A4',
-    7: '00M\u00A0\u00A4',
-    8: '000M\u00A0\u00A4',
-    9: '0G\u00A0\u00A4',
-    10: '00G\u00A0\u00A4',
-    11: '000G\u00A0\u00A4',
-    12: '0T\u00A0\u00A4',
-    13: '00T\u00A0\u00A4',
-    14: '000T\u00A0\u00A4',
+    3: {'other': '0K\u00A0\u00A4'},
+    6: {'other': '0M\u00A0\u00A4'},
+    9: {'other': '0G\u00A0\u00A4'},
+    12: {'other': '0T\u00A0\u00A4'},
   }),
   // Compact number symbols for locale lo.
   "lo": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0E9E\u0EB1\u0E99',
-    4: '00\u00A0\u0E9E\u0EB1\u0E99',
-    5: '000\u00A0\u0E81\u0EB5\u0E9A',
-    6: '0\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    7: '00\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    8: '000\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    9: '0\u00A0\u0E95\u0EB7\u0EC9',
-    10: '00\u00A0\u0E95\u0EB7\u0EC9',
-    11: '000\u00A0\u0E95\u0EB7\u0EC9',
-    12: '0\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
-    13: '00\u0EA5\u0EA5',
-    14: '000\u0EA5\u0EA5',
+    3: {'other': '0\u00A0\u0E9E\u0EB1\u0E99'},
+    5: {'other': '000\u00A0\u0E81\u0EB5\u0E9A'},
+    6: {'other': '0\u00A0\u0EA5\u0EC9\u0EB2\u0E99'},
+    9: {'other': '0\u00A0\u0E95\u0EB7\u0EC9'},
+    12: {'other': '0\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99'},
+    13: {'other': '00\u0EA5\u0EA5'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0E9E\u0EB1\u0E99',
-    4: '00 \u0E9E\u0EB1\u0E99',
-    5: '0 \u0EC1\u0EAA\u0E99',
-    6: '0 \u0EA5\u0EC9\u0EB2\u0E99',
-    7: '00 \u0EA5\u0EC9\u0EB2\u0E99',
-    8: '000 \u0EA5\u0EC9\u0EB2\u0E99',
-    9: '0 \u0E95\u0EB7\u0EC9',
-    10: '00 \u0E95\u0EB7\u0EC9',
-    11: '000 \u0E95\u0EB7\u0EC9',
-    12: '0 \u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
-    13: '00 \u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
-    14: '000 \u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
+    3: {'other': '0 \u0E9E\u0EB1\u0E99'},
+    5: {'other': '0 \u0EC1\u0EAA\u0E99'},
+    6: {'other': '0 \u0EA5\u0EC9\u0EB2\u0E99'},
+    9: {'other': '0 \u0E95\u0EB7\u0EC9'},
+    12: {'other': '0 \u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u0E9E\u0EB1\u0E99',
-    4: '\u00A400\u00A0\u0E9E\u0EB1\u0E99',
-    5: '\u00A4000\u00A0\u0E81\u0EB5\u0E9A',
-    6: '\u00A40\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    7: '\u00A400\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    8: '\u00A4000\u00A0\u0EA5\u0EC9\u0EB2\u0E99',
-    9: '\u00A40\u00A0\u0E95\u0EB7\u0EC9',
-    10: '\u00A400\u00A0\u0E95\u0EB7\u0EC9',
-    11: '\u00A4000\u00A0\u0E95\u0EB7\u0EC9',
-    12: '\u00A40\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
-    13: '\u00A400\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
-    14: '\u00A4000\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99',
+    3: {'other': '\u00A40\u00A0\u0E9E\u0EB1\u0E99'},
+    5: {'other': '\u00A4000\u00A0\u0E81\u0EB5\u0E9A'},
+    6: {'other': '\u00A40\u00A0\u0EA5\u0EC9\u0EB2\u0E99'},
+    9: {'other': '\u00A40\u00A0\u0E95\u0EB7\u0EC9'},
+    12: {
+      'other': '\u00A40\u00A0\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99'
+    },
   }),
   // Compact number symbols for locale lt.
   "lt": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0t\u016Bkst.',
-    4: '00\u00A0t\u016Bkst.',
-    5: '000\u00A0t\u016Bkst.',
-    6: '0\u00A0mln.',
-    7: '00\u00A0mln.',
-    8: '000\u00A0mln.',
-    9: '0\u00A0mlrd.',
-    10: '00\u00A0mlrd.',
-    11: '000\u00A0mlrd.',
-    12: '0\u00A0trln.',
-    13: '00\u00A0trln.',
-    14: '000\u00A0trln.',
+    3: {'other': '0\u00A0t\u016Bkst.'},
+    6: {'other': '0\u00A0mln.'},
+    9: {'other': '0\u00A0mlrd.'},
+    12: {'other': '0\u00A0trln.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 t\u016Bkstan\u010Di\u0173',
-    4: '00 t\u016Bkstan\u010Di\u0173',
-    5: '000 t\u016Bkstan\u010Di\u0173',
-    6: '0 milijon\u0173',
-    7: '00 milijon\u0173',
-    8: '000 milijon\u0173',
-    9: '0 milijard\u0173',
-    10: '00 milijard\u0173',
-    11: '000 milijard\u0173',
-    12: '0 trilijon\u0173',
-    13: '00 trilijon\u0173',
-    14: '000 trilijon\u0173',
+    3: {
+      'few': '0 t\u016Bkstan\u010Diai',
+      'many': '0 t\u016Bkstan\u010Dio',
+      'one': '0 t\u016Bkstantis',
+      'other': '0 t\u016Bkstan\u010Di\u0173',
+    },
+    6: {
+      'few': '0 milijonai',
+      'many': '0 milijono',
+      'one': '0 milijonas',
+      'other': '0 milijon\u0173',
+    },
+    9: {
+      'few': '0 milijardai',
+      'many': '0 milijardo',
+      'one': '0 milijardas',
+      'other': '0 milijard\u0173',
+    },
+    12: {
+      'few': '0 trilijonai',
+      'many': '0 trilijono',
+      'one': '0 trilijonas',
+      'other': '0 trilijon\u0173',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0t\u016Bkst.\u00A0\u00A4',
-    4: '00\u00A0t\u016Bkst.\u00A0\u00A4',
-    5: '000\u00A0t\u016Bkst.\u00A0\u00A4',
-    6: '0\u00A0mln.\u00A0\u00A4',
-    7: '00\u00A0mln.\u00A0\u00A4',
-    8: '000\u00A0mln.\u00A0\u00A4',
-    9: '0\u00A0mlrd.\u00A0\u00A4',
-    10: '00\u00A0mlrd.\u00A0\u00A4',
-    11: '000\u00A0mlrd.\u00A0\u00A4',
-    12: '0\u00A0trln.\u00A0\u00A4',
-    13: '00\u00A0trln.\u00A0\u00A4',
-    14: '000\u00A0trln.\u00A0\u00A4',
+    3: {'other': '0\u00A0t\u016Bkst.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mln.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mlrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0trln.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale lv.
   "lv": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0t\u016Bkst.',
-    4: '00\u00A0t\u016Bkst.',
-    5: '000\u00A0t\u016Bkst.',
-    6: '0\u00A0milj.',
-    7: '00\u00A0milj.',
-    8: '000\u00A0milj.',
-    9: '0\u00A0mljrd.',
-    10: '00\u00A0mljrd.',
-    11: '000\u00A0mljrd.',
-    12: '0\u00A0trilj.',
-    13: '00\u00A0trilj.',
-    14: '000\u00A0trilj.',
+    3: {'other': '0\u00A0t\u016Bkst.'},
+    6: {'other': '0\u00A0milj.'},
+    9: {'other': '0\u00A0mljrd.'},
+    12: {'other': '0\u00A0trilj.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 t\u016Bksto\u0161i',
-    4: '00 t\u016Bksto\u0161i',
-    5: '000 t\u016Bksto\u0161i',
-    6: '0 miljoni',
-    7: '00 miljoni',
-    8: '000 miljoni',
-    9: '0 miljardi',
-    10: '00 miljardi',
-    11: '000 miljardi',
-    12: '0 triljoni',
-    13: '00 triljoni',
-    14: '000 triljoni',
+    3: {
+      'one': '0 t\u016Bkstotis',
+      'other': '0 t\u016Bksto\u0161i',
+      'zero': '0 t\u016Bksto\u0161u',
+    },
+    4: {
+      'one': '00 t\u016Bkstotis',
+      'other': '00 t\u016Bksto\u0161i',
+      'zero': '00 t\u016Bksto\u0161i',
+    },
+    6: {
+      'one': '0 miljons',
+      'other': '0 miljoni',
+      'zero': '0 miljonu',
+    },
+    7: {
+      'one': '00 miljons',
+      'other': '00 miljoni',
+      'zero': '00 miljoni',
+    },
+    9: {
+      'one': '0 miljards',
+      'other': '0 miljardi',
+      'zero': '0 miljardu',
+    },
+    10: {
+      'one': '00 miljards',
+      'other': '00 miljardi',
+      'zero': '00 miljardi',
+    },
+    12: {
+      'one': '0 triljons',
+      'other': '0 triljoni',
+      'zero': '0 triljonu',
+    },
+    13: {
+      'one': '00 triljons',
+      'other': '00 triljoni',
+      'zero': '00 triljoni',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0t\u016Bkst.\u00A0\u00A4',
-    4: '00\u00A0t\u016Bkst.\u00A0\u00A4',
-    5: '000\u00A0t\u016Bkst.\u00A0\u00A4',
-    6: '0\u00A0milj.\u00A0\u00A4',
-    7: '00\u00A0milj.\u00A0\u00A4',
-    8: '000\u00A0milj.\u00A0\u00A4',
-    9: '0\u00A0mljrd.\u00A0\u00A4',
-    10: '00\u00A0mljrd.\u00A0\u00A4',
-    11: '000\u00A0mljrd.\u00A0\u00A4',
-    12: '0\u00A0trilj.\u00A0\u00A4',
-    13: '00\u00A0trilj.\u00A0\u00A4',
-    14: '000\u00A0trilj.\u00A0\u00A4',
+    3: {'other': '0\u00A0t\u016Bkst.\u00A0\u00A4'},
+    6: {'other': '0\u00A0milj.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mljrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0trilj.\u00A0\u00A4'},
+  }),
+  // Compact number symbols for locale mg.
+  "mg": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40G'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale mk.
   "mk": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0438\u043B\u0458.',
-    4: '00\u00A0\u0438\u043B\u0458.',
-    5: '000\u00A0\u0438\u043B\u0458.',
-    6: '0\u00A0\u043C\u0438\u043B.',
-    7: '00\u00A0\u043C\u0438\u043B.',
-    8: '000\u00A0\u041C',
-    9: '0\u00A0\u043C\u0438\u043B\u0458.',
-    10: '00\u00A0\u043C\u0438\u043B\u0458.',
-    11: '000\u00A0\u043C\u0438.',
-    12: '0\u00A0\u0431\u0438\u043B.',
-    13: '00\u00A0\u0431\u0438\u043B.',
-    14: '000\u00A0\u0431\u0438\u043B.',
+    3: {'other': '0\u00A0\u0438\u043B\u0458.'},
+    6: {'other': '0\u00A0\u043C\u0438\u043B.'},
+    8: {'other': '000\u00A0\u041C'},
+    9: {'other': '0\u00A0\u043C\u0438\u043B\u0458.'},
+    11: {
+      'one': '000\u00A0\u043C\u0458.',
+      'other': '000\u00A0\u043C\u0438.',
+    },
+    12: {'other': '0\u00A0\u0431\u0438\u043B.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0438\u043B\u0458\u0430\u0434\u0438',
-    4: '00 \u0438\u043B\u0458\u0430\u0434\u0438',
-    5: '000 \u0438\u043B\u0458\u0430\u0434\u0438',
-    6: '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0438',
-    7: '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0438',
-    8: '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0438',
-    9: '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    10: '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    11: '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    12: '0 \u0431\u0438\u043B\u0438\u043E\u043D\u0438',
-    13: '00 \u0431\u0438\u043B\u0438\u043E\u043D\u0438',
-    14: '000 \u0431\u0438\u043B\u0438\u043E\u043D\u0438',
+    3: {
+      'one': '0 \u0438\u043B\u0458\u0430\u0434\u0430',
+      'other': '0 \u0438\u043B\u0458\u0430\u0434\u0438',
+    },
+    6: {
+      'one': '0 \u043C\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0438',
+    },
+    9: {
+      'one': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0430',
+      'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
+    },
+    12: {
+      'one': '0 \u0431\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u0431\u0438\u043B\u0438\u043E\u043D\u0438',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0438\u043B\u0458.\u00A0\u00A4\u00A0',
-    4: '00\u00A0\u0438\u043B\u0458.\u00A0\u00A4\u00A0',
-    5: '000\u00A0\u0438\u043B\u0458.\u00A0\u00A4\u00A0',
-    6: '0\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    7: '00\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    8: '000\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    9: '0\u00A0\u043C\u0438\u043B\u0458.\u00A0\u00A4',
-    10: '00\u00A0\u043C\u0438\u043B\u0458.\u00A0\u00A4',
-    11: '000\u00A0\u043C\u0438\u043B\u0458.\u00A0\u00A4',
-    12: '0\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
-    13: '00\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
-    14: '000\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0438\u043B\u0458.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u0438\u043B.\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u0438\u043B\u0458.\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0431\u0438\u043B.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ml.
   "ml": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0D06\u0D2F\u0D3F\u0D30\u0D02',
-    4: '00 \u0D06\u0D2F\u0D3F\u0D30\u0D02',
-    5: '000 \u0D06\u0D2F\u0D3F\u0D30\u0D02',
-    6: '0 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02',
-    7: '00 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02',
-    8: '000 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02',
-    9: '0 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F',
-    10: '00 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F',
-    11: '000 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F',
-    12: '0 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A',
-    13: '00 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A',
-    14: '000 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A',
+    3: {'other': '0 \u0D06\u0D2F\u0D3F\u0D30\u0D02'},
+    6: {'other': '0 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02'},
+    9: {'other': '0 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F'},
+    12: {'other': '0 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale mn.
   "mn": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u043C\u044F\u043D\u0433\u0430',
-    4: '00\u00A0\u043C\u044F\u043D\u0433\u0430',
-    5: '000\u00A0\u043C\u044F\u043D\u0433\u0430',
-    6: '0\u00A0\u0441\u0430\u044F',
-    7: '00\u00A0\u0441\u0430\u044F',
-    8: '000\u00A0\u0441\u0430\u044F',
-    9: '0\u00A0\u0442\u044D\u0440\u0431\u0443\u043C',
-    10: '00\u00A0\u0442\u044D\u0440\u0431\u0443\u043C',
-    11: '000\u0422',
-    12: '0\u0418\u041D',
-    13: '00\u0418\u041D',
-    14: '000\u0418\u041D',
+    3: {'other': '0\u00A0\u043C\u044F\u043D\u0433\u0430'},
+    6: {'other': '0\u00A0\u0441\u0430\u044F'},
+    9: {'other': '0\u00A0\u0442\u044D\u0440\u0431\u0443\u043C'},
+    11: {'other': '000\u0422'},
+    12: {'other': '0\u0418\u041D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u043C\u044F\u043D\u0433\u0430',
-    4: '00 \u043C\u044F\u043D\u0433\u0430',
-    5: '000 \u043C\u044F\u043D\u0433\u0430',
-    6: '0 \u0441\u0430\u044F',
-    7: '00 \u0441\u0430\u044F',
-    8: '000 \u0441\u0430\u044F',
-    9: '0 \u0442\u044D\u0440\u0431\u0443\u043C',
-    10: '00 \u0442\u044D\u0440\u0431\u0443\u043C',
-    11: '000 \u0442\u044D\u0440\u0431\u0443\u043C',
-    12: '0 \u0438\u0445 \u043D\u0430\u044F\u0434',
-    13: '00 \u0438\u0445 \u043D\u0430\u044F\u0434',
-    14: '000 \u0438\u0445 \u043D\u0430\u044F\u0434',
+    3: {'other': '0 \u043C\u044F\u043D\u0433\u0430'},
+    6: {'other': '0 \u0441\u0430\u044F'},
+    9: {'other': '0 \u0442\u044D\u0440\u0431\u0443\u043C'},
+    12: {'other': '0 \u0438\u0445 \u043D\u0430\u044F\u0434'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u043C\u044F\u043D\u0433\u0430',
-    4: '\u00A4\u00A000\u00A0\u043C\u044F\u043D\u0433\u0430',
-    5: '\u00A4000\u00A0\u043C\u044F\u043D\u0433\u0430',
-    6: '\u00A40\u00A0\u0441\u0430\u044F',
-    7: '\u00A400\u00A0\u0441\u0430\u044F',
-    8: '\u00A4000\u00A0\u0441\u0430\u044F',
-    9: '\u00A40\u00A0\u0442\u044D\u0440\u0431\u0443\u043C',
-    10: '\u00A4\u00A000\u00A0\u0442\u044D\u0440\u0431\u0443\u043C',
-    11: '\u00A4\u00A0000\u00A0\u0442\u044D\u0440\u0431\u0443\u043C',
-    12: '\u00A4\u00A00\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434',
-    13: '\u00A4\u00A000\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434',
-    14: '\u00A4\u00A0000\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434',
+    3: {'other': '\u00A4\u00A00\u00A0\u043C\u044F\u043D\u0433\u0430'},
+    5: {'other': '\u00A4000\u00A0\u043C\u044F\u043D\u0433\u0430'},
+    6: {'other': '\u00A40\u00A0\u0441\u0430\u044F'},
+    9: {'other': '\u00A40\u00A0\u0442\u044D\u0440\u0431\u0443\u043C'},
+    10: {'other': '\u00A4\u00A000\u00A0\u0442\u044D\u0440\u0431\u0443\u043C'},
+    12: {
+      'other': '\u00A4\u00A00\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434'
+    },
   }),
   // Compact number symbols for locale mr.
   "mr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0939',
-    4: '00\u00A0\u0939',
-    5: '0\u00A0\u0932\u093E\u0916',
-    6: '00\u00A0\u0932\u093E\u0916',
-    7: '0\u00A0\u0915\u094B\u091F\u0940',
-    8: '00\u00A0\u0915\u094B\u091F\u0940',
-    9: '0\u00A0\u0905\u092C\u094D\u091C',
-    10: '00\u00A0\u0905\u092C\u094D\u091C',
-    11: '0\u00A0\u0916\u0930\u094D\u0935',
-    12: '00\u00A0\u0916\u0930\u094D\u0935',
-    13: '0\u00A0\u092A\u0926\u094D\u092E',
-    14: '00\u00A0\u092A\u0926\u094D\u092E',
+    3: {'other': '0\u00A0\u0939'},
+    5: {'other': '0\u00A0\u0932\u093E\u0916'},
+    7: {'other': '0\u00A0\u0915\u094B\u091F\u0940'},
+    9: {'other': '0\u00A0\u0905\u092C\u094D\u091C'},
+    11: {'other': '0\u00A0\u0916\u0930\u094D\u0935'},
+    13: {'other': '0\u00A0\u092A\u0926\u094D\u092E'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0939\u091C\u093E\u0930',
-    4: '00 \u0939\u091C\u093E\u0930',
-    5: '0 \u0932\u093E\u0916',
-    6: '00 \u0932\u093E\u0916',
-    7: '0 \u0915\u094B\u091F\u0940',
-    8: '00 \u0915\u094B\u091F\u0940',
-    9: '0 \u0905\u092C\u094D\u091C',
-    10: '00 \u0905\u092C\u094D\u091C',
-    11: '0 \u0916\u0930\u094D\u0935',
-    12: '00 \u0916\u0930\u094D\u0935',
-    13: '0 \u092A\u0926\u094D\u092E',
-    14: '00 \u092A\u0926\u094D\u092E',
+    3: {'other': '0 \u0939\u091C\u093E\u0930'},
+    5: {'other': '0 \u0932\u093E\u0916'},
+    7: {'other': '0 \u0915\u094B\u091F\u0940'},
+    9: {'other': '0 \u0905\u092C\u094D\u091C'},
+    11: {'other': '0 \u0916\u0930\u094D\u0935'},
+    13: {'other': '0 \u092A\u0926\u094D\u092E'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u00A0\u0939',
-    4: '\u00A400\u00A0\u0939',
-    5: '\u00A40\u00A0\u0932\u093E\u0916',
-    6: '\u00A400\u00A0\u0932\u093E\u0916',
-    7: '\u00A40\u00A0\u0915\u094B\u091F\u0940',
-    8: '\u00A400\u00A0\u0915\u094B\u091F\u0940',
-    9: '\u00A40\u00A0\u0905\u092C\u094D\u091C',
-    10: '\u00A400\u00A0\u0905\u092C\u094D\u091C',
-    11: '\u00A40\u00A0\u0916\u0930\u094D\u0935',
-    12: '\u00A400\u00A0\u0916\u0930\u094D\u0935',
-    13: '\u00A40\u00A0\u092A\u0926\u094D\u092E',
-    14: '\u00A400\u00A0\u092A\u0926\u094D\u092E',
+    3: {'other': '\u00A40\u00A0\u0939'},
+    5: {'other': '\u00A40\u00A0\u0932\u093E\u0916'},
+    7: {'other': '\u00A40\u00A0\u0915\u094B\u091F\u0940'},
+    9: {'other': '\u00A40\u00A0\u0905\u092C\u094D\u091C'},
+    11: {'other': '\u00A40\u00A0\u0916\u0930\u094D\u0935'},
+    13: {'other': '\u00A40\u00A0\u092A\u0926\u094D\u092E'},
   }),
   // Compact number symbols for locale ms.
   "ms": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0J',
-    7: '00J',
-    8: '000J',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0J'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ribu',
-    4: '00 ribu',
-    5: '000 ribu',
-    6: '0 juta',
-    7: '00 juta',
-    8: '000 juta',
-    9: '0 bilion',
-    10: '00 bilion',
-    11: '000 bilion',
-    12: '0 trilion',
-    13: '00 trilion',
-    14: '000 trilion',
+    3: {'other': '0 ribu'},
+    6: {'other': '0 juta'},
+    9: {'other': '0 bilion'},
+    12: {'other': '0 trilion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40J',
-    7: '\u00A400J',
-    8: '\u00A4000J',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40J'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale mt.
   "mt": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40G',
-    10: '\u00A400G',
-    11: '\u00A4000G',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40G'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale my.
   "my": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u1011\u1031\u102C\u1004\u103A',
-    4: '0\u101E\u1031\u102C\u1004\u103A\u1038',
-    5: '0\u101E\u102D\u1014\u103A\u1038',
-    6: '0\u101E\u1014\u103A\u1038',
-    7: '0\u1000\u102F\u100B\u1031',
-    8: '00\u1000\u102F\u100B\u1031',
-    9: '\u1000\u102F\u100B\u1031000',
-    10: '\u1000\u102F\u100B\u10310\u1011',
-    11: '\u1000\u102F\u100B\u10310\u101E',
-    12: '\u100B\u10310\u101E\u102D\u1014\u103A\u1038',
-    13: '\u100B\u10310\u101E\u1014\u103A\u1038',
-    14: '0\u1000\u1031\u102C\u100B\u102D',
+    3: {'other': '0\u1011\u1031\u102C\u1004\u103A'},
+    4: {'other': '0\u101E\u1031\u102C\u1004\u103A\u1038'},
+    5: {'other': '0\u101E\u102D\u1014\u103A\u1038'},
+    6: {'other': '0\u101E\u1014\u103A\u1038'},
+    7: {'other': '0\u1000\u102F\u100B\u1031'},
+    9: {'other': '\u1000\u102F\u100B\u1031000'},
+    10: {'other': '\u1000\u102F\u100B\u10310\u1011'},
+    11: {'other': '\u1000\u102F\u100B\u10310\u101E'},
+    12: {'other': '\u100B\u10310\u101E\u102D\u1014\u103A\u1038'},
+    13: {'other': '\u100B\u10310\u101E\u1014\u103A\u1038'},
+    14: {'other': '0\u1000\u1031\u102C\u100B\u102D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0\u1011\u1031\u102C\u1004\u103A',
-    4: '0\u101E\u1031\u102C\u1004\u103A\u1038',
-    5: '0\u101E\u102D\u1014\u103A\u1038',
-    6: '0\u101E\u1014\u103A\u1038',
-    7: '0\u1000\u102F\u100B\u1031',
-    8: '00\u1000\u102F\u100B\u1031',
-    9: '\u1000\u102F\u100B\u1031000',
-    10: '\u1000\u102F\u100B\u10310000',
-    11: '\u1000\u102F\u100B\u10310\u101E\u1031\u102C\u1004\u103A\u1038',
-    12: '\u1000\u102F\u100B\u10310\u101E\u102D\u1014\u103A\u1038',
-    13: '\u1000\u102F\u100B\u10310\u101E\u1014\u103A\u1038',
-    14: '0\u1000\u1031\u102C\u100B\u102D',
+    3: {'other': '0\u1011\u1031\u102C\u1004\u103A'},
+    4: {'other': '0\u101E\u1031\u102C\u1004\u103A\u1038'},
+    5: {'other': '0\u101E\u102D\u1014\u103A\u1038'},
+    6: {'other': '0\u101E\u1014\u103A\u1038'},
+    7: {'other': '0\u1000\u102F\u100B\u1031'},
+    9: {'other': '\u1000\u102F\u100B\u1031000'},
+    11: {
+      'other': '\u1000\u102F\u100B\u10310\u101E\u1031\u102C\u1004\u103A\u1038'
+    },
+    12: {'other': '\u1000\u102F\u100B\u10310\u101E\u102D\u1014\u103A\u1038'},
+    13: {'other': '\u1000\u102F\u100B\u10310\u101E\u1014\u103A\u1038'},
+    14: {'other': '0\u1000\u1031\u102C\u100B\u102D'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u1011\u1031\u102C\u1004\u103A',
-    4: '\u00A4\u00A00\u101E\u1031\u102C\u1004\u103A\u1038',
-    5: '\u00A4\u00A00\u101E\u102D\u1014\u103A\u1038',
-    6: '\u00A4\u00A00\u101E\u1014\u103A\u1038',
-    7: '\u00A4\u00A00\u1000\u102F\u100B\u1031',
-    8: '\u00A4\u00A000\u1000\u102F\u100B\u1031',
-    9: '\u00A4\u00A0\u1000\u102F\u100B\u1031000',
-    10: '\u00A4\u00A0\u1000\u102F\u100B\u10310000',
-    11: '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u1031\u102C\u1004\u103A\u1038',
-    12: '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u102D\u1014\u103A\u1038',
-    13: '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u1014\u103A\u1038',
-    14: '\u00A4\u00A00\u1000\u1031\u102C\u100B\u102D',
+    3: {'other': '\u00A4\u00A00\u1011\u1031\u102C\u1004\u103A'},
+    4: {'other': '\u00A4\u00A00\u101E\u1031\u102C\u1004\u103A\u1038'},
+    5: {'other': '\u00A4\u00A00\u101E\u102D\u1014\u103A\u1038'},
+    6: {'other': '\u00A4\u00A00\u101E\u1014\u103A\u1038'},
+    7: {'other': '\u00A4\u00A00\u1000\u102F\u100B\u1031'},
+    9: {'other': '\u00A4\u00A0\u1000\u102F\u100B\u1031000'},
+    11: {
+      'other':
+          '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u1031\u102C\u1004\u103A\u1038'
+    },
+    12: {
+      'other':
+          '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u102D\u1014\u103A\u1038'
+    },
+    13: {
+      'other': '\u00A4\u00A0\u1000\u102F\u100B\u10310\u101E\u1014\u103A\u1038'
+    },
+    14: {'other': '\u00A4\u00A00\u1000\u1031\u102C\u100B\u102D'},
   }),
   // Compact number symbols for locale nb.
   "nb": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0k',
-    4: '00k',
-    5: '000k',
-    6: '0\u00A0mill.',
-    7: '00\u00A0mill.',
-    8: '000\u00A0mill.',
-    9: '0\u00A0mrd.',
-    10: '00\u00A0mrd.',
-    11: '000\u00A0mrd.',
-    12: '0\u00A0bill.',
-    13: '00\u00A0bill.',
-    14: '000\u00A0bill.',
+    3: {'other': '0k'},
+    6: {'other': '0\u00A0mill.'},
+    9: {'other': '0\u00A0mrd.'},
+    12: {'other': '0\u00A0bill.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tusen',
-    4: '00 tusen',
-    5: '000 tusen',
-    6: '0 millioner',
-    7: '00 millioner',
-    8: '000 millioner',
-    9: '0 milliarder',
-    10: '00 milliarder',
-    11: '000 milliarder',
-    12: '0 billioner',
-    13: '00 billioner',
-    14: '000 billioner',
+    3: {'other': '0 tusen'},
+    6: {
+      'one': '0 million',
+      'other': '0 millioner',
+    },
+    7: {'other': '00 millioner'},
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliarder',
+    },
+    10: {'other': '00 milliarder'},
+    12: {
+      'one': '0 billion',
+      'other': '0 billioner',
+    },
+    13: {'other': '00 billioner'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00k',
-    4: '\u00A4\u00A000k',
-    5: '\u00A4\u00A0000k',
-    6: '\u00A4\u00A00\u00A0mill.',
-    7: '\u00A4\u00A000\u00A0mill.',
-    8: '\u00A4\u00A0000\u00A0mill.',
-    9: '\u00A4\u00A00\u00A0mrd.',
-    10: '\u00A4\u00A000\u00A0mrd.',
-    11: '\u00A4\u00A0000\u00A0mrd.',
-    12: '\u00A4\u00A00\u00A0bill.',
-    13: '\u00A4\u00A000\u00A0bill.',
-    14: '\u00A4\u00A0000\u00A0bill.',
+    3: {'other': '\u00A4\u00A00k'},
+    6: {'other': '\u00A4\u00A00\u00A0mill.'},
+    9: {'other': '\u00A4\u00A00\u00A0mrd.'},
+    12: {'other': '\u00A4\u00A00\u00A0bill.'},
   }),
   // Compact number symbols for locale ne.
   "ne": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0939\u091C\u093E\u0930',
-    4: '00\u00A0\u0939\u091C\u093E\u0930',
-    5: '0\u00A0\u0932\u093E\u0916',
-    6: '00\u00A0\u0932\u093E\u0916',
-    7: '0\u00A0\u0915\u0930\u094B\u0921',
-    8: '00\u00A0\u0915\u0930\u094B\u0921',
-    9: '0\u00A0\u0905\u0930\u092C',
-    10: '00\u00A0\u0905\u0930\u092C',
-    11: '0\u00A0\u0916\u0930\u092C',
-    12: '00\u00A0\u0916\u0930\u092C',
-    13: '0\u00A0\u0936\u0902\u0916',
-    14: '00\u00A0\u0936\u0902\u0916',
+    3: {'other': '0\u00A0\u0939\u091C\u093E\u0930'},
+    5: {'other': '0\u00A0\u0932\u093E\u0916'},
+    7: {'other': '0\u00A0\u0915\u0930\u094B\u0921'},
+    9: {'other': '0\u00A0\u0905\u0930\u092C'},
+    11: {'other': '0\u00A0\u0916\u0930\u092C'},
+    13: {'other': '0\u00A0\u0936\u0902\u0916'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0939\u091C\u093E\u0930',
-    4: '00 \u0939\u091C\u093E\u0930',
-    5: '0 \u0932\u093E\u0916',
-    6: '0 \u0915\u0930\u094B\u0921',
-    7: '00 \u0915\u0930\u094B\u0921',
-    8: '000 \u0915\u0930\u094B\u0921',
-    9: '0 \u0905\u0930\u092C',
-    10: '00 \u0905\u0930\u092C',
-    11: '000 \u0905\u0930\u092C',
-    12: '00 \u0916\u0930\u092C',
-    13: '0 \u0936\u0902\u0916',
-    14: '00 \u0936\u0902\u0916',
+    3: {'other': '0 \u0939\u091C\u093E\u0930'},
+    5: {'other': '0 \u0932\u093E\u0916'},
+    6: {'other': '0 \u0915\u0930\u094B\u0921'},
+    9: {'other': '0 \u0905\u0930\u092C'},
+    12: {'other': '00 \u0916\u0930\u092C'},
+    13: {'other': '0 \u0936\u0902\u0916'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u0939\u091C\u093E\u0930',
-    4: '\u00A4\u00A000\u00A0\u0939\u091C\u093E\u0930',
-    5: '\u00A4\u00A00\u00A0\u0932\u093E\u0916',
-    6: '\u00A4\u00A000\u00A0\u0932\u093E\u0916',
-    7: '\u00A4\u00A00\u00A0\u0915\u0930\u094B\u0921',
-    8: '\u00A4\u00A000\u00A0\u0915\u0930\u094B\u0921',
-    9: '\u00A4\u00A00\u00A0\u0905\u0930\u092C',
-    10: '\u00A4\u00A000\u00A0\u0905\u0930\u092C',
-    11: '\u00A4\u00A00\u00A0\u0916\u0930\u092C',
-    12: '\u00A4\u00A000\u00A0\u0916\u0930\u092C',
-    13: '\u00A4\u00A00\u00A0\u0936\u0902\u0916',
-    14: '\u00A4\u00A000\u00A0\u0936\u0902\u0916',
+    3: {'other': '\u00A4\u00A00\u00A0\u0939\u091C\u093E\u0930'},
+    5: {'other': '\u00A4\u00A00\u00A0\u0932\u093E\u0916'},
+    7: {'other': '\u00A4\u00A00\u00A0\u0915\u0930\u094B\u0921'},
+    9: {'other': '\u00A4\u00A00\u00A0\u0905\u0930\u092C'},
+    11: {'other': '\u00A4\u00A00\u00A0\u0916\u0930\u092C'},
+    13: {'other': '\u00A4\u00A00\u00A0\u0936\u0902\u0916'},
   }),
   // Compact number symbols for locale nl.
   "nl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0\u00A0mln.',
-    7: '00\u00A0mln.',
-    8: '000\u00A0mln.',
-    9: '0\u00A0mld.',
-    10: '00\u00A0mld.',
-    11: '000\u00A0mld.',
-    12: '0\u00A0bln.',
-    13: '00\u00A0bln.',
-    14: '000\u00A0bln.',
+    3: {'other': '0K'},
+    6: {'other': '0\u00A0mln.'},
+    9: {'other': '0\u00A0mld.'},
+    12: {'other': '0\u00A0bln.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 duizend',
-    4: '00 duizend',
-    5: '000 duizend',
-    6: '0 miljoen',
-    7: '00 miljoen',
-    8: '000 miljoen',
-    9: '0 miljard',
-    10: '00 miljard',
-    11: '000 miljard',
-    12: '0 biljoen',
-    13: '00 biljoen',
-    14: '000 biljoen',
+    3: {'other': '0 duizend'},
+    6: {'other': '0 miljoen'},
+    9: {'other': '0 miljard'},
+    12: {'other': '0 biljoen'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00K',
-    4: '\u00A4\u00A000K',
-    5: '\u00A4\u00A0000K',
-    6: '\u00A4\u00A00\u00A0mln.',
-    7: '\u00A4\u00A000\u00A0mln.',
-    8: '\u00A4\u00A0000\u00A0mln.',
-    9: '\u00A4\u00A00\u00A0mld.',
-    10: '\u00A4\u00A000\u00A0mld.',
-    11: '\u00A4\u00A0000\u00A0mld.',
-    12: '\u00A4\u00A00\u00A0bln.',
-    13: '\u00A4\u00A000\u00A0bln.',
-    14: '\u00A4\u00A0000\u00A0bln.',
+    3: {'other': '\u00A4\u00A00K'},
+    6: {'other': '\u00A4\u00A00\u00A0mln.'},
+    9: {'other': '\u00A4\u00A00\u00A0mld.'},
+    12: {'other': '\u00A4\u00A00\u00A0bln.'},
   }),
   // Compact number symbols for locale no.
   "no": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0k',
-    4: '00k',
-    5: '000k',
-    6: '0\u00A0mill.',
-    7: '00\u00A0mill.',
-    8: '000\u00A0mill.',
-    9: '0\u00A0mrd.',
-    10: '00\u00A0mrd.',
-    11: '000\u00A0mrd.',
-    12: '0\u00A0bill.',
-    13: '00\u00A0bill.',
-    14: '000\u00A0bill.',
+    3: {'other': '0k'},
+    6: {'other': '0\u00A0mill.'},
+    9: {'other': '0\u00A0mrd.'},
+    12: {'other': '0\u00A0bill.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tusen',
-    4: '00 tusen',
-    5: '000 tusen',
-    6: '0 millioner',
-    7: '00 millioner',
-    8: '000 millioner',
-    9: '0 milliarder',
-    10: '00 milliarder',
-    11: '000 milliarder',
-    12: '0 billioner',
-    13: '00 billioner',
-    14: '000 billioner',
+    3: {'other': '0 tusen'},
+    6: {
+      'one': '0 million',
+      'other': '0 millioner',
+    },
+    7: {'other': '00 millioner'},
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliarder',
+    },
+    10: {'other': '00 milliarder'},
+    12: {
+      'one': '0 billion',
+      'other': '0 billioner',
+    },
+    13: {'other': '00 billioner'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00k',
-    4: '\u00A4\u00A000k',
-    5: '\u00A4\u00A0000k',
-    6: '\u00A4\u00A00\u00A0mill.',
-    7: '\u00A4\u00A000\u00A0mill.',
-    8: '\u00A4\u00A0000\u00A0mill.',
-    9: '\u00A4\u00A00\u00A0mrd.',
-    10: '\u00A4\u00A000\u00A0mrd.',
-    11: '\u00A4\u00A0000\u00A0mrd.',
-    12: '\u00A4\u00A00\u00A0bill.',
-    13: '\u00A4\u00A000\u00A0bill.',
-    14: '\u00A4\u00A0000\u00A0bill.',
+    3: {'other': '\u00A4\u00A00k'},
+    6: {'other': '\u00A4\u00A00\u00A0mill.'},
+    9: {'other': '\u00A4\u00A00\u00A0mrd.'},
+    12: {'other': '\u00A4\u00A00\u00A0bill.'},
   }),
   // Compact number symbols for locale no_NO.
   "no_NO": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0k',
-    4: '00k',
-    5: '000k',
-    6: '0\u00A0mill.',
-    7: '00\u00A0mill.',
-    8: '000\u00A0mill.',
-    9: '0\u00A0mrd.',
-    10: '00\u00A0mrd.',
-    11: '000\u00A0mrd.',
-    12: '0\u00A0bill.',
-    13: '00\u00A0bill.',
-    14: '000\u00A0bill.',
+    3: {'other': '0k'},
+    6: {'other': '0\u00A0mill.'},
+    9: {'other': '0\u00A0mrd.'},
+    12: {'other': '0\u00A0bill.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tusen',
-    4: '00 tusen',
-    5: '000 tusen',
-    6: '0 millioner',
-    7: '00 millioner',
-    8: '000 millioner',
-    9: '0 milliarder',
-    10: '00 milliarder',
-    11: '000 milliarder',
-    12: '0 billioner',
-    13: '00 billioner',
-    14: '000 billioner',
+    3: {'other': '0 tusen'},
+    6: {
+      'one': '0 million',
+      'other': '0 millioner',
+    },
+    7: {'other': '00 millioner'},
+    9: {
+      'one': '0 milliard',
+      'other': '0 milliarder',
+    },
+    10: {'other': '00 milliarder'},
+    12: {
+      'one': '0 billion',
+      'other': '0 billioner',
+    },
+    13: {'other': '00 billioner'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00k',
-    4: '\u00A4\u00A000k',
-    5: '\u00A4\u00A0000k',
-    6: '\u00A4\u00A00\u00A0mill.',
-    7: '\u00A4\u00A000\u00A0mill.',
-    8: '\u00A4\u00A0000\u00A0mill.',
-    9: '\u00A4\u00A00\u00A0mrd.',
-    10: '\u00A4\u00A000\u00A0mrd.',
-    11: '\u00A4\u00A0000\u00A0mrd.',
-    12: '\u00A4\u00A00\u00A0bill.',
-    13: '\u00A4\u00A000\u00A0bill.',
-    14: '\u00A4\u00A0000\u00A0bill.',
+    3: {'other': '\u00A4\u00A00k'},
+    6: {'other': '\u00A4\u00A00\u00A0mill.'},
+    9: {'other': '\u00A4\u00A00\u00A0mrd.'},
+    12: {'other': '\u00A4\u00A00\u00A0bill.'},
+  }),
+  // Compact number symbols for locale nyn.
+  "nyn": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
+  }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40G'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale or.
   "or": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u0B39',
-    4: '00\u0B39',
-    5: '000\u0B39',
-    6: '0\u0B28\u0B3F',
-    7: '00\u0B28\u0B3F',
-    8: '000\u0B28\u0B3F',
-    9: '0\u0B2C\u0B3F',
-    10: '00\u0B2C\u0B3F',
-    11: '000\u0B2C\u0B3F',
-    12: '0\u0B1F\u0B4D\u0B30\u0B3F',
-    13: '00\u0B1F\u0B4D\u0B30\u0B3F',
-    14: '000\u0B1F\u0B4D\u0B30\u0B3F',
+    3: {'other': '0\u0B39'},
+    6: {'other': '0\u0B28\u0B3F'},
+    9: {'other': '0\u0B2C\u0B3F'},
+    12: {'other': '0\u0B1F\u0B4D\u0B30\u0B3F'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0B39\u0B1C\u0B3E\u0B30',
-    4: '00 \u0B39\u0B1C\u0B3E\u0B30',
-    5: '000 \u0B39\u0B1C\u0B3E\u0B30',
-    6: '0 \u0B28\u0B3F\u0B5F\u0B41\u0B24',
-    7: '00 \u0B28\u0B3F\u0B5F\u0B41\u0B24',
-    8: '000 \u0B28\u0B3F\u0B5F\u0B41\u0B24',
-    9: '0 \u0B36\u0B39\u0B15\u0B4B\u0B1F\u0B3F',
-    10: '00 \u0B36\u0B39\u0B15\u0B4B\u0B1F\u0B3F',
-    11: '000 \u0B36\u0B39\u0B15\u0B4B\u0B1F\u0B3F',
-    12: '0 \u0B32\u0B15\u0B4D\u0B37\u0B15\u0B4B\u0B1F\u0B3F',
-    13: '00 \u0B32\u0B15\u0B4D\u0B37\u0B15\u0B4B\u0B1F\u0B3F',
-    14: '000 \u0B32\u0B15\u0B4D\u0B37\u0B15\u0B4B\u0B1F\u0B3F',
+    3: {'other': '0 \u0B39\u0B1C\u0B3E\u0B30'},
+    6: {'other': '0 \u0B28\u0B3F\u0B5F\u0B41\u0B24'},
+    9: {'other': '0 \u0B36\u0B39\u0B15\u0B4B\u0B1F\u0B3F'},
+    12: {'other': '0 \u0B32\u0B15\u0B4D\u0B37\u0B15\u0B4B\u0B1F\u0B3F'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u0B39',
-    4: '\u00A400\u0B39',
-    5: '\u00A4000\u0B39',
-    6: '\u00A40\u0B28\u0B3F',
-    7: '\u00A400\u0B28\u0B3F',
-    8: '\u00A4000\u0B28\u0B3F',
-    9: '\u00A40\u0B2C\u0B3F',
-    10: '\u00A400\u0B2C\u0B3F',
-    11: '\u00A4000\u0B2C\u0B3F',
-    12: '\u00A40\u0B1F\u0B4D\u0B30\u0B3F',
-    13: '\u00A400\u0B1F\u0B4D\u0B30\u0B3F',
-    14: '\u00A4000\u0B1F\u0B4D\u0B30\u0B3F',
+    3: {'other': '\u00A40\u0B39'},
+    6: {'other': '\u00A40\u0B28\u0B3F'},
+    9: {'other': '\u00A40\u0B2C\u0B3F'},
+    12: {'other': '\u00A40\u0B1F\u0B4D\u0B30\u0B3F'},
   }),
   // Compact number symbols for locale pa.
   "pa": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    4: '00\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    5: '0\u00A0\u0A32\u0A71\u0A16',
-    6: '00\u00A0\u0A32\u0A71\u0A16',
-    7: '0\u00A0\u0A15\u0A30\u0A4B\u0A5C',
-    8: '00\u00A0\u0A15\u0A30\u0A4B\u0A5C',
-    9: '0\u00A0\u0A05\u0A30\u0A2C',
-    10: '00\u00A0\u0A05\u0A30\u0A2C',
-    11: '0\u00A0\u0A16\u0A30\u0A2C',
-    12: '00\u00A0\u0A16\u0A30\u0A2C',
-    13: '0\u00A0\u0A28\u0A40\u0A32',
-    14: '00\u00A0\u0A28\u0A40\u0A32',
+    3: {'other': '0\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30'},
+    5: {'other': '0\u00A0\u0A32\u0A71\u0A16'},
+    7: {'other': '0\u00A0\u0A15\u0A30\u0A4B\u0A5C'},
+    9: {'other': '0\u00A0\u0A05\u0A30\u0A2C'},
+    11: {'other': '0\u00A0\u0A16\u0A30\u0A2C'},
+    13: {'other': '0\u00A0\u0A28\u0A40\u0A32'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    4: '00 \u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    5: '0 \u0A32\u0A71\u0A16',
-    6: '00 \u0A32\u0A71\u0A16',
-    7: '0 \u0A15\u0A30\u0A4B\u0A5C',
-    8: '00 \u0A15\u0A30\u0A4B\u0A5C',
-    9: '0 \u0A05\u0A30\u0A2C',
-    10: '00 \u0A05\u0A30\u0A2C',
-    11: '0 \u0A16\u0A30\u0A2C',
-    12: '00 \u0A16\u0A30\u0A2C',
-    13: '0 \u0A28\u0A40\u0A32',
-    14: '00 \u0A28\u0A40\u0A32',
+    3: {'other': '0 \u0A39\u0A1C\u0A3C\u0A3E\u0A30'},
+    5: {'other': '0 \u0A32\u0A71\u0A16'},
+    7: {'other': '0 \u0A15\u0A30\u0A4B\u0A5C'},
+    9: {'other': '0 \u0A05\u0A30\u0A2C'},
+    11: {'other': '0 \u0A16\u0A30\u0A2C'},
+    13: {'other': '0 \u0A28\u0A40\u0A32'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    4: '\u00A4\u00A000\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30',
-    5: '\u00A4\u00A00\u00A0\u0A32\u0A71\u0A16',
-    6: '\u00A4\u00A000\u00A0\u0A32\u0A71\u0A16',
-    7: '\u00A4\u00A00\u00A0\u0A15\u0A30\u0A4B\u0A5C',
-    8: '\u00A4\u00A000\u00A0\u0A15\u0A30\u0A4B\u0A5C',
-    9: '\u00A4\u00A00\u00A0\u0A05\u0A30\u0A2C',
-    10: '\u00A4\u00A000\u00A0\u0A05\u0A30\u0A2C',
-    11: '\u00A4\u00A00\u00A0\u0A16\u0A30\u0A2C',
-    12: '\u00A4\u00A000\u00A0\u0A16\u0A30\u0A2C',
-    13: '\u00A4\u00A00\u00A0\u0A28\u0A40\u0A32',
-    14: '\u00A4\u00A000\u00A0\u0A28\u0A40\u0A32',
+    3: {'other': '\u00A4\u00A00\u00A0\u0A39\u0A1C\u0A3C\u0A3E\u0A30'},
+    5: {'other': '\u00A4\u00A00\u00A0\u0A32\u0A71\u0A16'},
+    7: {'other': '\u00A4\u00A00\u00A0\u0A15\u0A30\u0A4B\u0A5C'},
+    9: {'other': '\u00A4\u00A00\u00A0\u0A05\u0A30\u0A2C'},
+    11: {'other': '\u00A4\u00A00\u00A0\u0A16\u0A30\u0A2C'},
+    13: {'other': '\u00A4\u00A00\u00A0\u0A28\u0A40\u0A32'},
   }),
   // Compact number symbols for locale pl.
   "pl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tys.',
-    4: '00\u00A0tys.',
-    5: '000\u00A0tys.',
-    6: '0\u00A0mln',
-    7: '00\u00A0mln',
-    8: '000\u00A0mln',
-    9: '0\u00A0mld',
-    10: '00\u00A0mld',
-    11: '000\u00A0mld',
-    12: '0\u00A0bln',
-    13: '00\u00A0bln',
-    14: '000\u00A0bln',
+    3: {'other': '0\u00A0tys.'},
+    6: {'other': '0\u00A0mln'},
+    9: {'other': '0\u00A0mld'},
+    12: {'other': '0\u00A0bln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tysi\u0105ca',
-    4: '00 tysi\u0105ca',
-    5: '000 tysi\u0105ca',
-    6: '0 miliona',
-    7: '00 miliona',
-    8: '000 miliona',
-    9: '0 miliarda',
-    10: '00 miliarda',
-    11: '000 miliarda',
-    12: '0 biliona',
-    13: '00 biliona',
-    14: '000 biliona',
+    3: {
+      'few': '0 tysi\u0105ce',
+      'many': '0 tysi\u0119cy',
+      'one': '0 tysi\u0105c',
+      'other': '0 tysi\u0105ca',
+    },
+    6: {
+      'few': '0 miliony',
+      'many': '0 milion\u00F3w',
+      'one': '0 milion',
+      'other': '0 miliona',
+    },
+    9: {
+      'few': '0 miliardy',
+      'many': '0 miliard\u00F3w',
+      'one': '0 miliard',
+      'other': '0 miliarda',
+    },
+    12: {
+      'few': '0 biliony',
+      'many': '0 bilion\u00F3w',
+      'one': '0 bilion',
+      'other': '0 biliona',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tys.\u00A0\u00A4',
-    4: '00\u00A0tys.\u00A0\u00A4',
-    5: '000\u00A0tys.\u00A0\u00A4',
-    6: '0\u00A0mln\u00A0\u00A4',
-    7: '00\u00A0mln\u00A0\u00A4',
-    8: '000\u00A0mln\u00A0\u00A4',
-    9: '0\u00A0mld\u00A0\u00A4',
-    10: '00\u00A0mld\u00A0\u00A4',
-    11: '000\u00A0mld\u00A0\u00A4',
-    12: '0\u00A0bln\u00A0\u00A4',
-    13: '00\u00A0bln\u00A0\u00A4',
-    14: '000\u00A0bln\u00A0\u00A4',
+    3: {'other': '0\u00A0tys.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mln\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld\u00A0\u00A4'},
+    12: {'other': '0\u00A0bln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ps.
   "ps": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    11: {
+      'one': '000G',
+      'other': '000B',
+    },
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0G',
-    10: '00G',
-    11: '000G',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0G'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0K\u00A0\u00A4',
-    4: '00K\u00A0\u00A4',
-    5: '000K\u00A0\u00A4',
-    6: '0M\u00A0\u00A4',
-    7: '00M\u00A0\u00A4',
-    8: '000M\u00A0\u00A4',
-    9: '0G\u00A0\u00A4',
-    10: '00G\u00A0\u00A4',
-    11: '000G\u00A0\u00A4',
-    12: '0T\u00A0\u00A4',
-    13: '00T\u00A0\u00A4',
-    14: '000T\u00A0\u00A4',
+    3: {'other': '0K\u00A0\u00A4'},
+    6: {'other': '0M\u00A0\u00A4'},
+    9: {'other': '0G\u00A0\u00A4'},
+    10: {
+      'one': '00G\u00A0\u00A4',
+      'other': '\u00A400B',
+    },
+    11: {'other': '\u00A4000B'},
+    12: {'other': '0T\u00A0\u00A4'},
   }),
   // Compact number symbols for locale pt.
   "pt": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mil',
-    4: '00\u00A0mil',
-    5: '000\u00A0mil',
-    6: '0\u00A0mi',
-    7: '00\u00A0mi',
-    8: '000\u00A0mi',
-    9: '0\u00A0bi',
-    10: '00\u00A0bi',
-    11: '000\u00A0bi',
-    12: '0\u00A0tri',
-    13: '00\u00A0tri',
-    14: '000\u00A0tri',
+    3: {'other': '0\u00A0mil'},
+    6: {'other': '0\u00A0mi'},
+    9: {'other': '0\u00A0bi'},
+    12: {'other': '0\u00A0tri'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 milh\u00F5es',
-    7: '00 milh\u00F5es',
-    8: '000 milh\u00F5es',
-    9: '0 bilh\u00F5es',
-    10: '00 bilh\u00F5es',
-    11: '000 bilh\u00F5es',
-    12: '0 trilh\u00F5es',
-    13: '00 trilh\u00F5es',
-    14: '000 trilh\u00F5es',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 milh\u00E3o',
+      'other': '0 milh\u00F5es',
+    },
+    9: {
+      'one': '0 bilh\u00E3o',
+      'other': '0 bilh\u00F5es',
+    },
+    12: {
+      'one': '0 trilh\u00E3o',
+      'other': '0 trilh\u00F5es',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0mil',
-    4: '\u00A4\u00A000\u00A0mil',
-    5: '\u00A4\u00A0000\u00A0mil',
-    6: '\u00A4\u00A00\u00A0mi',
-    7: '\u00A4\u00A000\u00A0mi',
-    8: '\u00A4\u00A0000\u00A0mi',
-    9: '\u00A4\u00A00\u00A0bi',
-    10: '\u00A4\u00A000\u00A0bi',
-    11: '\u00A4\u00A0000\u00A0bi',
-    12: '\u00A4\u00A00\u00A0tri',
-    13: '\u00A4\u00A000\u00A0tri',
-    14: '\u00A4\u00A0000\u00A0tri',
+    3: {'other': '\u00A4\u00A00\u00A0mil'},
+    6: {'other': '\u00A4\u00A00\u00A0mi'},
+    9: {'other': '\u00A4\u00A00\u00A0bi'},
+    12: {'other': '\u00A4\u00A00\u00A0tri'},
   }),
   // Compact number symbols for locale pt_BR.
   "pt_BR": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mil',
-    4: '00\u00A0mil',
-    5: '000\u00A0mil',
-    6: '0\u00A0mi',
-    7: '00\u00A0mi',
-    8: '000\u00A0mi',
-    9: '0\u00A0bi',
-    10: '00\u00A0bi',
-    11: '000\u00A0bi',
-    12: '0\u00A0tri',
-    13: '00\u00A0tri',
-    14: '000\u00A0tri',
+    3: {'other': '0\u00A0mil'},
+    6: {'other': '0\u00A0mi'},
+    9: {'other': '0\u00A0bi'},
+    12: {'other': '0\u00A0tri'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 milh\u00F5es',
-    7: '00 milh\u00F5es',
-    8: '000 milh\u00F5es',
-    9: '0 bilh\u00F5es',
-    10: '00 bilh\u00F5es',
-    11: '000 bilh\u00F5es',
-    12: '0 trilh\u00F5es',
-    13: '00 trilh\u00F5es',
-    14: '000 trilh\u00F5es',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 milh\u00E3o',
+      'other': '0 milh\u00F5es',
+    },
+    9: {
+      'one': '0 bilh\u00E3o',
+      'other': '0 bilh\u00F5es',
+    },
+    12: {
+      'one': '0 trilh\u00E3o',
+      'other': '0 trilh\u00F5es',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0mil',
-    4: '\u00A4\u00A000\u00A0mil',
-    5: '\u00A4\u00A0000\u00A0mil',
-    6: '\u00A4\u00A00\u00A0mi',
-    7: '\u00A4\u00A000\u00A0mi',
-    8: '\u00A4\u00A0000\u00A0mi',
-    9: '\u00A4\u00A00\u00A0bi',
-    10: '\u00A4\u00A000\u00A0bi',
-    11: '\u00A4\u00A0000\u00A0bi',
-    12: '\u00A4\u00A00\u00A0tri',
-    13: '\u00A4\u00A000\u00A0tri',
-    14: '\u00A4\u00A0000\u00A0tri',
+    3: {'other': '\u00A4\u00A00\u00A0mil'},
+    6: {'other': '\u00A4\u00A00\u00A0mi'},
+    9: {'other': '\u00A4\u00A00\u00A0bi'},
+    12: {'other': '\u00A4\u00A00\u00A0tri'},
   }),
   // Compact number symbols for locale pt_PT.
   "pt_PT": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mil',
-    4: '00\u00A0mil',
-    5: '000\u00A0mil',
-    6: '0\u00A0M',
-    7: '00\u00A0M',
-    8: '000\u00A0M',
-    9: '0\u00A0mM',
-    10: '00\u00A0mM',
-    11: '000\u00A0mM',
-    12: '0\u00A0Bi',
-    13: '00\u00A0Bi',
-    14: '000\u00A0Bi',
+    3: {'other': '0\u00A0mil'},
+    6: {'other': '0\u00A0M'},
+    9: {'other': '0\u00A0mM'},
+    12: {'other': '0\u00A0Bi'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mil',
-    4: '00 mil',
-    5: '000 mil',
-    6: '0 milh\u00F5es',
-    7: '00 milh\u00F5es',
-    8: '000 milh\u00F5es',
-    9: '0 mil milh\u00F5es',
-    10: '00 mil milh\u00F5es',
-    11: '000 mil milh\u00F5es',
-    12: '0 bili\u00F5es',
-    13: '00 bili\u00F5es',
-    14: '000 bili\u00F5es',
+    3: {'other': '0 mil'},
+    6: {
+      'one': '0 milh\u00E3o',
+      'other': '0 milh\u00F5es',
+    },
+    7: {'other': '00 milh\u00F5es'},
+    9: {'other': '0 mil milh\u00F5es'},
+    12: {
+      'one': '0 bili\u00E3o',
+      'other': '0 bili\u00F5es',
+    },
+    13: {'other': '00 bili\u00F5es'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0mil\u00A0\u00A4',
-    4: '00\u00A0mil\u00A0\u00A4',
-    5: '000\u00A0mil\u00A0\u00A4',
-    6: '0\u00A0M\u00A0\u00A4',
-    7: '00\u00A0M\u00A0\u00A4',
-    8: '000\u00A0M\u00A0\u00A4',
-    9: '0\u00A0mM\u00A0\u00A4',
-    10: '00\u00A0mM\u00A0\u00A4',
-    11: '000\u00A0mM\u00A0\u00A4',
-    12: '0\u00A0B\u00A0\u00A4',
-    13: '00\u00A0B\u00A0\u00A4',
-    14: '000\u00A0B\u00A0\u00A4',
+    3: {'other': '0\u00A0mil\u00A0\u00A4'},
+    6: {'other': '0\u00A0M\u00A0\u00A4'},
+    9: {'other': '0\u00A0mM\u00A0\u00A4'},
+    12: {'other': '0\u00A0B\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ro.
   "ro": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0K',
-    4: '00\u00A0K',
-    5: '000\u00A0K',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mld.',
-    10: '00\u00A0mld.',
-    11: '000\u00A0mld.',
-    12: '0\u00A0tril.',
-    13: '00\u00A0tril.',
-    14: '000\u00A0tril.',
+    3: {'other': '0\u00A0K'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mld.'},
+    12: {'other': '0\u00A0tril.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 de mii',
-    4: '00 de mii',
-    5: '000 de mii',
-    6: '0 de milioane',
-    7: '00 de milioane',
-    8: '000 de milioane',
-    9: '0 de miliarde',
-    10: '00 de miliarde',
-    11: '000 de miliarde',
-    12: '0 de trilioane',
-    13: '00 de trilioane',
-    14: '000 de trilioane',
+    3: {
+      'few': '0 mii',
+      'one': '0 mie',
+      'other': '0 de mii',
+    },
+    6: {
+      'few': '0 milioane',
+      'one': '0 milion',
+      'other': '0 de milioane',
+    },
+    9: {
+      'few': '0 miliarde',
+      'one': '0 miliard',
+      'other': '0 de miliarde',
+    },
+    12: {
+      'few': '0 trilioane',
+      'one': '0 trilion',
+      'other': '0 de trilioane',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0mii\u00A0\u00A4',
-    4: '00\u00A0mii\u00A0\u00A4',
-    5: '000\u00A0mii\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mld.\u00A0\u00A4',
-    10: '00\u00A0mld.\u00A0\u00A4',
-    11: '000\u00A0mld.\u00A0\u00A4',
-    12: '0\u00A0tril.\u00A0\u00A4',
-    13: '00\u00A0tril.\u00A0\u00A4',
-    14: '000\u00A0tril.\u00A0\u00A4',
+    3: {
+      'few': '0\u00A0mii\u00A0\u00A4',
+      'one': '0\u00A0mie\u00A0\u00A4',
+      'other': '0\u00A0mii\u00A0\u00A4',
+    },
+    4: {'other': '00\u00A0mii\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld.\u00A0\u00A4'},
+    12: {'other': '0\u00A0tril.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ru.
   "ru": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0442\u044B\u0441.',
-    4: '00\u00A0\u0442\u044B\u0441.',
-    5: '000\u00A0\u0442\u044B\u0441.',
-    6: '0\u00A0\u043C\u043B\u043D',
-    7: '00\u00A0\u043C\u043B\u043D',
-    8: '000\u00A0\u043C\u043B\u043D',
-    9: '0\u00A0\u043C\u043B\u0440\u0434',
-    10: '00\u00A0\u043C\u043B\u0440\u0434',
-    11: '000\u00A0\u043C\u043B\u0440\u0434',
-    12: '0\u00A0\u0442\u0440\u043B\u043D',
-    13: '00\u00A0\u0442\u0440\u043B\u043D',
-    14: '000\u00A0\u0442\u0440\u043B\u043D',
+    3: {'other': '0\u00A0\u0442\u044B\u0441.'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0442\u044B\u0441\u044F\u0447\u0438',
-    4: '00 \u0442\u044B\u0441\u044F\u0447\u0438',
-    5: '000 \u0442\u044B\u0441\u044F\u0447\u0438',
-    6: '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
-    7: '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
-    8: '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
-    9: '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430',
-    10: '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430',
-    11: '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430',
-    12: '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
-    13: '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
-    14: '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
+    3: {
+      'few': '0 \u0442\u044B\u0441\u044F\u0447\u0438',
+      'many': '0 \u0442\u044B\u0441\u044F\u0447',
+      'one': '0 \u0442\u044B\u0441\u044F\u0447\u0430',
+      'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438',
+    },
+    6: {
+      'few': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
+      'many': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u043E\u0432',
+      'one': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D',
+      'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
+    },
+    9: {
+      'few': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430',
+      'many': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u043E\u0432',
+      'one': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434',
+      'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430',
+    },
+    12: {
+      'few': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
+      'many': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u043E\u0432',
+      'one': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D',
+      'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    4: '00\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    5: '000\u00A0\u0442\u044B\u0441.\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0442\u044B\u0441.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4'},
   }),
   // Compact number symbols for locale si.
   "si": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '\u0DAF0',
-    4: '\u0DAF00',
-    5: '\u0DAF000',
-    6: '\u0DB8\u0DD20',
-    7: '\u0DB8\u0DD200',
-    8: '\u0DB8\u0DD2000',
-    9: '\u0DB6\u0DD20',
-    10: '\u0DB6\u0DD200',
-    11: '\u0DB6\u0DD2000',
-    12: '\u0DA7\u0DCA\u200D\u0DBB\u0DD20',
-    13: '\u0DA7\u0DCA\u200D\u0DBB\u0DD200',
-    14: '\u0DA7\u0DCA\u200D\u0DBB\u0DD2000',
+    3: {'other': '\u0DAF0'},
+    6: {'other': '\u0DB8\u0DD20'},
+    9: {'other': '\u0DB6\u0DD20'},
+    12: {'other': '\u0DA7\u0DCA\u200D\u0DBB\u0DD20'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '\u0DAF\u0DC4\u0DC3 0',
-    4: '\u0DAF\u0DC4\u0DC3 00',
-    5: '\u0DAF\u0DC4\u0DC3 000',
-    6: '\u0DB8\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0',
-    7: '\u0DB8\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 00',
-    8: '\u0DB8\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 000',
-    9: '\u0DB6\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0',
-    10: '\u0DB6\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 00',
-    11: '\u0DB6\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 000',
-    12: '\u0DA7\u0DCA\u200D\u0DBB\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0',
-    13: '\u0DA7\u0DCA\u200D\u0DBB\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 00',
-    14: '\u0DA7\u0DCA\u200D\u0DBB\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 000',
+    3: {'other': '\u0DAF\u0DC4\u0DC3 0'},
+    6: {'other': '\u0DB8\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0'},
+    9: {'other': '\u0DB6\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0'},
+    12: {'other': '\u0DA7\u0DCA\u200D\u0DBB\u0DD2\u0DBD\u0DD2\u0DBA\u0DB1 0'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u0DAF0',
-    4: '\u00A4\u0DAF00',
-    5: '\u00A4\u0DAF000',
-    6: '\u00A4\u0DB8\u0DD20',
-    7: '\u00A4\u0DB8\u0DD200',
-    8: '\u00A4\u0DB8\u0DD2000',
-    9: '\u00A4\u0DB6\u0DD20',
-    10: '\u00A4\u0DB6\u0DD200',
-    11: '\u00A4\u0DB6\u0DD2000',
-    12: '\u00A4\u0DA7\u0DCA\u200D\u0DBB\u0DD20',
-    13: '\u00A4\u0DA7\u0DCA\u200D\u0DBB\u0DD200',
-    14: '\u00A4\u0DA7\u0DCA\u200D\u0DBB\u0DD2000',
+    3: {'other': '\u00A4\u0DAF0'},
+    6: {'other': '\u00A4\u0DB8\u0DD20'},
+    9: {'other': '\u00A4\u0DB6\u0DD20'},
+    12: {'other': '\u00A4\u0DA7\u0DCA\u200D\u0DBB\u0DD20'},
   }),
   // Compact number symbols for locale sk.
   "sk": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tis.',
-    4: '00\u00A0tis.',
-    5: '000\u00A0tis.',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mld.',
-    10: '00\u00A0mld.',
-    11: '000\u00A0mld.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0tis.'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mld.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tis\u00EDc',
-    4: '00 tis\u00EDc',
-    5: '000 tis\u00EDc',
-    6: '0 mili\u00F3nov',
-    7: '00 mili\u00F3nov',
-    8: '000 mili\u00F3nov',
-    9: '0 mili\u00E1rd',
-    10: '00 mili\u00E1rd',
-    11: '000 mili\u00E1rd',
-    12: '0 bili\u00F3nov',
-    13: '00 bili\u00F3nov',
-    14: '000 bili\u00F3nov',
+    3: {
+      'few': '0 tis\u00EDce',
+      'many': '0 tis\u00EDca',
+      'one': '0 tis\u00EDc',
+      'other': '0 tis\u00EDc',
+    },
+    4: {
+      'few': '00 tis\u00EDc',
+      'many': '00 tis\u00EDca',
+      'one': '00 tis\u00EDc',
+      'other': '00 tis\u00EDc',
+    },
+    6: {
+      'few': '0 mili\u00F3ny',
+      'many': '0 mili\u00F3na',
+      'one': '0 mili\u00F3n',
+      'other': '0 mili\u00F3nov',
+    },
+    7: {
+      'few': '00 mili\u00F3nov',
+      'many': '00 mili\u00F3na',
+      'one': '00 mili\u00F3nov',
+      'other': '00 mili\u00F3nov',
+    },
+    9: {
+      'few': '0 miliardy',
+      'many': '0 miliardy',
+      'one': '0 miliarda',
+      'other': '0 mili\u00E1rd',
+    },
+    10: {
+      'few': '00 mili\u00E1rd',
+      'many': '00 miliardy',
+      'one': '00 mili\u00E1rd',
+      'other': '00 mili\u00E1rd',
+    },
+    12: {
+      'few': '0 bili\u00F3ny',
+      'many': '0 bili\u00F3na',
+      'one': '0 bili\u00F3n',
+      'other': '0 bili\u00F3nov',
+    },
+    13: {
+      'few': '00 bili\u00F3nov',
+      'many': '00 bili\u00F3na',
+      'one': '00 bili\u00F3nov',
+      'other': '00 bili\u00F3nov',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tis.\u00A0\u00A4',
-    4: '00\u00A0tis.\u00A0\u00A4',
-    5: '000\u00A0tis.\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mld.\u00A0\u00A4',
-    10: '00\u00A0mld.\u00A0\u00A4',
-    11: '000\u00A0mld.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0tis.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sl.
   "sl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tis.',
-    4: '00\u00A0tis.',
-    5: '000\u00A0tis.',
-    6: '0\u00A0mio.',
-    7: '00\u00A0mio.',
-    8: '000\u00A0mio.',
-    9: '0\u00A0mrd.',
-    10: '00\u00A0mrd.',
-    11: '000\u00A0mrd.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0tis.'},
+    6: {'other': '0\u00A0mio.'},
+    9: {'other': '0\u00A0mrd.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tiso\u010D',
-    4: '00 tiso\u010D',
-    5: '000 tiso\u010D',
-    6: '0 milijonov',
-    7: '00 milijonov',
-    8: '000 milijonov',
-    9: '0 milijard',
-    10: '00 milijard',
-    11: '000 milijard',
-    12: '0 bilijonov',
-    13: '00 bilijonov',
-    14: '000 bilijonov',
+    3: {'other': '0 tiso\u010D'},
+    6: {
+      'few': '0 milijone',
+      'one': '0 milijon',
+      'other': '0 milijonov',
+      'two': '0 milijona',
+    },
+    7: {
+      'few': '00 milijoni',
+      'one': '00 milijon',
+      'other': '00 milijonov',
+      'two': '00 milijona',
+    },
+    9: {
+      'few': '0 milijarde',
+      'one': '0 milijarda',
+      'other': '0 milijard',
+      'two': '0 milijardi',
+    },
+    12: {
+      'few': '0 bilijoni',
+      'one': '0 bilijon',
+      'other': '0 bilijonov',
+      'two': '0 bilijona',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tis.\u00A0\u00A4',
-    4: '00\u00A0tis.\u00A0\u00A4',
-    5: '000\u00A0tis.\u00A0\u00A4',
-    6: '0\u00A0mio.\u00A0\u00A4',
-    7: '00\u00A0mio.\u00A0\u00A4',
-    8: '000\u00A0mio.\u00A0\u00A4',
-    9: '0\u00A0mrd.\u00A0\u00A4',
-    10: '00\u00A0mrd.\u00A0\u00A4',
-    11: '000\u00A0mrd.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0tis.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mio.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sq.
   "sq": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0mij\u00EB',
-    4: '00\u00A0mij\u00EB',
-    5: '000\u00A0mij\u00EB',
-    6: '0\u00A0mln',
-    7: '00\u00A0mln',
-    8: '000\u00A0mln',
-    9: '0\u00A0mld',
-    10: '00\u00A0mld',
-    11: '000\u00A0mld',
-    12: '0\u00A0bln',
-    13: '00\u00A0bln',
-    14: '000\u00A0bln',
+    3: {'other': '0\u00A0mij\u00EB'},
+    6: {'other': '0\u00A0mln'},
+    9: {'other': '0\u00A0mld'},
+    12: {'other': '0\u00A0bln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 mij\u00EB',
-    4: '00 mij\u00EB',
-    5: '000 mij\u00EB',
-    6: '0 milion',
-    7: '00 milion',
-    8: '000 milion',
-    9: '0 miliard',
-    10: '00 miliard',
-    11: '000 miliard',
-    12: '0 bilion',
-    13: '00 bilion',
-    14: '000 bilion',
+    3: {'other': '0 mij\u00EB'},
+    6: {'other': '0 milion'},
+    9: {'other': '0 miliard'},
+    12: {'other': '0 bilion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0mij\u00EB\u00A0\u00A4',
-    4: '00\u00A0mij\u00EB\u00A0\u00A4',
-    5: '000\u00A0mij\u00EB\u00A0\u00A4',
-    6: '0\u00A0mln\u00A0\u00A4',
-    7: '00\u00A0mln\u00A0\u00A4',
-    8: '000\u00A0mln\u00A0\u00A4',
-    9: '0\u00A0mld\u00A0\u00A4',
-    10: '00\u00A0mld\u00A0\u00A4',
-    11: '000\u00A0mld\u00A0\u00A4',
-    12: '0\u00A0bln\u00A0\u00A4',
-    13: '00\u00A0bln\u00A0\u00A4',
-    14: '000\u00A0bln\u00A0\u00A4',
+    3: {'other': '0\u00A0mij\u00EB\u00A0\u00A4'},
+    6: {'other': '0\u00A0mln\u00A0\u00A4'},
+    9: {'other': '0\u00A0mld\u00A0\u00A4'},
+    12: {'other': '0\u00A0bln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sr.
   "sr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0445\u0438\u0459.',
-    4: '00\u00A0\u0445\u0438\u0459.',
-    5: '000\u00A0\u0445\u0438\u0459.',
-    6: '0\u00A0\u043C\u0438\u043B.',
-    7: '00\u00A0\u043C\u0438\u043B.',
-    8: '000\u00A0\u043C\u0438\u043B.',
-    9: '0\u00A0\u043C\u043B\u0440\u0434.',
-    10: '00\u00A0\u043C\u043B\u0440\u0434.',
-    11: '000\u00A0\u043C\u043B\u0440\u0434.',
-    12: '0\u00A0\u0431\u0438\u043B.',
-    13: '00\u00A0\u0431\u0438\u043B.',
-    14: '000\u00A0\u0431\u0438\u043B.',
+    3: {'other': '0\u00A0\u0445\u0438\u0459.'},
+    6: {'other': '0\u00A0\u043C\u0438\u043B.'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434.'},
+    12: {'other': '0\u00A0\u0431\u0438\u043B.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0445\u0438\u0459\u0430\u0434\u0430',
-    4: '00 \u0445\u0438\u0459\u0430\u0434\u0430',
-    5: '000 \u0445\u0438\u0459\u0430\u0434\u0430',
-    6: '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    7: '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    8: '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
-    9: '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    10: '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    11: '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
-    12: '0 \u0431\u0438\u043B\u0438\u043E\u043D\u0430',
-    13: '00 \u0431\u0438\u043B\u0438\u043E\u043D\u0430',
-    14: '000 \u0431\u0438\u043B\u0438\u043E\u043D\u0430',
+    3: {
+      'few': '0 \u0445\u0438\u0459\u0430\u0434\u0435',
+      'one': '0 \u0445\u0438\u0459\u0430\u0434\u0430',
+      'other': '0 \u0445\u0438\u0459\u0430\u0434\u0430',
+    },
+    6: {
+      'few': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
+      'one': '0 \u043C\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430',
+    },
+    9: {
+      'few': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0435',
+      'one': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0430',
+      'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438',
+    },
+    12: {
+      'few': '0 \u0431\u0438\u043B\u0438\u043E\u043D\u0430',
+      'one': '0 \u0431\u0438\u043B\u0438\u043E\u043D',
+      'other': '0 \u0431\u0438\u043B\u0438\u043E\u043D\u0430',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0445\u0438\u0459.\u00A0\u00A4',
-    4: '00\u00A0\u0445\u0438\u0459.\u00A0\u00A4',
-    5: '000\u00A0\u0445\u0438\u0459.\u00A0\u00A4',
-    6: '0\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    7: '00\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    8: '000\u00A0\u043C\u0438\u043B.\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4',
-    12: '0\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
-    13: '00\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
-    14: '000\u00A0\u0431\u0438\u043B.\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0445\u0438\u0459.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u0438\u043B.\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434.\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0431\u0438\u043B.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sr_Latn.
   "sr_Latn": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0hilj.',
-    4: '00\u00A0hilj.',
-    5: '000\u00A0hilj.',
-    6: '0\u00A0mil.',
-    7: '00\u00A0mil.',
-    8: '000\u00A0mil.',
-    9: '0\u00A0mlrd.',
-    10: '00\u00A0mlrd.',
-    11: '000\u00A0mlrd.',
-    12: '0\u00A0bil.',
-    13: '00\u00A0bil.',
-    14: '000\u00A0bil.',
+    3: {'other': '0\u00A0hilj.'},
+    6: {'other': '0\u00A0mil.'},
+    9: {'other': '0\u00A0mlrd.'},
+    12: {'other': '0\u00A0bil.'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 hiljada',
-    4: '00 hiljada',
-    5: '000 hiljada',
-    6: '0 miliona',
-    7: '00 miliona',
-    8: '000 miliona',
-    9: '0 milijardi',
-    10: '00 milijardi',
-    11: '000 milijardi',
-    12: '0 biliona',
-    13: '00 biliona',
-    14: '000 biliona',
+    3: {
+      'few': '0 hiljade',
+      'one': '0 hiljada',
+      'other': '0 hiljada',
+    },
+    6: {
+      'few': '0 miliona',
+      'one': '0 milion',
+      'other': '0 miliona',
+    },
+    9: {
+      'few': '0 milijarde',
+      'one': '0 milijarda',
+      'other': '0 milijardi',
+    },
+    12: {
+      'few': '0 biliona',
+      'one': '0 bilion',
+      'other': '0 biliona',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0hilj.\u00A0\u00A4',
-    4: '00\u00A0hilj.\u00A0\u00A4',
-    5: '000\u00A0hilj.\u00A0\u00A4',
-    6: '0\u00A0mil.\u00A0\u00A4',
-    7: '00\u00A0mil.\u00A0\u00A4',
-    8: '000\u00A0mil.\u00A0\u00A4',
-    9: '0\u00A0mlrd.\u00A0\u00A4',
-    10: '00\u00A0mlrd.\u00A0\u00A4',
-    11: '000\u00A0mlrd.\u00A0\u00A4',
-    12: '0\u00A0bil.\u00A0\u00A4',
-    13: '00\u00A0bil.\u00A0\u00A4',
-    14: '000\u00A0bil.\u00A0\u00A4',
+    3: {'other': '0\u00A0hilj.\u00A0\u00A4'},
+    6: {'other': '0\u00A0mil.\u00A0\u00A4'},
+    9: {'other': '0\u00A0mlrd.\u00A0\u00A4'},
+    12: {'other': '0\u00A0bil.\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sv.
   "sv": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0tn',
-    4: '00\u00A0tn',
-    5: '000\u00A0tn',
-    6: '0\u00A0mn',
-    7: '00\u00A0mn',
-    8: '000\u00A0mn',
-    9: '0\u00A0md',
-    10: '00\u00A0md',
-    11: '000\u00A0md',
-    12: '0\u00A0bn',
-    13: '00\u00A0bn',
-    14: '000\u00A0bn',
+    3: {'other': '0\u00A0tn'},
+    6: {'other': '0\u00A0mn'},
+    9: {'other': '0\u00A0md'},
+    12: {'other': '0\u00A0bn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 tusen',
-    4: '00 tusen',
-    5: '000 tusen',
-    6: '0 miljoner',
-    7: '00 miljoner',
-    8: '000 miljoner',
-    9: '0 miljarder',
-    10: '00 miljarder',
-    11: '000 miljarder',
-    12: '0 biljoner',
-    13: '00 biljoner',
-    14: '000 biljoner',
+    3: {'other': '0 tusen'},
+    6: {
+      'one': '0 miljon',
+      'other': '0 miljoner',
+    },
+    8: {'other': '000 miljoner'},
+    9: {
+      'one': '0 miljard',
+      'other': '0 miljarder',
+    },
+    10: {'other': '00 miljarder'},
+    12: {
+      'one': '0 biljon',
+      'other': '0 biljoner',
+    },
+    13: {'other': '00 biljoner'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0tn\u00A0\u00A4',
-    4: '00\u00A0tn\u00A0\u00A4',
-    5: '000\u00A0tn\u00A0\u00A4',
-    6: '0\u00A0mn\u00A0\u00A4',
-    7: '00\u00A0mn\u00A0\u00A4',
-    8: '000\u00A0mn\u00A0\u00A4',
-    9: '0\u00A0md\u00A0\u00A4',
-    10: '00\u00A0md\u00A0\u00A4',
-    11: '000\u00A0md\u00A0\u00A4',
-    12: '0\u00A0bn\u00A0\u00A4',
-    13: '00\u00A0bn\u00A0\u00A4',
-    14: '000\u00A0bn\u00A0\u00A4',
+    3: {'other': '0\u00A0tn\u00A0\u00A4'},
+    6: {'other': '0\u00A0mn\u00A0\u00A4'},
+    9: {'other': '0\u00A0md\u00A0\u00A4'},
+    12: {'other': '0\u00A0bn\u00A0\u00A4'},
   }),
   // Compact number symbols for locale sw.
   "sw": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: 'elfu\u00A00;elfu\u00A0-0',
-    4: 'elfu\u00A000;elfu\u00A0-00',
-    5: 'elfu\u00A0000;elfu\u00A0-000',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B;-0B',
-    10: '00B;-00B',
-    11: '000B;-000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': 'elfu\u00A00;elfu\u00A0-0'},
+    6: {
+      'one': '0M;-0M',
+      'other': '0M',
+    },
+    9: {'other': '0B;-0B'},
+    12: {
+      'one': '0T;-0T',
+      'other': '0T',
+    },
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: 'elfu 0;elfu -0',
-    4: 'elfu 00;elfu -00',
-    5: 'elfu 000;elfu -000',
-    6: 'milioni 0;milioni -0',
-    7: 'milioni 00;milioni -00',
-    8: 'milioni 000;milioni -000',
-    9: 'bilioni 0;bilioni -0',
-    10: 'bilioni 00;bilioni -00',
-    11: 'bilioni 000;bilioni -000',
-    12: 'trilioni 0;trilioni -0',
-    13: 'trilioni 00;trilioni -00',
-    14: 'trilioni 000;trilioni -000',
+    3: {'other': 'elfu 0;elfu -0'},
+    6: {'other': 'milioni 0;milioni -0'},
+    9: {'other': 'bilioni 0;bilioni -0'},
+    12: {'other': 'trilioni 0;trilioni -0'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A0elfu0',
-    4: '\u00A4\u00A0elfu00;\u00A4elfu\u00A0-00',
-    5: '\u00A4\u00A0laki000;\u00A4laki\u00A0-000',
-    6: '\u00A4\u00A00M',
-    7: '\u00A4\u00A000M;\u00A4-00M',
-    8: '\u00A4\u00A0000M',
-    9: '\u00A4\u00A00B;\u00A4-0B',
-    10: '\u00A4\u00A000B;\u00A4-00B',
-    11: '\u00A4\u00A0000B;\u00A4-000B',
-    12: '\u00A4\u00A00T',
-    13: '\u00A4\u00A000T',
-    14: '\u00A4\u00A0000T;\u00A4-000T',
+    3: {'other': '\u00A4\u00A0elfu0'},
+    4: {'other': '\u00A4\u00A0elfu00;\u00A4elfu\u00A0-00'},
+    5: {'other': '\u00A4\u00A0laki000;\u00A4laki\u00A0-000'},
+    6: {
+      'one': '\u00A4\u00A00M;\u00A4-0M',
+      'other': '\u00A4\u00A00M',
+    },
+    7: {
+      'one': '\u00A4\u00A000M;\u00A4M-00M',
+      'other': '\u00A4\u00A000M;\u00A4-00M',
+    },
+    8: {
+      'one': '\u00A4\u00A0000M;\u00A4Milioni-000',
+      'other': '\u00A4\u00A0000M',
+    },
+    9: {'other': '\u00A4\u00A00B;\u00A4-0B'},
+    12: {
+      'one': '\u00A4\u00A00T;\u00A4-0T',
+      'other': '\u00A4\u00A00T',
+    },
+    14: {'other': '\u00A4\u00A0000T;\u00A4-000T'},
   }),
   // Compact number symbols for locale ta.
   "ta": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u0B86',
-    4: '00\u0B86',
-    5: '000\u0B86',
-    6: '0\u0BAE\u0BBF',
-    7: '00\u0BAE\u0BBF',
-    8: '000\u0BAE\u0BBF',
-    9: '0\u0BAA\u0BBF',
-    10: '00\u0BAA\u0BBF',
-    11: '000\u0BAA\u0BBF',
-    12: '0\u0B9F\u0BBF',
-    13: '00\u0B9F\u0BBF',
-    14: '000\u0B9F\u0BBF',
+    3: {'other': '0\u0B86'},
+    6: {'other': '0\u0BAE\u0BBF'},
+    9: {'other': '0\u0BAA\u0BBF'},
+    12: {'other': '0\u0B9F\u0BBF'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD',
-    4: '00 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD',
-    5: '000 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD',
-    6: '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    7: '00 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    8: '000 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    9: '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    10: '00 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    11: '000 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    12: '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    13: '00 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
-    14: '000 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD',
+    3: {'other': '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD'},
+    6: {'other': '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD'},
+    9: {'other': '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD'},
+    12: {
+      'other':
+          '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD'
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u0B86',
-    4: '\u00A4\u00A000\u0B86',
-    5: '\u00A4\u00A0000\u0B86',
-    6: '\u00A4\u00A00\u0BAE\u0BBF',
-    7: '\u00A4\u00A000\u0BAE\u0BBF',
-    8: '\u00A4\u00A0000\u0BAE\u0BBF',
-    9: '\u00A40\u0BAA\u0BBF',
-    10: '\u00A4\u00A000\u0BAA\u0BBF',
-    11: '\u00A4000\u0BAA\u0BBF',
-    12: '\u00A4\u00A00\u0B9F\u0BBF',
-    13: '\u00A4\u00A000\u0B9F\u0BBF',
-    14: '\u00A4\u00A0000\u0B9F\u0BBF',
+    3: {'other': '\u00A4\u00A00\u0B86'},
+    6: {'other': '\u00A4\u00A00\u0BAE\u0BBF'},
+    9: {
+      'one': '\u00A4\u00A00\u0BAA\u0BBF',
+      'other': '\u00A40\u0BAA\u0BBF',
+    },
+    10: {'other': '\u00A4\u00A000\u0BAA\u0BBF'},
+    11: {
+      'one': '\u00A4\u00A0000\u0BAA\u0BBF',
+      'other': '\u00A4000\u0BAA\u0BBF',
+    },
+    12: {'other': '\u00A4\u00A00\u0B9F\u0BBF'},
   }),
   // Compact number symbols for locale te.
   "te": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u0C35\u0C47',
-    4: '00\u0C35\u0C47',
-    5: '000\u0C35\u0C47',
-    6: '0\u0C2E\u0C3F',
-    7: '00\u0C2E\u0C3F',
-    8: '000\u0C2E\u0C3F',
-    9: '0\u0C2C\u0C3F',
-    10: '00\u0C2C\u0C3F',
-    11: '000\u0C2C\u0C3F',
-    12: '0\u0C1F\u0C4D\u0C30\u0C3F',
-    13: '00\u0C1F\u0C4D\u0C30\u0C3F',
-    14: '000\u0C1F\u0C4D\u0C30\u0C3F',
+    3: {'other': '0\u0C35\u0C47'},
+    6: {'other': '0\u0C2E\u0C3F'},
+    9: {'other': '0\u0C2C\u0C3F'},
+    12: {'other': '0\u0C1F\u0C4D\u0C30\u0C3F'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0C35\u0C47\u0C32\u0C41',
-    4: '00 \u0C35\u0C47\u0C32\u0C41',
-    5: '000 \u0C35\u0C47\u0C32\u0C41',
-    6: '0 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    7: '00 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    8: '000 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    9: '0 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    10: '00 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    11: '000 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    12: '0 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    13: '00 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
-    14: '000 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
+    3: {
+      'one': '0 \u0C35\u0C47\u0C2F\u0C3F',
+      'other': '0 \u0C35\u0C47\u0C32\u0C41',
+    },
+    4: {'other': '00 \u0C35\u0C47\u0C32\u0C41'},
+    6: {
+      'one': '0 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D',
+      'other': '0 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
+    },
+    7: {'other': '00 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41'},
+    9: {
+      'one': '0 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D',
+      'other': '0 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
+    },
+    10: {'other': '00 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41'},
+    12: {
+      'one': '0 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D',
+      'other':
+          '0 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41',
+    },
+    13: {
+      'other':
+          '00 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D\u0C32\u0C41'
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40\u0C35\u0C47',
-    4: '\u00A400\u0C35\u0C47',
-    5: '\u00A4000\u0C35\u0C47',
-    6: '\u00A40\u0C2E\u0C3F',
-    7: '\u00A400\u0C2E\u0C3F',
-    8: '\u00A4000\u0C2E\u0C3F',
-    9: '\u00A40\u0C2C\u0C3F',
-    10: '\u00A400\u0C2C\u0C3F',
-    11: '\u00A4000\u0C2C\u0C3F',
-    12: '\u00A40\u0C1F\u0C4D\u0C30\u0C3F',
-    13: '\u00A400\u0C1F\u0C4D\u0C30\u0C3F',
-    14: '\u00A4000\u0C1F\u0C4D\u0C30\u0C3F',
+    3: {'other': '\u00A40\u0C35\u0C47'},
+    6: {'other': '\u00A40\u0C2E\u0C3F'},
+    9: {'other': '\u00A40\u0C2C\u0C3F'},
+    12: {'other': '\u00A40\u0C1F\u0C4D\u0C30\u0C3F'},
   }),
   // Compact number symbols for locale th.
   "th": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0E1E\u0E31\u0E19',
-    4: '0 \u0E2B\u0E21\u0E37\u0E48\u0E19',
-    5: '0 \u0E41\u0E2A\u0E19',
-    6: '0 \u0E25\u0E49\u0E32\u0E19',
-    7: '00 \u0E25\u0E49\u0E32\u0E19',
-    8: '000 \u0E25\u0E49\u0E32\u0E19',
-    9: '0 \u0E1E\u0E31\u0E19\u0E25\u0E49\u0E32\u0E19',
-    10: '0 \u0E2B\u0E21\u0E37\u0E48\u0E19\u0E25\u0E49\u0E32\u0E19',
-    11: '0 \u0E41\u0E2A\u0E19\u0E25\u0E49\u0E32\u0E19',
-    12: '0 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19',
-    13: '00 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19',
-    14: '000 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19',
+    3: {'other': '0 \u0E1E\u0E31\u0E19'},
+    4: {'other': '0 \u0E2B\u0E21\u0E37\u0E48\u0E19'},
+    5: {'other': '0 \u0E41\u0E2A\u0E19'},
+    6: {'other': '0 \u0E25\u0E49\u0E32\u0E19'},
+    9: {'other': '0 \u0E1E\u0E31\u0E19\u0E25\u0E49\u0E32\u0E19'},
+    10: {'other': '0 \u0E2B\u0E21\u0E37\u0E48\u0E19\u0E25\u0E49\u0E32\u0E19'},
+    11: {'other': '0 \u0E41\u0E2A\u0E19\u0E25\u0E49\u0E32\u0E19'},
+    12: {'other': '0 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale tl.
   "tl": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 na libo',
-    4: '00 na libo',
-    5: '000 na libo',
-    6: '0 na milyon',
-    7: '00 na milyon',
-    8: '000 na milyon',
-    9: '0 na bilyon',
-    10: '00 na bilyon',
-    11: '000 na bilyon',
-    12: '0 na trilyon',
-    13: '00 na trilyon',
-    14: '000 na trilyon',
+    3: {
+      'one': '0 libo',
+      'other': '0 na libo',
+    },
+    6: {
+      'one': '0 milyon',
+      'other': '0 na milyon',
+    },
+    9: {
+      'one': '0 bilyon',
+      'other': '0 na bilyon',
+    },
+    12: {
+      'one': '0 trilyon',
+      'other': '0 na trilyon',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale tr.
   "tr": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0B',
-    4: '00\u00A0B',
-    5: '000\u00A0B',
-    6: '0\u00A0Mn',
-    7: '00\u00A0Mn',
-    8: '000\u00A0Mn',
-    9: '0\u00A0Mr',
-    10: '00\u00A0Mr',
-    11: '000\u00A0Mr',
-    12: '0\u00A0Tn',
-    13: '00\u00A0Tn',
-    14: '000\u00A0Tn',
+    3: {'other': '0\u00A0B'},
+    6: {'other': '0\u00A0Mn'},
+    9: {'other': '0\u00A0Mr'},
+    12: {'other': '0\u00A0Tn'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 bin',
-    4: '00 bin',
-    5: '000 bin',
-    6: '0 milyon',
-    7: '00 milyon',
-    8: '000 milyon',
-    9: '0 milyar',
-    10: '00 milyar',
-    11: '000 milyar',
-    12: '0 trilyon',
-    13: '00 trilyon',
-    14: '000 trilyon',
+    3: {'other': '0 bin'},
+    6: {'other': '0 milyon'},
+    9: {'other': '0 milyar'},
+    12: {'other': '0 trilyon'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0B\u00A0\u00A4',
-    4: '00\u00A0B\u00A0\u00A4',
-    5: '000\u00A0B\u00A0\u00A4',
-    6: '0\u00A0Mn\u00A0\u00A4',
-    7: '00\u00A0Mn\u00A0\u00A4',
-    8: '000\u00A0Mn\u00A0\u00A4',
-    9: '0\u00A0Mr\u00A0\u00A4',
-    10: '00\u00A0Mr\u00A0\u00A4',
-    11: '000\u00A0Mr\u00A0\u00A4',
-    12: '0\u00A0Tn\u00A0\u00A4',
-    13: '00\u00A0Tn\u00A0\u00A4',
-    14: '000\u00A0Tn\u00A0\u00A4',
+    3: {'other': '0\u00A0B\u00A0\u00A4'},
+    6: {'other': '0\u00A0Mn\u00A0\u00A4'},
+    9: {'other': '0\u00A0Mr\u00A0\u00A4'},
+    12: {'other': '0\u00A0Tn\u00A0\u00A4'},
   }),
   // Compact number symbols for locale uk.
   "uk": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u0442\u0438\u0441.',
-    4: '00\u00A0\u0442\u0438\u0441.',
-    5: '000\u00A0\u0442\u0438\u0441.',
-    6: '0\u00A0\u043C\u043B\u043D',
-    7: '00\u00A0\u043C\u043B\u043D',
-    8: '000\u00A0\u043C\u043B\u043D',
-    9: '0\u00A0\u043C\u043B\u0440\u0434',
-    10: '00\u00A0\u043C\u043B\u0440\u0434',
-    11: '000\u00A0\u043C\u043B\u0440\u0434',
-    12: '0\u00A0\u0442\u0440\u043B\u043D',
-    13: '00\u00A0\u0442\u0440\u043B\u043D',
-    14: '000\u00A0\u0442\u0440\u043B\u043D',
+    3: {'other': '0\u00A0\u0442\u0438\u0441.'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u0442\u0438\u0441\u044F\u0447\u0456',
-    4: '00 \u0442\u0438\u0441\u044F\u0447\u0456',
-    5: '000 \u0442\u0438\u0441\u044F\u0447\u0456',
-    6: '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430',
-    7: '00 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430',
-    8: '000 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430',
-    9: '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    10: '00 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    11: '000 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
-    12: '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430',
-    13: '00 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430',
-    14: '000 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430',
+    3: {
+      'few': '0 \u0442\u0438\u0441\u044F\u0447\u0456',
+      'many': '0 \u0442\u0438\u0441\u044F\u0447',
+      'one': '0 \u0442\u0438\u0441\u044F\u0447\u0430',
+      'other': '0 \u0442\u0438\u0441\u044F\u0447\u0456',
+    },
+    6: {
+      'few': '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438',
+      'many': '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432',
+      'one': '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D',
+      'other': '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430',
+    },
+    9: {
+      'few': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438',
+      'many': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432',
+      'one': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434',
+      'other': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430',
+    },
+    12: {
+      'few': '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0438',
+      'many': '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0456\u0432',
+      'one': '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D',
+      'other': '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430',
+    },
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0\u0442\u0438\u0441.\u00A0\u00A4',
-    4: '00\u00A0\u0442\u0438\u0441.\u00A0\u00A4',
-    5: '000\u00A0\u0442\u0438\u0441.\u00A0\u00A4',
-    6: '0\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    7: '00\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    8: '000\u00A0\u043C\u043B\u043D\u00A0\u00A4',
-    9: '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    10: '00\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    11: '000\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4',
-    12: '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    13: '00\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
-    14: '000\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4',
+    3: {'other': '0\u00A0\u0442\u0438\u0441.\u00A0\u00A4'},
+    6: {'other': '0\u00A0\u043C\u043B\u043D\u00A0\u00A4'},
+    9: {'other': '0\u00A0\u043C\u043B\u0440\u0434\u00A0\u00A4'},
+    12: {'other': '0\u00A0\u0442\u0440\u043B\u043D\u00A0\u00A4'},
   }),
   // Compact number symbols for locale ur.
   "ur": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0\u06C1\u0632\u0627\u0631',
-    4: '00\u00A0\u06C1\u0632\u0627\u0631',
-    5: '0\u00A0\u0644\u0627\u06A9\u06BE',
-    6: '00\u00A0\u0644\u0627\u06A9\u06BE',
-    7: '0\u00A0\u06A9\u0631\u0648\u0691',
-    8: '00\u00A0\u06A9\u0631\u0648\u0691',
-    9: '0\u00A0\u0627\u0631\u0628',
-    10: '00\u00A0\u0627\u0631\u0628',
-    11: '0\u00A0\u06A9\u06BE\u0631\u0628',
-    12: '00\u00A0\u06A9\u06BE\u0631\u0628',
-    13: '00\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646',
-    14: '000\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646',
+    3: {'other': '0\u00A0\u06C1\u0632\u0627\u0631'},
+    5: {'other': '0\u00A0\u0644\u0627\u06A9\u06BE'},
+    7: {'other': '0\u00A0\u06A9\u0631\u0648\u0691'},
+    9: {'other': '0\u00A0\u0627\u0631\u0628'},
+    11: {'other': '0\u00A0\u06A9\u06BE\u0631\u0628'},
+    13: {'other': '00\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 \u06C1\u0632\u0627\u0631',
-    4: '00 \u06C1\u0632\u0627\u0631',
-    5: '0 \u0644\u0627\u06A9\u06BE',
-    6: '00 \u0644\u0627\u06A9\u06BE',
-    7: '0 \u06A9\u0631\u0648\u0691',
-    8: '00 \u06A9\u0631\u0648\u0691',
-    9: '0 \u0627\u0631\u0628',
-    10: '00 \u0627\u0631\u0628',
-    11: '0 \u06A9\u06BE\u0631\u0628',
-    12: '00 \u06A9\u06BE\u0631\u0628',
-    13: '00 \u0679\u0631\u06CC\u0644\u06CC\u0646',
-    14: '000 \u0679\u0631\u06CC\u0644\u06CC\u0646',
+    3: {'other': '0 \u06C1\u0632\u0627\u0631'},
+    5: {'other': '0 \u0644\u0627\u06A9\u06BE'},
+    7: {'other': '0 \u06A9\u0631\u0648\u0691'},
+    9: {'other': '0 \u0627\u0631\u0628'},
+    11: {'other': '0 \u06A9\u06BE\u0631\u0628'},
+    13: {'other': '00 \u0679\u0631\u06CC\u0644\u06CC\u0646'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A4\u00A00\u00A0\u06C1\u0632\u0627\u0631',
-    4: '\u00A4\u00A000\u00A0\u06C1\u0632\u0627\u0631',
-    5: '\u00A4\u00A00\u00A0\u0644\u0627\u06A9\u06BE',
-    6: '\u00A4\u00A000\u00A0\u0644\u0627\u06A9\u06BE',
-    7: '\u00A4\u00A00\u00A0\u06A9\u0631\u0648\u0691',
-    8: '\u00A4\u00A000\u00A0\u06A9\u0631\u0648\u0691',
-    9: '\u00A4\u00A00\u00A0\u0627\u0631\u0628',
-    10: '\u00A4\u00A000\u00A0\u0627\u0631\u0628',
-    11: '\u00A4\u00A00\u00A0\u06A9\u06BE\u0631\u0628',
-    12: '\u00A40\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646',
-    13: '\u00A4\u00A000\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646',
-    14: '\u00A4\u00A0000\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646',
+    3: {'other': '\u00A4\u00A00\u00A0\u06C1\u0632\u0627\u0631'},
+    5: {'other': '\u00A4\u00A00\u00A0\u0644\u0627\u06A9\u06BE'},
+    7: {'other': '\u00A4\u00A00\u00A0\u06A9\u0631\u0648\u0691'},
+    9: {'other': '\u00A4\u00A00\u00A0\u0627\u0631\u0628'},
+    11: {'other': '\u00A4\u00A00\u00A0\u06A9\u06BE\u0631\u0628'},
+    12: {'other': '\u00A40\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646'},
+    13: {'other': '\u00A4\u00A000\u00A0\u0679\u0631\u06CC\u0644\u06CC\u0646'},
   }),
   // Compact number symbols for locale uz.
   "uz": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0ming',
-    4: '00\u00A0ming',
-    5: '000\u00A0ming',
-    6: '0\u00A0mln',
-    7: '00\u00A0mln',
-    8: '000\u00A0mln',
-    9: '0\u00A0mlrd',
-    10: '00\u00A0mlrd',
-    11: '000\u00A0mlrd',
-    12: '0\u00A0trln',
-    13: '00\u00A0trln',
-    14: '000\u00A0trln',
+    3: {'other': '0\u00A0ming'},
+    6: {'other': '0\u00A0mln'},
+    9: {'other': '0\u00A0mlrd'},
+    12: {'other': '0\u00A0trln'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ming',
-    4: '00 ming',
-    5: '000 ming',
-    6: '0 million',
-    7: '00 million',
-    8: '000 million',
-    9: '0 milliard',
-    10: '00 milliard',
-    11: '000 milliard',
-    12: '0 trillion',
-    13: '00 trillion',
-    14: '000 trillion',
+    3: {'other': '0 ming'},
+    6: {'other': '0 million'},
+    9: {'other': '0 milliard'},
+    12: {'other': '0 trillion'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0ming\u00A0\u00A4',
-    4: '00\u00A0ming\u00A0\u00A4',
-    5: '000\u00A0ming\u00A0\u00A4',
-    6: '0\u00A0mln\u00A0\u00A4',
-    7: '00\u00A0mln\u00A0\u00A4',
-    8: '000\u00A0mln\u00A0\u00A4',
-    9: '0\u00A0mlrd\u00A0\u00A4',
-    10: '00\u00A0mlrd\u00A0\u00A4',
-    11: '000\u00A0mlrd\u00A0\u00A4',
-    12: '0\u00A0trln\u00A0\u00A4',
-    13: '00\u00A0trln\u00A0\u00A4',
-    14: '000\u00A0trln\u00A0\u00A4',
+    3: {'other': '0\u00A0ming\u00A0\u00A4'},
+    6: {'other': '0\u00A0mln\u00A0\u00A4'},
+    9: {'other': '0\u00A0mlrd\u00A0\u00A4'},
+    12: {'other': '0\u00A0trln\u00A0\u00A4'},
   }),
   // Compact number symbols for locale vi.
   "vi": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0\u00A0N',
-    4: '00\u00A0N',
-    5: '000\u00A0N',
-    6: '0\u00A0Tr',
-    7: '00\u00A0Tr',
-    8: '000\u00A0Tr',
-    9: '0\u00A0T',
-    10: '00\u00A0T',
-    11: '000\u00A0T',
-    12: '0\u00A0NT',
-    13: '00\u00A0NT',
-    14: '000\u00A0NT',
+    3: {'other': '0\u00A0N'},
+    6: {'other': '0\u00A0Tr'},
+    9: {'other': '0\u00A0T'},
+    12: {'other': '0\u00A0NT'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 ngh\u00ECn',
-    4: '00 ngh\u00ECn',
-    5: '000 ngh\u00ECn',
-    6: '0 tri\u1EC7u',
-    7: '00 tri\u1EC7u',
-    8: '000 tri\u1EC7u',
-    9: '0 t\u1EF7',
-    10: '00 t\u1EF7',
-    11: '000 t\u1EF7',
-    12: '0 ngh\u00ECn t\u1EF7',
-    13: '00 ngh\u00ECn t\u1EF7',
-    14: '000 ngh\u00ECn t\u1EF7',
+    3: {'other': '0 ngh\u00ECn'},
+    6: {'other': '0 tri\u1EC7u'},
+    9: {'other': '0 t\u1EF7'},
+    12: {'other': '0 ngh\u00ECn t\u1EF7'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0\u00A0N\u00A0\u00A4',
-    4: '00\u00A0N\u00A0\u00A4',
-    5: '000\u00A0N\u00A0\u00A4',
-    6: '0\u00A0Tr\u00A0\u00A4',
-    7: '00\u00A0Tr\u00A0\u00A4',
-    8: '000\u00A0Tr\u00A0\u00A4',
-    9: '0\u00A0T\u00A0\u00A4',
-    10: '00\u00A0T\u00A0\u00A4',
-    11: '000\u00A0T\u00A0\u00A4',
-    12: '0\u00A0NT\u00A0\u00A4',
-    13: '00\u00A0NT\u00A0\u00A4',
-    14: '000\u00A0NT\u00A0\u00A4',
+    3: {'other': '0\u00A0N\u00A0\u00A4'},
+    6: {'other': '0\u00A0Tr\u00A0\u00A4'},
+    9: {'other': '0\u00A0T\u00A0\u00A4'},
+    12: {'other': '0\u00A0NT\u00A0\u00A4'},
   }),
   // Compact number symbols for locale zh.
   "zh": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u4EBF',
-    9: '00\u4EBF',
-    10: '000\u4EBF',
-    11: '0000\u4EBF',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u4EBF'},
+    12: {'other': '0\u4E07\u4EBF'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u4EBF',
-    9: '00\u4EBF',
-    10: '000\u4EBF',
-    11: '0000\u4EBF',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u4EBF'},
+    12: {'other': '0\u4E07\u4EBF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '\u00A40\u4E07',
-    5: '\u00A400\u4E07',
-    6: '\u00A4000\u4E07',
-    7: '\u00A40000\u4E07',
-    8: '\u00A40\u4EBF',
-    9: '\u00A400\u4EBF',
-    10: '\u00A4000\u4EBF',
-    11: '\u00A40000\u4EBF',
-    12: '\u00A40\u5146',
-    13: '\u00A400\u5146',
-    14: '\u00A4000\u5146',
+    3: {'other': '0'},
+    4: {'other': '\u00A40\u4E07'},
+    8: {'other': '\u00A40\u4EBF'},
+    12: {'other': '\u00A40\u4E07\u4EBF'},
   }),
   // Compact number symbols for locale zh_CN.
   "zh_CN": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u4EBF',
-    9: '00\u4EBF',
-    10: '000\u4EBF',
-    11: '0000\u4EBF',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u4EBF'},
+    12: {'other': '0\u4E07\u4EBF'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0\u4E07',
-    5: '00\u4E07',
-    6: '000\u4E07',
-    7: '0000\u4E07',
-    8: '0\u4EBF',
-    9: '00\u4EBF',
-    10: '000\u4EBF',
-    11: '0000\u4EBF',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u4E07'},
+    8: {'other': '0\u4EBF'},
+    12: {'other': '0\u4E07\u4EBF'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '\u00A40\u4E07',
-    5: '\u00A400\u4E07',
-    6: '\u00A4000\u4E07',
-    7: '\u00A40000\u4E07',
-    8: '\u00A40\u4EBF',
-    9: '\u00A400\u4EBF',
-    10: '\u00A4000\u4EBF',
-    11: '\u00A40000\u4EBF',
-    12: '\u00A40\u5146',
-    13: '\u00A400\u5146',
-    14: '\u00A4000\u5146',
+    3: {'other': '0'},
+    4: {'other': '\u00A40\u4E07'},
+    8: {'other': '\u00A40\u4EBF'},
+    12: {'other': '\u00A40\u4E07\u4EBF'},
   }),
   // Compact number symbols for locale zh_HK.
   "zh_HK": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0\u842C',
-    5: '00\u842C',
-    6: '000\u842C',
-    7: '0000\u842C',
-    8: '0\u5104',
-    9: '00\u5104',
-    10: '000\u5104',
-    11: '0000\u5104',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u842C'},
+    8: {'other': '0\u5104'},
+    12: {'other': '0\u5146'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A40M',
-    7: '\u00A400M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {'other': '\u00A40M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   }),
   // Compact number symbols for locale zh_TW.
   "zh_TW": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0',
-    4: '0\u842C',
-    5: '00\u842C',
-    6: '000\u842C',
-    7: '0000\u842C',
-    8: '0\u5104',
-    9: '00\u5104',
-    10: '000\u5104',
-    11: '0000\u5104',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u842C'},
+    8: {'other': '0\u5104'},
+    12: {'other': '0\u5146'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0',
-    4: '0\u842C',
-    5: '00\u842C',
-    6: '000\u842C',
-    7: '0000\u842C',
-    8: '0\u5104',
-    9: '00\u5104',
-    10: '000\u5104',
-    11: '0000\u5104',
-    12: '0\u5146',
-    13: '00\u5146',
-    14: '000\u5146',
+    3: {'other': '0'},
+    4: {'other': '0\u842C'},
+    8: {'other': '0\u5104'},
+    12: {'other': '0\u5146'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '0',
-    4: '\u00A40\u842C',
-    5: '\u00A400\u842C',
-    6: '\u00A4000\u842C',
-    7: '\u00A40000\u842C',
-    8: '\u00A40\u5104',
-    9: '\u00A400\u5104',
-    10: '\u00A4000\u5104',
-    11: '\u00A40000\u5104',
-    12: '\u00A40\u5146',
-    13: '\u00A400\u5146',
-    14: '\u00A4000\u5146',
+    3: {'other': '0'},
+    4: {'other': '\u00A40\u842C'},
+    8: {'other': '\u00A40\u5104'},
+    12: {'other': '\u00A40\u5146'},
   }),
   // Compact number symbols for locale zu.
   "zu": new CompactNumberSymbols(COMPACT_DECIMAL_SHORT_PATTERN: const {
-    3: '0K',
-    4: '00K',
-    5: '000K',
-    6: '0M',
-    7: '00M',
-    8: '000M',
-    9: '0B',
-    10: '00B',
-    11: '000B',
-    12: '0T',
-    13: '00T',
-    14: '000T',
+    3: {'other': '0K'},
+    6: {'other': '0M'},
+    9: {'other': '0B'},
+    12: {'other': '0T'},
   }, COMPACT_DECIMAL_LONG_PATTERN: const {
-    3: '0 inkulungwane',
-    4: '00 inkulungwane',
-    5: '000 inkulungwane',
-    6: '0 isigidi',
-    7: '00 isigidi',
-    8: '000 isigidi',
-    9: '0 isigidi sezigidi',
-    10: '00 isigidi sezigidi',
-    11: '000 isigidi sezigidi',
-    12: '0 isigidintathu',
-    13: '00 isigidintathu',
-    14: '000 isigidintathu',
+    3: {'other': '0 inkulungwane'},
+    6: {'other': '0 isigidi'},
+    9: {'other': '0 isigidi sezigidi'},
+    12: {'other': '0 isigidintathu'},
   }, COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN: const {
-    3: '\u00A40K',
-    4: '\u00A400K',
-    5: '\u00A4000K',
-    6: '\u00A4\u00A00M',
-    7: '\u00A4\u00A000M',
-    8: '\u00A4000M',
-    9: '\u00A40B',
-    10: '\u00A400B',
-    11: '\u00A4000B',
-    12: '\u00A40T',
-    13: '\u00A400T',
-    14: '\u00A4000T',
+    3: {'other': '\u00A40K'},
+    6: {
+      'one': '\u00A40M',
+      'other': '\u00A4\u00A00M',
+    },
+    8: {'other': '\u00A4000M'},
+    9: {'other': '\u00A40B'},
+    12: {'other': '\u00A40T'},
   })
 };
 
@@ -6711,6 +5323,7 @@
   "RSD": 0,
   "RWF": 0,
   "SEK": 2,
+  "SLE": 2,
   "SLL": 0,
   "SOS": 0,
   "STD": 0,
diff --git a/intl/lib/src/data/dates/locale_list.dart b/intl/lib/src/data/dates/locale_list.dart
index 1581cca..23259dc 100644
--- a/intl/lib/src/data/dates/locale_list.dart
+++ b/intl/lib/src/data/dates/locale_list.dart
@@ -4,118 +4,124 @@
 
 /// Hard-coded list of all available locales for dates.
 final availableLocalesForDateFormatting = const [
-  "en_ISO",
-  "af",
-  "am",
-  "ar",
-  "ar_DZ",
-  "ar_EG",
-  "az",
-  "be",
-  "bg",
-  "bn",
-  "br",
-  "bs",
-  "ca",
-  "chr",
-  "cs",
-  "cy",
-  "da",
-  "de",
-  "de_AT",
-  "de_CH",
-  "el",
-  "en",
-  "en_AU",
-  "en_CA",
-  "en_GB",
-  "en_IE",
-  "en_IN",
-  "en_MY",
-  "en_SG",
-  "en_US",
-  "en_ZA",
-  "es",
-  "es_419",
-  "es_ES",
-  "es_MX",
-  "es_US",
-  "et",
-  "eu",
-  "fa",
-  "fi",
-  "fil",
-  "fr",
-  "fr_CA",
-  "fr_CH",
-  "ga",
-  "gl",
-  "gsw",
-  "gu",
-  "haw",
-  "he",
-  "hi",
-  "hr",
-  "hu",
-  "hy",
-  "id",
-  "in",
-  "is",
-  "it",
-  "it_CH",
-  "iw",
-  "ja",
-  "ka",
-  "kk",
-  "km",
-  "kn",
-  "ko",
-  "ky",
-  "ln",
-  "lo",
-  "lt",
-  "lv",
-  "mk",
-  "ml",
-  "mn",
-  "mr",
-  "ms",
-  "mt",
-  "my",
-  "nb",
-  "ne",
-  "nl",
-  "no",
-  "no_NO",
-  "or",
-  "pa",
-  "pl",
-  "ps",
-  "pt",
-  "pt_BR",
-  "pt_PT",
-  "ro",
-  "ru",
-  "si",
-  "sk",
-  "sl",
-  "sq",
-  "sr",
-  "sr_Latn",
-  "sv",
-  "sw",
-  "ta",
-  "te",
-  "th",
-  "tl",
-  "tr",
-  "uk",
-  "ur",
-  "uz",
-  "vi",
-  "zh",
-  "zh_CN",
-  "zh_HK",
-  "zh_TW",
-  "zu"
+  'en_ISO',
+  'af',
+  'am',
+  'ar',
+  'ar_DZ',
+  'ar_EG',
+  'as',
+  'az',
+  'be',
+  'bg',
+  'bm',
+  'bn',
+  'br',
+  'bs',
+  'ca',
+  'chr',
+  'cs',
+  'cy',
+  'da',
+  'de',
+  'de_AT',
+  'de_CH',
+  'el',
+  'en',
+  'en_AU',
+  'en_CA',
+  'en_GB',
+  'en_IE',
+  'en_IN',
+  'en_MY',
+  'en_NZ',
+  'en_SG',
+  'en_US',
+  'en_ZA',
+  'es',
+  'es_419',
+  'es_ES',
+  'es_MX',
+  'es_US',
+  'et',
+  'eu',
+  'fa',
+  'fi',
+  'fil',
+  'fr',
+  'fr_CA',
+  'fr_CH',
+  'fur',
+  'ga',
+  'gl',
+  'gsw',
+  'gu',
+  'haw',
+  'he',
+  'hi',
+  'hr',
+  'hu',
+  'hy',
+  'id',
+  'in',
+  'is',
+  'it',
+  'it_CH',
+  'iw',
+  'ja',
+  'ka',
+  'kk',
+  'km',
+  'kn',
+  'ko',
+  'ky',
+  'ln',
+  'lo',
+  'lt',
+  'lv',
+  'mg',
+  'mk',
+  'ml',
+  'mn',
+  'mr',
+  'ms',
+  'mt',
+  'my',
+  'nb',
+  'ne',
+  'nl',
+  'no',
+  'no_NO',
+  'nyn',
+  'or',
+  'pa',
+  'pl',
+  'ps',
+  'pt',
+  'pt_BR',
+  'pt_PT',
+  'ro',
+  'ru',
+  'si',
+  'sk',
+  'sl',
+  'sq',
+  'sr',
+  'sr_Latn',
+  'sv',
+  'sw',
+  'ta',
+  'te',
+  'th',
+  'tl',
+  'tr',
+  'uk',
+  'ur',
+  'uz',
+  'vi',
+  'zh',
+  'zh_CN',
+  'zh_HK',
+  'zh_TW',
+  'zu',
 ];
diff --git a/intl/lib/src/data/dates/patterns/ar.json b/intl/lib/src/data/dates/patterns/ar.json
index b74f42a..cc11354 100644
--- a/intl/lib/src/data/dates/patterns/ar.json
+++ b/intl/lib/src/data/dates/patterns/ar.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/‏M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/ar_DZ.json b/intl/lib/src/data/dates/patterns/ar_DZ.json
index b74f42a..cc11354 100644
--- a/intl/lib/src/data/dates/patterns/ar_DZ.json
+++ b/intl/lib/src/data/dates/patterns/ar_DZ.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/‏M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/ar_EG.json b/intl/lib/src/data/dates/patterns/ar_EG.json
index b74f42a..cc11354 100644
--- a/intl/lib/src/data/dates/patterns/ar_EG.json
+++ b/intl/lib/src/data/dates/patterns/ar_EG.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/‏M","MEd":"EEE، d/‏M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE، d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE، d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M‏/y","yMd":"d‏/M‏/y","yMEd":"EEE، d/‏M/‏y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE، d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE، d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/as.json b/intl/lib/src/data/dates/patterns/as.json
new file mode 100644
index 0000000..e9508e0
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/as.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd-MM","MEd":"EEE, dd-MM","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM-y","yMd":"dd-MM-y","yMEd":"EEE, dd-MM-y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM, y","yMMMMEEEEd":"EEEE, d MMMM, y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"a h","jm":"a h:mm","jms":"a h:mm:ss","jmv":"a h:mm v","jmz":"a h:mm z","jz":"a h z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/bg.json b/intl/lib/src/data/dates/patterns/bg.json
index cb7f995..27ceea8 100644
--- a/intl/lib/src/data/dates/patterns/bg.json
+++ b/intl/lib/src/data/dates/patterns/bg.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d.MM","MEd":"EEE, d.MM","MMM":"MM","MMMd":"d.MM","MMMEd":"EEE, d.MM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y 'г'.","yM":"MM.y 'г'.","yMd":"d.MM.y 'г'.","yMEd":"EEE, d.MM.y 'г'.","yMMM":"MM.y 'г'.","yMMMd":"d.MM.y 'г'.","yMMMEd":"EEE, d.MM.y 'г'.","yMMMM":"MMMM y 'г'.","yMMMMd":"d MMMM y 'г'.","yMMMMEEEEd":"EEEE, d MMMM y 'г'.","yQQQ":"QQQ y 'г'.","yQQQQ":"QQQQ y 'г'.","H":"H 'ч'.","Hm":"H:mm 'ч'.","Hms":"H:mm:ss 'ч'.","j":"H 'ч'.","jm":"H:mm 'ч'.","jms":"H:mm:ss 'ч'.","jmv":"HH:mm 'ч'. v","jmz":"HH:mm 'ч'. z","jz":"H 'ч'. z","m":"m","ms":"m:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d.MM","MEd":"EEE, d.MM","MMM":"MM","MMMd":"d.MM","MMMEd":"EEE, d.MM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y 'г'.","yM":"MM.y 'г'.","yMd":"d.MM.y 'г'.","yMEd":"EEE, d.MM.y 'г'.","yMMM":"MM.y 'г'.","yMMMd":"d.MM.y 'г'.","yMMMEd":"EEE, d.MM.y 'г'.","yMMMM":"MMMM y 'г'.","yMMMMd":"d MMMM y 'г'.","yMMMMEEEEd":"EEEE, d MMMM y 'г'.","yQQQ":"QQQ y 'г'.","yQQQQ":"QQQQ y 'г'.","H":"HH 'ч'.","Hm":"HH:mm 'ч'.","Hms":"HH:mm:ss 'ч'.","j":"HH 'ч'.","jm":"HH:mm 'ч'.","jms":"HH:mm:ss 'ч'.","jmv":"HH:mm 'ч'. v","jmz":"HH:mm 'ч'. z","jz":"HH 'ч'. z","m":"m","ms":"m:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/bm.json b/intl/lib/src/data/dates/patterns/bm.json
new file mode 100644
index 0000000..ca7acd8
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/bm.json
@@ -0,0 +1 @@
+{"d":"d","E":"EEE","EEEE":"EEEE","LLL":"MMM","LLLL":"MMMM","M":"M","Md":"d/M","MEd":"MM-dd, EEE","MMM":"MMM","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"MMMM","MMMMd":"d MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"H","Hm":"HH:mm","Hms":"HH:mm:ss","j":"H","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"H z","m":"m","ms":"m:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/el.json b/intl/lib/src/data/dates/patterns/el.json
index 562528c..a267909 100644
--- a/intl/lib/src/data/dates/patterns/el.json
+++ b/intl/lib/src/data/dates/patterns/el.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"MMM","LLLL":"MMMM","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"MMM","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"MMMM","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"LLLL y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"MMM","LLLL":"MMMM","M":"L","Md":"d/M","MEd":"EEE d/M","MMM":"MMM","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"MMMM","MMMMd":"d MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"LLLL y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/en_CA.json b/intl/lib/src/data/dates/patterns/en_CA.json
index 9b6e7e6..5ef7d32 100644
--- a/intl/lib/src/data/dates/patterns/en_CA.json
+++ b/intl/lib/src/data/dates/patterns/en_CA.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"MM-dd","MEd":"EEE, MM-dd","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y-MM","yMd":"y-MM-dd","yMEd":"EEE, y-MM-dd","yMMM":"MMM y","yMMMd":"MMM d, y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"MMMM d, y","yMMMMEEEEd":"EEEE, MMMM d, y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"MM-dd","MEd":"EEE, MM-dd","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM/y","yMd":"y-MM-dd","yMEd":"EEE, y-MM-dd","yMMM":"MMM y","yMMMd":"MMM d, y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"MMMM d, y","yMMMMEEEEd":"EEEE, MMMM d, y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/en_NZ.json b/intl/lib/src/data/dates/patterns/en_NZ.json
new file mode 100644
index 0000000..5a9a6bd
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/en_NZ.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, dd/MM","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM/y","yMd":"d/MM/y","yMEd":"EEE, dd/MM/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/es_419.json b/intl/lib/src/data/dates/patterns/es_419.json
index 2606f80..f72ba99 100644
--- a/intl/lib/src/data/dates/patterns/es_419.json
+++ b/intl/lib/src/data/dates/patterns/es_419.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE d/M/y","yMMM":"MMMM 'de' y","yMMMd":"d 'de' MMMM 'de' y","yMMMEd":"EEE, d 'de' MMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ 'de' y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"H:mm v","jmz":"H:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ 'de' y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/es_MX.json b/intl/lib/src/data/dates/patterns/es_MX.json
index baae5c6..68a6a9e 100644
--- a/intl/lib/src/data/dates/patterns/es_MX.json
+++ b/intl/lib/src/data/dates/patterns/es_MX.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMMM 'de' y","yMMMd":"d 'de' MMMM 'de' y","yMMMEd":"EEE, d 'de' MMMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"H:mm","Hms":"H:mm:ss","j":"HH","jm":"H:mm","jms":"H:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d 'de' MMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/es_US.json b/intl/lib/src/data/dates/patterns/es_US.json
index 5403be3..43bd61b 100644
--- a/intl/lib/src/data/dates/patterns/es_US.json
+++ b/intl/lib/src/data/dates/patterns/es_US.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMMM 'de' y","yMMMd":"d 'de' MMMM 'de' y","yMMMEd":"EEE, d 'de' MMMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d 'de' MMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/fa.json b/intl/lib/src/data/dates/patterns/fa.json
index aa2ac22..0aeb96d 100644
--- a/intl/lib/src/data/dates/patterns/fa.json
+++ b/intl/lib/src/data/dates/patterns/fa.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"EEE M/d","MMM":"LLL","MMMd":"d LLL","MMMEd":"EEE d LLL","MMMM":"LLLL","MMMMd":"d LLLL","MMMMEEEEd":"EEEE d LLLL","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y/M","yMd":"y/M/d","yMEd":"EEE y/M/d","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE d MMMM y","yQQQ":"QQQQ y","yQQQQ":"QQQQ y","H":"H","Hm":"H:mm","Hms":"H:mm:ss","j":"H","jm":"H:mm","jms":"H:mm:ss","jmv":"HH:mm v","jmz":"HH:mm (z)","jz":"H (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"EEE M/d","MMM":"LLL","MMMd":"d LLL","MMMEd":"EEE d LLL","MMMM":"LLLL","MMMMd":"d LLLL","MMMMEEEEd":"EEEE d LLLL","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y/M","yMd":"y/M/d","yMEd":"EEE y/M/d","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE d MMMM y","yQQQ":"QQQQ y","yQQQQ":"QQQQ y","H":"H","Hm":"H:mm","Hms":"H:mm:ss","j":"H","jm":"H:mm","jms":"H:mm:ss","jmv":"H:mm v","jmz":"HH:mm (z)","jz":"H (z)","m":"m","ms":"m:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/fur.json b/intl/lib/src/data/dates/patterns/fur.json
new file mode 100644
index 0000000..9d4f504
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/fur.json
@@ -0,0 +1 @@
+{"d":"d","E":"EEE","EEEE":"EEEE","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"LLLL","MMMMd":"d 'di' MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"y MMM d","yMMMEd":"EEE d MMM y","yMMMM":"LLLL 'dal' y","yMMMMd":"d 'di' MMMM 'dal' y","yMMMMEEEEd":"EEEE d 'di' MMMM 'dal' y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"H","Hm":"H:mm","Hms":"HH:mm:ss","j":"H","jm":"H:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"H z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/gl.json b/intl/lib/src/data/dates/patterns/gl.json
index 8ea2b69..120233e 100644
--- a/intl/lib/src/data/dates/patterns/gl.json
+++ b/intl/lib/src/data/dates/patterns/gl.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d 'de' MMM","MMMEd":"EEE, d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM 'de' y","yMMMd":"d/MM/y","yMMMEd":"EEE, d/MM/y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d 'de' MMM","MMMEd":"EEE, d 'de' MMM","MMMM":"LLLL","MMMMd":"d 'de' MMMM","MMMMEEEEd":"EEEE, d 'de' MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM 'de' y","yMMMd":"d 'de' MMM 'de' y","yMMMEd":"EEE, d 'de' MMM 'de' y","yMMMM":"MMMM 'de' y","yMMMMd":"d 'de' MMMM 'de' y","yMMMMEEEEd":"EEEE, d 'de' MMMM 'de' y","yQQQ":"QQQ y","yQQQQ":"QQQQ 'de' y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/lv.json b/intl/lib/src/data/dates/patterns/lv.json
index e22cb27..777be07 100644
--- a/intl/lib/src/data/dates/patterns/lv.json
+++ b/intl/lib/src/data/dates/patterns/lv.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd.MM.","MEd":"EEE, dd.MM.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE, d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE, d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y. 'g'.","yM":"MM.y.","yMd":"y.MM.d.","yMEd":"EEE, d.M.y.","yMMM":"y. 'g'. MMM","yMMMd":"y. 'g'. d. MMM","yMMMEd":"EEE, y. 'g'. d. MMM","yMMMM":"y. 'g'. MMMM","yMMMMd":"y. 'gada' d. MMMM","yMMMMEEEEd":"EEEE, y. 'gada' d. MMMM","yQQQ":"y. 'g'. QQQ","yQQQQ":"y. 'g'. QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"dd.MM.","MEd":"EEE, dd.MM.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE, d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE, d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y. 'g'.","yM":"MM.y.","yMd":"d.MM.y.","yMEd":"EEE, d.M.y.","yMMM":"y. 'g'. MMM","yMMMd":"y. 'g'. d. MMM","yMMMEd":"EEE, y. 'g'. d. MMM","yMMMM":"y. 'g'. MMMM","yMMMMd":"y. 'gada' d. MMMM","yMMMMEEEEd":"EEEE, y. 'gada' d. MMMM","yQQQ":"y. 'g'. QQQ","yQQQQ":"y. 'g'. QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/mg.json b/intl/lib/src/data/dates/patterns/mg.json
new file mode 100644
index 0000000..5b95b7a
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/mg.json
@@ -0,0 +1 @@
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"MMM","LLLL":"MMMM","M":"M","Md":"d/M","MEd":"EEE d/M","MMM":"MMM","MMMd":"d MMM","MMMEd":"EEE d MMM","MMMM":"MMMM","MMMMd":"d MMMM","MMMMEEEEd":"EEEE d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"y-MM-dd","yMEd":"EEE d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"m:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/mn.json b/intl/lib/src/data/dates/patterns/mn.json
index 31e05dd..5400350 100644
--- a/intl/lib/src/data/dates/patterns/mn.json
+++ b/intl/lib/src/data/dates/patterns/mn.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"LLLLL","Md":"MMMMM/dd","MEd":"MMMMM/dd. EEE","MMM":"LLL","MMMd":"MMM'ын' d","MMMEd":"MMM'ын' d. EEE","MMMM":"LLLL","MMMMd":"MMMM'ын' d","MMMMEEEEd":"MMMM'ын' d. EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y MMMMM","yMd":"y.MM.dd","yMEd":"y.MM.dd. EEE","yMMM":"y 'оны' MMM","yMMMd":"y 'оны' MMM'ын' d","yMMMEd":"y 'оны' MMM'ын' d. EEE","yMMMM":"y 'оны' MMMM","yMMMMd":"y 'оны' MMMM'ын' d","yMMMMEEEEd":"y 'оны' MMMM'ын' d. EEEE","yQQQ":"y 'оны' QQQ","yQQQQ":"y 'оны' QQQQ","H":"HH 'ц'","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH 'ц'","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm (v)","jmz":"HH:mm (z)","jz":"HH 'ц' (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"LLLLL","Md":"MMMMM/dd","MEd":"MMMMM/dd. EEE","MMM":"LLL","MMMd":"MMM'ын' d","MMMEd":"MMM'ын' d. EEE","MMMM":"LLLL","MMMMd":"MMMM'ын' d","MMMMEEEEd":"MMMM'ын' d. EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y MMMMM","yMd":"y.MM.dd","yMEd":"y.MM.dd. EEE","yMMM":"y 'оны' MMM","yMMMd":"y 'оны' MMM'ын' d","yMMMEd":"y 'оны' MMM'ын' d. EEE","yMMMM":"y 'оны' MMMM","yMMMMd":"y 'оны' MMMM'ын' d","yMMMMEEEEd":"y 'оны' MMMM'ын' d, EEEE 'гараг'","yQQQ":"y 'оны' QQQ","yQQQQ":"y 'оны' QQQQ","H":"HH 'ц'","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH 'ц'","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm (v)","jmz":"HH:mm (z)","jz":"HH 'ц' (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/my.json b/intl/lib/src/data/dates/patterns/my.json
index c1a2783..701fe49 100644
--- a/intl/lib/src/data/dates/patterns/my.json
+++ b/intl/lib/src/data/dates/patterns/my.json
@@ -1 +1 @@
-{"d":"d","E":"cccနေ့","EEEE":"ccccနေ့","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"d/M၊ EEE","MMM":"LLL","MMMd":"d MMM","MMMEd":"MMM d၊ EEE","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"MMMM d ရက် EEEEနေ့","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"dd-MM-y","yMEd":"d/M/y၊ EEE","yMMM":"MMM y","yMMMd":"y၊ MMM d","yMMMEd":"y၊ MMM d၊ EEE","yMMMM":"y MMMM","yMMMMd":"y၊ d MMMM","yMMMMEEEEd":"y၊ MMMM d၊ EEEE","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"v HH:mm","jmz":"z HH:mm","jz":"z HH","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"cccနေ့","EEEE":"ccccနေ့","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"d-M- EEE","MMM":"LLL","MMMd":"d MMM","MMMEd":"MMM d- EEE","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"MMMM d ရက် EEEEနေ့","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"dd-MM-y","yMEd":"d/M/y- EEE","yMMM":"MMM y","yMMMd":"y- MMM d","yMMMEd":"y- MMM d- EEE","yMMMM":"y MMMM","yMMMMd":"y- MMMM d","yMMMMEEEEd":"y- MMMM d- EEEE","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"v HH:mm","jmz":"z HH:mm","jz":"z HH","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/nb.json b/intl/lib/src/data/dates/patterns/nb.json
index 7ddcef6..3504196 100644
--- a/intl/lib/src/data/dates/patterns/nb.json
+++ b/intl/lib/src/data/dates/patterns/nb.json
@@ -1 +1 @@
-{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.MM.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.M.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/no.json b/intl/lib/src/data/dates/patterns/no.json
index 7ddcef6..3504196 100644
--- a/intl/lib/src/data/dates/patterns/no.json
+++ b/intl/lib/src/data/dates/patterns/no.json
@@ -1 +1 @@
-{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.MM.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.M.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/no_NO.json b/intl/lib/src/data/dates/patterns/no_NO.json
index 7ddcef6..3504196 100644
--- a/intl/lib/src/data/dates/patterns/no_NO.json
+++ b/intl/lib/src/data/dates/patterns/no_NO.json
@@ -1 +1 @@
-{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.MM.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d.","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L.","Md":"d.M.","MEd":"EEE d.M.","MMM":"LLL","MMMd":"d. MMM","MMMEd":"EEE d. MMM","MMMM":"LLLL","MMMMd":"d. MMMM","MMMMEEEEd":"EEEE d. MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M.y","yMd":"d.M.y","yMEd":"EEE d.M.y","yMMM":"MMM y","yMMMd":"d. MMM y","yMMMEd":"EEE d. MMM y","yMMMM":"MMMM y","yMMMMd":"d. MMMM y","yMMMMEEEEd":"EEEE d. MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/nyn.json b/intl/lib/src/data/dates/patterns/nyn.json
new file mode 100644
index 0000000..d2c797a
--- /dev/null
+++ b/intl/lib/src/data/dates/patterns/nyn.json
@@ -0,0 +1 @@
+{"d":"d","E":"EEE","EEEE":"EEEE","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"EEE, M/d","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, M/d/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"H","Hm":"HH:mm","Hms":"HH:mm:ss","j":"H","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"H z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/ps.json b/intl/lib/src/data/dates/patterns/ps.json
index e1e4600..6735be3 100644
--- a/intl/lib/src/data/dates/patterns/ps.json
+++ b/intl/lib/src/data/dates/patterns/ps.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"MM-dd","MEd":"MM-dd, EEE","MMM":"LLL","MMMd":"MMM d","MMMEd":"MMM d, EEE","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"MMMM d, EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y-MM","yMd":"y-MM-dd","yMEd":"y-MM-dd, EEE","yMMM":"y MMM","yMMMd":"y MMM d","yMMMEd":"y MMM d, EEE","yMMMM":"y MMMM","yMMMMd":"د y د MMMM d","yMMMMEEEEd":"EEEE د y د MMMM d","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"EEE","EEEE":"EEEE","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"MM-dd","MEd":"MM-dd, EEE","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y-MM","yMd":"y-MM-dd","yMEd":"y-MM-dd, EEE","yMMM":"y MMM","yMMMd":"y MMM d","yMMMEd":"y MMM d, EEE","yMMMM":"y MMMM","yMMMMd":"د y د MMMM d","yMMMMEEEEd":"EEEE د y د MMMM d","yQQQ":"y QQQ","yQQQQ":"y QQQQ","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH (z)","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/sd.json b/intl/lib/src/data/dates/patterns/sd.json
deleted file mode 100644
index 8e21ba7..0000000
--- a/intl/lib/src/data/dates/patterns/sd.json
+++ /dev/null
@@ -1 +0,0 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"M/d","MEd":"EEE, M/d","MMM":"LLL","MMMd":"MMM d","MMMEd":"EEE, MMM d","MMMM":"LLLL","MMMMd":"MMMM d","MMMMEEEEd":"EEEE, MMMM d","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"M/d/y","yMEd":"EEE, M/d/y","yMMM":"MMM y","yMMMd":"MMM d, y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"MMMM d, y","yMMMMEEEEd":"EEEE, MMMM d, y","yQQQ":"QQQ y","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"h a","jm":"h:mm a","jms":"h:mm:ss a","jmv":"h:mm a v","jmz":"h:mm a z","jz":"h a z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/sw.json b/intl/lib/src/data/dates/patterns/sw.json
index a9ac6c1..4b3bc15 100644
--- a/intl/lib/src/data/dates/patterns/sw.json
+++ b/intl/lib/src/data/dates/patterns/sw.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, MMM d, y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"y QQQ","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"L","Md":"d/M","MEd":"EEE, d/M","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"M/y","yMd":"d/M/y","yMEd":"EEE, d/M/y","yMMM":"MMM y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"MMMM y","yMMMMd":"d MMMM y","yMMMMEEEEd":"EEEE, d MMMM y","yQQQ":"y QQQ","yQQQQ":"QQQQ y","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/uk.json b/intl/lib/src/data/dates/patterns/uk.json
index 9f58417..b44fde3 100644
--- a/intl/lib/src/data/dates/patterns/uk.json
+++ b/intl/lib/src/data/dates/patterns/uk.json
@@ -1 +1 @@
-{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"LL","Md":"dd.MM","MEd":"EEE, dd.MM","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM.y","yMd":"dd.MM.y","yMEd":"EEE, dd.MM.y","yMMM":"LLL y","yMMMd":"d MMM y","yMMMEd":"EEE, d MMM y","yMMMM":"LLLL y","yMMMMd":"d MMMM y 'р'.","yMMMMEEEEd":"EEEE, d MMMM y 'р'.","yQQQ":"QQQ y","yQQQQ":"QQQQ y 'р'.","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"LL","Md":"dd.MM","MEd":"EEE, dd.MM","MMM":"LLL","MMMd":"d MMM","MMMEd":"EEE, d MMM","MMMM":"LLLL","MMMMd":"d MMMM","MMMMEEEEd":"EEEE, d MMMM","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"MM.y","yMd":"dd.MM.y","yMEd":"EEE, dd.MM.y","yMMM":"LLL y 'р'.","yMMMd":"d MMM y 'р'.","yMMMEd":"EEE, d MMM y 'р'.","yMMMM":"LLLL y 'р'.","yMMMMd":"d MMMM y 'р'.","yMMMMEEEEd":"EEEE, d MMMM y 'р'.","yQQQ":"QQQ y","yQQQQ":"QQQQ y 'р'.","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","j":"HH","jm":"HH:mm","jms":"HH:mm:ss","jmv":"HH:mm v","jmz":"HH:mm z","jz":"HH z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/zh.json b/intl/lib/src/data/dates/patterns/zh.json
index e7af8ce..bc31f84 100644
--- a/intl/lib/src/data/dates/patterns/zh.json
+++ b/intl/lib/src/data/dates/patterns/zh.json
@@ -1 +1 @@
-{"d":"d日","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"M月","Md":"M/d","MEd":"M/dEEE","MMM":"LLL","MMMd":"M月d日","MMMEd":"M月d日EEE","MMMM":"LLLL","MMMMd":"M月d日","MMMMEEEEd":"M月d日EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y年","yM":"y年M月","yMd":"y/M/d","yMEd":"y/M/dEEE","yMMM":"y年M月","yMMMd":"y年M月d日","yMMMEd":"y年M月d日EEE","yMMMM":"y年M月","yMMMMd":"y年M月d日","yMMMMEEEEd":"y年M月d日EEEE","yQQQ":"y年第Q季度","yQQQQ":"y年第Q季度","H":"H时","Hm":"HH:mm","Hms":"HH:mm:ss","j":"ah时","jm":"ah:mm","jms":"ah:mm:ss","jmv":"v ah:mm","jmz":"z ah:mm","jz":"zah时","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d日","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"M月","Md":"M/d","MEd":"M/dEEE","MMM":"LLL","MMMd":"M月d日","MMMEd":"M月d日EEE","MMMM":"LLLL","MMMMd":"M月d日","MMMMEEEEd":"M月d日EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y年","yM":"y年M月","yMd":"y/M/d","yMEd":"y/M/dEEE","yMMM":"y年M月","yMMMd":"y年M月d日","yMMMEd":"y年M月d日EEE","yMMMM":"y年M月","yMMMMd":"y年M月d日","yMMMMEEEEd":"y年M月d日EEEE","yQQQ":"y年第Q季度","yQQQQ":"y年第Q季度","H":"H时","Hm":"HH:mm","Hms":"HH:mm:ss","j":"H时","jm":"HH:mm","jms":"HH:mm:ss","jmv":"v HH:mm","jmz":"z HH:mm","jz":"zH时","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/patterns/zh_CN.json b/intl/lib/src/data/dates/patterns/zh_CN.json
index e7af8ce..bc31f84 100644
--- a/intl/lib/src/data/dates/patterns/zh_CN.json
+++ b/intl/lib/src/data/dates/patterns/zh_CN.json
@@ -1 +1 @@
-{"d":"d日","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"M月","Md":"M/d","MEd":"M/dEEE","MMM":"LLL","MMMd":"M月d日","MMMEd":"M月d日EEE","MMMM":"LLLL","MMMMd":"M月d日","MMMMEEEEd":"M月d日EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y年","yM":"y年M月","yMd":"y/M/d","yMEd":"y/M/dEEE","yMMM":"y年M月","yMMMd":"y年M月d日","yMMMEd":"y年M月d日EEE","yMMMM":"y年M月","yMMMMd":"y年M月d日","yMMMMEEEEd":"y年M月d日EEEE","yQQQ":"y年第Q季度","yQQQQ":"y年第Q季度","H":"H时","Hm":"HH:mm","Hms":"HH:mm:ss","j":"ah时","jm":"ah:mm","jms":"ah:mm:ss","jmv":"v ah:mm","jmz":"z ah:mm","jz":"zah时","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
+{"d":"d日","E":"ccc","EEEE":"cccc","LLL":"LLL","LLLL":"LLLL","M":"M月","Md":"M/d","MEd":"M/dEEE","MMM":"LLL","MMMd":"M月d日","MMMEd":"M月d日EEE","MMMM":"LLLL","MMMMd":"M月d日","MMMMEEEEd":"M月d日EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y年","yM":"y年M月","yMd":"y/M/d","yMEd":"y/M/dEEE","yMMM":"y年M月","yMMMd":"y年M月d日","yMMMEd":"y年M月d日EEE","yMMMM":"y年M月","yMMMMd":"y年M月d日","yMMMMEEEEd":"y年M月d日EEEE","yQQQ":"y年第Q季度","yQQQQ":"y年第Q季度","H":"H时","Hm":"HH:mm","Hms":"HH:mm:ss","j":"H时","jm":"HH:mm","jms":"HH:mm:ss","jmv":"v HH:mm","jmz":"z HH:mm","jz":"zH时","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ar.json b/intl/lib/src/data/dates/symbols/ar.json
index af9c937..d83e83e 100644
--- a/intl/lib/src/data/dates/symbols/ar.json
+++ b/intl/lib/src/data/dates/symbols/ar.json
@@ -1 +1 @@
-{"NAME":"ar","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"STANDALONENARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"MONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"٠"}
\ No newline at end of file
+{"NAME":"ar","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"STANDALONENARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"MONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} في {0}","{1} في {0}","{1}, {0}","{1}, {0}"],"ZERODIGIT":"٠"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ar_DZ.json b/intl/lib/src/data/dates/symbols/ar_DZ.json
index 7ec6a2a..1add687 100644
--- a/intl/lib/src/data/dates/symbols/ar_DZ.json
+++ b/intl/lib/src/data/dates/symbols/ar_DZ.json
@@ -1 +1 @@
-{"NAME":"ar_DZ","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"STANDALONENARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"MONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"ar_DZ","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"STANDALONENARROWMONTHS":["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],"MONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} في {0}","{1} في {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ar_EG.json b/intl/lib/src/data/dates/symbols/ar_EG.json
index 49c2af6..6a681fc 100644
--- a/intl/lib/src/data/dates/symbols/ar_EG.json
+++ b/intl/lib/src/data/dates/symbols/ar_EG.json
@@ -1 +1 @@
-{"NAME":"ar_EG","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"STANDALONENARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"MONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"٠"}
\ No newline at end of file
+{"NAME":"ar_EG","ERAS":["ق.م","م"],"ERANAMES":["قبل الميلاد","ميلادي"],"NARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"STANDALONENARROWMONTHS":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"MONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONEMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"SHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"STANDALONESHORTMONTHS":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"WEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONEWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"SHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"STANDALONESHORTWEEKDAYS":["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"NARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"STANDALONENARROWWEEKDAYS":["ح","ن","ث","ر","خ","ج","س"],"SHORTQUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"QUARTERS":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"AMPMS":["ص","م"],"DATEFORMATS":["EEEE، d MMMM y","d MMMM y","dd‏/MM‏/y","d‏/M‏/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,5],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} في {0}","{1} في {0}","{1}, {0}","{1}, {0}"],"ZERODIGIT":"٠"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/as.json b/intl/lib/src/data/dates/symbols/as.json
new file mode 100644
index 0000000..01a6fb5
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/as.json
@@ -0,0 +1 @@
+{"NAME":"as","ERAS":["খ্ৰীঃ পূঃ","খ্ৰীঃ"],"ERANAMES":["খ্ৰীষ্টপূৰ্ব","খ্ৰীষ্টাব্দ"],"NARROWMONTHS":["জ","ফ","ম","এ","ম","জ","জ","আ","ছ","অ","ন","ড"],"STANDALONENARROWMONTHS":["জ","ফ","ম","এ","ম","জ","জ","আ","ছ","অ","ন","ড"],"MONTHS":["জানুৱাৰী","ফেব্ৰুৱাৰী","মাৰ্চ","এপ্ৰিল","মে’","জুন","জুলাই","আগষ্ট","ছেপ্তেম্বৰ","অক্টোবৰ","নৱেম্বৰ","ডিচেম্বৰ"],"STANDALONEMONTHS":["জানুৱাৰী","ফেব্ৰুৱাৰী","মাৰ্চ","এপ্ৰিল","মে’","জুন","জুলাই","আগষ্ট","ছেপ্তেম্বৰ","অক্টোবৰ","নৱেম্বৰ","ডিচেম্বৰ"],"SHORTMONTHS":["জানু","ফেব্ৰু","মাৰ্চ","এপ্ৰিল","মে’","জুন","জুলাই","আগ","ছেপ্তে","অক্টো","নৱে","ডিচে"],"STANDALONESHORTMONTHS":["জানু","ফেব্ৰু","মাৰ্চ","এপ্ৰিল","মে’","জুন","জুলাই","আগ","ছেপ্তে","অক্টো","নৱে","ডিচে"],"WEEKDAYS":["দেওবাৰ","সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্ৰবাৰ","শনিবাৰ"],"STANDALONEWEEKDAYS":["দেওবাৰ","সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্ৰবাৰ","শনিবাৰ"],"SHORTWEEKDAYS":["দেও","সোম","মঙ্গল","বুধ","বৃহ","শুক্ৰ","শনি"],"STANDALONESHORTWEEKDAYS":["দেও","সোম","মঙ্গল","বুধ","বৃহ","শুক্ৰ","শনি"],"NARROWWEEKDAYS":["দ","স","ম","ব","ব","শ","শ"],"STANDALONENARROWWEEKDAYS":["দ","স","ম","ব","ব","শ","শ"],"SHORTQUARTERS":["১মঃ তিঃ","২য়ঃ তিঃ","৩য়ঃ তিঃ","৪ৰ্থঃ তিঃ"],"QUARTERS":["প্ৰথম তিনিমাহ","দ্বিতীয় তিনিমাহ","তৃতীয় তিনিমাহ","চতুৰ্থ তিনিমাহ"],"AMPMS":["পূৰ্বাহ্ন","অপৰাহ্ন"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","dd-MM-y","d-M-y"],"TIMEFORMATS":["a h.mm.ss zzzz","a h.mm.ss z","a h.mm.ss","a h.mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"০"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/az.json b/intl/lib/src/data/dates/symbols/az.json
index 02f7948..bd95bc0 100644
--- a/intl/lib/src/data/dates/symbols/az.json
+++ b/intl/lib/src/data/dates/symbols/az.json
@@ -1 +1 @@
-{"NAME":"az","ERAS":["e.ə.","y.e."],"ERANAMES":["eramızdan əvvəl","yeni era"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["yanvar","fevral","mart","aprel","may","iyun","iyul","avqust","sentyabr","oktyabr","noyabr","dekabr"],"STANDALONEMONTHS":["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],"SHORTMONTHS":["yan","fev","mar","apr","may","iyn","iyl","avq","sen","okt","noy","dek"],"STANDALONESHORTMONTHS":["yan","fev","mar","apr","may","iyn","iyl","avq","sen","okt","noy","dek"],"WEEKDAYS":["bazar","bazar ertəsi","çərşənbə axşamı","çərşənbə","cümə axşamı","cümə","şənbə"],"STANDALONEWEEKDAYS":["bazar","bazar ertəsi","çərşənbə axşamı","çərşənbə","cümə axşamı","cümə","şənbə"],"SHORTWEEKDAYS":["B.","B.E.","Ç.A.","Ç.","C.A.","C.","Ş."],"STANDALONESHORTWEEKDAYS":["B.","B.E.","Ç.A.","Ç.","C.A.","C.","Ş."],"NARROWWEEKDAYS":["7","1","2","3","4","5","6"],"STANDALONENARROWWEEKDAYS":["7","1","2","3","4","5","6"],"SHORTQUARTERS":["1-ci kv.","2-ci kv.","3-cü kv.","4-cü kv."],"QUARTERS":["1-ci kvartal","2-ci kvartal","3-cü kvartal","4-cü kvartal"],"AMPMS":["AM","PM"],"DATEFORMATS":["d MMMM y, EEEE","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"az","ERAS":["e.ə.","y.e."],"ERANAMES":["eramızdan əvvəl","yeni era"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["yanvar","fevral","mart","aprel","may","iyun","iyul","avqust","sentyabr","oktyabr","noyabr","dekabr"],"STANDALONEMONTHS":["yanvar","fevral","mart","aprel","may","iyun","iyul","avqust","sentyabr","oktyabr","noyabr","dekabr"],"SHORTMONTHS":["yan","fev","mar","apr","may","iyn","iyl","avq","sen","okt","noy","dek"],"STANDALONESHORTMONTHS":["yan","fev","mar","apr","may","iyn","iyl","avq","sen","okt","noy","dek"],"WEEKDAYS":["bazar","bazar ertəsi","çərşənbə axşamı","çərşənbə","cümə axşamı","cümə","şənbə"],"STANDALONEWEEKDAYS":["bazar","bazar ertəsi","çərşənbə axşamı","çərşənbə","cümə axşamı","cümə","şənbə"],"SHORTWEEKDAYS":["B.","B.e.","Ç.a.","Ç.","C.a.","C.","Ş."],"STANDALONESHORTWEEKDAYS":["B.","B.E.","Ç.A.","Ç.","C.A.","C.","Ş."],"NARROWWEEKDAYS":["7","1","2","3","4","5","6"],"STANDALONENARROWWEEKDAYS":["7","1","2","3","4","5","6"],"SHORTQUARTERS":["1-ci kv.","2-ci kv.","3-cü kv.","4-cü kv."],"QUARTERS":["1-ci kvartal","2-ci kvartal","3-cü kvartal","4-cü kvartal"],"AMPMS":["AM","PM"],"DATEFORMATS":["d MMMM y, EEEE","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/be.json b/intl/lib/src/data/dates/symbols/be.json
index 7d12401..cb32648 100644
--- a/intl/lib/src/data/dates/symbols/be.json
+++ b/intl/lib/src/data/dates/symbols/be.json
@@ -1 +1 @@
-{"NAME":"be","ERAS":["да н.э.","н.э."],"ERANAMES":["да нараджэння Хрыстова","ад нараджэння Хрыстова"],"NARROWMONTHS":["с","л","с","к","м","ч","л","ж","в","к","л","с"],"STANDALONENARROWMONTHS":["с","л","с","к","м","ч","л","ж","в","к","л","с"],"MONTHS":["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня"],"STANDALONEMONTHS":["студзень","люты","сакавік","красавік","май","чэрвень","ліпень","жнівень","верасень","кастрычнік","лістапад","снежань"],"SHORTMONTHS":["сту","лют","сак","кра","мая","чэр","ліп","жні","вер","кас","ліс","сне"],"STANDALONESHORTMONTHS":["сту","лют","сак","кра","май","чэр","ліп","жні","вер","кас","ліс","сне"],"WEEKDAYS":["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"],"STANDALONEWEEKDAYS":["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"],"SHORTWEEKDAYS":["нд","пн","аў","ср","чц","пт","сб"],"STANDALONESHORTWEEKDAYS":["нд","пн","аў","ср","чц","пт","сб"],"NARROWWEEKDAYS":["н","п","а","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","а","с","ч","п","с"],"SHORTQUARTERS":["1-шы кв.","2-гі кв.","3-ці кв.","4-ты кв."],"QUARTERS":["1-шы квартал","2-гі квартал","3-ці квартал","4-ты квартал"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y 'г'.","d MMMM y 'г'.","d.MM.y","d.MM.yy"],"TIMEFORMATS":["HH:mm:ss, zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'у' {0}","{1} 'у' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"be","ERAS":["да н.э.","н.э."],"ERANAMES":["да нараджэння Хрыстова","ад нараджэння Хрыстова"],"NARROWMONTHS":["с","л","с","к","м","ч","л","ж","в","к","л","с"],"STANDALONENARROWMONTHS":["с","л","с","к","м","ч","л","ж","в","к","л","с"],"MONTHS":["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня"],"STANDALONEMONTHS":["студзень","люты","сакавік","красавік","май","чэрвень","ліпень","жнівень","верасень","кастрычнік","лістапад","снежань"],"SHORTMONTHS":["сту","лют","сак","кра","мая","чэр","ліп","жні","вер","кас","ліс","сне"],"STANDALONESHORTMONTHS":["сту","лют","сак","кра","май","чэр","ліп","жні","вер","кас","ліс","сне"],"WEEKDAYS":["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"],"STANDALONEWEEKDAYS":["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"],"SHORTWEEKDAYS":["нд","пн","аў","ср","чц","пт","сб"],"STANDALONESHORTWEEKDAYS":["нд","пн","аў","ср","чц","пт","сб"],"NARROWWEEKDAYS":["н","п","а","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","а","с","ч","п","с"],"SHORTQUARTERS":["1-шы кв.","2-гі кв.","3-ці кв.","4-ты кв."],"QUARTERS":["1-шы квартал","2-гі квартал","3-ці квартал","4-ты квартал"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y 'г'.","d MMMM y 'г'.","d MMM y 'г'.","d.MM.yy"],"TIMEFORMATS":["HH:mm:ss, zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'у' {0}","{1} 'у' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/bm.json b/intl/lib/src/data/dates/symbols/bm.json
new file mode 100644
index 0000000..9827d88
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/bm.json
@@ -0,0 +1 @@
+{"NAME":"bm","ERAS":["J.-C. ɲɛ","ni J.-C."],"ERANAMES":["jezu krisiti ɲɛ","jezu krisiti minkɛ"],"NARROWMONTHS":["Z","F","M","A","M","Z","Z","U","S","Ɔ","N","D"],"STANDALONENARROWMONTHS":["Z","F","M","A","M","Z","Z","U","S","Ɔ","N","D"],"MONTHS":["zanwuye","feburuye","marisi","awirili","mɛ","zuwɛn","zuluye","uti","sɛtanburu","ɔkutɔburu","nowanburu","desanburu"],"STANDALONEMONTHS":["zanwuye","feburuye","marisi","awirili","mɛ","zuwɛn","zuluye","uti","sɛtanburu","ɔkutɔburu","nowanburu","desanburu"],"SHORTMONTHS":["zan","feb","mar","awi","mɛ","zuw","zul","uti","sɛt","ɔku","now","des"],"STANDALONESHORTMONTHS":["zan","feb","mar","awi","mɛ","zuw","zul","uti","sɛt","ɔku","now","des"],"WEEKDAYS":["kari","ntɛnɛ","tarata","araba","alamisa","juma","sibiri"],"STANDALONEWEEKDAYS":["kari","ntɛnɛ","tarata","araba","alamisa","juma","sibiri"],"SHORTWEEKDAYS":["kar","ntɛ","tar","ara","ala","jum","sib"],"STANDALONESHORTWEEKDAYS":["kar","ntɛ","tar","ara","ala","jum","sib"],"NARROWWEEKDAYS":["K","N","T","A","A","J","S"],"STANDALONENARROWWEEKDAYS":["K","N","T","A","A","J","S"],"SHORTQUARTERS":["KS1","KS2","KS3","KS4"],"QUARTERS":["kalo saba fɔlɔ","kalo saba filanan","kalo saba sabanan","kalo saba naaninan"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM, y","d/M/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ca.json b/intl/lib/src/data/dates/symbols/ca.json
index 9ffd2bd..3318424 100644
--- a/intl/lib/src/data/dates/symbols/ca.json
+++ b/intl/lib/src/data/dates/symbols/ca.json
@@ -1 +1 @@
-{"NAME":"ca","ERAS":["aC","dC"],"ERANAMES":["abans de Crist","després de Crist"],"NARROWMONTHS":["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],"STANDALONENARROWMONTHS":["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],"MONTHS":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"STANDALONEMONTHS":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"SHORTMONTHS":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"STANDALONESHORTMONTHS":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"WEEKDAYS":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"STANDALONEWEEKDAYS":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"SHORTWEEKDAYS":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"STANDALONESHORTWEEKDAYS":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"NARROWWEEKDAYS":["dg","dl","dt","dc","dj","dv","ds"],"STANDALONENARROWWEEKDAYS":["dg","dl","dt","dc","dj","dv","ds"],"SHORTQUARTERS":["1T","2T","3T","4T"],"QUARTERS":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d MMMM 'de' y","d MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'a' 'les' {0}","{1} 'a' 'les' {0}","{1}, {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"ca","ERAS":["aC","dC"],"ERANAMES":["abans de Crist","després de Crist"],"NARROWMONTHS":["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],"STANDALONENARROWMONTHS":["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],"MONTHS":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"STANDALONEMONTHS":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"SHORTMONTHS":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"STANDALONESHORTMONTHS":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"WEEKDAYS":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"STANDALONEWEEKDAYS":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"SHORTWEEKDAYS":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"STANDALONESHORTWEEKDAYS":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"NARROWWEEKDAYS":["dg","dl","dt","dc","dj","dv","ds"],"STANDALONENARROWWEEKDAYS":["dg","dl","dt","dc","dj","dv","ds"],"SHORTQUARTERS":["1T","2T","3T","4T"],"QUARTERS":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d MMMM 'de' y","d MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, 'a' 'les' {0}","{1}, 'a' 'les' {0}","{1}, {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/cy.json b/intl/lib/src/data/dates/symbols/cy.json
index 826798c..aae4424 100644
--- a/intl/lib/src/data/dates/symbols/cy.json
+++ b/intl/lib/src/data/dates/symbols/cy.json
@@ -1 +1 @@
-{"NAME":"cy","ERAS":["CC","OC"],"ERANAMES":["Cyn Crist","Oed Crist"],"NARROWMONTHS":["I","Ch","M","E","M","M","G","A","M","H","T","Rh"],"STANDALONENARROWMONTHS":["I","Ch","M","E","M","M","G","A","M","H","T","Rh"],"MONTHS":["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],"STANDALONEMONTHS":["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],"SHORTMONTHS":["Ion","Chwef","Maw","Ebrill","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],"STANDALONESHORTMONTHS":["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Awst","Medi","Hyd","Tach","Rhag"],"WEEKDAYS":["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],"STANDALONEWEEKDAYS":["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],"SHORTWEEKDAYS":["Sul","Llun","Maw","Mer","Iau","Gwen","Sad"],"STANDALONESHORTWEEKDAYS":["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],"NARROWWEEKDAYS":["S","Ll","M","M","I","G","S"],"STANDALONENARROWWEEKDAYS":["S","Ll","M","M","I","G","S"],"SHORTQUARTERS":["Ch1","Ch2","Ch3","Ch4"],"QUARTERS":["chwarter 1af","2il chwarter","3ydd chwarter","4ydd chwarter"],"AMPMS":["yb","yh"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'am' {0}","{1} 'am' {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"cy","ERAS":["CC","OC"],"ERANAMES":["Cyn Crist","Oed Crist"],"NARROWMONTHS":["I","Ch","M","E","M","M","G","A","M","H","T","Rh"],"STANDALONENARROWMONTHS":["I","Ch","M","E","M","M","G","A","M","H","T","Rh"],"MONTHS":["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],"STANDALONEMONTHS":["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],"SHORTMONTHS":["Ion","Chwef","Maw","Ebr","Mai","Meh","Gorff","Awst","Medi","Hyd","Tach","Rhag"],"STANDALONESHORTMONTHS":["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Awst","Medi","Hyd","Tach","Rhag"],"WEEKDAYS":["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],"STANDALONEWEEKDAYS":["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],"SHORTWEEKDAYS":["Sul","Llun","Maw","Mer","Iau","Gwen","Sad"],"STANDALONESHORTWEEKDAYS":["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],"NARROWWEEKDAYS":["S","Ll","M","M","I","G","S"],"STANDALONENARROWWEEKDAYS":["S","Ll","M","M","I","G","S"],"SHORTQUARTERS":["Ch1","Ch2","Ch3","Ch4"],"QUARTERS":["chwarter 1af","2il chwarter","3ydd chwarter","4ydd chwarter"],"AMPMS":["yb","yh"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'am' {0}","{1} 'am' {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/el.json b/intl/lib/src/data/dates/symbols/el.json
index a1527e7..bcbc2fd 100644
--- a/intl/lib/src/data/dates/symbols/el.json
+++ b/intl/lib/src/data/dates/symbols/el.json
@@ -1 +1 @@
-{"NAME":"el","ERAS":["π.Χ.","μ.Χ."],"ERANAMES":["προ Χριστού","μετά Χριστόν"],"NARROWMONTHS":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"STANDALONENARROWMONTHS":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"MONTHS":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"STANDALONEMONTHS":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"SHORTMONTHS":["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"STANDALONESHORTMONTHS":["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιούν","Ιούλ","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"],"WEEKDAYS":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"STANDALONEWEEKDAYS":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"SHORTWEEKDAYS":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"STANDALONESHORTWEEKDAYS":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"NARROWWEEKDAYS":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"STANDALONENARROWWEEKDAYS":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"SHORTQUARTERS":["Τ1","Τ2","Τ3","Τ4"],"QUARTERS":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"AMPMS":["π.μ.","μ.μ."],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} - {0}","{1} - {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"el","ERAS":["π.Χ.","μ.Χ."],"ERANAMES":["προ Χριστού","μετά Χριστόν"],"NARROWMONTHS":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"STANDALONENARROWMONTHS":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"MONTHS":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"STANDALONEMONTHS":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"SHORTMONTHS":["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"STANDALONESHORTMONTHS":["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιούν","Ιούλ","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"],"WEEKDAYS":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"STANDALONEWEEKDAYS":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"SHORTWEEKDAYS":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"STANDALONESHORTWEEKDAYS":["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],"NARROWWEEKDAYS":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"STANDALONENARROWWEEKDAYS":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"SHORTQUARTERS":["Τ1","Τ2","Τ3","Τ4"],"QUARTERS":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"AMPMS":["π.μ.","μ.μ."],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} - {0}","{1} - {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_AU.json b/intl/lib/src/data/dates/symbols/en_AU.json
index 735bed0..4d9e918 100644
--- a/intl/lib/src/data/dates/symbols/en_AU.json
+++ b/intl/lib/src/data/dates/symbols/en_AU.json
@@ -1 +1 @@
-{"NAME":"en_AU","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["Su.","M.","Tu.","W.","Th.","F.","Sa."],"STANDALONENARROWWEEKDAYS":["Su.","M.","Tu.","W.","Th.","F.","Sa."],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_AU","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","June","July","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["Su.","M.","Tu.","W.","Th.","F.","Sa."],"STANDALONENARROWWEEKDAYS":["Su.","M.","Tu.","W.","Th.","F.","Sa."],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_CA.json b/intl/lib/src/data/dates/symbols/en_CA.json
index 248a783..a5a828f 100644
--- a/intl/lib/src/data/dates/symbols/en_CA.json
+++ b/intl/lib/src/data/dates/symbols/en_CA.json
@@ -1 +1 @@
-{"NAME":"en_CA","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."],"STANDALONESHORTMONTHS":["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],"STANDALONESHORTWEEKDAYS":["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE, MMMM d, y","MMMM d, y","MMM d, y","y-MM-dd"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_CA","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE, MMMM d, y","MMMM d, y","MMM d, y","y-MM-dd"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_GB.json b/intl/lib/src/data/dates/symbols/en_GB.json
index 4b13587..0e9dead 100644
--- a/intl/lib/src/data/dates/symbols/en_GB.json
+++ b/intl/lib/src/data/dates/symbols/en_GB.json
@@ -1 +1 @@
-{"NAME":"en_GB","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_GB","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_IE.json b/intl/lib/src/data/dates/symbols/en_IE.json
index 1ce2905..3202f91 100644
--- a/intl/lib/src/data/dates/symbols/en_IE.json
+++ b/intl/lib/src/data/dates/symbols/en_IE.json
@@ -1 +1 @@
-{"NAME":"en_IE","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_IE","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_IN.json b/intl/lib/src/data/dates/symbols/en_IN.json
index 13b65fb..2d65be4 100644
--- a/intl/lib/src/data/dates/symbols/en_IN.json
+++ b/intl/lib/src/data/dates/symbols/en_IN.json
@@ -1 +1 @@
-{"NAME":"en_IN","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM y","dd-MMM-y","dd/MM/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_IN","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM y","dd-MMM-y","dd/MM/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_MY.json b/intl/lib/src/data/dates/symbols/en_MY.json
index 3bc000e..19218fe 100644
--- a/intl/lib/src/data/dates/symbols/en_MY.json
+++ b/intl/lib/src/data/dates/symbols/en_MY.json
@@ -1 +1 @@
-{"NAME":"en_MY","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_MY","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_NZ.json b/intl/lib/src/data/dates/symbols/en_NZ.json
new file mode 100644
index 0000000..23ba2a9
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/en_NZ.json
@@ -0,0 +1 @@
+{"NAME":"en_NZ","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d/MM/y","d/MM/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_SG.json b/intl/lib/src/data/dates/symbols/en_SG.json
index 205632f..9859191 100644
--- a/intl/lib/src/data/dates/symbols/en_SG.json
+++ b/intl/lib/src/data/dates/symbols/en_SG.json
@@ -1 +1 @@
-{"NAME":"en_SG","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_SG","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/en_ZA.json b/intl/lib/src/data/dates/symbols/en_ZA.json
index 01ee211..41552e4 100644
--- a/intl/lib/src/data/dates/symbols/en_ZA.json
+++ b/intl/lib/src/data/dates/symbols/en_ZA.json
@@ -1 +1 @@
-{"NAME":"en_ZA","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, dd MMMM y","dd MMMM y","dd MMM y","y/MM/dd"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"en_ZA","ERAS":["BC","AD"],"ERANAMES":["Before Christ","Anno Domini"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"STANDALONEMONTHS":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"],"WEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"STANDALONEWEEKDAYS":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"SHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"STANDALONESHORTWEEKDAYS":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"AMPMS":["am","pm"],"DATEFORMATS":["EEEE, dd MMMM y","dd MMMM y","dd MMM y","y/MM/dd"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'at' {0}","{1} 'at' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/es.json b/intl/lib/src/data/dates/symbols/es.json
index 041525c..d927bb5 100644
--- a/intl/lib/src/data/dates/symbols/es.json
+++ b/intl/lib/src/data/dates/symbols/es.json
@@ -1 +1 @@
-{"NAME":"es","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],"STANDALONESHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"NARROWWEEKDAYS":["D","L","M","X","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","X","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"es","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"STANDALONESHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"NARROWWEEKDAYS":["D","L","M","X","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","X","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/es_419.json b/intl/lib/src/data/dates/symbols/es_419.json
index c5909d8..bfb27e4 100644
--- a/intl/lib/src/data/dates/symbols/es_419.json
+++ b/intl/lib/src/data/dates/symbols/es_419.json
@@ -1 +1 @@
-{"NAME":"es_419","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"STANDALONESHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"NARROWWEEKDAYS":["d","l","m","m","j","v","s"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"es_419","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"STANDALONESHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"NARROWWEEKDAYS":["d","l","m","m","j","v","s"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/es_ES.json b/intl/lib/src/data/dates/symbols/es_ES.json
index e0ac019..d0e4146 100644
--- a/intl/lib/src/data/dates/symbols/es_ES.json
+++ b/intl/lib/src/data/dates/symbols/es_ES.json
@@ -1 +1 @@
-{"NAME":"es_ES","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],"STANDALONESHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"NARROWWEEKDAYS":["D","L","M","X","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","X","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"es_ES","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"STANDALONESHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"NARROWWEEKDAYS":["D","L","M","X","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","X","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/yy"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/es_MX.json b/intl/lib/src/data/dates/symbols/es_MX.json
index af67738..32967b1 100644
--- a/intl/lib/src/data/dates/symbols/es_MX.json
+++ b/intl/lib/src/data/dates/symbols/es_MX.json
@@ -1 +1 @@
-{"NAME":"es_MX","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"STANDALONESHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["1er. trim.","2º. trim.","3er. trim.","4º trim."],"QUARTERS":["1.er trimestre","2º. trimestre","3.er trimestre","4o. trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","dd/MM/yy"],"TIMEFORMATS":["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"es_MX","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"STANDALONESHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/es_US.json b/intl/lib/src/data/dates/symbols/es_US.json
index 6a88d35..6146937 100644
--- a/intl/lib/src/data/dates/symbols/es_US.json
+++ b/intl/lib/src/data/dates/symbols/es_US.json
@@ -1 +1 @@
-{"NAME":"es_US","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"STANDALONESHORTMONTHS":["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sep.","oct.","nov.","dic."],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.er trimestre","2.º trimestre","3.er trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"es_US","ERAS":["a. C.","d. C."],"ERANAMES":["antes de Cristo","después de Cristo"],"NARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["E","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"STANDALONEMONTHS":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"SHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"STANDALONESHORTMONTHS":["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],"WEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"STANDALONEWEEKDAYS":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"SHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mié","jue","vie","sáb"],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"AMPMS":["a. m.","p. m."],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d MMM y","d/M/y"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/et.json b/intl/lib/src/data/dates/symbols/et.json
index e93fc59..44cb21c 100644
--- a/intl/lib/src/data/dates/symbols/et.json
+++ b/intl/lib/src/data/dates/symbols/et.json
@@ -1 +1 @@
-{"NAME":"et","ERAS":["eKr","pKr"],"ERANAMES":["enne Kristust","pärast Kristust"],"NARROWMONTHS":["J","V","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","V","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],"STANDALONEMONTHS":["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],"SHORTMONTHS":["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],"STANDALONESHORTMONTHS":["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],"WEEKDAYS":["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],"STANDALONEWEEKDAYS":["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],"SHORTWEEKDAYS":["P","E","T","K","N","R","L"],"STANDALONESHORTWEEKDAYS":["P","E","T","K","N","R","L"],"NARROWWEEKDAYS":["P","E","T","K","N","R","L"],"STANDALONENARROWWEEKDAYS":["P","E","T","K","N","R","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d. MMMM y","d. MMMM y","d. MMM y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"et","ERAS":["eKr","pKr"],"ERANAMES":["enne Kristust","pärast Kristust"],"NARROWMONTHS":["J","V","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","V","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],"STANDALONEMONTHS":["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],"SHORTMONTHS":["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],"STANDALONESHORTMONTHS":["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],"WEEKDAYS":["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],"STANDALONEWEEKDAYS":["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],"SHORTWEEKDAYS":["P","E","T","K","N","R","L"],"STANDALONESHORTWEEKDAYS":["P","E","T","K","N","R","L"],"NARROWWEEKDAYS":["P","E","T","K","N","R","L"],"STANDALONENARROWWEEKDAYS":["P","E","T","K","N","R","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d. MMMM y","d. MMMM y","d. MMM y","dd.MM.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/eu.json b/intl/lib/src/data/dates/symbols/eu.json
index 7057893..c5e636b 100644
--- a/intl/lib/src/data/dates/symbols/eu.json
+++ b/intl/lib/src/data/dates/symbols/eu.json
@@ -1 +1 @@
-{"NAME":"eu","ERAS":["K.a.","K.o."],"ERANAMES":["K.a.","Kristo ondoren"],"NARROWMONTHS":["U","O","M","A","M","E","U","A","I","U","A","A"],"STANDALONENARROWMONTHS":["U","O","M","A","M","E","U","A","I","U","A","A"],"MONTHS":["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],"STANDALONEMONTHS":["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],"SHORTMONTHS":["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],"STANDALONESHORTMONTHS":["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],"WEEKDAYS":["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],"STANDALONEWEEKDAYS":["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],"SHORTWEEKDAYS":["ig.","al.","ar.","az.","og.","or.","lr."],"STANDALONESHORTWEEKDAYS":["ig.","al.","ar.","az.","og.","or.","lr."],"NARROWWEEKDAYS":["I","A","A","A","O","O","L"],"STANDALONENARROWWEEKDAYS":["I","A","A","A","O","O","L"],"SHORTQUARTERS":["1Hh","2Hh","3Hh","4Hh"],"QUARTERS":["1. hiruhilekoa","2. hiruhilekoa","3. hiruhilekoa","4. hiruhilekoa"],"AMPMS":["AM","PM"],"DATEFORMATS":["y('e')'ko' MMMM'ren' d('a'), EEEE","y('e')'ko' MMMM'ren' d('a')","y('e')'ko' MMM d('a')","yy/M/d"],"TIMEFORMATS":["HH:mm:ss (zzzz)","HH:mm:ss (z)","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"eu","ERAS":["K.a.","K.o."],"ERANAMES":["K.a.","Kristo ondoren"],"NARROWMONTHS":["U","O","M","A","M","E","U","A","I","U","A","A"],"STANDALONENARROWMONTHS":["U","O","M","A","M","E","U","A","I","U","A","A"],"MONTHS":["urtarrilak","otsailak","martxoak","apirilak","maiatzak","ekainak","uztailak","abuztuak","irailak","urriak","azaroak","abenduak"],"STANDALONEMONTHS":["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],"SHORTMONTHS":["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],"STANDALONESHORTMONTHS":["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],"WEEKDAYS":["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],"STANDALONEWEEKDAYS":["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],"SHORTWEEKDAYS":["ig.","al.","ar.","az.","og.","or.","lr."],"STANDALONESHORTWEEKDAYS":["ig.","al.","ar.","az.","og.","or.","lr."],"NARROWWEEKDAYS":["I","A","A","A","O","O","L"],"STANDALONENARROWWEEKDAYS":["I","A","A","A","O","O","L"],"SHORTQUARTERS":["1Hh","2Hh","3Hh","4Hh"],"QUARTERS":["1. hiruhilekoa","2. hiruhilekoa","3. hiruhilekoa","4. hiruhilekoa"],"AMPMS":["AM","PM"],"DATEFORMATS":["y('e')'ko' MMMM'ren' d('a'), EEEE","y('e')'ko' MMMM'ren' d('a')","y('e')'ko' MMM d('a')","yy/M/d"],"TIMEFORMATS":["HH:mm:ss (zzzz)","HH:mm:ss (z)","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/fa.json b/intl/lib/src/data/dates/symbols/fa.json
index b8a4a5d..6d53ef9 100644
--- a/intl/lib/src/data/dates/symbols/fa.json
+++ b/intl/lib/src/data/dates/symbols/fa.json
@@ -1 +1 @@
-{"NAME":"fa","ERAS":["ق.م.","م."],"ERANAMES":["قبل از میلاد","میلادی"],"NARROWMONTHS":["ژ","ف","م","آ","م","ژ","ژ","ا","س","ا","ن","د"],"STANDALONENARROWMONTHS":["ژ","ف","م","آ","م","ژ","ژ","ا","س","ا","ن","د"],"MONTHS":["ژانویهٔ","فوریهٔ","مارس","آوریل","مهٔ","ژوئن","ژوئیهٔ","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"STANDALONEMONTHS":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"SHORTMONTHS":["ژانویهٔ","فوریهٔ","مارس","آوریل","مهٔ","ژوئن","ژوئیهٔ","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"STANDALONESHORTMONTHS":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"WEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONEWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"SHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONESHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"NARROWWEEKDAYS":["ی","د","س","چ","پ","ج","ش"],"STANDALONENARROWWEEKDAYS":["ی","د","س","چ","پ","ج","ش"],"SHORTQUARTERS":["س‌م۱","س‌م۲","س‌م۳","س‌م۴"],"QUARTERS":["سه‌ماههٔ اول","سه‌ماههٔ دوم","سه‌ماههٔ سوم","سه‌ماههٔ چهارم"],"AMPMS":["قبل‌ازظهر","بعدازظهر"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","y/M/d"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,4],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1}، ساعت {0}","{1}، ساعت {0}","{1}،‏ {0}","{1}،‏ {0}"],"ZERODIGIT":"۰"}
\ No newline at end of file
+{"NAME":"fa","ERAS":["ق.م.","م."],"ERANAMES":["قبل از میلاد","میلادی"],"NARROWMONTHS":["ژ","ف","م","آ","م","ژ","ژ","ا","س","ا","ن","د"],"STANDALONENARROWMONTHS":["ژ","ف","م","آ","م","ژ","ژ","ا","س","ا","ن","د"],"MONTHS":["ژانویهٔ","فوریهٔ","مارس","آوریل","مهٔ","ژوئن","ژوئیهٔ","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"STANDALONEMONTHS":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"SHORTMONTHS":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"STANDALONESHORTMONTHS":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"WEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONEWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"SHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"STANDALONESHORTWEEKDAYS":["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"NARROWWEEKDAYS":["ی","د","س","چ","پ","ج","ش"],"STANDALONENARROWWEEKDAYS":["ی","د","س","چ","پ","ج","ش"],"SHORTQUARTERS":["س‌م۱","س‌م۲","س‌م۳","س‌م۴"],"QUARTERS":["سه‌ماههٔ اول","سه‌ماههٔ دوم","سه‌ماههٔ سوم","سه‌ماههٔ چهارم"],"AMPMS":["قبل‌ازظهر","بعدازظهر"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","y/M/d"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[4,4],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1}، ساعت {0}","{1}، ساعت {0}","{1}،‏ {0}","{1}،‏ {0}"],"ZERODIGIT":"۰"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/fr.json b/intl/lib/src/data/dates/symbols/fr.json
index 345ddd8..4e9c3ba 100644
--- a/intl/lib/src/data/dates/symbols/fr.json
+++ b/intl/lib/src/data/dates/symbols/fr.json
@@ -1 +1 @@
-{"NAME":"fr","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1} 'à' {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"fr","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1}, {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/fr_CA.json b/intl/lib/src/data/dates/symbols/fr_CA.json
index 32322af..8d2082c 100644
--- a/intl/lib/src/data/dates/symbols/fr_CA.json
+++ b/intl/lib/src/data/dates/symbols/fr_CA.json
@@ -1 +1 @@
-{"NAME":"fr_CA","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juill.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juill.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","yy-MM-dd"],"TIMEFORMATS":["HH 'h' mm 'min' ss 's' zzzz","HH 'h' mm 'min' ss 's' z","HH 'h' mm 'min' ss 's'","HH 'h' mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"fr_CA","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juill.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juill.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","y-MM-dd"],"TIMEFORMATS":["HH 'h' mm 'min' ss 's' zzzz","HH 'h' mm 'min' ss 's' z","HH 'h' mm 'min' ss 's'","HH 'h' mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1}, {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/fr_CH.json b/intl/lib/src/data/dates/symbols/fr_CH.json
index 68b4c83..29798d4 100644
--- a/intl/lib/src/data/dates/symbols/fr_CH.json
+++ b/intl/lib/src/data/dates/symbols/fr_CH.json
@@ -1 +1 @@
-{"NAME":"fr_CH","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH.mm:ss 'h' zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1} 'à' {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"fr_CH","ERAS":["av. J.-C.","ap. J.-C."],"ERANAMES":["avant Jésus-Christ","après Jésus-Christ"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"STANDALONEMONTHS":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"SHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"STANDALONESHORTMONTHS":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"WEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"STANDALONEWEEKDAYS":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"SHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"STANDALONESHORTWEEKDAYS":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.yy"],"TIMEFORMATS":["HH.mm:ss 'h' zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'à' {0}","{1} 'à' {0}","{1}, {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/fur.json b/intl/lib/src/data/dates/symbols/fur.json
new file mode 100644
index 0000000..65da8ca
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/fur.json
@@ -0,0 +1 @@
+{"NAME":"fur","ERAS":["pdC","ddC"],"ERANAMES":["pdC","ddC"],"NARROWMONTHS":["Z","F","M","A","M","J","L","A","S","O","N","D"],"STANDALONENARROWMONTHS":["Z","F","M","A","M","J","L","A","S","O","N","D"],"MONTHS":["Zenâr","Fevrâr","Març","Avrîl","Mai","Jugn","Lui","Avost","Setembar","Otubar","Novembar","Dicembar"],"STANDALONEMONTHS":["Zenâr","Fevrâr","Març","Avrîl","Mai","Jugn","Lui","Avost","Setembar","Otubar","Novembar","Dicembar"],"SHORTMONTHS":["Zen","Fev","Mar","Avr","Mai","Jug","Lui","Avo","Set","Otu","Nov","Dic"],"STANDALONESHORTMONTHS":["Zen","Fev","Mar","Avr","Mai","Jug","Lui","Avo","Set","Otu","Nov","Dic"],"WEEKDAYS":["domenie","lunis","martars","miercus","joibe","vinars","sabide"],"STANDALONEWEEKDAYS":["domenie","lunis","martars","miercus","joibe","vinars","sabide"],"SHORTWEEKDAYS":["dom","lun","mar","mie","joi","vin","sab"],"STANDALONESHORTWEEKDAYS":["dom","lun","mar","mie","joi","vin","sab"],"NARROWWEEKDAYS":["D","L","M","M","J","V","S"],"STANDALONENARROWWEEKDAYS":["D","L","M","M","J","V","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["Prin trimestri","Secont trimestri","Tierç trimestri","Cuart trimestri"],"AMPMS":["a.","p."],"DATEFORMATS":["EEEE d 'di' MMMM 'dal' y","d 'di' MMMM 'dal' y","dd/MM/y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/mg.json b/intl/lib/src/data/dates/symbols/mg.json
new file mode 100644
index 0000000..0e0bfa8
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/mg.json
@@ -0,0 +1 @@
+{"NAME":"mg","ERAS":["BC","AD"],"ERANAMES":["Alohan’i JK","Aorian’i JK"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["Janoary","Febroary","Martsa","Aprily","Mey","Jona","Jolay","Aogositra","Septambra","Oktobra","Novambra","Desambra"],"STANDALONEMONTHS":["Janoary","Febroary","Martsa","Aprily","Mey","Jona","Jolay","Aogositra","Septambra","Oktobra","Novambra","Desambra"],"SHORTMONTHS":["Jan","Feb","Mar","Apr","Mey","Jon","Jol","Aog","Sep","Okt","Nov","Des"],"STANDALONESHORTMONTHS":["Jan","Feb","Mar","Apr","Mey","Jon","Jol","Aog","Sep","Okt","Nov","Des"],"WEEKDAYS":["Alahady","Alatsinainy","Talata","Alarobia","Alakamisy","Zoma","Asabotsy"],"STANDALONEWEEKDAYS":["Alahady","Alatsinainy","Talata","Alarobia","Alakamisy","Zoma","Asabotsy"],"SHORTWEEKDAYS":["Alah","Alats","Tal","Alar","Alak","Zom","Asab"],"STANDALONESHORTWEEKDAYS":["Alah","Alats","Tal","Alar","Alak","Zom","Asab"],"NARROWWEEKDAYS":["A","A","T","A","A","Z","A"],"STANDALONENARROWWEEKDAYS":["A","A","T","A","A","Z","A"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["Telovolana voalohany","Telovolana faharoa","Telovolana fahatelo","Telovolana fahefatra"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","y MMM d","y-MM-dd"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/mk.json b/intl/lib/src/data/dates/symbols/mk.json
index 283fc77..9c14515 100644
--- a/intl/lib/src/data/dates/symbols/mk.json
+++ b/intl/lib/src/data/dates/symbols/mk.json
@@ -1 +1 @@
-{"NAME":"mk","ERAS":["пр.н.е.","н.е."],"ERANAMES":["пред нашата ера","од нашата ера"],"NARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"STANDALONENARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"MONTHS":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"STANDALONEMONTHS":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"SHORTMONTHS":["јан.","фев.","мар.","апр.","мај","јун.","јул.","авг.","септ.","окт.","ноем.","дек."],"STANDALONESHORTMONTHS":["јан.","фев.","мар.","апр.","мај","јун.","јул.","авг.","септ.","окт.","ноем.","дек."],"WEEKDAYS":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"STANDALONEWEEKDAYS":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"SHORTWEEKDAYS":["нед.","пон.","вт.","сре.","чет.","пет.","саб."],"STANDALONESHORTWEEKDAYS":["нед.","пон.","вто.","сре.","чет.","пет.","саб."],"NARROWWEEKDAYS":["н","п","в","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","в","с","ч","п","с"],"SHORTQUARTERS":["јан-мар","апр-јун","јул-сеп","окт-дек"],"QUARTERS":["прво тромесечје","второ тромесечје","трето тромесечје","четврто тромесечје"],"AMPMS":["претпладне","попладне"],"DATEFORMATS":["EEEE, dd MMMM y","dd MMMM y","dd.M.y","dd.M.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"mk","ERAS":["п.н.е.","н.е."],"ERANAMES":["пред нашата ера","од нашата ера"],"NARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"STANDALONENARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"MONTHS":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"STANDALONEMONTHS":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"SHORTMONTHS":["јан.","фев.","мар.","апр.","мај","јун.","јул.","авг.","септ.","окт.","ноем.","дек."],"STANDALONESHORTMONTHS":["јан.","фев.","мар.","апр.","мај","јун.","јул.","авг.","септ.","окт.","ноем.","дек."],"WEEKDAYS":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"STANDALONEWEEKDAYS":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"SHORTWEEKDAYS":["нед.","пон.","вто.","сре.","чет.","пет.","саб."],"STANDALONESHORTWEEKDAYS":["нед.","пон.","вто.","сре.","чет.","пет.","саб."],"NARROWWEEKDAYS":["н","п","в","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","в","с","ч","п","с"],"SHORTQUARTERS":["јан-мар","апр-јун","јул-сеп","окт-дек"],"QUARTERS":["прво тромесечје","второ тромесечје","трето тромесечје","четврто тромесечје"],"AMPMS":["претпладне","попладне"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d.M.y","d.M.yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1}, 'во' {0}","{1}, 'во' {0}","{1}, 'во' {0}","{1}, 'во' {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/mn.json b/intl/lib/src/data/dates/symbols/mn.json
index 53508b0..7e8dbb5 100644
--- a/intl/lib/src/data/dates/symbols/mn.json
+++ b/intl/lib/src/data/dates/symbols/mn.json
@@ -1 +1 @@
-{"NAME":"mn","ERAS":["МЭӨ","МЭ"],"ERANAMES":["манай эриний өмнөх","манай эриний"],"NARROWMONTHS":["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],"STANDALONENARROWMONTHS":["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],"MONTHS":["нэгдүгээр сар","хоёрдугаар сар","гуравдугаар сар","дөрөвдүгээр сар","тавдугаар сар","зургаадугаар сар","долоодугаар сар","наймдугаар сар","есдүгээр сар","аравдугаар сар","арван нэгдүгээр сар","арван хоёрдугаар сар"],"STANDALONEMONTHS":["Нэгдүгээр сар","Хоёрдугаар сар","Гуравдугаар сар","Дөрөвдүгээр сар","Тавдугаар сар","Зургаадугаар сар","Долоодугаар сар","Наймдугаар сар","Есдүгээр сар","Аравдугаар сар","Арван нэгдүгээр сар","Арван хоёрдугаар сар"],"SHORTMONTHS":["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],"STANDALONESHORTMONTHS":["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],"WEEKDAYS":["ням","даваа","мягмар","лхагва","пүрэв","баасан","бямба"],"STANDALONEWEEKDAYS":["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],"SHORTWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"STANDALONESHORTWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"NARROWWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"STANDALONENARROWWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"SHORTQUARTERS":["I улирал","II улирал","III улирал","IV улирал"],"QUARTERS":["1-р улирал","2-р улирал","3-р улирал","4-р улирал"],"AMPMS":["ү.ө.","ү.х."],"DATEFORMATS":["y.MM.dd, EEEE","y.MM.dd","y 'оны' MMM'ын' d","y.MM.dd"],"TIMEFORMATS":["HH:mm:ss (zzzz)","HH:mm:ss (z)","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"mn","ERAS":["МЭӨ","МЭ"],"ERANAMES":["манай эриний өмнөх","манай эриний"],"NARROWMONTHS":["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],"STANDALONENARROWMONTHS":["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],"MONTHS":["нэгдүгээр сар","хоёрдугаар сар","гуравдугаар сар","дөрөвдүгээр сар","тавдугаар сар","зургаадугаар сар","долоодугаар сар","наймдугаар сар","есдүгээр сар","аравдугаар сар","арван нэгдүгээр сар","арван хоёрдугаар сар"],"STANDALONEMONTHS":["Нэгдүгээр сар","Хоёрдугаар сар","Гуравдугаар сар","Дөрөвдүгээр сар","Тавдугаар сар","Зургаадугаар сар","Долоодугаар сар","Наймдугаар сар","Есдүгээр сар","Аравдугаар сар","Арван нэгдүгээр сар","Арван хоёрдугаар сар"],"SHORTMONTHS":["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],"STANDALONESHORTMONTHS":["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],"WEEKDAYS":["ням","даваа","мягмар","лхагва","пүрэв","баасан","бямба"],"STANDALONEWEEKDAYS":["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],"SHORTWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"STANDALONESHORTWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"NARROWWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"STANDALONENARROWWEEKDAYS":["Ня","Да","Мя","Лх","Пү","Ба","Бя"],"SHORTQUARTERS":["I улирал","II улирал","III улирал","IV улирал"],"QUARTERS":["1-р улирал","2-р улирал","3-р улирал","4-р улирал"],"AMPMS":["ү.ө.","ү.х."],"DATEFORMATS":["y 'оны' MMMM'ын' d, EEEE 'гараг'","y 'оны' MMMM'ын' d","y 'оны' MMM'ын' d","y.MM.dd"],"TIMEFORMATS":["HH:mm:ss (zzzz)","HH:mm:ss (z)","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/mr.json b/intl/lib/src/data/dates/symbols/mr.json
index 91ccfba..e548088 100644
--- a/intl/lib/src/data/dates/symbols/mr.json
+++ b/intl/lib/src/data/dates/symbols/mr.json
@@ -1 +1 @@
-{"NAME":"mr","ERAS":["इ. स. पू.","इ. स."],"ERANAMES":["ईसवीसनपूर्व","ईसवीसन"],"NARROWMONTHS":["जा","फे","मा","ए","मे","जू","जु","ऑ","स","ऑ","नो","डि"],"STANDALONENARROWMONTHS":["जा","फे","मा","ए","मे","जू","जु","ऑ","स","ऑ","नो","डि"],"MONTHS":["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर"],"STANDALONEMONTHS":["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर"],"SHORTMONTHS":["जाने","फेब्रु","मार्च","एप्रि","मे","जून","जुलै","ऑग","सप्टें","ऑक्टो","नोव्हें","डिसें"],"STANDALONESHORTMONTHS":["जाने","फेब्रु","मार्च","एप्रि","मे","जून","जुलै","ऑग","सप्टें","ऑक्टो","नोव्हें","डिसें"],"WEEKDAYS":["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],"STANDALONEWEEKDAYS":["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],"SHORTWEEKDAYS":["रवि","सोम","मंगळ","बुध","गुरु","शुक्र","शनि"],"STANDALONESHORTWEEKDAYS":["रवि","सोम","मंगळ","बुध","गुरु","शुक्र","शनि"],"NARROWWEEKDAYS":["र","सो","मं","बु","गु","शु","श"],"STANDALONENARROWWEEKDAYS":["र","सो","मं","बु","गु","शु","श"],"SHORTQUARTERS":["ति१","ति२","ति३","ति४"],"QUARTERS":["प्रथम तिमाही","द्वितीय तिमाही","तृतीय तिमाही","चतुर्थ तिमाही"],"AMPMS":["म.पू.","म.उ."],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} रोजी {0}","{1} रोजी {0}","{1}, {0}","{1}, {0}"],"ZERODIGIT":"०"}
\ No newline at end of file
+{"NAME":"mr","ERAS":["इ. स. पू.","इ. स."],"ERANAMES":["ईसवीसनपूर्व","ईसवीसन"],"NARROWMONTHS":["जा","फे","मा","ए","मे","जू","जु","ऑ","स","ऑ","नो","डि"],"STANDALONENARROWMONTHS":["जा","फे","मा","ए","मे","जू","जु","ऑ","स","ऑ","नो","डि"],"MONTHS":["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर"],"STANDALONEMONTHS":["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर"],"SHORTMONTHS":["जाने","फेब्रु","मार्च","एप्रि","मे","जून","जुलै","ऑग","सप्टें","ऑक्टो","नोव्हें","डिसें"],"STANDALONESHORTMONTHS":["जाने","फेब्रु","मार्च","एप्रि","मे","जून","जुलै","ऑग","सप्टें","ऑक्टो","नोव्हें","डिसें"],"WEEKDAYS":["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],"STANDALONEWEEKDAYS":["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],"SHORTWEEKDAYS":["रवि","सोम","मंगळ","बुध","गुरु","शुक्र","शनि"],"STANDALONESHORTWEEKDAYS":["रवि","सोम","मंगळ","बुध","गुरु","शुक्र","शनि"],"NARROWWEEKDAYS":["र","सो","मं","बु","गु","शु","श"],"STANDALONENARROWWEEKDAYS":["र","सो","मं","बु","गु","शु","श"],"SHORTQUARTERS":["ति१","ति२","ति३","ति४"],"QUARTERS":["प्रथम तिमाही","द्वितीय तिमाही","तृतीय तिमाही","चतुर्थ तिमाही"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],"TIMEFORMATS":["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} रोजी {0}","{1} रोजी {0}","{1}, {0}","{1}, {0}"],"ZERODIGIT":"०"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/my.json b/intl/lib/src/data/dates/symbols/my.json
index 93c9fb5..015932f 100644
--- a/intl/lib/src/data/dates/symbols/my.json
+++ b/intl/lib/src/data/dates/symbols/my.json
@@ -1 +1 @@
-{"NAME":"my","ERAS":["ဘီစီ","အဒေီ"],"ERANAMES":["ခရစ်တော် မပေါ်မီနှစ်","ခရစ်နှစ်"],"NARROWMONTHS":["ဇ","ဖ","မ","ဧ","မ","ဇ","ဇ","ဩ","စ","အ","န","ဒ"],"STANDALONENARROWMONTHS":["ဇ","ဖ","မ","ဧ","မ","ဇ","ဇ","ဩ","စ","အ","န","ဒ"],"MONTHS":["ဇန်နဝါရီ","ဖေဖော်ဝါရီ","မတ်","ဧပြီ","မေ","ဇွန်","ဇူလိုင်","ဩဂုတ်","စက်တင်ဘာ","အောက်တိုဘာ","နိုဝင်ဘာ","ဒီဇင်ဘာ"],"STANDALONEMONTHS":["ဇန်နဝါရီ","ဖေဖော်ဝါရီ","မတ်","ဧပြီ","မေ","ဇွန်","ဇူလိုင်","ဩဂုတ်","စက်တင်ဘာ","အောက်တိုဘာ","နိုဝင်ဘာ","ဒီဇင်ဘာ"],"SHORTMONTHS":["ဇန်","ဖေ","မတ်","ဧ","မေ","ဇွန်","ဇူ","ဩ","စက်","အောက်","နို","ဒီ"],"STANDALONESHORTMONTHS":["ဇန်","ဖေ","မတ်","ဧ","မေ","ဇွန်","ဇူ","ဩ","စက်","အောက်","နို","ဒီ"],"WEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"STANDALONEWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"SHORTWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"STANDALONESHORTWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"NARROWWEEKDAYS":["တ","တ","အ","ဗ","က","သ","စ"],"STANDALONENARROWWEEKDAYS":["တ","တ","အ","ဗ","က","သ","စ"],"SHORTQUARTERS":["ပထမ သုံးလပတ်","ဒုတိယ သုံးလပတ်","တတိယ သုံးလပတ်","စတုတ္ထ သုံးလပတ်"],"QUARTERS":["ပထမ သုံးလပတ်","ဒုတိယ သုံးလပတ်","တတိယ သုံးလပတ်","စတုတ္ထ သုံးလပတ်"],"AMPMS":["နံနက်","ညနေ"],"DATEFORMATS":["y၊ MMMM d၊ EEEE","y၊ d MMMM","y၊ MMM d","dd-MM-yy"],"TIMEFORMATS":["zzzz HH:mm:ss","z HH:mm:ss","B HH:mm:ss","B H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"၀"}
\ No newline at end of file
+{"NAME":"my","ERAS":["ဘီစီ","အဒေီ"],"ERANAMES":["ခရစ်တော် မပေါ်မီနှစ်","ခရစ်နှစ်"],"NARROWMONTHS":["ဇ","ဖ","မ","ဧ","မ","ဇ","ဇ","ဩ","စ","အ","န","ဒ"],"STANDALONENARROWMONTHS":["ဇ","ဖ","မ","ဧ","မ","ဇ","ဇ","ဩ","စ","အ","န","ဒ"],"MONTHS":["ဇန်နဝါရီ","ဖေဖော်ဝါရီ","မတ်","ဧပြီ","မေ","ဇွန်","ဇူလိုင်","ဩဂုတ်","စက်တင်ဘာ","အောက်တိုဘာ","နိုဝင်ဘာ","ဒီဇင်ဘာ"],"STANDALONEMONTHS":["ဇန်နဝါရီ","ဖေဖော်ဝါရီ","မတ်","ဧပြီ","မေ","ဇွန်","ဇူလိုင်","ဩဂုတ်","စက်တင်ဘာ","အောက်တိုဘာ","နိုဝင်ဘာ","ဒီဇင်ဘာ"],"SHORTMONTHS":["ဇန်","ဖေ","မတ်","ဧ","မေ","ဇွန်","ဇူ","ဩ","စက်","အောက်","နို","ဒီ"],"STANDALONESHORTMONTHS":["ဇန်","ဖေ","မတ်","ဧ","မေ","ဇွန်","ဇူ","ဩ","စက်","အောက်","နို","ဒီ"],"WEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"STANDALONEWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"SHORTWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"STANDALONESHORTWEEKDAYS":["တနင်္ဂနွေ","တနင်္လာ","အင်္ဂါ","ဗုဒ္ဓဟူး","ကြာသပတေး","သောကြာ","စနေ"],"NARROWWEEKDAYS":["တ","တ","အ","ဗ","က","သ","စ"],"STANDALONENARROWWEEKDAYS":["တ","တ","အ","ဗ","က","သ","စ"],"SHORTQUARTERS":["ပထမ သုံးလပတ်","ဒုတိယ သုံးလပတ်","တတိယ သုံးလပတ်","စတုတ္ထ သုံးလပတ်"],"QUARTERS":["ပထမ သုံးလပတ်","ဒုတိယ သုံးလပတ်","တတိယ သုံးလပတ်","စတုတ္ထ သုံးလပတ်"],"AMPMS":["နံနက်","ညနေ"],"DATEFORMATS":["y- MMMM d- EEEE","y- MMMM d","y- MMM d","dd-MM-yy"],"TIMEFORMATS":["zzzz HH:mm:ss","z HH:mm:ss","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"၀"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/nb.json b/intl/lib/src/data/dates/symbols/nb.json
index e3f569a..da1356e 100644
--- a/intl/lib/src/data/dates/symbols/nb.json
+++ b/intl/lib/src/data/dates/symbols/nb.json
@@ -1 +1 @@
-{"NAME":"nb","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"nb","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'kl'. {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/no.json b/intl/lib/src/data/dates/symbols/no.json
index b0dd3b3..90d322b 100644
--- a/intl/lib/src/data/dates/symbols/no.json
+++ b/intl/lib/src/data/dates/symbols/no.json
@@ -1 +1 @@
-{"NAME":"no","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"no","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'kl'. {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/no_NO.json b/intl/lib/src/data/dates/symbols/no_NO.json
index d41d713..2aed2e1 100644
--- a/intl/lib/src/data/dates/symbols/no_NO.json
+++ b/intl/lib/src/data/dates/symbols/no_NO.json
@@ -1 +1 @@
-{"NAME":"no_NO","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"no_NO","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["før Kristus","etter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"STANDALONEMONTHS":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","mai","jun.","jul.","aug.","sep.","okt.","nov.","des."],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],"WEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"STANDALONEWEEKDAYS":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"SHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"STANDALONESHORTWEEKDAYS":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"AMPMS":["a.m.","p.m."],"DATEFORMATS":["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} 'kl'. {0}","{1} 'kl'. {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/nyn.json b/intl/lib/src/data/dates/symbols/nyn.json
new file mode 100644
index 0000000..d33d957
--- /dev/null
+++ b/intl/lib/src/data/dates/symbols/nyn.json
@@ -0,0 +1 @@
+{"NAME":"nyn","ERAS":["BC","AD"],"ERANAMES":["Kurisito Atakaijire","Kurisito Yaijire"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["Okwokubanza","Okwakabiri","Okwakashatu","Okwakana","Okwakataana","Okwamukaaga","Okwamushanju","Okwamunaana","Okwamwenda","Okwaikumi","Okwaikumi na kumwe","Okwaikumi na ibiri"],"STANDALONEMONTHS":["Okwokubanza","Okwakabiri","Okwakashatu","Okwakana","Okwakataana","Okwamukaaga","Okwamushanju","Okwamunaana","Okwamwenda","Okwaikumi","Okwaikumi na kumwe","Okwaikumi na ibiri"],"SHORTMONTHS":["KBZ","KBR","KST","KKN","KTN","KMK","KMS","KMN","KMW","KKM","KNK","KNB"],"STANDALONESHORTMONTHS":["KBZ","KBR","KST","KKN","KTN","KMK","KMS","KMN","KMW","KKM","KNK","KNB"],"WEEKDAYS":["Sande","Orwokubanza","Orwakabiri","Orwakashatu","Orwakana","Orwakataano","Orwamukaaga"],"STANDALONEWEEKDAYS":["Sande","Orwokubanza","Orwakabiri","Orwakashatu","Orwakana","Orwakataano","Orwamukaaga"],"SHORTWEEKDAYS":["SAN","ORK","OKB","OKS","OKN","OKT","OMK"],"STANDALONESHORTWEEKDAYS":["SAN","ORK","OKB","OKS","OKN","OKT","OMK"],"NARROWWEEKDAYS":["S","K","R","S","N","T","M"],"STANDALONENARROWWEEKDAYS":["S","K","R","S","N","T","M"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["KWOTA 1","KWOTA 2","KWOTA 3","KWOTA 4"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/pl.json b/intl/lib/src/data/dates/symbols/pl.json
index ae58b67..4fba18b 100644
--- a/intl/lib/src/data/dates/symbols/pl.json
+++ b/intl/lib/src/data/dates/symbols/pl.json
@@ -1 +1 @@
-{"NAME":"pl","ERAS":["p.n.e.","n.e."],"ERANAMES":["przed naszą erą","naszej ery"],"NARROWMONTHS":["s","l","m","k","m","c","l","s","w","p","l","g"],"STANDALONENARROWMONTHS":["S","L","M","K","M","C","L","S","W","P","L","G"],"MONTHS":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"STANDALONEMONTHS":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"SHORTMONTHS":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"STANDALONESHORTMONTHS":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"WEEKDAYS":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"STANDALONEWEEKDAYS":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"SHORTWEEKDAYS":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"STANDALONESHORTWEEKDAYS":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"NARROWWEEKDAYS":["n","p","w","ś","c","p","s"],"STANDALONENARROWWEEKDAYS":["N","P","W","Ś","C","P","S"],"SHORTQUARTERS":["I kw.","II kw.","III kw.","IV kw."],"QUARTERS":["I kwartał","II kwartał","III kwartał","IV kwartał"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"pl","ERAS":["p.n.e.","n.e."],"ERANAMES":["przed naszą erą","naszej ery"],"NARROWMONTHS":["s","l","m","k","m","c","l","s","w","p","l","g"],"STANDALONENARROWMONTHS":["S","L","M","K","M","C","L","S","W","P","L","G"],"MONTHS":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"STANDALONEMONTHS":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"SHORTMONTHS":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"STANDALONESHORTMONTHS":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"WEEKDAYS":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"STANDALONEWEEKDAYS":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"SHORTWEEKDAYS":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"STANDALONESHORTWEEKDAYS":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"NARROWWEEKDAYS":["n","p","w","ś","c","p","s"],"STANDALONENARROWWEEKDAYS":["N","P","W","Ś","C","P","S"],"SHORTQUARTERS":["I kw.","II kw.","III kw.","IV kw."],"QUARTERS":["I kwartał","II kwartał","III kwartał","IV kwartał"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y","d MMMM y","d MMM y","d.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ps.json b/intl/lib/src/data/dates/symbols/ps.json
index fa58f8f..08a70e7 100644
--- a/intl/lib/src/data/dates/symbols/ps.json
+++ b/intl/lib/src/data/dates/symbols/ps.json
@@ -1 +1 @@
-{"NAME":"ps","ERAS":["له میلاد وړاندې","م."],"ERANAMES":["له میلاد څخه وړاندې","له میلاد څخه وروسته"],"NARROWMONTHS":["ج","ف","م","ا","م","ج","ج","ا","س","ا","ن","د"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اگست","سېپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONEMONTHS":["جنوري","فېبروري","مارچ","اپریل","مۍ","جون","جولای","اگست","سپتمبر","اکتوبر","نومبر","دسمبر"],"SHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اگست","سېپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONESHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اگست","سپتمبر","اکتوبر","نومبر","دسمبر"],"WEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"STANDALONEWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"SHORTWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"STANDALONESHORTWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"QUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"AMPMS":["غ.م.","غ.و."],"DATEFORMATS":["EEEE د y د MMMM d","د y د MMMM d","y MMM d","y/M/d"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[3,4],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"۰"}
\ No newline at end of file
+{"NAME":"ps","ERAS":["له میلاد وړاندې","م."],"ERANAMES":["له میلاد څخه وړاندې","له میلاد څخه وروسته"],"NARROWMONTHS":["ج","ف","م","ا","م","ج","ج","ا","س","ا","ن","د"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سېپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONEMONTHS":["جنوري","فېبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"SHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سېپتمبر","اکتوبر","نومبر","دسمبر"],"STANDALONESHORTMONTHS":["جنوري","فبروري","مارچ","اپریل","مۍ","جون","جولای","اګست","سپتمبر","اکتوبر","نومبر","دسمبر"],"WEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"STANDALONEWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"SHORTWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"STANDALONESHORTWEEKDAYS":["يونۍ","دونۍ","درېنۍ","څلرنۍ","پينځنۍ","جمعه","اونۍ"],"NARROWWEEKDAYS":["S","M","T","W","T","F","S"],"STANDALONENARROWWEEKDAYS":["S","M","T","W","T","F","S"],"SHORTQUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"QUARTERS":["لومړۍ ربعه","۲مه ربعه","۳مه ربعه","۴مه ربعه"],"AMPMS":["غ.م.","غ.و."],"DATEFORMATS":["EEEE د y د MMMM d","د y د MMMM d","y MMM d","y/M/d"],"TIMEFORMATS":["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":5,"WEEKENDRANGE":[3,4],"FIRSTWEEKCUTOFFDAY":4,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],"ZERODIGIT":"۰"}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/pt.json b/intl/lib/src/data/dates/symbols/pt.json
index 993da5d..cc4d0d6 100644
--- a/intl/lib/src/data/dates/symbols/pt.json
+++ b/intl/lib/src/data/dates/symbols/pt.json
@@ -1 +1 @@
-{"NAME":"pt","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"STANDALONESHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["dom","seg","ter","qua","qui","sex","sáb"],"STANDALONESHORTWEEKDAYS":["dom","seg","ter","qua","qui","sex","sáb"],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d 'de' MMM 'de' y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"pt","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"STANDALONESHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["dom.","seg.","ter.","qua.","qui.","sex.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","seg.","ter.","qua.","qui.","sex.","sáb."],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d 'de' MMM 'de' y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/pt_BR.json b/intl/lib/src/data/dates/symbols/pt_BR.json
index fc02b93..1646110 100644
--- a/intl/lib/src/data/dates/symbols/pt_BR.json
+++ b/intl/lib/src/data/dates/symbols/pt_BR.json
@@ -1 +1 @@
-{"NAME":"pt_BR","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"STANDALONESHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["dom","seg","ter","qua","qui","sex","sáb"],"STANDALONESHORTWEEKDAYS":["dom","seg","ter","qua","qui","sex","sáb"],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d 'de' MMM 'de' y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"pt_BR","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"STANDALONESHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["dom.","seg.","ter.","qua.","qui.","sex.","sáb."],"STANDALONESHORTWEEKDAYS":["dom.","seg.","ter.","qua.","qui.","sex.","sáb."],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","d 'de' MMM 'de' y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/pt_PT.json b/intl/lib/src/data/dates/symbols/pt_PT.json
index 1581abb..813e005 100644
--- a/intl/lib/src/data/dates/symbols/pt_PT.json
+++ b/intl/lib/src/data/dates/symbols/pt_PT.json
@@ -1 +1 @@
-{"NAME":"pt_PT","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"STANDALONESHORTMONTHS":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["domingo","segunda","terça","quarta","quinta","sexta","sábado"],"STANDALONESHORTWEEKDAYS":["domingo","segunda","terça","quarta","quinta","sexta","sábado"],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"AMPMS":["da manhã","da tarde"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","dd/MM/y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":2,"DATETIMEFORMATS":["{1} 'às' {0}","{1} 'às' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"pt_PT","ERAS":["a.C.","d.C."],"ERANAMES":["antes de Cristo","depois de Cristo"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"STANDALONEMONTHS":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"SHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"STANDALONESHORTMONTHS":["jan.","fev.","mar.","abr.","mai.","jun.","jul.","ago.","set.","out.","nov.","dez."],"WEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"STANDALONEWEEKDAYS":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"SHORTWEEKDAYS":["domingo","segunda","terça","quarta","quinta","sexta","sábado"],"STANDALONESHORTWEEKDAYS":["domingo","segunda","terça","quarta","quinta","sexta","sábado"],"NARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"STANDALONENARROWWEEKDAYS":["D","S","T","Q","Q","S","S"],"SHORTQUARTERS":["T1","T2","T3","T4"],"QUARTERS":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"AMPMS":["da manhã","da tarde"],"DATEFORMATS":["EEEE, d 'de' MMMM 'de' y","d 'de' MMMM 'de' y","dd/MM/y","dd/MM/yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":2,"DATETIMEFORMATS":["{1} 'às' {0}","{1} 'às' {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ru.json b/intl/lib/src/data/dates/symbols/ru.json
index 0a56a75..e896fe6 100644
--- a/intl/lib/src/data/dates/symbols/ru.json
+++ b/intl/lib/src/data/dates/symbols/ru.json
@@ -1 +1 @@
-{"NAME":"ru","ERAS":["до н. э.","н. э."],"ERANAMES":["до Рождества Христова","от Рождества Христова"],"NARROWMONTHS":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"STANDALONENARROWMONTHS":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"MONTHS":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"STANDALONEMONTHS":["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"],"SHORTMONTHS":["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],"STANDALONESHORTMONTHS":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"WEEKDAYS":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"STANDALONEWEEKDAYS":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"SHORTWEEKDAYS":["вс","пн","вт","ср","чт","пт","сб"],"STANDALONESHORTWEEKDAYS":["вс","пн","вт","ср","чт","пт","сб"],"NARROWWEEKDAYS":["вс","пн","вт","ср","чт","пт","сб"],"STANDALONENARROWWEEKDAYS":["В","П","В","С","Ч","П","С"],"SHORTQUARTERS":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"QUARTERS":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y 'г'.","d MMMM y 'г'.","d MMM y 'г'.","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"ru","ERAS":["до н. э.","н. э."],"ERANAMES":["до Рождества Христова","от Рождества Христова"],"NARROWMONTHS":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"STANDALONENARROWMONTHS":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"MONTHS":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"STANDALONEMONTHS":["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"],"SHORTMONTHS":["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],"STANDALONESHORTMONTHS":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"WEEKDAYS":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"STANDALONEWEEKDAYS":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"SHORTWEEKDAYS":["вс","пн","вт","ср","чт","пт","сб"],"STANDALONESHORTWEEKDAYS":["вс","пн","вт","ср","чт","пт","сб"],"NARROWWEEKDAYS":["В","П","В","С","Ч","П","С"],"STANDALONENARROWWEEKDAYS":["В","П","В","С","Ч","П","С"],"SHORTQUARTERS":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"QUARTERS":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d MMMM y 'г'.","d MMMM y 'г'.","d MMM y 'г'.","dd.MM.y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/sl.json b/intl/lib/src/data/dates/symbols/sl.json
index 355e40a..771c395 100644
--- a/intl/lib/src/data/dates/symbols/sl.json
+++ b/intl/lib/src/data/dates/symbols/sl.json
@@ -1 +1 @@
-{"NAME":"sl","ERAS":["pr. Kr.","po Kr."],"ERANAMES":["pred Kristusom","po Kristusu"],"NARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"STANDALONENARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"MONTHS":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"STANDALONEMONTHS":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"STANDALONESHORTMONTHS":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"WEEKDAYS":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"STANDALONEWEEKDAYS":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"SHORTWEEKDAYS":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"STANDALONESHORTWEEKDAYS":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"NARROWWEEKDAYS":["n","p","t","s","č","p","s"],"STANDALONENARROWWEEKDAYS":["n","p","t","s","č","p","s"],"SHORTQUARTERS":["1. čet.","2. čet.","3. čet.","4. čet."],"QUARTERS":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"AMPMS":["dop.","pop."],"DATEFORMATS":["EEEE, dd. MMMM y","dd. MMMM y","d. MMM y","d. MM. yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"sl","ERAS":["pr. Kr.","po Kr."],"ERANAMES":["pred Kristusom","po Kristusu"],"NARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"STANDALONENARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"MONTHS":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"STANDALONEMONTHS":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"SHORTMONTHS":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"STANDALONESHORTMONTHS":["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],"WEEKDAYS":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"STANDALONEWEEKDAYS":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"SHORTWEEKDAYS":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"STANDALONESHORTWEEKDAYS":["ned.","pon.","tor.","sre.","čet.","pet.","sob."],"NARROWWEEKDAYS":["n","p","t","s","č","p","s"],"STANDALONENARROWWEEKDAYS":["n","p","t","s","č","p","s"],"SHORTQUARTERS":["1. čet.","2. čet.","3. čet.","4. čet."],"QUARTERS":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"AMPMS":["dop.","pop."],"DATEFORMATS":["EEEE, d. MMMM y","d. MMMM y","d. MMM y","d. MM. yy"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/sr.json b/intl/lib/src/data/dates/symbols/sr.json
index 3155524..d2daa30 100644
--- a/intl/lib/src/data/dates/symbols/sr.json
+++ b/intl/lib/src/data/dates/symbols/sr.json
@@ -1 +1 @@
-{"NAME":"sr","ERAS":["п. н. е.","н. е."],"ERANAMES":["пре нове ере","нове ере"],"NARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"STANDALONENARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"MONTHS":["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],"STANDALONEMONTHS":["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],"SHORTMONTHS":["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],"STANDALONESHORTMONTHS":["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],"WEEKDAYS":["недеља","понедељак","уторак","среда","четвртак","петак","субота"],"STANDALONEWEEKDAYS":["недеља","понедељак","уторак","среда","четвртак","петак","субота"],"SHORTWEEKDAYS":["нед","пон","уто","сре","чет","пет","суб"],"STANDALONESHORTWEEKDAYS":["нед","пон","уто","сре","чет","пет","суб"],"NARROWWEEKDAYS":["н","п","у","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","у","с","ч","п","с"],"SHORTQUARTERS":["К1","К2","К3","К4"],"QUARTERS":["први квартал","други квартал","трећи квартал","четврти квартал"],"AMPMS":["пре подне","по подне"],"DATEFORMATS":["EEEE, dd. MMMM y.","dd. MMMM y.","dd.MM.y.","d.M.yy."],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"sr","ERAS":["п. н. е.","н. е."],"ERANAMES":["пре нове ере","нове ере"],"NARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"STANDALONENARROWMONTHS":["ј","ф","м","а","м","ј","ј","а","с","о","н","д"],"MONTHS":["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],"STANDALONEMONTHS":["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],"SHORTMONTHS":["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],"STANDALONESHORTMONTHS":["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],"WEEKDAYS":["недеља","понедељак","уторак","среда","четвртак","петак","субота"],"STANDALONEWEEKDAYS":["недеља","понедељак","уторак","среда","четвртак","петак","субота"],"SHORTWEEKDAYS":["нед","пон","уто","сре","чет","пет","суб"],"STANDALONESHORTWEEKDAYS":["нед","пон","уто","сре","чет","пет","суб"],"NARROWWEEKDAYS":["н","п","у","с","ч","п","с"],"STANDALONENARROWWEEKDAYS":["н","п","у","с","ч","п","с"],"SHORTQUARTERS":["1. кв.","2. кв.","3. кв.","4. кв."],"QUARTERS":["први квартал","други квартал","трећи квартал","четврти квартал"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d. MMMM y.","d. MMMM y.","d. M. y.","d.M.yy."],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/sr_Latn.json b/intl/lib/src/data/dates/symbols/sr_Latn.json
index c1d11b4..002ac6b 100644
--- a/intl/lib/src/data/dates/symbols/sr_Latn.json
+++ b/intl/lib/src/data/dates/symbols/sr_Latn.json
@@ -1 +1 @@
-{"NAME":"sr_Latn","ERAS":["p. n. e.","n. e."],"ERANAMES":["pre nove ere","nove ere"],"NARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"STANDALONENARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"MONTHS":["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],"STANDALONEMONTHS":["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],"SHORTMONTHS":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"WEEKDAYS":["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],"STANDALONEWEEKDAYS":["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],"SHORTWEEKDAYS":["ned","pon","uto","sre","čet","pet","sub"],"STANDALONESHORTWEEKDAYS":["ned","pon","uto","sre","čet","pet","sub"],"NARROWWEEKDAYS":["n","p","u","s","č","p","s"],"STANDALONENARROWWEEKDAYS":["n","p","u","s","č","p","s"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["prvi kvartal","drugi kvartal","treći kvartal","četvrti kvartal"],"AMPMS":["pre podne","po podne"],"DATEFORMATS":["EEEE, dd. MMMM y.","dd. MMMM y.","dd.MM.y.","d.M.yy."],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"sr_Latn","ERAS":["p. n. e.","n. e."],"ERANAMES":["pre nove ere","nove ere"],"NARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"STANDALONENARROWMONTHS":["j","f","m","a","m","j","j","a","s","o","n","d"],"MONTHS":["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],"STANDALONEMONTHS":["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],"SHORTMONTHS":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"STANDALONESHORTMONTHS":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"WEEKDAYS":["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],"STANDALONEWEEKDAYS":["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],"SHORTWEEKDAYS":["ned","pon","uto","sre","čet","pet","sub"],"STANDALONESHORTWEEKDAYS":["ned","pon","uto","sre","čet","pet","sub"],"NARROWWEEKDAYS":["n","p","u","s","č","p","s"],"STANDALONENARROWWEEKDAYS":["n","p","u","s","č","p","s"],"SHORTQUARTERS":["1. kv.","2. kv.","3. kv.","4. kv."],"QUARTERS":["prvi kvartal","drugi kvartal","treći kvartal","četvrti kvartal"],"AMPMS":["AM","PM"],"DATEFORMATS":["EEEE, d. MMMM y.","d. MMMM y.","d. M. y.","d.M.yy."],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/sv.json b/intl/lib/src/data/dates/symbols/sv.json
index 252303e..1f8cc75 100644
--- a/intl/lib/src/data/dates/symbols/sv.json
+++ b/intl/lib/src/data/dates/symbols/sv.json
@@ -1 +1 @@
-{"NAME":"sv","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["före Kristus","efter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"STANDALONEMONTHS":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"SHORTMONTHS":["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],"STANDALONESHORTMONTHS":["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],"WEEKDAYS":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"STANDALONEWEEKDAYS":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"SHORTWEEKDAYS":["sön","mån","tis","ons","tors","fre","lör"],"STANDALONESHORTWEEKDAYS":["sön","mån","tis","ons","tors","fre","lör"],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"AMPMS":["fm","em"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","y-MM-dd"],"TIMEFORMATS":["'kl'. HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"sv","ERAS":["f.Kr.","e.Kr."],"ERANAMES":["före Kristus","efter Kristus"],"NARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"STANDALONENARROWMONTHS":["J","F","M","A","M","J","J","A","S","O","N","D"],"MONTHS":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"STANDALONEMONTHS":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"SHORTMONTHS":["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],"STANDALONESHORTMONTHS":["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],"WEEKDAYS":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"STANDALONEWEEKDAYS":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"SHORTWEEKDAYS":["sön","mån","tis","ons","tors","fre","lör"],"STANDALONESHORTWEEKDAYS":["sön","mån","tis","ons","tors","fre","lör"],"NARROWWEEKDAYS":["S","M","T","O","T","F","L"],"STANDALONENARROWWEEKDAYS":["S","M","T","O","T","F","L"],"SHORTQUARTERS":["K1","K2","K3","K4"],"QUARTERS":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"AMPMS":["fm","em"],"DATEFORMATS":["EEEE d MMMM y","d MMMM y","d MMM y","y-MM-dd"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":3,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/ta.json b/intl/lib/src/data/dates/symbols/ta.json
index 29db845..f8e4017 100644
--- a/intl/lib/src/data/dates/symbols/ta.json
+++ b/intl/lib/src/data/dates/symbols/ta.json
@@ -1 +1 @@
-{"NAME":"ta","ERAS":["கி.மு.","கி.பி."],"ERANAMES":["கிறிஸ்துவுக்கு முன்","அன்னோ டோமினி"],"NARROWMONTHS":["ஜ","பி","மா","ஏ","மே","ஜூ","ஜூ","ஆ","செ","அ","ந","டி"],"STANDALONENARROWMONTHS":["ஜ","பி","மா","ஏ","மே","ஜூ","ஜூ","ஆ","செ","அ","ந","டி"],"MONTHS":["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],"STANDALONEMONTHS":["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],"SHORTMONTHS":["ஜன.","பிப்.","மார்.","ஏப்.","மே","ஜூன்","ஜூலை","ஆக.","செப்.","அக்.","நவ.","டிச."],"STANDALONESHORTMONTHS":["ஜன.","பிப்.","மார்.","ஏப்.","மே","ஜூன்","ஜூலை","ஆக.","செப்.","அக்.","நவ.","டிச."],"WEEKDAYS":["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],"STANDALONEWEEKDAYS":["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],"SHORTWEEKDAYS":["ஞாயி.","திங்.","செவ்.","புத.","வியா.","வெள்.","சனி"],"STANDALONESHORTWEEKDAYS":["ஞாயி.","திங்.","செவ்.","புத.","வியா.","வெள்.","சனி"],"NARROWWEEKDAYS":["ஞா","தி","செ","பு","வி","வெ","ச"],"STANDALONENARROWWEEKDAYS":["ஞா","தி","செ","பு","வி","வெ","ச"],"SHORTQUARTERS":["காலா.1","காலா.2","காலா.3","காலா.4"],"QUARTERS":["ஒன்றாம் காலாண்டு","இரண்டாம் காலாண்டு","மூன்றாம் காலாண்டு","நான்காம் காலாண்டு"],"AMPMS":["முற்பகல்","பிற்பகல்"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],"TIMEFORMATS":["a h:mm:ss zzzz","a h:mm:ss z","a h:mm:ss","a h:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} ’அன்று’ {0}","{1} ’அன்று’ {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
+{"NAME":"ta","ERAS":["கி.மு.","கி.பி."],"ERANAMES":["கிறிஸ்துவுக்கு முன்","அன்னோ டோமினி"],"NARROWMONTHS":["ஜ","பி","மா","ஏ","மே","ஜூ","ஜூ","ஆ","செ","அ","ந","டி"],"STANDALONENARROWMONTHS":["ஜ","பி","மா","ஏ","மே","ஜூ","ஜூ","ஆ","செ","அ","ந","டி"],"MONTHS":["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],"STANDALONEMONTHS":["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],"SHORTMONTHS":["ஜன.","பிப்.","மார்.","ஏப்.","மே","ஜூன்","ஜூலை","ஆக.","செப்.","அக்.","நவ.","டிச."],"STANDALONESHORTMONTHS":["ஜன.","பிப்.","மார்.","ஏப்.","மே","ஜூன்","ஜூலை","ஆக.","செப்.","அக்.","நவ.","டிச."],"WEEKDAYS":["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],"STANDALONEWEEKDAYS":["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],"SHORTWEEKDAYS":["ஞாயி.","திங்.","செவ்.","புத.","வியா.","வெள்.","சனி"],"STANDALONESHORTWEEKDAYS":["ஞாயி.","திங்.","செவ்.","புத.","வியா.","வெள்.","சனி"],"NARROWWEEKDAYS":["ஞா","தி","செ","பு","வி","வெ","ச"],"STANDALONENARROWWEEKDAYS":["ஞா","தி","செ","பு","வி","வெ","ச"],"SHORTQUARTERS":["காலா.1","காலா.2","காலா.3","காலா.4"],"QUARTERS":["ஒன்றாம் காலாண்டு","இரண்டாம் காலாண்டு","மூன்றாம் காலாண்டு","நான்காம் காலாண்டு"],"AMPMS":["முற்பகல்","பிற்பகல்"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],"TIMEFORMATS":["a h:mm:ss zzzz","a h:mm:ss z","a h:mm:ss","a h:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[6,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} அன்று {0}","{1} அன்று {0}","{1}, {0}","{1}, {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/vi.json b/intl/lib/src/data/dates/symbols/vi.json
index 54a359c..af352cc 100644
--- a/intl/lib/src/data/dates/symbols/vi.json
+++ b/intl/lib/src/data/dates/symbols/vi.json
@@ -1 +1 @@
-{"NAME":"vi","ERAS":["Trước CN","sau CN"],"ERANAMES":["Trước CN","sau CN"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["tháng 1","tháng 2","tháng 3","tháng 4","tháng 5","tháng 6","tháng 7","tháng 8","tháng 9","tháng 10","tháng 11","tháng 12"],"STANDALONEMONTHS":["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],"SHORTMONTHS":["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],"STANDALONESHORTMONTHS":["Thg 1","Thg 2","Thg 3","Thg 4","Thg 5","Thg 6","Thg 7","Thg 8","Thg 9","Thg 10","Thg 11","Thg 12"],"WEEKDAYS":["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],"STANDALONEWEEKDAYS":["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],"SHORTWEEKDAYS":["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],"STANDALONESHORTWEEKDAYS":["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],"NARROWWEEKDAYS":["CN","T2","T3","T4","T5","T6","T7"],"STANDALONENARROWWEEKDAYS":["CN","T2","T3","T4","T5","T6","T7"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["Quý 1","Quý 2","Quý 3","Quý 4"],"AMPMS":["SA","CH"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{0} {1}","{0} {1}","{0}, {1}","{0}, {1}"]}
\ No newline at end of file
+{"NAME":"vi","ERAS":["Trước CN","Sau CN"],"ERANAMES":["Trước Thiên Chúa","Sau Công Nguyên"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["tháng 1","tháng 2","tháng 3","tháng 4","tháng 5","tháng 6","tháng 7","tháng 8","tháng 9","tháng 10","tháng 11","tháng 12"],"STANDALONEMONTHS":["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],"SHORTMONTHS":["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],"STANDALONESHORTMONTHS":["Thg 1","Thg 2","Thg 3","Thg 4","Thg 5","Thg 6","Thg 7","Thg 8","Thg 9","Thg 10","Thg 11","Thg 12"],"WEEKDAYS":["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],"STANDALONEWEEKDAYS":["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],"SHORTWEEKDAYS":["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],"STANDALONESHORTWEEKDAYS":["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],"NARROWWEEKDAYS":["CN","T2","T3","T4","T5","T6","T7"],"STANDALONENARROWWEEKDAYS":["CN","T2","T3","T4","T5","T6","T7"],"SHORTQUARTERS":["Q1","Q2","Q3","Q4"],"QUARTERS":["Quý 1","Quý 2","Quý 3","Quý 4"],"AMPMS":["SA","CH"],"DATEFORMATS":["EEEE, d MMMM, y","d MMMM, y","d MMM, y","dd/MM/y"],"TIMEFORMATS":["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":0,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":6,"DATETIMEFORMATS":["{0} {1}","{0} {1}","{0}, {1}","{0}, {1}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/zh.json b/intl/lib/src/data/dates/symbols/zh.json
index f7d5bb2..5780093 100644
--- a/intl/lib/src/data/dates/symbols/zh.json
+++ b/intl/lib/src/data/dates/symbols/zh.json
@@ -1 +1 @@
-{"NAME":"zh","ERAS":["公元前","公元"],"ERANAMES":["公元前","公元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"STANDALONEMONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"STANDALONESHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["1季度","2季度","3季度","4季度"],"QUARTERS":["第一季度","第二季度","第三季度","第四季度"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["zzzz ah:mm:ss","z ah:mm:ss","ah:mm:ss","ah:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"zh","ERAS":["公元前","公元"],"ERANAMES":["公元前","公元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"STANDALONEMONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"STANDALONESHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["1季度","2季度","3季度","4季度"],"QUARTERS":["第一季度","第二季度","第三季度","第四季度"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["zzzz HH:mm:ss","z HH:mm:ss","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/zh_CN.json b/intl/lib/src/data/dates/symbols/zh_CN.json
index 21a2ba8..f69e74c 100644
--- a/intl/lib/src/data/dates/symbols/zh_CN.json
+++ b/intl/lib/src/data/dates/symbols/zh_CN.json
@@ -1 +1 @@
-{"NAME":"zh_CN","ERAS":["公元前","公元"],"ERANAMES":["公元前","公元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"STANDALONEMONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"STANDALONESHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["1季度","2季度","3季度","4季度"],"QUARTERS":["第一季度","第二季度","第三季度","第四季度"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["zzzz ah:mm:ss","z ah:mm:ss","ah:mm:ss","ah:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"zh_CN","ERAS":["公元前","公元"],"ERANAMES":["公元前","公元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"STANDALONEMONTHS":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"STANDALONESHORTWEEKDAYS":["周日","周一","周二","周三","周四","周五","周六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["1季度","2季度","3季度","4季度"],"QUARTERS":["第一季度","第二季度","第三季度","第四季度"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["zzzz HH:mm:ss","z HH:mm:ss","HH:mm:ss","HH:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/data/dates/symbols/zh_TW.json b/intl/lib/src/data/dates/symbols/zh_TW.json
index cf8a767..22cfda9 100644
--- a/intl/lib/src/data/dates/symbols/zh_TW.json
+++ b/intl/lib/src/data/dates/symbols/zh_TW.json
@@ -1 +1 @@
-{"NAME":"zh_TW","ERAS":["西元前","西元"],"ERANAMES":["西元前","西元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONEMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["週日","週一","週二","週三","週四","週五","週六"],"STANDALONESHORTWEEKDAYS":["週日","週一","週二","週三","週四","週五","週六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["第1季","第2季","第3季","第4季"],"QUARTERS":["第1季","第2季","第3季","第4季"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日 EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["ah:mm:ss [zzzz]","ah:mm:ss [z]","ah:mm:ss","ah:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
+{"NAME":"zh_TW","ERAS":["西元前","西元"],"ERANAMES":["西元前","西元"],"NARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"STANDALONENARROWMONTHS":["1","2","3","4","5","6","7","8","9","10","11","12"],"MONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONEMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"SHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"STANDALONESHORTMONTHS":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"WEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"STANDALONEWEEKDAYS":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"SHORTWEEKDAYS":["週日","週一","週二","週三","週四","週五","週六"],"STANDALONESHORTWEEKDAYS":["週日","週一","週二","週三","週四","週五","週六"],"NARROWWEEKDAYS":["日","一","二","三","四","五","六"],"STANDALONENARROWWEEKDAYS":["日","一","二","三","四","五","六"],"SHORTQUARTERS":["第1季","第2季","第3季","第4季"],"QUARTERS":["第1季","第2季","第3季","第4季"],"AMPMS":["上午","下午"],"DATEFORMATS":["y年M月d日 EEEE","y年M月d日","y年M月d日","y/M/d"],"TIMEFORMATS":["Bh:mm:ss [zzzz]","Bh:mm:ss [z]","Bh:mm:ss","Bh:mm"],"AVAILABLEFORMATS":null,"FIRSTDAYOFWEEK":6,"WEEKENDRANGE":[5,6],"FIRSTWEEKCUTOFFDAY":5,"DATETIMEFORMATS":["{1} {0}","{1} {0}","{1} {0}","{1} {0}"]}
\ No newline at end of file
diff --git a/intl/lib/src/file_data_reader.dart b/intl/lib/src/file_data_reader.dart
index 21bbea0..ed4a326 100644
--- a/intl/lib/src/file_data_reader.dart
+++ b/intl/lib/src/file_data_reader.dart
@@ -19,6 +19,7 @@
   FileDataReader(this.path);
 
   /// Read the locale data found for [locale] on our [path].
+  @override
   Future<String> read(String locale) {
     var file = File(join(path, '$locale.json'));
     return file.readAsString();
diff --git a/intl/lib/src/global_state.dart b/intl/lib/src/global_state.dart
index 7ce9be1..9060196 100644
--- a/intl/lib/src/global_state.dart
+++ b/intl/lib/src/global_state.dart
@@ -10,7 +10,7 @@
 
 String? get defaultLocale {
   var zoneLocale = Zone.current[#Intl.locale] as String?;
-  return zoneLocale == null ? _defaultLocale : zoneLocale;
+  return zoneLocale ?? _defaultLocale;
 }
 
 String getCurrentLocale() {
diff --git a/intl/lib/src/http_request_data_reader.dart b/intl/lib/src/http_request_data_reader.dart
index eff31b5..66ea709 100644
--- a/intl/lib/src/http_request_data_reader.dart
+++ b/intl/lib/src/http_request_data_reader.dart
@@ -16,6 +16,7 @@
   String url;
   HttpRequestDataReader(this.url);
 
+  @override
   Future<String> read(String locale) {
     var request = HttpRequest();
     request.timeout = 5000;
diff --git a/intl/lib/src/intl/bidi.dart b/intl/lib/src/intl/bidi.dart
index 07d18a2..6b36e0d 100644
--- a/intl/lib/src/intl/bidi.dart
+++ b/intl/lib/src/intl/bidi.dart
@@ -15,6 +15,7 @@
 // Suppress naming issues as changing them would be breaking.
 // ignore_for_file: constant_identifier_names
 // ignore: avoid_classes_with_only_static_members
+
 /// This provides utility methods for working with bidirectional text. All
 /// of the methods are static, and are organized into a class primarily to
 /// group them together for documentation and discoverability.
@@ -64,14 +65,14 @@
 
   /// Determines if the first character in [text] with strong directionality is
   /// LTR. If [isHtml] is true, the text is HTML or HTML-escaped.
-  static bool startsWithLtr(String text, [isHtml = false]) {
+  static bool startsWithLtr(String text, [bool isHtml = false]) {
     return RegExp('^[^$_RTL_CHARS]*[$_LTR_CHARS]')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
 
   /// Determines if the first character in [text] with strong directionality is
   /// RTL. If [isHtml] is true, the text is HTML or HTML-escaped.
-  static bool startsWithRtl(String text, [isHtml = false]) {
+  static bool startsWithRtl(String text, [bool isHtml = false]) {
     return RegExp('^[^$_LTR_CHARS]*[$_RTL_CHARS]')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
@@ -79,7 +80,7 @@
   /// Determines if the exit directionality (ie, the last strongly-directional
   /// character in [text] is LTR. If [isHtml] is true, the text is HTML or
   /// HTML-escaped.
-  static bool endsWithLtr(String text, [isHtml = false]) {
+  static bool endsWithLtr(String text, [bool isHtml = false]) {
     return RegExp('[$_LTR_CHARS][^$_RTL_CHARS]*\$')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
@@ -87,21 +88,21 @@
   /// Determines if the exit directionality (ie, the last strongly-directional
   /// character in [text] is RTL. If [isHtml] is true, the text is HTML or
   /// HTML-escaped.
-  static bool endsWithRtl(String text, [isHtml = false]) {
+  static bool endsWithRtl(String text, [bool isHtml = false]) {
     return RegExp('[$_RTL_CHARS][^$_LTR_CHARS]*\$')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
 
   /// Determines if the given [text] has any LTR characters in it.
   /// If [isHtml] is true, the text is HTML or HTML-escaped.
-  static bool hasAnyLtr(String text, [isHtml = false]) {
+  static bool hasAnyLtr(String text, [bool isHtml = false]) {
     return RegExp(r'[' '$_LTR_CHARS' r']')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
 
   /// Determines if the given [text] has any RTL characters in it.
   /// If [isHtml] is true, the text is HTML or HTML-escaped.
-  static bool hasAnyRtl(String text, [isHtml = false]) {
+  static bool hasAnyRtl(String text, [bool isHtml = false]) {
     return RegExp(r'[' '$_RTL_CHARS' r']')
         .hasMatch(isHtml ? stripHtmlIfNeeded(text) : text);
   }
@@ -202,7 +203,7 @@
   /// If [isRtlContext] is true, then we explicitly want to wrap in a span of
   /// RTL directionality, regardless of the estimated directionality.
   static String guardBracketInHtml(String str, [bool? isRtlContext]) {
-    var useRtl = isRtlContext == null ? hasAnyRtl(str) : isRtlContext;
+    var useRtl = isRtlContext ?? hasAnyRtl(str);
     var matchingBrackets =
         RegExp(r'(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(&lt;.*?(&gt;)+)');
     return _guardBracketHelper(str, matchingBrackets,
@@ -216,7 +217,7 @@
   /// explicitly want to wrap in a span of RTL directionality, regardless of the
   /// estimated directionality.
   static String guardBracketInText(String str, [bool? isRtlContext]) {
-    var useRtl = isRtlContext == null ? hasAnyRtl(str) : isRtlContext;
+    var useRtl = isRtlContext ?? hasAnyRtl(str);
     var mark = useRtl ? RLM : LRM;
     return _guardBracketHelper(
         str, RegExp(r'(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)'), mark, mark);
diff --git a/intl/lib/src/intl/compact_number_format.dart b/intl/lib/src/intl/compact_number_format.dart
index 32c94ab..715b472 100644
--- a/intl/lib/src/intl/compact_number_format.dart
+++ b/intl/lib/src/intl/compact_number_format.dart
@@ -9,21 +9,8 @@
 
 /// An abstract class for compact number styles.
 abstract class _CompactStyleBase {
-  /// The _CompactStyle for the sign of [number], i.e. positive or
-  /// negative.
-  _CompactStyle styleForSign(number);
-
-  /// How many total digits do we expect in the number.
-  ///
-  /// If the pattern is
-  ///
-  ///       4: '00K',
-  ///
-  /// then this is 5, meaning we expect this to be a 5-digit (or more)
-  /// number. We will scale by 1000 and expect 2 integer digits remaining, so we
-  /// get something like '12K'. This is used to find the closest pattern for a
-  /// number.
-  int get totalDigits;
+  /// The _CompactStyle for the [number].
+  _CompactStyle styleForNumber(dynamic number, _CompactNumberFormat format);
 
   /// What should we divide the number by in order to print. Normally it is
   /// either `10^normalizedExponent` or 1 if we shouldn't divide at all.
@@ -36,15 +23,106 @@
   Iterable<_CompactStyle> get allStyles;
 }
 
+/// A compact format with separate styles for plural forms.
+class _CompactStyleWithPlurals extends _CompactStyleBase {
+  int exponent;
+  Map<String, _CompactStyleBase> styles;
+  plural_rules.PluralCase Function()? _plural;
+  late _CompactStyleBase _defaultStyle;
+
+  _CompactStyleWithPlurals(this.styles, this.exponent, String? locale) {
+    _plural = plural_rules.pluralRules[locale];
+    _defaultStyle = styles['other']!;
+  }
+
+  @override
+  Iterable<_CompactStyle> get allStyles =>
+      styles.values.expand((x) => x.allStyles);
+
+  @override
+  int get divisor => _defaultStyle.divisor;
+
+  @override
+  _CompactStyle styleForNumber(dynamic number, _CompactNumberFormat format) {
+    var value = number.abs();
+    if (_plural == null) {
+      return _defaultStyle.styleForNumber(number, format);
+    }
+
+    var displayed = value;
+    var precision = format._minimumFractionDigits;
+
+    if (format.significantDigitsInUse) {
+      // Note: this is not 100% correct, but good enough for most cases.
+      var integerPart = format._floor(value);
+      var integerLength = NumberFormat.numberOfIntegerDigits(integerPart);
+      if (format.minimumSignificantDigits != null) {
+        precision = max(0, format.minimumSignificantDigits! - integerLength);
+      }
+    }
+
+    // Round to the right precision.
+    var factor = pow(10, precision);
+    displayed = (displayed * factor).round() / factor;
+
+    if (format.significantDigitsInUse &&
+        !format.minimumSignificantDigitsStrict) {
+      // Check for trailing 0.
+      var fractionStr = format._floor(displayed * factor).toString();
+      while (precision > 0 && fractionStr.endsWith('0')) {
+        precision--;
+        fractionStr = fractionStr.substring(0, fractionStr.length - 1);
+      }
+    }
+
+    // Direct value? (French 1000 => "mille" has key "1".)
+    if (number >= 0 && precision == 0) {
+      var indexed = styles[format._floor(displayed).toString()];
+      if (indexed != null) {
+        return indexed.styleForNumber(number, format);
+      }
+    }
+
+    plural_rules.startRuleEvaluation(displayed, precision);
+    var pluralCase = _plural!();
+    var style = _defaultStyle;
+    switch (pluralCase) {
+      case plural_rules.PluralCase.ZERO:
+        style = styles['zero'] ?? _defaultStyle;
+        break;
+      case plural_rules.PluralCase.ONE:
+        style = styles['one'] ?? _defaultStyle;
+        break;
+      case plural_rules.PluralCase.TWO:
+        style = styles['two'] ?? styles['few'] ?? _defaultStyle;
+        break;
+      case plural_rules.PluralCase.FEW:
+        style = styles['few'] ?? _defaultStyle;
+        break;
+      case plural_rules.PluralCase.MANY:
+        style = styles['many'] ?? _defaultStyle;
+        break;
+      default:
+      // Keep _defaultStyle;
+    }
+    return style.styleForNumber(number, format);
+  }
+}
+
 /// A compact format with separate styles for positive and negative numbers.
 class _CompactStyleWithNegative extends _CompactStyleBase {
   _CompactStyleWithNegative(this.positiveStyle, this.negativeStyle);
   final _CompactStyle positiveStyle;
   final _CompactStyle negativeStyle;
-  _CompactStyle styleForSign(number) =>
+
+  @override
+  _CompactStyle styleForNumber(dynamic number, _CompactNumberFormat format) =>
       number < 0 ? negativeStyle : positiveStyle;
-  int get totalDigits => positiveStyle.totalDigits;
+
+  @override
   int get divisor => positiveStyle.divisor;
+
+  @override
   List<_CompactStyle> get allStyles => [positiveStyle, negativeStyle];
 }
 
@@ -57,58 +135,36 @@
 ///       4: '00K'
 /// which matches
 ///
-///       _CompactStyle(pattern: '00K', normalizedExponent: 4, divisor: 1000,
-///           expectedDigits: 1, prefix: '', suffix: 'K');
-///
-/// where expectedDigits is the number of zeros.
+///       _CompactStyle(pattern: '00K', divisor: 1000,
+///           prefix: '', suffix: 'K');
 class _CompactStyle extends _CompactStyleBase {
   _CompactStyle(
       {this.pattern,
-      this.normalizedExponent = 0,
       this.divisor = 1,
-      this.expectedDigits = 1,
-      this.prefix = '',
-      this.suffix = ''});
+      this.positivePrefix = '',
+      this.negativePrefix = '',
+      this.positiveSuffix = '',
+      this.negativeSuffix = '',
+      this.isDirectValue = false});
 
   /// The pattern on which this is based.
   ///
   /// We don't actually need this, but it makes debugging easier.
   String? pattern;
 
-  /// The normalized scientific notation exponent for which the format applies.
-  ///
-  /// So if this is 3, we expect it to apply for numbers from 1000 and up.
-  /// Typically it would be from 1000 to 9999, but that depends if there's a
-  /// style for 4 or not. This is the CLDR index of the pattern, and usually
-  /// determines the divisor, but if the pattern is just a 0 with no prefix or
-  /// suffix then we don't divide at all.
-  int normalizedExponent;
-
   /// What should we divide the number by in order to print. Normally is either
   /// 10^normalizedExponent or 1 if we shouldn't divide at all.
+  @override
   int divisor;
 
-  /// How many integer digits do we expect to print - the number of zeros in the
-  /// CLDR pattern.
-  int expectedDigits;
+  // Prefixes / suffixes.
+  String positivePrefix;
+  String negativePrefix;
+  String positiveSuffix;
+  String negativeSuffix;
 
-  /// Text we put in front of the number part.
-  String prefix;
-
-  /// Text we put after the number part.
-  String suffix;
-
-  /// How many total digits do we expect in the number.
-  ///
-  /// If the pattern is
-  ///
-  ///       4: '00K',
-  ///
-  /// then this is 5, meaning we expect this to be a 5-digit (or more)
-  /// number. We will scale by 1000 and expect 2 integer digits remaining, so we
-  /// get something like '12K'. This is used to find the closest pattern for a
-  /// number.
-  int get totalDigits => normalizedExponent + expectedDigits - 1;
+  /// Whether this pattern omits numbers. Ex: "mille" for 1000 in fr.
+  bool isDirectValue;
 
   /// Return true if this is the fallback compact pattern, printing the number
   /// un-compacted. e.g. 1200 might print as '1.2K', but 12 just prints as '12'.
@@ -118,16 +174,11 @@
   /// for a particular currency (e.g. two for USD, zero for JPY)
   bool get isFallback => pattern == null || pattern == '0';
 
-  /// Should we print the number as-is, without dividing.
-  ///
-  /// This happens if the pattern has no abbreviation for scaling (e.g. K, M).
-  /// So either the pattern is empty or it is of a form like '0 $'. This is a
-  /// workaround for locales like 'it', which include patterns with no suffix
-  /// for numbers >= 1000 but < 1,000,000.
-  bool get printsAsIs =>
-      isFallback || pattern!.replaceAll(RegExp('[0\u00a0\u00a4]'), '').isEmpty;
+  @override
+  _CompactStyle styleForNumber(dynamic number, _CompactNumberFormat format) =>
+      this;
 
-  _CompactStyle styleForSign(number) => this;
+  @override
   List<_CompactStyle> get allStyles => [this];
 
   static final _regex = RegExp('([^0]*)(0+)(.*)');
@@ -139,28 +190,50 @@
       !_justZeros.hasMatch(pattern);
 
   /// Creates a [_CompactStyle] instance for pattern with [normalizedExponent].
-  static _CompactStyle createStyle(String pattern, int normalizedExponent) {
-    var match = _regex.firstMatch(pattern);
-    var integerDigits = match!.group(2)!.length;
-    var prefix = match.group(1)!;
-    var suffix = match.group(3)!;
-    // If the pattern is just zeros, with no suffix, then we shouldn't divide
-    // by the number of digits. e.g. for 'af', the pattern for 3 is '0', but
-    // it doesn't mean that 4321 should print as 4. But if the pattern was
-    // '0K', then it should print as '4K'. So we have to check if the pattern
-    // has a suffix. This seems extremely hacky, but I don't know how else to
-    // encode that. Check what other things are doing.
+  static _CompactStyle createStyle(
+      NumberSymbols symbols, String pattern, int normalizedExponent,
+      {bool isSigned = false, bool explicitSign = false}) {
+    var prefix = '';
+    var suffix = '';
     var divisor = 1;
-    if (_hasNonZeroContent(pattern)) {
-      divisor = pow(10, normalizedExponent - integerDigits + 1) as int;
+    var isDirectValue = false;
+    var match = _regex.firstMatch(pattern);
+    if (match != null) {
+      prefix = match.group(1)!;
+      suffix = match.group(3)!;
+      // If the pattern is just zeros, with no suffix, then we shouldn't divide
+      // by the number of digits. e.g. for 'af', the pattern for 3 is '0', but
+      // it doesn't mean that 4321 should print as 4. But if the pattern was
+      // '0K', then it should print as '4K'. So we have to check if the pattern
+      // has a suffix. This seems extremely hacky, but I don't know how else to
+      // encode that. Check what other things are doing.
+      if (_hasNonZeroContent(pattern)) {
+        var integerDigits = match.group(2)!.length;
+        divisor = pow(10, normalizedExponent - integerDigits + 1) as int;
+      }
+    } else {
+      if (pattern.isNotEmpty && !pattern.contains('0')) {
+        // "Direct" pattern: no numbers.
+        divisor = pow(10, normalizedExponent) as int;
+        isDirectValue = true;
+      }
     }
+
+    final positivePrefix =
+        (explicitSign && !isSigned) ? '${symbols.PLUS_SIGN}$prefix' : prefix;
+    final negativePrefix =
+        (!isSigned) ? '${symbols.MINUS_SIGN}$prefix' : prefix;
+    final positiveSuffix = suffix;
+    final negativeSuffix = suffix;
+
     return _CompactStyle(
         pattern: pattern,
-        normalizedExponent: normalizedExponent,
-        expectedDigits: integerDigits,
-        prefix: prefix,
-        suffix: suffix,
-        divisor: divisor);
+        positivePrefix: positivePrefix,
+        negativePrefix: negativePrefix,
+        positiveSuffix: positiveSuffix,
+        negativeSuffix: negativeSuffix,
+        divisor: divisor,
+        isDirectValue: isDirectValue);
   }
 }
 
@@ -175,7 +248,11 @@
   /// A default, using the decimal pattern, for the `getPattern` constructor parameter.
   static String _forDecimal(NumberSymbols symbols) => symbols.DECIMAL_PATTERN;
 
-  final List<_CompactStyleBase> _styles;
+  // Map exponent => style.
+  final Map<int, _CompactStyleBase> _styles;
+
+  // Whether positive sign should be explicitly printed.
+  final bool _explicitSign;
 
   factory _CompactNumberFormat(
       {String? locale,
@@ -184,6 +261,7 @@
       String? currencySymbol,
       String? Function(NumberSymbols) getPattern = _forDecimal,
       int? decimalDigits,
+      bool explicitSign = false,
       bool lookupSimpleCurrencySymbol = false,
       bool isForCurrency = false}) {
     // Initialization copied from `NumberFormat` constructor.
@@ -209,17 +287,15 @@
     /// These patterns are taken from the appropriate CompactNumberSymbols
     /// instance's COMPACT_DECIMAL_SHORT_PATTERN, COMPACT_DECIMAL_LONG_PATTERN,
     /// or COMPACT_DECIMAL_SHORT_CURRENCY_PATTERN members.
-    Map<int, String> patterns;
+    Map<int, Map<String, String>> patterns;
 
     var compactSymbols = compactNumberSymbols[locale]!;
 
-    var styles = <_CompactStyleBase>[];
+    var styles = <int, _CompactStyleBase>{};
     switch (formatType) {
       case _CompactFormatType.COMPACT_DECIMAL_SHORT_PATTERN:
         patterns = compactSymbols.COMPACT_DECIMAL_SHORT_PATTERN;
         break;
-      // TODO(alanknight): Long formats may have different forms for different
-      // plural cases (e.g. million/millions).
       case _CompactFormatType.COMPACT_DECIMAL_LONG_PATTERN:
         patterns = compactSymbols.COMPACT_DECIMAL_LONG_PATTERN ??
             compactSymbols.COMPACT_DECIMAL_SHORT_PATTERN;
@@ -230,21 +306,22 @@
       default:
         throw ArgumentError.notNull('formatType');
     }
-    patterns.forEach((int exponent, String pattern) {
-      if (pattern.contains(';')) {
-        var patterns = pattern.split(';');
-        styles.add(_CompactStyleWithNegative(
-            _CompactStyle.createStyle(patterns.first, exponent),
-            _CompactStyle.createStyle(patterns.last, exponent)));
-      } else {
-        styles.add(_CompactStyle.createStyle(pattern, exponent));
-      }
-    });
 
-    // Reverse the styles so that we look through them from largest to smallest.
-    styles = styles.reversed.toList();
-    // Add a fallback style that just prints the number.
-    styles.add(_CompactStyle());
+    patterns.forEach((int exponent, Map<String, String> patterns) {
+      _CompactStyleBase style;
+      if (patterns.keys.length == 1 && patterns.keys.single == 'other') {
+        // No plural.
+        var pattern = patterns.values.single;
+        style = _styleFromPattern(pattern, exponent, explicitSign, symbols);
+      } else {
+        style = _CompactStyleWithPlurals(
+            patterns.map((key, value) => MapEntry(key,
+                _styleFromPattern(value, exponent, explicitSign, symbols))),
+            exponent,
+            locale);
+      }
+      styles[exponent] = style;
+    });
 
     return _CompactNumberFormat._(
         name,
@@ -257,7 +334,34 @@
         zeroOffset,
         NumberFormatParser.parse(symbols, pattern, isForCurrency,
             currencySymbol, name, decimalDigits),
-        styles);
+        styles,
+        explicitSign);
+  }
+
+  static _CompactStyleBase _styleFromPattern(
+      String pattern, int exponent, bool explicitSign, NumberSymbols symbols) {
+    if (pattern.contains(';')) {
+      var patterns = pattern.split(';');
+      var positivePattern = patterns.first;
+      var negativePattern = patterns.last;
+      if (explicitSign &&
+          !positivePattern.contains(symbols.PLUS_SIGN) &&
+          negativePattern.contains(symbols.MINUS_SIGN) &&
+          positivePattern ==
+              negativePattern.replaceAll(symbols.MINUS_SIGN, '')) {
+        // Re-use the negative pattern, with plus sign.
+        positivePattern =
+            negativePattern.replaceAll(symbols.MINUS_SIGN, symbols.PLUS_SIGN);
+      }
+      return _CompactStyleWithNegative(
+          _CompactStyle.createStyle(symbols, positivePattern, exponent,
+              isSigned: positivePattern.contains(symbols.PLUS_SIGN)),
+          _CompactStyle.createStyle(symbols, negativePattern, exponent,
+              isSigned: true));
+    } else {
+      return _CompactStyle.createStyle(symbols, pattern, exponent,
+          explicitSign: explicitSign);
+    }
   }
 
   _CompactNumberFormat._(
@@ -271,78 +375,84 @@
       int zeroOffset,
       NumberFormatParseResult result,
       // Fields introduced in this class.
-      this._styles)
+      this._styles,
+      this._explicitSign)
       : super._(currencyName, currencySymbol, isForCurrency, locale, localeZero,
             pattern, symbols, zeroOffset, result) {
     significantDigits = 3;
     turnOffGrouping();
   }
 
+  @override
+  set significantDigits(int? x) {
+    // Replicate ICU behavior: set only the minimumSignificantDigits and
+    // do not force trailing 0 in fractional part.
+    _explicitMinimumFractionDigits = false;
+    minimumSignificantDigits = x;
+    maximumSignificantDigits = null;
+    minimumSignificantDigitsStrict = false;
+  }
+
+  @override
+  int get minimumFractionDigits =>
+      _style != null && !_style!.isFallback && !_explicitMinimumFractionDigits
+          ? 0
+          : super.minimumFractionDigits;
+
   /// The style in which we will format a particular number.
   ///
-  /// This is a temporary variable that is only valid within a call to format.
+  /// This is a temporary variable that is only valid within a call to format
+  /// and parse.
   _CompactStyle? _style;
 
-  String format(number) {
+  // We delegate prefixes to current _style.
+  @override
+  String get positivePrefix =>
+      _style!.isFallback ? super.positivePrefix : _style!.positivePrefix;
+  @override
+  String get negativePrefix =>
+      _style!.isFallback ? super.negativePrefix : _style!.negativePrefix;
+  @override
+  String get positiveSuffix =>
+      _style!.isFallback ? super.positiveSuffix : _style!.positiveSuffix;
+  @override
+  String get negativeSuffix =>
+      _style!.isFallback ? super.negativeSuffix : _style!.negativeSuffix;
+
+  @override
+  String format(dynamic number) {
     var style = _styleFor(number);
     _style = style;
-    final divisor = style.printsAsIs ? 1 : style.divisor;
+    final divisor = style.isFallback ? 1 : style.divisor;
     final numberToFormat = _divide(number, divisor);
-    var formatted = super.format(numberToFormat);
-    var prefix = style.prefix;
-    var suffix = style.suffix;
-    // If this is for a currency, then the super call will have put the currency
-    // somewhere. We don't want it there, we want it where our style indicates,
-    // so remove it and replace. This has the remote possibility of a false
-    // positive, but it seems unlikely that e.g. USD would occur as a string in
-    // a regular number.
-    if (_isForCurrency && !style.isFallback) {
-      formatted = formatted.replaceFirst(currencySymbol, '').trim();
-      prefix = prefix.replaceFirst('\u00a4', currencySymbol);
-      suffix = suffix.replaceFirst('\u00a4', currencySymbol);
+    var formatted = style.isDirectValue
+        ? '${_signPrefix(number)}${style.pattern}${_signSuffix(number)}'
+        : super.format(numberToFormat);
+    if (_explicitSign &&
+        style.isFallback &&
+        number >= 0 &&
+        !formatted.contains(symbols.PLUS_SIGN)) {
+      formatted = '${symbols.PLUS_SIGN}$formatted';
     }
-    final withExtras = '$prefix$formatted$suffix';
+    if (_isForCurrency && !style.isFallback) {
+      formatted = formatted.replaceFirst('\u00a4', currencySymbol);
+    }
     _style = null;
-    return withExtras;
+    return formatted;
   }
 
-  /// How many digits after the decimal place should we display, given that
-  /// there are [remainingSignificantDigits] left to show.
-  int _fractionDigitsAfter(int remainingSignificantDigits) {
-    final newFractionDigits =
-        super._fractionDigitsAfter(remainingSignificantDigits);
+  @override
+  bool _useDefaultSignificantDigits() {
     // For non-currencies, or for currencies if the numbers are large enough to
     // compact, always use the number of significant digits and ignore
-    // decimalDigits. That is, $1.23K but also ¥12.3\u4E07, even though yen
-    // don't normally print decimal places.
-    if (!_isForCurrency || !_style!.isFallback) return newFractionDigits;
-    // If we are printing a currency and it's too small to compact, but
-    // significant digits would have us only print some of the decimal digits,
-    // use all of them. So $12.30, not $12.3
-    if (newFractionDigits > 0 && newFractionDigits < decimalDigits!) {
-      return decimalDigits!;
-    } else {
-      return min(newFractionDigits, decimalDigits!);
-    }
-  }
-
-  /// Defines minimumFractionDigits based on current style being formatted.
-  @override
-  int get minimumFractionDigits {
-    if (!_isForCurrency ||
-        !significantDigitsInUse ||
-        _style == null ||
-        _style!.isFallback) {
-      return super.minimumFractionDigits;
-    } else {
-      return 0;
-    }
+    // decimalDigits.
+    return !_isForCurrency || !_style!.isFallback;
   }
 
   /// Divide numbers that may not have a division operator (e.g. Int64).
   ///
   /// Only used for powers of 10, so we require an integer denominator.
-  num _divide(numerator, int denominator) {
+  static num _divide(numerator, int denominator) {
     if (numerator is num) {
       return numerator / denominator;
     }
@@ -361,43 +471,116 @@
   }
 
   _CompactStyle _styleFor(number) {
-    // We have to round the number based on the number of significant digits so
-    // that we pick the right style based on the rounded form and format 999999
-    // as 1M rather than 1000K.
-    var originalLength = NumberFormat.numberOfIntegerDigits(number);
-    var additionalDigits = originalLength - significantDigits!;
-    var digitLength = originalLength;
-    if (additionalDigits > 0) {
-      var divisor = pow(10, additionalDigits);
-      // If we have an Int64, value speed over precision and make it double.
-      var rounded = (number.toDouble() / divisor).round() * divisor;
+    if (number.abs() < 10) {
+      // Cannot be compacted.
+      return _defaultCompactStyle;
+    }
+    var rounded = number.toDouble(); // No rounding yet...
+    var digitLength = NumberFormat.numberOfIntegerDigits(number);
+    var divisor = 1; // Default.
+
+    void updateRounding() {
+      var fractionDigits = maximumFractionDigits;
+      if (significantDigitsInUse) {
+        var divisorLength = NumberFormat.numberOfIntegerDigits(divisor);
+        // We have to round the number based on the number of significant
+        // digits so that we pick the right style based on the rounded form
+        // and format 999999 as 1M rather than 1000K.
+        fractionDigits =
+            (maximumSignificantDigits ?? minimumSignificantDigits ?? 0) -
+                digitLength +
+                divisorLength -
+                1;
+        if (maximumSignificantDigits == null) {
+          // Keep all digits of the integer part.
+          fractionDigits = max(0, fractionDigits);
+        }
+      }
+      var fractionMultiplier = pow(10, fractionDigits);
+      rounded = (rounded * fractionMultiplier / divisor).round() *
+          divisor /
+          fractionMultiplier;
       digitLength = NumberFormat.numberOfIntegerDigits(rounded);
     }
-    for (var style in _styles) {
-      if (digitLength > style.totalDigits) {
-        return style.styleForSign(number);
+
+    updateRounding();
+
+    _CompactStyleBase? style;
+    for (var entry in _styles.entries) {
+      var exponent = entry.key + 1;
+      if (exponent > digitLength) {
+        break;
       }
+      style = entry.value;
+      // Recompute digits length based on new exponent.
+      divisor = style.divisor;
+      updateRounding();
     }
-    throw FormatException(
-        'No compact style found for number. This should not happen', number);
+    return style?.styleForNumber(_divide(number, divisor), this) ??
+        _defaultCompactStyle;
   }
 
   Iterable<_CompactStyle> get _stylesForSearching =>
-      _styles.reversed.expand((x) => x.allStyles);
+      _styles.values.expand((x) => x.allStyles);
 
-  num parse(String text) {
-    for (var style in _stylesForSearching) {
-      if (text.startsWith(style.prefix) && text.endsWith(style.suffix)) {
-        var numberText = text.substring(
-            style.prefix.length, text.length - style.suffix.length);
-        var number = _tryParsing(numberText);
-        if (number != null) {
-          return number * style.divisor;
+  String _normalize(String input) {
+    return input
+        .replaceAll('\u200e', '') // LEFT-TO-RIGHT MARK.
+        .replaceAll('\u200f', '') // RIGHT-TO-LEFT MARK.
+        .replaceAll('\u0020', '') // SPACE.
+        .replaceAll('\u00a0', '') // NO-BREAK SPACE.
+        .replaceAll('\u202f', '') // NARROW NO-BREAK SPACE.
+        .replaceAll('\u2212', '-'); // MINUS SIGN.
+  }
+
+  @override
+  num parse(final String inputText) {
+    for (var style in [_defaultCompactStyle, ..._stylesForSearching]) {
+      _style = style;
+      var text = _normalize(inputText);
+      var negative = false;
+      var negativePrefix = _normalize(style.negativePrefix);
+      var negativeSuffix = _normalize(style.negativeSuffix);
+      var positivePrefix = _normalize(style.positivePrefix);
+      var positiveSuffix = _normalize(style.positiveSuffix);
+      if (!style.isFallback) {
+        if (text.startsWith(negativePrefix) && text.endsWith(negativeSuffix)) {
+          text = text.substring(
+              negativePrefix.length, text.length - negativeSuffix.length);
+          negative = true;
+        } else if (text.startsWith(positivePrefix) &&
+            text.endsWith(positiveSuffix)) {
+          text = text.substring(
+              positivePrefix.length, text.length - positiveSuffix.length);
+        } else {
+          continue;
         }
       }
+      if (style.isDirectValue) {
+        // "Direct formatting" pattern (1000 => "mille").
+        if (text == style.pattern!) {
+          _style = null;
+          return style.divisor * (negative ? -1 : 1);
+        } else {
+          // Do not attempt parsing: no number.
+          continue;
+        }
+      }
+      var number = _tryParsing(text);
+      if (number == null && _zeroOffset != 0) {
+        // Locale has non-roman numerals.
+        // Try simple number parse, in case input contains roman numerals.
+        number = num.tryParse(text);
+      }
+      if (number != null) {
+        _style = null;
+        return number * style.divisor * (negative ? -1 : 1);
+      }
     }
+    _style = null;
+
     throw FormatException(
-        "Cannot parse compact number in locale '$locale'", text);
+        "Cannot parse compact number in locale '$locale'", inputText);
   }
 
   /// Returns text parsed into a number if possible, else returns null.
@@ -409,3 +592,5 @@
     }
   }
 }
+
+final _defaultCompactStyle = _CompactStyle();
diff --git a/intl/lib/src/intl/date_builder.dart b/intl/lib/src/intl/date_builder.dart
index f0eaddd..c5f5b10 100644
--- a/intl/lib/src/intl/date_builder.dart
+++ b/intl/lib/src/intl/date_builder.dart
@@ -51,8 +51,7 @@
   /// the format.
 
   // We do set it, the analyzer just can't tell.
-  // ignore: prefer_final_fields
-  var dateOnly = false;
+  bool dateOnly = false;
 
   /// The function we will call to create a DateTime from its component pieces.
   ///
diff --git a/intl/lib/src/intl/date_format.dart b/intl/lib/src/intl/date_format.dart
index 4ba4137..463ad8d 100644
--- a/intl/lib/src/intl/date_format.dart
+++ b/intl/lib/src/intl/date_format.dart
@@ -5,12 +5,13 @@
 import 'package:intl/date_symbols.dart';
 import 'package:intl/src/date_format_internal.dart';
 import 'package:intl/src/intl_helpers.dart' as helpers;
+import 'package:meta/meta.dart';
 
 import 'constants.dart' as constants;
 import 'date_builder.dart';
 import 'date_computation.dart' as date_computation;
-import 'intl_stream.dart';
 import 'regexp.dart' as regexp;
+import 'string_stack.dart';
 
 part 'date_format_field.dart';
 
@@ -206,9 +207,9 @@
 ///
 ///     Format Pattern                    Result
 ///     --------------                    -------
-///     'EEE, MMM d, ''yy'                Wed, Jul 10, '96
+///     "EEE, MMM d, ''yy"                Wed, Jul 10, '96
 ///     'h:mm a'                          12:08 PM
-///     'yyyyy.MMMMM.dd GGG hh:mm aaa'    01996.July.10 AD 12:08 PM
+///     'yyyyy.MMMM.dd GGG hh:mm aaa'     01996.July.10 AD 12:08 PM
 //
 // TODO(https://github.com/dart-lang/intl/issues/74): Merge tables.
 //
@@ -278,6 +279,9 @@
   /// There can be rare and erratic errors in DateTime creation in both
   /// JavaScript and the Dart VM, and this allows us to test ways of
   /// compensating for them.
+  @visibleForTesting
+  @Deprecated('clients should not depend on this internal field')
+  // ignore: library_private_types_in_public_api
   _DateTimeConstructor dateTimeConstructor = (int year, int month, int day,
       int hour24, int minute, int second, int fractionalSecond, bool utc) {
     if (utc) {
@@ -300,20 +304,6 @@
     return result.toString();
   }
 
-  /// NOT YET IMPLEMENTED.
-  ///
-  /// Returns a date string indicating how long ago (3 hours, 2 minutes)
-  /// something has happened or how long in the future something will happen
-  /// given a [reference] DateTime relative to the current time.
-  String formatDuration(DateTime reference) => '';
-
-  /// NOT YET IMPLEMENTED.
-  ///
-  /// Formats a string indicating how long ago (negative [duration]) or how far
-  /// in the future (positive [duration]) some time is with respect to a
-  /// reference [date].
-  String formatDurationFrom(Duration duration, DateTime date) => '';
-
   /// Given user input, attempt to parse the [inputString] into the anticipated
   /// format, treating it as being in the local timezone.
   ///
@@ -360,11 +350,11 @@
   DateTime _parseLoose(String inputString, bool utc) {
     var dateFields = DateBuilder(locale, dateTimeConstructor);
     if (utc) dateFields.utc = true;
-    var stream = IntlStream(inputString);
+    var stack = StringStack(inputString);
     for (var field in _formatFields) {
-      field.parseLoose(stream, dateFields);
+      field.parseLoose(stack, dateFields);
     }
-    if (!stream.atEnd()) {
+    if (!stack.atEnd) {
       throw FormatException(
           'Characters remaining after date parsing in $inputString');
     }
@@ -389,11 +379,11 @@
     var dateFields = DateBuilder(locale, dateTimeConstructor);
     if (utc) dateFields.utc = true;
     dateFields.dateOnly = dateOnly;
-    var stream = IntlStream(inputString);
+    var stack = StringStack(inputString);
     for (var field in _formatFields) {
-      field.parse(stream, dateFields);
+      field.parse(stack, dateFields);
     }
-    if (strict && !stream.atEnd()) {
+    if (strict && !stack.atEnd) {
       throw FormatException(
           'Characters remaining after date parsing in $inputString');
     }
@@ -829,7 +819,7 @@
 
   /// Return true if the locale exists, or if it is null. The null case
   /// is interpreted to mean that we use the default locale.
-  static bool localeExists(localeName) {
+  static bool localeExists(String? localeName) {
     if (localeName == null) return false;
     return dateTimeSymbols.containsKey(localeName);
   }
@@ -842,6 +832,9 @@
           ];
 
   /// Parse the template pattern and return a list of field objects.
+  @visibleForTesting
+  @Deprecated('clients should not depend on this internal method')
+  // ignore: library_private_types_in_public_api
   List<_DateFormatField> parsePattern(String pattern) {
     return _parsePatternHelper(pattern).reversed.toList();
   }
diff --git a/intl/lib/src/intl/date_format_field.dart b/intl/lib/src/intl/date_format_field.dart
index b6aa50e..25ca695 100644
--- a/intl/lib/src/intl/date_format_field.dart
+++ b/intl/lib/src/intl/date_format_field.dart
@@ -31,6 +31,7 @@
 
   String fullPattern() => pattern;
 
+  @override
   String toString() => pattern;
 
   /// Format date according to our specification and return the result.
@@ -41,15 +42,15 @@
   }
 
   /// Abstract method for subclasses to implementing parsing for their format.
-  void parse(IntlStream input, DateBuilder dateFields);
+  void parse(StringStack input, DateBuilder dateFields);
 
   /// Abstract method for subclasses to implementing 'loose' parsing for
   /// their format, accepting input case-insensitively, and allowing some
   /// delimiters to be skipped.
-  void parseLoose(IntlStream input, DateBuilder dateFields);
+  void parseLoose(StringStack input, DateBuilder dateFields);
 
   /// Parse a literal field. We just look for the exact input.
-  void parseLiteral(IntlStream input) {
+  void parseLiteral(StringStack input) {
     var found = input.read(width);
     if (found != pattern) {
       throwFormatException(input);
@@ -60,31 +61,30 @@
   /// amount of whitespace.
   ///
   /// Any whitespace which occurs before or after the literal field is trimmed
-  /// from the input stream. Any leading or trailing whitespace in the literal
+  /// from the input stack. Any leading or trailing whitespace in the literal
   /// field's format specification is also trimmed before matching is
   /// attempted. Therefore, leading and trailing whitespace is optional, and
   /// arbitrary additional whitespace may be added before/after the literal.
-  void parseLiteralLoose(IntlStream input) {
+  void parseLiteralLoose(StringStack input) {
     _trimWhitespace(input);
 
     var found = input.peek(_trimmedPattern.length);
     if (found == _trimmedPattern) {
-      input.read(_trimmedPattern.length);
+      input.pop(_trimmedPattern.length);
     }
 
     _trimWhitespace(input);
   }
 
-  void _trimWhitespace(IntlStream input) {
-    while (!input.atEnd() && input.peek().trim().isEmpty) {
-      input.read();
+  void _trimWhitespace(StringStack input) {
+    while (!input.atEnd && input.peek().trim().isEmpty) {
+      input.pop();
     }
   }
 
   /// Throw a format exception with an error message indicating the position.
-  Never throwFormatException(IntlStream stream) {
-    throw FormatException('Trying to read $this from ${stream.contents} '
-        'at position ${stream.index}');
+  Never throwFormatException(StringStack stack) {
+    throw FormatException('Trying to read $this from $stack');
   }
 }
 
@@ -95,11 +95,13 @@
   _DateFormatLiteralField(String pattern, DateFormat parent)
       : super(pattern, parent);
 
-  void parse(IntlStream input, DateBuilder dateFields) {
+  @override
+  void parse(StringStack input, DateBuilder dateFields) {
     parseLiteral(input);
   }
 
-  void parseLoose(IntlStream input, DateBuilder dateFields) =>
+  @override
+  void parseLoose(StringStack input, DateBuilder dateFields) =>
       parseLiteralLoose(input);
 }
 
@@ -108,17 +110,20 @@
 class _DateFormatQuotedField extends _DateFormatField {
   final String _fullPattern;
 
+  @override
   String fullPattern() => _fullPattern;
 
   _DateFormatQuotedField(String pattern, DateFormat parent)
       : _fullPattern = pattern,
         super(_patchQuotes(pattern), parent);
 
-  void parse(IntlStream input, DateBuilder dateFields) {
+  @override
+  void parse(StringStack input, DateBuilder dateFields) {
     parseLiteral(input);
   }
 
-  void parseLoose(IntlStream input, DateBuilder dateFields) =>
+  @override
+  void parseLoose(StringStack input, DateBuilder dateFields) =>
       parseLiteralLoose(input);
 
   static final _twoEscapedQuotes = RegExp(r"''");
@@ -143,7 +148,8 @@
 
   /// Parse from a list of possibilities, but case-insensitively.
   /// Assumes that input is lower case.
-  int parseEnumeratedString(IntlStream input, List<String> possibilities) {
+  @override
+  int parseEnumeratedString(StringStack input, List<String> possibilities) {
     var lowercasePossibilities =
         possibilities.map((x) => x.toLowerCase()).toList();
     try {
@@ -155,7 +161,8 @@
 
   /// Parse a month name, case-insensitively, and set it in [dateFields].
   /// Assumes that [input] is lower case.
-  void parseMonth(input, dateFields) {
+  @override
+  void parseMonth(StringStack input, DateBuilder dateFields) {
     if (width <= 2) {
       handleNumericField(input, dateFields.setMonth);
       return;
@@ -173,7 +180,8 @@
 
   /// Parse a standalone day name, case-insensitively.
   /// Assumes that input is lower case. Doesn't do anything
-  void parseStandaloneDay(input) {
+  @override
+  void parseStandaloneDay(StringStack input) {
     // This is ignored, but we still have to skip over it the correct amount.
     if (width <= 2) {
       handleNumericField(input, (x) => x);
@@ -193,7 +201,8 @@
 
   /// Parse a standalone month name, case-insensitively, and set it in
   /// [dateFields]. Assumes that input is lower case.
-  void parseStandaloneMonth(input, dateFields) {
+  @override
+  void parseStandaloneMonth(StringStack input, DateBuilder dateFields) {
     if (width <= 2) {
       handleNumericField(input, dateFields.setMonth);
       return;
@@ -214,7 +223,8 @@
 
   /// Parse a day of the week name, case-insensitively.
   /// Assumes that input is lower case. Doesn't do anything
-  void parseDayOfWeek(IntlStream input) {
+  @override
+  void parseDayOfWeek(StringStack input) {
     // This is IGNORED, but we still have to skip over it the correct amount.
     if (width <= 2) {
       handleNumericField(input, (x) => x);
@@ -239,20 +249,23 @@
   _DateFormatPatternField(pattern, parent) : super(pattern, parent);
 
   /// Format date according to our specification and return the result.
+  @override
   String format(DateTime date) {
     return formatField(date);
   }
 
   /// Parse the date according to our specification and put the result
   /// into the correct place in dateFields.
-  void parse(IntlStream input, DateBuilder dateFields) {
+  @override
+  void parse(StringStack input, DateBuilder dateFields) {
     parseField(input, dateFields);
   }
 
   /// Parse the date according to our specification and put the result
   /// into the correct place in dateFields. Allow looser parsing, accepting
   /// case-insensitive input and skipped delimiters.
-  void parseLoose(IntlStream input, DateBuilder dateFields) {
+  @override
+  void parseLoose(StringStack input, DateBuilder dateFields) {
     _LoosePatternField(pattern, parent).parse(input, dateFields);
   }
 
@@ -265,11 +278,12 @@
   /// e.g. 'yyyy' for a four-digit year. This hard-codes all the pattern
   /// characters that pertain to dates. The remaining characters, 'ahHkKms' are
   /// all time-related. See e.g. [formatField]
+  @override
   bool get forDate => _forDate ??= 'cdDEGLMQvyZz'.contains(pattern[0]);
 
   /// Parse a field representing part of a date pattern. Note that we do not
   /// return a value, but rather build up the result in [builder].
-  void parseField(IntlStream input, DateBuilder builder) {
+  void parseField(StringStack input, DateBuilder builder) {
     try {
       switch (pattern[0]) {
         case 'a':
@@ -402,7 +416,7 @@
     return width == 2 ? padTo(2, year % 100) : padTo(width, year);
   }
 
-  /// We are given [input] as a stream from which we want to read a date. We
+  /// We are given [inputStack] as an stack from which we want to read a date. We
   /// can't dynamically build up a date, so the caller has a list of the
   /// constructor arguments and a position at which to set it
   /// (year,month,day,hour,minute,second,fractionalSecond) and gives us a setter
@@ -413,16 +427,46 @@
   ///
   /// This method handles reading any of the numeric fields. The [offset]
   /// argument allows us to compensate for zero-based versus one-based values.
-  void handleNumericField(IntlStream input, void Function(int) setter,
-      [int offset = 0]) {
-    var result = input.nextInteger(
-        digitMatcher: parent.digitMatcher,
-        zeroDigit: parent.localeZeroCodeUnit);
-    if (result == null) throwFormatException(input);
+  void handleNumericField(
+    StringStack inputStack,
+    void Function(int) setter, [
+    int offset = 0,
+  ]) {
+    var result = _nextInteger(
+      inputStack,
+      parent.digitMatcher,
+      parent.localeZeroCodeUnit,
+    );
     setter(result + offset);
   }
 
-  /// We are given [input] as a stream from which we want to read a date. We
+  /// Read as much content as [digitMatcher] matches from the current position,
+  /// and parse the result as an integer, advancing the index.
+  ///
+  /// The regular expression [digitMatcher] is used to find the substring which
+  /// matches an integer.
+  /// The codeUnit of the local zero [zeroDigit] is used to anchor the parsing
+  /// into digits.
+  int _nextInteger(StringStack inputStack, RegExp digitMatcher, int zeroDigit) {
+    var string = digitMatcher.stringMatch(inputStack.peekAll());
+    if (string == null || string.isEmpty) {
+      return throwFormatException(inputStack);
+    }
+    inputStack.pop(string.length);
+    if (zeroDigit != constants.asciiZeroCodeUnit) {
+      // Trying to optimize this, as it might get called a lot. See the
+      // benchmark at benchmark/intl_stream_benchmark.dart
+      var codeUnits = string.codeUnits;
+      string = String.fromCharCodes(List.generate(
+        codeUnits.length,
+        (index) => codeUnits[index] - zeroDigit + constants.asciiZeroCodeUnit,
+        growable: false,
+      ));
+    }
+    return int.parse(string);
+  }
+
+  /// We are given [input] as a stack from which we want to read a date. We
   /// can't dynamically build up a date, so the caller has a list of the
   /// constructor arguments and a position at which to set it
   /// (year,month,day,hour,minute,second,fractionalSecond) and gives us a setter
@@ -431,18 +475,23 @@
   /// Then after all parsing is done we construct a date from the
   /// arguments. This method handles reading any of string fields from an
   /// enumerated set.
-  int parseEnumeratedString(IntlStream input, List<String> possibilities) {
-    var results = IntlStream(possibilities)
-        .findIndexes((each) => input.peek(each.length) == each);
+  int parseEnumeratedString(StringStack input, List<String> possibilities) {
+    var results = [
+      for (var i = 0; i < possibilities.length; i++)
+        if (input.peek(possibilities[i].length) == possibilities[i]) i
+    ];
     if (results.isEmpty) throwFormatException(input);
-    results.sort(
-        (a, b) => possibilities[a].length.compareTo(possibilities[b].length));
-    var longestResult = results.last;
-    input.read(possibilities[longestResult].length);
+    var longestResult = results.first;
+    for (var result in results.skip(1)) {
+      if (possibilities[result].length >= possibilities[longestResult].length) {
+        longestResult = result;
+      }
+    }
+    input.pop(possibilities[longestResult].length);
     return longestResult;
   }
 
-  void parseYear(IntlStream input, DateBuilder builder) {
+  void parseYear(StringStack input, DateBuilder builder) {
     handleNumericField(input, builder.setYear);
     builder.setHasAmbiguousCentury(width == 2);
   }
@@ -460,7 +509,7 @@
     }
   }
 
-  void parseMonth(IntlStream input, DateBuilder dateFields) {
+  void parseMonth(StringStack input, DateBuilder dateFields) {
     List<String> possibilities;
     switch (width) {
       case 5:
@@ -501,7 +550,7 @@
     return ampm[index];
   }
 
-  void parseAmPm(input, dateFields) {
+  void parseAmPm(StringStack input, DateBuilder dateFields) {
     // If we see a 'PM' note it in an extra field.
     var ampm = parseEnumeratedString(input, symbols.AMPMS);
     if (ampm == 1) dateFields.pm = true;
@@ -514,7 +563,7 @@
     return padTo(width, hours);
   }
 
-  void parse1To12Hours(IntlStream input, DateBuilder dateFields) {
+  void parse1To12Hours(StringStack input, DateBuilder dateFields) {
     handleNumericField(input, dateFields.setHour);
     if (dateFields.hour == 12) dateFields.hour = 0;
   }
@@ -540,7 +589,7 @@
     }
   }
 
-  void parseStandaloneDay(IntlStream input) {
+  void parseStandaloneDay(StringStack input) {
     // This is ignored, but we still have to skip over it the correct amount.
     List<String> possibilities;
     switch (width) {
@@ -572,7 +621,7 @@
     }
   }
 
-  void parseStandaloneMonth(input, dateFields) {
+  void parseStandaloneMonth(StringStack input, DateBuilder dateFields) {
     List<String> possibilities;
     switch (width) {
       case 5:
@@ -618,13 +667,13 @@
         : symbols.SHORTWEEKDAYS)[(date.weekday) % 7];
   }
 
-  void parseDayOfWeek(IntlStream input) {
+  void parseDayOfWeek(StringStack input) {
     // This is IGNORED, but we still have to skip over it the correct amount.
     var possibilities = width >= 4 ? symbols.WEEKDAYS : symbols.SHORTWEEKDAYS;
     parseEnumeratedString(input, possibilities);
   }
 
-  void parseEra(IntlStream input) {
+  void parseEra(StringStack input) {
     var possibilities = width >= 4 ? symbols.ERANAMES : symbols.ERAS;
     parseEnumeratedString(input, possibilities);
   }
diff --git a/intl/lib/src/intl/intl_stream.dart b/intl/lib/src/intl/intl_stream.dart
deleted file mode 100644
index 888ed9d..0000000
--- a/intl/lib/src/intl/intl_stream.dart
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:math';
-
-import 'constants.dart' as constants;
-import 'regexp.dart' as regexp;
-
-/// A simple and not particularly general stream class to make parsing
-/// dates from strings simpler. It is general enough to operate on either
-/// lists or strings.
-// TODO(alanknight): With the improvements to the collection libraries
-// since this was written we might be able to get rid of it entirely
-// in favor of e.g. aString.split('') giving us an iterable of one-character
-// strings, or else make the implementation trivial.
-class IntlStream {
-  dynamic contents;
-  int index = 0;
-
-  IntlStream(this.contents);
-
-  bool atEnd() => index >= contents.length;
-
-  dynamic next() => contents[index++];
-
-  /// Return the next [howMany] items, or as many as there are remaining.
-  /// Advance the stream by that many positions.
-  dynamic read([int howMany = 1]) {
-    var result = peek(howMany);
-    index += howMany;
-    return result;
-  }
-
-  /// Does the input start with the given string, if we start from the
-  /// current position.
-  bool startsWith(String pattern) {
-    if (contents is String) return contents.startsWith(pattern, index);
-    return pattern == peek(pattern.length);
-  }
-
-  /// Return the next [howMany] items, or as many as there are remaining.
-  /// Does not modify the stream position.
-  dynamic peek([int howMany = 1]) {
-    dynamic result;
-    if (contents is String) {
-      String stringContents = contents;
-      result = stringContents.substring(
-          index, min(index + howMany, stringContents.length));
-    } else {
-      // Assume List
-      result = contents.sublist(index, index + howMany);
-    }
-    return result;
-  }
-
-  /// Return the remaining contents of the stream
-  dynamic rest() => peek(contents.length - index);
-
-  /// Find the index of the first element for which [f] returns true.
-  /// Advances the stream to that position.
-  int? findIndex(bool Function(dynamic) f) {
-    while (!atEnd()) {
-      if (f(next())) return index - 1;
-    }
-    return null;
-  }
-
-  /// Find the indexes of all the elements for which [f] returns true.
-  /// Leaves the stream positioned at the end.
-  List<dynamic> findIndexes(bool Function(dynamic) f) {
-    var results = [];
-    while (!atEnd()) {
-      if (f(next())) results.add(index - 1);
-    }
-    return results;
-  }
-
-  /// Assuming that the contents are characters, read as many digits as we
-  /// can see and then return the corresponding integer, advancing the receiver.
-  ///
-  /// For non-ascii digits, the optional arguments are a regular expression
-  /// [digitMatcher] to find the next integer, and the codeUnit of the local
-  /// zero [zeroDigit].
-  int? nextInteger({RegExp? digitMatcher, int? zeroDigit}) {
-    var string = (digitMatcher ?? regexp.asciiDigitMatcher).stringMatch(rest());
-    if (string == null || string.isEmpty) return null;
-    read(string.length);
-    if (zeroDigit != null && zeroDigit != constants.asciiZeroCodeUnit) {
-      // Trying to optimize this, as it might get called a lot.
-      var oldDigits = string.codeUnits;
-      var newDigits = List<int>.filled(string.length, 0);
-      for (var i = 0; i < string.length; i++) {
-        newDigits[i] = oldDigits[i] - zeroDigit + constants.asciiZeroCodeUnit;
-      }
-      string = String.fromCharCodes(newDigits);
-    }
-    return int.parse(string);
-  }
-}
diff --git a/intl/lib/src/intl/micro_money.dart b/intl/lib/src/intl/micro_money.dart
index 1d4ea39..4e87eb7 100644
--- a/intl/lib/src/intl/micro_money.dart
+++ b/intl/lib/src/intl/micro_money.dart
@@ -70,6 +70,7 @@
 
   int toInt() => _integerPart.toInt();
 
+  @override
   String toString() {
     var beforeDecimal = '$_integerPart';
     var decimalPart = '';
diff --git a/intl/lib/src/intl/number_format.dart b/intl/lib/src/intl/number_format.dart
index 9a3a8f2..02858a5 100644
--- a/intl/lib/src/intl/number_format.dart
+++ b/intl/lib/src/intl/number_format.dart
@@ -7,6 +7,7 @@
 import 'package:intl/number_symbols.dart';
 import 'package:intl/number_symbols_data.dart';
 import 'package:intl/src/intl_helpers.dart' as helpers;
+import 'package:intl/src/plural_rules.dart' as plural_rules;
 
 import 'constants.dart' as constants;
 import 'number_format_parser.dart';
@@ -51,8 +52,8 @@
 /// There are also standard patterns available via the special constructors.
 /// e.g.
 ///
-///       var percent = NumberFormat.percentPattern("ar"); var
-///       eurosInUSFormat = NumberFormat.currency(locale: "en_US",
+///       var percent = NumberFormat.percentPattern("ar");
+///       var eurosInUSFormat = NumberFormat.currency(locale: "en_US",
 ///           symbol: "€");
 ///
 /// There are several such constructors available, though some of them are
@@ -87,19 +88,66 @@
 
   int maximumIntegerDigits;
   int minimumIntegerDigits;
-  int maximumFractionDigits;
-  int minimumFractionDigits;
+
+  bool _explicitMaximumFractionDigits = false;
+  int _maximumFractionDigits;
+  int get maximumFractionDigits => _maximumFractionDigits;
+  set maximumFractionDigits(int x) {
+    significantDigitsInUse = false;
+    _explicitMaximumFractionDigits = true;
+    _maximumFractionDigits = x;
+    _minimumFractionDigits = min(_minimumFractionDigits, x);
+  }
+
+  bool _explicitMinimumFractionDigits = false;
+  int _minimumFractionDigits;
+  int get minimumFractionDigits => _minimumFractionDigits;
+  set minimumFractionDigits(int x) {
+    significantDigitsInUse = false;
+    _explicitMinimumFractionDigits = true;
+    _minimumFractionDigits = x;
+    _maximumFractionDigits = max(_maximumFractionDigits, x);
+  }
+
   int minimumExponentDigits;
-  int? _significantDigits;
+
+  int? _maximumSignificantDigits;
+  int? get maximumSignificantDigits => _maximumSignificantDigits;
+  set maximumSignificantDigits(int? x) {
+    _maximumSignificantDigits = x;
+    if (x != null && _minimumSignificantDigits != null) {
+      _minimumSignificantDigits = min(_minimumSignificantDigits!, x);
+    }
+    significantDigitsInUse = true;
+  }
+
+  /// Whether minimumSignificantDigits should cause trailing 0 in fraction part.
+  ///
+  /// Ex: with 2 significant digits:
+  /// 0.999 => "1.0" (strict) or "1" (non-strict).
+  bool minimumSignificantDigitsStrict = false;
+
+  int? _minimumSignificantDigits;
+  int? get minimumSignificantDigits => _minimumSignificantDigits;
+  set minimumSignificantDigits(int? x) {
+    _minimumSignificantDigits = x;
+    if (x != null && _maximumSignificantDigits != null) {
+      _maximumSignificantDigits = max(_maximumSignificantDigits!, x);
+    }
+    significantDigitsInUse = true;
+    minimumSignificantDigitsStrict = x != null;
+  }
 
   ///  How many significant digits should we print.
   ///
   ///  Note that if significantDigitsInUse is the default false, this
   ///  will be ignored.
-  int? get significantDigits => _significantDigits;
+  @Deprecated('Use maximumSignificantDigits / minimumSignificantDigits')
+  int? get significantDigits => _minimumSignificantDigits;
+
   set significantDigits(int? x) {
-    _significantDigits = x;
-    significantDigitsInUse = true;
+    minimumSignificantDigits = x;
+    maximumSignificantDigits = x;
   }
 
   bool significantDigitsInUse = false;
@@ -162,6 +210,12 @@
   factory NumberFormat.decimalPattern([String? locale]) =>
       NumberFormat._forPattern(locale, (x) => x.DECIMAL_PATTERN);
 
+  /// Create a number format that prints as DECIMAL_PATTERN.
+  factory NumberFormat.decimalPatternDigits(
+          {String? locale, int? decimalDigits}) =>
+      NumberFormat._forPattern(locale, (x) => x.DECIMAL_PATTERN,
+          decimalDigits: decimalDigits);
+
   /// Create a number format that prints as PERCENT_PATTERN.
   factory NumberFormat.percentPattern([String? locale]) =>
       NumberFormat._forPattern(locale, (x) => x.PERCENT_PATTERN);
@@ -354,8 +408,8 @@
         minimumExponentDigits = result.minimumExponentDigits,
         maximumIntegerDigits = result.maximumIntegerDigits,
         minimumIntegerDigits = result.minimumIntegerDigits,
-        maximumFractionDigits = result.maximumFractionDigits,
-        minimumFractionDigits = result.minimumFractionDigits,
+        _maximumFractionDigits = result.maximumFractionDigits,
+        _minimumFractionDigits = result.minimumFractionDigits,
         _groupingSize = result.groupingSize,
         _finalGroupingSize = result.finalGroupingSize,
         _useSignForPositiveExponent = result.useSignForPositiveExponent,
@@ -364,18 +418,21 @@
 
   /// A number format for compact representations, e.g. "1.2M" instead
   /// of "1,200,000".
-  factory NumberFormat.compact({String? locale}) {
+  factory NumberFormat.compact({String? locale, bool explicitSign = false}) {
     return _CompactNumberFormat(
         locale: locale,
-        formatType: _CompactFormatType.COMPACT_DECIMAL_SHORT_PATTERN);
+        formatType: _CompactFormatType.COMPACT_DECIMAL_SHORT_PATTERN,
+        explicitSign: explicitSign);
   }
 
   /// A number format for "long" compact representations, e.g. "1.2 million"
-  /// instead of of "1,200,000".
-  factory NumberFormat.compactLong({String? locale}) {
+  /// instead of "1,200,000".
+  factory NumberFormat.compactLong(
+      {String? locale, bool explicitSign = false}) {
     return _CompactNumberFormat(
         locale: locale,
-        formatType: _CompactFormatType.COMPACT_DECIMAL_LONG_PATTERN);
+        formatType: _CompactFormatType.COMPACT_DECIMAL_LONG_PATTERN,
+        explicitSign: explicitSign);
   }
 
   /// A number format for compact currency representations, e.g. "$1.2M" instead
@@ -413,7 +470,7 @@
 
   /// Return true if the locale exists, or if it is null. The null case
   /// is interpreted to mean that we use the default locale.
-  static bool localeExists(localeName) {
+  static bool localeExists(String? localeName) {
     if (localeName == null) return false;
     return numberFormatSymbols.containsKey(localeName);
   }
@@ -423,7 +480,7 @@
   NumberSymbols get symbols => _symbols;
 
   /// Format [number] according to our pattern and return the formatted string.
-  String format(number) {
+  String format(dynamic number) {
     if (_isNaN(number)) return symbols.NAN;
     if (_isInfinite(number)) return '${_signPrefix(number)}${symbols.INFINITY}';
 
@@ -532,7 +589,7 @@
       // Not a normal number, but int-like, e.g. Int64
       return number;
     } else {
-      // TODO(alanknight): Do this more efficiently. If IntX  had floor and
+      // TODO(alanknight): Do this more efficiently. If IntX had floor and
       // round we could avoid this.
       var basic = _floor(number);
       var fraction = (number - basic).toDouble().round();
@@ -541,8 +598,8 @@
   }
 
   // Return the number of digits left of the decimal place in [number].
-  static int numberOfIntegerDigits(number) {
-    var simpleNumber = number.toDouble().abs();
+  static int numberOfIntegerDigits(dynamic number) {
+    var simpleNumber = (number.toDouble() as double).abs();
     // It's unfortunate that we have to do this, but we get precision errors
     // that affect the result if we use logs, e.g. 1000000
     if (simpleNumber < 10) return 1;
@@ -566,8 +623,22 @@
     return max(1, (log(simpleNumber) / _ln10).ceil());
   }
 
-  int _fractionDigitsAfter(int remainingSignificantDigits) =>
-      max(0, remainingSignificantDigits);
+  /// Whether to use SignificantDigits unconditionally for fraction digits.
+  bool _useDefaultSignificantDigits() => !_isForCurrency;
+
+  /// How many digits after the decimal place should we display, given that
+  /// by default, [fractionDigits] should be used, and there are up to
+  /// [expectedSignificantDigits] left to display in the fractional part..
+  int _adjustFractionDigits(int fractionDigits, expectedSignificantDigits) {
+    if (_useDefaultSignificantDigits()) return fractionDigits;
+    // If we are printing a currency significant digits would have us only print
+    // some of the decimal digits, use all of them. So $12.30, not $12.3
+    if (expectedSignificantDigits > 0) {
+      return decimalDigits!;
+    } else {
+      return min(fractionDigits, decimalDigits!);
+    }
+  }
 
   /// Format the basic number portion, including the fractional digits.
   void _formatFixed(dynamic number) {
@@ -575,6 +646,7 @@
     int fractionPart;
     int extraIntegerDigits;
     var fractionDigits = maximumFractionDigits;
+    var minFractionDigits = minimumFractionDigits;
 
     var power = 0;
     int digitMultiplier;
@@ -600,20 +672,63 @@
         fraction = 0;
       }
 
-      /// If we have significant digits, recalculate the number of fraction
+      /// If we have significant digits, compute the number of fraction
       /// digits based on that.
-      if (significantDigitsInUse) {
-        var significantDigits = this.significantDigits!;
-        var integerLength = numberOfIntegerDigits(integerPart);
-        var remainingSignificantDigits =
-            significantDigits - _multiplierDigits - integerLength;
-        fractionDigits = _fractionDigitsAfter(remainingSignificantDigits);
-        if (remainingSignificantDigits < 0) {
-          // We may have to round.
-          var divideBy = pow(10, integerLength - significantDigits);
-          integerPart = (integerPart / divideBy).round() * divideBy;
+      void computeFractionDigits() {
+        if (significantDigitsInUse) {
+          var integerLength = number == 0
+              ? 1
+              : integerPart != 0
+                  ? numberOfIntegerDigits(integerPart)
+                  // We might need to add digits after decimal point.
+                  : (log(fraction) / ln10).ceil();
+
+          if (minimumSignificantDigits != null) {
+            var remainingSignificantDigits =
+                minimumSignificantDigits! - _multiplierDigits - integerLength;
+
+            fractionDigits = max(0, remainingSignificantDigits);
+            if (minimumSignificantDigitsStrict) {
+              minFractionDigits = fractionDigits;
+            }
+            fractionDigits = _adjustFractionDigits(
+                fractionDigits, remainingSignificantDigits);
+          }
+
+          if (maximumSignificantDigits != null) {
+            if (maximumSignificantDigits! == 0) {
+              // Stupid case: only '0' has no significant digits.
+              integerPart = 0;
+              fractionDigits = 0;
+            } else if (maximumSignificantDigits! <
+                integerLength + _multiplierDigits) {
+              // We may have to round.
+              var divideBy = pow(10, integerLength - maximumSignificantDigits!);
+              if (maximumSignificantDigits! < integerLength) {
+                integerPart = (integerPart / divideBy).round() * divideBy;
+              }
+              fraction = (fraction / divideBy).round() * divideBy;
+              fractionDigits = 0;
+            } else {
+              fractionDigits =
+                  maximumSignificantDigits! - integerLength - _multiplierDigits;
+              fractionDigits =
+                  _adjustFractionDigits(fractionDigits, fractionDigits);
+            }
+          }
+          if (fractionDigits > maximumFractionDigits &&
+              _explicitMaximumFractionDigits) {
+            fractionDigits = min(fractionDigits, maximumFractionDigits);
+          }
+          if (fractionDigits < minimumFractionDigits &&
+              _explicitMinimumFractionDigits) {
+            fractionDigits = _minimumFractionDigits;
+          }
         }
       }
+
+      computeFractionDigits();
+
       power = pow(10, fractionDigits) as int;
       digitMultiplier = power * multiplier;
 
@@ -621,11 +736,25 @@
       // round. For fixed-size integer types this should always be zero, so
       // multiplying is OK.
       var remainingDigits = _round(fraction * digitMultiplier).toInt();
-      // However, in rounding we may overflow into the main digits.
+
+      var hasRounding = false;
       if (remainingDigits >= digitMultiplier) {
+        // Overflow into the main digits: 0.99 => 1.00
         integerPart++;
         remainingDigits -= digitMultiplier;
+        hasRounding = true;
+      } else if (numberOfIntegerDigits(remainingDigits) >
+          numberOfIntegerDigits(_floor(fraction * digitMultiplier).toInt())) {
+        // Fraction has been rounded (0.0996 -> 0.1).
+        fraction = remainingDigits / digitMultiplier;
+        hasRounding = true;
       }
+      if (hasRounding && significantDigitsInUse) {
+        // We might have to recompute significant digits after fraction.
+        // With 3 significant digits, "9.999" should be "10.0", not "10.00".
+        computeFractionDigits();
+      }
+
       // Separate out the extra integer parts from the fraction part.
       extraIntegerDigits = remainingDigits ~/ power;
       fractionPart = remainingDigits % power;
@@ -634,7 +763,7 @@
     var integerDigits = _integerDigits(integerPart, extraIntegerDigits);
     var digitLength = integerDigits.length;
     var fractionPresent =
-        fractionDigits > 0 && (minimumFractionDigits > 0 || fractionPart > 0);
+        fractionDigits > 0 && (minFractionDigits > 0 || fractionPart > 0);
 
     if (_hasIntegerDigits(integerDigits)) {
       // Add the padding digits to the regular digits so that we get grouping.
@@ -651,7 +780,9 @@
     }
 
     _decimalSeparator(fractionPresent);
-    _formatFractionPart((fractionPart + power).toString());
+    if (fractionPresent) {
+      _formatFractionPart((fractionPart + power).toString(), minFractionDigits);
+    }
   }
 
   /// Compute the raw integer digits which will then be printed with
@@ -684,9 +815,11 @@
   String _mainIntegerDigits(integer) {
     if (integer == 0) return '';
     var digits = integer.toString();
-    if (significantDigitsInUse && digits.length > significantDigits!) {
-      digits = digits.substring(0, significantDigits) +
-          ''.padLeft(digits.length - significantDigits!, '0');
+    if (significantDigitsInUse &&
+        maximumSignificantDigits != null &&
+        digits.length > maximumSignificantDigits!) {
+      digits = digits.substring(0, maximumSignificantDigits!) +
+          ''.padLeft(digits.length - maximumSignificantDigits!, '0');
     }
     // If we have a fixed-length int representation, it can have a negative
     // number whose negation is also negative, e.g. 2^-63 in 64-bit.
@@ -695,11 +828,11 @@
   }
 
   /// Format the part after the decimal place in a fixed point number.
-  void _formatFractionPart(String fractionPart) {
+  void _formatFractionPart(String fractionPart, int minDigits) {
     var fractionLength = fractionPart.length;
     while (fractionPart.codeUnitAt(fractionLength - 1) ==
             constants.asciiZeroCodeUnit &&
-        fractionLength > minimumFractionDigits + 1) {
+        fractionLength > minDigits + 1) {
       fractionLength--;
     }
     for (var i = 1; i < fractionLength; i++) {
@@ -798,6 +931,7 @@
     _finalGroupingSize = 0;
   }
 
+  @override
   String toString() => 'NumberFormat($_locale, $_pattern)';
 }
 
diff --git a/intl/lib/src/intl/number_format_parser.dart b/intl/lib/src/intl/number_format_parser.dart
index e4c8871..e867640 100644
--- a/intl/lib/src/intl/number_format_parser.dart
+++ b/intl/lib/src/intl/number_format_parser.dart
@@ -5,8 +5,7 @@
 
 import 'package:intl/number_symbols.dart';
 import 'package:intl/number_symbols_data.dart';
-
-import 'string_iterator.dart';
+import 'package:intl/src/intl/string_stack.dart';
 
 // ignore_for_file: constant_identifier_names
 
@@ -68,7 +67,7 @@
   final NumberSymbols symbols;
 
   /// The pattern we are parsing.
-  final StringIterator pattern;
+  final StringStack pattern;
 
   /// Whether this is a currency.
   final bool isForCurrency;
@@ -90,9 +89,7 @@
   NumberFormatParser(this.symbols, String input, this.isForCurrency,
       this.currencySymbol, this.currencyName, int? decimalDigits)
       : result = NumberFormatParseResult(symbols, decimalDigits),
-        pattern = StringIterator(input) {
-    pattern.moveNext();
-  }
+        pattern = StringStack(input);
 
   static NumberFormatParseResult parse(
           NumberSymbols symbols,
@@ -122,19 +119,19 @@
     result.positiveSuffix = _parseAffix();
     // If we have separate positive and negative patterns, now parse the
     // the negative version.
-    if (pattern.current == NumberFormatParser.PATTERN_SEPARATOR) {
-      pattern.moveNext();
+    if (pattern.peek() == NumberFormatParser.PATTERN_SEPARATOR) {
+      pattern.pop();
       result.negativePrefix = _parseAffix();
       // Skip over the negative trunk, verifying that it's identical to the
       // positive trunk.
-      var trunkIterator = StringIterator(trunk);
-      while (trunkIterator.moveNext()) {
-        var each = trunkIterator.current;
-        if (pattern.current != each && pattern.current != null) {
+      var trunkStack = StringStack(trunk);
+      while (!trunkStack.atEnd) {
+        var each = trunkStack.read();
+        if (pattern.peek() != each && !pattern.atEnd) {
           throw FormatException(
               'Positive and negative trunks must be the same', trunk);
         }
-        pattern.moveNext();
+        pattern.pop();
       }
       result.negativeSuffix = _parseAffix();
     } else {
@@ -161,7 +158,7 @@
   String _parseAffix() {
     var affix = StringBuffer();
     inQuote = false;
-    while (parseCharacterAffix(affix) && pattern.moveNext()) {}
+    while (parseCharacterAffix(affix) && pattern.read().isNotEmpty) {}
     return affix.toString();
   }
 
@@ -169,11 +166,12 @@
   /// if we should continue to look for more affix characters, and false if
   /// we have reached the end.
   bool parseCharacterAffix(StringBuffer affix) {
-    var ch = pattern.current;
-    if (ch == null) return false;
+    if (pattern.atEnd) return false;
+    var ch = pattern.peek();
     if (ch == QUOTE) {
-      if (pattern.peek == QUOTE) {
-        pattern.moveNext();
+      var peek = pattern.peek(2);
+      if (peek.length == 2 && peek[1] == QUOTE) {
+        pattern.pop();
         affix.write(QUOTE); // 'don''t'
       } else {
         inQuote = !inQuote;
@@ -217,18 +215,18 @@
   }
 
   /// Variables used in [_parseTrunk] and [parseTrunkCharacter].
-  var decimalPos = -1;
-  var digitLeftCount = 0;
-  var zeroDigitCount = 0;
-  var digitRightCount = 0;
-  var groupingCount = -1;
+  int decimalPos = -1;
+  int digitLeftCount = 0;
+  int zeroDigitCount = 0;
+  int digitRightCount = 0;
+  int groupingCount = -1;
 
   /// Parse the "trunk" portion of the pattern, the piece that doesn't include
   /// positive or negative prefixes or suffixes.
   String _parseTrunk() {
     var loop = true;
     var trunk = StringBuffer();
-    while (pattern.current != null && loop) {
+    while (pattern.peek().isNotEmpty && loop) {
       loop = parseTrunkCharacter(trunk);
     }
 
@@ -247,7 +245,7 @@
             (decimalPos < digitLeftCount ||
                 decimalPos > digitLeftCount + zeroDigitCount) ||
         groupingCount == 0) {
-      throw FormatException('Malformed pattern "${pattern.input}"');
+      throw FormatException('Malformed pattern "${pattern.contents}"');
     }
     var totalDigits = digitLeftCount + zeroDigitCount + digitRightCount;
 
@@ -290,8 +288,8 @@
   /// Parse an individual character of the trunk. Return true if we should
   /// continue to look for additional trunk characters or false if we have
   /// reached the end.
-  bool parseTrunkCharacter(trunk) {
-    var ch = pattern.current;
+  bool parseTrunkCharacter(StringBuffer trunk) {
+    var ch = pattern.peek();
     switch (ch) {
       case PATTERN_DIGIT:
         if (zeroDigitCount > 0) {
@@ -305,7 +303,8 @@
         break;
       case PATTERN_ZERO_DIGIT:
         if (digitRightCount > 0) {
-          throw FormatException('Unexpected "0" in pattern "${pattern.input}');
+          throw FormatException(
+              'Unexpected "0" in pattern "${pattern.contents}');
         }
         zeroDigitCount++;
         if (groupingCount >= 0 && decimalPos < 0) {
@@ -336,19 +335,17 @@
         result.minimumExponentDigits = 0;
 
         // exponent pattern can have a optional '+'.
-        pattern.moveNext();
-        var nextChar = pattern.current;
+        pattern.pop();
+        var nextChar = pattern.peek();
         if (nextChar == PATTERN_PLUS) {
-          trunk.write(pattern.current);
-          pattern.moveNext();
+          trunk.write(pattern.read());
           result.useSignForPositiveExponent = true;
         }
 
         // Use lookahead to parse out the exponential part
         // of the pattern, then jump into phase 2.
-        while (pattern.current == PATTERN_ZERO_DIGIT) {
-          trunk.write(pattern.current);
-          pattern.moveNext();
+        while (pattern.peek() == PATTERN_ZERO_DIGIT) {
+          trunk.write(pattern.read());
           result.minimumExponentDigits++;
         }
 
@@ -361,7 +358,7 @@
         return false;
     }
     trunk.write(ch);
-    pattern.moveNext();
+    pattern.pop();
     return true;
   }
 }
diff --git a/intl/lib/src/intl/number_parser.dart b/intl/lib/src/intl/number_parser.dart
index cc0e86c..bbf60dd 100644
--- a/intl/lib/src/intl/number_parser.dart
+++ b/intl/lib/src/intl/number_parser.dart
@@ -5,9 +5,9 @@
 import 'package:intl/number_symbols.dart';
 
 import 'constants.dart' as constants;
-import 'intl_stream.dart';
 import 'number_format.dart';
 import 'number_format_parser.dart';
+import 'string_stack.dart';
 
 ///  A one-time object for parsing a particular numeric string. One-time here
 /// means an instance can only parse one string. This is implemented by
@@ -21,7 +21,7 @@
   final String text;
 
   /// What we use to iterate over the input text.
-  final IntlStream input;
+  final StringStack input;
 
   /// The result of parsing [text] according to [format]. Automatically
   /// populated in the constructor.
@@ -65,7 +65,7 @@
   int get _localeZero => format.localeZero;
 
   ///  Create a new [_NumberParser] on which we can call parse().
-  NumberParser(this.format, this.text) : input = IntlStream(text) {
+  NumberParser(this.format, this.text) : input = StringStack(text) {
     scale = format.multiplier;
     value = parse();
   }
@@ -150,15 +150,15 @@
       }
     }
     if (skip) {
-      if (gotPositive) input.read(_positivePrefix.length);
-      if (gotNegative) input.read(_negativePrefix.length);
+      if (gotPositive) input.pop(_positivePrefix.length);
+      if (gotNegative) input.pop(_negativePrefix.length);
     }
   }
 
   /// If the rest of our input is either the positive or negative suffix,
   /// set [gotPositiveSuffix] or [gotNegativeSuffix] accordingly.
   void checkSuffixes() {
-    var remainder = input.rest();
+    var remainder = input.peekAll();
     if (remainder == _positiveSuffix) gotPositiveSuffix = true;
     if (remainder == _negativeSuffix) gotNegativeSuffix = true;
   }
@@ -172,7 +172,7 @@
     // skip them initially because they might also be semantically meaningful,
     // e.g. leading %. So we allow them through the loop, but only once.
     var foundAnInterpretation = false;
-    if (input.index == 0 && !prefixesSkipped) {
+    if (input.atStart && !prefixesSkipped) {
       prefixesSkipped = true;
       checkPrefixes(skip: true);
       foundAnInterpretation = true;
@@ -181,7 +181,7 @@
     for (var key in replacements.keys) {
       if (input.startsWith(key)) {
         _normalized.write(replacements[key]!());
-        input.read(key.length);
+        input.pop(key.length);
         return;
       }
     }
@@ -207,7 +207,7 @@
 
     if (gotPositive && !gotPositiveSuffix) invalidNumber();
     if (gotNegative && !gotNegativeSuffix) invalidNumber();
-    if (!input.atEnd()) invalidNumber();
+    if (!input.atEnd) invalidNumber();
 
     return parsed;
   }
@@ -218,11 +218,11 @@
 
   /// Parse the number portion of the input, i.e. not any prefixes or suffixes,
   /// and assuming NaN and Infinity are already handled.
-  num parseNumber(IntlStream input) {
+  num parseNumber(StringStack input) {
     if (gotNegative) {
       _normalized.write('-');
     }
-    while (!done && !input.atEnd()) {
+    while (!done && !input.atEnd) {
       var digit = asDigit(input.peek());
       if (digit != null) {
         _normalized.writeCharCode(constants.asciiZeroCodeUnit + digit);
diff --git a/intl/lib/src/intl/string_iterator.dart b/intl/lib/src/intl/string_iterator.dart
deleted file mode 100644
index 73c4043..0000000
--- a/intl/lib/src/intl/string_iterator.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Provides an 'iterator' over a string as a list of substrings, and also
-/// gives us a lookahead of one via the [peek] method.
-class StringIterator {
-  final String input;
-  int nextIndex = 0;
-  String? _current;
-
-  StringIterator(this.input);
-
-  String? get current => _current;
-
-  bool moveNext() {
-    if (nextIndex >= input.length) {
-      _current = null;
-      return false;
-    }
-    _current = input[nextIndex++];
-    return true;
-  }
-
-  String? get peek => nextIndex >= input.length ? null : input[nextIndex];
-}
diff --git a/intl/lib/src/intl/string_stack.dart b/intl/lib/src/intl/string_stack.dart
new file mode 100644
index 0000000..90ce5e7
--- /dev/null
+++ b/intl/lib/src/intl/string_stack.dart
@@ -0,0 +1,47 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:math';
+
+/// An indexed position in a String which can read by specified character
+/// counts, or read digits up to a delimiter.
+class StringStack {
+  final String contents;
+  int _index = 0;
+
+  StringStack(this.contents);
+
+  bool get atStart => _index == 0;
+
+  bool get atEnd => _index >= contents.length;
+
+  String next() => contents[_index++];
+
+  /// Advance the index by [n].
+  void pop([int n = 1]) => _index += n;
+
+  /// Return the next [n] characters, or as many as there are remaining,
+  /// and advance the index.
+  String read([int n = 1]) {
+    var result = peek(n);
+    pop(n);
+    return result;
+  }
+
+  /// Returns whether the input starts with [pattern] from the current index.
+  bool startsWith(String pattern) => contents.startsWith(pattern, _index);
+
+  /// Return the next [howMany] characters, or as many as there are remaining,
+  /// without advancing the index.
+  String peek([int howMany = 1]) =>
+      contents.substring(_index, min(_index + howMany, contents.length));
+
+  /// Return the remaining contents of the String, without advancing the index.
+  String peekAll() => peek(contents.length - _index);
+
+  @override
+  String toString() {
+    return '$contents at $_index';
+  }
+}
diff --git a/intl/lib/src/intl_helpers.dart b/intl/lib/src/intl_helpers.dart
index 542c730..aec62c9 100644
--- a/intl/lib/src/intl_helpers.dart
+++ b/intl/lib/src/intl_helpers.dart
@@ -11,7 +11,7 @@
 import 'intl_helpers.dart' as helpers;
 
 /// Type for the callback action when a message translation is not found.
-typedef MessageIfAbsent = String Function(
+typedef MessageIfAbsent = String? Function(
     String? messageText, List<Object>? args);
 
 /// This is used as a marker for a locale data map that hasn't been initialized,
@@ -53,6 +53,7 @@
   String get _uninitializedMessages =>
       (_badMessages.toSet().toList()..sort()).join('\n    ');
 
+  @override
   String? lookupMessage(String? messageText, String? locale, String? name,
       List<Object>? args, String? meaning,
       {MessageIfAbsent? ifAbsent}) {
@@ -81,6 +82,7 @@
         ', call $message.');
   }
 
+  @override
   void addLocale(String localeName, Function findLocale) => _throwException();
 }
 
@@ -94,6 +96,7 @@
 class LocaleDataException implements Exception {
   final String message;
   LocaleDataException(this.message);
+  @override
   String toString() => 'LocaleDataException: $message';
 }
 
@@ -127,6 +130,25 @@
   return meaning == null ? text : '${text}_$meaning';
 }
 
+/// Returns an index of a separator between language and region.
+///
+/// Assumes that language length can be only 2 or 3.
+int _separatorIndex(String locale) {
+  if (locale.length < 3) {
+    return -1;
+  }
+  if (locale[2] == '-' || locale[2] == '_') {
+    return 2;
+  }
+  if (locale.length < 4) {
+    return -1;
+  }
+  if (locale[3] == '-' || locale[3] == '_') {
+    return 3;
+  }
+  return -1;
+}
+
 String canonicalizedLocale(String? aLocale) {
 // Locales of length < 5 are presumably two-letter forms, or else malformed.
 // We return them unmodified and if correct they will be found.
@@ -138,11 +160,16 @@
   if (aLocale == null) return global_state.getCurrentLocale();
   if (aLocale == 'C') return 'en_ISO';
   if (aLocale.length < 5) return aLocale;
-  if (aLocale[2] != '-' && (aLocale[2] != '_')) return aLocale;
-  var region = aLocale.substring(3);
-// If it's longer than three it's something odd, so don't touch it.
+
+  var separatorIndex = _separatorIndex(aLocale);
+  if (separatorIndex == -1) {
+    return aLocale;
+  }
+  var language = aLocale.substring(0, separatorIndex);
+  var region = aLocale.substring(separatorIndex + 1);
+  // If it's longer than three it's something odd, so don't touch it.
   if (region.length <= 3) region = region.toUpperCase();
-  return '${aLocale[0]}${aLocale[1]}_$region';
+  return '${language}_$region';
 }
 
 String? verifiedLocale(String? newLocale, bool Function(String) localeExists,
@@ -179,6 +206,22 @@
 
 /// Return the short version of a locale name, e.g. 'en_US' => 'en'
 String shortLocale(String aLocale) {
-  if (aLocale.length < 2) return aLocale;
-  return aLocale.substring(0, 2).toLowerCase();
+  // TODO(b/241094372): Remove this check.
+  if (aLocale == 'invalid') {
+    return 'in';
+  }
+  if (aLocale.length < 2) {
+    return aLocale;
+  }
+  var separatorIndex = _separatorIndex(aLocale);
+  if (separatorIndex == -1) {
+    if (aLocale.length < 4) {
+      // aLocale is already only a language code.
+      return aLocale.toLowerCase();
+    } else {
+      // Something weird, returning as is.
+      return aLocale;
+    }
+  }
+  return aLocale.substring(0, separatorIndex).toLowerCase();
 }
diff --git a/intl/lib/src/locale/locale_implementation.dart b/intl/lib/src/locale/locale_implementation.dart
index 230eb80..65cc282 100644
--- a/intl/lib/src/locale/locale_implementation.dart
+++ b/intl/lib/src/locale/locale_implementation.dart
@@ -137,6 +137,7 @@
   /// (deprecated tags have been replaced), but not necessarily valid (the
   /// language might not exist) because the list of valid languages changes with
   /// time.
+  @override
   final String languageCode;
 
   /// The script subtag of the Locale Identifier, null if absent.
@@ -145,6 +146,7 @@
   /// (deprecated tags have been replaced), but not necessarily valid (the
   /// script might not exist) because the list of valid scripts changes with
   /// time.
+  @override
   final String? scriptCode;
 
   /// The region subtag of the Locale Identifier, null if absent.
@@ -153,6 +155,7 @@
   /// (deprecated tags have been replaced), but not necessarily valid (the
   /// region might not exist) because the list of valid regions changes with
   /// time.
+  @override
   final String? countryCode;
 
   /// Iterable of variant subtags, zero-length iterable if variants are absent.
@@ -161,6 +164,7 @@
   /// (sorted alphabetically and deprecated tags have been replaced) but not
   /// necessarily valid (variants might not exist) because the list of variants
   /// changes with time.
+  @override
   final Iterable<String> variants;
 
   /// Locale extensions, null if the locale has no extensions.
@@ -171,6 +175,7 @@
   String? _languageTag;
 
   /// Returns the canonical Unicode BCP47 Locale Identifier for this locale.
+  @override
   String toLanguageTag() {
     if (_languageTag == null) {
       final out = [languageCode];
diff --git a/intl/lib/src/plural_rules.dart b/intl/lib/src/plural_rules.dart
index 3c7d3d2..c11b6da 100644
--- a/intl/lib/src/plural_rules.dart
+++ b/intl/lib/src/plural_rules.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 
 /// Provides locale-specific plural rules. Based on pluralrules.js from Closure.
+/// Follow java/com/google/i18n/tools/generators/README.md to generate js rules,
+/// which can then be ported to dart.
 ///
 /// Each function does the calculation for one or more locales. These are done in terms of
 /// various values used by the CLDR syntax and defined by UTS #35
@@ -36,7 +38,7 @@
   _precision = precision;
   _i = _n.round();
   _updateVF(_n);
-  _updateWT(_f, _v);
+  _updateWT(_v, _f);
 }
 
 /// The number whose [PluralCase] we are trying to find.
@@ -138,13 +140,6 @@
   return OTHER;
 }
 
-PluralCase _pt_PT_rule() {
-  if (_n == 1 && _v == 0) {
-    return ONE;
-  }
-  return OTHER;
-}
-
 PluralCase _br_rule() {
   if (_n % 10 == 1 && _n % 100 != 11 && _n % 100 != 71 && _n % 100 != 91) {
     return ONE;
@@ -179,16 +174,6 @@
   return OTHER;
 }
 
-PluralCase _ro_rule() {
-  if (_i == 1 && _v == 0) {
-    return ONE;
-  }
-  if (_v != 0 || _n == 0 || _n != 1 && _n % 100 >= 1 && _n % 100 <= 19) {
-    return FEW;
-  }
-  return OTHER;
-}
-
 PluralCase _hi_rule() {
   if (_i == 0 || _n == 1) {
     return ONE;
@@ -196,8 +181,22 @@
   return OTHER;
 }
 
-PluralCase _fr_rule() {
-  if (_i == 0 || _i == 1) {
+PluralCase _es_rule() {
+  if (_n == 1) {
+    return ONE;
+  }
+  return OTHER;
+}
+
+PluralCase _hy_rule() {
+  if (_n >= 0 && _n <= 1.5) {
+    return ONE;
+  }
+  return OTHER;
+}
+
+PluralCase _pt_rule() {
+  if (_n >= 0 && _n <= 2 && _n != 2) {
     return ONE;
   }
   return OTHER;
@@ -234,6 +233,13 @@
   return OTHER;
 }
 
+PluralCase _it_rule() {
+  if (_n == 1 && _v == 0) {
+    return ONE;
+  }
+  return OTHER;
+}
+
 PluralCase _lv_rule() {
   if (_n % 10 == 0 ||
       _n % 100 >= 11 && _n % 100 <= 19 ||
@@ -326,6 +332,9 @@
 }
 
 PluralCase _be_rule() {
+  if (_v != 0) {
+    return OTHER;
+  }
   if (_n % 10 == 1 && _n % 100 != 11) {
     return ONE;
   }
@@ -340,14 +349,17 @@
   return OTHER;
 }
 
-PluralCase _mk_rule() {
-  if (_v == 0 && _i % 10 == 1 || _f % 10 == 1) {
+PluralCase _fr_rule() {
+  if (_n >= 0 && _n <= 1.5) {
     return ONE;
   }
   return OTHER;
 }
 
 PluralCase _ga_rule() {
+  if (_v != 0) {
+    return OTHER;
+  }
   if (_n == 1) {
     return ONE;
   }
@@ -363,15 +375,15 @@
   return OTHER;
 }
 
-PluralCase _pt_rule() {
-  if (_n >= 0 && _n <= 2 && _n != 2) {
+PluralCase _af_rule() {
+  if (_i == 1 && _v == 0) {
     return ONE;
   }
   return OTHER;
 }
 
-PluralCase _es_rule() {
-  if (_n == 1) {
+PluralCase _mk_rule() {
+  if (_v == 0 && _i % 10 == 1 || _f % 10 == 1) {
     return ONE;
   }
   return OTHER;
@@ -384,8 +396,21 @@
   return OTHER;
 }
 
+PluralCase _ro_rule() {
+  if (_i == 1 && _v == 0) {
+    return ONE;
+  }
+  if (_v != 0 || _n == 0 || _n != 1 && _n % 100 >= 1 && _n % 100 <= 19) {
+    return FEW;
+  }
+  return OTHER;
+}
+
 PluralCase _ar_rule() {
-  if (_n == 0) {
+  if (_v != 0) {
+    return OTHER;
+  }
+  if (_n == 1) {
     return ZERO;
   }
   if (_n == 1) {
@@ -417,10 +442,13 @@
 }
 
 PluralCase _lt_rule() {
-  if (_n % 10 == 1 && (_n % 100 < 11 || _n % 100 > 19)) {
+  if (_v == 0 && _n % 10 == 1 && (_n % 100 < 11 || _n % 100 > 19)) {
     return ONE;
   }
-  if (_n % 10 >= 2 && _n % 10 <= 9 && (_n % 100 < 11 || _n % 100 > 19)) {
+  if (_v == 0 &&
+      _n % 10 >= 2 &&
+      _n % 10 <= 9 &&
+      (_n % 100 < 11 || _n % 100 > 19)) {
     return FEW;
   }
   if (_f != 0) {
@@ -436,8 +464,8 @@
   return OTHER;
 }
 
-PluralCase _ak_rule() {
-  if (_n >= 0 && _n <= 1) {
+PluralCase _ln_rule() {
+  if (_v == 00 && (_i == 0 || _i == 1)) {
     return ONE;
   }
   return OTHER;
@@ -445,30 +473,37 @@
 
 /// Selected Plural rules by locale.
 final pluralRules = {
-  'af': _es_rule,
+  'en_ISO': _en_rule,
+  'af': _af_rule,
   'am': _hi_rule,
   'ar': _ar_rule,
-  'az': _es_rule,
+  'ar_DZ': _ar_rule,
+  'ar_EG': _ar_rule,
+  'as': _hi_rule,
+  'az': _af_rule,
   'be': _be_rule,
-  'bg': _es_rule,
+  'bg': _af_rule,
+  'bm': _default_rule,
   'bn': _hi_rule,
   'br': _br_rule,
   'bs': _sr_rule,
   'ca': _en_rule,
-  'chr': _es_rule,
+  'chr': _af_rule,
   'cs': _cs_rule,
   'cy': _cy_rule,
   'da': _da_rule,
   'de': _en_rule,
   'de_AT': _en_rule,
   'de_CH': _en_rule,
-  'el': _es_rule,
+  'el': _af_rule,
   'en': _en_rule,
   'en_AU': _en_rule,
   'en_CA': _en_rule,
   'en_GB': _en_rule,
   'en_IE': _en_rule,
   'en_IN': _en_rule,
+  'en_MY': _en_rule,
+  'en_NZ': _en_rule,
   'en_SG': _en_rule,
   'en_US': _en_rule,
   'en_ZA': _en_rule,
@@ -478,76 +513,82 @@
   'es_MX': _es_rule,
   'es_US': _es_rule,
   'et': _en_rule,
-  'eu': _es_rule,
+  'eu': _af_rule,
   'fa': _hi_rule,
   'fi': _en_rule,
   'fil': _fil_rule,
   'fr': _fr_rule,
   'fr_CA': _fr_rule,
+  'fr_CH': _fr_rule,
+  'fur': _af_rule,
   'ga': _ga_rule,
   'gl': _en_rule,
-  'gsw': _es_rule,
+  'gsw': _af_rule,
   'gu': _hi_rule,
-  'haw': _es_rule,
+  'haw': _af_rule,
   'he': _he_rule,
   'hi': _hi_rule,
   'hr': _sr_rule,
-  'hu': _es_rule,
-  'hy': _fr_rule,
+  'hu': _af_rule,
+  'hy': _hy_rule,
   'id': _default_rule,
   'in': _default_rule,
   'is': _is_rule,
-  'it': _en_rule,
+  'it': _it_rule,
+  'it_CH': _it_rule,
   'iw': _he_rule,
   'ja': _default_rule,
-  'ka': _es_rule,
-  'kk': _es_rule,
+  'ka': _af_rule,
+  'kk': _af_rule,
   'km': _default_rule,
   'kn': _hi_rule,
   'ko': _default_rule,
-  'ky': _es_rule,
-  'ln': _ak_rule,
+  'ky': _af_rule,
+  'ln': _ln_rule,
   'lo': _default_rule,
   'lt': _lt_rule,
   'lv': _lv_rule,
+  'mg': _ln_rule,
   'mk': _mk_rule,
-  'ml': _es_rule,
-  'mn': _es_rule,
+  'ml': _af_rule,
+  'mn': _af_rule,
   'mo': _ro_rule,
-  'mr': _hi_rule,
+  'mr': _af_rule,
   'ms': _default_rule,
   'mt': _mt_rule,
   'my': _default_rule,
-  'nb': _es_rule,
-  'ne': _es_rule,
+  'nb': _af_rule,
+  'ne': _af_rule,
   'nl': _en_rule,
-  'no': _es_rule,
-  'no_NO': _es_rule,
-  'or': _es_rule,
-  'pa': _ak_rule,
+  'no': _af_rule,
+  'no_NO': _af_rule,
+  'nyn': _af_rule,
+  'or': _af_rule,
+  'pa': _ln_rule,
   'pl': _pl_rule,
+  'ps': _af_rule,
   'pt': _pt_rule,
   'pt_BR': _pt_rule,
-  'pt_PT': _pt_PT_rule,
+  'pt_PT': _it_rule,
   'ro': _ro_rule,
   'ru': _ru_rule,
   'sh': _sr_rule,
   'si': _si_rule,
   'sk': _cs_rule,
   'sl': _sl_rule,
-  'sq': _es_rule,
+  'sq': _af_rule,
   'sr': _sr_rule,
   'sr_Latn': _sr_rule,
   'sv': _en_rule,
   'sw': _en_rule,
-  'ta': _es_rule,
-  'te': _es_rule,
+  'ta': _af_rule,
+  'te': _af_rule,
   'th': _default_rule,
   'tl': _fil_rule,
-  'tr': _es_rule,
+  'tr': _af_rule,
   'uk': _ru_rule,
   'ur': _en_rule,
-  'uz': _es_rule,
+  'uz': _af_rule,
   'vi': _default_rule,
   'zh': _default_rule,
   'zh_CN': _default_rule,
diff --git a/intl/pubspec.yaml b/intl/pubspec.yaml
index 1f9eeb8..e12a09f 100644
--- a/intl/pubspec.yaml
+++ b/intl/pubspec.yaml
@@ -1,28 +1,23 @@
 name: intl
-version: 0.17.0
-homepage: https://github.com/dart-lang/intl
+version: 0.18.0
 description: >-
   Contains code to deal with internationalized/localized messages, date and
   number formatting and parsing, bi-directional text, and other
   internationalization issues.
+repository: https://github.com/dart-lang/intl
 
 environment:
-  sdk: '>=2.12.0-0 <3.0.0'
+  sdk: '>=2.12.0 <3.0.0'
 
 dependencies:
   clock: ^1.1.0
+  meta: ^1.0.2
   path: ^1.8.0
 
 dev_dependencies:
-  ffi: any
-  fixnum: '>=0.9.0 <0.11.0'
-  js: ^0.6.3-nullsafety
-  test: ^1.16.0-nullsafety.4
-
-dependency_overrides:
-  ffi:
-    git:
-      url: https://github.com/dart-lang/ffi
-      ref: null_safety
-  fixnum:
-    git: https://github.com/dart-lang/fixnum
+  benchmark_harness: ^2.2.0
+  ffi: ^1.0.0
+  fixnum: ^1.0.0
+  js: ^0.6.3
+  lints: '>=1.0.0 <3.0.0'
+  test: ^1.16.0
diff --git a/intl/tool/generate_locale_data_files.dart b/intl/tool/generate_locale_data_files.dart
index 9a398c6..3175ef0 100644
--- a/intl/tool/generate_locale_data_files.dart
+++ b/intl/tool/generate_locale_data_files.dart
@@ -1,7 +1,6 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-// @dart=2.9
 
 /// A utility program to take locale data represented as a Dart map whose keys
 /// are locale names and write it into individual JSON files named by locale.
@@ -12,13 +11,23 @@
 /// which is sourced by the date_symbol_data... files.
 import 'dart:convert';
 import 'dart:io';
+
 import 'package:intl/date_symbol_data_local.dart';
+import 'package:intl/date_symbols.dart';
 import 'package:intl/date_time_patterns.dart';
 import 'package:intl/intl.dart';
 import 'package:path/path.dart' as path;
-import '../test/data_directory.dart';
 
-void main() {
+import '../test/data_directory.dart' as test;
+
+String? dataDirectoryOverride;
+
+String get dataDirectory => dataDirectoryOverride ?? test.dataDirectory;
+
+void main(List<String> args) {
+  if (args.isNotEmpty) {
+    dataDirectoryOverride = args[0];
+  }
   initializeDateFormatting('en_IGNORED', null);
   writeSymbolData();
   writePatternData();
@@ -34,41 +43,39 @@
       'code is governed by a\n// BSD-style license that can be found in the'
       ' LICENSE file.\n\n'
       '/// Hard-coded list of all available locales for dates.\n');
-  output.write('final availableLocalesForDateFormatting = const [');
+  output.writeln('final availableLocalesForDateFormatting = const [');
   var allLocales = DateFormat.allLocalesWithSymbols();
   for (var locale in allLocales) {
-    output.write("'$locale'");
-    if (locale == allLocales.last) {
-      output.write('];');
-    } else {
-      output.write(',\n    ');
-    }
+    output.writeln("  '$locale',");
   }
+  output.writeln('];');
   output.close();
 }
 
 void writeSymbolData() {
-  dateTimeSymbolMap().forEach(writeSymbols);
+  // TODO(#482): The implicit convertion here from dynamic to String and
+  // DateSymbols won't be needed when dateTimeSymbolMap() has more type info.
+  dateTimeSymbolMap().forEach((key, value) => writeSymbols(key, value));
 }
 
 void writePatternData() {
   dateTimePatternMap().forEach(writePatterns);
 }
 
-void writeSymbols(locale, symbols) {
+void writeSymbols(String locale, DateSymbols symbols) {
   var file = File(path.join(dataDirectory, 'symbols', '$locale.json'));
   var output = file.openWrite();
   writeToJSON(symbols, output);
   output.close();
 }
 
-void writePatterns(locale, patterns) {
+void writePatterns(String locale, Map<String, String> patterns) {
   var file = File(path.join(dataDirectory, 'patterns', '$locale.json'));
   file.openWrite()
     ..write(json.encode(patterns))
     ..close();
 }
 
-void writeToJSON(dynamic data, IOSink out) {
+void writeToJSON(DateSymbols data, IOSink out) {
   out.write(json.encode(data.serializeToMap()));
 }