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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Amahanga ga Buharabu ageeteereine");
    namesMap.put("AF", "Afuganistani");
    namesMap.put("AG", "Angiguwa na Babuda");
    namesMap.put("AI", "Angwira");
    namesMap.put("AL", "Arubania");
    namesMap.put("AM", "Arimeniya");
    namesMap.put("AO", "Angora");
    namesMap.put("AR", "Arigentina");
    namesMap.put("AS", "Samowa ya Ameerika");
    namesMap.put("AT", "Osituria");
    namesMap.put("AU", "Ositureeriya");
    namesMap.put("AZ", "Azabagyani");
    namesMap.put("BA", "Boziniya na Hezegovina");
    namesMap.put("BB", "Babadosi");
    namesMap.put("BD", "Bangaradeshi");
    namesMap.put("BE", "Bubirigi");
    namesMap.put("BF", "Bokina Faso");
    namesMap.put("BG", "Burugariya");
    namesMap.put("BH", "Bahareni");
    namesMap.put("BJ", "Benini");
    namesMap.put("BM", "Berimuda");
    namesMap.put("BN", "Burunei");
    namesMap.put("BO", "Boriiviya");
    namesMap.put("BR", "Buraziiri");
    namesMap.put("BS", "Bahama");
    namesMap.put("BT", "Butani");
    namesMap.put("BY", "Bararusi");
    namesMap.put("BZ", "Berize");
    namesMap.put("CA", "Kanada");
    namesMap.put("CD", "Demokoratika Ripaaburika ya Kongo");
    namesMap.put("CF", "Eihanga rya Rwagati ya Afirika");
    namesMap.put("CG", "Kongo");
    namesMap.put("CH", "Swisi");
    namesMap.put("CI", "Aivore Kositi");
    namesMap.put("CK", "Ebizinga bya Kuuku");
    namesMap.put("CM", "Kameruuni");
    namesMap.put("CO", "Korombiya");
    namesMap.put("CR", "Kositarika");
    namesMap.put("CV", "Ebizinga bya Kepuvade");
    namesMap.put("CY", "Saipurasi");
    namesMap.put("CZ", "Ripaaburika ya Zeeki");
    namesMap.put("DE", "Bugirimaani");
    namesMap.put("DJ", "Gyibuti");
    namesMap.put("DK", "Deenimaaka");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Ripaaburika ya Dominica");
    namesMap.put("DZ", "Arigyeriya");
    namesMap.put("EC", "Ikweda");
    namesMap.put("EE", "Esitoniya");
    namesMap.put("EG", "Misiri");
    namesMap.put("ER", "Eriteriya");
    namesMap.put("ES", "Sipeyini");
    namesMap.put("ET", "Ethiyopiya");
    namesMap.put("FI", "Bufini");
    namesMap.put("FJ", "Figyi");
    namesMap.put("FK", "Ebizinga bya Faakilanda");
    namesMap.put("FM", "Mikironesiya");
    namesMap.put("FR", "Bufaransa");
    namesMap.put("GA", "Gabooni");
    namesMap.put("GB", "Bungyereza");
    namesMap.put("GD", "Gurenada");
    namesMap.put("GE", "Gyogiya");
    namesMap.put("GF", "Guyana ya Bufaransa");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Giburaata");
    namesMap.put("GL", "Guriinirandi");
    namesMap.put("GM", "Gambiya");
    namesMap.put("GN", "Gine");
    namesMap.put("GP", "Gwaderupe");
    namesMap.put("GQ", "Guni");
    namesMap.put("GR", "Guriisi");
    namesMap.put("GT", "Gwatemara");
    namesMap.put("GU", "Gwamu");
    namesMap.put("GW", "Ginebisau");
    namesMap.put("HN", "Hondurasi");
    namesMap.put("HR", "Korasiya");
    namesMap.put("HU", "Hangare");
    namesMap.put("ID", "Indoneeziya");
    namesMap.put("IE", "Irerandi");
    namesMap.put("IL", "Isirairi");
    namesMap.put("IN", "Indiya");
    namesMap.put("IO", "Ebizinga bya Indian ebya Bungyereza");
    namesMap.put("IQ", "Iraaka");
    namesMap.put("IR", "Iraani");
    namesMap.put("IS", "Aisilandi");
    namesMap.put("IT", "Itare");
    namesMap.put("JM", "Gyamaika");
    namesMap.put("JO", "Yorudaani");
    namesMap.put("JP", "Gyapaani");
    namesMap.put("KG", "Kirigizistani");
    namesMap.put("KH", "Kambodiya");
    namesMap.put("KM", "Koromo");
    namesMap.put("KN", "Senti Kittis na Nevisi");
    namesMap.put("KP", "Koreya Amatemba");
    namesMap.put("KR", "Koreya Amashuuma");
    namesMap.put("KW", "Kuweiti");
    namesMap.put("KY", "Ebizinga bya Kayimani");
    namesMap.put("KZ", "Kazakisitani");
    namesMap.put("LA", "Layosi");
    namesMap.put("LB", "Lebanoni");
    namesMap.put("LC", "Senti Rusiya");
    namesMap.put("LI", "Lishenteni");
    namesMap.put("LK", "Siriranka");
    namesMap.put("LR", "Liberiya");
    namesMap.put("LU", "Lakizembaaga");
    namesMap.put("LV", "Latviya");
    namesMap.put("MD", "Moridova");
    namesMap.put("MG", "Madagasika");
    namesMap.put("MH", "Ebizinga bya Marshaa");
    namesMap.put("MK", "Masedoonia");
    namesMap.put("ML", "Mari");
    namesMap.put("MM", "Myanamar");
    namesMap.put("MN", "Mongoria");
    namesMap.put("MP", "Ebizinga by’amatemba ga Mariana");
    namesMap.put("MR", "Mauriteeniya");
    namesMap.put("MS", "Montserrati");
    namesMap.put("MT", "Marita");
    namesMap.put("MU", "Maurishiasi");
    namesMap.put("MV", "Maridives");
    namesMap.put("MW", "Marawi");
    namesMap.put("MY", "marayizia");
    namesMap.put("NA", "Namibiya");
    namesMap.put("NC", "Niukaredonia");
    namesMap.put("NE", "Naigya");
    namesMap.put("NF", "Ekizinga Norifoko");
    namesMap.put("NG", "Naigyeriya");
    namesMap.put("NI", "Nikaragwa");
    namesMap.put("NL", "Hoorandi");
    namesMap.put("NO", "Noorwe");
    namesMap.put("NP", "Nepo");
    namesMap.put("NZ", "Niuzirandi");
    namesMap.put("OM", "Omaani");
    namesMap.put("PF", "Polinesia ya Bufaransa");
    namesMap.put("PG", "Papua");
    namesMap.put("PH", "Firipino");
    namesMap.put("PK", "Pakisitaani");
    namesMap.put("PL", "Poorandi");
    namesMap.put("PM", "Senti Piyerre na Mikweron");
    namesMap.put("PN", "Pitkaini");
    namesMap.put("PR", "Pwetoriko");
    namesMap.put("PS", "Parestiina na Gaza");
    namesMap.put("PT", "Pocugo");
    namesMap.put("PW", "Palaawu");
    namesMap.put("PY", "Paragwai");
    namesMap.put("QA", "Kata");
    namesMap.put("RE", "Riyuniyoni");
    namesMap.put("RO", "Romaniya");
    namesMap.put("RU", "Rrasha");
    namesMap.put("SA", "Saudi Areebiya");
    namesMap.put("SB", "Ebizinga bya Surimaani");
    namesMap.put("SC", "Shesheresi");
    namesMap.put("SD", "Sudani");
    namesMap.put("SE", "Swideni");
    namesMap.put("SG", "Singapo");
    namesMap.put("SH", "Senti Herena");
    namesMap.put("SI", "Sirovaaniya");
    namesMap.put("SK", "Sirovaakiya");
    namesMap.put("SL", "Sirra Riyooni");
    namesMap.put("SM", "Samarino");
    namesMap.put("SN", "Senego");
    namesMap.put("SO", "Somaariya");
    namesMap.put("SR", "Surinaamu");
    namesMap.put("ST", "Sawo Tome na Purinsipo");
    namesMap.put("SV", "Eri Salivado");
    namesMap.put("SY", "Siriya");
    namesMap.put("SZ", "Swazirandi");
    namesMap.put("TC", "Ebizinga bya Buturuki na Kaiko");
    namesMap.put("TD", "Chadi");
    namesMap.put("TH", "Tairandi");
    namesMap.put("TJ", "Tajikisitani");
    namesMap.put("TK", "Tokerawu");
    namesMap.put("TL", "Burugweizooba bwa Timori");
    namesMap.put("TM", "Turukimenisitani");
    namesMap.put("TN", "Tunizia");
    namesMap.put("TR", "Buturuki /Take");
    namesMap.put("TT", "Turinidad na Tobago");
    namesMap.put("TV", "Tuvaru");
    namesMap.put("TW", "Tayiwaani");
    namesMap.put("UA", "Ukureini");
    namesMap.put("US", "Amerika");
    namesMap.put("UY", "Urugwai");
    namesMap.put("UZ", "Uzibekisitani");
    namesMap.put("VA", "Vatikani");
    namesMap.put("VC", "Senti Vinsent na Gurenadini");
    namesMap.put("VE", "Venezuwera");
    namesMap.put("VG", "Ebizinga bya Virigini ebya Bungyereza");
    namesMap.put("VI", "Ebizinga bya Virigini ebya Amerika");
    namesMap.put("VN", "Viyetinaamu");
    namesMap.put("WF", "Warris na Futuna");
    namesMap.put("WS", "Samowa");
    namesMap.put("YE", "Yemeni");
    namesMap.put("YT", "Mayote");
    namesMap.put("ZA", "Sausi Afirika");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Andora",
        "AE": "Amahanga ga Buharabu ageeteereine",
        "AF": "Afuganistani",
        "AG": "Angiguwa na Babuda",
        "AI": "Angwira",
        "AL": "Arubania",
        "AM": "Arimeniya",
        "AO": "Angora",
        "AR": "Arigentina",
        "AS": "Samowa ya Ameerika",
        "AT": "Osituria",
        "AU": "Ositureeriya",
        "AZ": "Azabagyani",
        "BA": "Boziniya na Hezegovina",
        "BB": "Babadosi",
        "BD": "Bangaradeshi",
        "BE": "Bubirigi",
        "BF": "Bokina Faso",
        "BG": "Burugariya",
        "BH": "Bahareni",
        "BJ": "Benini",
        "BM": "Berimuda",
        "BN": "Burunei",
        "BO": "Boriiviya",
        "BR": "Buraziiri",
        "BS": "Bahama",
        "BT": "Butani",
        "BY": "Bararusi",
        "BZ": "Berize",
        "CA": "Kanada",
        "CD": "Demokoratika Ripaaburika ya Kongo",
        "CF": "Eihanga rya Rwagati ya Afirika",
        "CG": "Kongo",
        "CH": "Swisi",
        "CI": "Aivore Kositi",
        "CK": "Ebizinga bya Kuuku",
        "CM": "Kameruuni",
        "CO": "Korombiya",
        "CR": "Kositarika",
        "CV": "Ebizinga bya Kepuvade",
        "CY": "Saipurasi",
        "CZ": "Ripaaburika ya Zeeki",
        "DE": "Bugirimaani",
        "DJ": "Gyibuti",
        "DK": "Deenimaaka",
        "DM": "Dominika",
        "DO": "Ripaaburika ya Dominica",
        "DZ": "Arigyeriya",
        "EC": "Ikweda",
        "EE": "Esitoniya",
        "EG": "Misiri",
        "ER": "Eriteriya",
        "ES": "Sipeyini",
        "ET": "Ethiyopiya",
        "FI": "Bufini",
        "FJ": "Figyi",
        "FK": "Ebizinga bya Faakilanda",
        "FM": "Mikironesiya",
        "FR": "Bufaransa",
        "GA": "Gabooni",
        "GB": "Bungyereza",
        "GD": "Gurenada",
        "GE": "Gyogiya",
        "GF": "Guyana ya Bufaransa",
        "GH": "Gana",
        "GI": "Giburaata",
        "GL": "Guriinirandi",
        "GM": "Gambiya",
        "GN": "Gine",
        "GP": "Gwaderupe",
        "GQ": "Guni",
        "GR": "Guriisi",
        "GT": "Gwatemara",
        "GU": "Gwamu",
        "GW": "Ginebisau",
        "HN": "Hondurasi",
        "HR": "Korasiya",
        "HU": "Hangare",
        "ID": "Indoneeziya",
        "IE": "Irerandi",
        "IL": "Isirairi",
        "IN": "Indiya",
        "IO": "Ebizinga bya Indian ebya Bungyereza",
        "IQ": "Iraaka",
        "IR": "Iraani",
        "IS": "Aisilandi",
        "IT": "Itare",
        "JM": "Gyamaika",
        "JO": "Yorudaani",
        "JP": "Gyapaani",
        "KG": "Kirigizistani",
        "KH": "Kambodiya",
        "KM": "Koromo",
        "KN": "Senti Kittis na Nevisi",
        "KP": "Koreya Amatemba",
        "KR": "Koreya Amashuuma",
        "KW": "Kuweiti",
        "KY": "Ebizinga bya Kayimani",
        "KZ": "Kazakisitani",
        "LA": "Layosi",
        "LB": "Lebanoni",
        "LC": "Senti Rusiya",
        "LI": "Lishenteni",
        "LK": "Siriranka",
        "LR": "Liberiya",
        "LU": "Lakizembaaga",
        "LV": "Latviya",
        "MD": "Moridova",
        "MG": "Madagasika",
        "MH": "Ebizinga bya Marshaa",
        "MK": "Masedoonia",
        "ML": "Mari",
        "MM": "Myanamar",
        "MN": "Mongoria",
        "MP": "Ebizinga by’amatemba ga Mariana",
        "MR": "Mauriteeniya",
        "MS": "Montserrati",
        "MT": "Marita",
        "MU": "Maurishiasi",
        "MV": "Maridives",
        "MW": "Marawi",
        "MY": "marayizia",
        "NA": "Namibiya",
        "NC": "Niukaredonia",
        "NE": "Naigya",
        "NF": "Ekizinga Norifoko",
        "NG": "Naigyeriya",
        "NI": "Nikaragwa",
        "NL": "Hoorandi",
        "NO": "Noorwe",
        "NP": "Nepo",
        "NZ": "Niuzirandi",
        "OM": "Omaani",
        "PF": "Polinesia ya Bufaransa",
        "PG": "Papua",
        "PH": "Firipino",
        "PK": "Pakisitaani",
        "PL": "Poorandi",
        "PM": "Senti Piyerre na Mikweron",
        "PN": "Pitkaini",
        "PR": "Pwetoriko",
        "PS": "Parestiina na Gaza",
        "PT": "Pocugo",
        "PW": "Palaawu",
        "PY": "Paragwai",
        "QA": "Kata",
        "RE": "Riyuniyoni",
        "RO": "Romaniya",
        "RU": "Rrasha",
        "SA": "Saudi Areebiya",
        "SB": "Ebizinga bya Surimaani",
        "SC": "Shesheresi",
        "SD": "Sudani",
        "SE": "Swideni",
        "SG": "Singapo",
        "SH": "Senti Herena",
        "SI": "Sirovaaniya",
        "SK": "Sirovaakiya",
        "SL": "Sirra Riyooni",
        "SM": "Samarino",
        "SN": "Senego",
        "SO": "Somaariya",
        "SR": "Surinaamu",
        "ST": "Sawo Tome na Purinsipo",
        "SV": "Eri Salivado",
        "SY": "Siriya",
        "SZ": "Swazirandi",
        "TC": "Ebizinga bya Buturuki na Kaiko",
        "TD": "Chadi",
        "TH": "Tairandi",
        "TJ": "Tajikisitani",
        "TK": "Tokerawu",
        "TL": "Burugweizooba bwa Timori",
        "TM": "Turukimenisitani",
        "TN": "Tunizia",
        "TR": "Buturuki /Take",
        "TT": "Turinidad na Tobago",
        "TV": "Tuvaru",
        "TW": "Tayiwaani",
        "UA": "Ukureini",
        "US": "Amerika",
        "UY": "Urugwai",
        "UZ": "Uzibekisitani",
        "VA": "Vatikani",
        "VC": "Senti Vinsent na Gurenadini",
        "VE": "Venezuwera",
        "VG": "Ebizinga bya Virigini ebya Bungyereza",
        "VI": "Ebizinga bya Virigini ebya Amerika",
        "VN": "Viyetinaamu",
        "WF": "Warris na Futuna",
        "WS": "Samowa",
        "YE": "Yemeni",
        "YT": "Mayote",
        "ZA": "Sausi Afirika"
    };
  }-*/;
}
