/*
 * 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 "hsb" locale.
 */
public class LocalizedNamesImpl_hsb extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "swět");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Sewjerna Amerika");
    namesMap.put("005", "Južna Amerika");
    namesMap.put("009", "Oceaniska");
    namesMap.put("011", "zapadna Afrika");
    namesMap.put("013", "Srjedźna Amerika");
    namesMap.put("014", "wuchodna Afrika");
    namesMap.put("015", "sewjerna Afrika");
    namesMap.put("017", "srjedźna Afrika");
    namesMap.put("018", "južna Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "sewjerny ameriski kontinent");
    namesMap.put("029", "Karibika");
    namesMap.put("030", "wuchodna Azija");
    namesMap.put("034", "južna Azija");
    namesMap.put("035", "juhowuchodna Azija");
    namesMap.put("039", "južna Europa");
    namesMap.put("053", "Awstralazija");
    namesMap.put("054", "Melaneziska");
    namesMap.put("057", "Mikroneziska (kupowy region)");
    namesMap.put("061", "Polyneziska");
    namesMap.put("142", "Azija");
    namesMap.put("143", "centralna Azija");
    namesMap.put("145", "zapadna Azija");
    namesMap.put("150", "Europa");
    namesMap.put("151", "wuchodna Europa");
    namesMap.put("154", "sewjerna Europa");
    namesMap.put("155", "zapadna Europa");
    namesMap.put("419", "Łaćonska Amerika");
    namesMap.put("AC", "Ascension");
    namesMap.put("AE", "Zjednoćene arabske emiraty");
    namesMap.put("AG", "Antigua a Barbuda");
    namesMap.put("AL", "Albanska");
    namesMap.put("AM", "Armenska");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AR", "Argentinska");
    namesMap.put("AS", "Ameriska Samoa");
    namesMap.put("AT", "Awstriska");
    namesMap.put("AU", "Awstralska");
    namesMap.put("AX", "Åland");
    namesMap.put("AZ", "Azerbajdźan");
    namesMap.put("BA", "Bosniska a Hercegowina");
    namesMap.put("BD", "Bangladeš");
    namesMap.put("BE", "Belgiska");
    namesMap.put("BG", "Bołharska");
    namesMap.put("BM", "Bermudy");
    namesMap.put("BO", "Boliwiska");
    namesMap.put("BQ", "Karibiska Nižozemska");
    namesMap.put("BR", "Brazilska");
    namesMap.put("BS", "Bahamy");
    namesMap.put("BV", "Bouvetowa kupa");
    namesMap.put("BY", "Běłoruska");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosowe kupy");
    namesMap.put("CD", "Kongo-Kinshasa");
    namesMap.put("CF", "Centralnoafriska republika");
    namesMap.put("CG", "Kongo-Brazzaville");
    namesMap.put("CH", "Šwicarska");
    namesMap.put("CK", "Cookowe kupy");
    namesMap.put("CL", "Chilska");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CO", "Kolumbiska");
    namesMap.put("CP", "Clippertonowa kupa");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kap Verde");
    namesMap.put("CX", "Hodowna kupa");
    namesMap.put("CY", "Cypern");
    namesMap.put("CZ", "Čěska republika");
    namesMap.put("DE", "Němska");
    namesMap.put("DJ", "Dźibuti");
    namesMap.put("DK", "Danska");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikanska republika");
    namesMap.put("DZ", "Algeriska");
    namesMap.put("EA", "Ceuta a Melilla");
    namesMap.put("EC", "Ekwador");
    namesMap.put("EE", "Estiska");
    namesMap.put("EG", "Egyptowska");
    namesMap.put("EH", "Zapadna Sahara");
    namesMap.put("ER", "Eritreja");
    namesMap.put("ES", "Španiska");
    namesMap.put("ET", "Etiopiska");
    namesMap.put("EU", "Europska unija");
    namesMap.put("FI", "Finska");
    namesMap.put("FJ", "Fidźi");
    namesMap.put("FK", "Falklandske kupy");
    namesMap.put("FM", "Mikroneziska");
    namesMap.put("FO", "Färöske kupy");
    namesMap.put("FR", "Francoska");
    namesMap.put("GA", "Gabun");
    namesMap.put("GB", "Zjednoćene kralestwo");
    namesMap.put("GE", "Georgiska");
    namesMap.put("GF", "Francoska Guyana");
    namesMap.put("GL", "Grönlandska");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gineja");
    namesMap.put("GQ", "Ekwatorialna Gineja");
    namesMap.put("GR", "Grjekska");
    namesMap.put("GS", "Južna Georgiska a Južne Sandwichowe kupy");
    namesMap.put("GW", "Gineja-Bissau");
    namesMap.put("HK", "Wosebita zarjadniska cona Hongkong");
    namesMap.put("HM", "Heardowa kupa a McDonaldowe kupy");
    namesMap.put("HR", "Chorwatska");
    namesMap.put("HU", "Madźarska");
    namesMap.put("IC", "Kanariske kupy");
    namesMap.put("ID", "Indoneska");
    namesMap.put("IE", "Irska");
    namesMap.put("IM", "Man");
    namesMap.put("IN", "Indiska");
    namesMap.put("IO", "Britiski teritorij w Indiskim oceanje");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islandska");
    namesMap.put("IT", "Italska");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordaniska");
    namesMap.put("JP", "Japanska");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgizistan");
    namesMap.put("KH", "Kambodźa");
    namesMap.put("KM", "Komory");
    namesMap.put("KN", "St. Kitts a Nevis");
    namesMap.put("KP", "Sewjerna Koreja");
    namesMap.put("KR", "Južna Koreja");
    namesMap.put("KY", "Kajmanske kupy");
    namesMap.put("KZ", "Kazachstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LR", "Liberija");
    namesMap.put("LT", "Litawska");
    namesMap.put("LU", "Luxemburgska");
    namesMap.put("LV", "Letiska");
    namesMap.put("LY", "Libyska");
    namesMap.put("MA", "Marokko");
    namesMap.put("MD", "Moldawska");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallowe kupy");
    namesMap.put("MK", "Makedonska");
    namesMap.put("MM", "Myanmar");
    namesMap.put("MN", "Mongolska");
    namesMap.put("MO", "Wosebita zarjadniska cona Macao");
    namesMap.put("MP", "Sewjerne Mariany");
    namesMap.put("MR", "Mawretanska");
    namesMap.put("MV", "Malediwy");
    namesMap.put("MX", "Mexiko");
    namesMap.put("MY", "Malajzija");
    namesMap.put("MZ", "Mosambik");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Nowa Kaledoniska");
    namesMap.put("NF", "Norfolkowa kupa");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragua");
    namesMap.put("NL", "Nižozemska");
    namesMap.put("NO", "Norwegska");
    namesMap.put("NZ", "Nowoseelandska");
    namesMap.put("PF", "Francoska Polyneziska");
    namesMap.put("PG", "Papuwa-Nowa Gineja");
    namesMap.put("PH", "Filipiny");
    namesMap.put("PL", "Pólska");
    namesMap.put("PM", "St. Pierre a Miquelon");
    namesMap.put("PN", "Pitcairnowe kupy");
    namesMap.put("PS", "Palestinski awtonomny teritorij");
    namesMap.put("PT", "Portugalska");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Wonkowna Oceaniska");
    namesMap.put("RO", "Rumunska");
    namesMap.put("RS", "Serbiska");
    namesMap.put("RU", "Ruska");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Sawdi-Arabska");
    namesMap.put("SB", "Salomony");
    namesMap.put("SC", "Seychelle");
    namesMap.put("SE", "Šwedska");
    namesMap.put("SG", "Singapur");
    namesMap.put("SI", "Słowjenska");
    namesMap.put("SJ", "Svalbard a Jan Mayen");
    namesMap.put("SK", "Słowakska");
    namesMap.put("SO", "Somalija");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Južny Sudan");
    namesMap.put("ST", "São Tomé a Príncipe");
    namesMap.put("SY", "Syriska");
    namesMap.put("SZ", "Swaziska");
    namesMap.put("TC", "kupy Turks a Caicos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francoski južny a antarktiski teritorij");
    namesMap.put("TH", "Thailandska");
    namesMap.put("TJ", "Tadźikistan");
    namesMap.put("TM", "Turkmeniska");
    namesMap.put("TN", "Tuneziska");
    namesMap.put("TR", "Turkowska");
    namesMap.put("TT", "Trinidad a Tobago");
    namesMap.put("TZ", "Tansanija");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UM", "Ameriska Oceaniska");
    namesMap.put("US", "Zjednoćene staty Ameriki");
    namesMap.put("VA", "Vatikanske město");
    namesMap.put("VC", "St. Vincent a Grenadiny");
    namesMap.put("VG", "Britiske knježniske kupy");
    namesMap.put("VI", "Ameriske knježniske kupy");
    namesMap.put("WF", "Wallis a Futuna");
    namesMap.put("XK", "Kosowo");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Južna Afrika (Republika)");
    namesMap.put("ZM", "Sambija");
    namesMap.put("ZW", "Simbabwe");
    namesMap.put("ZZ", "njeznaty region");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "swět",
        "002": "Afrika",
        "003": "Sewjerna Amerika",
        "005": "Južna Amerika",
        "009": "Oceaniska",
        "011": "zapadna Afrika",
        "013": "Srjedźna Amerika",
        "014": "wuchodna Afrika",
        "015": "sewjerna Afrika",
        "017": "srjedźna Afrika",
        "018": "južna Afrika",
        "019": "Amerika",
        "021": "sewjerny ameriski kontinent",
        "029": "Karibika",
        "030": "wuchodna Azija",
        "034": "južna Azija",
        "035": "juhowuchodna Azija",
        "039": "južna Europa",
        "053": "Awstralazija",
        "054": "Melaneziska",
        "057": "Mikroneziska (kupowy region)",
        "061": "Polyneziska",
        "142": "Azija",
        "143": "centralna Azija",
        "145": "zapadna Azija",
        "150": "Europa",
        "151": "wuchodna Europa",
        "154": "sewjerna Europa",
        "155": "zapadna Europa",
        "419": "Łaćonska Amerika",
        "AC": "Ascension",
        "AE": "Zjednoćene arabske emiraty",
        "AG": "Antigua a Barbuda",
        "AL": "Albanska",
        "AM": "Armenska",
        "AQ": "Antarktika",
        "AR": "Argentinska",
        "AS": "Ameriska Samoa",
        "AT": "Awstriska",
        "AU": "Awstralska",
        "AX": "Åland",
        "AZ": "Azerbajdźan",
        "BA": "Bosniska a Hercegowina",
        "BD": "Bangladeš",
        "BE": "Belgiska",
        "BG": "Bołharska",
        "BM": "Bermudy",
        "BO": "Boliwiska",
        "BQ": "Karibiska Nižozemska",
        "BR": "Brazilska",
        "BS": "Bahamy",
        "BV": "Bouvetowa kupa",
        "BY": "Běłoruska",
        "CA": "Kanada",
        "CC": "Kokosowe kupy",
        "CD": "Kongo-Kinshasa",
        "CF": "Centralnoafriska republika",
        "CG": "Kongo-Brazzaville",
        "CH": "Šwicarska",
        "CK": "Cookowe kupy",
        "CL": "Chilska",
        "CM": "Kamerun",
        "CO": "Kolumbiska",
        "CP": "Clippertonowa kupa",
        "CR": "Kosta Rika",
        "CU": "Kuba",
        "CV": "Kap Verde",
        "CX": "Hodowna kupa",
        "CY": "Cypern",
        "CZ": "Čěska republika",
        "DE": "Němska",
        "DJ": "Dźibuti",
        "DK": "Danska",
        "DM": "Dominika",
        "DO": "Dominikanska republika",
        "DZ": "Algeriska",
        "EA": "Ceuta a Melilla",
        "EC": "Ekwador",
        "EE": "Estiska",
        "EG": "Egyptowska",
        "EH": "Zapadna Sahara",
        "ER": "Eritreja",
        "ES": "Španiska",
        "ET": "Etiopiska",
        "EU": "Europska unija",
        "FI": "Finska",
        "FJ": "Fidźi",
        "FK": "Falklandske kupy",
        "FM": "Mikroneziska",
        "FO": "Färöske kupy",
        "FR": "Francoska",
        "GA": "Gabun",
        "GB": "Zjednoćene kralestwo",
        "GE": "Georgiska",
        "GF": "Francoska Guyana",
        "GL": "Grönlandska",
        "GM": "Gambija",
        "GN": "Gineja",
        "GQ": "Ekwatorialna Gineja",
        "GR": "Grjekska",
        "GS": "Južna Georgiska a Južne Sandwichowe kupy",
        "GW": "Gineja-Bissau",
        "HK": "Wosebita zarjadniska cona Hongkong",
        "HM": "Heardowa kupa a McDonaldowe kupy",
        "HR": "Chorwatska",
        "HU": "Madźarska",
        "IC": "Kanariske kupy",
        "ID": "Indoneska",
        "IE": "Irska",
        "IM": "Man",
        "IN": "Indiska",
        "IO": "Britiski teritorij w Indiskim oceanje",
        "IQ": "Irak",
        "IS": "Islandska",
        "IT": "Italska",
        "JM": "Jamaika",
        "JO": "Jordaniska",
        "JP": "Japanska",
        "KE": "Kenija",
        "KG": "Kirgizistan",
        "KH": "Kambodźa",
        "KM": "Komory",
        "KN": "St. Kitts a Nevis",
        "KP": "Sewjerna Koreja",
        "KR": "Južna Koreja",
        "KY": "Kajmanske kupy",
        "KZ": "Kazachstan",
        "LB": "Libanon",
        "LR": "Liberija",
        "LT": "Litawska",
        "LU": "Luxemburgska",
        "LV": "Letiska",
        "LY": "Libyska",
        "MA": "Marokko",
        "MD": "Moldawska",
        "MG": "Madagaskar",
        "MH": "Marshallowe kupy",
        "MK": "Makedonska",
        "MM": "Myanmar",
        "MN": "Mongolska",
        "MO": "Wosebita zarjadniska cona Macao",
        "MP": "Sewjerne Mariany",
        "MR": "Mawretanska",
        "MV": "Malediwy",
        "MX": "Mexiko",
        "MY": "Malajzija",
        "MZ": "Mosambik",
        "NA": "Namibija",
        "NC": "Nowa Kaledoniska",
        "NF": "Norfolkowa kupa",
        "NG": "Nigerija",
        "NI": "Nikaragua",
        "NL": "Nižozemska",
        "NO": "Norwegska",
        "NZ": "Nowoseelandska",
        "PF": "Francoska Polyneziska",
        "PG": "Papuwa-Nowa Gineja",
        "PH": "Filipiny",
        "PL": "Pólska",
        "PM": "St. Pierre a Miquelon",
        "PN": "Pitcairnowe kupy",
        "PS": "Palestinski awtonomny teritorij",
        "PT": "Portugalska",
        "QA": "Katar",
        "QO": "Wonkowna Oceaniska",
        "RO": "Rumunska",
        "RS": "Serbiska",
        "RU": "Ruska",
        "RW": "Ruanda",
        "SA": "Sawdi-Arabska",
        "SB": "Salomony",
        "SC": "Seychelle",
        "SE": "Šwedska",
        "SG": "Singapur",
        "SI": "Słowjenska",
        "SJ": "Svalbard a Jan Mayen",
        "SK": "Słowakska",
        "SO": "Somalija",
        "SR": "Surinam",
        "SS": "Južny Sudan",
        "ST": "São Tomé a Príncipe",
        "SY": "Syriska",
        "SZ": "Swaziska",
        "TC": "kupy Turks a Caicos",
        "TD": "Čad",
        "TF": "Francoski južny a antarktiski teritorij",
        "TH": "Thailandska",
        "TJ": "Tadźikistan",
        "TM": "Turkmeniska",
        "TN": "Tuneziska",
        "TR": "Turkowska",
        "TT": "Trinidad a Tobago",
        "TZ": "Tansanija",
        "UA": "Ukraina",
        "UM": "Ameriska Oceaniska",
        "US": "Zjednoćene staty Ameriki",
        "VA": "Vatikanske město",
        "VC": "St. Vincent a Grenadiny",
        "VG": "Britiske knježniske kupy",
        "VI": "Ameriske knježniske kupy",
        "WF": "Wallis a Futuna",
        "XK": "Kosowo",
        "YE": "Jemen",
        "ZA": "Južna Afrika (Republika)",
        "ZM": "Sambija",
        "ZW": "Simbabwe",
        "ZZ": "njeznaty region"
    };
  }-*/;
}
