twitter_cldr 5.4.0 → 6.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +6 -1
- data/lib/twitter_cldr.rb +22 -3
- data/lib/twitter_cldr/formatters/list_formatter.rb +1 -1
- data/lib/twitter_cldr/resources.rb +2 -0
- data/lib/twitter_cldr/resources/currency_symbols_importer.rb +1 -1
- data/lib/twitter_cldr/resources/hyphenation_importer.rb +4 -2
- data/lib/twitter_cldr/resources/parent_locales_importer.rb +54 -0
- data/lib/twitter_cldr/resources/properties/emoji_importer.rb +3 -3
- data/lib/twitter_cldr/resources/requirements/unicode_requirement.rb +1 -1
- data/lib/twitter_cldr/resources/segment_dictionaries_importer.rb +2 -1
- data/lib/twitter_cldr/resources/timezones_importer.rb +11 -1
- data/lib/twitter_cldr/shared/casefolder.rb +57 -56
- data/lib/twitter_cldr/shared/hyphenator.rb +4 -4
- data/lib/twitter_cldr/shared/locale.rb +57 -7
- data/lib/twitter_cldr/timezones/generic_location.rb +6 -1
- data/lib/twitter_cldr/version.rb +1 -1
- data/lib/twitter_cldr/versions.rb +3 -8
- data/resources/collation/tailoring/eo.yml +16 -0
- data/resources/collation/tries/eo.dump +0 -0
- data/resources/locales/af/languages.yml +1 -0
- data/resources/locales/af/timezones.yml +3 -1
- data/resources/locales/af/units.yml +20 -20
- data/resources/locales/ar/languages.yml +3 -2
- data/resources/locales/ar/territories.yml +2 -0
- data/resources/locales/ar/timezones.yml +3 -1
- data/resources/locales/ar/units.yml +28 -28
- data/resources/locales/az/languages.yml +1 -0
- data/resources/locales/az/timezones.yml +3 -1
- data/resources/locales/az/units.yml +20 -20
- data/resources/locales/be/languages.yml +1 -0
- data/resources/locales/be/timezones.yml +3 -1
- data/resources/locales/be/units.yml +23 -23
- data/resources/locales/bg/languages.yml +2 -0
- data/resources/locales/bg/timezones.yml +3 -1
- data/resources/locales/bg/units.yml +20 -20
- data/resources/locales/bn/languages.yml +1 -0
- data/resources/locales/bn/timezones.yml +3 -1
- data/resources/locales/bn/units.yml +22 -22
- data/resources/locales/bo/units.yml +9 -9
- data/resources/locales/bs/languages.yml +2 -0
- data/resources/locales/bs/territories.yml +2 -0
- data/resources/locales/bs/timezones.yml +3 -1
- data/resources/locales/bs/units.yml +22 -22
- data/resources/locales/ca/languages.yml +2 -1
- data/resources/locales/ca/timezones.yml +3 -1
- data/resources/locales/ca/units.yml +19 -19
- data/resources/locales/cs/languages.yml +1 -0
- data/resources/locales/cs/timezones.yml +3 -1
- data/resources/locales/cs/units.yml +32 -32
- data/resources/locales/cy/languages.yml +1 -0
- data/resources/locales/cy/timezones.yml +3 -1
- data/resources/locales/cy/units.yml +30 -30
- data/resources/locales/da/languages.yml +3 -2
- data/resources/locales/da/timezones.yml +3 -1
- data/resources/locales/da/units.yml +23 -23
- data/resources/locales/de-AT/languages.yml +3 -2
- data/resources/locales/de-AT/timezones.yml +3 -1
- data/resources/locales/de-AT/units.yml +23 -23
- data/resources/locales/de-CH/languages.yml +2 -1
- data/resources/locales/de-CH/timezones.yml +3 -1
- data/resources/locales/de-CH/units.yml +23 -23
- data/resources/locales/de/languages.yml +3 -2
- data/resources/locales/de/timezones.yml +3 -1
- data/resources/locales/de/units.yml +23 -23
- data/resources/locales/el/languages.yml +1 -0
- data/resources/locales/el/timezones.yml +3 -1
- data/resources/locales/el/units.yml +20 -20
- data/resources/locales/en-001/languages.yml +2 -2
- data/resources/locales/en-001/plurals.yml +1 -1
- data/resources/locales/en-001/timezones.yml +3 -1
- data/resources/locales/en-001/units.yml +43 -35
- data/resources/locales/en-150/languages.yml +2 -2
- data/resources/locales/en-150/timezones.yml +3 -1
- data/resources/locales/en-150/units.yml +43 -35
- data/resources/locales/en-AU/languages.yml +2 -2
- data/resources/locales/en-AU/timezones.yml +3 -1
- data/resources/locales/en-AU/units.yml +43 -35
- data/resources/locales/en-CA/languages.yml +2 -2
- data/resources/locales/en-CA/timezones.yml +3 -1
- data/resources/locales/en-CA/units.yml +43 -35
- data/resources/locales/en-GB/languages.yml +2 -2
- data/resources/locales/en-GB/timezones.yml +3 -1
- data/resources/locales/en-GB/units.yml +41 -33
- data/resources/locales/en-IE/languages.yml +2 -2
- data/resources/locales/en-IE/timezones.yml +3 -1
- data/resources/locales/en-IE/units.yml +43 -35
- data/resources/locales/en-IN/languages.yml +2 -2
- data/resources/locales/en-IN/timezones.yml +3 -1
- data/resources/locales/en-IN/units.yml +43 -35
- data/resources/locales/en-NZ/languages.yml +2 -2
- data/resources/locales/en-NZ/timezones.yml +3 -1
- data/resources/locales/en-NZ/units.yml +43 -35
- data/resources/locales/en-SG/languages.yml +2 -2
- data/resources/locales/en-SG/timezones.yml +3 -1
- data/resources/locales/en-SG/units.yml +43 -35
- data/resources/locales/en-US/languages.yml +2 -2
- data/resources/locales/en-US/timezones.yml +3 -1
- data/resources/locales/en-US/units.yml +43 -34
- data/resources/locales/en-ZA/languages.yml +2 -2
- data/resources/locales/en-ZA/timezones.yml +3 -1
- data/resources/locales/en-ZA/units.yml +43 -35
- data/resources/locales/en/languages.yml +2 -2
- data/resources/locales/en/timezones.yml +3 -1
- data/resources/locales/en/units.yml +43 -34
- data/resources/locales/eo/calendars.yml +245 -0
- data/resources/locales/eo/currencies.yml +211 -0
- data/resources/locales/eo/day_periods.yml +32 -0
- data/resources/locales/eo/fields.yml +140 -0
- data/resources/locales/eo/languages.yml +156 -0
- data/resources/locales/eo/layout.yml +5 -0
- data/resources/locales/eo/lists.yml +22 -0
- data/resources/locales/eo/numbers.yml +367 -0
- data/resources/locales/eo/plural_rules.yml +7 -0
- data/resources/locales/eo/plurals.yml +14 -0
- data/resources/locales/eo/rbnf.yml +112 -0
- data/resources/locales/eo/territories.yml +226 -0
- data/resources/locales/eo/timezones.yml +85 -0
- data/resources/locales/eo/units.yml +429 -0
- data/resources/locales/es-419/languages.yml +1 -0
- data/resources/locales/es-419/timezones.yml +3 -1
- data/resources/locales/es-419/units.yml +23 -23
- data/resources/locales/es-AR/languages.yml +1 -0
- data/resources/locales/es-AR/timezones.yml +3 -1
- data/resources/locales/es-AR/units.yml +23 -23
- data/resources/locales/es-CO/languages.yml +1 -0
- data/resources/locales/es-CO/timezones.yml +3 -1
- data/resources/locales/es-CO/units.yml +23 -23
- data/resources/locales/es-MX/languages.yml +3 -2
- data/resources/locales/es-MX/timezones.yml +3 -1
- data/resources/locales/es-MX/units.yml +23 -23
- data/resources/locales/es-US/languages.yml +5 -4
- data/resources/locales/es-US/territories.yml +1 -1
- data/resources/locales/es-US/timezones.yml +3 -1
- data/resources/locales/es-US/units.yml +23 -23
- data/resources/locales/es/languages.yml +1 -0
- data/resources/locales/es/timezones.yml +3 -1
- data/resources/locales/es/units.yml +22 -22
- data/resources/locales/et/languages.yml +1 -2
- data/resources/locales/et/timezones.yml +3 -1
- data/resources/locales/et/units.yml +21 -21
- data/resources/locales/eu/calendars.yml +12 -12
- data/resources/locales/eu/languages.yml +1 -0
- data/resources/locales/eu/territories.yml +1 -0
- data/resources/locales/eu/timezones.yml +5 -1
- data/resources/locales/eu/units.yml +20 -20
- data/resources/locales/fa/currencies.yml +2 -0
- data/resources/locales/fa/territories.yml +1 -0
- data/resources/locales/fa/timezones.yml +3 -1
- data/resources/locales/fa/units.yml +23 -23
- data/resources/locales/fi/languages.yml +2 -1
- data/resources/locales/fi/territories.yml +2 -0
- data/resources/locales/fi/timezones.yml +3 -1
- data/resources/locales/fi/units.yml +26 -26
- data/resources/locales/fil/languages.yml +1 -0
- data/resources/locales/fil/timezones.yml +3 -1
- data/resources/locales/fil/units.yml +24 -24
- data/resources/locales/fr-BE/languages.yml +2 -1
- data/resources/locales/fr-BE/timezones.yml +3 -1
- data/resources/locales/fr-BE/units.yml +25 -25
- data/resources/locales/fr-CA/languages.yml +2 -1
- data/resources/locales/fr-CA/timezones.yml +3 -1
- data/resources/locales/fr-CA/units.yml +25 -25
- data/resources/locales/fr-CH/languages.yml +2 -1
- data/resources/locales/fr-CH/timezones.yml +3 -1
- data/resources/locales/fr-CH/units.yml +25 -25
- data/resources/locales/fr/languages.yml +2 -1
- data/resources/locales/fr/timezones.yml +3 -1
- data/resources/locales/fr/units.yml +25 -25
- data/resources/locales/ga/currencies.yml +5 -11
- data/resources/locales/ga/languages.yml +13 -110
- data/resources/locales/ga/timezones.yml +3 -1
- data/resources/locales/ga/units.yml +35 -35
- data/resources/locales/gl/languages.yml +1 -0
- data/resources/locales/gl/timezones.yml +3 -1
- data/resources/locales/gl/units.yml +19 -19
- data/resources/locales/gu/languages.yml +1 -4
- data/resources/locales/gu/timezones.yml +3 -1
- data/resources/locales/gu/units.yml +20 -20
- data/resources/locales/he/languages.yml +1 -0
- data/resources/locales/he/timezones.yml +3 -1
- data/resources/locales/he/units.yml +27 -27
- data/resources/locales/hi/languages.yml +4 -3
- data/resources/locales/hi/timezones.yml +3 -1
- data/resources/locales/hi/units.yml +20 -20
- data/resources/locales/hr/languages.yml +3 -2
- data/resources/locales/hr/timezones.yml +3 -1
- data/resources/locales/hr/units.yml +25 -25
- data/resources/locales/hu/currencies.yml +58 -18
- data/resources/locales/hu/languages.yml +3 -2
- data/resources/locales/hu/timezones.yml +3 -1
- data/resources/locales/hu/units.yml +22 -22
- data/resources/locales/hy/currencies.yml +2 -2
- data/resources/locales/hy/languages.yml +1 -0
- data/resources/locales/hy/timezones.yml +3 -1
- data/resources/locales/hy/units.yml +20 -20
- data/resources/locales/id/languages.yml +1 -0
- data/resources/locales/id/timezones.yml +3 -1
- data/resources/locales/id/units.yml +20 -20
- data/resources/locales/is/languages.yml +1 -4
- data/resources/locales/is/timezones.yml +3 -1
- data/resources/locales/is/units.yml +26 -26
- data/resources/locales/it-CH/currencies.yml +2 -2
- data/resources/locales/it-CH/languages.yml +1 -1
- data/resources/locales/it-CH/timezones.yml +3 -1
- data/resources/locales/it-CH/units.yml +20 -20
- data/resources/locales/it/currencies.yml +2 -2
- data/resources/locales/it/languages.yml +1 -1
- data/resources/locales/it/timezones.yml +3 -1
- data/resources/locales/it/units.yml +20 -20
- data/resources/locales/ja/languages.yml +3 -2
- data/resources/locales/ja/timezones.yml +3 -1
- data/resources/locales/ja/units.yml +21 -21
- data/resources/locales/ka/languages.yml +1 -0
- data/resources/locales/ka/timezones.yml +3 -1
- data/resources/locales/ka/units.yml +19 -19
- data/resources/locales/km/languages.yml +1 -0
- data/resources/locales/km/lists.yml +7 -2
- data/resources/locales/km/plurals.yml +1 -1
- data/resources/locales/km/timezones.yml +3 -1
- data/resources/locales/km/units.yml +17 -17
- data/resources/locales/kn/languages.yml +1 -0
- data/resources/locales/kn/timezones.yml +3 -1
- data/resources/locales/kn/units.yml +22 -22
- data/resources/locales/ko/languages.yml +2 -1
- data/resources/locales/ko/timezones.yml +3 -1
- data/resources/locales/ko/units.yml +21 -21
- data/resources/locales/lo/languages.yml +1 -0
- data/resources/locales/lo/plurals.yml +1 -1
- data/resources/locales/lo/territories.yml +2 -0
- data/resources/locales/lo/timezones.yml +3 -1
- data/resources/locales/lo/units.yml +18 -18
- data/resources/locales/lt/territories.yml +2 -0
- data/resources/locales/lt/timezones.yml +3 -1
- data/resources/locales/lt/units.yml +27 -27
- data/resources/locales/lv/languages.yml +2 -1
- data/resources/locales/lv/timezones.yml +3 -1
- data/resources/locales/lv/units.yml +23 -23
- data/resources/locales/mk/languages.yml +1 -0
- data/resources/locales/mk/timezones.yml +3 -1
- data/resources/locales/mk/units.yml +22 -22
- data/resources/locales/mr/timezones.yml +3 -1
- data/resources/locales/mr/units.yml +23 -23
- data/resources/locales/ms/currencies.yml +24 -1
- data/resources/locales/ms/languages.yml +1 -0
- data/resources/locales/ms/territories.yml +2 -0
- data/resources/locales/ms/timezones.yml +3 -1
- data/resources/locales/ms/units.yml +23 -21
- data/resources/locales/mt/currencies.yml +0 -598
- data/resources/locales/mt/units.yml +9 -9
- data/resources/locales/my/languages.yml +1 -0
- data/resources/locales/my/plurals.yml +1 -1
- data/resources/locales/my/territories.yml +2 -0
- data/resources/locales/my/timezones.yml +3 -1
- data/resources/locales/my/units.yml +18 -18
- data/resources/locales/nb/currencies.yml +2 -2
- data/resources/locales/nb/languages.yml +2 -1
- data/resources/locales/nb/territories.yml +1 -1
- data/resources/locales/nb/timezones.yml +3 -1
- data/resources/locales/nb/units.yml +24 -24
- data/resources/locales/nl-BE/languages.yml +3 -2
- data/resources/locales/nl-BE/timezones.yml +3 -1
- data/resources/locales/nl-BE/units.yml +27 -27
- data/resources/locales/nl/languages.yml +3 -2
- data/resources/locales/nl/timezones.yml +3 -1
- data/resources/locales/nl/units.yml +27 -27
- data/resources/locales/pl/languages.yml +2 -1
- data/resources/locales/pl/timezones.yml +102 -162
- data/resources/locales/pl/units.yml +28 -28
- data/resources/locales/pt-PT/languages.yml +3 -2
- data/resources/locales/pt-PT/timezones.yml +2 -0
- data/resources/locales/pt-PT/units.yml +20 -20
- data/resources/locales/pt/languages.yml +2 -1
- data/resources/locales/pt/timezones.yml +3 -1
- data/resources/locales/pt/units.yml +21 -21
- data/resources/locales/ro/languages.yml +3 -2
- data/resources/locales/ro/timezones.yml +3 -1
- data/resources/locales/ro/units.yml +25 -25
- data/resources/locales/ru/languages.yml +3 -2
- data/resources/locales/ru/timezones.yml +3 -1
- data/resources/locales/ru/units.yml +27 -27
- data/resources/locales/sk/languages.yml +1 -0
- data/resources/locales/sk/timezones.yml +3 -1
- data/resources/locales/sk/units.yml +27 -27
- data/resources/locales/sl/languages.yml +1 -0
- data/resources/locales/sl/timezones.yml +3 -1
- data/resources/locales/sl/units.yml +24 -24
- data/resources/locales/sq/languages.yml +1 -0
- data/resources/locales/sq/timezones.yml +3 -1
- data/resources/locales/sq/units.yml +22 -22
- data/resources/locales/sr-Cyrl-ME/languages.yml +2 -0
- data/resources/locales/sr-Cyrl-ME/territories.yml +2 -0
- data/resources/locales/sr-Cyrl-ME/timezones.yml +3 -1
- data/resources/locales/sr-Cyrl-ME/units.yml +22 -22
- data/resources/locales/sr-Latn-ME/languages.yml +2 -0
- data/resources/locales/sr-Latn-ME/territories.yml +2 -0
- data/resources/locales/sr-Latn-ME/timezones.yml +3 -1
- data/resources/locales/sr-Latn-ME/units.yml +22 -22
- data/resources/locales/sr/languages.yml +2 -0
- data/resources/locales/sr/territories.yml +2 -0
- data/resources/locales/sr/timezones.yml +3 -1
- data/resources/locales/sr/units.yml +22 -22
- data/resources/locales/sv/currencies.yml +4 -1
- data/resources/locales/sv/languages.yml +3 -2
- data/resources/locales/sv/timezones.yml +3 -1
- data/resources/locales/sv/units.yml +27 -27
- data/resources/locales/sw/territories.yml +1 -1
- data/resources/locales/sw/timezones.yml +5 -1
- data/resources/locales/sw/units.yml +20 -20
- data/resources/locales/ta/languages.yml +1 -0
- data/resources/locales/ta/timezones.yml +3 -1
- data/resources/locales/ta/units.yml +22 -22
- data/resources/locales/th/languages.yml +2 -1
- data/resources/locales/th/plurals.yml +1 -1
- data/resources/locales/th/timezones.yml +3 -1
- data/resources/locales/th/units.yml +18 -18
- data/resources/locales/tr/languages.yml +3 -2
- data/resources/locales/tr/timezones.yml +3 -1
- data/resources/locales/tr/units.yml +26 -26
- data/resources/locales/uk/languages.yml +3 -2
- data/resources/locales/uk/timezones.yml +3 -1
- data/resources/locales/uk/units.yml +27 -27
- data/resources/locales/ur/languages.yml +1 -4
- data/resources/locales/ur/timezones.yml +3 -1
- data/resources/locales/ur/units.yml +22 -22
- data/resources/locales/vi/languages.yml +2 -1
- data/resources/locales/vi/timezones.yml +3 -1
- data/resources/locales/vi/units.yml +15 -15
- data/resources/locales/xh/units.yml +9 -9
- data/resources/locales/zh-Hant/languages.yml +2 -2
- data/resources/locales/zh-Hant/timezones.yml +3 -1
- data/resources/locales/zh-Hant/units.yml +23 -23
- data/resources/locales/zh/languages.yml +3 -2
- data/resources/locales/zh/timezones.yml +3 -1
- data/resources/locales/zh/units.yml +19 -19
- data/resources/locales/zu/currencies.yml +2 -2
- data/resources/locales/zu/languages.yml +1 -0
- data/resources/locales/zu/territories.yml +0 -1
- data/resources/locales/zu/timezones.yml +3 -1
- data/resources/locales/zu/units.yml +18 -18
- data/resources/shared/hyphenation/bg-BG.yml +2 -2
- data/resources/shared/hyphenation/ca.yml +6 -6
- data/resources/shared/hyphenation/de-AT.yml +4 -45
- data/resources/shared/hyphenation/de-CH.yml +4 -45
- data/resources/shared/hyphenation/de-DE.yml +4 -45
- data/resources/shared/hyphenation/en-GB.yml +4 -4
- data/resources/shared/hyphenation/en-US.yml +4 -4
- data/resources/shared/hyphenation/es.yml +2 -2
- data/resources/shared/hyphenation/fr.yml +5 -5
- data/resources/shared/hyphenation/gl.yml +2 -2
- data/resources/shared/hyphenation/hr-HR.yml +3 -3
- data/resources/shared/hyphenation/hu-HU.yml +2 -2
- data/resources/shared/hyphenation/is.yml +2 -2
- data/resources/shared/hyphenation/sl-SI.yml +3 -3
- data/resources/shared/hyphenation/sr-Latn.yml +2 -2
- data/resources/shared/hyphenation/sr.yml +2 -2
- data/resources/shared/hyphenation/sv.yml +2 -2
- data/resources/shared/likely_subtags.yml +12 -2
- data/resources/shared/metazones.yml +13 -1
- data/resources/shared/numbering_systems.yml +6 -0
- data/resources/shared/parent_locales.yml +172 -0
- data/resources/shared/segments/rules/el/sentence.yml +435 -424
- data/resources/shared/segments/rules/en-US-POSIX/word.yml +523 -483
- data/resources/shared/segments/rules/ja/line.yml +569 -716
- data/resources/shared/segments/rules/ja/word.yml +523 -483
- data/resources/shared/segments/rules/root/grapheme.yml +324 -318
- data/resources/shared/segments/rules/root/line.yml +569 -716
- data/resources/shared/segments/rules/root/sentence.yml +435 -424
- data/resources/shared/segments/rules/root/word.yml +523 -483
- data/resources/shared/segments/rules/zh-Hant/line.yml +569 -716
- data/resources/shared/segments/rules/zh/line.yml +569 -716
- data/resources/shared/segments/suppressions/en/sentence.yml +175 -4
- data/resources/shared/segments/suppressions/it/sentence.yml +77 -4
- data/resources/shared/segments/suppressions/ru/sentence.yml +46 -4
- data/resources/shared/segments/tests/line_break_test.yml +1027 -687
- data/resources/shared/territories_containment.yml +0 -1
- data/resources/shared/transforms/Han-Latin.yml +830 -830
- data/resources/shared/transforms/Myanmar-Latin.yml +192 -0
- data/resources/shared/transforms/transform_id_map.yml +4 -0
- data/resources/shared/validity_data.yml +5 -0
- data/resources/supported_locales.yml +1 -0
- data/resources/unicode_data/blocks.yml +32 -0
- data/resources/unicode_data/blocks/ancient_symbols.yml +16 -0
- data/resources/unicode_data/blocks/arabic_extended_a.yml +160 -0
- data/resources/unicode_data/blocks/bopomofo_extended.yml +80 -0
- data/resources/unicode_data/blocks/chakma.yml +16 -0
- data/resources/unicode_data/blocks/chorasmian.yml +449 -0
- data/resources/unicode_data/blocks/cjk_unified_ideographs.yml +2 -2
- data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_a.yml +2 -2
- data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_b.yml +2 -2
- data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_g.yml +33 -0
- data/resources/unicode_data/blocks/combining_diacritical_marks_extended.yml +32 -0
- data/resources/unicode_data/blocks/dives_akuru.yml +1153 -0
- data/resources/unicode_data/blocks/enclosed_alphanumeric_supplement.yml +112 -0
- data/resources/unicode_data/blocks/enclosed_cjk_letters_and_months.yml +16 -0
- data/resources/unicode_data/blocks/ideographic_symbols_and_punctuation.yml +48 -0
- data/resources/unicode_data/blocks/khitan_small_script.yml +7521 -0
- data/resources/unicode_data/blocks/latin_extended_d.yml +96 -0
- data/resources/unicode_data/blocks/latin_extended_e.yml +64 -0
- data/resources/unicode_data/blocks/lisu_supplement.yml +17 -0
- data/resources/unicode_data/blocks/malayalam.yml +16 -0
- data/resources/unicode_data/blocks/miscellaneous_symbols_and_arrows.yml +16 -0
- data/resources/unicode_data/blocks/newa.yml +48 -0
- data/resources/unicode_data/blocks/oriya.yml +16 -0
- data/resources/unicode_data/blocks/sharada.yml +32 -0
- data/resources/unicode_data/blocks/sinhala.yml +16 -0
- data/resources/unicode_data/blocks/supplemental_arrows_c.yml +32 -0
- data/resources/unicode_data/blocks/supplemental_punctuation.yml +48 -0
- data/resources/unicode_data/blocks/supplemental_symbols_and_pictographs.yml +160 -0
- data/resources/unicode_data/blocks/syloti_nagri.yml +16 -0
- data/resources/unicode_data/blocks/symbols_and_pictographs_extended_a.yml +656 -0
- data/resources/unicode_data/blocks/symbols_for_legacy_computing.yml +3399 -0
- data/resources/unicode_data/blocks/tangut_components.yml +208 -0
- data/resources/unicode_data/blocks/tangut_supplement.yml +33 -0
- data/resources/unicode_data/blocks/transport_and_map_symbols.yml +64 -0
- data/resources/unicode_data/blocks/yezidi.yml +753 -0
- data/resources/unicode_data/casefolding.yml +12 -0
- data/resources/unicode_data/properties/{Script_Extensions/Armn → Age/12.1}/value.dump +1 -1
- data/resources/unicode_data/properties/Age/13.0/value.dump +0 -0
- data/resources/unicode_data/properties/Alphabetic/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/AL/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/EN/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/L/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/NSM/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/ON/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Class/R/value.dump +0 -0
- data/resources/unicode_data/properties/Bidi_Mirrored/N/value.dump +0 -0
- data/resources/unicode_data/properties/Block/CJK Unified Ideographs Extension G/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Chorasmian/value.dump +3 -0
- data/resources/unicode_data/properties/Block/Dives Akuru/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Khitan Small Script/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Lisu Supplement/value.dump +3 -0
- data/resources/unicode_data/properties/Block/Symbols for Legacy Computing/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Tangut Supplement/value.dump +0 -0
- data/resources/unicode_data/properties/Block/Yezidi/value.dump +3 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/0/value.dump +0 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/220/value.dump +3 -2
- data/resources/unicode_data/properties/Canonical_Combining_Class/230/value.dump +0 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/6/value.dump +3 -0
- data/resources/unicode_data/properties/Canonical_Combining_Class/7/value.dump +3 -2
- data/resources/unicode_data/properties/Canonical_Combining_Class/9/value.dump +5 -3
- data/resources/unicode_data/properties/Case_Ignorable/value.dump +0 -0
- data/resources/unicode_data/properties/Cased/value.dump +0 -0
- data/resources/unicode_data/properties/Changes_When_Casefolded/value.dump +0 -0
- data/resources/unicode_data/properties/Changes_When_Casemapped/value.dump +0 -0
- data/resources/unicode_data/properties/Changes_When_Lowercased/value.dump +0 -0
- data/resources/unicode_data/properties/Changes_When_Titlecased/value.dump +5 -2
- data/resources/unicode_data/properties/Changes_When_Uppercased/value.dump +5 -2
- data/resources/unicode_data/properties/Dash/value.dump +0 -0
- data/resources/unicode_data/properties/Diacritic/value.dump +0 -0
- data/resources/unicode_data/properties/East_Asian_Width/N/value.dump +0 -0
- data/resources/unicode_data/properties/East_Asian_Width/W/value.dump +0 -0
- data/resources/unicode_data/properties/Emoji/value.dump +0 -0
- data/resources/unicode_data/properties/Emoji_Modifier_Base/value.dump +5 -3
- data/resources/unicode_data/properties/Emoji_Presentation/value.dump +0 -0
- data/resources/unicode_data/properties/Extended_Pictographic/value.dump +0 -0
- data/resources/unicode_data/properties/Extender/value.dump +3 -2
- data/resources/unicode_data/properties/General_Category/L/l/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/L/m/value.dump +3 -2
- data/resources/unicode_data/properties/General_Category/L/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/L/u/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/M/c/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/M/n/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/N/d/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/N/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/P/d/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/P/o/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/S/k/value.dump +0 -0
- data/resources/unicode_data/properties/General_Category/S/o/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Base/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/Prepend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Cluster_Break/SpacingMark/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Grapheme_Link/value.dump +5 -3
- data/resources/unicode_data/properties/ID_Continue/value.dump +0 -0
- data/resources/unicode_data/properties/ID_Start/value.dump +0 -0
- data/resources/unicode_data/properties/Ideographic/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Positional_Category/Bottom/value.dump +5 -3
- data/resources/unicode_data/properties/Indic_Positional_Category/Bottom_And_Right/value.dump +5 -3
- data/resources/unicode_data/properties/Indic_Positional_Category/Left/value.dump +6 -3
- data/resources/unicode_data/properties/Indic_Positional_Category/Left_And_Right/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Positional_Category/Right/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Positional_Category/Top/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Positional_Category/Top_And_Bottom_And_Left/value.dump +4 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Bindu/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Medial/value.dump +4 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Preceding_Repha/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Prefixed/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_With_Stacker/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Invisible_Stacker/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Nukta/value.dump +3 -2
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Number/value.dump +0 -0
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Pure_Killer/value.dump +5 -3
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Dependent/value.dump +7 -4
- data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Independent/value.dump +0 -0
- data/resources/unicode_data/properties/Joining_Group/AFRICAN QAF/value.dump +3 -2
- data/resources/unicode_data/properties/Joining_Group/AIN/value.dump +3 -3
- data/resources/unicode_data/properties/Joining_Group/BEH/value.dump +3 -2
- data/resources/unicode_data/properties/Joining_Group/GAF/value.dump +3 -2
- data/resources/unicode_data/properties/Joining_Group/HAH/value.dump +4 -2
- data/resources/unicode_data/properties/Joining_Group/LAM/value.dump +4 -2
- data/resources/unicode_data/properties/Joining_Group/No_Joining_Group/value.dump +0 -0
- data/resources/unicode_data/properties/Joining_Type/Dual_Joining/value.dump +0 -0
- data/resources/unicode_data/properties/Joining_Type/Left_Joining/value.dump +0 -0
- data/resources/unicode_data/properties/Joining_Type/Non_Joining/value.dump +0 -0
- data/resources/unicode_data/properties/Joining_Type/Right_Joining/value.dump +9 -3
- data/resources/unicode_data/properties/Line_Break/AL/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/BA/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/CM/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/EB/value.dump +5 -3
- data/resources/unicode_data/properties/Line_Break/GL/value.dump +3 -2
- data/resources/unicode_data/properties/Line_Break/ID/value.dump +0 -0
- data/resources/unicode_data/properties/Line_Break/NU/value.dump +0 -0
- data/resources/unicode_data/properties/Lowercase/value.dump +0 -0
- data/resources/unicode_data/properties/Numeric_Type/0/value.dump +0 -0
- data/resources/unicode_data/properties/Numeric_Type/1/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/2/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/3/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/4/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/5/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/6/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/7/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/8/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/9/value.dump +5 -3
- data/resources/unicode_data/properties/Numeric_Type/value.dump +0 -0
- data/resources/unicode_data/properties/Other_Alphabetic/value.dump +0 -0
- data/resources/unicode_data/properties/Other_Grapheme_Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Arabic/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Armenian/value.dump +1 -3
- data/resources/unicode_data/properties/Script/Bopomofo/value.dump +1 -1
- data/resources/unicode_data/properties/Script/Chakma/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Chorasmian/value.dump +3 -0
- data/resources/unicode_data/properties/Script/Common/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Dives_Akuru/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Han/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Inherited/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Khitan_Small_Script/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Latin/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Lisu/value.dump +3 -2
- data/resources/unicode_data/properties/Script/Malayalam/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Newa/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Oriya/value.dump +1 -1
- data/resources/unicode_data/properties/Script/Sharada/value.dump +2 -3
- data/resources/unicode_data/properties/Script/Sinhala/value.dump +1 -1
- data/resources/unicode_data/properties/Script/Syloti_Nagri/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Tangut/value.dump +0 -0
- data/resources/unicode_data/properties/Script/Yezidi/value.dump +5 -0
- data/resources/unicode_data/properties/Script_Extensions/Cyrl/value.dump +3 -2
- data/resources/unicode_data/properties/Script_Extensions/Geor/value.dump +2 -3
- data/resources/unicode_data/properties/Script_Extensions/Hani/value.dump +0 -0
- data/resources/unicode_data/properties/Script_Extensions/Latn/value.dump +0 -0
- data/resources/unicode_data/properties/Script_Extensions/Syrc/value.dump +3 -2
- data/resources/unicode_data/properties/Script_Extensions/Yezi/value.dump +6 -0
- data/resources/unicode_data/properties/Sentence_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Lower/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Numeric/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/OLetter/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/STerm/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Break/Upper/value.dump +0 -0
- data/resources/unicode_data/properties/Sentence_Terminal/value.dump +0 -0
- data/resources/unicode_data/properties/Terminal_Punctuation/value.dump +0 -0
- data/resources/unicode_data/properties/Unified_Ideograph/value.dump +0 -0
- data/resources/unicode_data/properties/Uppercase/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/ALetter/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/Extend/value.dump +0 -0
- data/resources/unicode_data/properties/Word_Break/MidLetter/value.dump +3 -2
- data/resources/unicode_data/properties/Word_Break/Numeric/value.dump +0 -0
- data/resources/unicode_data/properties/XID_Continue/value.dump +0 -0
- data/resources/unicode_data/properties/XID_Start/value.dump +0 -0
- data/resources/unicode_data/property_aliases.yml +24 -0
- data/resources/unicode_data/property_value_aliases.yml +63 -0
- data/spec/formatters/list_formatter_spec.rb +20 -0
- data/spec/formatters/numbers/rbnf/locales/eo/rbnf_test.yml +706 -0
- data/spec/formatters/plurals/plural_formatter_spec.rb +1 -1
- data/spec/shared/calendar_spec.rb +1 -1
- data/spec/shared/hyphenator_spec.rb +9 -1
- data/spec/shared/likely_subtags_spec.rb +8 -0
- data/spec/shared/locale_spec.rb +33 -1
- data/spec/shared/numbers_spec.rb +2 -2
- data/spec/timezones/tests/af.yml +5 -5
- data/spec/timezones/tests/ar.yml +5 -5
- data/spec/timezones/tests/az.yml +6 -6
- data/spec/timezones/tests/be.yml +6 -6
- data/spec/timezones/tests/bg.yml +6 -6
- data/spec/timezones/tests/bn.yml +5 -5
- data/spec/timezones/tests/bs.yml +6 -6
- data/spec/timezones/tests/ca.yml +6 -6
- data/spec/timezones/tests/cs.yml +6 -6
- data/spec/timezones/tests/cy.yml +5 -5
- data/spec/timezones/tests/da.yml +6 -6
- data/spec/timezones/tests/de-AT.yml +6 -6
- data/spec/timezones/tests/de-CH.yml +6 -6
- data/spec/timezones/tests/de.yml +6 -6
- data/spec/timezones/tests/el.yml +6 -6
- data/spec/timezones/tests/en-001.yml +5 -5
- data/spec/timezones/tests/en-150.yml +5 -5
- data/spec/timezones/tests/en-AU.yml +5 -5
- data/spec/timezones/tests/en-CA.yml +5 -5
- data/spec/timezones/tests/en-GB.yml +5 -5
- data/spec/timezones/tests/en-IE.yml +5 -5
- data/spec/timezones/tests/en-IN.yml +5 -5
- data/spec/timezones/tests/en-NZ.yml +5 -5
- data/spec/timezones/tests/en-SG.yml +5 -5
- data/spec/timezones/tests/en-US.yml +5 -5
- data/spec/timezones/tests/en-ZA.yml +5 -5
- data/spec/timezones/tests/en.yml +5 -5
- data/spec/timezones/tests/eo.yml +12475 -0
- data/spec/timezones/tests/es-419.yml +6 -6
- data/spec/timezones/tests/es-AR.yml +8 -8
- data/spec/timezones/tests/es-CO.yml +6 -6
- data/spec/timezones/tests/es-MX.yml +6 -6
- data/spec/timezones/tests/es-US.yml +6 -6
- data/spec/timezones/tests/es.yml +6 -6
- data/spec/timezones/tests/et.yml +6 -6
- data/spec/timezones/tests/eu.yml +9 -9
- data/spec/timezones/tests/fa.yml +5 -5
- data/spec/timezones/tests/fi.yml +6 -6
- data/spec/timezones/tests/fil.yml +5 -5
- data/spec/timezones/tests/fr-BE.yml +6 -6
- data/spec/timezones/tests/fr-CA.yml +6 -6
- data/spec/timezones/tests/fr-CH.yml +6 -6
- data/spec/timezones/tests/fr.yml +6 -6
- data/spec/timezones/tests/ga.yml +6 -6
- data/spec/timezones/tests/gl.yml +6 -6
- data/spec/timezones/tests/gu.yml +6 -6
- data/spec/timezones/tests/he.yml +5 -5
- data/spec/timezones/tests/hi.yml +5 -5
- data/spec/timezones/tests/hr.yml +6 -6
- data/spec/timezones/tests/hu.yml +6 -6
- data/spec/timezones/tests/hy.yml +6 -6
- data/spec/timezones/tests/id.yml +5 -5
- data/spec/timezones/tests/is.yml +6 -6
- data/spec/timezones/tests/it-CH.yml +6 -6
- data/spec/timezones/tests/it.yml +6 -6
- data/spec/timezones/tests/ja.yml +5 -5
- data/spec/timezones/tests/ka.yml +6 -6
- data/spec/timezones/tests/km.yml +6 -6
- data/spec/timezones/tests/kn.yml +5 -5
- data/spec/timezones/tests/ko.yml +5 -5
- data/spec/timezones/tests/lo.yml +6 -6
- data/spec/timezones/tests/lt.yml +6 -6
- data/spec/timezones/tests/lv.yml +6 -6
- data/spec/timezones/tests/mk.yml +6 -6
- data/spec/timezones/tests/mr.yml +6 -6
- data/spec/timezones/tests/ms.yml +6 -6
- data/spec/timezones/tests/my.yml +6 -6
- data/spec/timezones/tests/nb.yml +5 -5
- data/spec/timezones/tests/nl-BE.yml +6 -6
- data/spec/timezones/tests/nl.yml +6 -6
- data/spec/timezones/tests/pl.yml +197 -197
- data/spec/timezones/tests/pt-PT.yml +6 -6
- data/spec/timezones/tests/pt.yml +6 -6
- data/spec/timezones/tests/ro.yml +6 -6
- data/spec/timezones/tests/ru.yml +6 -6
- data/spec/timezones/tests/sk.yml +6 -6
- data/spec/timezones/tests/sl.yml +6 -6
- data/spec/timezones/tests/sq.yml +6 -6
- data/spec/timezones/tests/sr-Cyrl-ME.yml +6 -6
- data/spec/timezones/tests/sr-Latn-ME.yml +6 -6
- data/spec/timezones/tests/sr.yml +6 -6
- data/spec/timezones/tests/sv.yml +6 -6
- data/spec/timezones/tests/sw.yml +8 -8
- data/spec/timezones/tests/ta.yml +5 -5
- data/spec/timezones/tests/th.yml +5 -5
- data/spec/timezones/tests/tr.yml +5 -5
- data/spec/timezones/tests/uk.yml +6 -6
- data/spec/timezones/tests/ur.yml +6 -6
- data/spec/timezones/tests/vi.yml +5 -5
- data/spec/timezones/tests/zh-Hant.yml +5 -5
- data/spec/timezones/tests/zh.yml +5 -5
- data/spec/timezones/tests/zu.yml +6 -6
- data/spec/timezones/timezone_spec.rb +7 -1
- data/spec/transforms/test_data.yml +6 -0
- data/spec/twitter_cldr_spec.rb +21 -0
- metadata +52 -14
- data/resources/uli/segments/de.yml +0 -5
- data/resources/uli/segments/en.yml +0 -3
- data/resources/uli/segments/es.yml +0 -5
- data/resources/uli/segments/fr.yml +0 -5
- data/resources/uli/segments/it.yml +0 -3
- data/resources/uli/segments/pt.yml +0 -5
- data/resources/uli/segments/ru.yml +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a89de031234bf436d6414e0e7b0a154e4367d74232c5203c013f8b2f620d634
|
4
|
+
data.tar.gz: 19d83af16320a3be20657a1f4a5cd5839c316ab511c0f66660ad90961fde2e59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa637557b34ba7fab45ce409cde65e5925ad527d0235f9ea776bb53277615867c7c90fe9f4cfdbf7f0d3b01878f5a2d31ddda9ae62b774291a1ebc02d0e1faac
|
7
|
+
data.tar.gz: 69c47ab9d4817318ffe2320d89fc2d0fbf226c0a9a38233c3e042b150d4f05312c023adf6a25f3b54164f8a86385d4049cba3b1b594d6780b17b6e4db87bf097
|
data/Rakefile
CHANGED
@@ -53,7 +53,7 @@ end
|
|
53
53
|
|
54
54
|
task :update do
|
55
55
|
klasses = TwitterCldr::Resources.importer_classes_for_ruby_engine
|
56
|
-
TwitterCldr::Resources::ImportResolver.new(klasses).import
|
56
|
+
TwitterCldr::Resources::ImportResolver.new(klasses, allow_missing_dependencies: true).import
|
57
57
|
end
|
58
58
|
|
59
59
|
task :add_locale, :locale do |_, args|
|
@@ -141,6 +141,11 @@ namespace :update do
|
|
141
141
|
TwitterCldr::Resources::CasefolderClassGenerator.new.import
|
142
142
|
end
|
143
143
|
|
144
|
+
desc 'Import parent locale data'
|
145
|
+
task :parent_locales do
|
146
|
+
TwitterCldr::Resources::ParentLocalesImporter.new.import
|
147
|
+
end
|
148
|
+
|
144
149
|
desc 'Import postal codes resource'
|
145
150
|
task :postal_codes do
|
146
151
|
TwitterCldr::Resources::PostalCodesImporter.new.import
|
data/lib/twitter_cldr.rb
CHANGED
@@ -112,9 +112,28 @@ module TwitterCldr
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def convert_locale(locale)
|
115
|
-
locale = locale
|
115
|
+
locale = normalize_locale(locale)
|
116
|
+
|
117
|
+
unless supported_locale?(locale)
|
118
|
+
loc = TwitterCldr::Shared::Locale.parse(locale)
|
119
|
+
max_supported = loc.max_supported
|
120
|
+
|
121
|
+
if loc.dasherized == 'und' || !max_supported
|
122
|
+
return locale
|
123
|
+
end
|
124
|
+
|
125
|
+
locale = normalize_locale(max_supported.dasherized)
|
126
|
+
end
|
127
|
+
|
128
|
+
locale
|
129
|
+
end
|
130
|
+
|
131
|
+
def normalize_locale(locale)
|
132
|
+
return locale unless (locale.is_a?(String) || locale.is_a?(Symbol))
|
133
|
+
|
134
|
+
locale = locale.to_sym
|
116
135
|
locale = lowercase_locales_map.fetch(locale, locale)
|
117
|
-
TWITTER_LOCALE_MAP.fetch(locale, locale)
|
136
|
+
TWITTER_LOCALE_MAP.fetch(locale.downcase, locale)
|
118
137
|
end
|
119
138
|
|
120
139
|
def twitter_locale(locale)
|
@@ -127,7 +146,7 @@ module TwitterCldr
|
|
127
146
|
end
|
128
147
|
|
129
148
|
def supported_locale?(locale)
|
130
|
-
!!locale && supported_locales.include?(
|
149
|
+
!!locale && supported_locales.include?(normalize_locale(locale))
|
131
150
|
end
|
132
151
|
|
133
152
|
protected
|
@@ -20,6 +20,7 @@ module TwitterCldr
|
|
20
20
|
autoload :Loader, 'twitter_cldr/resources/loader'
|
21
21
|
autoload :LocalesResourcesImporter, 'twitter_cldr/resources/locales_resources_importer'
|
22
22
|
autoload :NumberFormatsImporter, 'twitter_cldr/resources/number_formats_importer'
|
23
|
+
autoload :ParentLocalesImporter, 'twitter_cldr/resources/parent_locales_importer'
|
23
24
|
autoload :PostalCodesImporter, 'twitter_cldr/resources/postal_codes_importer'
|
24
25
|
autoload :Properties, 'twitter_cldr/resources/properties'
|
25
26
|
autoload :SegmentDictionariesImporter, 'twitter_cldr/resources/segment_dictionaries_importer'
|
@@ -59,6 +60,7 @@ module TwitterCldr
|
|
59
60
|
LanguageCodesImporter,
|
60
61
|
LocalesResourcesImporter,
|
61
62
|
NumberFormatsImporter,
|
63
|
+
ParentLocalesImporter,
|
62
64
|
PostalCodesImporter,
|
63
65
|
RbnfTestImporter,
|
64
66
|
SegmentDictionariesImporter,
|
@@ -46,11 +46,13 @@ module TwitterCldr
|
|
46
46
|
end
|
47
47
|
|
48
48
|
next if line.empty?
|
49
|
-
|
49
|
+
|
50
|
+
# ignore comments
|
51
|
+
next if line.start_with?('%') || line.start_with?('#')
|
50
52
|
|
51
53
|
if line =~ /\A[A-Z]+/ # capitals
|
52
54
|
option, value = line.split(' ')
|
53
|
-
options[option.downcase.to_sym] = value
|
55
|
+
options[option.downcase.to_sym] = value
|
54
56
|
next
|
55
57
|
end
|
56
58
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# Copyright 2012 Twitter, Inc
|
4
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
5
|
+
|
6
|
+
require 'nokogiri'
|
7
|
+
|
8
|
+
module TwitterCldr
|
9
|
+
module Resources
|
10
|
+
|
11
|
+
class ParentLocalesImporter < Importer
|
12
|
+
|
13
|
+
requirement :cldr, Versions.cldr_version
|
14
|
+
output_path 'shared'
|
15
|
+
ruby_engine :mri
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def execute
|
20
|
+
output_file = File.join(output_path, 'parent_locales.yml')
|
21
|
+
File.write(output_file, YAML.dump(parent_locales))
|
22
|
+
end
|
23
|
+
|
24
|
+
def parent_locales
|
25
|
+
@parent_locales ||= supplemental_data.xpath('//parentLocales/parentLocale').each_with_object({}) do |node, ret|
|
26
|
+
parent = node.attr('parent')
|
27
|
+
locales = node.attr('locales').split(' ')
|
28
|
+
|
29
|
+
locales.each do |locale|
|
30
|
+
ret[locale] = parent
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def output_path
|
36
|
+
params.fetch(:output_path)
|
37
|
+
end
|
38
|
+
|
39
|
+
def supplemental_data
|
40
|
+
@supplemental_data ||= Nokogiri.XML(
|
41
|
+
File.read(
|
42
|
+
File.join(
|
43
|
+
requirements[:cldr].common_path,
|
44
|
+
'supplemental',
|
45
|
+
'supplementalData.xml'
|
46
|
+
)
|
47
|
+
)
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -8,16 +8,16 @@ module TwitterCldr
|
|
8
8
|
module Properties
|
9
9
|
|
10
10
|
class EmojiImporter < PropertyImporter
|
11
|
-
DATA_FILE = 'emoji-data.txt'
|
11
|
+
DATA_FILE = 'ucd/emoji/emoji-data.txt'
|
12
12
|
|
13
|
-
requirement :
|
13
|
+
requirement :unicode, Versions.unicode_version, [DATA_FILE]
|
14
14
|
output_path 'unicode_data/properties'
|
15
15
|
ruby_engine :mri
|
16
16
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def source_path
|
20
|
-
requirements[:
|
20
|
+
requirements[:unicode].source_path_for(DATA_FILE)
|
21
21
|
end
|
22
22
|
|
23
23
|
def load
|
@@ -46,7 +46,7 @@ module TwitterCldr
|
|
46
46
|
source_path = source_path_for(file)
|
47
47
|
FileUtils.mkdir_p(File.dirname(source_path))
|
48
48
|
remote_url = File.join(url % { version: version }, file)
|
49
|
-
open(source_path, 'wb') { |file| file << open(remote_url).read }
|
49
|
+
File.open(source_path, 'wb') { |file| file << URI.open(remote_url).read }
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -21,6 +21,7 @@ module TwitterCldr
|
|
21
21
|
]
|
22
22
|
|
23
23
|
output_path File.join(*%w(shared segments dictionaries))
|
24
|
+
requirement :dependency, TwitterCldr::Resources::property_importer_classes
|
24
25
|
ruby_engine :mri
|
25
26
|
|
26
27
|
def execute
|
@@ -35,7 +36,7 @@ module TwitterCldr
|
|
35
36
|
|
36
37
|
def import_dictionary_file(dictionary_file)
|
37
38
|
source_url = url_for(dictionary_file)
|
38
|
-
source = open(source_url).read
|
39
|
+
source = URI.open(source_url).read
|
39
40
|
lines = source.split("\n")
|
40
41
|
trie = TwitterCldr::Utils::Trie.new
|
41
42
|
space_regexp = TwitterCldr::Shared::UnicodeRegex.compile('\A[[:Z:][:C:]]+').to_regexp
|
@@ -103,6 +103,8 @@ module TwitterCldr
|
|
103
103
|
def formats
|
104
104
|
@formats ||= doc.xpath('ldml/dates/timeZoneNames/*').inject({}) do |result, format|
|
105
105
|
if format.name.end_with?('Format')
|
106
|
+
next if unconfirmed_draft?(format)
|
107
|
+
|
106
108
|
underscored_name = format.name.gsub(/([a-z])([A-Z])/, '\1_\2').downcase + 's'
|
107
109
|
result[underscored_name] ||= {}
|
108
110
|
|
@@ -128,7 +130,9 @@ module TwitterCldr
|
|
128
130
|
short = nodes_to_hash(zone.xpath('short/*'))
|
129
131
|
result[type][:short] = short unless short.empty?
|
130
132
|
city = zone.xpath('exemplarCity').first
|
131
|
-
|
133
|
+
if city && !unconfirmed_draft?(city)
|
134
|
+
result[type][:city] = city.content
|
135
|
+
end
|
132
136
|
result
|
133
137
|
end
|
134
138
|
end
|
@@ -155,6 +159,12 @@ module TwitterCldr
|
|
155
159
|
end
|
156
160
|
end
|
157
161
|
|
162
|
+
def unconfirmed_draft?(node)
|
163
|
+
node &&
|
164
|
+
node.attributes['draft'] &&
|
165
|
+
node.attributes['draft'].value == 'unconfirmed'
|
166
|
+
end
|
167
|
+
|
158
168
|
def doc
|
159
169
|
@doc ||= begin
|
160
170
|
locale_fs = locale.to_s.gsub('-', '_')
|
@@ -8,7 +8,7 @@ module TwitterCldr
|
|
8
8
|
class Casefolder
|
9
9
|
class << self
|
10
10
|
|
11
|
-
CASEFOLDING_SOURCE_C = "\101|\102|\103|\104|\105|\106|\107|\110|\111|\112|\113|\114|\115|\116|\117|\120|\121|\122|\123|\124|\125|\126|\127|\130|\131|\132|\302\265|\303\200|\303\201|\303\202|\303\203|\303\204|\303\205|\303\206|\303\207|\303\210|\303\211|\303\212|\303\213|\303\214|\303\215|\303\216|\303\217|\303\220|\303\221|\303\222|\303\223|\303\224|\303\225|\303\226|\303\230|\303\231|\303\232|\303\233|\303\234|\303\235|\303\236|\304\200|\304\202|\304\204|\304\206|\304\210|\304\212|\304\214|\304\216|\304\220|\304\222|\304\224|\304\226|\304\230|\304\232|\304\234|\304\236|\304\240|\304\242|\304\244|\304\246|\304\250|\304\252|\304\254|\304\256|\304\262|\304\264|\304\266|\304\271|\304\273|\304\275|\304\277|\305\201|\305\203|\305\205|\305\207|\305\212|\305\214|\305\216|\305\220|\305\222|\305\224|\305\226|\305\230|\305\232|\305\234|\305\236|\305\240|\305\242|\305\244|\305\246|\305\250|\305\252|\305\254|\305\256|\305\260|\305\262|\305\264|\305\266|\305\270|\305\271|\305\273|\305\275|\305\277|\306\201|\306\202|\306\204|\306\206|\306\207|\306\211|\306\212|\306\213|\306\216|\306\217|\306\220|\306\221|\306\223|\306\224|\306\226|\306\227|\306\230|\306\234|\306\235|\306\237|\306\240|\306\242|\306\244|\306\246|\306\247|\306\251|\306\254|\306\256|\306\257|\306\261|\306\262|\306\263|\306\265|\306\267|\306\270|\306\274|\307\204|\307\205|\307\207|\307\210|\307\212|\307\213|\307\215|\307\217|\307\221|\307\223|\307\225|\307\227|\307\231|\307\233|\307\236|\307\240|\307\242|\307\244|\307\246|\307\250|\307\252|\307\254|\307\256|\307\261|\307\262|\307\264|\307\266|\307\267|\307\270|\307\272|\307\274|\307\276|\310\200|\310\202|\310\204|\310\206|\310\210|\310\212|\310\214|\310\216|\310\220|\310\222|\310\224|\310\226|\310\230|\310\232|\310\234|\310\236|\310\240|\310\242|\310\244|\310\246|\310\250|\310\252|\310\254|\310\256|\310\260|\310\262|\310\272|\310\273|\310\275|\310\276|\311\201|\311\203|\311\204|\311\205|\311\206|\311\210|\311\212|\311\214|\311\216|\315\205|\315\260|\315\262|\315\266|\315\277|\316\206|\316\210|\316\211|\316\212|\316\214|\316\216|\316\217|\316\221|\316\222|\316\223|\316\224|\316\225|\316\226|\316\227|\316\230|\316\231|\316\232|\316\233|\316\234|\316\235|\316\236|\316\237|\316\240|\316\241|\316\243|\316\244|\316\245|\316\246|\316\247|\316\250|\316\251|\316\252|\316\253|\317\202|\317\217|\317\220|\317\221|\317\225|\317\226|\317\230|\317\232|\317\234|\317\236|\317\240|\317\242|\317\244|\317\246|\317\250|\317\252|\317\254|\317\256|\317\260|\317\261|\317\264|\317\265|\317\267|\317\271|\317\272|\317\275|\317\276|\317\277|\320\200|\320\201|\320\202|\320\203|\320\204|\320\205|\320\206|\320\207|\320\210|\320\211|\320\212|\320\213|\320\214|\320\215|\320\216|\320\217|\320\220|\320\221|\320\222|\320\223|\320\224|\320\225|\320\226|\320\227|\320\230|\320\231|\320\232|\320\233|\320\234|\320\235|\320\236|\320\237|\320\240|\320\241|\320\242|\320\243|\320\244|\320\245|\320\246|\320\247|\320\250|\320\251|\320\252|\320\253|\320\254|\320\255|\320\256|\320\257|\321\240|\321\242|\321\244|\321\246|\321\250|\321\252|\321\254|\321\256|\321\260|\321\262|\321\264|\321\266|\321\270|\321\272|\321\274|\321\276|\322\200|\322\212|\322\214|\322\216|\322\220|\322\222|\322\224|\322\226|\322\230|\322\232|\322\234|\322\236|\322\240|\322\242|\322\244|\322\246|\322\250|\322\252|\322\254|\322\256|\322\260|\322\262|\322\264|\322\266|\322\270|\322\272|\322\274|\322\276|\323\200|\323\201|\323\203|\323\205|\323\207|\323\211|\323\213|\323\215|\323\220|\323\222|\323\224|\323\226|\323\230|\323\232|\323\234|\323\236|\323\240|\323\242|\323\244|\323\246|\323\250|\323\252|\323\254|\323\256|\323\260|\323\262|\323\264|\323\266|\323\270|\323\272|\323\274|\323\276|\324\200|\324\202|\324\204|\324\206|\324\210|\324\212|\324\214|\324\216|\324\220|\324\222|\324\224|\324\226|\324\230|\324\232|\324\234|\324\236|\324\240|\324\242|\324\244|\324\246|\324\250|\324\252|\324\254|\324\256|\324\261|\324\262|\324\263|\324\264|\324\265|\324\266|\324\267|\324\270|\324\271|\324\272|\324\273|\324\274|\324\275|\324\276|\324\277|\325\200|\325\201|\325\202|\325\203|\325\204|\325\205|\325\206|\325\207|\325\210|\325\211|\325\212|\325\213|\325\214|\325\215|\325\216|\325\217|\325\220|\325\221|\325\222|\325\223|\325\224|\325\225|\325\226|\341\202\240|\341\202\241|\341\202\242|\341\202\243|\341\202\244|\341\202\245|\341\202\246|\341\202\247|\341\202\250|\341\202\251|\341\202\252|\341\202\253|\341\202\254|\341\202\255|\341\202\256|\341\202\257|\341\202\260|\341\202\261|\341\202\262|\341\202\263|\341\202\264|\341\202\265|\341\202\266|\341\202\267|\341\202\270|\341\202\271|\341\202\272|\341\202\273|\341\202\274|\341\202\275|\341\202\276|\341\202\277|\341\203\200|\341\203\201|\341\203\202|\341\203\203|\341\203\204|\341\203\205|\341\203\207|\341\203\215|\341\217\270|\341\217\271|\341\217\272|\341\217\273|\341\217\274|\341\217\275|\341\262\200|\341\262\201|\341\262\202|\341\262\203|\341\262\204|\341\262\205|\341\262\206|\341\262\207|\341\262\210|\341\262\220|\341\262\221|\341\262\222|\341\262\223|\341\262\224|\341\262\225|\341\262\226|\341\262\227|\341\262\230|\341\262\231|\341\262\232|\341\262\233|\341\262\234|\341\262\235|\341\262\236|\341\262\237|\341\262\240|\341\262\241|\341\262\242|\341\262\243|\341\262\244|\341\262\245|\341\262\246|\341\262\247|\341\262\250|\341\262\251|\341\262\252|\341\262\253|\341\262\254|\341\262\255|\341\262\256|\341\262\257|\341\262\260|\341\262\261|\341\262\262|\341\262\263|\341\262\264|\341\262\265|\341\262\266|\341\262\267|\341\262\270|\341\262\271|\341\262\272|\341\262\275|\341\262\276|\341\262\277|\341\270\200|\341\270\202|\341\270\204|\341\270\206|\341\270\210|\341\270\212|\341\270\214|\341\270\216|\341\270\220|\341\270\222|\341\270\224|\341\270\226|\341\270\230|\341\270\232|\341\270\234|\341\270\236|\341\270\240|\341\270\242|\341\270\244|\341\270\246|\341\270\250|\341\270\252|\341\270\254|\341\270\256|\341\270\260|\341\270\262|\341\270\264|\341\270\266|\341\270\270|\341\270\272|\341\270\274|\341\270\276|\341\271\200|\341\271\202|\341\271\204|\341\271\206|\341\271\210|\341\271\212|\341\271\214|\341\271\216|\341\271\220|\341\271\222|\341\271\224|\341\271\226|\341\271\230|\341\271\232|\341\271\234|\341\271\236|\341\271\240|\341\271\242|\341\271\244|\341\271\246|\341\271\250|\341\271\252|\341\271\254|\341\271\256|\341\271\260|\341\271\262|\341\271\264|\341\271\266|\341\271\270|\341\271\272|\341\271\274|\341\271\276|\341\272\200|\341\272\202|\341\272\204|\341\272\206|\341\272\210|\341\272\212|\341\272\214|\341\272\216|\341\272\220|\341\272\222|\341\272\224|\341\272\233|\341\272\240|\341\272\242|\341\272\244|\341\272\246|\341\272\250|\341\272\252|\341\272\254|\341\272\256|\341\272\260|\341\272\262|\341\272\264|\341\272\266|\341\272\270|\341\272\272|\341\272\274|\341\272\276|\341\273\200|\341\273\202|\341\273\204|\341\273\206|\341\273\210|\341\273\212|\341\273\214|\341\273\216|\341\273\220|\341\273\222|\341\273\224|\341\273\226|\341\273\230|\341\273\232|\341\273\234|\341\273\236|\341\273\240|\341\273\242|\341\273\244|\341\273\246|\341\273\250|\341\273\252|\341\273\254|\341\273\256|\341\273\260|\341\273\262|\341\273\264|\341\273\266|\341\273\270|\341\273\272|\341\273\274|\341\273\276|\341\274\210|\341\274\211|\341\274\212|\341\274\213|\341\274\214|\341\274\215|\341\274\216|\341\274\217|\341\274\230|\341\274\231|\341\274\232|\341\274\233|\341\274\234|\341\274\235|\341\274\250|\341\274\251|\341\274\252|\341\274\253|\341\274\254|\341\274\255|\341\274\256|\341\274\257|\341\274\270|\341\274\271|\341\274\272|\341\274\273|\341\274\274|\341\274\275|\341\274\276|\341\274\277|\341\275\210|\341\275\211|\341\275\212|\341\275\213|\341\275\214|\341\275\215|\341\275\231|\341\275\233|\341\275\235|\341\275\237|\341\275\250|\341\275\251|\341\275\252|\341\275\253|\341\275\254|\341\275\255|\341\275\256|\341\275\257|\341\276\270|\341\276\271|\341\276\272|\341\276\273|\341\276\276|\341\277\210|\341\277\211|\341\277\212|\341\277\213|\341\277\230|\341\277\231|\341\277\232|\341\277\233|\341\277\250|\341\277\251|\341\277\252|\341\277\253|\341\277\254|\341\277\270|\341\277\271|\341\277\272|\341\277\273|\342\204\246|\342\204\252|\342\204\253|\342\204\262|\342\205\240|\342\205\241|\342\205\242|\342\205\243|\342\205\244|\342\205\245|\342\205\246|\342\205\247|\342\205\250|\342\205\251|\342\205\252|\342\205\253|\342\205\254|\342\205\255|\342\205\256|\342\205\257|\342\206\203|\342\222\266|\342\222\267|\342\222\270|\342\222\271|\342\222\272|\342\222\273|\342\222\274|\342\222\275|\342\222\276|\342\222\277|\342\223\200|\342\223\201|\342\223\202|\342\223\203|\342\223\204|\342\223\205|\342\223\206|\342\223\207|\342\223\210|\342\223\211|\342\223\212|\342\223\213|\342\223\214|\342\223\215|\342\223\216|\342\223\217|\342\260\200|\342\260\201|\342\260\202|\342\260\203|\342\260\204|\342\260\205|\342\260\206|\342\260\207|\342\260\210|\342\260\211|\342\260\212|\342\260\213|\342\260\214|\342\260\215|\342\260\216|\342\260\217|\342\260\220|\342\260\221|\342\260\222|\342\260\223|\342\260\224|\342\260\225|\342\260\226|\342\260\227|\342\260\230|\342\260\231|\342\260\232|\342\260\233|\342\260\234|\342\260\235|\342\260\236|\342\260\237|\342\260\240|\342\260\241|\342\260\242|\342\260\243|\342\260\244|\342\260\245|\342\260\246|\342\260\247|\342\260\250|\342\260\251|\342\260\252|\342\260\253|\342\260\254|\342\260\255|\342\260\256|\342\261\240|\342\261\242|\342\261\243|\342\261\244|\342\261\247|\342\261\251|\342\261\253|\342\261\255|\342\261\256|\342\261\257|\342\261\260|\342\261\262|\342\261\265|\342\261\276|\342\261\277|\342\262\200|\342\262\202|\342\262\204|\342\262\206|\342\262\210|\342\262\212|\342\262\214|\342\262\216|\342\262\220|\342\262\222|\342\262\224|\342\262\226|\342\262\230|\342\262\232|\342\262\234|\342\262\236|\342\262\240|\342\262\242|\342\262\244|\342\262\246|\342\262\250|\342\262\252|\342\262\254|\342\262\256|\342\262\260|\342\262\262|\342\262\264|\342\262\266|\342\262\270|\342\262\272|\342\262\274|\342\262\276|\342\263\200|\342\263\202|\342\263\204|\342\263\206|\342\263\210|\342\263\212|\342\263\214|\342\263\216|\342\263\220|\342\263\222|\342\263\224|\342\263\226|\342\263\230|\342\263\232|\342\263\234|\342\263\236|\342\263\240|\342\263\242|\342\263\253|\342\263\255|\342\263\262|\352\231\200|\352\231\202|\352\231\204|\352\231\206|\352\231\210|\352\231\212|\352\231\214|\352\231\216|\352\231\220|\352\231\222|\352\231\224|\352\231\226|\352\231\230|\352\231\232|\352\231\234|\352\231\236|\352\231\240|\352\231\242|\352\231\244|\352\231\246|\352\231\250|\352\231\252|\352\231\254|\352\232\200|\352\232\202|\352\232\204|\352\232\206|\352\232\210|\352\232\212|\352\232\214|\352\232\216|\352\232\220|\352\232\222|\352\232\224|\352\232\226|\352\232\230|\352\232\232|\352\234\242|\352\234\244|\352\234\246|\352\234\250|\352\234\252|\352\234\254|\352\234\256|\352\234\262|\352\234\264|\352\234\266|\352\234\270|\352\234\272|\352\234\274|\352\234\276|\352\235\200|\352\235\202|\352\235\204|\352\235\206|\352\235\210|\352\235\212|\352\235\214|\352\235\216|\352\235\220|\352\235\222|\352\235\224|\352\235\226|\352\235\230|\352\235\232|\352\235\234|\352\235\236|\352\235\240|\352\235\242|\352\235\244|\352\235\246|\352\235\250|\352\235\252|\352\235\254|\352\235\256|\352\235\271|\352\235\273|\352\235\275|\352\235\276|\352\236\200|\352\236\202|\352\236\204|\352\236\206|\352\236\213|\352\236\215|\352\236\220|\352\236\222|\352\236\226|\352\236\230|\352\236\232|\352\236\234|\352\236\236|\352\236\240|\352\236\242|\352\236\244|\352\236\246|\352\236\250|\352\236\252|\352\236\253|\352\236\254|\352\236\255|\352\236\256|\352\236\260|\352\236\261|\352\236\262|\352\236\263|\352\236\264|\352\236\266|\352\236\270|\352\236\272|\352\236\274|\352\236\276|\352\237\202|\352\237\204|\352\237\205|\352\237\206|\352\255\260|\352\255\261|\352\255\262|\352\255\263|\352\255\264|\352\255\265|\352\255\266|\352\255\267|\352\255\270|\352\255\271|\352\255\272|\352\255\273|\352\255\274|\352\255\275|\352\255\276|\352\255\277|\352\256\200|\352\256\201|\352\256\202|\352\256\203|\352\256\204|\352\256\205|\352\256\206|\352\256\207|\352\256\210|\352\256\211|\352\256\212|\352\256\213|\352\256\214|\352\256\215|\352\256\216|\352\256\217|\352\256\220|\352\256\221|\352\256\222|\352\256\223|\352\256\224|\352\256\225|\352\256\226|\352\256\227|\352\256\230|\352\256\231|\352\256\232|\352\256\233|\352\256\234|\352\256\235|\352\256\236|\352\256\237|\352\256\240|\352\256\241|\352\256\242|\352\256\243|\352\256\244|\352\256\245|\352\256\246|\352\256\247|\352\256\250|\352\256\251|\352\256\252|\352\256\253|\352\256\254|\352\256\255|\352\256\256|\352\256\257|\352\256\260|\352\256\261|\352\256\262|\352\256\263|\352\256\264|\352\256\265|\352\256\266|\352\256\267|\352\256\270|\352\256\271|\352\256\272|\352\256\273|\352\256\274|\352\256\275|\352\256\276|\352\256\277|\357\274\241|\357\274\242|\357\274\243|\357\274\244|\357\274\245|\357\274\246|\357\274\247|\357\274\250|\357\274\251|\357\274\252|\357\274\253|\357\274\254|\357\274\255|\357\274\256|\357\274\257|\357\274\260|\357\274\261|\357\274\262|\357\274\263|\357\274\264|\357\274\265|\357\274\266|\357\274\267|\357\274\270|\357\274\271|\357\274\272|\360\220\220\200|\360\220\220\201|\360\220\220\202|\360\220\220\203|\360\220\220\204|\360\220\220\205|\360\220\220\206|\360\220\220\207|\360\220\220\210|\360\220\220\211|\360\220\220\212|\360\220\220\213|\360\220\220\214|\360\220\220\215|\360\220\220\216|\360\220\220\217|\360\220\220\220|\360\220\220\221|\360\220\220\222|\360\220\220\223|\360\220\220\224|\360\220\220\225|\360\220\220\226|\360\220\220\227|\360\220\220\230|\360\220\220\231|\360\220\220\232|\360\220\220\233|\360\220\220\234|\360\220\220\235|\360\220\220\236|\360\220\220\237|\360\220\220\240|\360\220\220\241|\360\220\220\242|\360\220\220\243|\360\220\220\244|\360\220\220\245|\360\220\220\246|\360\220\220\247|\360\220\222\260|\360\220\222\261|\360\220\222\262|\360\220\222\263|\360\220\222\264|\360\220\222\265|\360\220\222\266|\360\220\222\267|\360\220\222\270|\360\220\222\271|\360\220\222\272|\360\220\222\273|\360\220\222\274|\360\220\222\275|\360\220\222\276|\360\220\222\277|\360\220\223\200|\360\220\223\201|\360\220\223\202|\360\220\223\203|\360\220\223\204|\360\220\223\205|\360\220\223\206|\360\220\223\207|\360\220\223\210|\360\220\223\211|\360\220\223\212|\360\220\223\213|\360\220\223\214|\360\220\223\215|\360\220\223\216|\360\220\223\217|\360\220\223\220|\360\220\223\221|\360\220\223\222|\360\220\223\223|\360\220\262\200|\360\220\262\201|\360\220\262\202|\360\220\262\203|\360\220\262\204|\360\220\262\205|\360\220\262\206|\360\220\262\207|\360\220\262\210|\360\220\262\211|\360\220\262\212|\360\220\262\213|\360\220\262\214|\360\220\262\215|\360\220\262\216|\360\220\262\217|\360\220\262\220|\360\220\262\221|\360\220\262\222|\360\220\262\223|\360\220\262\224|\360\220\262\225|\360\220\262\226|\360\220\262\227|\360\220\262\230|\360\220\262\231|\360\220\262\232|\360\220\262\233|\360\220\262\234|\360\220\262\235|\360\220\262\236|\360\220\262\237|\360\220\262\240|\360\220\262\241|\360\220\262\242|\360\220\262\243|\360\220\262\244|\360\220\262\245|\360\220\262\246|\360\220\262\247|\360\220\262\250|\360\220\262\251|\360\220\262\252|\360\220\262\253|\360\220\262\254|\360\220\262\255|\360\220\262\256|\360\220\262\257|\360\220\262\260|\360\220\262\261|\360\220\262\262|\360\221\242\240|\360\221\242\241|\360\221\242\242|\360\221\242\243|\360\221\242\244|\360\221\242\245|\360\221\242\246|\360\221\242\247|\360\221\242\250|\360\221\242\251|\360\221\242\252|\360\221\242\253|\360\221\242\254|\360\221\242\255|\360\221\242\256|\360\221\242\257|\360\221\242\260|\360\221\242\261|\360\221\242\262|\360\221\242\263|\360\221\242\264|\360\221\242\265|\360\221\242\266|\360\221\242\267|\360\221\242\270|\360\221\242\271|\360\221\242\272|\360\221\242\273|\360\221\242\274|\360\221\242\275|\360\221\242\276|\360\221\242\277|\360\226\271\200|\360\226\271\201|\360\226\271\202|\360\226\271\203|\360\226\271\204|\360\226\271\205|\360\226\271\206|\360\226\271\207|\360\226\271\210|\360\226\271\211|\360\226\271\212|\360\226\271\213|\360\226\271\214|\360\226\271\215|\360\226\271\216|\360\226\271\217|\360\226\271\220|\360\226\271\221|\360\226\271\222|\360\226\271\223|\360\226\271\224|\360\226\271\225|\360\226\271\226|\360\226\271\227|\360\226\271\230|\360\226\271\231|\360\226\271\232|\360\226\271\233|\360\226\271\234|\360\226\271\235|\360\226\271\236|\360\226\271\237|\360\236\244\200|\360\236\244\201|\360\236\244\202|\360\236\244\203|\360\236\244\204|\360\236\244\205|\360\236\244\206|\360\236\244\207|\360\236\244\210|\360\236\244\211|\360\236\244\212|\360\236\244\213|\360\236\244\214|\360\236\244\215|\360\236\244\216|\360\236\244\217|\360\236\244\220|\360\236\244\221|\360\236\244\222|\360\236\244\223|\360\236\244\224|\360\236\244\225|\360\236\244\226|\360\236\244\227|\360\236\244\230|\360\236\244\231|\360\236\244\232|\360\236\244\233|\360\236\244\234|\360\236\244\235|\360\236\244\236|\360\236\244\237|\360\236\244\240|\360\236\244\241"
|
11
|
+
CASEFOLDING_SOURCE_C = "\101|\102|\103|\104|\105|\106|\107|\110|\111|\112|\113|\114|\115|\116|\117|\120|\121|\122|\123|\124|\125|\126|\127|\130|\131|\132|\302\265|\303\200|\303\201|\303\202|\303\203|\303\204|\303\205|\303\206|\303\207|\303\210|\303\211|\303\212|\303\213|\303\214|\303\215|\303\216|\303\217|\303\220|\303\221|\303\222|\303\223|\303\224|\303\225|\303\226|\303\230|\303\231|\303\232|\303\233|\303\234|\303\235|\303\236|\304\200|\304\202|\304\204|\304\206|\304\210|\304\212|\304\214|\304\216|\304\220|\304\222|\304\224|\304\226|\304\230|\304\232|\304\234|\304\236|\304\240|\304\242|\304\244|\304\246|\304\250|\304\252|\304\254|\304\256|\304\262|\304\264|\304\266|\304\271|\304\273|\304\275|\304\277|\305\201|\305\203|\305\205|\305\207|\305\212|\305\214|\305\216|\305\220|\305\222|\305\224|\305\226|\305\230|\305\232|\305\234|\305\236|\305\240|\305\242|\305\244|\305\246|\305\250|\305\252|\305\254|\305\256|\305\260|\305\262|\305\264|\305\266|\305\270|\305\271|\305\273|\305\275|\305\277|\306\201|\306\202|\306\204|\306\206|\306\207|\306\211|\306\212|\306\213|\306\216|\306\217|\306\220|\306\221|\306\223|\306\224|\306\226|\306\227|\306\230|\306\234|\306\235|\306\237|\306\240|\306\242|\306\244|\306\246|\306\247|\306\251|\306\254|\306\256|\306\257|\306\261|\306\262|\306\263|\306\265|\306\267|\306\270|\306\274|\307\204|\307\205|\307\207|\307\210|\307\212|\307\213|\307\215|\307\217|\307\221|\307\223|\307\225|\307\227|\307\231|\307\233|\307\236|\307\240|\307\242|\307\244|\307\246|\307\250|\307\252|\307\254|\307\256|\307\261|\307\262|\307\264|\307\266|\307\267|\307\270|\307\272|\307\274|\307\276|\310\200|\310\202|\310\204|\310\206|\310\210|\310\212|\310\214|\310\216|\310\220|\310\222|\310\224|\310\226|\310\230|\310\232|\310\234|\310\236|\310\240|\310\242|\310\244|\310\246|\310\250|\310\252|\310\254|\310\256|\310\260|\310\262|\310\272|\310\273|\310\275|\310\276|\311\201|\311\203|\311\204|\311\205|\311\206|\311\210|\311\212|\311\214|\311\216|\315\205|\315\260|\315\262|\315\266|\315\277|\316\206|\316\210|\316\211|\316\212|\316\214|\316\216|\316\217|\316\221|\316\222|\316\223|\316\224|\316\225|\316\226|\316\227|\316\230|\316\231|\316\232|\316\233|\316\234|\316\235|\316\236|\316\237|\316\240|\316\241|\316\243|\316\244|\316\245|\316\246|\316\247|\316\250|\316\251|\316\252|\316\253|\317\202|\317\217|\317\220|\317\221|\317\225|\317\226|\317\230|\317\232|\317\234|\317\236|\317\240|\317\242|\317\244|\317\246|\317\250|\317\252|\317\254|\317\256|\317\260|\317\261|\317\264|\317\265|\317\267|\317\271|\317\272|\317\275|\317\276|\317\277|\320\200|\320\201|\320\202|\320\203|\320\204|\320\205|\320\206|\320\207|\320\210|\320\211|\320\212|\320\213|\320\214|\320\215|\320\216|\320\217|\320\220|\320\221|\320\222|\320\223|\320\224|\320\225|\320\226|\320\227|\320\230|\320\231|\320\232|\320\233|\320\234|\320\235|\320\236|\320\237|\320\240|\320\241|\320\242|\320\243|\320\244|\320\245|\320\246|\320\247|\320\250|\320\251|\320\252|\320\253|\320\254|\320\255|\320\256|\320\257|\321\240|\321\242|\321\244|\321\246|\321\250|\321\252|\321\254|\321\256|\321\260|\321\262|\321\264|\321\266|\321\270|\321\272|\321\274|\321\276|\322\200|\322\212|\322\214|\322\216|\322\220|\322\222|\322\224|\322\226|\322\230|\322\232|\322\234|\322\236|\322\240|\322\242|\322\244|\322\246|\322\250|\322\252|\322\254|\322\256|\322\260|\322\262|\322\264|\322\266|\322\270|\322\272|\322\274|\322\276|\323\200|\323\201|\323\203|\323\205|\323\207|\323\211|\323\213|\323\215|\323\220|\323\222|\323\224|\323\226|\323\230|\323\232|\323\234|\323\236|\323\240|\323\242|\323\244|\323\246|\323\250|\323\252|\323\254|\323\256|\323\260|\323\262|\323\264|\323\266|\323\270|\323\272|\323\274|\323\276|\324\200|\324\202|\324\204|\324\206|\324\210|\324\212|\324\214|\324\216|\324\220|\324\222|\324\224|\324\226|\324\230|\324\232|\324\234|\324\236|\324\240|\324\242|\324\244|\324\246|\324\250|\324\252|\324\254|\324\256|\324\261|\324\262|\324\263|\324\264|\324\265|\324\266|\324\267|\324\270|\324\271|\324\272|\324\273|\324\274|\324\275|\324\276|\324\277|\325\200|\325\201|\325\202|\325\203|\325\204|\325\205|\325\206|\325\207|\325\210|\325\211|\325\212|\325\213|\325\214|\325\215|\325\216|\325\217|\325\220|\325\221|\325\222|\325\223|\325\224|\325\225|\325\226|\341\202\240|\341\202\241|\341\202\242|\341\202\243|\341\202\244|\341\202\245|\341\202\246|\341\202\247|\341\202\250|\341\202\251|\341\202\252|\341\202\253|\341\202\254|\341\202\255|\341\202\256|\341\202\257|\341\202\260|\341\202\261|\341\202\262|\341\202\263|\341\202\264|\341\202\265|\341\202\266|\341\202\267|\341\202\270|\341\202\271|\341\202\272|\341\202\273|\341\202\274|\341\202\275|\341\202\276|\341\202\277|\341\203\200|\341\203\201|\341\203\202|\341\203\203|\341\203\204|\341\203\205|\341\203\207|\341\203\215|\341\217\270|\341\217\271|\341\217\272|\341\217\273|\341\217\274|\341\217\275|\341\262\200|\341\262\201|\341\262\202|\341\262\203|\341\262\204|\341\262\205|\341\262\206|\341\262\207|\341\262\210|\341\262\220|\341\262\221|\341\262\222|\341\262\223|\341\262\224|\341\262\225|\341\262\226|\341\262\227|\341\262\230|\341\262\231|\341\262\232|\341\262\233|\341\262\234|\341\262\235|\341\262\236|\341\262\237|\341\262\240|\341\262\241|\341\262\242|\341\262\243|\341\262\244|\341\262\245|\341\262\246|\341\262\247|\341\262\250|\341\262\251|\341\262\252|\341\262\253|\341\262\254|\341\262\255|\341\262\256|\341\262\257|\341\262\260|\341\262\261|\341\262\262|\341\262\263|\341\262\264|\341\262\265|\341\262\266|\341\262\267|\341\262\270|\341\262\271|\341\262\272|\341\262\275|\341\262\276|\341\262\277|\341\270\200|\341\270\202|\341\270\204|\341\270\206|\341\270\210|\341\270\212|\341\270\214|\341\270\216|\341\270\220|\341\270\222|\341\270\224|\341\270\226|\341\270\230|\341\270\232|\341\270\234|\341\270\236|\341\270\240|\341\270\242|\341\270\244|\341\270\246|\341\270\250|\341\270\252|\341\270\254|\341\270\256|\341\270\260|\341\270\262|\341\270\264|\341\270\266|\341\270\270|\341\270\272|\341\270\274|\341\270\276|\341\271\200|\341\271\202|\341\271\204|\341\271\206|\341\271\210|\341\271\212|\341\271\214|\341\271\216|\341\271\220|\341\271\222|\341\271\224|\341\271\226|\341\271\230|\341\271\232|\341\271\234|\341\271\236|\341\271\240|\341\271\242|\341\271\244|\341\271\246|\341\271\250|\341\271\252|\341\271\254|\341\271\256|\341\271\260|\341\271\262|\341\271\264|\341\271\266|\341\271\270|\341\271\272|\341\271\274|\341\271\276|\341\272\200|\341\272\202|\341\272\204|\341\272\206|\341\272\210|\341\272\212|\341\272\214|\341\272\216|\341\272\220|\341\272\222|\341\272\224|\341\272\233|\341\272\240|\341\272\242|\341\272\244|\341\272\246|\341\272\250|\341\272\252|\341\272\254|\341\272\256|\341\272\260|\341\272\262|\341\272\264|\341\272\266|\341\272\270|\341\272\272|\341\272\274|\341\272\276|\341\273\200|\341\273\202|\341\273\204|\341\273\206|\341\273\210|\341\273\212|\341\273\214|\341\273\216|\341\273\220|\341\273\222|\341\273\224|\341\273\226|\341\273\230|\341\273\232|\341\273\234|\341\273\236|\341\273\240|\341\273\242|\341\273\244|\341\273\246|\341\273\250|\341\273\252|\341\273\254|\341\273\256|\341\273\260|\341\273\262|\341\273\264|\341\273\266|\341\273\270|\341\273\272|\341\273\274|\341\273\276|\341\274\210|\341\274\211|\341\274\212|\341\274\213|\341\274\214|\341\274\215|\341\274\216|\341\274\217|\341\274\230|\341\274\231|\341\274\232|\341\274\233|\341\274\234|\341\274\235|\341\274\250|\341\274\251|\341\274\252|\341\274\253|\341\274\254|\341\274\255|\341\274\256|\341\274\257|\341\274\270|\341\274\271|\341\274\272|\341\274\273|\341\274\274|\341\274\275|\341\274\276|\341\274\277|\341\275\210|\341\275\211|\341\275\212|\341\275\213|\341\275\214|\341\275\215|\341\275\231|\341\275\233|\341\275\235|\341\275\237|\341\275\250|\341\275\251|\341\275\252|\341\275\253|\341\275\254|\341\275\255|\341\275\256|\341\275\257|\341\276\270|\341\276\271|\341\276\272|\341\276\273|\341\276\276|\341\277\210|\341\277\211|\341\277\212|\341\277\213|\341\277\230|\341\277\231|\341\277\232|\341\277\233|\341\277\250|\341\277\251|\341\277\252|\341\277\253|\341\277\254|\341\277\270|\341\277\271|\341\277\272|\341\277\273|\342\204\246|\342\204\252|\342\204\253|\342\204\262|\342\205\240|\342\205\241|\342\205\242|\342\205\243|\342\205\244|\342\205\245|\342\205\246|\342\205\247|\342\205\250|\342\205\251|\342\205\252|\342\205\253|\342\205\254|\342\205\255|\342\205\256|\342\205\257|\342\206\203|\342\222\266|\342\222\267|\342\222\270|\342\222\271|\342\222\272|\342\222\273|\342\222\274|\342\222\275|\342\222\276|\342\222\277|\342\223\200|\342\223\201|\342\223\202|\342\223\203|\342\223\204|\342\223\205|\342\223\206|\342\223\207|\342\223\210|\342\223\211|\342\223\212|\342\223\213|\342\223\214|\342\223\215|\342\223\216|\342\223\217|\342\260\200|\342\260\201|\342\260\202|\342\260\203|\342\260\204|\342\260\205|\342\260\206|\342\260\207|\342\260\210|\342\260\211|\342\260\212|\342\260\213|\342\260\214|\342\260\215|\342\260\216|\342\260\217|\342\260\220|\342\260\221|\342\260\222|\342\260\223|\342\260\224|\342\260\225|\342\260\226|\342\260\227|\342\260\230|\342\260\231|\342\260\232|\342\260\233|\342\260\234|\342\260\235|\342\260\236|\342\260\237|\342\260\240|\342\260\241|\342\260\242|\342\260\243|\342\260\244|\342\260\245|\342\260\246|\342\260\247|\342\260\250|\342\260\251|\342\260\252|\342\260\253|\342\260\254|\342\260\255|\342\260\256|\342\261\240|\342\261\242|\342\261\243|\342\261\244|\342\261\247|\342\261\251|\342\261\253|\342\261\255|\342\261\256|\342\261\257|\342\261\260|\342\261\262|\342\261\265|\342\261\276|\342\261\277|\342\262\200|\342\262\202|\342\262\204|\342\262\206|\342\262\210|\342\262\212|\342\262\214|\342\262\216|\342\262\220|\342\262\222|\342\262\224|\342\262\226|\342\262\230|\342\262\232|\342\262\234|\342\262\236|\342\262\240|\342\262\242|\342\262\244|\342\262\246|\342\262\250|\342\262\252|\342\262\254|\342\262\256|\342\262\260|\342\262\262|\342\262\264|\342\262\266|\342\262\270|\342\262\272|\342\262\274|\342\262\276|\342\263\200|\342\263\202|\342\263\204|\342\263\206|\342\263\210|\342\263\212|\342\263\214|\342\263\216|\342\263\220|\342\263\222|\342\263\224|\342\263\226|\342\263\230|\342\263\232|\342\263\234|\342\263\236|\342\263\240|\342\263\242|\342\263\253|\342\263\255|\342\263\262|\352\231\200|\352\231\202|\352\231\204|\352\231\206|\352\231\210|\352\231\212|\352\231\214|\352\231\216|\352\231\220|\352\231\222|\352\231\224|\352\231\226|\352\231\230|\352\231\232|\352\231\234|\352\231\236|\352\231\240|\352\231\242|\352\231\244|\352\231\246|\352\231\250|\352\231\252|\352\231\254|\352\232\200|\352\232\202|\352\232\204|\352\232\206|\352\232\210|\352\232\212|\352\232\214|\352\232\216|\352\232\220|\352\232\222|\352\232\224|\352\232\226|\352\232\230|\352\232\232|\352\234\242|\352\234\244|\352\234\246|\352\234\250|\352\234\252|\352\234\254|\352\234\256|\352\234\262|\352\234\264|\352\234\266|\352\234\270|\352\234\272|\352\234\274|\352\234\276|\352\235\200|\352\235\202|\352\235\204|\352\235\206|\352\235\210|\352\235\212|\352\235\214|\352\235\216|\352\235\220|\352\235\222|\352\235\224|\352\235\226|\352\235\230|\352\235\232|\352\235\234|\352\235\236|\352\235\240|\352\235\242|\352\235\244|\352\235\246|\352\235\250|\352\235\252|\352\235\254|\352\235\256|\352\235\271|\352\235\273|\352\235\275|\352\235\276|\352\236\200|\352\236\202|\352\236\204|\352\236\206|\352\236\213|\352\236\215|\352\236\220|\352\236\222|\352\236\226|\352\236\230|\352\236\232|\352\236\234|\352\236\236|\352\236\240|\352\236\242|\352\236\244|\352\236\246|\352\236\250|\352\236\252|\352\236\253|\352\236\254|\352\236\255|\352\236\256|\352\236\260|\352\236\261|\352\236\262|\352\236\263|\352\236\264|\352\236\266|\352\236\270|\352\236\272|\352\236\274|\352\236\276|\352\237\202|\352\237\204|\352\237\205|\352\237\206|\352\237\207|\352\237\211|\352\237\265|\352\255\260|\352\255\261|\352\255\262|\352\255\263|\352\255\264|\352\255\265|\352\255\266|\352\255\267|\352\255\270|\352\255\271|\352\255\272|\352\255\273|\352\255\274|\352\255\275|\352\255\276|\352\255\277|\352\256\200|\352\256\201|\352\256\202|\352\256\203|\352\256\204|\352\256\205|\352\256\206|\352\256\207|\352\256\210|\352\256\211|\352\256\212|\352\256\213|\352\256\214|\352\256\215|\352\256\216|\352\256\217|\352\256\220|\352\256\221|\352\256\222|\352\256\223|\352\256\224|\352\256\225|\352\256\226|\352\256\227|\352\256\230|\352\256\231|\352\256\232|\352\256\233|\352\256\234|\352\256\235|\352\256\236|\352\256\237|\352\256\240|\352\256\241|\352\256\242|\352\256\243|\352\256\244|\352\256\245|\352\256\246|\352\256\247|\352\256\250|\352\256\251|\352\256\252|\352\256\253|\352\256\254|\352\256\255|\352\256\256|\352\256\257|\352\256\260|\352\256\261|\352\256\262|\352\256\263|\352\256\264|\352\256\265|\352\256\266|\352\256\267|\352\256\270|\352\256\271|\352\256\272|\352\256\273|\352\256\274|\352\256\275|\352\256\276|\352\256\277|\357\274\241|\357\274\242|\357\274\243|\357\274\244|\357\274\245|\357\274\246|\357\274\247|\357\274\250|\357\274\251|\357\274\252|\357\274\253|\357\274\254|\357\274\255|\357\274\256|\357\274\257|\357\274\260|\357\274\261|\357\274\262|\357\274\263|\357\274\264|\357\274\265|\357\274\266|\357\274\267|\357\274\270|\357\274\271|\357\274\272|\360\220\220\200|\360\220\220\201|\360\220\220\202|\360\220\220\203|\360\220\220\204|\360\220\220\205|\360\220\220\206|\360\220\220\207|\360\220\220\210|\360\220\220\211|\360\220\220\212|\360\220\220\213|\360\220\220\214|\360\220\220\215|\360\220\220\216|\360\220\220\217|\360\220\220\220|\360\220\220\221|\360\220\220\222|\360\220\220\223|\360\220\220\224|\360\220\220\225|\360\220\220\226|\360\220\220\227|\360\220\220\230|\360\220\220\231|\360\220\220\232|\360\220\220\233|\360\220\220\234|\360\220\220\235|\360\220\220\236|\360\220\220\237|\360\220\220\240|\360\220\220\241|\360\220\220\242|\360\220\220\243|\360\220\220\244|\360\220\220\245|\360\220\220\246|\360\220\220\247|\360\220\222\260|\360\220\222\261|\360\220\222\262|\360\220\222\263|\360\220\222\264|\360\220\222\265|\360\220\222\266|\360\220\222\267|\360\220\222\270|\360\220\222\271|\360\220\222\272|\360\220\222\273|\360\220\222\274|\360\220\222\275|\360\220\222\276|\360\220\222\277|\360\220\223\200|\360\220\223\201|\360\220\223\202|\360\220\223\203|\360\220\223\204|\360\220\223\205|\360\220\223\206|\360\220\223\207|\360\220\223\210|\360\220\223\211|\360\220\223\212|\360\220\223\213|\360\220\223\214|\360\220\223\215|\360\220\223\216|\360\220\223\217|\360\220\223\220|\360\220\223\221|\360\220\223\222|\360\220\223\223|\360\220\262\200|\360\220\262\201|\360\220\262\202|\360\220\262\203|\360\220\262\204|\360\220\262\205|\360\220\262\206|\360\220\262\207|\360\220\262\210|\360\220\262\211|\360\220\262\212|\360\220\262\213|\360\220\262\214|\360\220\262\215|\360\220\262\216|\360\220\262\217|\360\220\262\220|\360\220\262\221|\360\220\262\222|\360\220\262\223|\360\220\262\224|\360\220\262\225|\360\220\262\226|\360\220\262\227|\360\220\262\230|\360\220\262\231|\360\220\262\232|\360\220\262\233|\360\220\262\234|\360\220\262\235|\360\220\262\236|\360\220\262\237|\360\220\262\240|\360\220\262\241|\360\220\262\242|\360\220\262\243|\360\220\262\244|\360\220\262\245|\360\220\262\246|\360\220\262\247|\360\220\262\250|\360\220\262\251|\360\220\262\252|\360\220\262\253|\360\220\262\254|\360\220\262\255|\360\220\262\256|\360\220\262\257|\360\220\262\260|\360\220\262\261|\360\220\262\262|\360\221\242\240|\360\221\242\241|\360\221\242\242|\360\221\242\243|\360\221\242\244|\360\221\242\245|\360\221\242\246|\360\221\242\247|\360\221\242\250|\360\221\242\251|\360\221\242\252|\360\221\242\253|\360\221\242\254|\360\221\242\255|\360\221\242\256|\360\221\242\257|\360\221\242\260|\360\221\242\261|\360\221\242\262|\360\221\242\263|\360\221\242\264|\360\221\242\265|\360\221\242\266|\360\221\242\267|\360\221\242\270|\360\221\242\271|\360\221\242\272|\360\221\242\273|\360\221\242\274|\360\221\242\275|\360\221\242\276|\360\221\242\277|\360\226\271\200|\360\226\271\201|\360\226\271\202|\360\226\271\203|\360\226\271\204|\360\226\271\205|\360\226\271\206|\360\226\271\207|\360\226\271\210|\360\226\271\211|\360\226\271\212|\360\226\271\213|\360\226\271\214|\360\226\271\215|\360\226\271\216|\360\226\271\217|\360\226\271\220|\360\226\271\221|\360\226\271\222|\360\226\271\223|\360\226\271\224|\360\226\271\225|\360\226\271\226|\360\226\271\227|\360\226\271\230|\360\226\271\231|\360\226\271\232|\360\226\271\233|\360\226\271\234|\360\226\271\235|\360\226\271\236|\360\226\271\237|\360\236\244\200|\360\236\244\201|\360\236\244\202|\360\236\244\203|\360\236\244\204|\360\236\244\205|\360\236\244\206|\360\236\244\207|\360\236\244\210|\360\236\244\211|\360\236\244\212|\360\236\244\213|\360\236\244\214|\360\236\244\215|\360\236\244\216|\360\236\244\217|\360\236\244\220|\360\236\244\221|\360\236\244\222|\360\236\244\223|\360\236\244\224|\360\236\244\225|\360\236\244\226|\360\236\244\227|\360\236\244\230|\360\236\244\231|\360\236\244\232|\360\236\244\233|\360\236\244\234|\360\236\244\235|\360\236\244\236|\360\236\244\237|\360\236\244\240|\360\236\244\241"
|
12
12
|
CASEFOLDING_SOURCE_F = "\303\237|\304\260|\305\211|\307\260|\316\220|\316\260|\326\207|\341\272\226|\341\272\227|\341\272\230|\341\272\231|\341\272\232|\341\272\236|\341\275\220|\341\275\222|\341\275\224|\341\275\226|\341\276\200|\341\276\201|\341\276\202|\341\276\203|\341\276\204|\341\276\205|\341\276\206|\341\276\207|\341\276\210|\341\276\211|\341\276\212|\341\276\213|\341\276\214|\341\276\215|\341\276\216|\341\276\217|\341\276\220|\341\276\221|\341\276\222|\341\276\223|\341\276\224|\341\276\225|\341\276\226|\341\276\227|\341\276\230|\341\276\231|\341\276\232|\341\276\233|\341\276\234|\341\276\235|\341\276\236|\341\276\237|\341\276\240|\341\276\241|\341\276\242|\341\276\243|\341\276\244|\341\276\245|\341\276\246|\341\276\247|\341\276\250|\341\276\251|\341\276\252|\341\276\253|\341\276\254|\341\276\255|\341\276\256|\341\276\257|\341\276\262|\341\276\263|\341\276\264|\341\276\266|\341\276\267|\341\276\274|\341\277\202|\341\277\203|\341\277\204|\341\277\206|\341\277\207|\341\277\214|\341\277\222|\341\277\223|\341\277\226|\341\277\227|\341\277\242|\341\277\243|\341\277\244|\341\277\246|\341\277\247|\341\277\262|\341\277\263|\341\277\264|\341\277\266|\341\277\267|\341\277\274|\357\254\200|\357\254\201|\357\254\202|\357\254\203|\357\254\204|\357\254\205|\357\254\206|\357\254\223|\357\254\224|\357\254\225|\357\254\226|\357\254\227"
|
13
13
|
CASEFOLDING_SOURCE_S = "\341\272\236|\341\276\210|\341\276\211|\341\276\212|\341\276\213|\341\276\214|\341\276\215|\341\276\216|\341\276\217|\341\276\230|\341\276\231|\341\276\232|\341\276\233|\341\276\234|\341\276\235|\341\276\236|\341\276\237|\341\276\250|\341\276\251|\341\276\252|\341\276\253|\341\276\254|\341\276\255|\341\276\256|\341\276\257|\341\276\274|\341\277\214|\341\277\274"
|
14
14
|
CASEFOLDING_SOURCE_T = "\111|\304\260"
|
@@ -145,61 +145,62 @@ module TwitterCldr
|
|
145
145
|
42904=>[42905], 42906=>[42907], 42908=>[42909], 42910=>[42911], 42912=>[42913], 42914=>[42915], 42916=>[42917], 42918=>[42919],
|
146
146
|
42920=>[42921], 42922=>[614], 42923=>[604], 42924=>[609], 42925=>[620], 42926=>[618], 42928=>[670], 42929=>[647],
|
147
147
|
42930=>[669], 42931=>[43859], 42932=>[42933], 42934=>[42935], 42936=>[42937], 42938=>[42939], 42940=>[42941], 42942=>[42943],
|
148
|
-
42946=>[42947], 42948=>[42900], 42949=>[642], 42950=>[7566],
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
304=>[105, 775], 329=>[700, 110], 496=>[106, 780], 912=>[953, 776, 769], 944=>[965, 776, 769],
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
8114=>[8048, 953], 8115=>[945, 953], 8116=>[940, 953], 8118=>[945, 834], 8119=>[945, 834, 953],
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
64261=>[115, 116], 64262=>[115, 116], 64275=>[1396, 1398], 64276=>[1396, 1381], 64277=>[1396, 1387],
|
148
|
+
42946=>[42947], 42948=>[42900], 42949=>[642], 42950=>[7566], 42951=>[42952], 42953=>[42954], 42997=>[42998], 43888=>[5024],
|
149
|
+
43889=>[5025], 43890=>[5026], 43891=>[5027], 43892=>[5028], 43893=>[5029], 43894=>[5030], 43895=>[5031], 43896=>[5032],
|
150
|
+
43897=>[5033], 43898=>[5034], 43899=>[5035], 43900=>[5036], 43901=>[5037], 43902=>[5038], 43903=>[5039], 43904=>[5040],
|
151
|
+
43905=>[5041], 43906=>[5042], 43907=>[5043], 43908=>[5044], 43909=>[5045], 43910=>[5046], 43911=>[5047], 43912=>[5048],
|
152
|
+
43913=>[5049], 43914=>[5050], 43915=>[5051], 43916=>[5052], 43917=>[5053], 43918=>[5054], 43919=>[5055], 43920=>[5056],
|
153
|
+
43921=>[5057], 43922=>[5058], 43923=>[5059], 43924=>[5060], 43925=>[5061], 43926=>[5062], 43927=>[5063], 43928=>[5064],
|
154
|
+
43929=>[5065], 43930=>[5066], 43931=>[5067], 43932=>[5068], 43933=>[5069], 43934=>[5070], 43935=>[5071], 43936=>[5072],
|
155
|
+
43937=>[5073], 43938=>[5074], 43939=>[5075], 43940=>[5076], 43941=>[5077], 43942=>[5078], 43943=>[5079], 43944=>[5080],
|
156
|
+
43945=>[5081], 43946=>[5082], 43947=>[5083], 43948=>[5084], 43949=>[5085], 43950=>[5086], 43951=>[5087], 43952=>[5088],
|
157
|
+
43953=>[5089], 43954=>[5090], 43955=>[5091], 43956=>[5092], 43957=>[5093], 43958=>[5094], 43959=>[5095], 43960=>[5096],
|
158
|
+
43961=>[5097], 43962=>[5098], 43963=>[5099], 43964=>[5100], 43965=>[5101], 43966=>[5102], 43967=>[5103], 65313=>[65345],
|
159
|
+
65314=>[65346], 65315=>[65347], 65316=>[65348], 65317=>[65349], 65318=>[65350], 65319=>[65351], 65320=>[65352], 65321=>[65353],
|
160
|
+
65322=>[65354], 65323=>[65355], 65324=>[65356], 65325=>[65357], 65326=>[65358], 65327=>[65359], 65328=>[65360], 65329=>[65361],
|
161
|
+
65330=>[65362], 65331=>[65363], 65332=>[65364], 65333=>[65365], 65334=>[65366], 65335=>[65367], 65336=>[65368], 65337=>[65369],
|
162
|
+
65338=>[65370], 66560=>[66600], 66561=>[66601], 66562=>[66602], 66563=>[66603], 66564=>[66604], 66565=>[66605], 66566=>[66606],
|
163
|
+
66567=>[66607], 66568=>[66608], 66569=>[66609], 66570=>[66610], 66571=>[66611], 66572=>[66612], 66573=>[66613], 66574=>[66614],
|
164
|
+
66575=>[66615], 66576=>[66616], 66577=>[66617], 66578=>[66618], 66579=>[66619], 66580=>[66620], 66581=>[66621], 66582=>[66622],
|
165
|
+
66583=>[66623], 66584=>[66624], 66585=>[66625], 66586=>[66626], 66587=>[66627], 66588=>[66628], 66589=>[66629], 66590=>[66630],
|
166
|
+
66591=>[66631], 66592=>[66632], 66593=>[66633], 66594=>[66634], 66595=>[66635], 66596=>[66636], 66597=>[66637], 66598=>[66638],
|
167
|
+
66599=>[66639], 66736=>[66776], 66737=>[66777], 66738=>[66778], 66739=>[66779], 66740=>[66780], 66741=>[66781], 66742=>[66782],
|
168
|
+
66743=>[66783], 66744=>[66784], 66745=>[66785], 66746=>[66786], 66747=>[66787], 66748=>[66788], 66749=>[66789], 66750=>[66790],
|
169
|
+
66751=>[66791], 66752=>[66792], 66753=>[66793], 66754=>[66794], 66755=>[66795], 66756=>[66796], 66757=>[66797], 66758=>[66798],
|
170
|
+
66759=>[66799], 66760=>[66800], 66761=>[66801], 66762=>[66802], 66763=>[66803], 66764=>[66804], 66765=>[66805], 66766=>[66806],
|
171
|
+
66767=>[66807], 66768=>[66808], 66769=>[66809], 66770=>[66810], 66771=>[66811], 68736=>[68800], 68737=>[68801], 68738=>[68802],
|
172
|
+
68739=>[68803], 68740=>[68804], 68741=>[68805], 68742=>[68806], 68743=>[68807], 68744=>[68808], 68745=>[68809], 68746=>[68810],
|
173
|
+
68747=>[68811], 68748=>[68812], 68749=>[68813], 68750=>[68814], 68751=>[68815], 68752=>[68816], 68753=>[68817], 68754=>[68818],
|
174
|
+
68755=>[68819], 68756=>[68820], 68757=>[68821], 68758=>[68822], 68759=>[68823], 68760=>[68824], 68761=>[68825], 68762=>[68826],
|
175
|
+
68763=>[68827], 68764=>[68828], 68765=>[68829], 68766=>[68830], 68767=>[68831], 68768=>[68832], 68769=>[68833], 68770=>[68834],
|
176
|
+
68771=>[68835], 68772=>[68836], 68773=>[68837], 68774=>[68838], 68775=>[68839], 68776=>[68840], 68777=>[68841], 68778=>[68842],
|
177
|
+
68779=>[68843], 68780=>[68844], 68781=>[68845], 68782=>[68846], 68783=>[68847], 68784=>[68848], 68785=>[68849], 68786=>[68850],
|
178
|
+
71840=>[71872], 71841=>[71873], 71842=>[71874], 71843=>[71875], 71844=>[71876], 71845=>[71877], 71846=>[71878], 71847=>[71879],
|
179
|
+
71848=>[71880], 71849=>[71881], 71850=>[71882], 71851=>[71883], 71852=>[71884], 71853=>[71885], 71854=>[71886], 71855=>[71887],
|
180
|
+
71856=>[71888], 71857=>[71889], 71858=>[71890], 71859=>[71891], 71860=>[71892], 71861=>[71893], 71862=>[71894], 71863=>[71895],
|
181
|
+
71864=>[71896], 71865=>[71897], 71866=>[71898], 71867=>[71899], 71868=>[71900], 71869=>[71901], 71870=>[71902], 71871=>[71903],
|
182
|
+
93760=>[93792], 93761=>[93793], 93762=>[93794], 93763=>[93795], 93764=>[93796], 93765=>[93797], 93766=>[93798], 93767=>[93799],
|
183
|
+
93768=>[93800], 93769=>[93801], 93770=>[93802], 93771=>[93803], 93772=>[93804], 93773=>[93805], 93774=>[93806], 93775=>[93807],
|
184
|
+
93776=>[93808], 93777=>[93809], 93778=>[93810], 93779=>[93811], 93780=>[93812], 93781=>[93813], 93782=>[93814], 93783=>[93815],
|
185
|
+
93784=>[93816], 93785=>[93817], 93786=>[93818], 93787=>[93819], 93788=>[93820], 93789=>[93821], 93790=>[93822], 93791=>[93823],
|
186
|
+
125184=>[125218], 125185=>[125219], 125186=>[125220], 125187=>[125221], 125188=>[125222], 125189=>[125223], 125190=>[125224], 125191=>[125225],
|
187
|
+
125192=>[125226], 125193=>[125227], 125194=>[125228], 125195=>[125229], 125196=>[125230], 125197=>[125231], 125198=>[125232], 125199=>[125233],
|
188
|
+
125200=>[125234], 125201=>[125235], 125202=>[125236], 125203=>[125237], 125204=>[125238], 125205=>[125239], 125206=>[125240], 125207=>[125241],
|
189
|
+
125208=>[125242], 125209=>[125243], 125210=>[125244], 125211=>[125245], 125212=>[125246], 125213=>[125247], 125214=>[125248], 125215=>[125249],
|
190
|
+
125216=>[125250], 125217=>[125251], 223=>[115, 115], 304=>[105, 775], 329=>[700, 110], 496=>[106, 780], 912=>[953, 776, 769], 944=>[965, 776, 769],
|
191
|
+
1415=>[1381, 1410], 7830=>[104, 817], 7831=>[116, 776], 7832=>[119, 778], 7833=>[121, 778], 7834=>[97, 702], 7838=>[223], 8016=>[965, 787],
|
192
|
+
8018=>[965, 787, 768], 8020=>[965, 787, 769], 8022=>[965, 787, 834], 8064=>[7936, 953], 8065=>[7937, 953], 8066=>[7938, 953], 8067=>[7939, 953], 8068=>[7940, 953],
|
193
|
+
8069=>[7941, 953], 8070=>[7942, 953], 8071=>[7943, 953], 8072=>[8064], 8073=>[8065], 8074=>[8066], 8075=>[8067], 8076=>[8068],
|
194
|
+
8077=>[8069], 8078=>[8070], 8079=>[8071], 8080=>[7968, 953], 8081=>[7969, 953], 8082=>[7970, 953], 8083=>[7971, 953], 8084=>[7972, 953],
|
195
|
+
8085=>[7973, 953], 8086=>[7974, 953], 8087=>[7975, 953], 8088=>[8080], 8089=>[8081], 8090=>[8082], 8091=>[8083], 8092=>[8084],
|
196
|
+
8093=>[8085], 8094=>[8086], 8095=>[8087], 8096=>[8032, 953], 8097=>[8033, 953], 8098=>[8034, 953], 8099=>[8035, 953], 8100=>[8036, 953],
|
197
|
+
8101=>[8037, 953], 8102=>[8038, 953], 8103=>[8039, 953], 8104=>[8096], 8105=>[8097], 8106=>[8098], 8107=>[8099], 8108=>[8100],
|
198
|
+
8109=>[8101], 8110=>[8102], 8111=>[8103], 8114=>[8048, 953], 8115=>[945, 953], 8116=>[940, 953], 8118=>[945, 834], 8119=>[945, 834, 953],
|
199
|
+
8124=>[8115], 8130=>[8052, 953], 8131=>[951, 953], 8132=>[942, 953], 8134=>[951, 834], 8135=>[951, 834, 953], 8140=>[8131], 8146=>[953, 776, 768],
|
200
|
+
8147=>[953, 776, 769], 8150=>[953, 834], 8151=>[953, 776, 834], 8162=>[965, 776, 768], 8163=>[965, 776, 769], 8164=>[961, 787], 8166=>[965, 834], 8167=>[965, 776, 834],
|
201
|
+
8178=>[8060, 953], 8179=>[969, 953], 8180=>[974, 953], 8182=>[969, 834], 8183=>[969, 834, 953], 8188=>[8179], 64256=>[102, 102], 64257=>[102, 105],
|
202
|
+
64258=>[102, 108], 64259=>[102, 102, 105], 64260=>[102, 102, 108], 64261=>[115, 116], 64262=>[115, 116], 64275=>[1396, 1398], 64276=>[1396, 1381], 64277=>[1396, 1387],
|
203
|
+
64278=>[1406, 1398], 64279=>[1396, 1389]
|
203
204
|
}
|
204
205
|
CASEFOLDING_HASH_T = CASEFOLDING_HASH.merge(
|
205
206
|
{
|
@@ -10,10 +10,10 @@ module TwitterCldr
|
|
10
10
|
class Hyphenator
|
11
11
|
class UnsupportedLocaleError < StandardError; end
|
12
12
|
|
13
|
-
BASE_RESOURCE_PATH = %w(shared hyphenation)
|
13
|
+
BASE_RESOURCE_PATH = %w(shared hyphenation).freeze
|
14
14
|
DEFAULT_LEFT_HYPHEN_MIN = 2
|
15
15
|
DEFAULT_RIGHT_HYPHEN_MIN = 2
|
16
|
-
DEFAULT_NO_HYPHEN =
|
16
|
+
DEFAULT_NO_HYPHEN = "-'’".freeze
|
17
17
|
|
18
18
|
class << self
|
19
19
|
def get(locale)
|
@@ -164,12 +164,12 @@ module TwitterCldr
|
|
164
164
|
|
165
165
|
def left_hyphen_min
|
166
166
|
@left_hyphen_min ||=
|
167
|
-
options.fetch(:lefthyphenmin, DEFAULT_LEFT_HYPHEN_MIN)
|
167
|
+
options.fetch(:lefthyphenmin, DEFAULT_LEFT_HYPHEN_MIN).to_i
|
168
168
|
end
|
169
169
|
|
170
170
|
def right_hyphen_min
|
171
171
|
@right_hyphen_min ||=
|
172
|
-
options.fetch(:righthyphenmin, DEFAULT_RIGHT_HYPHEN_MIN)
|
172
|
+
options.fetch(:righthyphenmin, DEFAULT_RIGHT_HYPHEN_MIN).to_i
|
173
173
|
end
|
174
174
|
|
175
175
|
def no_hyphen
|
@@ -104,22 +104,24 @@ module TwitterCldr
|
|
104
104
|
types << :script if script?(subtag)
|
105
105
|
types << :region if region?(subtag)
|
106
106
|
types << :variant if variant?(subtag)
|
107
|
+
|
108
|
+
types << :language if language?(normalize_subtag(subtag, :language))
|
109
|
+
types << :script if script?(normalize_subtag(subtag, :script))
|
110
|
+
types << :region if region?(normalize_subtag(subtag, :region))
|
111
|
+
types << :variant if variant?(normalize_subtag(subtag, :variant))
|
107
112
|
end
|
108
113
|
end
|
109
114
|
|
110
115
|
def language?(subtag)
|
111
|
-
subtag = normalize_subtag(subtag, :language)
|
112
116
|
languages.include?(subtag) || language_aliases.include?(subtag.to_sym)
|
113
117
|
end
|
114
118
|
|
115
119
|
def script?(subtag)
|
116
|
-
subtag = normalize_subtag(subtag, :script)
|
117
120
|
scripts.include?(subtag) ||
|
118
121
|
!!PropertyValueAliases.long_alias_for('sc', subtag)
|
119
122
|
end
|
120
123
|
|
121
124
|
def region?(subtag)
|
122
|
-
subtag = normalize_subtag(subtag, :region)
|
123
125
|
territories.include?(subtag) || region_aliases.include?(subtag.to_sym)
|
124
126
|
end
|
125
127
|
|
@@ -207,6 +209,10 @@ module TwitterCldr
|
|
207
209
|
@validity_resource ||=
|
208
210
|
TwitterCldr.get_resource('shared', 'validity_data')[:validity_data]
|
209
211
|
end
|
212
|
+
|
213
|
+
def parent_locales
|
214
|
+
@parent_locales ||= TwitterCldr.get_resource('shared', 'parent_locales')
|
215
|
+
end
|
210
216
|
end
|
211
217
|
|
212
218
|
attr_accessor :language, :script, :region, :variants
|
@@ -237,11 +243,9 @@ module TwitterCldr
|
|
237
243
|
|
238
244
|
def supported
|
239
245
|
@supported ||= begin
|
240
|
-
|
241
|
-
TwitterCldr.supported_locale?(
|
246
|
+
ancestor_chain.sort.find do |loc|
|
247
|
+
TwitterCldr.supported_locale?(loc.dasherized)
|
242
248
|
end
|
243
|
-
|
244
|
-
self.class.new(found) if found
|
245
249
|
end
|
246
250
|
end
|
247
251
|
|
@@ -271,6 +275,52 @@ module TwitterCldr
|
|
271
275
|
perms.uniq
|
272
276
|
end
|
273
277
|
|
278
|
+
def ==(other)
|
279
|
+
language == other.language &&
|
280
|
+
script == other.script &&
|
281
|
+
region == other.region &&
|
282
|
+
variants == other.variants
|
283
|
+
end
|
284
|
+
|
285
|
+
alias eql? ==
|
286
|
+
|
287
|
+
def hash
|
288
|
+
to_a.hash
|
289
|
+
end
|
290
|
+
|
291
|
+
def sort_key
|
292
|
+
k = 0
|
293
|
+
k += 3 if language
|
294
|
+
k += 2 if script
|
295
|
+
k += 1 if region
|
296
|
+
k
|
297
|
+
end
|
298
|
+
|
299
|
+
def <=>(other)
|
300
|
+
other.sort_key <=> sort_key
|
301
|
+
end
|
302
|
+
|
303
|
+
def ancestor_chain
|
304
|
+
ancestry = [self]
|
305
|
+
remaining = [self]
|
306
|
+
|
307
|
+
until remaining.empty?
|
308
|
+
locale = remaining.pop
|
309
|
+
|
310
|
+
if parent = self.class.send(:parent_locales)[locale.to_s]
|
311
|
+
parent = self.class.parse(parent)
|
312
|
+
ancestry << parent
|
313
|
+
remaining << parent
|
314
|
+
else
|
315
|
+
parents = locale.permutations.map { |p| self.class.parse(p) }
|
316
|
+
remaining += parents - ancestry
|
317
|
+
ancestry += parents - ancestry
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
ancestry
|
322
|
+
end
|
323
|
+
|
274
324
|
end
|
275
325
|
end
|
276
326
|
end
|