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

  @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",
        "VG",
        "DG",
        "DM",
        "DO",
        "CI",
        "JE",
        "DJ",
        "EG",
        "EC",
        "ER",
        "EE",
        "ET",
        "EU",
        "EZ",
        "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",
        "GB",
        "UN",
        "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",
        "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",
        "LC",
        "RS",
        "EA",
        "SL",
        "SG",
        "SX",
        "SY",
        "SK",
        "SI",
        "SO",
        "SD",
        "FI",
        "SR",
        "SJ",
        "SZ",
        "KP",
        "LK",
        "SH",
        "SE",
        "CH",
        "VC",
        "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",
        "XA",
        "XB",
        "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("202", "Užsachario Afrika");
    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("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("EZ", "euro zona");
    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", "Jungtinė Karalystė");
    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", "Sent Lusija");
    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ūzijos 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", "Pitkerno salos");
    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("UN", "Jungtinės Tautos");
    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 Futūna");
    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",
        "202": "Užsachario Afrika",
        "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",
        "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",
        "EZ": "euro zona",
        "FI": "Suomija",
        "FJ": "Fidžis",
        "FK": "Folklando Salos",
        "FM": "Mikronezija",
        "FO": "Farerų Salos",
        "FR": "Prancūzija",
        "GA": "Gabonas",
        "GB": "Jungtinė Karalystė",
        "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": "Sent Lusija",
        "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ūzijos Polinezija",
        "PG": "Papua Naujoji Gvinėja",
        "PH": "Filipinai",
        "PK": "Pakistanas",
        "PL": "Lenkija",
        "PM": "Sen Pjeras ir Mikelonas",
        "PN": "Pitkerno salos",
        "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",
        "UN": "Jungtinės Tautos",
        "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 Futūna",
        "XK": "Kosovas",
        "YE": "Jemenas",
        "YT": "Majotas",
        "ZA": "Pietų Afrika",
        "ZM": "Zambija",
        "ZW": "Zimbabvė",
        "ZZ": "nežinoma sritis"
    };
  }-*/;
}
