locode 0.2.0

Standardized country and city codes
Documentation
macro_rules! mapping {
    ($($alpha_2_code:ident $alpha_3_code:ident => $numeric_code:expr, $short_name_en:expr, $short_name_uppercase_en:expr, $full_name_en:expr, $short_name_zh:expr;)+) => {
        #[derive(Debug, Clone, Copy)]
        #[repr(u16)]
        /// ISO 3166-1 country codes mapping.
        ///
        /// The Chinese names of countries and regions are determined according to GB/T 2659-2000 (equivalent to ISO 3166-1:1997).
        /// For those not included in GB/T 2659-2000 (i.e., countries and regional entries newly added in ISO 3166.1-2006),
        /// Chinese names are given according to conventional usage.
        pub enum Iso3166 {
            $(
                $alpha_3_code = $numeric_code,
            )+
        }

        impl Iso3166 {
            /// Returns a slice of all ISO 3166-1 country codes.
            pub const fn all() -> &'static [Self] {
                &[
                    $(
                        Self::$alpha_3_code,
                    )+
                ]
            }

            /// Returns the ISO 3166-1 country code from the alpha-2 code.
            pub fn from_alpha_2_code(code: &str) -> Option<Self> {
                match code {
                    $(
                        _ if stringify!($alpha_2_code).eq_ignore_ascii_case(code) => Some(Self::$alpha_3_code),
                    )+
                    _ => None,
                }
            }

            /// Returns the ISO 3166-1 country code from the alpha-3 code.
            pub fn from_alpha_3_code(code: &str) -> Option<Self> {
                match code {
                    $(
                        _ if stringify!($alpha_3_code).eq_ignore_ascii_case(code) => Some(Self::$alpha_3_code),
                    )+
                    _ => None,
                }
            }

            #[inline]
            /// Returns the ISO 3166-1 country code from the numeric code.
            pub const fn from_numeric_code(code: u16) -> Option<Self> {
                match code {
                    $(
                        $numeric_code => Some(Self::$alpha_3_code),
                    )+
                    _ => None,
                }
            }

            /// Returns the ISO 3166-1 alpha-2 code.
            pub const fn alpha_2_code(self) -> &'static str {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => stringify!($alpha_2_code),
                    )+
                }
            }

            /// Returns the ISO 3166-1 alpha-3 code.
            pub const fn alpha_3_code(self) -> &'static str {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => stringify!($alpha_2_code),
                    )+
                }
            }

            #[inline]
            /// Returns the ISO 3166-1 numeric code.
            pub const fn numeric_code(self) -> u16 {
                self as u16
            }

            #[cfg(feature = "feat-iso3166-short-name-en")]
            /// Returns the short name in English.
            pub const fn short_name_en(self) -> Option<&'static str> {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => $short_name_en,
                    )+
                }
            }

            #[cfg(feature = "feat-iso3166-short-name-uppercase-en")]
            /// Returns the short name in uppercase English.
            pub const fn short_name_uppercase_en(self) -> Option<&'static str> {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => $short_name_uppercase_en,
                    )+
                }
            }

            #[cfg(feature = "feat-iso3166-full-name-en")]
            /// Returns the full name in English.
            pub const fn full_name_en(self) -> Option<&'static str> {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => $full_name_en,
                    )+
                }
            }

            #[cfg(feature = "feat-iso3166-short-name-zh")]
            /// Returns the short name in Chinese.
            pub const fn short_name_zh(self) -> Option<&'static str> {
                use Iso3166::*;

                match self {
                    $(
                        $alpha_3_code => $short_name_zh,
                    )+
                }
            }
        }
    }
}

