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

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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Dünya");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Şimali Amerika");
    namesMap.put("005", "Cənubi Amerika");
    namesMap.put("009", "Okeaniya");
    namesMap.put("011", "Qərbi Afrika");
    namesMap.put("013", "Mərkəzi Amerika");
    namesMap.put("014", "Şərqi Afrika");
    namesMap.put("015", "Şimali Afrika");
    namesMap.put("017", "Mərkəzi Afrika");
    namesMap.put("018", "Cənubi Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "Şimal Amerikası");
    namesMap.put("029", "Karib");
    namesMap.put("030", "Şərqi Asiya");
    namesMap.put("034", "Cənubi Asiya");
    namesMap.put("035", "Cənub-Şərqi Asiya");
    namesMap.put("039", "Cənubi Avropa");
    namesMap.put("053", "Avstralaziya");
    namesMap.put("054", "Melaneziya");
    namesMap.put("057", "Mikroneziya Regionu");
    namesMap.put("061", "Polineziya");
    namesMap.put("142", "Asiya");
    namesMap.put("143", "Mərkəzi Asiya");
    namesMap.put("145", "Qərbi Asiya");
    namesMap.put("150", "Avropa");
    namesMap.put("151", "Şərqi Avropa");
    namesMap.put("154", "Şimali Avropa");
    namesMap.put("155", "Qərbi Avropa");
    namesMap.put("419", "Latın Amerikası");
    namesMap.put("AC", "Askenson adası");
    namesMap.put("AE", "Birləşmiş Ərəb Əmirlikləri");
    namesMap.put("AF", "Əfqanıstan");
    namesMap.put("AG", "Antiqua və Barbuda");
    namesMap.put("AI", "Angilya");
    namesMap.put("AL", "Albaniya");
    namesMap.put("AM", "Ermənistan");
    namesMap.put("AO", "Anqola");
    namesMap.put("AQ", "Antarktika");
    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ə Herseqovina");
    namesMap.put("BD", "Banqladeş");
    namesMap.put("BE", "Belçika");
    namesMap.put("BG", "Bolqarıstan");
    namesMap.put("BH", "Bəhreyn");
    namesMap.put("BL", "Sent-Bartelemi");
    namesMap.put("BM", "Bermud adaları");
    namesMap.put("BN", "Bruney");
    namesMap.put("BO", "Boliviya");
    namesMap.put("BQ", "Karib Niderlandı");
    namesMap.put("BR", "Braziliya");
    namesMap.put("BS", "Baham adaları");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Buve adası");
    namesMap.put("BW", "Botsvana");
    namesMap.put("BZ", "Beliz");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokos (Kilinq) adaları");
    namesMap.put("CD", "Konqo - Kinşasa");
    namesMap.put("CF", "Mərkəzi Afrika Respublikası");
    namesMap.put("CG", "Konqo - Brazzavil");
    namesMap.put("CH", "İsveçrə");
    namesMap.put("CI", "Kotd’ivuar");
    namesMap.put("CK", "Kuk adaları");
    namesMap.put("CL", "Çili");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Çin");
    namesMap.put("CO", "Kolumbiya");
    namesMap.put("CP", "Klipperton adası");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kabo-Verde");
    namesMap.put("CW", "Kurasao");
    namesMap.put("CX", "Milad adası");
    namesMap.put("CY", "Kipr");
    namesMap.put("CZ", "Çexiya");
    namesMap.put("DE", "Almaniya");
    namesMap.put("DG", "Dieqo Qarsiya");
    namesMap.put("DJ", "Cibuti");
    namesMap.put("DK", "Danimarka");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikan Respublikası");
    namesMap.put("DZ", "Əlcəzair");
    namesMap.put("EA", "Seuta və Melilya");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estoniya");
    namesMap.put("EG", "Misir");
    namesMap.put("EH", "Qərbi Saxara");
    namesMap.put("ER", "Eritreya");
    namesMap.put("ES", "İspaniya");
    namesMap.put("ET", "Efiopiya");
    namesMap.put("EU", "Avropa Birliyi");
    namesMap.put("EZ", "Avrozona");
    namesMap.put("FI", "Finlandiya");
    namesMap.put("FJ", "Fici");
    namesMap.put("FK", "Folklend adaları");
    namesMap.put("FM", "Mikroneziya");
    namesMap.put("FO", "Farer 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", "Fransa Qvianası");
    namesMap.put("GG", "Gernsi");
    namesMap.put("GH", "Qana");
    namesMap.put("GI", "Cəbəllütariq");
    namesMap.put("GL", "Qrenlandiya");
    namesMap.put("GM", "Qambiya");
    namesMap.put("GN", "Qvineya");
    namesMap.put("GP", "Qvadelupa");
    namesMap.put("GQ", "Ekvatorial Qvineya");
    namesMap.put("GR", "Yunanıstan");
    namesMap.put("GS", "Cənubi Corciya və Cənubi Sendviç adaları");
    namesMap.put("GT", "Qvatemala");
    namesMap.put("GU", "Quam");
    namesMap.put("GW", "Qvineya-Bisau");
    namesMap.put("GY", "Qayana");
    namesMap.put("HK", "Honq Konq Xüsusi İnzibati Ərazi Çin");
    namesMap.put("HM", "Herd və Makdonald adaları");
    namesMap.put("HR", "Xorvatiya");
    namesMap.put("HU", "Macarıstan");
    namesMap.put("IC", "Kanar adaları");
    namesMap.put("ID", "İndoneziya");
    namesMap.put("IE", "İrlandiya");
    namesMap.put("IL", "İsrail");
    namesMap.put("IM", "Men adası");
    namesMap.put("IN", "Hindistan");
    namesMap.put("IO", "Britaniyanın Hind Okeanı Ərazisi");
    namesMap.put("IQ", "İraq");
    namesMap.put("IR", "İran");
    namesMap.put("IS", "İslandiya");
    namesMap.put("IT", "İtaliya");
    namesMap.put("JE", "Cersi");
    namesMap.put("JM", "Yamayka");
    namesMap.put("JO", "İordaniya");
    namesMap.put("JP", "Yaponiya");
    namesMap.put("KE", "Keniya");
    namesMap.put("KG", "Qırğızıstan");
    namesMap.put("KH", "Kamboca");
    namesMap.put("KM", "Komor adaları");
    namesMap.put("KN", "Sent-Kits və Nevis");
    namesMap.put("KP", "Şimali Koreya");
    namesMap.put("KR", "Cənubi Koreya");
    namesMap.put("KW", "Küveyt");
    namesMap.put("KY", "Kayman adaları");
    namesMap.put("KZ", "Qazaxıstan");
    namesMap.put("LB", "Livan");
    namesMap.put("LC", "Sent-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("LY", "Liviya");
    namesMap.put("MA", "Mərakeş");
    namesMap.put("MC", "Monako");
    namesMap.put("ME", "Monteneqro");
    namesMap.put("MF", "Sent Martin");
    namesMap.put("MG", "Madaqaskar");
    namesMap.put("MH", "Marşal adaları");
    namesMap.put("MK", "Makedoniya");
    namesMap.put("MM", "Myanma");
    namesMap.put("MN", "Monqolustan");
    namesMap.put("MO", "Makao Xüsusi İnzibati Ərazi Çin");
    namesMap.put("MP", "Şimali Marian adaları");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Mavritaniya");
    namesMap.put("MS", "Monserat");
    namesMap.put("MU", "Mavriki");
    namesMap.put("MV", "Maldiv adaları");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Meksika");
    namesMap.put("MY", "Malayziya");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibiya");
    namesMap.put("NC", "Yeni Kaledoniya");
    namesMap.put("NF", "Norfolk adası");
    namesMap.put("NG", "Nigeriya");
    namesMap.put("NI", "Nikaraqua");
    namesMap.put("NL", "Niderland");
    namesMap.put("NO", "Norveç");
    namesMap.put("NZ", "Yeni Zelandiya");
    namesMap.put("PF", "Fransa Polineziyası");
    namesMap.put("PG", "Papua-Yeni Qvineya");
    namesMap.put("PH", "Filippin");
    namesMap.put("PL", "Polşa");
    namesMap.put("PM", "Müqəddəs Pyer və Mikelon");
    namesMap.put("PN", "Pitkern adaları");
    namesMap.put("PR", "Puerto Riko");
    namesMap.put("PS", "Fələstin Əraziləri");
    namesMap.put("PT", "Portuqaliya");
    namesMap.put("PY", "Paraqvay");
    namesMap.put("QA", "Qətər");
    namesMap.put("QO", "Uzaq Okeaniya");
    namesMap.put("RE", "Reyunyon");
    namesMap.put("RO", "Rumıniya");
    namesMap.put("RS", "Serbiya");
    namesMap.put("RU", "Rusiya");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Səudiyyə Ərəbistanı");
    namesMap.put("SB", "Solomon adaları");
    namesMap.put("SC", "Seyşel adaları");
    namesMap.put("SE", "İsveç");
    namesMap.put("SG", "Sinqapur");
    namesMap.put("SH", "Müqəddəs Yelena");
    namesMap.put("SI", "Sloveniya");
    namesMap.put("SJ", "Svalbard və Yan-Mayen");
    namesMap.put("SK", "Slovakiya");
    namesMap.put("SL", "Syerra-Leone");
    namesMap.put("SM", "San-Marino");
    namesMap.put("SN", "Seneqal");
    namesMap.put("SO", "Somali");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Cənubi Sudan");
    namesMap.put("ST", "San-Tome və Prinsipi");
    namesMap.put("SV", "Salvador");
    namesMap.put("SX", "Sint-Marten");
    namesMap.put("SY", "Suriya");
    namesMap.put("SZ", "Svazilend");
    namesMap.put("TA", "Tristan da Kunya");
    namesMap.put("TC", "Törks və Kaykos adaları");
    namesMap.put("TD", "Çad");
    namesMap.put("TF", "Fransanın Cənub Əraziləri");
    namesMap.put("TG", "Toqo");
    namesMap.put("TH", "Tailand");
    namesMap.put("TJ", "Tacikistan");
    namesMap.put("TL", "Şərqi Timor");
    namesMap.put("TM", "Türkmənistan");
    namesMap.put("TN", "Tunis");
    namesMap.put("TO", "Tonqa");
    namesMap.put("TR", "Türkiyə");
    namesMap.put("TT", "Trinidad və Tobaqo");
    namesMap.put("TW", "Tayvan");
    namesMap.put("TZ", "Tanzaniya");
    namesMap.put("UA", "Ukrayna");
    namesMap.put("UG", "Uqanda");
    namesMap.put("UM", "ABŞ-a bağlı kiçik adacıqlar");
    namesMap.put("UN", "Birləşmiş Millətlər Təşkilatı");
    namesMap.put("US", "Amerika Birləşmiş Ştatları");
    namesMap.put("UY", "Uruqvay");
    namesMap.put("UZ", "Özbəkistan");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Sent-Vinsent və Qrenadinlər");
    namesMap.put("VE", "Venesuela");
    namesMap.put("VG", "Britaniyanın Virgin adaları");
    namesMap.put("VI", "ABŞ Virgin adaları");
    namesMap.put("VN", "Vyetnam");
    namesMap.put("WF", "Uollis və Futuna");
    namesMap.put("YE", "Yəmən");
    namesMap.put("YT", "Mayot");
    namesMap.put("ZA", "Cənub Afrika");
    namesMap.put("ZM", "Zambiya");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "Naməlum Region");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Dünya",
        "002": "Afrika",
        "003": "Şimali Amerika",
        "005": "Cənubi Amerika",
        "009": "Okeaniya",
        "011": "Qərbi Afrika",
        "013": "Mərkəzi Amerika",
        "014": "Şərqi Afrika",
        "015": "Şimali Afrika",
        "017": "Mərkəzi Afrika",
        "018": "Cənubi Afrika",
        "019": "Amerika",
        "021": "Şimal Amerikası",
        "029": "Karib",
        "030": "Şərqi Asiya",
        "034": "Cənubi Asiya",
        "035": "Cənub-Şərqi Asiya",
        "039": "Cənubi Avropa",
        "053": "Avstralaziya",
        "054": "Melaneziya",
        "057": "Mikroneziya Regionu",
        "061": "Polineziya",
        "142": "Asiya",
        "143": "Mərkəzi Asiya",
        "145": "Qərbi Asiya",
        "150": "Avropa",
        "151": "Şərqi Avropa",
        "154": "Şimali Avropa",
        "155": "Qərbi Avropa",
        "419": "Latın Amerikası",
        "AC": "Askenson adası",
        "AE": "Birləşmiş Ərəb Əmirlikləri",
        "AF": "Əfqanıstan",
        "AG": "Antiqua və Barbuda",
        "AI": "Angilya",
        "AL": "Albaniya",
        "AM": "Ermənistan",
        "AO": "Anqola",
        "AQ": "Antarktika",
        "AS": "Amerika Samoası",
        "AT": "Avstriya",
        "AU": "Avstraliya",
        "AX": "Aland adaları",
        "AZ": "Azərbaycan",
        "BA": "Bosniya və Herseqovina",
        "BD": "Banqladeş",
        "BE": "Belçika",
        "BG": "Bolqarıstan",
        "BH": "Bəhreyn",
        "BL": "Sent-Bartelemi",
        "BM": "Bermud adaları",
        "BN": "Bruney",
        "BO": "Boliviya",
        "BQ": "Karib Niderlandı",
        "BR": "Braziliya",
        "BS": "Baham adaları",
        "BT": "Butan",
        "BV": "Buve adası",
        "BW": "Botsvana",
        "BZ": "Beliz",
        "CA": "Kanada",
        "CC": "Kokos (Kilinq) adaları",
        "CD": "Konqo - Kinşasa",
        "CF": "Mərkəzi Afrika Respublikası",
        "CG": "Konqo - Brazzavil",
        "CH": "İsveçrə",
        "CI": "Kotd’ivuar",
        "CK": "Kuk adaları",
        "CL": "Çili",
        "CM": "Kamerun",
        "CN": "Çin",
        "CO": "Kolumbiya",
        "CP": "Klipperton adası",
        "CR": "Kosta Rika",
        "CU": "Kuba",
        "CV": "Kabo-Verde",
        "CW": "Kurasao",
        "CX": "Milad adası",
        "CY": "Kipr",
        "CZ": "Çexiya",
        "DE": "Almaniya",
        "DG": "Dieqo Qarsiya",
        "DJ": "Cibuti",
        "DK": "Danimarka",
        "DM": "Dominika",
        "DO": "Dominikan Respublikası",
        "DZ": "Əlcəzair",
        "EA": "Seuta və Melilya",
        "EC": "Ekvador",
        "EE": "Estoniya",
        "EG": "Misir",
        "EH": "Qərbi Saxara",
        "ER": "Eritreya",
        "ES": "İspaniya",
        "ET": "Efiopiya",
        "EU": "Avropa Birliyi",
        "EZ": "Avrozona",
        "FI": "Finlandiya",
        "FJ": "Fici",
        "FK": "Folklend adaları",
        "FM": "Mikroneziya",
        "FO": "Farer adaları",
        "FR": "Fransa",
        "GA": "Qabon",
        "GB": "Birləşmiş Krallıq",
        "GD": "Qrenada",
        "GE": "Gürcüstan",
        "GF": "Fransa Qvianası",
        "GG": "Gernsi",
        "GH": "Qana",
        "GI": "Cəbəllütariq",
        "GL": "Qrenlandiya",
        "GM": "Qambiya",
        "GN": "Qvineya",
        "GP": "Qvadelupa",
        "GQ": "Ekvatorial Qvineya",
        "GR": "Yunanıstan",
        "GS": "Cənubi Corciya və Cənubi Sendviç adaları",
        "GT": "Qvatemala",
        "GU": "Quam",
        "GW": "Qvineya-Bisau",
        "GY": "Qayana",
        "HK": "Honq Konq Xüsusi İnzibati Ərazi Çin",
        "HM": "Herd və Makdonald adaları",
        "HR": "Xorvatiya",
        "HU": "Macarıstan",
        "IC": "Kanar adaları",
        "ID": "İndoneziya",
        "IE": "İrlandiya",
        "IL": "İsrail",
        "IM": "Men adası",
        "IN": "Hindistan",
        "IO": "Britaniyanın Hind Okeanı Ərazisi",
        "IQ": "İraq",
        "IR": "İran",
        "IS": "İslandiya",
        "IT": "İtaliya",
        "JE": "Cersi",
        "JM": "Yamayka",
        "JO": "İordaniya",
        "JP": "Yaponiya",
        "KE": "Keniya",
        "KG": "Qırğızıstan",
        "KH": "Kamboca",
        "KM": "Komor adaları",
        "KN": "Sent-Kits və Nevis",
        "KP": "Şimali Koreya",
        "KR": "Cənubi Koreya",
        "KW": "Küveyt",
        "KY": "Kayman adaları",
        "KZ": "Qazaxıstan",
        "LB": "Livan",
        "LC": "Sent-Lusiya",
        "LI": "Lixtenşteyn",
        "LK": "Şri-Lanka",
        "LR": "Liberiya",
        "LS": "Lesoto",
        "LT": "Litva",
        "LU": "Lüksemburq",
        "LV": "Latviya",
        "LY": "Liviya",
        "MA": "Mərakeş",
        "MC": "Monako",
        "ME": "Monteneqro",
        "MF": "Sent Martin",
        "MG": "Madaqaskar",
        "MH": "Marşal adaları",
        "MK": "Makedoniya",
        "MM": "Myanma",
        "MN": "Monqolustan",
        "MO": "Makao Xüsusi İnzibati Ərazi Çin",
        "MP": "Şimali Marian adaları",
        "MQ": "Martinik",
        "MR": "Mavritaniya",
        "MS": "Monserat",
        "MU": "Mavriki",
        "MV": "Maldiv adaları",
        "MW": "Malavi",
        "MX": "Meksika",
        "MY": "Malayziya",
        "MZ": "Mozambik",
        "NA": "Namibiya",
        "NC": "Yeni Kaledoniya",
        "NF": "Norfolk adası",
        "NG": "Nigeriya",
        "NI": "Nikaraqua",
        "NL": "Niderland",
        "NO": "Norveç",
        "NZ": "Yeni Zelandiya",
        "PF": "Fransa Polineziyası",
        "PG": "Papua-Yeni Qvineya",
        "PH": "Filippin",
        "PL": "Polşa",
        "PM": "Müqəddəs Pyer və Mikelon",
        "PN": "Pitkern adaları",
        "PR": "Puerto Riko",
        "PS": "Fələstin Əraziləri",
        "PT": "Portuqaliya",
        "PY": "Paraqvay",
        "QA": "Qətər",
        "QO": "Uzaq Okeaniya",
        "RE": "Reyunyon",
        "RO": "Rumıniya",
        "RS": "Serbiya",
        "RU": "Rusiya",
        "RW": "Ruanda",
        "SA": "Səudiyyə Ərəbistanı",
        "SB": "Solomon adaları",
        "SC": "Seyşel adaları",
        "SE": "İsveç",
        "SG": "Sinqapur",
        "SH": "Müqəddəs Yelena",
        "SI": "Sloveniya",
        "SJ": "Svalbard və Yan-Mayen",
        "SK": "Slovakiya",
        "SL": "Syerra-Leone",
        "SM": "San-Marino",
        "SN": "Seneqal",
        "SO": "Somali",
        "SR": "Surinam",
        "SS": "Cənubi Sudan",
        "ST": "San-Tome və Prinsipi",
        "SV": "Salvador",
        "SX": "Sint-Marten",
        "SY": "Suriya",
        "SZ": "Svazilend",
        "TA": "Tristan da Kunya",
        "TC": "Törks və Kaykos adaları",
        "TD": "Çad",
        "TF": "Fransanın Cənub Əraziləri",
        "TG": "Toqo",
        "TH": "Tailand",
        "TJ": "Tacikistan",
        "TL": "Şərqi Timor",
        "TM": "Türkmənistan",
        "TN": "Tunis",
        "TO": "Tonqa",
        "TR": "Türkiyə",
        "TT": "Trinidad və Tobaqo",
        "TW": "Tayvan",
        "TZ": "Tanzaniya",
        "UA": "Ukrayna",
        "UG": "Uqanda",
        "UM": "ABŞ-a bağlı kiçik adacıqlar",
        "UN": "Birləşmiş Millətlər Təşkilatı",
        "US": "Amerika Birləşmiş Ştatları",
        "UY": "Uruqvay",
        "UZ": "Özbəkistan",
        "VA": "Vatikan",
        "VC": "Sent-Vinsent və Qrenadinlər",
        "VE": "Venesuela",
        "VG": "Britaniyanın Virgin adaları",
        "VI": "ABŞ Virgin adaları",
        "VN": "Vyetnam",
        "WF": "Uollis və Futuna",
        "YE": "Yəmən",
        "YT": "Mayot",
        "ZA": "Cənub Afrika",
        "ZM": "Zambiya",
        "ZW": "Zimbabve",
        "ZZ": "Naməlum Region"
    };
  }-*/;
}
