/*
 * 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:
//  cldrVersion=21.0
//  number=$Revision: 6546 Google $
//  date=$Date: 2012-02-07 13:32:35 -0500 (Tue, 07 Feb 2012) $
//  type=root


/**
 * Localized names for the "az" locale.
 */
public class LocalizedNamesImpl_az extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Dünya");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Şimal Amerika");
    namesMap.put("005", "Cənub Amerika");
    namesMap.put("009", "Okeyaniya");
    namesMap.put("011", "Qərb afrika");
    namesMap.put("013", "Orta Amerika");
    namesMap.put("014", "Şərq Afrika");
    namesMap.put("015", "Şimal Afrika");
    namesMap.put("017", "Orta Afrika");
    namesMap.put("019", "Amerikalar");
    namesMap.put("029", "Kariyıplar");
    namesMap.put("030", "Şərq Asiya");
    namesMap.put("034", "Cənub Asiya");
    namesMap.put("035", "Cənub Şərq Asiya");
    namesMap.put("039", "Cənub Avropa");
    namesMap.put("053", "Avstraliya və Yeni Zelandiya");
    namesMap.put("054", "Melanesya");
    namesMap.put("057", "Mikronesiya reqionu");
    namesMap.put("061", "Polineziya");
    namesMap.put("142", "Aziya");
    namesMap.put("143", "Orta Aziya");
    namesMap.put("145", "Qərb Asiya");
    namesMap.put("150", "Avropa");
    namesMap.put("151", "Şərq Avropa");
    namesMap.put("154", "Şimal Avropa");
    namesMap.put("155", "Qərb Avropa");
    namesMap.put("419", "Latın Amerikası");
    namesMap.put("AE", "Birləşmiş Ərəb Emiratları");
    namesMap.put("AF", "Əfqənistan");
    namesMap.put("AG", "Antiqua və Barbuda");
    namesMap.put("AI", "Anquila");
    namesMap.put("AL", "Albaniya");
    namesMap.put("AM", "Ermənistan");
    namesMap.put("AN", "Hollandiya antilleri");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AR", "Arqentina");
    namesMap.put("AS", "Amerika Samoası");
    namesMap.put("AT", "Avstriya");
    namesMap.put("AU", "Avstraliya");
    namesMap.put("AX", "Aland Adaları");
    namesMap.put("AZ", "Azərbaycan");
    namesMap.put("BA", "Bosniya və Herzokovina");
    namesMap.put("BD", "Banqladeş");
    namesMap.put("BE", "Belçika");
    namesMap.put("BG", "Bolqariya");
    namesMap.put("BH", "Bahreyn");
    namesMap.put("BL", "Seynt Bartelemey");
    namesMap.put("BN", "Bruney");
    namesMap.put("BO", "Boliviya");
    namesMap.put("BR", "Braziliya");
    namesMap.put("BS", "Bahamalar");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Bove Adası");
    namesMap.put("BW", "Botsvana");
    namesMap.put("BZ", "Beliz");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokos Adaları");
    namesMap.put("CD", "Konqo - Kinşasa");
    namesMap.put("CF", "Orta Afrika respublikası");
    namesMap.put("CG", "Konqo - Brazavil");
    namesMap.put("CH", "isveçriya");
    namesMap.put("CI", "İvori Sahili");
    namesMap.put("CK", "Kuk Adaları");
    namesMap.put("CL", "Çile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Çin");
    namesMap.put("CO", "Kolumbiya");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kape Verde");
    namesMap.put("CX", "Çristmas Adası");
    namesMap.put("CY", "Kipr");
    namesMap.put("CZ", "Çex respublikası");
    namesMap.put("DE", "Almaniya");
    namesMap.put("DJ", "Ciboti");
    namesMap.put("DK", "Danemarka");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominik Respublikası");
    namesMap.put("DZ", "Cezayır");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estoniya");
    namesMap.put("EG", "Misir");
    namesMap.put("EH", "Qərb Sahara");
    namesMap.put("ER", "Eritreya");
    namesMap.put("ES", "İspaniya");
    namesMap.put("ET", "Efiopiya");
    namesMap.put("EU", "Avropa Birləşliyi");
    namesMap.put("FI", "Finlandiya");
    namesMap.put("FJ", "Fici");
    namesMap.put("FK", "Folkland Adaları");
    namesMap.put("FM", "Mikronesiya");
    namesMap.put("FO", "Faro Adaları");
    namesMap.put("FR", "Fransa");
    namesMap.put("GA", "Qabon");
    namesMap.put("GB", "Birləşmiş Krallıq");
    namesMap.put("GD", "Qrenada");
    namesMap.put("GE", "Gürcüstan");
    namesMap.put("GF", "Fransız Quyanası");
    namesMap.put("GG", "Görnsey");
    namesMap.put("GH", "Qana");
    namesMap.put("GL", "Qrinland");
    namesMap.put("GM", "Qambiya");
    namesMap.put("GN", "Qvineya");
    namesMap.put("GP", "Qvadalup");
    namesMap.put("GQ", "Ekvator Qineya");
    namesMap.put("GR", "Yunanıstan");
    namesMap.put("GS", "Cənub Gürcüstan və Cənub Sandvilç Adaları");
    namesMap.put("GT", "Qvatemala");
    namesMap.put("GU", "Quam");
    namesMap.put("GW", "Qvineya-Bisau");
    namesMap.put("GY", "Quyana");
    namesMap.put("HK", "Honk Konq");
    namesMap.put("HM", "Hörd və Makdonald Adaları");
    namesMap.put("HN", "Qonduras");
    namesMap.put("HR", "Xorvatiya");
    namesMap.put("HU", "Macaristan");
    namesMap.put("ID", "İndoneziya");
    namesMap.put("IE", "İrlandiya");
    namesMap.put("IL", "İzrail");
    namesMap.put("IM", "Man Adası");
    namesMap.put("IN", "Hindistan");
    namesMap.put("IO", "Britaniya-Hindistan Okeanik territoriyası");
    namesMap.put("IQ", "İrak");
    namesMap.put("IR", "İran");
    namesMap.put("IS", "İslandiya");
    namesMap.put("IT", "İtaliya");
    namesMap.put("JE", "Cörsi");
    namesMap.put("JM", "Yamayka");
    namesMap.put("JO", "Ürdün");
    namesMap.put("JP", "Yaponiya");
    namesMap.put("KG", "Kırqızstan");
    namesMap.put("KH", "Kambodiya");
    namesMap.put("KM", "Komoros");
    namesMap.put("KN", "Seynt Kits və Nevis");
    namesMap.put("KP", "Şimal Koreya");
    namesMap.put("KR", "Cənub Koreya");
    namesMap.put("KW", "Kuveyt");
    namesMap.put("KY", "Kayman Adaları");
    namesMap.put("KZ", "Kazaxstan");
    namesMap.put("LC", "Seynt Lusiya");
    namesMap.put("LI", "Lixtenşteyn");
    namesMap.put("LK", "Şri Lanka");
    namesMap.put("LR", "Liberiya");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Litva");
    namesMap.put("LU", "Lüksemburq");
    namesMap.put("LV", "Latviya");
    namesMap.put("MA", "Morokko");
    namesMap.put("MC", "Monako");
    namesMap.put("ME", "Monteneqro");
    namesMap.put("MF", "Seynt Martin");
    namesMap.put("MG", "Madaqaskar");
    namesMap.put("MH", "Marşal Adaları");
    namesMap.put("MK", "Masedoniya");
    namesMap.put("MM", "Myanmar");
    namesMap.put("MN", "Monqoliya");
    namesMap.put("MO", "Makao");
    namesMap.put("MP", "Şimal Mariana Adaları");
    namesMap.put("MQ", "Martiniqu");
    namesMap.put("MR", "Mavritaniya");
    namesMap.put("MS", "Montserat");
    namesMap.put("MU", "Mavritis");
    namesMap.put("MV", "Maldiv");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Meksika");
    namesMap.put("MY", "Malaysiya");
    namesMap.put("MZ", "Mazambik");
    namesMap.put("NA", "Namibiya");
    namesMap.put("NC", "Yeni Kaledoniya");
    namesMap.put("NE", "nijer");
    namesMap.put("NF", "Norfolk Adası");
    namesMap.put("NG", "Nijeriya");
    namesMap.put("NI", "Nikaraqua");
    namesMap.put("NL", "Hollandiya");
    namesMap.put("NO", "Norvec");
    namesMap.put("NU", "Niye");
    namesMap.put("NZ", "Yeni Zelandiya");
    namesMap.put("PF", "Fransız Polineziya");
    namesMap.put("PG", "Papua Yeni Qvineya");
    namesMap.put("PH", "Filipin");
    namesMap.put("PL", "Polşa");
    namesMap.put("PM", "Seynt Piyer və Mikelon");
    namesMap.put("PN", "Pitkarn");
    namesMap.put("PR", "Puerto Riko");
    namesMap.put("PS", "Fələstin Bölqüsü");
    namesMap.put("PT", "Portuqal");
    namesMap.put("PW", "Palav");
    namesMap.put("PY", "Paraqvay");
    namesMap.put("QO", "Uzak Okeyaniya");
    namesMap.put("RE", "Reyunion");
    namesMap.put("RO", "Romaniya");
    namesMap.put("RS", "Serbiya");
    namesMap.put("RU", "Rusiya");
    namesMap.put("RW", "Rvanda");
    namesMap.put("SA", "Saudi Ərəbistan");
    namesMap.put("SB", "Solomon Adaları");
    namesMap.put("SC", "Seyçels");
    namesMap.put("SD", "sudan");
    namesMap.put("SE", "isveç");
    namesMap.put("SG", "Sinqapur");
    namesMap.put("SH", "Seynt Elena");
    namesMap.put("SI", "Sloveniya");
    namesMap.put("SJ", "svalbard və yan mayen");
    namesMap.put("SK", "Slovakiya");
    namesMap.put("SL", "Siyera Leon");
    namesMap.put("SN", "Seneqal");
    namesMap.put("SO", "Somaliya");
    namesMap.put("SR", "surinamə");
    namesMap.put("ST", "Sao Tom və Prinsip");
    namesMap.put("SY", "siriya");
    namesMap.put("SZ", "svazilənd");
    namesMap.put("TC", "Türk və Kaykos Adaları");
    namesMap.put("TD", "Çad");
    namesMap.put("TF", "Fransız Cənub teritoriyası");
    namesMap.put("TG", "Toqo");
    namesMap.put("TH", "tayland");
    namesMap.put("TJ", "tacikistan");
    namesMap.put("TL", "Şərq Timor");
    namesMap.put("TM", "Türkmənistan");
    namesMap.put("TN", "Tunisiya");
    namesMap.put("TO", "Tonqa");
    namesMap.put("TR", "Türkiya");
    namesMap.put("TT", "Trinidan və Tobaqo");
    namesMap.put("TW", "tayvan");
    namesMap.put("TZ", "tanzaniya");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UG", "Uqanda");
    namesMap.put("UM", "Birləşmiş Ştatların uzaq adaları");
    namesMap.put("US", "Amerika Birləşmiş Ştatları");
    namesMap.put("UY", "Uruqvay");
    namesMap.put("UZ", "Özbəkistan");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Seynt Vinsent və Qrenada");
    namesMap.put("VE", "Venesuela");
    namesMap.put("VG", "Britaniya Virgin Adaları");
    namesMap.put("VI", "ABŞ Virqin Adaları");
    namesMap.put("VN", "Vyetnam");
    namesMap.put("WF", "Valis və Futuna");
    namesMap.put("YT", "Mayot");
    namesMap.put("ZA", "Cənub Afrika");
    namesMap.put("ZM", "Zambiya");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "bilinmir");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Dünya",
        "002": "Afrika",
        "003": "Şimal Amerika",
        "005": "Cənub Amerika",
        "009": "Okeyaniya",
        "011": "Qərb afrika",
        "013": "Orta Amerika",
        "014": "Şərq Afrika",
        "015": "Şimal Afrika",
        "017": "Orta Afrika",
        "019": "Amerikalar",
        "029": "Kariyıplar",
        "030": "Şərq Asiya",
        "034": "Cənub Asiya",
        "035": "Cənub Şərq Asiya",
        "039": "Cənub Avropa",
        "053": "Avstraliya və Yeni Zelandiya",
        "054": "Melanesya",
        "057": "Mikronesiya reqionu",
        "061": "Polineziya",
        "142": "Aziya",
        "143": "Orta Aziya",
        "145": "Qərb Asiya",
        "150": "Avropa",
        "151": "Şərq Avropa",
        "154": "Şimal Avropa",
        "155": "Qərb Avropa",
        "419": "Latın Amerikası",
        "AE": "Birləşmiş Ərəb Emiratları",
        "AF": "Əfqənistan",
        "AG": "Antiqua və Barbuda",
        "AI": "Anquila",
        "AL": "Albaniya",
        "AM": "Ermənistan",
        "AN": "Hollandiya antilleri",
        "AQ": "Antarktika",
        "AR": "Arqentina",
        "AS": "Amerika Samoası",
        "AT": "Avstriya",
        "AU": "Avstraliya",
        "AX": "Aland Adaları",
        "AZ": "Azərbaycan",
        "BA": "Bosniya və Herzokovina",
        "BD": "Banqladeş",
        "BE": "Belçika",
        "BG": "Bolqariya",
        "BH": "Bahreyn",
        "BL": "Seynt Bartelemey",
        "BN": "Bruney",
        "BO": "Boliviya",
        "BR": "Braziliya",
        "BS": "Bahamalar",
        "BT": "Butan",
        "BV": "Bove Adası",
        "BW": "Botsvana",
        "BZ": "Beliz",
        "CA": "Kanada",
        "CC": "Kokos Adaları",
        "CD": "Konqo - Kinşasa",
        "CF": "Orta Afrika respublikası",
        "CG": "Konqo - Brazavil",
        "CH": "isveçriya",
        "CI": "İvori Sahili",
        "CK": "Kuk Adaları",
        "CL": "Çile",
        "CM": "Kamerun",
        "CN": "Çin",
        "CO": "Kolumbiya",
        "CR": "Kosta Rika",
        "CU": "Kuba",
        "CV": "Kape Verde",
        "CX": "Çristmas Adası",
        "CY": "Kipr",
        "CZ": "Çex respublikası",
        "DE": "Almaniya",
        "DJ": "Ciboti",
        "DK": "Danemarka",
        "DM": "Dominika",
        "DO": "Dominik Respublikası",
        "DZ": "Cezayır",
        "EC": "Ekvador",
        "EE": "Estoniya",
        "EG": "Misir",
        "EH": "Qərb Sahara",
        "ER": "Eritreya",
        "ES": "İspaniya",
        "ET": "Efiopiya",
        "EU": "Avropa Birləşliyi",
        "FI": "Finlandiya",
        "FJ": "Fici",
        "FK": "Folkland Adaları",
        "FM": "Mikronesiya",
        "FO": "Faro Adaları",
        "FR": "Fransa",
        "GA": "Qabon",
        "GB": "Birləşmiş Krallıq",
        "GD": "Qrenada",
        "GE": "Gürcüstan",
        "GF": "Fransız Quyanası",
        "GG": "Görnsey",
        "GH": "Qana",
        "GL": "Qrinland",
        "GM": "Qambiya",
        "GN": "Qvineya",
        "GP": "Qvadalup",
        "GQ": "Ekvator Qineya",
        "GR": "Yunanıstan",
        "GS": "Cənub Gürcüstan və Cənub Sandvilç Adaları",
        "GT": "Qvatemala",
        "GU": "Quam",
        "GW": "Qvineya-Bisau",
        "GY": "Quyana",
        "HK": "Honk Konq",
        "HM": "Hörd və Makdonald Adaları",
        "HN": "Qonduras",
        "HR": "Xorvatiya",
        "HU": "Macaristan",
        "ID": "İndoneziya",
        "IE": "İrlandiya",
        "IL": "İzrail",
        "IM": "Man Adası",
        "IN": "Hindistan",
        "IO": "Britaniya-Hindistan Okeanik territoriyası",
        "IQ": "İrak",
        "IR": "İran",
        "IS": "İslandiya",
        "IT": "İtaliya",
        "JE": "Cörsi",
        "JM": "Yamayka",
        "JO": "Ürdün",
        "JP": "Yaponiya",
        "KG": "Kırqızstan",
        "KH": "Kambodiya",
        "KM": "Komoros",
        "KN": "Seynt Kits və Nevis",
        "KP": "Şimal Koreya",
        "KR": "Cənub Koreya",
        "KW": "Kuveyt",
        "KY": "Kayman Adaları",
        "KZ": "Kazaxstan",
        "LC": "Seynt Lusiya",
        "LI": "Lixtenşteyn",
        "LK": "Şri Lanka",
        "LR": "Liberiya",
        "LS": "Lesoto",
        "LT": "Litva",
        "LU": "Lüksemburq",
        "LV": "Latviya",
        "MA": "Morokko",
        "MC": "Monako",
        "ME": "Monteneqro",
        "MF": "Seynt Martin",
        "MG": "Madaqaskar",
        "MH": "Marşal Adaları",
        "MK": "Masedoniya",
        "MM": "Myanmar",
        "MN": "Monqoliya",
        "MO": "Makao",
        "MP": "Şimal Mariana Adaları",
        "MQ": "Martiniqu",
        "MR": "Mavritaniya",
        "MS": "Montserat",
        "MU": "Mavritis",
        "MV": "Maldiv",
        "MW": "Malavi",
        "MX": "Meksika",
        "MY": "Malaysiya",
        "MZ": "Mazambik",
        "NA": "Namibiya",
        "NC": "Yeni Kaledoniya",
        "NE": "nijer",
        "NF": "Norfolk Adası",
        "NG": "Nijeriya",
        "NI": "Nikaraqua",
        "NL": "Hollandiya",
        "NO": "Norvec",
        "NU": "Niye",
        "NZ": "Yeni Zelandiya",
        "PF": "Fransız Polineziya",
        "PG": "Papua Yeni Qvineya",
        "PH": "Filipin",
        "PL": "Polşa",
        "PM": "Seynt Piyer və Mikelon",
        "PN": "Pitkarn",
        "PR": "Puerto Riko",
        "PS": "Fələstin Bölqüsü",
        "PT": "Portuqal",
        "PW": "Palav",
        "PY": "Paraqvay",
        "QO": "Uzak Okeyaniya",
        "RE": "Reyunion",
        "RO": "Romaniya",
        "RS": "Serbiya",
        "RU": "Rusiya",
        "RW": "Rvanda",
        "SA": "Saudi Ərəbistan",
        "SB": "Solomon Adaları",
        "SC": "Seyçels",
        "SD": "sudan",
        "SE": "isveç",
        "SG": "Sinqapur",
        "SH": "Seynt Elena",
        "SI": "Sloveniya",
        "SJ": "svalbard və yan mayen",
        "SK": "Slovakiya",
        "SL": "Siyera Leon",
        "SN": "Seneqal",
        "SO": "Somaliya",
        "SR": "surinamə",
        "ST": "Sao Tom və Prinsip",
        "SY": "siriya",
        "SZ": "svazilənd",
        "TC": "Türk və Kaykos Adaları",
        "TD": "Çad",
        "TF": "Fransız Cənub teritoriyası",
        "TG": "Toqo",
        "TH": "tayland",
        "TJ": "tacikistan",
        "TL": "Şərq Timor",
        "TM": "Türkmənistan",
        "TN": "Tunisiya",
        "TO": "Tonqa",
        "TR": "Türkiya",
        "TT": "Trinidan və Tobaqo",
        "TW": "tayvan",
        "TZ": "tanzaniya",
        "UA": "Ukraina",
        "UG": "Uqanda",
        "UM": "Birləşmiş Ştatların uzaq adaları",
        "US": "Amerika Birləşmiş Ştatları",
        "UY": "Uruqvay",
        "UZ": "Özbəkistan",
        "VA": "Vatikan",
        "VC": "Seynt Vinsent və Qrenada",
        "VE": "Venesuela",
        "VG": "Britaniya Virgin Adaları",
        "VI": "ABŞ Virqin Adaları",
        "VN": "Vyetnam",
        "WF": "Valis və Futuna",
        "YT": "Mayot",
        "ZA": "Cənub Afrika",
        "ZM": "Zambiya",
        "ZW": "Zimbabve",
        "ZZ": "bilinmir"
    };
  }-*/;
}