mapping! {
    AD AND => 20, Some("Andorra"), Some("ANDORRA"), Some("the Principality of Andorra"), Some("安道尔");
    AE ARE => 784, Some("United Arab Emirates (the)"), Some("UNITED ARAB EMIRATES"), Some("the United Arab Emirates"), Some("阿联酋");
    AF AFG => 4, Some("Afghanistan"), Some("AFGHANISTAN"), Some("the Islamic Republic of Afghanistan"), Some("阿富汗");
    AG ATG => 28, Some("Antigua and Barbuda"), Some("ANTIGUA AND BARBUDA"), None, Some("安提瓜和巴布达");
    AI AIA => 660, Some("Anguilla"), Some("ANGUILLA"), None, Some("安圭拉");
    AL ALB => 8, Some("Albania"), Some("ALBANIA"), Some("the Republic of Albania"), Some("阿尔巴尼亚");
    AM ARM => 51, Some("Armenia"), Some("ARMENIA"), Some("the Republic of Armenia"), Some("亚美尼亚");
    AO AGO => 24, Some("Angola"), Some("ANGOLA"), Some("the Republic of Angola"), Some("安哥拉");
    AQ ATA => 10, Some("Antarctica"), Some("ANTARCTICA"), None, Some("南极洲");
    AR ARG => 32, Some("Argentina"), Some("ARGENTINA"), Some("the Argentine Republic"), Some("阿根廷");
    AS ASM => 16, Some("American Samoa"), Some("AMERICAN SAMOA"), None, Some("美属萨摩亚");
    AT AUT => 40, Some("Austria"), Some("AUSTRIA"), Some("the Republic of Austria"), Some("奥地利");
    AU AUS => 36, Some("Australia"), Some("AUSTRALIA"), None, Some("澳大利亚");
    AW ABW => 533, Some("Aruba"), Some("ARUBA"), None, Some("阿鲁巴");
    AX ALA => 248, Some("Åland Islands"), Some("ÅLAND ISLANDS"), None, Some("奥兰群岛");
    AZ AZE => 31, Some("Azerbaijan"), Some("AZERBAIJAN"), Some("the Republic of Azerbaijan"), Some("阿塞拜疆");
    BA BIH => 70, Some("Bosnia and Herzegovina"), Some("BOSNIA AND HERZEGOVINA"), None, Some("波黑");
    BB BRB => 52, Some("Barbados"), Some("BARBADOS"), None, Some("巴巴多斯");
    BD BGD => 50, Some("Bangladesh"), Some("BANGLADESH"), Some("the People's Republic of Bangladesh"), Some("孟加拉国");
    BE BEL => 56, Some("Belgium"), Some("BELGIUM"), Some("the Kingdom of Belgium"), Some("比利时");
    BF BFA => 854, Some("Burkina Faso"), Some("BURKINA FASO"), None, Some("布基纳法索");
    BG BGR => 100, Some("Bulgaria"), Some("BULGARIA"), Some("the Republic of Bulgaria"), Some("保加利亚");
    BH BHR => 48, Some("Bahrain"), Some("BAHRAIN"), Some("the Kingdom of Bahrain"), Some("巴林");
    BI BDI => 108, Some("Burundi"), Some("BURUNDI"), Some("the Republic of Burundi"), Some("布隆迪");
    BJ BEN => 204, Some("Benin"), Some("BENIN"), Some("the Republic of Benin"), Some("贝宁");
    BL BLM => 652, Some("Saint Barthélemy"), Some("SAINT BARTHÉLEMY"), None, None;
    BM BMU => 60, Some("Bermuda"), Some("BERMUDA"), None, Some("百慕大");
    BN BRN => 96, Some("Brunei Darussalam"), Some("BRUNEI DARUSSALAM"), None, Some("文莱");
    BO BOL => 68, Some("Bolivia (Plurinational State of)"), Some("BOLIVIA (PLURINATIONAL STATE OF)"), Some("the Plurinational State of Bolivia"), Some("玻利维亚");
    BQ BES => 535, Some("Bonaire, Sint Eustatius and Saba"), Some("BONAIRE, SINT EUSTATIUS AND SABA"), None, Some("(荷属加勒比地区)博内、圣俄斯塔休斯和萨巴");
    BR BRA => 76, Some("Brazil"), Some("BRAZIL"), Some("the Federative Republic of Brazil"), Some("巴西");
    BS BHS => 44, Some("Bahamas (the)"), Some("BAHAMAS"), Some("the Commonwealth of the Bahamas"), Some("巴哈马");
    BT BTN => 64, Some("Bhutan"), Some("BHUTAN"), Some("the Kingdom of Bhutan"), Some("不丹");
    BV BVT => 74, Some("Bouvet Island"), Some("BOUVET ISLAND"), None, Some("布维岛");
    BW BWA => 72, Some("Botswana"), Some("BOTSWANA"), Some("the Republic of Botswana"), Some("博茨瓦纳");
    BY BLR => 112, Some("Belarus"), Some("BELARUS"), Some("the Republic of Belarus"), Some("白俄罗斯");
    BZ BLZ => 84, Some("Belize"), Some("BELIZE"), None, Some("伯利兹");
    CA CAN => 124, Some("Canada"), Some("CANADA"), None, Some("加拿大");
    CC CCK => 166, Some("Cocos (Keeling) Islands (the)"), Some("COCOS (KEELING) ISLANDS"), None, Some("科科斯(基林)群岛");
    CD COD => 180, Some("Congo (the Democratic Republic of the)"), Some("CONGO, DEMOCRATIC REPUBLIC OF THE"), Some("the Democratic Republic of the Congo"), Some("刚果(金)");
    CF CAF => 140, Some("Central African Republic (the)"), Some("CENTRAL AFRICAN REPUBLIC"), Some("the Central African Republic"), Some("中非");
    CG COG => 178, Some("Congo (the)"), Some("CONGO"), Some("the Republic of the Congo"), Some("刚果(布)");
    CH CHE => 756, Some("Switzerland"), Some("SWITZERLAND"), Some("the Swiss Confederation"), Some("瑞士");
    CI CIV => 384, Some("Côte d'Ivoire"), Some("CÔTE D'IVOIRE"), Some("the Republic of Côte d'Ivoire"), Some("科特迪瓦");
    CK COK => 184, Some("Cook Islands (the)"), Some("COOK ISLANDS"), None, Some("库克群岛");
    CL CHL => 152, Some("Chile"), Some("CHILE"), Some("the Republic of Chile"), Some("智利");
    CM CMR => 120, Some("Cameroon"), Some("CAMEROON"), Some("the Republic of Cameroon"), Some("喀麦隆");
    CN CHN => 156, Some("China"), Some("CHINA"), Some("the People's Republic of China"), Some("中国");
    CO COL => 170, Some("Colombia"), Some("COLOMBIA"), Some("the Republic of Colombia"), Some("哥伦比亚");
    CR CRI => 188, Some("Costa Rica"), Some("COSTA RICA"), Some("the Republic of Costa Rica"), Some("哥斯达黎加");
    CU CUB => 192, Some("Cuba"), Some("CUBA"), Some("the Republic of Cuba"), Some("古巴");
    CV CPV => 132, Some("Cabo Verde"), Some("CABO VERDE"), Some("the Republic of Cabo Verde"), Some("佛得角");
    CW CUW => 531, Some("Curaçao"), Some("CURAÇAO"), None, Some("(荷属加勒比地区)库拉索");
    CX CXR => 162, Some("Christmas Island"), Some("CHRISTMAS ISLAND"), None, Some("圣诞岛");
    CY CYP => 196, Some("Cyprus"), Some("CYPRUS"), Some("the Republic of Cyprus"), Some("塞浦路斯");
    CZ CZE => 203, Some("Czechia"), Some("CZECHIA"), Some("the Czech Republic"), Some("捷克");
    DE DEU => 276, Some("Germany"), Some("GERMANY"), Some("the Federal Republic of Germany"), Some("德国");
    DJ DJI => 262, Some("Djibouti"), Some("DJIBOUTI"), Some("the Republic of Djibouti"), Some("吉布提");
    DK DNK => 208, Some("Denmark"), Some("DENMARK"), Some("the Kingdom of Denmark"), Some("丹麦");
    DM DMA => 212, Some("Dominica"), Some("DOMINICA"), Some("the Commonwealth of Dominica"), Some("多米尼克");
    DO DOM => 214, Some("Dominican Republic (the)"), Some("DOMINICAN REPUBLIC"), Some("the Dominican Republic"), Some("多米尼加");
    DZ DZA => 12, Some("Algeria"), Some("ALGERIA"), Some("the People's Democratic Republic of Algeria"), Some("阿尔及利亚");
    EC ECU => 218, Some("Ecuador"), Some("ECUADOR"), Some("the Republic of Ecuador"), Some("厄瓜多尔");
    EE EST => 233, Some("Estonia"), Some("ESTONIA"), Some("the Republic of Estonia"), Some("爱沙尼亚");
    EG EGY => 818, Some("Egypt"), Some("EGYPT"), Some("the Arab Republic of Egypt"), Some("埃及");
    EH ESH => 732, Some("Western Sahara*"), Some("WESTERN SAHARA *"), None, Some("西撒哈拉");
    ER ERI => 232, Some("Eritrea"), Some("ERITREA"), Some("the State of Eritrea"), Some("厄立特里亚");
    ES ESP => 724, Some("Spain"), Some("SPAIN"), Some("the Kingdom of Spain"), Some("西班牙");
    ET ETH => 231, Some("Ethiopia"), Some("ETHIOPIA"), Some("the Federal Democratic Republic of Ethiopia"), Some("埃塞俄比亚");
    FI FIN => 246, Some("Finland"), Some("FINLAND"), Some("the Republic of Finland"), Some("芬兰");
    FJ FJI => 242, Some("Fiji"), Some("FIJI"), Some("the Republic of Fiji"), Some("斐济");
    FK FLK => 238, Some("Falkland Islands (the) [Malvinas]"), Some("FALKLAND ISLANDS (MALVINAS)"), None, Some("福克兰群岛(马尔维纳斯)");
    FM FSM => 583, Some("Micronesia (Federated States of)"), Some("MICRONESIA (FEDERATED STATES OF)"), Some("the Federated States of Micronesia"), Some("密克罗尼西亚联邦");
    FO FRO => 234, Some("Faroe Islands (the)"), Some("FAROE ISLANDS"), None, Some("法罗群岛");
    FR FRA => 250, Some("France"), Some("FRANCE"), Some("the French Republic"), Some("法国");
    GA GAB => 266, Some("Gabon"), Some("GABON"), Some("the Gabonese Republic"), Some("加蓬");
    GB GBR => 826, Some("United Kingdom of Great Britain and Northern Ireland (the)"), Some("UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND"), Some("the United Kingdom of Great Britain and Northern Ireland"), Some("英国");
    GD GRD => 308, Some("Grenada"), Some("GRENADA"), None, Some("格林纳达");
    GE GEO => 268, Some("Georgia"), Some("GEORGIA"), None, Some("格鲁吉亚");
    GF GUF => 254, Some("French Guiana"), Some("FRENCH GUIANA"), None, Some("法属圭亚那");
    GG GGY => 831, Some("Guernsey"), Some("GUERNSEY"), None, Some("格恩西岛");
    GH GHA => 288, Some("Ghana"), Some("GHANA"), Some("the Republic of Ghana"), Some("加纳");
    GI GIB => 292, Some("Gibraltar"), Some("GIBRALTAR"), None, Some("直布罗陀");
    GL GRL => 304, Some("Greenland"), Some("GREENLAND"), None, Some("格陵兰");
    GM GMB => 270, Some("Gambia (the)"), Some("GAMBIA"), Some("the Republic of the Gambia"), Some("冈比亚");
    GN GIN => 324, Some("Guinea"), Some("GUINEA"), Some("the Republic of Guinea"), Some("几内亚");
    GP GLP => 312, Some("Guadeloupe"), Some("GUADELOUPE"), None, Some("瓜德罗普");
    GQ GNQ => 226, Some("Equatorial Guinea"), Some("EQUATORIAL GUINEA"), Some("the Republic of Equatorial Guinea"), Some("赤道几内亚");
    GR GRC => 300, Some("Greece"), Some("GREECE"), Some("the Hellenic Republic"), Some("希腊");
    GS SGS => 239, Some("South Georgia and the South Sandwich Islands"), Some("SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS"), None, Some("南乔治亚岛和南桑德韦奇岛");
    GT GTM => 320, Some("Guatemala"), Some("GUATEMALA"), Some("the Republic of Guatemala"), Some("危地马拉");
    GU GUM => 316, Some("Guam"), Some("GUAM"), None, Some("关岛");
    GW GNB => 624, Some("Guinea-Bissau"), Some("GUINEA-BISSAU"), Some("the Republic of Guinea-Bissau"), Some("几内亚比绍");
    GY GUY => 328, Some("Guyana"), Some("GUYANA"), Some("the Co-operative Republic of Guyana"), Some("圭亚那");
    HK HKG => 344, Some("Hong Kong"), Some("HONG KONG"), Some("the Hong Kong Special Administrative Region of China"), Some("香港");
    HM HMD => 334, Some("Heard Island and McDonald Islands"), Some("HEARD ISLAND AND MCDONALD ISLANDS"), None, Some("赫德岛和麦克唐纳岛");
    HN HND => 340, Some("Honduras"), Some("HONDURAS"), Some("the Republic of Honduras"), Some("洪都拉斯");
    HR HRV => 191, Some("Croatia"), Some("CROATIA"), Some("the Republic of Croatia"), Some("克罗地亚");
    HT HTI => 332, Some("Haiti"), Some("HAITI"), Some("the Republic of Haiti"), Some("海地");
    HU HUN => 348, Some("Hungary"), Some("HUNGARY"), None, Some("匈牙利");
    ID IDN => 360, Some("Indonesia"), Some("INDONESIA"), Some("the Republic of Indonesia"), Some("印度尼西亚");
    IE IRL => 372, Some("Ireland"), Some("IRELAND"), None, Some("爱尔兰");
    IL ISR => 376, Some("Israel"), Some("ISRAEL"), Some("the State of Israel"), Some("以色列");
    IM IMN => 833, Some("Isle of Man"), Some("ISLE OF MAN"), None, Some("英国属地曼岛");
    IN IND => 356, Some("India"), Some("INDIA"), Some("the Republic of India"), Some("印度");
    IO IOT => 86, Some("British Indian Ocean Territory (the)"), Some("BRITISH INDIAN OCEAN TERRITORY"), None, Some("英属印度洋领地");
    IQ IRQ => 368, Some("Iraq"), Some("IRAQ"), Some("the Republic of Iraq"), Some("伊拉克");
    IR IRN => 364, Some("Iran (Islamic Republic of)"), Some("IRAN (ISLAMIC REPUBLIC OF)"), Some("the Islamic Republic of Iran"), Some("伊朗");
    IS ISL => 352, Some("Iceland"), Some("ICELAND"), None, Some("冰岛");
    IT ITA => 380, Some("Italy"), Some("ITALY"), Some("the Republic of Italy"), Some("意大利");
    JE JEY => 832, Some("Jersey"), Some("JERSEY"), None, Some("泽西岛");
    JM JAM => 388, Some("Jamaica"), Some("JAMAICA"), None, Some("牙买加");
    JO JOR => 400, Some("Jordan"), Some("JORDAN"), Some("the Hashemite Kingdom of Jordan"), Some("约旦");
    JP JPN => 392, Some("Japan"), Some("JAPAN"), None, Some("日本");
    KE KEN => 404, Some("Kenya"), Some("KENYA"), Some("the Republic of Kenya"), Some("肯尼亚");
    KG KGZ => 417, Some("Kyrgyzstan"), Some("KYRGYZSTAN"), Some("the Kyrgyz Republic"), Some("吉尔吉斯斯坦");
    KH KHM => 116, Some("Cambodia"), Some("CAMBODIA"), Some("the Kingdom of Cambodia"), Some("柬埔寨");
    KI KIR => 296, Some("Kiribati"), Some("KIRIBATI"), Some("the Republic of Kiribati"), Some("基里巴斯");
    KM COM => 174, Some("Comoros (the)"), Some("COMOROS"), Some("the Union of the Comoros"), Some("科摩罗");
    KN KNA => 659, Some("Saint Kitts and Nevis"), Some("SAINT KITTS AND NEVIS"), None, Some("圣基茨和尼维斯");
    KP PRK => 408, Some("Korea (the Democratic People's Republic of)"), Some("KOREA (DEMOCRATIC PEOPLE'S REPUBLIC OF)"), Some("the Democratic People's Republic of Korea"), Some("朝鲜");
    KR KOR => 410, Some("Korea (the Republic of)"), Some("KOREA, REPUBLIC OF"), Some("the Republic of Korea"), Some("韩国");
    KW KWT => 414, Some("Kuwait"), Some("KUWAIT"), Some("the State of Kuwait"), Some("科威特");
    KY CYM => 136, Some("Cayman Islands (the)"), Some("CAYMAN ISLANDS"), None, Some("开曼群岛");
    KZ KAZ => 398, Some("Kazakhstan"), Some("KAZAKHSTAN"), Some("the Republic of Kazakhstan"), Some("哈萨克斯坦");
    LA LAO => 418, Some("Lao People's Democratic Republic (the)"), Some("LAO PEOPLE'S DEMOCRATIC REPUBLIC"), Some("the Lao People's Democratic Republic"), Some("老挝");
    LB LBN => 422, Some("Lebanon"), Some("LEBANON"), Some("the Lebanese Republic"), Some("黎巴嫩");
    LC LCA => 662, Some("Saint Lucia"), Some("SAINT LUCIA"), None, Some("圣卢西亚");
    LI LIE => 438, Some("Liechtenstein"), Some("LIECHTENSTEIN"), Some("the Principality of Liechtenstein"), Some("列支敦士登");
    LK LKA => 144, Some("Sri Lanka"), Some("SRI LANKA"), Some("the Democratic Socialist Republic of Sri Lanka"), Some("斯里兰卡");
    LR LBR => 430, Some("Liberia"), Some("LIBERIA"), Some("the Republic of Liberia"), Some("利比里亚");
    LS LSO => 426, Some("Lesotho"), Some("LESOTHO"), Some("the Kingdom of Lesotho"), Some("莱索托");
    LT LTU => 440, Some("Lithuania"), Some("LITHUANIA"), Some("the Republic of Lithuania"), Some("立陶宛");
    LU LUX => 442, Some("Luxembourg"), Some("LUXEMBOURG"), Some("the Grand Duchy of Luxembourg"), Some("卢森堡");
    LV LVA => 428, Some("Latvia"), Some("LATVIA"), Some("the Republic of Latvia"), Some("拉脱维亚");
    LY LBY => 434, Some("Libya"), Some("LIBYA"), Some("the State of Libya"), Some("利比亚");
    MA MAR => 504, Some("Morocco"), Some("MOROCCO"), Some("the Kingdom of Morocco"), Some("摩洛哥");
    MC MCO => 492, Some("Monaco"), Some("MONACO"), Some("the Principality of Monaco"), Some("摩纳哥");
    MD MDA => 498, Some("Moldova (the Republic of)"), Some("MOLDOVA, REPUBLIC OF"), Some("the Republic of Moldova"), Some("摩尔多瓦");
    ME MNE => 499, Some("Montenegro"), Some("MONTENEGRO"), None, Some("黑山");
    MF MAF => 663, Some("Saint Martin (French part)"), Some("SAINT MARTIN (FRENCH PART)"), None, Some("法属圣马丁");
    MG MDG => 450, Some("Madagascar"), Some("MADAGASCAR"), Some("the Republic of Madagascar"), Some("马达加斯加");
    MH MHL => 584, Some("Marshall Islands (the)"), Some("MARSHALL ISLANDS"), Some("the Republic of the Marshall Islands"), Some("马绍尔群岛");
    MK MKD => 807, Some("North Macedonia"), Some("NORTH MACEDONIA"), Some("the Republic of North Macedonia"), Some("前南马其顿");
    ML MLI => 466, Some("Mali"), Some("MALI"), Some("the Republic of Mali"), Some("马里");
    MM MMR => 104, Some("Myanmar"), Some("MYANMAR"), Some("the Republic of the Union of Myanmar"), Some("缅甸");
    MN MNG => 496, Some("Mongolia"), Some("MONGOLIA"), None, Some("蒙古");
    MO MAC => 446, Some("Macao"), Some("MACAO"), Some("Macao Special Administrative Region of China"), Some("澳门");
    MP MNP => 580, Some("Northern Mariana Islands (the)"), Some("NORTHERN MARIANA ISLANDS"), Some("the Commonwealth of the Northern Mariana Islands"), Some("北马里亚纳");
    MQ MTQ => 474, Some("Martinique"), Some("MARTINIQUE"), None, Some("马提尼克");
    MR MRT => 478, Some("Mauritania"), Some("MAURITANIA"), Some("the Islamic Republic of Mauritania"), Some("毛利塔尼亚");
    MS MSR => 500, Some("Montserrat"), Some("MONTSERRAT"), None, Some("蒙特塞拉特");
    MT MLT => 470, Some("Malta"), Some("MALTA"), Some("the Republic of Malta"), Some("马耳他");
    MU MUS => 480, Some("Mauritius"), Some("MAURITIUS"), Some("the Republic of Mauritius"), Some("毛里求斯");
    MV MDV => 462, Some("Maldives"), Some("MALDIVES"), Some("the Republic of Maldives"), Some("马尔代夫");
    MW MWI => 454, Some("Malawi"), Some("MALAWI"), Some("the Republic of Malawi"), Some("马拉维");
    MX MEX => 484, Some("Mexico"), Some("MEXICO"), Some("the United Mexican States"), Some("墨西哥");
    MY MYS => 458, Some("Malaysia"), Some("MALAYSIA"), None, Some("马来西亚");
    MZ MOZ => 508, Some("Mozambique"), Some("MOZAMBIQUE"), Some("the Republic of Mozambique"), Some("莫桑比克");
    NA NAM => 516, Some("Namibia"), Some("NAMIBIA"), Some("the Republic of Namibia"), Some("纳米比亚");
    NC NCL => 540, Some("New Caledonia"), Some("NEW CALEDONIA"), None, Some("新喀里多尼亚");
    NE NER => 562, Some("Niger (the)"), Some("NIGER"), Some("the Republic of the Niger"), Some("尼日尔");
    NF NFK => 574, Some("Norfolk Island"), Some("NORFOLK ISLAND"), None, Some("诺福克岛");
    NG NGA => 566, Some("Nigeria"), Some("NIGERIA"), Some("the Federal Republic of Nigeria"), Some("尼日利亚");
    NI NIC => 558, Some("Nicaragua"), Some("NICARAGUA"), Some("the Republic of Nicaragua"), Some("尼加拉瓜");
    NL NLD => 528, Some("Netherlands (the)"), Some("NETHERLANDS"), Some("the Kingdom of the Netherlands"), Some("荷兰");
    NO NOR => 578, Some("Norway"), Some("NORWAY"), Some("the Kingdom of Norway"), Some("挪威");
    NP NPL => 524, Some("Nepal"), Some("NEPAL"), None, Some("尼泊尔");
    NR NRU => 520, Some("Nauru"), Some("NAURU"), Some("the Republic of Nauru"), Some("瑙鲁");
    NU NIU => 570, Some("Niue"), Some("NIUE"), None, Some("纽埃");
    NZ NZL => 554, Some("New Zealand"), Some("NEW ZEALAND"), None, Some("新西兰");
    OM OMN => 512, Some("Oman"), Some("OMAN"), Some("the Sultanate of Oman"), Some("阿曼");
    PA PAN => 591, Some("Panama"), Some("PANAMA"), Some("the Republic of Panama"), Some("巴拿马");
    PE PER => 604, Some("Peru"), Some("PERU"), Some("the Republic of Peru"), Some("秘鲁");
    PF PYF => 258, Some("French Polynesia"), Some("FRENCH POLYNESIA"), None, Some("法属波利尼西亚");
    PG PNG => 598, Some("Papua New Guinea"), Some("PAPUA NEW GUINEA"), Some("the Independent State of Papua New Guinea"), Some("巴布亚新几内亚");
    PH PHL => 608, Some("Philippines (the)"), Some("PHILIPPINES"), Some("the Republic of the Philippines"), Some("菲律宾");
    PK PAK => 586, Some("Pakistan"), Some("PAKISTAN"), Some("the Islamic Republic of Pakistan"), Some("巴基斯坦");
    PL POL => 616, Some("Poland"), Some("POLAND"), Some("the Republic of Poland"), Some("波兰");
    PM SPM => 666, Some("Saint Pierre and Miquelon"), Some("SAINT PIERRE AND MIQUELON"), None, Some("圣皮埃尔和密克隆");
    PN PCN => 612, Some("Pitcairn"), Some("PITCAIRN"), None, Some("皮特凯恩");
    PR PRI => 630, Some("Puerto Rico"), Some("PUERTO RICO"), None, Some("波多黎各");
    PS PSE => 275, Some("Palestine, State of"), Some("PALESTINE, STATE OF"), Some("the State of Palestine"), Some("巴勒斯坦");
    PT PRT => 620, Some("Portugal"), Some("PORTUGAL"), Some("the Portuguese Republic"), Some("葡萄牙");
    PW PLW => 585, Some("Palau"), Some("PALAU"), Some("the Republic of Palau"), Some("帕劳");
    PY PRY => 600, Some("Paraguay"), Some("PARAGUAY"), Some("the Republic of Paraguay"), Some("巴拉圭");
    QA QAT => 634, Some("Qatar"), Some("QATAR"), Some("the State of Qatar"), Some("卡塔尔");
    RE REU => 638, Some("Réunion"), Some("RÉUNION"), None, Some("留尼汪");
    RO ROU => 642, Some("Romania"), Some("ROMANIA"), None, Some("罗马尼亚");
    RS SRB => 688, Some("Serbia"), Some("SERBIA"), Some("the Republic of Serbia"), Some("塞尔维亚");
    RU RUS => 643, Some("Russian Federation (the)"), Some("RUSSIAN FEDERATION"), Some("the Russian Federation"), Some("俄罗斯联邦");
    RW RWA => 646, Some("Rwanda"), Some("RWANDA"), Some("the Republic of Rwanda"), Some("卢旺达");
    SA SAU => 682, Some("Saudi Arabia"), Some("SAUDI ARABIA"), Some("the Kingdom of Saudi Arabia"), Some("沙特阿拉伯");
    SB SLB => 90, Some("Solomon Islands"), Some("SOLOMON ISLANDS"), None, Some("所罗门群岛");
    SC SYC => 690, Some("Seychelles"), Some("SEYCHELLES"), Some("the Republic of Seychelles"), Some("塞舌尔");
    SD SDN => 729, Some("Sudan (the)"), Some("SUDAN"), Some("the Republic of the Sudan"), Some("苏丹");
    SE SWE => 752, Some("Sweden"), Some("SWEDEN"), Some("the Kingdom of Sweden"), Some("瑞典");
    SG SGP => 702, Some("Singapore"), Some("SINGAPORE"), Some("the Republic of Singapore"), Some("新加坡");
    SH SHN => 654, Some("Saint Helena, Ascension and Tristan da Cunha"), Some("SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA"), None, Some("圣赫勒拿");
    SI SVN => 705, Some("Slovenia"), Some("SLOVENIA"), Some("the Republic of Slovenia"), Some("斯洛文尼亚");
    SJ SJM => 744, Some("Svalbard and Jan Mayen"), Some("SVALBARD AND JAN MAYEN"), None, Some("斯瓦尔巴岛和扬马延岛");
    SK SVK => 703, Some("Slovakia"), Some("SLOVAKIA"), Some("the Slovak Republic"), Some("斯洛伐克");
    SL SLE => 694, Some("Sierra Leone"), Some("SIERRA LEONE"), Some("the Republic of Sierra Leone"), Some("塞拉利昂");
    SM SMR => 674, Some("San Marino"), Some("SAN MARINO"), Some("the Republic of San Marino"), Some("圣马力诺");
    SN SEN => 686, Some("Senegal"), Some("SENEGAL"), Some("the Republic of Senegal"), Some("塞内加尔");
    SO SOM => 706, Some("Somalia"), Some("SOMALIA"), Some("the Federal Republic of Somalia"), Some("索马里");
    SR SUR => 740, Some("Suriname"), Some("SURINAME"), Some("the Republic of Suriname"), Some("苏里南");
    SS SSD => 728, Some("South Sudan"), Some("SOUTH SUDAN"), Some("the Republic of South Sudan"), Some("南苏丹");
    ST STP => 678, Some("Sao Tome and Principe"), Some("SAO TOME AND PRINCIPE"), Some("the Democratic Republic of Sao Tome and Principe"), Some("圣多美和普林西比");
    SV SLV => 222, Some("El Salvador"), Some("EL SALVADOR"), Some("the Republic of El Salvador"), Some("萨尔瓦多");
    SX SXM => 534, Some("Sint Maarten (Dutch part)"), Some("SINT MAARTEN (DUTCH PART)"), None, Some("荷属圣马丁(自治国)");
    SY SYR => 760, Some("Syrian Arab Republic (the)"), Some("SYRIAN ARAB REPUBLIC"), Some("the Syrian Arab Republic"), Some("叙利亚");
    SZ SWZ => 748, Some("Eswatini"), Some("ESWATINI"), Some("the Kingdom of Eswatini"), Some("斯威士兰");
    TC TCA => 796, Some("Turks and Caicos Islands (the)"), Some("TURKS AND CAICOS ISLANDS"), None, Some("特克斯和凯科斯群岛");
    TD TCD => 148, Some("Chad"), Some("CHAD"), Some("the Republic of Chad"), Some("乍得");
    TF ATF => 260, Some("French Southern Territories (the)"), Some("FRENCH SOUTHERN TERRITORIES"), None, Some("法属南部领地");
    TG TGO => 768, Some("Togo"), Some("TOGO"), Some("the Togolese Republic"), Some("多哥");
    TH THA => 764, Some("Thailand"), Some("THAILAND"), Some("the Kingdom of Thailand"), Some("泰国");
    TJ TJK => 762, Some("Tajikistan"), Some("TAJIKISTAN"), Some("the Republic of Tajikistan"), Some("塔吉克斯坦");
    TK TKL => 772, Some("Tokelau"), Some("TOKELAU"), None, Some("托克劳");
    TL TLS => 626, Some("Timor-Leste"), Some("TIMOR-LESTE"), Some("the Democratic Republic of Timor-Leste"), Some("东帝汶");
    TM TKM => 795, Some("Turkmenistan"), Some("TURKMENISTAN"), None, Some("土库曼斯坦");
    TN TUN => 788, Some("Tunisia"), Some("TUNISIA"), Some("the Republic of Tunisia"), Some("突尼斯");
    TO TON => 776, Some("Tonga"), Some("TONGA"), Some("the Kingdom of Tonga"), Some("汤加");
    TR TUR => 792, Some("Türkiye"), Some("TÜRKİYE"), Some("the Republic of Türkiye"), Some("土耳其");
    TT TTO => 780, Some("Trinidad and Tobago"), Some("TRINIDAD AND TOBAGO"), Some("the Republic of Trinidad and Tobago"), Some("特立尼达和多巴哥");
    TV TUV => 798, Some("Tuvalu"), Some("TUVALU"), None, Some("图瓦卢");
    TW TWN => 158, Some("Taiwan (Province of China)"), Some("TAIWAN, PROVINCE OF CHINA"), None, Some("台湾");
    TZ TZA => 834, Some("Tanzania, the United Republic of"), Some("TANZANIA, UNITED REPUBLIC OF"), Some("the United Republic of Tanzania"), Some("坦桑尼亚");
    UA UKR => 804, Some("Ukraine"), Some("UKRAINE"), None, Some("乌克兰");
    UG UGA => 800, Some("Uganda"), Some("UGANDA"), Some("the Republic of Uganda"), Some("乌干达");
    UM UMI => 581, Some("United States Minor Outlying Islands (the)"), Some("UNITED STATES MINOR OUTLYING ISLANDS"), None, Some("美国本土外小岛屿");
    US USA => 840, Some("United States of America (the)"), Some("UNITED STATES OF AMERICA"), Some("the United States of America"), Some("美国");
    UY URY => 858, Some("Uruguay"), Some("URUGUAY"), Some("the Eastern Republic of Uruguay"), Some("乌拉圭");
    UZ UZB => 860, Some("Uzbekistan"), Some("UZBEKISTAN"), Some("the Republic of Uzbekistan"), Some("乌兹别克斯坦");
    VA VAT => 336, Some("Holy See (the)"), Some("HOLY SEE"), None, Some("梵蒂冈");
    VC VCT => 670, Some("Saint Vincent and the Grenadines"), Some("SAINT VINCENT AND THE GRENADINES"), None, Some("圣文森特和格林纳丁斯");
    VE VEN => 862, Some("Venezuela (Bolivarian Republic of)"), Some("VENEZUELA (BOLIVARIAN REPUBLIC OF)"), Some("the Bolivarian Republic of Venezuela"), Some("委内瑞拉");
    VG VGB => 92, Some("Virgin Islands (British)"), Some("VIRGIN ISLANDS (BRITISH)"), Some("British Virgin Islands (the)"), Some("英属维尔京群岛");
    VI VIR => 850, Some("Virgin Islands (U.S.)"), Some("VIRGIN ISLANDS (U.S.)"), Some("the Virgin Islands of the United States"), Some("美属维尔京群岛");
    VN VNM => 704, Some("Viet Nam"), Some("VIET NAM"), Some("the Socialist Republic of Viet Nam"), Some("越南");
    VU VUT => 548, Some("Vanuatu"), Some("VANUATU"), Some("the Republic of Vanuatu"), Some("瓦努阿图");
    WF WLF => 876, Some("Wallis and Futuna"), Some("WALLIS AND FUTUNA"), Some("Wallis and Futuna Islands"), Some("瓦利斯和富图纳");
    WS WSM => 882, Some("Samoa"), Some("SAMOA"), Some("the Independent State of Samoa"), Some("萨摩亚");
    YE YEM => 887, Some("Yemen"), Some("YEMEN"), Some("the Republic of Yemen"), Some("也门");
    YT MYT => 175, Some("Mayotte"), Some("MAYOTTE"), None, Some("马约特");
    ZA ZAF => 710, Some("South Africa"), Some("SOUTH AFRICA"), Some("the Republic of South Africa"), Some("南非");
    ZM ZMB => 894, Some("Zambia"), Some("ZAMBIA"), Some("the Republic of Zambia"), Some("赞比亚");
    ZW ZWE => 716, Some("Zimbabwe"), Some("ZIMBABWE"), Some("the Republic of Zimbabwe"), Some("津巴布韦");
}