/*
 * Copyright 2014 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:
//  cldrVersion=25
//  date=$Date: 2014-03-01 06:57:43 +0100 (Sat, 01 Mar 2014) $
//  number=$Revision: 9852 $
//  type=lt

/**
 * Localized names for the "lt" locale.
 */
public class LocalizedNamesImpl_lt extends LocalizedNamesImpl {

  @Override
  public String[] loadLikelyRegionCodes() {
    return new String[] {
        "LT",
    };
  }

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "pasaulis");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Šiaurės Amerika");
    namesMap.put("005", "Pietų Amerika");
    namesMap.put("009", "Okeanija");
    namesMap.put("011", "Vakarų Afrika");
    namesMap.put("013", "Centrinė Amerika");
    namesMap.put("014", "Rytų Afrika");
    namesMap.put("015", "Šiaurės Afrika");
    namesMap.put("017", "Vidurio Afrika");
    namesMap.put("018", "Pietinė Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "Šiaurinė Amerika");
    namesMap.put("029", "Karibai");
    namesMap.put("030", "Rytų Azija");
    namesMap.put("034", "Pietų Azija");
    namesMap.put("035", "Pietryčių Azija");
    namesMap.put("039", "Pietų Europa");
    namesMap.put("053", "Australazija");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "Mikronezijos regionas");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Centrinė Azija");
    namesMap.put("145", "Vakarų Azija");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Rytų Europa");
    namesMap.put("154", "Šiaurės Europa");
    namesMap.put("155", "Vakarų Europa");
    namesMap.put("419", "Lotynų Amerika");
    namesMap.put("AC", "Dangun Žengimo sala");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Jungtiniai Arabų Emyratai");
    namesMap.put("AF", "Afganistanas");
    namesMap.put("AG", "Antigva ir Barbuda");
    namesMap.put("AI", "Angilija");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Armėnija");
    namesMap.put("AN", "Olandijos Antilai");
    namesMap.put("AQ", "Antarktida");
    namesMap.put("AS", "Amerikos Samoa");
    namesMap.put("AT", "Austrija");
    namesMap.put("AU", "Australija");
    namesMap.put("AX", "Alandų Salos");
    namesMap.put("AZ", "Azerbaidžanas");
    namesMap.put("BA", "Bosnija ir Hercegovina");
    namesMap.put("BB", "Barbadosas");
    namesMap.put("BD", "Bangladešas");
    namesMap.put("BE", "Belgija");
    namesMap.put("BF", "Burkina Fasas");
    namesMap.put("BG", "Bulgarija");
    namesMap.put("BH", "Bahreinas");
    namesMap.put("BI", "Burundis");
    namesMap.put("BJ", "Beninas");
    namesMap.put("BL", "Sen Bartelemi");
    namesMap.put("BN", "Brunėjus");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Karibų Nyderlandai");
    namesMap.put("BR", "Brazilija");
    namesMap.put("BS", "Bahamos");
    namesMap.put("BT", "Butanas");
    namesMap.put("BV", "Buvė Sala");
    namesMap.put("BW", "Botsvana");
    namesMap.put("BY", "Baltarusija");
    namesMap.put("BZ", "Belizas");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosų (Kilingo) Salos");
    namesMap.put("CD", "Kongas-Kinšasa");
    namesMap.put("CF", "Centrinės Afrikos Respublika");
    namesMap.put("CG", "Kongas-Brazavilis");
    namesMap.put("CH", "Šveicarija");
    namesMap.put("CI", "Dramblio Kaulo Krantas");
    namesMap.put("CK", "Kuko Salos");
    namesMap.put("CL", "Čilė");
    namesMap.put("CM", "Kamerūnas");
    namesMap.put("CN", "Kinija");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Klipertono sala");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Žaliasis Kyšulys");
    namesMap.put("CW", "Kiurasao");
    namesMap.put("CX", "Kalėdų Sala");
    namesMap.put("CY", "Kipras");
    namesMap.put("CZ", "Čekija");
    namesMap.put("DE", "Vokietija");
    namesMap.put("DG", "Diego Garsija");
    namesMap.put("DJ", "Džibutis");
    namesMap.put("DK", "Danija");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikos Respublika");
    namesMap.put("DZ", "Alžyras");
    namesMap.put("EA", "Seuta ir Melila");
    namesMap.put("EC", "Ekvadoras");
    namesMap.put("EE", "Estija");
    namesMap.put("EG", "Egiptas");
    namesMap.put("EH", "Vakarų Sachara");
    namesMap.put("ER", "Eritrėja");
    namesMap.put("ES", "Ispanija");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Europos Sąjunga");
    namesMap.put("FI", "Suomija");
    namesMap.put("FJ", "Fidžis");
    namesMap.put("FK", "Folklando Salos");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Farerų Salos");
    namesMap.put("FR", "Prancūzija");
    namesMap.put("GA", "Gabonas");
    namesMap.put("GB", "Didžioji Britanija");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Prancūzijos Gviana");
    namesMap.put("GG", "Gernsis");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Gibraltaras");
    namesMap.put("GL", "Grenlandija");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvinėja");
    namesMap.put("GP", "Gvadelupa");
    namesMap.put("GQ", "Pusiaujo Gvinėja");
    namesMap.put("GR", "Graikija");
    namesMap.put("GS", "Pietų Džordžija ir Pietų Sandvičo salos");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GU", "Guamas");
    namesMap.put("GW", "Bisau Gvinėja");
    namesMap.put("GY", "Gajana");
    namesMap.put("HK", "Ypatingasis Administracinis Kinijos Regionas Honkongas");
    namesMap.put("HM", "Herdo ir Makdonaldo Salos");
    namesMap.put("HN", "Hondūras");
    namesMap.put("HR", "Kroatija");
    namesMap.put("HT", "Haitis");
    namesMap.put("HU", "Vengrija");
    namesMap.put("IC", "Kanarų salos");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Airija");
    namesMap.put("IL", "Izraelis");
    namesMap.put("IM", "Meno Sala");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Indijos Vandenyno Britų Sritis");
    namesMap.put("IQ", "Irakas");
    namesMap.put("IR", "Iranas");
    namesMap.put("IS", "Islandija");
    namesMap.put("IT", "Italija");
    namesMap.put("JE", "Džersis");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordanija");
    namesMap.put("JP", "Japonija");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgizija");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KI", "Kiribatis");
    namesMap.put("KM", "Komorai");
    namesMap.put("KN", "Sent Kitsas ir Nevis");
    namesMap.put("KP", "Šiaurės Korėja");
    namesMap.put("KR", "Pietų Korėja");
    namesMap.put("KW", "Kuveitas");
    namesMap.put("KY", "Kaimanų Salos");
    namesMap.put("KZ", "Kazachstanas");
    namesMap.put("LA", "Laosas");
    namesMap.put("LB", "Libanas");
    namesMap.put("LC", "Šventoji Liucija");
    namesMap.put("LI", "Lichtenšteinas");
    namesMap.put("LK", "Šri Lanka");
    namesMap.put("LR", "Liberija");
    namesMap.put("LS", "Lesotas");
    namesMap.put("LT", "Lietuva");
    namesMap.put("LU", "Liuksemburgas");
    namesMap.put("LV", "Latvija");
    namesMap.put("LY", "Libija");
    namesMap.put("MA", "Marokas");
    namesMap.put("MC", "Monakas");
    namesMap.put("ME", "Juodkalnija");
    namesMap.put("MF", "Sen Martenas");
    namesMap.put("MG", "Madagaskaras");
    namesMap.put("MH", "Maršalo Salos");
    namesMap.put("MK", "Makedonija");
    namesMap.put("ML", "Malis");
    namesMap.put("MM", "Mianmaras (Birma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "Ypatingasis Administracinis Kinijos Regionas Makao");
    namesMap.put("MP", "Marianos Šiaurinės Salos");
    namesMap.put("MQ", "Martinika");
    namesMap.put("MR", "Mauritanija");
    namesMap.put("MS", "Montseratas");
    namesMap.put("MU", "Mauricijus");
    namesMap.put("MV", "Maldyvai");
    namesMap.put("MW", "Malavis");
    namesMap.put("MX", "Meksika");
    namesMap.put("MY", "Malaizija");
    namesMap.put("MZ", "Mozambikas");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Naujoji Kaledonija");
    namesMap.put("NE", "Nigeris");
    namesMap.put("NF", "Norfolko sala");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Nyderlandai");
    namesMap.put("NO", "Norvegija");
    namesMap.put("NP", "Nepalas");
    namesMap.put("NU", "Niujė");
    namesMap.put("NZ", "Naujoji Zelandija");
    namesMap.put("OM", "Omanas");
    namesMap.put("PF", "Prancūzų Polinezija");
    namesMap.put("PG", "Papua Naujoji Gvinėja");
    namesMap.put("PH", "Filipinai");
    namesMap.put("PK", "Pakistanas");
    namesMap.put("PL", "Lenkija");
    namesMap.put("PM", "Sen Pjeras ir Mikelonas");
    namesMap.put("PN", "Pitkernas");
    namesMap.put("PR", "Puerto Rikas");
    namesMap.put("PS", "Palestinos teritorija");
    namesMap.put("PT", "Portugalija");
    namesMap.put("PY", "Paragvajus");
    namesMap.put("QA", "Kataras");
    namesMap.put("QO", "Nuošali Okeanija");
    namesMap.put("RE", "Reunjonas");
    namesMap.put("RO", "Rumunija");
    namesMap.put("RS", "Serbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudo Arabija");
    namesMap.put("SB", "Saliamono Salos");
    namesMap.put("SC", "Seišeliai");
    namesMap.put("SD", "Sudanas");
    namesMap.put("SE", "Švedija");
    namesMap.put("SG", "Singapūras");
    namesMap.put("SH", "Šv. Elenos Sala");
    namesMap.put("SI", "Slovėnija");
    namesMap.put("SJ", "Svalbardas ir Janas Majenas");
    namesMap.put("SK", "Slovakija");
    namesMap.put("SL", "Siera Leonė");
    namesMap.put("SM", "San Marinas");
    namesMap.put("SN", "Senegalas");
    namesMap.put("SO", "Somalis");
    namesMap.put("SR", "Surinamas");
    namesMap.put("SS", "Pietų Sudanas");
    namesMap.put("ST", "San Tomė ir Prinsipė");
    namesMap.put("SV", "Salvadoras");
    namesMap.put("SX", "Sint Martenas");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazilandas");
    namesMap.put("TA", "Tristanas da Kunja");
    namesMap.put("TC", "Terkso ir Kaikoso Salos");
    namesMap.put("TD", "Čadas");
    namesMap.put("TF", "Prancūzijos Pietų sritys");
    namesMap.put("TG", "Togas");
    namesMap.put("TH", "Tailandas");
    namesMap.put("TJ", "Tadžikija");
    namesMap.put("TL", "Rytų Timoras");
    namesMap.put("TM", "Turkmėnistanas");
    namesMap.put("TN", "Tunisas");
    namesMap.put("TR", "Turkija");
    namesMap.put("TT", "Trinidadas ir Tobagas");
    namesMap.put("TW", "Taivanas");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UM", "Jungtinių Valstijų Mažosios Tolimosios Salos");
    namesMap.put("US", "Jungtinės Valstijos");
    namesMap.put("UY", "Urugvajus");
    namesMap.put("UZ", "Uzbekistanas");
    namesMap.put("VA", "Vatikano Miesto Valstybė");
    namesMap.put("VC", "Šventasis Vincentas ir Grenadinai");
    namesMap.put("VE", "Venesuela");
    namesMap.put("VG", "Didžiosios Britanijos Mergelių Salos");
    namesMap.put("VI", "Jungtinių Valstijų Mergelių Salos");
    namesMap.put("VN", "Vietnamas");
    namesMap.put("WF", "Volisas ir Futuna");
    namesMap.put("XK", "Kosovas");
    namesMap.put("YE", "Jemenas");
    namesMap.put("YT", "Majotas");
    namesMap.put("ZA", "Pietų Afrika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabvė");
    namesMap.put("ZZ", "nežinoma sritis");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "pasaulis",
        "002": "Afrika",
        "003": "Šiaurės Amerika",
        "005": "Pietų Amerika",
        "009": "Okeanija",
        "011": "Vakarų Afrika",
        "013": "Centrinė Amerika",
        "014": "Rytų Afrika",
        "015": "Šiaurės Afrika",
        "017": "Vidurio Afrika",
        "018": "Pietinė Afrika",
        "019": "Amerika",
        "021": "Šiaurinė Amerika",
        "029": "Karibai",
        "030": "Rytų Azija",
        "034": "Pietų Azija",
        "035": "Pietryčių Azija",
        "039": "Pietų Europa",
        "053": "Australazija",
        "054": "Melanezija",
        "057": "Mikronezijos regionas",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Centrinė Azija",
        "145": "Vakarų Azija",
        "150": "Europa",
        "151": "Rytų Europa",
        "154": "Šiaurės Europa",
        "155": "Vakarų Europa",
        "419": "Lotynų Amerika",
        "AC": "Dangun Žengimo sala",
        "AD": "Andora",
        "AE": "Jungtiniai Arabų Emyratai",
        "AF": "Afganistanas",
        "AG": "Antigva ir Barbuda",
        "AI": "Angilija",
        "AL": "Albanija",
        "AM": "Armėnija",
        "AN": "Olandijos Antilai",
        "AQ": "Antarktida",
        "AS": "Amerikos Samoa",
        "AT": "Austrija",
        "AU": "Australija",
        "AX": "Alandų Salos",
        "AZ": "Azerbaidžanas",
        "BA": "Bosnija ir Hercegovina",
        "BB": "Barbadosas",
        "BD": "Bangladešas",
        "BE": "Belgija",
        "BF": "Burkina Fasas",
        "BG": "Bulgarija",
        "BH": "Bahreinas",
        "BI": "Burundis",
        "BJ": "Beninas",
        "BL": "Sen Bartelemi",
        "BN": "Brunėjus",
        "BO": "Bolivija",
        "BQ": "Karibų Nyderlandai",
        "BR": "Brazilija",
        "BS": "Bahamos",
        "BT": "Butanas",
        "BV": "Buvė Sala",
        "BW": "Botsvana",
        "BY": "Baltarusija",
        "BZ": "Belizas",
        "CA": "Kanada",
        "CC": "Kokosų (Kilingo) Salos",
        "CD": "Kongas-Kinšasa",
        "CF": "Centrinės Afrikos Respublika",
        "CG": "Kongas-Brazavilis",
        "CH": "Šveicarija",
        "CI": "Dramblio Kaulo Krantas",
        "CK": "Kuko Salos",
        "CL": "Čilė",
        "CM": "Kamerūnas",
        "CN": "Kinija",
        "CO": "Kolumbija",
        "CP": "Klipertono sala",
        "CR": "Kosta Rika",
        "CU": "Kuba",
        "CV": "Žaliasis Kyšulys",
        "CW": "Kiurasao",
        "CX": "Kalėdų Sala",
        "CY": "Kipras",
        "CZ": "Čekija",
        "DE": "Vokietija",
        "DG": "Diego Garsija",
        "DJ": "Džibutis",
        "DK": "Danija",
        "DM": "Dominika",
        "DO": "Dominikos Respublika",
        "DZ": "Alžyras",
        "EA": "Seuta ir Melila",
        "EC": "Ekvadoras",
        "EE": "Estija",
        "EG": "Egiptas",
        "EH": "Vakarų Sachara",
        "ER": "Eritrėja",
        "ES": "Ispanija",
        "ET": "Etiopija",
        "EU": "Europos Sąjunga",
        "FI": "Suomija",
        "FJ": "Fidžis",
        "FK": "Folklando Salos",
        "FM": "Mikronezija",
        "FO": "Farerų Salos",
        "FR": "Prancūzija",
        "GA": "Gabonas",
        "GB": "Didžioji Britanija",
        "GE": "Gruzija",
        "GF": "Prancūzijos Gviana",
        "GG": "Gernsis",
        "GH": "Gana",
        "GI": "Gibraltaras",
        "GL": "Grenlandija",
        "GM": "Gambija",
        "GN": "Gvinėja",
        "GP": "Gvadelupa",
        "GQ": "Pusiaujo Gvinėja",
        "GR": "Graikija",
        "GS": "Pietų Džordžija ir Pietų Sandvičo salos",
        "GT": "Gvatemala",
        "GU": "Guamas",
        "GW": "Bisau Gvinėja",
        "GY": "Gajana",
        "HK": "Ypatingasis Administracinis Kinijos Regionas Honkongas",
        "HM": "Herdo ir Makdonaldo Salos",
        "HN": "Hondūras",
        "HR": "Kroatija",
        "HT": "Haitis",
        "HU": "Vengrija",
        "IC": "Kanarų salos",
        "ID": "Indonezija",
        "IE": "Airija",
        "IL": "Izraelis",
        "IM": "Meno Sala",
        "IN": "Indija",
        "IO": "Indijos Vandenyno Britų Sritis",
        "IQ": "Irakas",
        "IR": "Iranas",
        "IS": "Islandija",
        "IT": "Italija",
        "JE": "Džersis",
        "JM": "Jamaika",
        "JO": "Jordanija",
        "JP": "Japonija",
        "KE": "Kenija",
        "KG": "Kirgizija",
        "KH": "Kambodža",
        "KI": "Kiribatis",
        "KM": "Komorai",
        "KN": "Sent Kitsas ir Nevis",
        "KP": "Šiaurės Korėja",
        "KR": "Pietų Korėja",
        "KW": "Kuveitas",
        "KY": "Kaimanų Salos",
        "KZ": "Kazachstanas",
        "LA": "Laosas",
        "LB": "Libanas",
        "LC": "Šventoji Liucija",
        "LI": "Lichtenšteinas",
        "LK": "Šri Lanka",
        "LR": "Liberija",
        "LS": "Lesotas",
        "LT": "Lietuva",
        "LU": "Liuksemburgas",
        "LV": "Latvija",
        "LY": "Libija",
        "MA": "Marokas",
        "MC": "Monakas",
        "ME": "Juodkalnija",
        "MF": "Sen Martenas",
        "MG": "Madagaskaras",
        "MH": "Maršalo Salos",
        "MK": "Makedonija",
        "ML": "Malis",
        "MM": "Mianmaras (Birma)",
        "MN": "Mongolija",
        "MO": "Ypatingasis Administracinis Kinijos Regionas Makao",
        "MP": "Marianos Šiaurinės Salos",
        "MQ": "Martinika",
        "MR": "Mauritanija",
        "MS": "Montseratas",
        "MU": "Mauricijus",
        "MV": "Maldyvai",
        "MW": "Malavis",
        "MX": "Meksika",
        "MY": "Malaizija",
        "MZ": "Mozambikas",
        "NA": "Namibija",
        "NC": "Naujoji Kaledonija",
        "NE": "Nigeris",
        "NF": "Norfolko sala",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Nyderlandai",
        "NO": "Norvegija",
        "NP": "Nepalas",
        "NU": "Niujė",
        "NZ": "Naujoji Zelandija",
        "OM": "Omanas",
        "PF": "Prancūzų Polinezija",
        "PG": "Papua Naujoji Gvinėja",
        "PH": "Filipinai",
        "PK": "Pakistanas",
        "PL": "Lenkija",
        "PM": "Sen Pjeras ir Mikelonas",
        "PN": "Pitkernas",
        "PR": "Puerto Rikas",
        "PS": "Palestinos teritorija",
        "PT": "Portugalija",
        "PY": "Paragvajus",
        "QA": "Kataras",
        "QO": "Nuošali Okeanija",
        "RE": "Reunjonas",
        "RO": "Rumunija",
        "RS": "Serbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudo Arabija",
        "SB": "Saliamono Salos",
        "SC": "Seišeliai",
        "SD": "Sudanas",
        "SE": "Švedija",
        "SG": "Singapūras",
        "SH": "Šv. Elenos Sala",
        "SI": "Slovėnija",
        "SJ": "Svalbardas ir Janas Majenas",
        "SK": "Slovakija",
        "SL": "Siera Leonė",
        "SM": "San Marinas",
        "SN": "Senegalas",
        "SO": "Somalis",
        "SR": "Surinamas",
        "SS": "Pietų Sudanas",
        "ST": "San Tomė ir Prinsipė",
        "SV": "Salvadoras",
        "SX": "Sint Martenas",
        "SY": "Sirija",
        "SZ": "Svazilandas",
        "TA": "Tristanas da Kunja",
        "TC": "Terkso ir Kaikoso Salos",
        "TD": "Čadas",
        "TF": "Prancūzijos Pietų sritys",
        "TG": "Togas",
        "TH": "Tailandas",
        "TJ": "Tadžikija",
        "TL": "Rytų Timoras",
        "TM": "Turkmėnistanas",
        "TN": "Tunisas",
        "TR": "Turkija",
        "TT": "Trinidadas ir Tobagas",
        "TW": "Taivanas",
        "TZ": "Tanzanija",
        "UA": "Ukraina",
        "UM": "Jungtinių Valstijų Mažosios Tolimosios Salos",
        "US": "Jungtinės Valstijos",
        "UY": "Urugvajus",
        "UZ": "Uzbekistanas",
        "VA": "Vatikano Miesto Valstybė",
        "VC": "Šventasis Vincentas ir Grenadinai",
        "VE": "Venesuela",
        "VG": "Didžiosios Britanijos Mergelių Salos",
        "VI": "Jungtinių Valstijų Mergelių Salos",
        "VN": "Vietnamas",
        "WF": "Volisas ir Futuna",
        "XK": "Kosovas",
        "YE": "Jemenas",
        "YT": "Majotas",
        "ZA": "Pietų Afrika",
        "ZM": "Zambija",
        "ZW": "Zimbabvė",
        "ZZ": "nežinoma sritis"
    };
  }-*/;
}
