// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
//  Date        Name        Description
//  11/17/99    aliu        Added support for transliterators.
//  01/15/2002  grhoten     Synchronized the language and contry codes with ISO standards

// ***  Note: do NOT translate or modify (customize) this root locale.
//      Instead, put translations in sub locales.

root {
    Version { "5.0" }

    AmPmMarkers {
        "AM",
        "PM",
    }

    // TODO: Remove this
    // this is a special tag that makes genrb include UCARules.txt for collation
    "%%UCARULES" { "UCARules.txt"} // UCARules

    collations {
        standard {
            Version  { "0.0" }
            Sequence { "" }
        }
        default { "standard" }
    }

    // The official list list of ISO-3166 country codes are located at:
    // http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html
    Countries {
        Fallback{""} // this is just to make cloctst not complain and not break the fallback chain..if multilevel fallback is implemented
        AD { "AD" }
        AE { "AE" }
        AF { "AF" }
        AG { "AG" }
        AI { "AI" }
        AL { "AL" }
        AM { "AM" }
        AN { "AN" }
        AO { "AO" }
        AQ { "AQ" }
        AR { "AR" }
        AS { "AS" }
        AT { "AT" }
        AU { "AU" }
        AW { "AW" }
        AZ { "AZ" }

        BA { "BA" }
        BB { "BB" }
        BD { "BD" }
        BE { "BE" }
        BF { "BF" }
        BG { "BG" }
        BH { "BH" }
        BI { "BI" }
        BJ { "BJ" }
        BM { "BM" }
        BN { "BN" }
        BO { "BO" }
        BR { "BR" }
        BS { "BS" }
        BT { "BT" }
        BV { "BV" }
        BW { "BW" }
        BY { "BY" }
        BZ { "BZ" }

        CA { "CA" }
        CC { "CC" }
        CD { "CD" }
        CF { "CF" }
        CG { "CG" }
        CH { "CH" }
        CI { "CI" }
        CK { "CK" }
        CL { "CL" }
        CM { "CM" }
        CN { "CN" }
        CO { "CO" }
        CR { "CR" }
        //CS { "CS" } // TODO: if we allow this, then SP must go away
        CU { "CU" }
        CV { "CV" }
        CX { "CX" }
        CY { "CY" }
        CZ { "CZ" }

        DE { "DE" }
        DJ { "DJ" }
        DK { "DK" }
        DM { "DM" }
        DO { "DO" }
        DZ { "DZ" }

        EC { "EC" }
        EE { "EE" }
        EG { "EG" }
        EH { "EH" }
        ER { "ER" }
        ES { "ES" }
        ET { "ET" }

        FI { "FI" }
        FJ { "FJ" }
        FK { "FK" }
        FM { "FM" }
        FO { "FO" }
        FR { "FR" }

        GA { "GA" }
        GB { "GB" }
        GD { "GD" }
        GE { "GE" }
        GF { "GF" }
        GH { "GH" }
        GI { "GI" }
        GL { "GL" }
        GM { "GM" }
        GN { "GN" }
        GP { "GP" }
        GQ { "GQ" }
        GR { "GR" }
        GS { "GS" }
        GT { "GT" }
        GU { "GU" }
        GW { "GW" }
        GY { "GY" }

        HK { "HK" }
        HM { "HM" }
        HN { "HN" }
        HR { "HR" }
        HT { "HT" }
        HU { "HU" }

        ID { "ID" }
        IE { "IE" }
        IL { "IL" }
        IN { "IN" }
        IO { "IO" }
        IQ { "IQ" }
        IR { "IR" }
        IS { "IS" }
        IT { "IT" }

        JM { "JM" }
        JO { "JO" }
        JP { "JP" }

        KE { "KE" }
        KG { "KG" }
        KH { "KH" }
        KI { "KI" }
        KM { "KM" }
        KN { "KN" }
        KP { "KP" }
        KR { "KR" }
        KW { "KW" }
        KY { "KY" }
        KZ { "KZ" }

        LA { "LA" }
        LB { "LB" }
        LC { "LC" }
        LI { "LI" }
        LK { "LK" }
        LR { "LR" }
        LS { "LS" }
        LT { "LT" }
        LU { "LU" }
        LV { "LV" }
        LY { "LY" }

        MA { "MA" }
        MC { "MC" }
        MD { "MD" }
        MG { "MG" }
        MH { "MH" }
        MK { "MK" }
        ML { "ML" }
        MM { "MM" }
        MN { "MN" }
        MO { "MO" }
        MP { "MP" }
        MQ { "MQ" }
        MR { "MR" }
        MS { "MS" }
        MT { "MT" }
        MU { "MU" }
        MV { "MV" }
        MW { "MW" }
        MX { "MX" }
        MY { "MY" }
        MZ { "MZ" }

        NA { "NA" }
        NC { "NC" }
        NE { "NE" }
        NF { "NF" }
        NG { "NG" }
        NI { "NI" }
        NL { "NL" }
        NO { "NO" }
        NP { "NP" }
        NR { "NR" }
        NU { "NU" }
        NZ { "NZ" }

        OM { "OM" }

        PA { "PA" }
        PE { "PE" }
        PF { "PF" }
        PG { "PG" }
        PH { "PH" }
        PK { "PK" }
        PL { "PL" }
        PM { "PM" }
        PN { "PN" }
        PR { "PR" }
        PS { "PS" }
        PT { "PT" }
        PW { "PW" }
        PY { "PY" }

        QA { "QA" }

        RE { "RE" }
        RO { "RO" }
        RU { "RU" }
        RW { "RW" }

        SA { "SA" }
        SB { "SB" }
        SC { "SC" }
        SD { "SD" }
        SE { "SE" }
        SG { "SG" }
        SH { "SH" }
        SI { "SI" }
        SJ { "SJ" }
        SK { "SK" }
        SL { "SL" }
        SM { "SM" }
        SN { "SN" }
        SO { "SO" }
        SP { "SP" }
        SR { "SR" }
        ST { "ST" }
        SV { "SV" }
        SY { "SY" }
        SZ { "SZ" }

        TC { "TC" }
        TD { "TD" }
        TF { "TF" }
        TG { "TG" }
        TH { "TH" }
        TJ { "TJ" }
        TK { "TK" }
        TM { "TM" }
        TN { "TN" }
        TO { "TO" }
        TL { "TL" }
        TR { "TR" }
        TT { "TT" }
        TV { "TV" }
        TW { "TW" }
        TZ { "TZ" }

        UA { "UA" }
        UG { "UG" }
        UM { "UM" }
        US { "US" }
        UY { "UY" }
        UZ { "UZ" }

        VA { "VA" }
        VC { "VC" }
        VE { "VE" }
        VG { "VG" }
        VI { "VI" }
        VN { "VN" }
        VU { "VU" }

        WF { "WF" }
        WS { "WS" }

        YE { "YE" }
        YT { "YT" }
        YU { "YU" }

        ZA { "ZA" }

        ZM { "ZM" }
        ZW { "ZW" }
    }

    // Localized display names of currencies, analogous to Countries
    // and Languages.  "Common usage" display names are listed here in
    // root.  Only a few unique symbols should be listed here.  "$",
    // for example, is used to indicate not only USD, but also ARS,
    // AUD, BND, CAD, CLP, COP, JDF, ETB, MXN, NZD, and SOS.  Hoever,
    // its default meaning in many locales is USD, so we list it here
    // and override it in sublocales that use "$" for something else.
    // @since ICU 2.2
    Currencies {
        EUR { "\u20AC", "EUR" } // Euro
        GBP { "\u00A3", "GBP" } // British Pound Sterling
        INR { "=0#Rs.|1#Re.|1<Rs.", "INR" } // Indian Rupee
        ITL { "\u20A4", "ITL" } // Italian Lira
        JPY { "\u00A5", "JPY" } // Japanese Yen
        USD { "$",     "USD" } // US Dollar
    }

    // Currency metadata.  Unlike the "Currencies" element, this is
    // NOT true locale data.  It exists only in root.  The two
    // integers are the fraction digits for each currency, and the
    // rounding increment.  The fraction digits must be an integer
    // from 0..9.  If there is no rounding, the rounding increment is
    // zero.  Otherwise the rounding increment is given in units of
    // 10^(-fraction_digits).  The special tag "DEFAULT" gives the
    // meta data for all currencies not otherwise listed.
    // Last update: Tue Apr  8 16:57:42 2003
    CurrencyMeta {
        ADP:intvector { 0, 0 } // Andorran Peseta: ANDORRA (AD)
        BHD:intvector { 3, 0 } // Bahraini Dinar: BAHRAIN (BH)
        BIF:intvector { 0, 0 } // Burundi Franc: BURUNDI (BI)
        BYR:intvector { 0, 0 } // Belarussian Ruble: BELARUS (BY)
        CHF:intvector { 2, 5 } // Swiss Franc: LIECHTENSTEIN (LI), SWITZERLAND (CH)
        CLF:intvector { 0, 0 } // Unidades de fomento: CHILE (CL)
        CLP:intvector { 0, 0 } // Chilean Peso: CHILE (CL)
        DJF:intvector { 0, 0 } // Djibouti Franc: DJIBOUTI (DJ)
        GNF:intvector { 0, 0 } // Guinea Franc: GUINEA (GN)
        IQD:intvector { 3, 0 } // Iraqi Dinar: IRAQ (IQ)
        JOD:intvector { 3, 0 } // Jordanian Dinar: JORDAN (JO)
        JPY:intvector { 0, 0 } // Yen: JAPAN (JP)
        KMF:intvector { 0, 0 } // Comoro Franc: COMOROS (KM)
        KRW:intvector { 0, 0 } // Won: KOREA, REPUBLIC OF (KR)
        KWD:intvector { 3, 0 } // Kuwaiti Dinar: KUWAIT (KW)
        LYD:intvector { 3, 0 } // Lybian Dinar: LIBYAN ARAB JAMAHIRIYA (LY)
        MGF:intvector { 0, 0 } // Malagasy Franc: MADAGASCAR (MG)
        OMR:intvector { 3, 0 } // Rial Omani: OMAN (OM)
        PYG:intvector { 0, 0 } // Guarani: PARAGUAY (PY)
        RWF:intvector { 0, 0 } // Rwanda Franc: RWANDA (RW)
        TND:intvector { 3, 0 } // Tunisian Dinar: TUNISIA (TN)
        TRL:intvector { 0, 0 } // Turkish Lira: TURKEY (TR)
        TTD:intvector { 0, 0 } // Trinidad and Tobago Dollar: TRINIDAD AND TOBAGO (TT)
        VUV:intvector { 0, 0 } // Vatu: VANUATU (VU)
        XAF:intvector { 0, 0 } // CFA Franc BEAC: CAMEROON (CM), CENTRAL AFRICAN REPUBLIC (CF), CHAD (TD), CONGO (CG), EQUATORIAL GUINEA (GQ), GABON (GA)
        XOF:intvector { 0, 0 } // CFA Franc BCEAO: BENIN (BJ), BURKINA FASO (BF), COTE D'IVOIRE (CI), GUINEA-BISSAU (GW), MALI (ML), NIGER (NE), SENEGAL (SN), TOGO (TG)
        XPF:intvector { 0, 0 } // CFP Franc: FRENCH POLYNESIA (PF), NEW CALEDONIA (NC), WALLIS AND FUTUNA (WF)
        DEFAULT:intvector { 2, 0 } // (All currencies not listed)
    }
    // Map from ISO 3166 country codes to ISO 4217 currency codes
    // NOTE: This is not true locale data; it exists only in ROOT
    // Last update: Tue Apr  8 16:57:42 2003
    CurrencyMap {
        _EURO { "EUR" } // : Euro
        AE { "AED" } // UNITED ARAB EMIRATES: UAE Dirham
        AF { "AFN" } // AFGHANISTAN: Afghani
        AG { "XCD" } // ANTIGUA AND BARBUDA: East Caribbean Dollar
        AI { "XCD" } // ANGUILLA: East Caribbean Dollar
        AL { "ALL" } // ALBANIA: Leck
        AM { "AMD" } // ARMENIA: Armenian Dram
        AN { "ANG" } // NETHERLANDS ANTILLES: Netherlands Antillan Guilder
        AO { "AOA" } // ANGOLA: Kwanza
        AR { "ARS" } // ARGENTINA: Argentine Peso
        AS { "USD" } // AMERICAN SAMOA: US Dollar
        AT { "EUR" } // AUSTRIA: Euro
        AT_PREEURO { "ATS" }
        AU { "AUD" } // AUSTRALIA: Australian Dollar
        AW { "AWG" } // ARUBA: Aruban Guilder
        AZ { "AZM" } // AZERBAIJAN: Azerbaijanian Manat
        BA { "BAM" } // BOSNIA AND HERZEGOVINA: Convertible Marks
        BB { "BBD" } // BARBADOS: Barbados Dollar
        BD { "BDT" } // BANGLADESH: Taka
        BE { "EUR" } // BELGIUM: Euro
        BE_PREEURO { "BEF" }
        BF { "XOF" } // BURKINA FASO: CFA Franc BCEAO
        BG { "BGN" } // BULGARIA: Bulgarian Lev
        BH { "BHD" } // BAHRAIN: Bahraini Dinar
        BI { "BIF" } // BURUNDI: Burundi Franc
        BJ { "XOF" } // BENIN: CFA Franc BCEAO
        BM { "BMD" } // BERMUDA: Bermudian Dollar
        BN { "BND" } // BRUNEI DARUSSALAM: Brunei Dollar
        BO { "BOB" } // BOLIVIA: Boliviano
        BR { "BRL" } // BRAZIL: Brazilian Real
        BS { "BSD" } // BAHAMAS: Bahamian Dollar
        BV { "NOK" } // BOUVET ISLAND: Norwegian Krone
        BW { "BWP" } // BOTSWANA: Pula
        BY { "BYR" } // BELARUS: Belarussian Ruble
        BZ { "BZD" } // BELIZE: Belize Dollar
        CA { "CAD" } // CANADA: Canadian Dollar
        CC { "AUD" } // COCOS (KEELING) ISLANDS: Australian Dollar
        CD { "CDF" } // CONGO, THE DEMOCRATIC REPUBLIC OF THE: Franc Congolais
        CF { "XAF" } // CENTRAL AFRICAN REPUBLIC: CFA Franc BEAC
        CG { "XAF" } // CONGO: CFA Franc BEAC
        CH { "CHF" } // SWITZERLAND: Swiss Franc
        CI { "XOF" } // COTE D'IVOIRE: CFA Franc BCEAO
        CK { "NZD" } // COOK ISLANDS: New Zealand Dollar
        CL { "CLP" } // CHILE: Chilean Peso
        CM { "XAF" } // CAMEROON: CFA Franc BEAC
        CN { "CNY" } // CHINA: Yuan Renminbi
        CO { "COP" } // COLOMBIA: Colombian Peso
        CR { "CRC" } // COSTA RICA: Costa Rican Colon
        CU { "CUP" } // CUBA: Cuban Peso
        CV { "CVE" } // CAPE VERDE: Cape Verde Escudo
        CX { "AUD" } // CHRISTMAS ISLAND: Australian Dollar
        CY { "CYP" } // CYPRUS: Cyprus Pound
        CZ { "CZK" } // CZECH REPUBLIC: Czech Koruna
        DE { "EUR" } // GERMANY: Euro
        DE_PREEURO { "DEM" }
        DJ { "DJF" } // DJIBOUTI: Djibouti Franc
        DK { "DKK" } // DENMARK: Danish Krone
        DM { "XCD" } // DOMINICA: East Caribbean Dollar
        DO { "DOP" } // DOMINICAN REPUBLIC: Dominican Peso
        DZ { "DZD" } // ALGERIA: Algerian Dinar
        EC { "ECS" } // ECUADOR: Sucre
        EE { "EEK" } // ESTONIA: Kroon
        EG { "EGP" } // EGYPT: Egyptian Pound
        EH { "MAD" } // WESTERN SAHARA: Moroccan Dirham
        ER { "ERN" } // ERITREA: Nakfa
        ES { "EUR" } // SPAIN: Euro
        ES_PREEURO { "ESP" }
        ET { "ETB" } // ETHIOPIA: Ethiopian Birr
        FI { "EUR" } // FINLAND: Euro
        FI_PREEURO { "FIM" }
        FJ { "FJD" } // FIJI: Fiji Dollar
        FK { "FKP" } // FALKLAND ISLANDS (MALVINAS): Falkland Islands Pound
        FM { "USD" } // MICRONESIA, FEDERATED STATES OF: US Dollar
        FO { "DKK" } // FAROE ISLANDS: Danish Krone
        FR { "EUR" } // FRANCE: Euro
        FR_PREEURO { "FRF" }
        GA { "XAF" } // GABON: CFA Franc BEAC
        GB { "GBP" } // UNITED KINGDOM: Pound Sterling
        GD { "XCD" } // GRENADA: East Caribbean Dollar
        GE { "GEL" } // GEORGIA: Lari
        GF { "EUR" } // FRENCH GUIANA: Euro
        GH { "GHC" } // GHANA: Cedi
        GI { "GIP" } // GIBRALTAR: Gibraltar Pound
        GL { "DKK" } // GREENLAND: Danish Krone
        GM { "GMD" } // GAMBIA: Dalasi
        GN { "GNF" } // GUINEA: Guinea Franc
        GP { "EUR" } // GUADELOUPE: Euro
        GQ { "XAF" } // EQUATORIAL GUINEA: CFA Franc BEAC
        GR { "EUR" } // GREECE: Euro
        GR_PREEURO { "GRD" }
        GT { "GTQ" } // GUATEMALA: Quetzal
        GU { "USD" } // GUAM: US Dollar
        GY { "GYD" } // GUYANA: Guyana Dollar
        HK { "HKD" } // HONG KONG: Hong Kong Dollar
        HM { "AUD" } // HEARD ISLAND AND MCDONALD ISLANDS: Australian Dollar
        HN { "HNL" } // HONDURAS: Lempira
        HR { "HRK" } // CROATIA: Croatian kuna
        HU { "HUF" } // HUNGARY: Forint
        ID { "IDR" } // INDONESIA: Rupiah
        IE { "EUR" } // IRELAND: Euro
        IE_PREEURO { "IEP" }
        IL { "ILS" } // ISRAEL: New Israeli Sheqel
        IN { "INR" } // INDIA: Indian Rupee
        IO { "USD" } // BRITISH INDIAN OCEAN TERRITORY: US Dollar
        IQ { "IQD" } // IRAQ: Iraqi Dinar
        IR { "IRR" } // IRAN, ISLAMIC REPUBLIC OF: Iranian Rial
        IS { "ISK" } // ICELAND: Iceland Krona
        IT { "EUR" } // ITALY: Euro
        IT_PREEURO { "ITL" }
        JM { "JMD" } // JAMAICA: Jamaican Dollar
        JO { "JOD" } // JORDAN: Jordanian Dinar
        JP { "JPY" } // JAPAN: Yen
        KE { "KES" } // KENYA: Kenyan Shilling
        KG { "KGS" } // KYRGYZSTAN: Som
        KH { "KHR" } // CAMBODIA: Riel
        KI { "AUD" } // KIRIBATI: Australian Dollar
        KM { "KMF" } // COMOROS: Comoro Franc
        KN { "XCD" } // SAINT KITTS AND NEVIS: East Caribbean Dollar
        KP { "KPW" } // KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF: North Korean Won
        KR { "KRW" } // KOREA, REPUBLIC OF: Won
        KW { "KWD" } // KUWAIT: Kuwaiti Dinar
        KY { "KYD" } // CAYMAN ISLANDS: Cayman Islands Dollar
        KZ { "KZT" } // KAZAKHSTAN: Tenge
        LA { "LAK" } // LAO PEOPLE'S DEMOCRATIC REPUBLIC: Kip
        LB { "LBP" } // LEBANON: Lebanese Pound
        LC { "XCD" } // SAINT LUCIA: East Caribbean Dollar
        LI { "CHF" } // LIECHTENSTEIN: Swiss Franc
        LK { "LKR" } // SRI LANKA: Sri Lanka Rupee
        LR { "LRD" } // LIBERIA: Liberian Dollar
        LT { "LTL" } // LITHUANIA: Lithuanian Litas
        LU { "EUR" } // LUXEMBOURG: Euro
        LU_PREEURO { "LUF" }
        LV { "LVL" } // LATVIA: Latvian Lats
        LY { "LYD" } // LIBYAN ARAB JAMAHIRIYA: Lybian Dinar
        MA { "MAD" } // MOROCCO: Moroccan Dirham
        MC { "EUR" } // MONACO: Euro
        MD { "MDL" } // MOLDOVA, REPUBLIC OF: Moldovan Leu
        MG { "MGF" } // MADAGASCAR: Malagasy Franc
        MH { "USD" } // MARSHALL ISLANDS: US Dollar
        MK { "MKD" } // MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF: Denar
        ML { "XOF" } // MALI: CFA Franc BCEAO
        MM { "MMK" } // MYANMAR: Kyat
        MN { "MNT" } // MONGOLIA: Tugrik
        MO { "MOP" } // MACAO: Pataca
        MP { "USD" } // NORTHERN MARIANA ISLANDS: US Dollar
        MQ { "EUR" } // MARTINIQUE: Euro
        MR { "MRO" } // MAURITANIA: Ouguiya
        MS { "XCD" } // MONTSERRAT: East Caribbean Dollar
        MT { "MTL" } // MALTA: Maltese Lira
        MU { "MUR" } // MAURITIUS: Mauritius Rupee
        MV { "MVR" } // MALDIVES: Rufiyaa
        MW { "MWK" } // MALAWI: Kwacha
        MX { "MXN" } // MEXICO: Mexican Peso
        MY { "MYR" } // MALAYSIA: Malaysian Ringgit
        MZ { "MZM" } // MOZAMBIQUE: Metical
        NC { "XPF" } // NEW CALEDONIA: CFP Franc
        NE { "XOF" } // NIGER: CFA Franc BCEAO
        NF { "AUD" } // NORFOLK ISLAND: Australian Dollar
        NG { "NGN" } // NIGERIA: Naira
        NI { "NIO" } // NICARAGUA: Cordoba Oro
        NL { "EUR" } // NETHERLANDS: Euro
        NL_PREEURO { "NLG" }
        NO { "NOK" } // NORWAY: Norwegian Krone
        NP { "NPR" } // NEPAL: Nepalese Rupee
        NR { "AUD" } // NAURU: Australian Dollar
        NU { "NZD" } // NIUE: New Zealand Dollar
        NZ { "NZD" } // NEW ZEALAND: New Zealand Dollar
        OM { "OMR" } // OMAN: Rial Omani
        PA { "PAB" } // PANAMA: Balboa
        PE { "PEN" } // PERU: Nuevo Sol
        PF { "XPF" } // FRENCH POLYNESIA: CFP Franc
        PG { "PGK" } // PAPUA NEW GUINEA: Kina
        PH { "PHP" } // PHILIPPINES: Philippine Peso
        PK { "PKR" } // PAKISTAN: Pakistan Rupee
        PL { "PLN" } // POLAND: Zloty
        PM { "EUR" } // SAINT PIERRE AND MIQUELON: Euro
        PN { "NZD" } // PITCAIRN: New Zealand Dollar
        PR { "USD" } // PUERTO RICO: US Dollar
        PT { "EUR" } // PORTUGAL: Euro
        PT_PREEURO { "PTE" }
        PW { "USD" } // PALAU: US Dollar
        PY { "PYG" } // PARAGUAY: Guarani
        QA { "QAR" } // QATAR: Qatari Rial
        RE { "EUR" } // REUNION: Euro
        RO { "ROL" } // ROMANIA: Leu
        RU { "RUR" } // RUSSIAN FEDERATION: Russian Ruble
        RW { "RWF" } // RWANDA: Rwanda Franc
        SA { "SAR" } // SAUDI ARABIA: Saudi Riyal
        SB { "SBD" } // SOLOMON ISLANDS: Solomon Islands Dollar
        SC { "SCR" } // SEYCHELLES: Seychelles Rupee
        SD { "SDD" } // SUDAN: Sudanese Dinar
        SE { "SEK" } // SWEDEN: Swedish Krona
        SG { "SGD" } // SINGAPORE: Singapore Dollar
        SH { "SHP" } // SAINT HELENA: Saint Helena Pound
        SI { "SIT" } // SLOVENIA: Tolar
        SJ { "NOK" } // SVALBARD AND JAN MAYEN: Norwegian Krone
        SK { "SKK" } // SLOVAKIA: Slovak Koruna
        SL { "SLL" } // SIERRA LEONE: Leone
        SM { "EUR" } // SAN MARINO: Euro
        SN { "XOF" } // SENEGAL: CFA Franc BCEAO
        SO { "SOS" } // SOMALIA: Somali Shilling
        SR { "SRG" } // SURINAME: Suriname Guilder
        ST { "STD" } // SAO TOME AND PRINCIPE: Dobra
        SV { "SVC" } // EL SALVADOR: El Salvador Colon
        SY { "SYP" } // SYRIAN ARAB REPUBLIC: Syrian Pound
        SZ { "SZL" } // SWAZILAND: Lilangeni
        TC { "USD" } // TURKS AND CAICOS ISLANDS: US Dollar
        TD { "XAF" } // CHAD: CFA Franc BEAC
        TF { "EUR" } // FRENCH SOUTHERN TERRITORIES: Euro
        TG { "XOF" } // TOGO: CFA Franc BCEAO
        TH { "THB" } // THAILAND: Baht
        TJ { "TJS" } // TAJIKISTAN: Somoni
        TK { "NZD" } // TOKELAU: New Zealand Dollar
        TL { "USD" } // TIMOR-LESTE: US Dollar
        TM { "TMM" } // TURKMENISTAN: Manat
        TN { "TND" } // TUNISIA: Tunisian Dinar
        TO { "TOP" } // TONGA: Pa'anga
        TR { "TRL" } // TURKEY: Turkish Lira
        TT { "TTD" } // TRINIDAD AND TOBAGO: Trinidad and Tobago Dollar
        TV { "AUD" } // TUVALU: Australian Dollar
        TW { "TWD" } // TAIWAN, PROVINCE OF CHINA: New Taiwan Dollar
        TZ { "TZS" } // TANZANIA, UNITED REPUBLIC OF: Tanzanian Shilling
        UA { "UAH" } // UKRAINE: Hryvnia
        UG { "UGX" } // UGANDA: Uganda Shilling
        UM { "USD" } // UNITED STATES MINOR OUTLYING ISLANDS: US Dollar
        US { "USD" } // UNITED STATES: US Dollar
        UY { "UYU" } // URUGUAY: Peso Uruguayo
        UZ { "UZS" } // UZBEKISTAN: Uzbekistan Sum
        VA { "EUR" } // HOLY SEE (VATICAN CITY STATE): Euro
        VC { "XCD" } // SAINT VINCENT AND THE GRENADINES: East Caribbean Dollar
        VE { "VEB" } // VENEZUELA: Bolivar
        VG { "USD" } // VIRGIN ISLANDS, BRITISH: US Dollar
        VI { "USD" } // VIRGIN ISLANDS, U.S.: US Dollar
        VN { "VND" } // VIET NAM: Dong
        VU { "VUV" } // VANUATU: Vatu
        WF { "XPF" } // WALLIS AND FUTUNA: CFP Franc
        WS { "WST" } // SAMOA: Tala
        YE { "YER" } // YEMEN: Yemeni Rial
        YT { "EUR" } // MAYOTTE: Euro
        YU { "YUM" } // YUGOSLAVIA: Yugoslavian Dinar
        ZA { "ZAR" } // SOUTH AFRICA: Rand
        ZM { "ZMK" } // ZAMBIA: Kwacha
        ZW { "ZWD" } // ZIMBABWE: Zimbabwe Dollar
    }

    DateTimeElements:intvector {
        1,
        1,
    }

    DateTimePatterns {
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss ",
        "HH:mm",
        "EEEE, yyyy MMMM dd ",
        "yyyy MMMM d ",
        "yyyy MMM d ",
        "yy/MM/dd", // Changing this will break binary compatibility.
        "{1} {0}",
    }

    DayAbbreviations {
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7"
    }
    DayNames {
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7"
    }
    Eras {
        "BCE", // BC
        "CE"   // AD
    }

    // If there is a two letter abbreviation (ISO-639-1) for a three letter
    // abbreviation (ISO-639-2), the two letter abbreviation must be used.
    // Source: http://lcweb.loc.gov/standards/iso639-2/englangn.html
    Languages {
        Fallback{""}
        root{ "root" }

        aa  { "aa"  }
        ab  { "ab"  }
        ace { "ace" }
        ach { "ach" }
        ada { "ada" }
        ady { "ady" }
        ae  { "ae"  }
        af  { "af"  }
        afa { "afa" }
        afh { "afh" }
        ak  { "ak"  }
        akk { "akk" }
        ale { "ale" }
        alg { "alg" }
        am  { "am"  }
        an  { "an"  }
        ang { "ang" }
        apa { "apa" }
        ar  { "ar"  }
        arc { "arc" }
        arn { "arn" }
        arp { "arp" }
        art { "art" }
        arw { "arw" }
        as  { "as"  }
        ast { "ast" }
        ath { "ath" }
        aus { "aus" }
        av  { "av"  }
        awa { "awa" }
        ay  { "ay"  }
        az  { "az"  }
        ba  { "ba"  }
        bad { "bad" }
        bai { "bai" }
        bal { "bal" }
        bam { "bam" }
        ban { "ban" }
        bas { "bas" }
        bat { "bat" }
        be  { "be"  }
        bej { "bej" }
        bem { "bem" }
        ber { "ber" }
        bg  { "bg"  }
        bh  { "bh"  }
        bho { "bho" }
        bi  { "bi"  }
        bik { "bik" }
        bin { "bin" }
        bla { "bla" }
        bm  { "bm"  }
        bn  { "bn"  }
        bnt { "bnt" }
        bo  { "bo"  }
        br  { "br"  }
        bra { "bra" }
        bs  { "bs"  }
        btk { "btk" }
        bua { "bua" }
        bug { "bug" }
        byn { "byn" }
        ca  { "ca"  }
        cad { "cad" }
        cai { "cai" }
        car { "car" }
        cau { "cau" }
        ce  { "ce"  }
        ceb { "ceb" }
        cel { "cel" }
        ch  { "ch"  }
        chb { "chb" }
        chg { "chg" }
        chk { "chk" }
        chm { "chm" }
        chn { "chn" }
        cho { "cho" }
        chp { "chp" }
        chr { "chr" }
        chy { "chy" }
        cmc { "cmc" }
        co  { "co"  }
        cop { "cop" }
        cpe { "cpe" }
        cpf { "cpf" }
        cpp { "cpp" }
        cr  { "cr"  }
        crh { "crh" }
        crp { "crp" }
        cs  { "cs"  }
        csb { "csb" }
        cu  { "cu"  }
        cus { "cus" }
        cv  { "cv"  }
        cy  { "cy"  }
        da  { "da"  }
        dak { "dak" }
        dar { "dar" }
        day { "day" }
        de  { "de"  }
        del { "del" }
        den { "den" }
        dgr { "dgr" }
        din { "din" }
        doi { "doi" }
        dra { "dra" }
        dsb { "dsb" }
        dua { "dua" }
        dum { "dum" }
        dv  { "dv"  }
        dyu { "dyu" }
        dz  { "dz"  }
        ee  { "ee"  }
        efi { "efi" }
        egy { "egy" }
        eka { "eka" }
        el  { "el"  }
        elx { "elx" }
        en  { "en"  }
        enm { "enm" }
        eo  { "eo"  }
        es  { "es"  }
        et  { "et"  }
        eu  { "eu"  }
        ewo { "ewo" }
        fa  { "fa"  }
        fan { "fan" }
        fat { "fat" }
        ff  { "ff"  }
        fi  { "fi"  }
        fiu { "fiu" }
        fj  { "fj"  }
        fo  { "fo"  }
        fon { "fon" }
        fr  { "fr"  }
        frm { "frm" }
        fro { "fro" }
        fur { "fur" }
        fy  { "fy"  }
        ga  { "ga"  }
        gaa { "gaa" }
        gay { "gay" }
        gba { "gba" }
        gd  { "gd"  }
        gem { "gem" }
        gez { "gez" }
        gil { "gil" }
        gl  { "gl"  }
        gmh { "gmh" }
        gn  { "gn"  }
        goh { "goh" }
        gon { "gon" }
        gor { "gor" }
        got { "got" }
        grb { "grb" }
        grc { "grc" }
        gu  { "gu"  }
        gv  { "gv"  }
        gwi { "gwi" }
        ha  { "ha"  }
        hai { "hai" }
        haw { "haw" }
        he  { "he"  }
        hi  { "hi"  }
        hil { "hil" }
        him { "him" }
        hit { "hit" }
        hmn { "hmn" }
        ho  { "ho"  }
        hr  { "hr"  }
        hsb { "hsb" }
        ht  { "ht"  }
        hu  { "hu"  }
        hup { "hup" }
        hy  { "hy"  }
        hz  { "hz"  }
        ia  { "ia"  }
        iba { "iba" }
        id  { "id"  }
        ie  { "ie"  }
        ig  { "ig"  }
        ii  { "ii"  }
        ijo { "ijo" }
        ik  { "ik"  }
        ilo { "ilo" }
        inc { "inc" }
        ine { "ine" }
        inh { "inh" }
        io  { "io"  }
        ira { "ira" }
        iro { "iro" }
        is  { "is"  }
        it  { "it"  }
        iu  { "iu"  }
        //iw  { "iw"  }
        ja  { "ja"  }
        jbo { "jbo" }
        jpr { "jpr" }
        jrb { "jrb" }
        jv  { "jv"  }
        ka  { "ka"  }
        kaa { "kaa" }
        kab { "kab" }
        kac { "kac" }
        kam { "kam" }
        kar { "kar" }
        kaw { "kaw" }
        kbd { "kbd" }
        kg  { "kg"  }
        kha { "kha" }
        khi { "khi" }
        kho { "kho" }
        ki  { "ki"  }
        kj  { "kj"  }
        kk  { "kk"  }
        kl  { "kl"  }
        km  { "km"  }
        kmb { "kmb" }
        kn  { "kn"  }
        ko  { "ko"  }
        kok { "kok" }
        kos { "kos" }
        kpe { "kpe" }
        kr  { "kr"  }
        krc { "krc" }
        kro { "kro" }
        kru { "kru" }
        ks  { "ks"  }
        ku  { "ku"  }
        kum { "kum" }
        kut { "kut" }
        kv  { "kv"  }
        kw  { "kw"  }
        ky  { "ky"  }
        la  { "la"  }
        lad { "lad" }
        lah { "lah" }
        lam { "lam" }
        lb  { "lb"  }
        lez { "lez" }
        lg  { "lg"  }
        li  { "li"  }
        ln  { "ln"  }
        lo  { "lo"  }
        lol { "lol" }
        loz { "loz" }
        lt  { "lt"  }
        lu  { "lu"  }
        lua { "lua" }
        lui { "lui" }
        lun { "lun" }
        luo { "luo" }
        lus { "lus" }
        lv  { "lv"  }
        mad { "mad" }
        mag { "mag" }
        mai { "mai" }
        mak { "mak" }
        man { "man" }
        map { "map" }
        mas { "mas" }
        mdf { "mdf" }
        mdr { "mdr" }
        men { "men" }
        mg  { "mg"  }
        mga { "mga" }
        mh  { "mh"  }
        mi  { "mi"  }
        mic { "mic" }
        min { "min" }
        mis { "mis" }
        mk  { "mk"  }
        mkh { "mkh" }
        ml  { "ml"  }
        mn  { "mn"  }
        mnc { "mnc" }
        mni { "mni" }
        mno { "mno" }
        mo  { "mo"  }
        moh { "moh" }
        mos { "mos" }
        mr  { "mr"  }
        ms  { "ms"  }
        mt  { "mt"  }
        mul { "mul" }
        mun { "mun" }
        mus { "mus" }
        mwr { "mwr" }
        my  { "my"  }
        myn { "myn" }
        myv { "myv" }
        na  { "na"  }
        nah { "nah" }
        nai { "nai" }
        nap { "nap" }
        nb  { "nb"  }
        nd  { "nd"  }
        nds { "nds" }
        ne  { "ne"  }
        new { "new" }
        ng  { "ng"  }
        nia { "nia" }
        nic { "nic" }
        niu { "niu" }
        nl  { "nl"  }
        nn  { "nn"  }
        no  { "no"  }
        nog { "nog" }
        non { "non" }
        nr  { "nr"  }
        nso { "nso" }
        nub { "nub" }
        nv  { "nv"  }
        ny  { "ny"  }
        nym { "nym" }
        nyn { "nyn" }
        nyo { "nyo" }
        nzi { "nzi" }
        oc  { "oc"  }
        oj  { "oj"  }
        om  { "om"  }
        or  { "or"  }
        os  { "os"  }
        osa { "osa" }
        ota { "ota" }
        oto { "oto" }
        pa  { "pa"  }
        paa { "paa" }
        pag { "pag" }
        pal { "pal" }
        pam { "pam" }
        pap { "pap" }
        pau { "pau" }
        peo { "peo" }
        phi { "phi" }
        phn { "phn" }
        pi  { "pi"  }
        pl  { "pl"  }
        pon { "pon" }
        pra { "pra" }
        pro { "pro" }
        ps  { "ps"  }
        pt  { "pt"  }
        // qaa-qtz is reserved for locale use
        qu  { "qu"  }
        raj { "raj" }
        rap { "rap" }
        rar { "rar" }
        rm  { "rm"  }
        rn  { "rn"  }
        ro  { "ro"  }
        roa { "roa" }
        rom { "rom" }
        ru  { "ru"  }
        rw  { "rw"  }
        sa  { "sa"  }
        sad { "sad" }
        sah { "sah" }
        sai { "sai" }
        sal { "sal" }
        sam { "sam" }
        sas { "sas" }
        sat { "sat" }
        sc  { "sc"  }
        sco { "sco" }
        sd  { "sd"  }
        se  { "se"  }
        sel { "sel" }
        sem { "sem" }
        sg  { "sg"  }
        sga { "sga" }
        sgn { "sgn" }
        sh  { "sh"  } // This is deprecated. This will be removed once we can use scripts in locale IDs.
        shn { "shn" }
        si  { "si"  }
        sid { "sid" }
        sio { "sio" }
        sit { "sit" }
        sk  { "sk"  }
        sl  { "sl"  }
        sla { "sla" }
        sm  { "sm"  }
        sma { "sma" }
        smi { "smi" }
        smj { "smj" }
        smn { "smn" }
        sms { "sms" }
        sn  { "sn"  }
        snk { "snk" }
        so  { "so"  }
        sog { "sog" }
        son { "son" }
        sq  { "sq"  }
        sr  { "sr"  }
        srr { "srr" }
        ss  { "ss"  }
        ssa { "ssa" }
        st  { "st"  }
        su  { "su"  }
        suk { "suk" }
        sus { "sus" }
        sux { "sux" }
        sv  { "sv"  }
        sw  { "sw"  }
        syr { "syr" }
        ta  { "ta"  }
        tai { "tai" }
        te  { "te"  }
        tem { "tem" }
        ter { "ter" }
        tet { "tet" }
        tg  { "tg"  }
        th  { "th"  }
        ti  { "ti"  }
        tig { "tig" }
        tiv { "tiv" }
        tk  { "tk"  }
        tkl { "tkl" }
        tl  { "tl"  }
        tli { "tli" }
        tmh { "tmh" }
        tn  { "tn"  }
        to  { "to"  }
        tog { "tog" }
        tpi { "tpi" }
        tr  { "tr"  }
        ts  { "ts"  }
        tsi { "tsi" }
        tt  { "tt"  }
        tum { "tum" }
        tup { "tup" }
        tut { "tut" }
        tvl { "tvl" }
        tw  { "tw"  }
        ty  { "ty"  }
        tyv { "tyv" }
        udm { "udm" }
        ug  { "ug"  }
        uga { "uga" }
        uk  { "uk"  }
        umb { "umb" }
        und { "und" }
        ur  { "ur"  }
        uz  { "uz"  }
        vai { "vai" }
        ve  { "ve"  }
        vi  { "vi"  }
        vo  { "vo"  }
        vot { "vot" }
        wa  { "wa"  }
        wak { "wak" }
        wal { "wal" }
        war { "war" }
        was { "was" }
        wen { "wen" }
        wo  { "wo"  }
        xal { "xal" }
        xh  { "xh"  }
        yao { "yao" }
        yap { "yap" }
        yi  { "yi"  }
        yo  { "yo"  }
        ypk { "ypk" }
        za  { "za"  }
        zap { "zap" }
        zen { "zen" }
        zh  { "zh"  }
        znd { "znd" }
        zu  { "zu"  }
        zun { "zun" }
    }

    localPatternChars { "GyMdkHmsSEDFwWahKzYe" }

    ExemplarCharacters{"[]"}
    LocaleScript:array {
        "Zyyy"
    }
    MonthAbbreviations {
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11",
        "12"
    }
    MonthNames {
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11",
        "12"
    }
    MeasurementSystem:int{ 0 } // ISO/Metric system
    // the PaperSize units are in mm
    PaperSize:intvector{
        297, // height
        210  // width
    }
    NumberElements {
        ".",
        ",",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ".",
        "+",
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "\u00A4 #,##0.00;-\u00A4 #,##0.00",
        "#,##0%",
        "#E0",
    }

    Scripts {
        Arab { "Arab" }
        Armn { "Armn" }
        Beng { "Beng" }
        Bopo { "Bopo" }
        Brai { "Brai" }
        Buhd { "Buhd" }
        Cans { "Cans" }
        Cher { "Cher" }
        Cprt { "Cprt" }
        Cyrl { "Cyrl" }
        Deva { "Deva" }
        Dsrt { "Dsrt" }
        Ethi { "Ethi" }
        Geor { "Geor" }
        Goth { "Goth" }
        Grek { "Grek" }
        Gujr { "Gujr" }
        Guru { "Guru" }
        Hang { "Hang" }
        Hano { "Hano" }
        Hani { "Hani" }
        Hans { "Hans" } // Not a formal part of ISO-15924 yet
        Hant { "Hant" } // Not a formal part of ISO-15924 yet
        Hebr { "Hebr" }
        Hira { "Hira" }
        Ital { "Ital" }
        Kana { "Kana" }
        Khmr { "Khmr" }
        Knda { "Knda" }
        Laoo { "Laoo" }
        Latn { "Latn" }
        Limb { "Limb" }
        Linb { "Linb" }
        Mlym { "Mlym" }
        Mong { "Mong" }
        Mymr { "Mymr" }
        Ogam { "Ogam" }
        Orya { "Orya" }
        Osma { "Osma" }
        Qaac { "Qaac" }
        Qaai { "Qaai" }
        Runr { "Runr" }
        Shaw { "Shaw" }
        Sinh { "Sinh" }
        Syrc { "Syrc" }
        Tagb { "Tagb" }
        Tale { "Tale" }
        Taml { "Taml" }
        Telu { "Telu" }
        Tglg { "Tglg" }
        Thaa { "Thaa" }
        Thai { "Thai" }
        Tibt { "Tibt" }
        Ugar { "Ugar" }
        Yiii { "Yiii" }
        Zyyy { "Zyyy" }
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

    /*
     * Default used to be English (US) rules, but now default just formats
     * like DecimalFormat.  The former default rules are now the _en rules.
     */
    SpelloutRules {
        "=#,##0.######=;\n"
    }

    OrdinalRules {
        "=#,##0=;\n"
    }

    DurationRules {
        "=#,##0=;\n"
    }


    //------------------------------------------------------------
    // BEGIN Transliterator support
    //------------------------------------------------------------

    // See also icu/source/data/translit/index.txt

    TransliteratorNamePattern {
        // Format for the display name of a Transliterator.
        // This is the language-neutral form of this resource.
        "{0,choice,0#|1#{1}|2#{1}-{2}}" // Display name
    }

    // Transliterator display names
    // This is the English form of this resource.
    "%Translit%Hex"         { "%Translit%Hex" }
    "%Translit%UnicodeName" { "%Translit%UnicodeName" }
    "%Translit%UnicodeChar" { "%Translit%UnicodeChar" }

    //------------------------------------------------------------
    // END Transliterator support
    //------------------------------------------------------------

    // International Calendars Data.
    // NOTE (ICU 2.6) - the format of this data WILL CHANGE in future releases.

    // The type of the default calendar - looked up in the registry
    DefaultCalendar {  "gregorian" }

   // Japanese calendar data
    Eras_japanese {
        // Name                         Gregorian Year
        "Taika",                        //  645
        "Hakuchi",                      //  650
        "Hakuh\u014D",                  //  672
        "Shuch\u014D",                  //  686
        "Taih\u014D",                   //  701
        "Keiun",                        //  704
        "Wad\u014D",                    //  708
        "Reiki",                        //  715
        "Y\u014Dr\u014D",               //  717
        "Jinki",                        //  724
        "Tempy\u014D",                  //  729
        "Tempy\u014D-kamp\u014D",       //  749
        "Tempy\u014D-sh\u014Dh\u014D",  //  749
        "Tempy\u014D-h\u014Dji",        //  757
        "Temph\u014D-jingo",            //  765
        "Jingo-keiun",                  //  767
        "H\u014Dki",                    //  770
        "Ten-\u014D",                   //  781
        "Enryaku",                      //  782
        "Daid\u014D",                   //  806
        "K\u014Dnin",                   //  810
        "Tench\u014D",                  //  824
        "Sh\u014Dwa",                   //  834
        "Kaj\u014D",                    //  848
        "Ninju",                        //  851
        "Saiko",                        //  854
        "Tennan",                       //  857
        "J\u014Dgan",                   //  859
        "Genkei",                       //  877
        "Ninna",                        //  885
        "Kampy\u014D",                  //  889
        "Sh\u014Dtai",                  //  898
        "Engi",                         //  901
        "Ench\u014D",                   //  923
        "Sh\u014Dhei",                  //  931
        "Tengy\u014D",                  //  938
        "Tenryaku",                     //  947
        "Tentoku",                      //  957
        "\u014Cwa",                     //  961
        "K\u014Dh\u014D",               //  964
        "Anna",                         //  968
        "Tenroku",                      //  970
        "Ten-en",                       //  973
        "J\u014Dgen",                   //  976
        "Tengen",                       //  978
        "Eikan",                        //  983
        "Kanna",                        //  985
        "Ei-en",                        //  987
        "Eiso",                         //  989
        "Sh\u014Dryaku",                //  990
        "Ch\u014Dtoku",                 //  995
        "Ch\u014Dh\u014D",              //  999
        "Kank\u014D",                   // 1004
        "Ch\u014Dwa",                   // 1012
        "Kannin",                       // 1017
        "Jian",                         // 1021
        "Manju",                        // 1024
        "Ch\u014Dgen",                  // 1028
        "Ch\u014Dryaku",                // 1037
        "Ch\u014Dky\u016B",             // 1040
        "Kantoku",                      // 1044
        "Eish\u014D",                   // 1046
        "Tengi",                        // 1053
        "K\u014Dhei",                   // 1058
        "Jiryaku",                      // 1065
        "Enky\u016B",                   // 1069
        "Sh\u014Dho",                   // 1074
        "Sh\u014Dryaku",                // 1077
        "Eiho",                         // 1081
        "\u014Ctoku",                   // 1084
        "Kanji",                        // 1087
        "Kaho",                         // 1094
        "Eich\u014D",                   // 1096
        "Sh\u014Dtoku",                 // 1097
        "K\u014Dwa",                    // 1099
        "Ch\u014Dji",                   // 1104
        "Kash\u014D",                   // 1106
        "Tennin",                       // 1108
        "Ten-ei",                       // 1110
        "Eiky\u016B",                   // 1113
        "Gen-ei",                       // 1118
        "Hoan",                         // 1120
        "Tenji",                        // 1124
        "Daiji",                        // 1126
        "Tensh\u014D",                  // 1131
        "Ch\u014Dsh\u014D",             // 1132
        "Hoen",                         // 1135
        "Eiji",                         // 1141
        "K\u014Dji",                    // 1142
        "Teny\u014D",                   // 1144
        "Ky\u016Ban",                   // 1145
        "Ninpei",                       // 1151
        "Ky\u016Bju",                   // 1154
        "Hogen",                        // 1156
        "Heiji",                        // 1159
        "Eiryaku",                      // 1160
        "\u014Cho",                     // 1161
        "Ch\u014Dkan",                  // 1163
        "Eiman",                        // 1165
        "Nin-an",                       // 1166
        "Ka\u014D",                     // 1169
        "Sh\u014Dan",                   // 1171
        "Angen",                        // 1175
        "Jish\u014D",                   // 1177
        "Y\u014Dwa",                    // 1181
        "Juei",                         // 1182
        "Genryuku",                     // 1184
        "Bunji",                        // 1185
        "Kenky\u016B",                  // 1190
        "Sh\u014Dji",                   // 1199
        "Kennin",                       // 1201
        "Genky\u016B",                  // 1204
        "Ken-ei",                       // 1206
        "Sh\u014Dgen",                  // 1207
        "Kenryaku",                     // 1211
        "Kenp\u014D",                   // 1213
        "Sh\u014Dky\u016B",             // 1219
        "J\u014D\u014D",                // 1222
        "Gennin",                       // 1224
        "Karoku",                       // 1225
        "Antei",                        // 1227
        "Kanki",                        // 1229
        "J\u014Dei",                    // 1232
        "Tempuku",                      // 1233
        "Bunryaku",                     // 1234
        "Katei",                        // 1235
        "Ryakunin",                     // 1238
        "En-\u014D",                    // 1239
        "Ninji",                        // 1240
        "Kangen",                       // 1243
        "H\u014Dji",                    // 1247
        "Kench\u014D",                  // 1249
        "K\u014Dgen",                   // 1256
        "Sh\u014Dka",                   // 1257
        "Sh\u014Dgen",                  // 1259
        "Bun-\u014D",                   // 1260
        "K\u014Dch\u014D",              // 1261
        "Bun-ei",                       // 1264
        "Kenji",                        // 1275
        "K\u014Dan",                    // 1278
        "Sh\u014D\u014D",               // 1288
        "Einin",                        // 1293
        "Sh\u014Dan",                   // 1299
        "Kengen",                       // 1302
        "Kagen",                        // 1303
        "Tokuji",                       // 1306
        "Enkei",                        // 1308
        "\u014Cch\u014D",               // 1311
        "Sh\u014Dwa",                   // 1312
        "Bunp\u014D",                   // 1317
        "Gen\u014D",                    // 1319
        "Genky\u014D",                  // 1321
        "Sh\u014Dch\u016B",             // 1324
        "Kareki",                       // 1326
        "Gentoku",                      // 1329
        "Genk\u014D",                   // 1331
        "Kemmu",                        // 1334
        "Engen",                        // 1336
        "K\u014Dkoku",                  // 1340
        "Sh\u014Dhei",                  // 1346
        "Kentoku",                      // 1370
        "Bunch\u0169",                  // 1372
        "Tenju",                        // 1375
        "K\u014Dwa",                    // 1381
        "Gench\u0169",                  // 1384
        "Meitoku",                      // 1384
        "K\u014Dryaku",                 // 1379
        "Kakei",                        // 1387
        "K\u014D\u014D",                // 1389
        "Meitoku",                      // 1390
        "\u014Cei",                     // 1394
        "Sh\u014Dch\u014D",             // 1428
        "Eiky\u014D",                   // 1429
        "Kakitsu",                      // 1441
        "Bun-an",                       // 1444
        "H\u014Dtoku",                  // 1449
        "Ky\u014Dtoku",                 // 1452
        "K\u014Dsh\u014D",              // 1455
        "Ch\u014Droku",                 // 1457
        "Kansh\u014D",                  // 1460
        "Bunsh\u014D",                  // 1466
        "\u014Cnin",                    // 1467
        "Bunmei",                       // 1469
        "Ch\u014Dky\u014D",             // 1487
        "Entoku",                       // 1489
        "Mei\u014D",                    // 1492
        "Bunki",                        // 1501
        "Eish\u014D",                   // 1504
        "Taiei",                        // 1521
        "Ky\u014Droku",                 // 1528
        "Tenmon",                       // 1532
        "K\u014Dji",                    // 1555
        "Eiroku",                       // 1558
        "Genki",                        // 1570
        "Tensh\u014D",                  // 1573
        "Bunroku",                      // 1592
        "Keich\u014D",                  // 1596
        "Genwa",                        // 1615
        "Kan-ei",                       // 1624
        "Sh\u014Dho",                   // 1644
        "Keian",                        // 1648
        "Sh\u014D\u014D",               // 1652
        "Meiryaku",                     // 1655
        "Manji",                        // 1658
        "Kanbun",                       // 1661
        "Enp\u014D",                    // 1673
        "Tenwa",                        // 1681
        "J\u014Dky\u014D",              // 1684
        "Genroku",                      // 1688
        "H\u014Dei",                    // 1704
        "Sh\u014Dtoku",                 // 1711
        "Ky\u014Dh\u014D",              // 1716
        "Genbun",                       // 1736
        "Kanp\u014D",                   // 1741
        "Enky\u014D",                   // 1744
        "Kan-en",                       // 1748
        "H\u014Dryaku",                 // 1751
        "Meiwa",                        // 1764
        "An-ei",                        // 1772
        "Tenmei",                       // 1781
        "Kansei",                       // 1789
        "Ky\u014Dwa",                   // 1801
        "Bunka",                        // 1804
        "Bunsei",                       // 1818
        "Tenp\u014D",                   // 1830
        "K\u014Dka",                    // 1844
        "Kaei",                         // 1848
        "Ansei",                        // 1854
        "Man-en",                       // 1860
        "Bunky\u016B",                  // 1861
        "Genji",                        // 1864
        "Kei\u014D",                    // 1865
        "Meiji",                        // 1868
        "Taish\u014D",                  // 1912
        "Sh\u014Dwa",                   // 1926
        "Heisei",                       // 1989
    }


    // Buddhist calendar data
    Eras_buddhist:array {
           "BE"                             // Buddhist Era  = 543 BC Gregorian
    }

    DateTimePatterns_japanese:array {
        "h:mm:ss a z", // full time pattern
        "h:mm:ss a z", // long time pattern
        "h:mm:ss a", // medium time pattern
        "h:mm a", // short time pattern
        "EEEE, MMMM d, y G", // full date pattern
        "MMMM d, y G", // long date pattern
        "MMM d, y G", // medium date pattern
        "M/d/yy", // short date pattern
        "{1} {0}" // date-time pattern
    }

    DateTimePatterns_buddhist { // shorten year, use Era
        "h:mm:ss a z",
        "h:mm:ss a z",
        "h:mm:ss a",
        "h:mm a",
        "EEEE, MMMM d, yyyy G",
        "MMMM d, yyyy G",
        "MMM d, yyyy G",
        "M/d/yyyy",
        "{1} {0}",
    }

    // Islamic calendar  - the Religious (Astronomical) variant first
    Eras_islamic:array {
        "AH" // Anno Hijri
    }

    MonthNames_islamic {
        "Muharram",
        "Safar",
        "Rabi' I",
        "Rabi' II",
        "Jumada I",
        "Jumada II",
        "Rajab",
        "Sha'ban",
        "Ramadan",
        "Shawwal",
        "Dhu'l-Qi'dah",
        "Dhu'l-Hijjah"
    }
    MonthAbbreviations_islamic:alias {  // same as MonthNames (no data)
        "root/MonthNames_islamic"
    }
    // Civil is identical other than in calculations
    Eras_islamic-civil:alias {
        "root/Eras_islamic"
    }
    MonthNames_islamic-civil:alias {
        "root/MonthNames_islamic"
    }
    MonthAbbreviations_islamic-civil:alias {
        "root/MonthAbbreviations_islamic"
    }
    
    MonthNames_hebrew {
       "Tishri",
       "Heshvan",
       "Kislev",
       "Tevet",
       "Shevat",
       "Adar I",       // Leap years only
       "Adar",
       "Nisan",
       "Iyar",
       "Sivan",
       "Tamuz",
       "Av",
       "Elul"
    }

    Eras_hebrew:array {
       "AM" // Anno Mundi
    }
    
    MonthAbbreviations_hebrew:alias {
       "root/MonthNames_hebrew" // no data
    }

    Keys{
        collation { "COLLATION" }
        calendar  { "CALENDAR" }
        currency  { "CURRENCY" }
    }
    Types{
        // keys for collation (traditional may also be used for traditional chinese)
        // The values in root must always be capitalized because the signify the values are
        // codes not translations
        collation{
            Fallback{ "" }
            direct      { "DIRECT"    }
            phonebook   { "PHONEBOOK" }
            pinyin      { "PINYIN"    }
            stroke      { "STROKE"    }
            traditional { "TRADITIONAL" }
        }
        calendar{
            Fallback{ "" }
            traditional { "TRADITIONAL" }
            japanese    { "JAPANESE"  }
            buddhist    { "BUDDHIST"  }
            islamic     { "ISLAMIC"   }
            islamic-civil { "ISLAMIC-CIVIL" }
            hebrew      { "HEBREW"    }
            chinese     { "CHINESE"   }
            gregorian   { "GREGORIAN" }
        }
    }
    Variants{
        Fallback{ "" }
        //NY      { "NY" }        // No longer valid variant. Here for backwards compatibility.
        //EURO    { "EURO" }      // EURO variant display name
        POSIX   { "POSIX" }
        REVISED { "REVISED" }
    }
    zoneStrings:array {
        {
            "",
            "",
            "",
            "",
            "",
            ""
        }
    }
}

