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

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

  @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",
        "BJ",
        "BM",
        "BY",
        "BW",
        "BO",
        "BA",
        "CX",
        "BR",
        "VG",
        "IO",
        "BN",
        "BG",
        "BF",
        "BI",
        "BT",
        "EA",
        "CY",
        "CK",
        "ME",
        "CW",
        "TD",
        "CZ",
        "CL",
        "DK",
        "DG",
        "DM",
        "DO",
        "DJ",
        "EG",
        "EC",
        "GQ",
        "ER",
        "EE",
        "ET",
        "EU",
        "EZ",
        "FK",
        "FO",
        "FJ",
        "PH",
        "FI",
        "FR",
        "GF",
        "PF",
        "TF",
        "GA",
        "GM",
        "GH",
        "GI",
        "GR",
        "GD",
        "GL",
        "GE",
        "GP",
        "GU",
        "GG",
        "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",
        "BQ",
        "QA",
        "KZ",
        "KE",
        "CN",
        "KG",
        "KI",
        "CC",
        "CO",
        "KM",
        "CG",
        "CD",
        "XK",
        "CR",
        "CU",
        "KW",
        "LA",
        "LV",
        "LS",
        "LB",
        "LR",
        "LY",
        "LI",
        "LT",
        "LU",
        "MG",
        "HU",
        "MK",
        "MW",
        "MV",
        "MY",
        "ML",
        "UM",
        "MT",
        "MA",
        "MH",
        "MQ",
        "MR",
        "MU",
        "YT",
        "MX",
        "FM",
        "MM",
        "MD",
        "MC",
        "MN",
        "MS",
        "MZ",
        "NA",
        "NR",
        "NP",
        "NE",
        "NG",
        "NI",
        "NU",
        "NL",
        "NO",
        "NC",
        "NZ",
        "DE",
        "CI",
        "OM",
        "HM",
        "PN",
        "TC",
        "AC",
        "BV",
        "CP",
        "IM",
        "NF",
        "PK",
        "PW",
        "PS",
        "PA",
        "PG",
        "PY",
        "PE",
        "PL",
        "PR",
        "PT",
        "HK",
        "MO",
        "RE",
        "RW",
        "RO",
        "RU",
        "BL",
        "MF",
        "SB",
        "SV",
        "WS",
        "SM",
        "SA",
        "SC",
        "SN",
        "SL",
        "SG",
        "SX",
        "SY",
        "US",
        "KP",
        "MP",
        "SK",
        "SI",
        "SO",
        "RS",
        "CF",
        "SD",
        "SR",
        "SJ",
        "SZ",
        "SH",
        "LC",
        "KN",
        "PM",
        "ST",
        "VC",
        "ES",
        "LK",
        "SE",
        "CH",
        "TJ",
        "TH",
        "TW",
        "TZ",
        "TL",
        "TG",
        "TK",
        "TO",
        "TT",
        "TA",
        "TN",
        "TM",
        "TR",
        "TV",
        "UG",
        "AE",
        "UN",
        "GB",
        "UA",
        "UY",
        "UZ",
        "VU",
        "QO",
        "VA",
        "VE",
        "VN",
        "WF",
        "XA",
        "XB",
        "ZM",
        "EH",
        "CV",
        "ZW",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Svijet");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Sjevernoamerički kontinent");
    namesMap.put("005", "Južna Amerika");
    namesMap.put("009", "Oceanija");
    namesMap.put("011", "Zapadna Afrika");
    namesMap.put("013", "Centralna Amerika");
    namesMap.put("014", "Istočna Afrika");
    namesMap.put("015", "Sjeverna Afrika");
    namesMap.put("017", "Središnja Afrika");
    namesMap.put("018", "Južna Afrika");
    namesMap.put("019", "Amerike");
    namesMap.put("021", "Sjeverna Amerika");
    namesMap.put("029", "Karibi");
    namesMap.put("030", "Istočna Azija");
    namesMap.put("034", "Južna Azija");
    namesMap.put("035", "Jugoistočna Azija");
    namesMap.put("039", "Južna Europa");
    namesMap.put("053", "Australazija");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "Mikronezijsko područje");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Srednja Azija");
    namesMap.put("145", "Zapadna Azija");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Istočna Europa");
    namesMap.put("154", "Sjeverna Europa");
    namesMap.put("155", "Zapadna Europa");
    namesMap.put("202", "Subsaharska Afrika");
    namesMap.put("419", "Latinska Amerika");
    namesMap.put("AC", "Otok Ascension");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Ujedinjeni Arapski Emirati");
    namesMap.put("AF", "Afganistan");
    namesMap.put("AG", "Antigva i Barbuda");
    namesMap.put("AI", "Angvila");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Armenija");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AS", "Američka Samoa");
    namesMap.put("AT", "Austrija");
    namesMap.put("AU", "Australija");
    namesMap.put("AX", "Ålandski otoci");
    namesMap.put("AZ", "Azerbajdžan");
    namesMap.put("BA", "Bosna i Hercegovina");
    namesMap.put("BD", "Bangladeš");
    namesMap.put("BE", "Belgija");
    namesMap.put("BG", "Bugarska");
    namesMap.put("BH", "Bahrein");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BM", "Bermudi");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Karipski otoci Nizozemske");
    namesMap.put("BS", "Bahami");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Otok Bouvet");
    namesMap.put("BW", "Bocvana");
    namesMap.put("BY", "Bjelorusija");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosovi (Keelingovi) otoci");
    namesMap.put("CD", "Kongo - Kinshasa");
    namesMap.put("CF", "Srednjoafrička Republika");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Švicarska");
    namesMap.put("CI", "Obala Bjelokosti");
    namesMap.put("CK", "Cookovi Otoci");
    namesMap.put("CL", "Čile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kina");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Otok Clipperton");
    namesMap.put("CR", "Kostarika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Zelenortska Republika");
    namesMap.put("CX", "Božićni otok");
    namesMap.put("CY", "Cipar");
    namesMap.put("CZ", "Češka");
    namesMap.put("DE", "Njemačka");
    namesMap.put("DJ", "Džibuti");
    namesMap.put("DK", "Danska");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikanska Republika");
    namesMap.put("DZ", "Alžir");
    namesMap.put("EA", "Ceuta i Melilla");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estonija");
    namesMap.put("EG", "Egipat");
    namesMap.put("EH", "Zapadna Sahara");
    namesMap.put("ER", "Eritreja");
    namesMap.put("ES", "Španjolska");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Europska unija");
    namesMap.put("EZ", "eurozona");
    namesMap.put("FI", "Finska");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Falklandski otoci");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Farski otoci");
    namesMap.put("FR", "Francuska");
    namesMap.put("GB", "Ujedinjeno Kraljevstvo");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Francuska Gijana");
    namesMap.put("GH", "Gana");
    namesMap.put("GL", "Grenland");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvineja");
    namesMap.put("GP", "Guadalupe");
    namesMap.put("GQ", "Ekvatorska Gvineja");
    namesMap.put("GR", "Grčka");
    namesMap.put("GS", "Južna Georgija i Južni Sendvički Otoci");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GW", "Gvineja Bisau");
    namesMap.put("GY", "Gvajana");
    namesMap.put("HK", "PUP Hong Kong Kina");
    namesMap.put("HM", "Otoci Heard i McDonald");
    namesMap.put("HR", "Hrvatska");
    namesMap.put("HU", "Mađarska");
    namesMap.put("IC", "Kanarski otoci");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Irska");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Otok Man");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Britanski Indijskooceanski teritorij");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Italija");
    namesMap.put("JM", "Jamajka");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgistan");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komori");
    namesMap.put("KN", "Sveti Kristofor i Nevis");
    namesMap.put("KP", "Sjeverna Koreja");
    namesMap.put("KR", "Južna Koreja");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Kajmanski otoci");
    namesMap.put("KZ", "Kazahstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LC", "Sveta Lucija");
    namesMap.put("LI", "Lihtenštajn");
    namesMap.put("LK", "Šri Lanka");
    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", "Crna Gora");
    namesMap.put("MF", "Saint Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Maršalovi Otoci");
    namesMap.put("MK", "Makedonija");
    namesMap.put("MM", "Mjanmar (Burma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "PUP Makao Kina");
    namesMap.put("MP", "Sjevernomarijanski otoci");
    namesMap.put("MR", "Mauretanija");
    namesMap.put("MU", "Mauricijus");
    namesMap.put("MV", "Maldivi");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Meksiko");
    namesMap.put("MY", "Malezija");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Nova Kaledonija");
    namesMap.put("NF", "Otok Norfolk");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Nizozemska");
    namesMap.put("NO", "Norveška");
    namesMap.put("NZ", "Novi Zeland");
    namesMap.put("PF", "Francuska Polinezija");
    namesMap.put("PG", "Papua Nova Gvineja");
    namesMap.put("PH", "Filipini");
    namesMap.put("PL", "Poljska");
    namesMap.put("PM", "Sveti Petar i Mikelon");
    namesMap.put("PN", "Otoci Pitcairn");
    namesMap.put("PR", "Portoriko");
    namesMap.put("PS", "Palestinsko područje");
    namesMap.put("PY", "Paragvaj");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Vanjska područja Oceanije");
    namesMap.put("RO", "Rumunjska");
    namesMap.put("RS", "Srbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudijska Arabija");
    namesMap.put("SB", "Salomonski Otoci");
    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 i Jan Mayen");
    namesMap.put("SK", "Slovačka");
    namesMap.put("SL", "Sijera Leone");
    namesMap.put("SO", "Somalija");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Južni Sudan");
    namesMap.put("ST", "Sveti Toma i Princip");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazi");
    namesMap.put("TC", "Otoci Turks i Caicos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francuski južni i antarktički teritoriji");
    namesMap.put("TH", "Tajland");
    namesMap.put("TJ", "Tadžikistan");
    namesMap.put("TN", "Tunis");
    namesMap.put("TR", "Turska");
    namesMap.put("TT", "Trinidad i Tobago");
    namesMap.put("TW", "Tajvan");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukrajina");
    namesMap.put("UM", "Mali udaljeni otoci SAD-a");
    namesMap.put("UN", "Ujedinjeni narodi");
    namesMap.put("US", "Sjedinjene Američke Države");
    namesMap.put("UY", "Urugvaj");
    namesMap.put("VA", "Vatikanski Grad");
    namesMap.put("VC", "Sveti Vincent i Grenadini");
    namesMap.put("VG", "Britanski Djevičanski otoci");
    namesMap.put("VI", "Američki Djevičanski otoci");
    namesMap.put("VN", "Vijetnam");
    namesMap.put("WF", "Wallis i Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Južnoafrička Republika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "nepoznato područje");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Svijet",
        "002": "Afrika",
        "003": "Sjevernoamerički kontinent",
        "005": "Južna Amerika",
        "009": "Oceanija",
        "011": "Zapadna Afrika",
        "013": "Centralna Amerika",
        "014": "Istočna Afrika",
        "015": "Sjeverna Afrika",
        "017": "Središnja Afrika",
        "018": "Južna Afrika",
        "019": "Amerike",
        "021": "Sjeverna Amerika",
        "029": "Karibi",
        "030": "Istočna Azija",
        "034": "Južna Azija",
        "035": "Jugoistočna Azija",
        "039": "Južna Europa",
        "053": "Australazija",
        "054": "Melanezija",
        "057": "Mikronezijsko područje",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Srednja Azija",
        "145": "Zapadna Azija",
        "150": "Europa",
        "151": "Istočna Europa",
        "154": "Sjeverna Europa",
        "155": "Zapadna Europa",
        "202": "Subsaharska Afrika",
        "419": "Latinska Amerika",
        "AC": "Otok Ascension",
        "AD": "Andora",
        "AE": "Ujedinjeni Arapski Emirati",
        "AF": "Afganistan",
        "AG": "Antigva i Barbuda",
        "AI": "Angvila",
        "AL": "Albanija",
        "AM": "Armenija",
        "AQ": "Antarktika",
        "AS": "Američka Samoa",
        "AT": "Austrija",
        "AU": "Australija",
        "AX": "Ålandski otoci",
        "AZ": "Azerbajdžan",
        "BA": "Bosna i Hercegovina",
        "BD": "Bangladeš",
        "BE": "Belgija",
        "BG": "Bugarska",
        "BH": "Bahrein",
        "BL": "Saint Barthélemy",
        "BM": "Bermudi",
        "BN": "Brunej",
        "BO": "Bolivija",
        "BQ": "Karipski otoci Nizozemske",
        "BS": "Bahami",
        "BT": "Butan",
        "BV": "Otok Bouvet",
        "BW": "Bocvana",
        "BY": "Bjelorusija",
        "CA": "Kanada",
        "CC": "Kokosovi (Keelingovi) otoci",
        "CD": "Kongo - Kinshasa",
        "CF": "Srednjoafrička Republika",
        "CG": "Kongo - Brazzaville",
        "CH": "Švicarska",
        "CI": "Obala Bjelokosti",
        "CK": "Cookovi Otoci",
        "CL": "Čile",
        "CM": "Kamerun",
        "CN": "Kina",
        "CO": "Kolumbija",
        "CP": "Otok Clipperton",
        "CR": "Kostarika",
        "CU": "Kuba",
        "CV": "Zelenortska Republika",
        "CX": "Božićni otok",
        "CY": "Cipar",
        "CZ": "Češka",
        "DE": "Njemačka",
        "DJ": "Džibuti",
        "DK": "Danska",
        "DM": "Dominika",
        "DO": "Dominikanska Republika",
        "DZ": "Alžir",
        "EA": "Ceuta i Melilla",
        "EC": "Ekvador",
        "EE": "Estonija",
        "EG": "Egipat",
        "EH": "Zapadna Sahara",
        "ER": "Eritreja",
        "ES": "Španjolska",
        "ET": "Etiopija",
        "EU": "Europska unija",
        "EZ": "eurozona",
        "FI": "Finska",
        "FJ": "Fidži",
        "FK": "Falklandski otoci",
        "FM": "Mikronezija",
        "FO": "Farski otoci",
        "FR": "Francuska",
        "GB": "Ujedinjeno Kraljevstvo",
        "GE": "Gruzija",
        "GF": "Francuska Gijana",
        "GH": "Gana",
        "GL": "Grenland",
        "GM": "Gambija",
        "GN": "Gvineja",
        "GP": "Guadalupe",
        "GQ": "Ekvatorska Gvineja",
        "GR": "Grčka",
        "GS": "Južna Georgija i Južni Sendvički Otoci",
        "GT": "Gvatemala",
        "GW": "Gvineja Bisau",
        "GY": "Gvajana",
        "HK": "PUP Hong Kong Kina",
        "HM": "Otoci Heard i McDonald",
        "HR": "Hrvatska",
        "HU": "Mađarska",
        "IC": "Kanarski otoci",
        "ID": "Indonezija",
        "IE": "Irska",
        "IL": "Izrael",
        "IM": "Otok Man",
        "IN": "Indija",
        "IO": "Britanski Indijskooceanski teritorij",
        "IQ": "Irak",
        "IS": "Island",
        "IT": "Italija",
        "JM": "Jamajka",
        "KE": "Kenija",
        "KG": "Kirgistan",
        "KH": "Kambodža",
        "KM": "Komori",
        "KN": "Sveti Kristofor i Nevis",
        "KP": "Sjeverna Koreja",
        "KR": "Južna Koreja",
        "KW": "Kuvajt",
        "KY": "Kajmanski otoci",
        "KZ": "Kazahstan",
        "LB": "Libanon",
        "LC": "Sveta Lucija",
        "LI": "Lihtenštajn",
        "LK": "Šri Lanka",
        "LR": "Liberija",
        "LS": "Lesoto",
        "LT": "Litva",
        "LU": "Luksemburg",
        "LV": "Latvija",
        "LY": "Libija",
        "MA": "Maroko",
        "MC": "Monako",
        "MD": "Moldavija",
        "ME": "Crna Gora",
        "MF": "Saint Martin",
        "MG": "Madagaskar",
        "MH": "Maršalovi Otoci",
        "MK": "Makedonija",
        "MM": "Mjanmar (Burma)",
        "MN": "Mongolija",
        "MO": "PUP Makao Kina",
        "MP": "Sjevernomarijanski otoci",
        "MR": "Mauretanija",
        "MU": "Mauricijus",
        "MV": "Maldivi",
        "MW": "Malavi",
        "MX": "Meksiko",
        "MY": "Malezija",
        "MZ": "Mozambik",
        "NA": "Namibija",
        "NC": "Nova Kaledonija",
        "NF": "Otok Norfolk",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Nizozemska",
        "NO": "Norveška",
        "NZ": "Novi Zeland",
        "PF": "Francuska Polinezija",
        "PG": "Papua Nova Gvineja",
        "PH": "Filipini",
        "PL": "Poljska",
        "PM": "Sveti Petar i Mikelon",
        "PN": "Otoci Pitcairn",
        "PR": "Portoriko",
        "PS": "Palestinsko područje",
        "PY": "Paragvaj",
        "QA": "Katar",
        "QO": "Vanjska područja Oceanije",
        "RO": "Rumunjska",
        "RS": "Srbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudijska Arabija",
        "SB": "Salomonski Otoci",
        "SC": "Sejšeli",
        "SE": "Švedska",
        "SG": "Singapur",
        "SH": "Sveta Helena",
        "SI": "Slovenija",
        "SJ": "Svalbard i Jan Mayen",
        "SK": "Slovačka",
        "SL": "Sijera Leone",
        "SO": "Somalija",
        "SR": "Surinam",
        "SS": "Južni Sudan",
        "ST": "Sveti Toma i Princip",
        "SV": "Salvador",
        "SY": "Sirija",
        "SZ": "Svazi",
        "TC": "Otoci Turks i Caicos",
        "TD": "Čad",
        "TF": "Francuski južni i antarktički teritoriji",
        "TH": "Tajland",
        "TJ": "Tadžikistan",
        "TN": "Tunis",
        "TR": "Turska",
        "TT": "Trinidad i Tobago",
        "TW": "Tajvan",
        "TZ": "Tanzanija",
        "UA": "Ukrajina",
        "UM": "Mali udaljeni otoci SAD-a",
        "UN": "Ujedinjeni narodi",
        "US": "Sjedinjene Američke Države",
        "UY": "Urugvaj",
        "VA": "Vatikanski Grad",
        "VC": "Sveti Vincent i Grenadini",
        "VG": "Britanski Djevičanski otoci",
        "VI": "Američki Djevičanski otoci",
        "VN": "Vijetnam",
        "WF": "Wallis i Futuna",
        "YE": "Jemen",
        "ZA": "Južnoafrička Republika",
        "ZM": "Zambija",
        "ZW": "Zimbabve",
        "ZZ": "nepoznato područje"
    };
  }-*/;
}
