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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "An Saoghal");
    namesMap.put("002", "Afraga");
    namesMap.put("003", "Aimeireaga a Tuath");
    namesMap.put("005", "Aimeireaga a Deas");
    namesMap.put("009", "Roinn a’ Chuain Sèimh");
    namesMap.put("011", "Afraga an Iar");
    namesMap.put("013", "Meadhan Aimeireaga");
    namesMap.put("014", "Afraga an Ear");
    namesMap.put("015", "Afraga a Tuath");
    namesMap.put("017", "Meadhan Afraga");
    namesMap.put("018", "Ceann a Deas Afraga");
    namesMap.put("019", "An Dà Aimeireaga");
    namesMap.put("021", "Ceann a Tuath Aimeireaga");
    namesMap.put("029", "Am Muir Caraibeach");
    namesMap.put("030", "Àisia an Ear");
    namesMap.put("034", "Àisia a Deas");
    namesMap.put("035", "Àisia an Ear-dheas");
    namesMap.put("039", "An Roinn-Eòrpa a Deas");
    namesMap.put("053", "Astràilia is Sealainn Nuadh");
    namesMap.put("054", "Na h-Eileanan Dubha");
    namesMap.put("057", "Roinn nam Meanbh-Eileanan");
    namesMap.put("061", "Poilinèis");
    namesMap.put("142", "Àisia");
    namesMap.put("143", "Meadhan Àisia");
    namesMap.put("145", "Àisia an Iar");
    namesMap.put("150", "An Roinn-Eòrpa");
    namesMap.put("151", "An Roinn-Eòrpa an Ear");
    namesMap.put("154", "An Roinn-Eòrpa a Tuath");
    namesMap.put("155", "An Roinn-Eòrpa an Iar");
    namesMap.put("419", "Aimeireaga Laidinneach");
    namesMap.put("AC", "Eilean na Deasgabhalach");
    namesMap.put("AE", "Na h-Iomaratan Arabach Aonaichte");
    namesMap.put("AF", "Afghanastàn");
    namesMap.put("AG", "Aintìoga is Barbuda");
    namesMap.put("AI", "Anguillia");
    namesMap.put("AL", "Albàinia");
    namesMap.put("AM", "Airmeinea");
    namesMap.put("AO", "Angòla");
    namesMap.put("AQ", "An Antartaig");
    namesMap.put("AR", "An Argantain");
    namesMap.put("AS", "Samotha na h-Aimeireaga");
    namesMap.put("AT", "An Ostair");
    namesMap.put("AU", "Astràilia");
    namesMap.put("AW", "Arùba");
    namesMap.put("AX", "Na h-Eileanan Åland");
    namesMap.put("AZ", "Asarbaideàn");
    namesMap.put("BA", "Bosna is Hearsagobhana");
    namesMap.put("BD", "Bangladais");
    namesMap.put("BE", "A’ Bheilg");
    namesMap.put("BF", "Buirciona Faso");
    namesMap.put("BG", "A’ Bhulgair");
    namesMap.put("BH", "Bachrain");
    namesMap.put("BI", "Burundaidh");
    namesMap.put("BJ", "Beinin");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BM", "Bearmùda");
    namesMap.put("BN", "Brùnaigh");
    namesMap.put("BO", "Boilibhia");
    namesMap.put("BQ", "Na Tìrean Ìsle Caraibeach");
    namesMap.put("BR", "Braisil");
    namesMap.put("BS", "Na h-Eileanan Bhathama");
    namesMap.put("BT", "Butàn");
    namesMap.put("BV", "Eilean Bouvet");
    namesMap.put("BW", "Botsuana");
    namesMap.put("BY", "A’ Bhealaruis");
    namesMap.put("BZ", "A’ Bheilìs");
    namesMap.put("CC", "Na h-Eileanan Chocos (Keeling)");
    namesMap.put("CF", "Poblachd Meadhan Afraga");
    namesMap.put("CG", "A’ Chongo - Brazzaville");
    namesMap.put("CH", "An Eilbheis");
    namesMap.put("CK", "Eileanan Cook");
    namesMap.put("CL", "An t-Sile");
    namesMap.put("CM", "Camarun");
    namesMap.put("CN", "An t-Sìn");
    namesMap.put("CO", "Coloimbia");
    namesMap.put("CP", "Eilean Clipperton");
    namesMap.put("CR", "Costa Rìcea");
    namesMap.put("CU", "Cùba");
    namesMap.put("CV", "An Ceap Uaine");
    namesMap.put("CX", "Eilean na Nollaig");
    namesMap.put("CY", "Cìopras");
    namesMap.put("CZ", "An t-Seic");
    namesMap.put("DE", "A’ Ghearmailt");
    namesMap.put("DJ", "Diobùtaidh");
    namesMap.put("DK", "An Danmhairg");
    namesMap.put("DM", "Doiminicea");
    namesMap.put("DO", "A’ Phoblachd Dhoiminiceach");
    namesMap.put("DZ", "Aildiria");
    namesMap.put("EA", "Ceuta agus Melilla");
    namesMap.put("EC", "Eacuador");
    namesMap.put("EE", "An Eastoin");
    namesMap.put("EG", "An Èiphit");
    namesMap.put("EH", "Sathara an Iar");
    namesMap.put("ER", "Eartra");
    namesMap.put("ES", "An Spàinnt");
    namesMap.put("ET", "An Itiop");
    namesMap.put("EU", "An t-Aonadh Eòrpach");
    namesMap.put("EZ", "Raon an Eòro");
    namesMap.put("FI", "An Fhionnlann");
    namesMap.put("FJ", "Fìdi");
    namesMap.put("FK", "Na h-Eileanan Fàclannach");
    namesMap.put("FM", "Na Meanbh-eileanan");
    namesMap.put("FO", "Na h-Eileanan Fàro");
    namesMap.put("FR", "An Fhraing");
    namesMap.put("GB", "An Rìoghachd Aonaichte");
    namesMap.put("GD", "Greanàda");
    namesMap.put("GE", "A’ Chairtbheil");
    namesMap.put("GF", "Guidheàna na Frainge");
    namesMap.put("GG", "Geàrnsaidh");
    namesMap.put("GH", "Gàna");
    namesMap.put("GI", "Diobraltar");
    namesMap.put("GL", "A’ Ghraonlann");
    namesMap.put("GM", "A’ Ghaimbia");
    namesMap.put("GN", "Gini");
    namesMap.put("GP", "Guadalup");
    namesMap.put("GQ", "Gini Mheadhan-Chriosach");
    namesMap.put("GR", "A’ Ghreug");
    namesMap.put("GS", "Seòirsea a Deas is na h-Eileanan Sandwich a Deas");
    namesMap.put("GT", "Guatamala");
    namesMap.put("GW", "Gini-Bioso");
    namesMap.put("GY", "Guidheàna");
    namesMap.put("HK", "Hong Kong SAR na Sìne");
    namesMap.put("HM", "Eilean Heard is MhicDhòmhnaill");
    namesMap.put("HN", "Hondùras");
    namesMap.put("HR", "A’ Chròthais");
    namesMap.put("HT", "Haidhti");
    namesMap.put("HU", "An Ungair");
    namesMap.put("IC", "Na h-Eileanan Canàrach");
    namesMap.put("ID", "Na h-Innd-innse");
    namesMap.put("IE", "Èirinn");
    namesMap.put("IL", "Iosrael");
    namesMap.put("IM", "Eilean Mhanainn");
    namesMap.put("IN", "Na h-Innseachan");
    namesMap.put("IO", "Ranntair Breatannach Cuan nan Innseachan");
    namesMap.put("IQ", "Ioràc");
    namesMap.put("IR", "Ioràn");
    namesMap.put("IS", "Innis Tìle");
    namesMap.put("IT", "An Eadailt");
    namesMap.put("JE", "Deàrsaidh");
    namesMap.put("JM", "Diameuga");
    namesMap.put("JO", "Iòrdan");
    namesMap.put("JP", "An t-Seapan");
    namesMap.put("KE", "Ceinia");
    namesMap.put("KG", "Cìorgastan");
    namesMap.put("KH", "Cambuidea");
    namesMap.put("KI", "Ciribeas");
    namesMap.put("KN", "Naomh Crìstean is Nibheis");
    namesMap.put("KP", "Coirèa a Tuath");
    namesMap.put("KR", "Coirèa");
    namesMap.put("KW", "Cuibhèit");
    namesMap.put("KY", "Na h-Eileanan Caimean");
    namesMap.put("KZ", "Casachstàn");
    namesMap.put("LA", "Làthos");
    namesMap.put("LB", "Leabanon");
    namesMap.put("LC", "Naomh Lùisea");
    namesMap.put("LI", "Lichtenstein");
    namesMap.put("LK", "Sri Lanca");
    namesMap.put("LR", "Libèir");
    namesMap.put("LS", "Leasoto");
    namesMap.put("LT", "An Liotuain");
    namesMap.put("LU", "Lugsamburg");
    namesMap.put("LV", "An Laitbhe");
    namesMap.put("LY", "Libia");
    namesMap.put("MA", "Moroco");
    namesMap.put("MD", "A’ Mholdobha");
    namesMap.put("ME", "Am Monadh Neagrach");
    namesMap.put("MF", "Naomh Màrtainn");
    namesMap.put("MG", "Madagasgar");
    namesMap.put("MH", "Eileanan Mharshall");
    namesMap.put("MK", "A’ Mhasadon");
    namesMap.put("ML", "Màili");
    namesMap.put("MM", "Miànmar");
    namesMap.put("MN", "Dùthaich nam Mongol");
    namesMap.put("MO", "Macàthu SAR na Sìne");
    namesMap.put("MP", "Na h-Eileanan Mairianach a Tuath");
    namesMap.put("MQ", "Mairtinic");
    namesMap.put("MR", "Moratàinea");
    namesMap.put("MS", "Montsarat");
    namesMap.put("MU", "Na h-Eileanan Mhoiriseas");
    namesMap.put("MV", "Na h-Eileanan Mhaladaibh");
    namesMap.put("MW", "Malabhaidh");
    namesMap.put("MX", "Meagsago");
    namesMap.put("MY", "Malaidhsea");
    namesMap.put("MZ", "Mòsaimbic");
    namesMap.put("NA", "An Namaib");
    namesMap.put("NC", "Cailleann Nuadh");
    namesMap.put("NE", "Nìgeir");
    namesMap.put("NF", "Eilean Norfolk");
    namesMap.put("NG", "Nigèiria");
    namesMap.put("NI", "Niocaragua");
    namesMap.put("NL", "Na Tìrean Ìsle");
    namesMap.put("NO", "Nirribhidh");
    namesMap.put("NP", "Neapàl");
    namesMap.put("NR", "Nabhru");
    namesMap.put("NZ", "Sealainn Nuadh");
    namesMap.put("OM", "Omàn");
    namesMap.put("PE", "Pearù");
    namesMap.put("PF", "Poilinèis na Frainge");
    namesMap.put("PG", "Gini Nuadh Phaputhach");
    namesMap.put("PH", "Na h-Eileanan Filipineach");
    namesMap.put("PK", "Pagastàn");
    namesMap.put("PL", "A’ Phòlainn");
    namesMap.put("PM", "Saint Pierre agus Miquelon");
    namesMap.put("PN", "Eileanan Pheit a’ Chàirn");
    namesMap.put("PR", "Porto Rìceo");
    namesMap.put("PS", "Na Ranntairean Palastaineach");
    namesMap.put("PT", "A’ Phortagail");
    namesMap.put("PW", "Palabh");
    namesMap.put("PY", "Paraguaidh");
    namesMap.put("QA", "Catar");
    namesMap.put("QO", "Roinn Iomallach a’ Chuain Sèimh");
    namesMap.put("RO", "Romàinia");
    namesMap.put("RS", "An t-Sèirb");
    namesMap.put("RU", "An Ruis");
    namesMap.put("RW", "Rubhanda");
    namesMap.put("SA", "Aràibia nan Sabhd");
    namesMap.put("SB", "Eileanan Sholaimh");
    namesMap.put("SC", "Na h-Eileanan Sheiseall");
    namesMap.put("SD", "Sudàn");
    namesMap.put("SE", "An t-Suain");
    namesMap.put("SG", "Singeapòr");
    namesMap.put("SH", "Eilean Naomh Eilidh");
    namesMap.put("SI", "An t-Slòbhain");
    namesMap.put("SJ", "Svalbard agus Jan Mayen");
    namesMap.put("SK", "An t-Slòbhac");
    namesMap.put("SL", "Siarra Leòmhann");
    namesMap.put("SN", "Seanagal");
    namesMap.put("SO", "Somàilia");
    namesMap.put("SR", "Suranam");
    namesMap.put("SS", "Sudàn a Deas");
    namesMap.put("ST", "São Tomé agus Príncipe");
    namesMap.put("SV", "An Salbhador");
    namesMap.put("SY", "Siridhea");
    namesMap.put("SZ", "Dùthaich nan Suasaidh");
    namesMap.put("TC", "Na h-Eileanan Turcach is Caiceo");
    namesMap.put("TD", "An t-Seàd");
    namesMap.put("TF", "Ranntairean a Deas na Frainge");
    namesMap.put("TH", "Dùthaich nan Tàidh");
    namesMap.put("TJ", "Taidigeastàn");
    namesMap.put("TM", "Turcmanastàn");
    namesMap.put("TN", "Tuinisea");
    namesMap.put("TR", "An Tuirc");
    namesMap.put("TT", "Trianaid agus Tobago");
    namesMap.put("TV", "Tubhalu");
    namesMap.put("TW", "Taidh-Bhàn");
    namesMap.put("TZ", "An Tansan");
    namesMap.put("UA", "An Ucràin");
    namesMap.put("UM", "Meanbh-Eileanan Iomallach nan SA");
    namesMap.put("UN", "Na Dùthchannan Aonaichte");
    namesMap.put("US", "Na Stàitean Aonaichte");
    namesMap.put("UY", "Uruguaidh");
    namesMap.put("UZ", "Usbagastàn");
    namesMap.put("VA", "Cathair na Bhatacain");
    namesMap.put("VC", "Naomh Bhionsant agus Eileanan Greanadach");
    namesMap.put("VE", "A’ Bheiniseala");
    namesMap.put("VG", "Eileanan Breatannach na Maighdinn");
    namesMap.put("VI", "Eileanan na Maighdinn aig na SA");
    namesMap.put("VN", "Bhiet-Nam");
    namesMap.put("WF", "Uallas agus Futuna");
    namesMap.put("WS", "Samotha");
    namesMap.put("XK", "A’ Chosobho");
    namesMap.put("YE", "An Eaman");
    namesMap.put("ZA", "Afraga a Deas");
    namesMap.put("ZM", "Sàimbia");
    namesMap.put("ZW", "An t-Sìombab");
    namesMap.put("ZZ", "Roinn-dùthcha neo-aithnichte");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "An Saoghal",
        "002": "Afraga",
        "003": "Aimeireaga a Tuath",
        "005": "Aimeireaga a Deas",
        "009": "Roinn a’ Chuain Sèimh",
        "011": "Afraga an Iar",
        "013": "Meadhan Aimeireaga",
        "014": "Afraga an Ear",
        "015": "Afraga a Tuath",
        "017": "Meadhan Afraga",
        "018": "Ceann a Deas Afraga",
        "019": "An Dà Aimeireaga",
        "021": "Ceann a Tuath Aimeireaga",
        "029": "Am Muir Caraibeach",
        "030": "Àisia an Ear",
        "034": "Àisia a Deas",
        "035": "Àisia an Ear-dheas",
        "039": "An Roinn-Eòrpa a Deas",
        "053": "Astràilia is Sealainn Nuadh",
        "054": "Na h-Eileanan Dubha",
        "057": "Roinn nam Meanbh-Eileanan",
        "061": "Poilinèis",
        "142": "Àisia",
        "143": "Meadhan Àisia",
        "145": "Àisia an Iar",
        "150": "An Roinn-Eòrpa",
        "151": "An Roinn-Eòrpa an Ear",
        "154": "An Roinn-Eòrpa a Tuath",
        "155": "An Roinn-Eòrpa an Iar",
        "419": "Aimeireaga Laidinneach",
        "AC": "Eilean na Deasgabhalach",
        "AE": "Na h-Iomaratan Arabach Aonaichte",
        "AF": "Afghanastàn",
        "AG": "Aintìoga is Barbuda",
        "AI": "Anguillia",
        "AL": "Albàinia",
        "AM": "Airmeinea",
        "AO": "Angòla",
        "AQ": "An Antartaig",
        "AR": "An Argantain",
        "AS": "Samotha na h-Aimeireaga",
        "AT": "An Ostair",
        "AU": "Astràilia",
        "AW": "Arùba",
        "AX": "Na h-Eileanan Åland",
        "AZ": "Asarbaideàn",
        "BA": "Bosna is Hearsagobhana",
        "BD": "Bangladais",
        "BE": "A’ Bheilg",
        "BF": "Buirciona Faso",
        "BG": "A’ Bhulgair",
        "BH": "Bachrain",
        "BI": "Burundaidh",
        "BJ": "Beinin",
        "BL": "Saint Barthélemy",
        "BM": "Bearmùda",
        "BN": "Brùnaigh",
        "BO": "Boilibhia",
        "BQ": "Na Tìrean Ìsle Caraibeach",
        "BR": "Braisil",
        "BS": "Na h-Eileanan Bhathama",
        "BT": "Butàn",
        "BV": "Eilean Bouvet",
        "BW": "Botsuana",
        "BY": "A’ Bhealaruis",
        "BZ": "A’ Bheilìs",
        "CC": "Na h-Eileanan Chocos (Keeling)",
        "CF": "Poblachd Meadhan Afraga",
        "CG": "A’ Chongo - Brazzaville",
        "CH": "An Eilbheis",
        "CK": "Eileanan Cook",
        "CL": "An t-Sile",
        "CM": "Camarun",
        "CN": "An t-Sìn",
        "CO": "Coloimbia",
        "CP": "Eilean Clipperton",
        "CR": "Costa Rìcea",
        "CU": "Cùba",
        "CV": "An Ceap Uaine",
        "CX": "Eilean na Nollaig",
        "CY": "Cìopras",
        "CZ": "An t-Seic",
        "DE": "A’ Ghearmailt",
        "DJ": "Diobùtaidh",
        "DK": "An Danmhairg",
        "DM": "Doiminicea",
        "DO": "A’ Phoblachd Dhoiminiceach",
        "DZ": "Aildiria",
        "EA": "Ceuta agus Melilla",
        "EC": "Eacuador",
        "EE": "An Eastoin",
        "EG": "An Èiphit",
        "EH": "Sathara an Iar",
        "ER": "Eartra",
        "ES": "An Spàinnt",
        "ET": "An Itiop",
        "EU": "An t-Aonadh Eòrpach",
        "EZ": "Raon an Eòro",
        "FI": "An Fhionnlann",
        "FJ": "Fìdi",
        "FK": "Na h-Eileanan Fàclannach",
        "FM": "Na Meanbh-eileanan",
        "FO": "Na h-Eileanan Fàro",
        "FR": "An Fhraing",
        "GB": "An Rìoghachd Aonaichte",
        "GD": "Greanàda",
        "GE": "A’ Chairtbheil",
        "GF": "Guidheàna na Frainge",
        "GG": "Geàrnsaidh",
        "GH": "Gàna",
        "GI": "Diobraltar",
        "GL": "A’ Ghraonlann",
        "GM": "A’ Ghaimbia",
        "GN": "Gini",
        "GP": "Guadalup",
        "GQ": "Gini Mheadhan-Chriosach",
        "GR": "A’ Ghreug",
        "GS": "Seòirsea a Deas is na h-Eileanan Sandwich a Deas",
        "GT": "Guatamala",
        "GW": "Gini-Bioso",
        "GY": "Guidheàna",
        "HK": "Hong Kong SAR na Sìne",
        "HM": "Eilean Heard is MhicDhòmhnaill",
        "HN": "Hondùras",
        "HR": "A’ Chròthais",
        "HT": "Haidhti",
        "HU": "An Ungair",
        "IC": "Na h-Eileanan Canàrach",
        "ID": "Na h-Innd-innse",
        "IE": "Èirinn",
        "IL": "Iosrael",
        "IM": "Eilean Mhanainn",
        "IN": "Na h-Innseachan",
        "IO": "Ranntair Breatannach Cuan nan Innseachan",
        "IQ": "Ioràc",
        "IR": "Ioràn",
        "IS": "Innis Tìle",
        "IT": "An Eadailt",
        "JE": "Deàrsaidh",
        "JM": "Diameuga",
        "JO": "Iòrdan",
        "JP": "An t-Seapan",
        "KE": "Ceinia",
        "KG": "Cìorgastan",
        "KH": "Cambuidea",
        "KI": "Ciribeas",
        "KN": "Naomh Crìstean is Nibheis",
        "KP": "Coirèa a Tuath",
        "KR": "Coirèa",
        "KW": "Cuibhèit",
        "KY": "Na h-Eileanan Caimean",
        "KZ": "Casachstàn",
        "LA": "Làthos",
        "LB": "Leabanon",
        "LC": "Naomh Lùisea",
        "LI": "Lichtenstein",
        "LK": "Sri Lanca",
        "LR": "Libèir",
        "LS": "Leasoto",
        "LT": "An Liotuain",
        "LU": "Lugsamburg",
        "LV": "An Laitbhe",
        "LY": "Libia",
        "MA": "Moroco",
        "MD": "A’ Mholdobha",
        "ME": "Am Monadh Neagrach",
        "MF": "Naomh Màrtainn",
        "MG": "Madagasgar",
        "MH": "Eileanan Mharshall",
        "MK": "A’ Mhasadon",
        "ML": "Màili",
        "MM": "Miànmar",
        "MN": "Dùthaich nam Mongol",
        "MO": "Macàthu SAR na Sìne",
        "MP": "Na h-Eileanan Mairianach a Tuath",
        "MQ": "Mairtinic",
        "MR": "Moratàinea",
        "MS": "Montsarat",
        "MU": "Na h-Eileanan Mhoiriseas",
        "MV": "Na h-Eileanan Mhaladaibh",
        "MW": "Malabhaidh",
        "MX": "Meagsago",
        "MY": "Malaidhsea",
        "MZ": "Mòsaimbic",
        "NA": "An Namaib",
        "NC": "Cailleann Nuadh",
        "NE": "Nìgeir",
        "NF": "Eilean Norfolk",
        "NG": "Nigèiria",
        "NI": "Niocaragua",
        "NL": "Na Tìrean Ìsle",
        "NO": "Nirribhidh",
        "NP": "Neapàl",
        "NR": "Nabhru",
        "NZ": "Sealainn Nuadh",
        "OM": "Omàn",
        "PE": "Pearù",
        "PF": "Poilinèis na Frainge",
        "PG": "Gini Nuadh Phaputhach",
        "PH": "Na h-Eileanan Filipineach",
        "PK": "Pagastàn",
        "PL": "A’ Phòlainn",
        "PM": "Saint Pierre agus Miquelon",
        "PN": "Eileanan Pheit a’ Chàirn",
        "PR": "Porto Rìceo",
        "PS": "Na Ranntairean Palastaineach",
        "PT": "A’ Phortagail",
        "PW": "Palabh",
        "PY": "Paraguaidh",
        "QA": "Catar",
        "QO": "Roinn Iomallach a’ Chuain Sèimh",
        "RO": "Romàinia",
        "RS": "An t-Sèirb",
        "RU": "An Ruis",
        "RW": "Rubhanda",
        "SA": "Aràibia nan Sabhd",
        "SB": "Eileanan Sholaimh",
        "SC": "Na h-Eileanan Sheiseall",
        "SD": "Sudàn",
        "SE": "An t-Suain",
        "SG": "Singeapòr",
        "SH": "Eilean Naomh Eilidh",
        "SI": "An t-Slòbhain",
        "SJ": "Svalbard agus Jan Mayen",
        "SK": "An t-Slòbhac",
        "SL": "Siarra Leòmhann",
        "SN": "Seanagal",
        "SO": "Somàilia",
        "SR": "Suranam",
        "SS": "Sudàn a Deas",
        "ST": "São Tomé agus Príncipe",
        "SV": "An Salbhador",
        "SY": "Siridhea",
        "SZ": "Dùthaich nan Suasaidh",
        "TC": "Na h-Eileanan Turcach is Caiceo",
        "TD": "An t-Seàd",
        "TF": "Ranntairean a Deas na Frainge",
        "TH": "Dùthaich nan Tàidh",
        "TJ": "Taidigeastàn",
        "TM": "Turcmanastàn",
        "TN": "Tuinisea",
        "TR": "An Tuirc",
        "TT": "Trianaid agus Tobago",
        "TV": "Tubhalu",
        "TW": "Taidh-Bhàn",
        "TZ": "An Tansan",
        "UA": "An Ucràin",
        "UM": "Meanbh-Eileanan Iomallach nan SA",
        "UN": "Na Dùthchannan Aonaichte",
        "US": "Na Stàitean Aonaichte",
        "UY": "Uruguaidh",
        "UZ": "Usbagastàn",
        "VA": "Cathair na Bhatacain",
        "VC": "Naomh Bhionsant agus Eileanan Greanadach",
        "VE": "A’ Bheiniseala",
        "VG": "Eileanan Breatannach na Maighdinn",
        "VI": "Eileanan na Maighdinn aig na SA",
        "VN": "Bhiet-Nam",
        "WF": "Uallas agus Futuna",
        "WS": "Samotha",
        "XK": "A’ Chosobho",
        "YE": "An Eaman",
        "ZA": "Afraga a Deas",
        "ZM": "Sàimbia",
        "ZW": "An t-Sìombab",
        "ZZ": "Roinn-dùthcha neo-aithnichte"
    };
  }-*/;
}
