/*
 * 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-14 18:20:13 +0100 (Fri, 14 Mar 2014) $
//  number=$Revision: 9967 $
//  type=sl

/**
 * Localized names for the "sl" locale.
 */
public class LocalizedNamesImpl_sl extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Svet");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Severna Amerika");
    namesMap.put("005", "Južna Amerika");
    namesMap.put("009", "Oceanija");
    namesMap.put("011", "Zahodna Afrika");
    namesMap.put("013", "Srednja Amerika");
    namesMap.put("014", "Vzhodna Afrika");
    namesMap.put("015", "Severna Afrika");
    namesMap.put("017", "Srednja Afrika");
    namesMap.put("018", "Južna Afrika");
    namesMap.put("019", "Amerike");
    namesMap.put("021", "severnoameriška celina");
    namesMap.put("029", "Karibi");
    namesMap.put("030", "Vzhodna Azija");
    namesMap.put("034", "Južna Azija");
    namesMap.put("035", "Jugovzhodna Azija");
    namesMap.put("039", "Južna Evropa");
    namesMap.put("053", "Avstralija in Nova Zelandija");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "mikronezijska regija");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Osrednja Azija");
    namesMap.put("145", "Zahodna Azija");
    namesMap.put("150", "Evropa");
    namesMap.put("151", "Vzhodna Evropa");
    namesMap.put("154", "Severna Evropa");
    namesMap.put("155", "Zahodna Evropa");
    namesMap.put("419", "Latinska Amerika");
    namesMap.put("AC", "Otok Ascension");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Združeni arabski emirati");
    namesMap.put("AF", "Afganistan");
    namesMap.put("AG", "Antigva in Barbuda");
    namesMap.put("AI", "Angvila");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Armenija");
    namesMap.put("AN", "Nizozemski Antili");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AS", "Ameriška Samoa");
    namesMap.put("AT", "Avstrija");
    namesMap.put("AU", "Avstralija");
    namesMap.put("AX", "Alandsko otočje");
    namesMap.put("AZ", "Azerbajdžan");
    namesMap.put("BA", "Bosna in Hercegovina");
    namesMap.put("BD", "Bangladeš");
    namesMap.put("BE", "Belgija");
    namesMap.put("BG", "Bolgarija");
    namesMap.put("BH", "Bahrajn");
    namesMap.put("BL", "Saint Barthelemy");
    namesMap.put("BM", "Bermudi");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Nizozemski Karibi");
    namesMap.put("BR", "Brazilija");
    namesMap.put("BS", "Bahami");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Bouvetov otok");
    namesMap.put("BW", "Bocvana");
    namesMap.put("BY", "Belorusija");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosovi otoki");
    namesMap.put("CD", "Demokratična republika Kongo");
    namesMap.put("CF", "Centralnoafriška republika");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Švica");
    namesMap.put("CI", "Slonokoščena obala");
    namesMap.put("CK", "Cookovo otočje");
    namesMap.put("CL", "Čile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kitajska");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Otok Clipperton");
    namesMap.put("CR", "Kostarika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Zelenortski otoki");
    namesMap.put("CX", "Božični otok");
    namesMap.put("CY", "Ciper");
    namesMap.put("CZ", "Češka");
    namesMap.put("DE", "Nemčija");
    namesMap.put("DJ", "Džibuti");
    namesMap.put("DK", "Danska");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikanska republika");
    namesMap.put("DZ", "Alžirija");
    namesMap.put("EA", "Ceuta in Melilla");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estonija");
    namesMap.put("EG", "Egipt");
    namesMap.put("EH", "Zahodna Sahara");
    namesMap.put("ER", "Eritreja");
    namesMap.put("ES", "Španija");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Evropska unija");
    namesMap.put("FI", "Finska");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Falklandski otoki");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Ferski otoki");
    namesMap.put("FR", "Francija");
    namesMap.put("GB", "Velika Britanija");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Francoska Gvajana");
    namesMap.put("GH", "Gana");
    namesMap.put("GL", "Grenlandija");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvineja");
    namesMap.put("GP", "Gvadalupe");
    namesMap.put("GQ", "Ekvatorialna Gvineja");
    namesMap.put("GR", "Grčija");
    namesMap.put("GS", "Južna Georgia in Južni Sandwichevi otoki");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GW", "Gvineja Bissau");
    namesMap.put("GY", "Gvajana");
    namesMap.put("HK", "Posebno administrativno območje LR Kitajske Hong Kong");
    namesMap.put("HM", "Otok Heard in otočje McDonald");
    namesMap.put("HR", "Hrvaška");
    namesMap.put("HU", "Madžarska");
    namesMap.put("IC", "Kanarski otoki");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Irska");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Otok Man");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Britansko ozemlje v Indijskem oceanu");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islandija");
    namesMap.put("IT", "Italija");
    namesMap.put("JM", "Jamajka");
    namesMap.put("JO", "Jordanija");
    namesMap.put("JP", "Japonska");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgizistan");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komori");
    namesMap.put("KN", "Saint Kitts in Nevis");
    namesMap.put("KP", "Severna Koreja");
    namesMap.put("KR", "Južna Koreja");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Kajmanski otoki");
    namesMap.put("KZ", "Kazahstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LI", "Lihtenštajn");
    namesMap.put("LK", "Šrilanka");
    namesMap.put("LR", "Liberija");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Litva");
    namesMap.put("LU", "Luksemburg");
    namesMap.put("LV", "Latvija");
    namesMap.put("LY", "Libija");
    namesMap.put("MA", "Maroko");
    namesMap.put("MC", "Monako");
    namesMap.put("MD", "Moldavija");
    namesMap.put("ME", "Črna gora");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallovi otoki");
    namesMap.put("MK", "Makedonija");
    namesMap.put("MM", "Mjanmar (Burma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "Posebno administrativno območje LR Kitajske Macao");
    namesMap.put("MP", "Severni Marianski otoki");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Mavretanija");
    namesMap.put("MV", "Maldivi");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Mehika");
    namesMap.put("MY", "Malezija");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Nova Kaledonija");
    namesMap.put("NF", "Norfolški otok");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Nizozemska");
    namesMap.put("NO", "Norveška");
    namesMap.put("NZ", "Nova Zelandija");
    namesMap.put("PF", "Francoska Polinezija");
    namesMap.put("PG", "Papua Nova Gvineja");
    namesMap.put("PH", "Filipini");
    namesMap.put("PL", "Poljska");
    namesMap.put("PM", "Saint Pierre in Miquelon");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PR", "Portoriko");
    namesMap.put("PS", "Palestinsko ozemlje");
    namesMap.put("PT", "Portugalska");
    namesMap.put("PY", "Paragvaj");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Ostala oceanija");
    namesMap.put("RE", "Reunion");
    namesMap.put("RO", "Romunija");
    namesMap.put("RS", "Srbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudova Arabija");
    namesMap.put("SB", "Salomonovi otoki");
    namesMap.put("SC", "Sejšeli");
    namesMap.put("SE", "Švedska");
    namesMap.put("SG", "Singapur");
    namesMap.put("SH", "Sveta Helena");
    namesMap.put("SI", "Slovenija");
    namesMap.put("SJ", "Svalbard in Jan Mayen");
    namesMap.put("SK", "Slovaška");
    namesMap.put("SO", "Somalija");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Južni Sudan");
    namesMap.put("ST", "Sao Tome in Principe");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazi");
    namesMap.put("TC", "Otočji Turks in Caicos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francosko južno ozemlje");
    namesMap.put("TH", "Tajska");
    namesMap.put("TJ", "Tadžikistan");
    namesMap.put("TL", "Vzhodni Timor");
    namesMap.put("TN", "Tunizija");
    namesMap.put("TR", "Turčija");
    namesMap.put("TT", "Trinidad in Tobago");
    namesMap.put("TW", "Tajvan");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukrajina");
    namesMap.put("UM", "Druga ameriška ozemlja v Tihem oceanu");
    namesMap.put("US", "Združene države Amerike");
    namesMap.put("UY", "Urugvaj");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Saint Vincent in Grenadine");
    namesMap.put("VG", "Britanski Deviški otoki");
    namesMap.put("VI", "Ameriški Deviški otoki");
    namesMap.put("WF", "Wallis in Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Južnoafriška republika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "Neznano ali neveljavno območje");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Svet",
        "002": "Afrika",
        "003": "Severna Amerika",
        "005": "Južna Amerika",
        "009": "Oceanija",
        "011": "Zahodna Afrika",
        "013": "Srednja Amerika",
        "014": "Vzhodna Afrika",
        "015": "Severna Afrika",
        "017": "Srednja Afrika",
        "018": "Južna Afrika",
        "019": "Amerike",
        "021": "severnoameriška celina",
        "029": "Karibi",
        "030": "Vzhodna Azija",
        "034": "Južna Azija",
        "035": "Jugovzhodna Azija",
        "039": "Južna Evropa",
        "053": "Avstralija in Nova Zelandija",
        "054": "Melanezija",
        "057": "mikronezijska regija",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Osrednja Azija",
        "145": "Zahodna Azija",
        "150": "Evropa",
        "151": "Vzhodna Evropa",
        "154": "Severna Evropa",
        "155": "Zahodna Evropa",
        "419": "Latinska Amerika",
        "AC": "Otok Ascension",
        "AD": "Andora",
        "AE": "Združeni arabski emirati",
        "AF": "Afganistan",
        "AG": "Antigva in Barbuda",
        "AI": "Angvila",
        "AL": "Albanija",
        "AM": "Armenija",
        "AN": "Nizozemski Antili",
        "AQ": "Antarktika",
        "AS": "Ameriška Samoa",
        "AT": "Avstrija",
        "AU": "Avstralija",
        "AX": "Alandsko otočje",
        "AZ": "Azerbajdžan",
        "BA": "Bosna in Hercegovina",
        "BD": "Bangladeš",
        "BE": "Belgija",
        "BG": "Bolgarija",
        "BH": "Bahrajn",
        "BL": "Saint Barthelemy",
        "BM": "Bermudi",
        "BN": "Brunej",
        "BO": "Bolivija",
        "BQ": "Nizozemski Karibi",
        "BR": "Brazilija",
        "BS": "Bahami",
        "BT": "Butan",
        "BV": "Bouvetov otok",
        "BW": "Bocvana",
        "BY": "Belorusija",
        "CA": "Kanada",
        "CC": "Kokosovi otoki",
        "CD": "Demokratična republika Kongo",
        "CF": "Centralnoafriška republika",
        "CG": "Kongo - Brazzaville",
        "CH": "Švica",
        "CI": "Slonokoščena obala",
        "CK": "Cookovo otočje",
        "CL": "Čile",
        "CM": "Kamerun",
        "CN": "Kitajska",
        "CO": "Kolumbija",
        "CP": "Otok Clipperton",
        "CR": "Kostarika",
        "CU": "Kuba",
        "CV": "Zelenortski otoki",
        "CX": "Božični otok",
        "CY": "Ciper",
        "CZ": "Češka",
        "DE": "Nemčija",
        "DJ": "Džibuti",
        "DK": "Danska",
        "DM": "Dominika",
        "DO": "Dominikanska republika",
        "DZ": "Alžirija",
        "EA": "Ceuta in Melilla",
        "EC": "Ekvador",
        "EE": "Estonija",
        "EG": "Egipt",
        "EH": "Zahodna Sahara",
        "ER": "Eritreja",
        "ES": "Španija",
        "ET": "Etiopija",
        "EU": "Evropska unija",
        "FI": "Finska",
        "FJ": "Fidži",
        "FK": "Falklandski otoki",
        "FM": "Mikronezija",
        "FO": "Ferski otoki",
        "FR": "Francija",
        "GB": "Velika Britanija",
        "GE": "Gruzija",
        "GF": "Francoska Gvajana",
        "GH": "Gana",
        "GL": "Grenlandija",
        "GM": "Gambija",
        "GN": "Gvineja",
        "GP": "Gvadalupe",
        "GQ": "Ekvatorialna Gvineja",
        "GR": "Grčija",
        "GS": "Južna Georgia in Južni Sandwichevi otoki",
        "GT": "Gvatemala",
        "GW": "Gvineja Bissau",
        "GY": "Gvajana",
        "HK": "Posebno administrativno območje LR Kitajske Hong Kong",
        "HM": "Otok Heard in otočje McDonald",
        "HR": "Hrvaška",
        "HU": "Madžarska",
        "IC": "Kanarski otoki",
        "ID": "Indonezija",
        "IE": "Irska",
        "IL": "Izrael",
        "IM": "Otok Man",
        "IN": "Indija",
        "IO": "Britansko ozemlje v Indijskem oceanu",
        "IQ": "Irak",
        "IS": "Islandija",
        "IT": "Italija",
        "JM": "Jamajka",
        "JO": "Jordanija",
        "JP": "Japonska",
        "KE": "Kenija",
        "KG": "Kirgizistan",
        "KH": "Kambodža",
        "KM": "Komori",
        "KN": "Saint Kitts in Nevis",
        "KP": "Severna Koreja",
        "KR": "Južna Koreja",
        "KW": "Kuvajt",
        "KY": "Kajmanski otoki",
        "KZ": "Kazahstan",
        "LB": "Libanon",
        "LI": "Lihtenštajn",
        "LK": "Šrilanka",
        "LR": "Liberija",
        "LS": "Lesoto",
        "LT": "Litva",
        "LU": "Luksemburg",
        "LV": "Latvija",
        "LY": "Libija",
        "MA": "Maroko",
        "MC": "Monako",
        "MD": "Moldavija",
        "ME": "Črna gora",
        "MG": "Madagaskar",
        "MH": "Marshallovi otoki",
        "MK": "Makedonija",
        "MM": "Mjanmar (Burma)",
        "MN": "Mongolija",
        "MO": "Posebno administrativno območje LR Kitajske Macao",
        "MP": "Severni Marianski otoki",
        "MQ": "Martinik",
        "MR": "Mavretanija",
        "MV": "Maldivi",
        "MW": "Malavi",
        "MX": "Mehika",
        "MY": "Malezija",
        "MZ": "Mozambik",
        "NA": "Namibija",
        "NC": "Nova Kaledonija",
        "NF": "Norfolški otok",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Nizozemska",
        "NO": "Norveška",
        "NZ": "Nova Zelandija",
        "PF": "Francoska Polinezija",
        "PG": "Papua Nova Gvineja",
        "PH": "Filipini",
        "PL": "Poljska",
        "PM": "Saint Pierre in Miquelon",
        "PN": "Pitcairn",
        "PR": "Portoriko",
        "PS": "Palestinsko ozemlje",
        "PT": "Portugalska",
        "PY": "Paragvaj",
        "QA": "Katar",
        "QO": "Ostala oceanija",
        "RE": "Reunion",
        "RO": "Romunija",
        "RS": "Srbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudova Arabija",
        "SB": "Salomonovi otoki",
        "SC": "Sejšeli",
        "SE": "Švedska",
        "SG": "Singapur",
        "SH": "Sveta Helena",
        "SI": "Slovenija",
        "SJ": "Svalbard in Jan Mayen",
        "SK": "Slovaška",
        "SO": "Somalija",
        "SR": "Surinam",
        "SS": "Južni Sudan",
        "ST": "Sao Tome in Principe",
        "SV": "Salvador",
        "SY": "Sirija",
        "SZ": "Svazi",
        "TC": "Otočji Turks in Caicos",
        "TD": "Čad",
        "TF": "Francosko južno ozemlje",
        "TH": "Tajska",
        "TJ": "Tadžikistan",
        "TL": "Vzhodni Timor",
        "TN": "Tunizija",
        "TR": "Turčija",
        "TT": "Trinidad in Tobago",
        "TW": "Tajvan",
        "TZ": "Tanzanija",
        "UA": "Ukrajina",
        "UM": "Druga ameriška ozemlja v Tihem oceanu",
        "US": "Združene države Amerike",
        "UY": "Urugvaj",
        "VA": "Vatikan",
        "VC": "Saint Vincent in Grenadine",
        "VG": "Britanski Deviški otoki",
        "VI": "Ameriški Deviški otoki",
        "WF": "Wallis in Futuna",
        "YE": "Jemen",
        "ZA": "Južnoafriška republika",
        "ZM": "Zambija",
        "ZW": "Zimbabve",
        "ZZ": "Neznano ali neveljavno območje"
    };
  }-*/;
}
