/*
 * Copyright 2012 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA

/**
 * Localized names for the "br" locale.
 */
public class LocalizedNamesImpl_br extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AF",
        "DE",
        "AL",
        "DZ",
        "AD",
        "AO",
        "AI",
        "AQ",
        "AG",
        "CI",
        "AU",
        "AT",
        "SA",
        "AR",
        "AM",
        "RE",
        "AW",
        "AZ",
        "BS",
        "BH",
        "BD",
        "BB",
        "BY",
        "BE",
        "BZ",
        "BJ",
        "BM",
        "BT",
        "BO",
        "BA",
        "BW",
        "BR",
        "BN",
        "BG",
        "BF",
        "BI",
        "EA",
        "CL",
        "CR",
        "CW",
        "DK",
        "DG",
        "DJ",
        "DM",
        "TF",
        "EC",
        "EG",
        "AE",
        "AC",
        "BV",
        "CX",
        "CP",
        "NF",
        "PN",
        "IM",
        "ER",
        "EE",
        "ET",
        "EZ",
        "FJ",
        "PH",
        "FI",
        "FR",
        "GA",
        "GM",
        "GH",
        "GN",
        "GQ",
        "GW",
        "GD",
        "GR",
        "GL",
        "GU",
        "GT",
        "GY",
        "GP",
        "GG",
        "GF",
        "HT",
        "HN",
        "HK",
        "HU",
        "IN",
        "ID",
        "AX",
        "KY",
        "CK",
        "UM",
        "FO",
        "FK",
        "GS",
        "VI",
        "VG",
        "HM",
        "IC",
        "CC",
        "MP",
        "MH",
        "SB",
        "TC",
        "IR",
        "IQ",
        "IS",
        "IL",
        "IT",
        "IE",
        "NL",
        "JM",
        "JP",
        "JE",
        "GI",
        "JO",
        "GE",
        "CV",
        "NC",
        "KH",
        "CM",
        "CA",
        "BQ",
        "KZ",
        "KE",
        "CY",
        "KI",
        "CO",
        "KM",
        "CG",
        "CD",
        "KP",
        "KR",
        "XK",
        "KW",
        "HR",
        "CU",
        "KG",
        "LA",
        "LV",
        "LS",
        "LB",
        "LR",
        "LY",
        "LI",
        "LT",
        "LU",
        "MO",
        "MG",
        "MK",
        "MW",
        "MY",
        "MV",
        "ML",
        "MT",
        "MR",
        "MA",
        "MQ",
        "YT",
        "MX",
        "FM",
        "MD",
        "MC",
        "MN",
        "ME",
        "MS",
        "MU",
        "MZ",
        "MM",
        "NA",
        "NR",
        "NP",
        "NI",
        "NE",
        "NG",
        "NU",
        "NO",
        "OM",
        "QO",
        "UG",
        "UZ",
        "PK",
        "PW",
        "PA",
        "PG",
        "PY",
        "PE",
        "PF",
        "PL",
        "PT",
        "PR",
        "QA",
        "DO",
        "CF",
        "CZ",
        "GB",
        "RO",
        "RU",
        "RW",
        "EH",
        "BL",
        "SH",
        "KN",
        "LC",
        "MF",
        "SV",
        "WS",
        "AS",
        "SM",
        "PM",
        "VC",
        "ST",
        "SC",
        "SN",
        "RS",
        "SL",
        "CN",
        "SG",
        "SX",
        "SY",
        "SK",
        "SI",
        "SO",
        "SD",
        "ES",
        "LK",
        "US",
        "ZA",
        "CH",
        "SR",
        "SS",
        "SJ",
        "SE",
        "SZ",
        "TJ",
        "TW",
        "TZ",
        "TD",
        "TH",
        "TL",
        "IO",
        "PS",
        "TG",
        "TK",
        "TO",
        "TT",
        "TA",
        "TN",
        "TR",
        "TM",
        "TV",
        "UA",
        "UN",
        "EU",
        "UY",
        "VU",
        "VA",
        "VE",
        "VN",
        "WF",
        "YE",
        "ZM",
        "NZ",
        "ZW",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Bed");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Norzhamerika");
    namesMap.put("005", "Suamerika");
    namesMap.put("009", "Oseania");
    namesMap.put("011", "Afrika ar Cʼhornôg");
    namesMap.put("013", "Kreizamerika");
    namesMap.put("014", "Afrika ar Reter");
    namesMap.put("015", "Afrika an Norzh");
    namesMap.put("017", "Afrika ar Cʼhreiz");
    namesMap.put("018", "Afrika ar Su");
    namesMap.put("019", "Amerikaoù");
    namesMap.put("021", "Amerika an Norzh");
    namesMap.put("029", "Karib");
    namesMap.put("030", "Azia ar Reter");
    namesMap.put("034", "Azia ar Su");
    namesMap.put("035", "Azia ar Gevred");
    namesMap.put("039", "Europa ar Su");
    namesMap.put("053", "Aostralazia");
    namesMap.put("054", "Melanezia");
    namesMap.put("057", "Rannved Mikronezia");
    namesMap.put("061", "Polinezia");
    namesMap.put("142", "Azia");
    namesMap.put("143", "Azia ar Cʼhreiz");
    namesMap.put("145", "Azia ar Cʼhornôg");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Europa ar Reter");
    namesMap.put("154", "Europa an Norzh");
    namesMap.put("155", "Europa ar Cʼhornôg");
    namesMap.put("419", "Amerika Latin");
    namesMap.put("AC", "Enez Ascension");
    namesMap.put("AE", "Emirelezhioù Arab Unanet");
    namesMap.put("AG", "Antigua ha Barbuda");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AR", "Arcʼhantina");
    namesMap.put("AS", "Samoa Amerikan");
    namesMap.put("AT", "Aostria");
    namesMap.put("AU", "Aostralia");
    namesMap.put("AX", "Inizi Åland");
    namesMap.put("AZ", "Azerbaidjan");
    namesMap.put("BA", "Bosnia ha Herzegovina");
    namesMap.put("BE", "Belgia");
    namesMap.put("BH", "Bahrein");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BQ", "Karib Nederlandat");
    namesMap.put("BT", "Bhoutan");
    namesMap.put("BV", "Enez Bouvet");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Inizi Kokoz");
    namesMap.put("CD", "Kongo - Kinshasa");
    namesMap.put("CF", "Republik Kreizafrikan");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Suis");
    namesMap.put("CI", "Aod an Olifant");
    namesMap.put("CK", "Inizi Cook");
    namesMap.put("CM", "Kameroun");
    namesMap.put("CN", "Sina");
    namesMap.put("CO", "Kolombia");
    namesMap.put("CP", "Enez Clipperton");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kab-Glas");
    namesMap.put("CX", "Enez Christmas");
    namesMap.put("CY", "Kiprenez");
    namesMap.put("CZ", "Republik Tchek");
    namesMap.put("DE", "Alamagn");
    namesMap.put("DK", "Danmark");
    namesMap.put("DO", "Republik Dominikan");
    namesMap.put("DZ", "Aljeria");
    namesMap.put("EA", "Ceuta ha Melilla");
    namesMap.put("EG", "Egipt");
    namesMap.put("EH", "Sahara ar Cʼhornôg");
    namesMap.put("ES", "Spagn");
    namesMap.put("ET", "Etiopia");
    namesMap.put("EU", "Unaniezh Europa");
    namesMap.put("FJ", "Fidji");
    namesMap.put("FK", "Inizi Falkland");
    namesMap.put("FM", "Mikronezia");
    namesMap.put("FO", "Inizi Faero");
    namesMap.put("FR", "Frañs");
    namesMap.put("GB", "Rouantelezh-Unanet");
    namesMap.put("GE", "Jorjia");
    namesMap.put("GF", "Gwiana cʼhall");
    namesMap.put("GG", "Gwernenez");
    namesMap.put("GI", "Jibraltar");
    namesMap.put("GL", "Greunland");
    namesMap.put("GN", "Ginea");
    namesMap.put("GP", "Gwadeloup");
    namesMap.put("GQ", "Ginea ar Cʼheheder");
    namesMap.put("GR", "Gres");
    namesMap.put("GS", "Inizi Georgia ar Su hag Inizi Sandwich ar Su");
    namesMap.put("GW", "Ginea-Bissau");
    namesMap.put("HK", "Hong Kong RMD Sina");
    namesMap.put("HM", "Inizi Heard ha McDonald");
    namesMap.put("HR", "Kroatia");
    namesMap.put("HU", "Hungaria");
    namesMap.put("IC", "Inizi Kanariez");
    namesMap.put("ID", "Indonezia");
    namesMap.put("IE", "Iwerzhon");
    namesMap.put("IM", "Enez Vanav");
    namesMap.put("IO", "Tiriad breizhveurat Meurvor Indez");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Italia");
    namesMap.put("JE", "Jerzenez");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordania");
    namesMap.put("KH", "Kambodja");
    namesMap.put("KM", "Komorez");
    namesMap.put("KN", "Saint Kitts ha Nevis");
    namesMap.put("KP", "Korea an Norzh");
    namesMap.put("KR", "Korea ar Su");
    namesMap.put("KW", "Koweit");
    namesMap.put("KY", "Inizi Cayman");
    namesMap.put("KZ", "Kazakstan");
    namesMap.put("LB", "Liban");
    namesMap.put("LC", "Saint Lucia");
    namesMap.put("LT", "Lituania");
    namesMap.put("LU", "Luksembourg");
    namesMap.put("LY", "Libia");
    namesMap.put("MA", "Maroko");
    namesMap.put("MF", "Saint Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Inizi Marshall");
    namesMap.put("MK", "Makedonia");
    namesMap.put("MM", "Myanmar (Birmania)");
    namesMap.put("MO", "Macau RMD Sina");
    namesMap.put("MP", "Inizi Mariana an Norzh");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Maouritania");
    namesMap.put("MU", "Moris");
    namesMap.put("MV", "Maldivez");
    namesMap.put("MX", "Mecʼhiko");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NC", "Kaledonia Nevez");
    namesMap.put("NF", "Enez Norfolk");
    namesMap.put("NL", "Izelvroioù");
    namesMap.put("NO", "Norvegia");
    namesMap.put("NZ", "Zeland-Nevez");
    namesMap.put("PA", "Panamá");
    namesMap.put("PE", "Perou");
    namesMap.put("PF", "Polinezia Cʼhall");
    namesMap.put("PG", "Papoua Ginea-Nevez");
    namesMap.put("PH", "Filipinez");
    namesMap.put("PL", "Polonia");
    namesMap.put("PM", "Sant-Pêr-ha-Mikelon");
    namesMap.put("PN", "Enez Pitcairn");
    namesMap.put("PS", "Tiriadoù Palestina");
    namesMap.put("QO", "Oseania diabell");
    namesMap.put("RE", "Ar Reünion");
    namesMap.put("RO", "Roumania");
    namesMap.put("RU", "Rusia");
    namesMap.put("SA", "Arabia Saoudat");
    namesMap.put("SB", "Inizi Salomon");
    namesMap.put("SC", "Sechelez");
    namesMap.put("SD", "Soudan");
    namesMap.put("SE", "Sveden");
    namesMap.put("SG", "Singapour");
    namesMap.put("SH", "Saint-Helena");
    namesMap.put("SJ", "Svalbard");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Susoudan");
    namesMap.put("ST", "São Tomé ha Príncipe");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Siria");
    namesMap.put("TC", "Inizi Turks ha Caicos");
    namesMap.put("TD", "Tchad");
    namesMap.put("TF", "Douaroù aostral Frañs");
    namesMap.put("TJ", "Tadjikistan");
    namesMap.put("TN", "Tunizia");
    namesMap.put("TR", "Turkia");
    namesMap.put("TT", "Trinidad ha Tobago");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UG", "Ouganda");
    namesMap.put("UM", "Inizi diabell ar Stadoù-Unanet");
    namesMap.put("US", "Stadoù-Unanet");
    namesMap.put("UZ", "Ouzbekistan");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Sant Visant hag ar Grenadinez");
    namesMap.put("VG", "Inizi Gwercʼh Breizh-Veur");
    namesMap.put("VI", "Inizi Gwercʼh ar Stadoù-Unanet");
    namesMap.put("VN", "Viêt Nam");
    namesMap.put("WF", "Wallis ha Futuna");
    namesMap.put("ZA", "Suafrika");
    namesMap.put("ZZ", "Rannved dianav");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Bed",
        "002": "Afrika",
        "003": "Norzhamerika",
        "005": "Suamerika",
        "009": "Oseania",
        "011": "Afrika ar Cʼhornôg",
        "013": "Kreizamerika",
        "014": "Afrika ar Reter",
        "015": "Afrika an Norzh",
        "017": "Afrika ar Cʼhreiz",
        "018": "Afrika ar Su",
        "019": "Amerikaoù",
        "021": "Amerika an Norzh",
        "029": "Karib",
        "030": "Azia ar Reter",
        "034": "Azia ar Su",
        "035": "Azia ar Gevred",
        "039": "Europa ar Su",
        "053": "Aostralazia",
        "054": "Melanezia",
        "057": "Rannved Mikronezia",
        "061": "Polinezia",
        "142": "Azia",
        "143": "Azia ar Cʼhreiz",
        "145": "Azia ar Cʼhornôg",
        "150": "Europa",
        "151": "Europa ar Reter",
        "154": "Europa an Norzh",
        "155": "Europa ar Cʼhornôg",
        "419": "Amerika Latin",
        "AC": "Enez Ascension",
        "AE": "Emirelezhioù Arab Unanet",
        "AG": "Antigua ha Barbuda",
        "AQ": "Antarktika",
        "AR": "Arcʼhantina",
        "AS": "Samoa Amerikan",
        "AT": "Aostria",
        "AU": "Aostralia",
        "AX": "Inizi Åland",
        "AZ": "Azerbaidjan",
        "BA": "Bosnia ha Herzegovina",
        "BE": "Belgia",
        "BH": "Bahrein",
        "BL": "Saint Barthélemy",
        "BQ": "Karib Nederlandat",
        "BT": "Bhoutan",
        "BV": "Enez Bouvet",
        "CA": "Kanada",
        "CC": "Inizi Kokoz",
        "CD": "Kongo - Kinshasa",
        "CF": "Republik Kreizafrikan",
        "CG": "Kongo - Brazzaville",
        "CH": "Suis",
        "CI": "Aod an Olifant",
        "CK": "Inizi Cook",
        "CM": "Kameroun",
        "CN": "Sina",
        "CO": "Kolombia",
        "CP": "Enez Clipperton",
        "CU": "Kuba",
        "CV": "Kab-Glas",
        "CX": "Enez Christmas",
        "CY": "Kiprenez",
        "CZ": "Republik Tchek",
        "DE": "Alamagn",
        "DK": "Danmark",
        "DO": "Republik Dominikan",
        "DZ": "Aljeria",
        "EA": "Ceuta ha Melilla",
        "EG": "Egipt",
        "EH": "Sahara ar Cʼhornôg",
        "ES": "Spagn",
        "ET": "Etiopia",
        "EU": "Unaniezh Europa",
        "FJ": "Fidji",
        "FK": "Inizi Falkland",
        "FM": "Mikronezia",
        "FO": "Inizi Faero",
        "FR": "Frañs",
        "GB": "Rouantelezh-Unanet",
        "GE": "Jorjia",
        "GF": "Gwiana cʼhall",
        "GG": "Gwernenez",
        "GI": "Jibraltar",
        "GL": "Greunland",
        "GN": "Ginea",
        "GP": "Gwadeloup",
        "GQ": "Ginea ar Cʼheheder",
        "GR": "Gres",
        "GS": "Inizi Georgia ar Su hag Inizi Sandwich ar Su",
        "GW": "Ginea-Bissau",
        "HK": "Hong Kong RMD Sina",
        "HM": "Inizi Heard ha McDonald",
        "HR": "Kroatia",
        "HU": "Hungaria",
        "IC": "Inizi Kanariez",
        "ID": "Indonezia",
        "IE": "Iwerzhon",
        "IM": "Enez Vanav",
        "IO": "Tiriad breizhveurat Meurvor Indez",
        "IS": "Island",
        "IT": "Italia",
        "JE": "Jerzenez",
        "JM": "Jamaika",
        "JO": "Jordania",
        "KH": "Kambodja",
        "KM": "Komorez",
        "KN": "Saint Kitts ha Nevis",
        "KP": "Korea an Norzh",
        "KR": "Korea ar Su",
        "KW": "Koweit",
        "KY": "Inizi Cayman",
        "KZ": "Kazakstan",
        "LB": "Liban",
        "LC": "Saint Lucia",
        "LT": "Lituania",
        "LU": "Luksembourg",
        "LY": "Libia",
        "MA": "Maroko",
        "MF": "Saint Martin",
        "MG": "Madagaskar",
        "MH": "Inizi Marshall",
        "MK": "Makedonia",
        "MM": "Myanmar (Birmania)",
        "MO": "Macau RMD Sina",
        "MP": "Inizi Mariana an Norzh",
        "MQ": "Martinik",
        "MR": "Maouritania",
        "MU": "Moris",
        "MV": "Maldivez",
        "MX": "Mecʼhiko",
        "MZ": "Mozambik",
        "NC": "Kaledonia Nevez",
        "NF": "Enez Norfolk",
        "NL": "Izelvroioù",
        "NO": "Norvegia",
        "NZ": "Zeland-Nevez",
        "PA": "Panamá",
        "PE": "Perou",
        "PF": "Polinezia Cʼhall",
        "PG": "Papoua Ginea-Nevez",
        "PH": "Filipinez",
        "PL": "Polonia",
        "PM": "Sant-Pêr-ha-Mikelon",
        "PN": "Enez Pitcairn",
        "PS": "Tiriadoù Palestina",
        "QO": "Oseania diabell",
        "RE": "Ar Reünion",
        "RO": "Roumania",
        "RU": "Rusia",
        "SA": "Arabia Saoudat",
        "SB": "Inizi Salomon",
        "SC": "Sechelez",
        "SD": "Soudan",
        "SE": "Sveden",
        "SG": "Singapour",
        "SH": "Saint-Helena",
        "SJ": "Svalbard",
        "SR": "Surinam",
        "SS": "Susoudan",
        "ST": "São Tomé ha Príncipe",
        "SV": "Salvador",
        "SY": "Siria",
        "TC": "Inizi Turks ha Caicos",
        "TD": "Tchad",
        "TF": "Douaroù aostral Frañs",
        "TJ": "Tadjikistan",
        "TN": "Tunizia",
        "TR": "Turkia",
        "TT": "Trinidad ha Tobago",
        "UA": "Ukraina",
        "UG": "Ouganda",
        "UM": "Inizi diabell ar Stadoù-Unanet",
        "US": "Stadoù-Unanet",
        "UZ": "Ouzbekistan",
        "VA": "Vatikan",
        "VC": "Sant Visant hag ar Grenadinez",
        "VG": "Inizi Gwercʼh Breizh-Veur",
        "VI": "Inizi Gwercʼh ar Stadoù-Unanet",
        "VN": "Viêt Nam",
        "WF": "Wallis ha Futuna",
        "ZA": "Suafrika",
        "ZZ": "Rannved dianav"
    };
  }-*/;
}
