package model

import (
	"regexp"
	"slices"
	"strings"
)

// https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9F%9F%E6%8C%87%E7%A4%BA%E7%AC%A6
// https://zh.wikipedia.org/zh-sg/ISO_3166-1%E4%BA%8C%E4%BD%8D%E5%AD%97%E6%AF%8D%E4%BB%A3%E7%A0%81

var CountryEnglishName = map[string]string{
	"Andorra":                        "安道尔(AD)",
	"United Arab Emirates":           "阿联酋(AE)",
	"Afghanistan":                    "阿富汗(AF)",
	"Antigua and Barbuda":            "安提瓜和巴布达(AG)",
	"Anguilla":                       "安圭拉(AI)",
	"Albania":                        "阿尔巴尼亚(AL)",
	"Armenia":                        "亚美尼亚(AM)",
	"Angola":                         "安哥拉(AO)",
	"Antarctica":                     "南极洲(AQ)",
	"Argentina":                      "阿根廷(AR)",
	"American Samoa":                 "美属萨摩亚(AS)",
	"Austria":                        "奥地利(AT)",
	"Australia":                      "澳大利亚(AU)",
	"Aruba":                          "阿鲁巴(AW)",
	"Åland Islands":                  "奥兰(AX)",
	"Azerbaijan":                     "阿塞拜疆(AZ)",
	"Bosnia and Herzegovina":         "波黑(BA)",
	"Barbados":                       "巴巴多斯(BB)",
	"Bangladesh":                     "孟加拉(BD)",
	"Belgium":                        "比利时(BE)",
	"Burkina Faso":                   "布基纳法索(BF)",
	"Bulgaria":                       "保加利亚(BG)",
	"Bahrain":                        "巴林(BH)",
	"Burundi":                        "布隆迪(BI)",
	"Benin":                          "贝宁(BJ)",
	"Saint Barthélemy":               "圣巴泰勒米(BL)",
	"Bermuda":                        "百慕大(BM)",
	"Brunei Darussalam":              "汶莱(BN)",
	"Bolivia":                        "玻利维亚(BO)",
	"Plurinational State of":         "玻利维亚(BO)",
	"Bonaire":                        "荷兰加勒比区(BQ)",
	"Sint Eustatius and Saba":        "荷兰加勒比区(BQ)",
	"Brazil":                         "巴西(BR)",
	"Bahamas":                        "巴哈马(BS)",
	"Bhutan":                         "不丹(BT)",
	"Bouvet Island":                  "布韦岛(BV)",
	"Botswana":                       "博茨瓦纳(BW)",
	"Belarus":                        "白俄罗斯(BY)",
	"Belize":                         "伯利兹(BZ)",
	"Canada":                         "加拿大(CA)",
	"Cocos (Keeling) Islands":        "科科斯(基林)群岛(CC)",
	"DR Congo":                       "刚果民主共和国(CD)",
	"the Democratic Republic of the": "刚果民主共和国(CD)",
	"Central African Republic":       "中非(CF)",
	"Congo":                          "刚果共和国(CG)",
	"Switzerland":                    "瑞士(CH)",
	"Côte d'Ivoire":                  "象牙海岸(CI)",
	"Cook Islands":                   "库克群岛(CK)",
	"Chile":                          "智利(CL)",
	"Cameroon":                       "喀麦隆(CM)",
	"China":                          "中国(CN)",
	"Colombia":                       "哥伦比亚(CO)",
	"Costa Rica":                     "哥斯达黎加(CR)",
	"Cuba":                           "古巴(CU)",
	"Cabo Verde":                     "佛得角(CV)",
	"Curaçao":                        "库拉索(CW)",
	"Christmas Island":               "圣诞岛(CX)",
	"Cyprus":                         "塞浦路斯(CY)",
	"Czechia":                        "捷克(CZ)",
	"Germany":                        "德国(DE)",
	"Djibouti":                       "吉布提(DJ)",
	"Denmark":                        "丹麦(DK)",
	"Dominica":                       "多米尼克(DM)",
	"Dominican Republic":             "多米尼加(DO)",
	"Algeria":                        "阿尔及利亚(DZ)",
	"Ecuador":                        "厄瓜多尔(EC)",
	"Estonia":                        "爱沙尼亚(EE)",
	"Egypt":                          "埃及(EG)",
	"Western Sahara":                 "西撒哈拉(EH)",
	"Eritrea":                        "厄立特里亚(ER)",
	"Spain":                          "西班牙(ES)",
	"Ethiopia":                       "埃塞俄比亚(ET)",
	"Finland":                        "芬兰(FI)",
	"Fiji":                           "斐济(FJ)",
	"Falkland Islands (Malvinas)":    "福克兰群岛(FK)",
	"Micronesia":                     "密克罗尼西亚联邦(FM)",
	"Federated States of":            "密克罗尼西亚联邦(FM)",
	"Faroe Islands":                  "法罗群岛(FO)",
	"France":                         "法国(FR)",
	"Gabon":                          "加蓬(GA)",
	"United Kingdom of Great Britain and Northern Ireland": "英国(UK)",
	"Grenada":           "格林纳达(GD)",
	"Georgia":           "格鲁吉亚(GE)",
	"French Guiana":     "法属圭亚那(GF)",
	"Guernsey":          "根西(GG)",
	"Ghana":             "加纳(GH)",
	"Gibraltar":         "直布罗陀(GI)",
	"Greenland":         "格陵兰(GL)",
	"Gambia":            "冈比亚(GM)",
	"Guinea":            "几内亚(GN)",
	"Guadeloupe":        "瓜德罗普(GP)",
	"Equatorial Guinea": "赤道几内亚(GQ)",
	"Greece":            "希腊(GR)",
	"South Georgia and the South Sandwich Islands": "南乔治亚和南桑威奇群岛(GS)",
	"Guatemala":                            "危地马拉(GT)",
	"Guam":                                 "关岛(GU)",
	"Guinea-Bissau":                        "几内亚比绍(GW)",
	"Guyana":                               "圭亚那(GY)",
	"Hong Kong":                            "香港(HK)",
	"Heard Island and McDonald Islands":    "赫德岛和麦克唐纳群岛(HM)",
	"Honduras":                             "洪都拉斯(HN)",
	"Croatia":                              "克罗地亚(HR)",
	"Haiti":                                "海地(HT)",
	"Hungary":                              "匈牙利(HU)",
	"Indonesia":                            "印度尼西亚(ID)",
	"Ireland":                              "爱尔兰(IE)",
	"Israel":                               "以色列(IL)",
	"Isle of Man":                          "马恩岛(IM)",
	"India":                                "印度(IN)",
	"British Indian Ocean Territory":       "英属印度洋领地(IO)",
	"Iraq":                                 "伊拉克(IQ)",
	"Iran":                                 "伊朗(IR)",
	"Iceland":                              "冰岛(IS)",
	"Italy":                                "意大利(IT)",
	"Jersey":                               "泽西(JE)",
	"Jamaica":                              "牙买加(JM)",
	"Jordan":                               "约旦(JO)",
	"Japan":                                "日本(JP)",
	"Kenya":                                "肯尼亚(KE)",
	"Kyrgyzstan":                           "吉尔吉斯斯坦(KG)",
	"Cambodia":                             "柬埔寨(KH)",
	"Kiribati":                             "基里巴斯(KI)",
	"Comoros":                              "科摩罗(KM)",
	"Saint Kitts and Nevis":                "圣基茨和尼维斯(KN)",
	"North Korea":                          "北韩(KP)",
	"South Korea":                          "韩国(KR)",
	"Kuwait":                               "科威特(KW)",
	"Cayman Islands":                       "开曼群岛(KY)",
	"Kazakhstan":                           "哈萨克斯坦(KZ)",
	"Lao People's Democratic Republic":     "寮国(LA)",
	"Lebanon":                              "黎巴嫩(LB)",
	"Saint Lucia":                          "圣卢西亚(LC)",
	"Liechtenstein":                        "列支敦士登(LI)",
	"Sri Lanka":                            "斯里兰卡(LK)",
	"Liberia":                              "利比里亚(LR)",
	"Lesotho":                              "莱索托(LS)",
	"Lithuania":                            "立陶宛(LT)",
	"Luxembourg":                           "卢森堡(LU)",
	"Latvia":                               "拉脱维亚(LV)",
	"Libya":                                "利比亚(LY)",
	"Morocco":                              "摩洛哥(MA)",
	"Monaco":                               "摩纳哥(MC)",
	"Moldova, Republic of":                 "摩尔多瓦(MD)",
	"Montenegro":                           "黑山(ME)",
	"Saint Martin (French part)":           "法属圣马丁(MF)",
	"Madagascar":                           "马达加斯加(MG)",
	"Marshall Islands":                     "马绍尔群岛(MH)",
	"North Macedonia":                      "北马其顿(MK)",
	"Mali":                                 "马里(ML)",
	"Myanmar":                              "缅甸(MM)",
	"Mongolia":                             "蒙古(MN)",
	"Macao":                                "澳门(MO)",
	"Northern Mariana Islands":             "北马里亚纳群岛(MP)",
	"Martinique":                           "马提尼克(MQ)",
	"Mauritania":                           "毛里塔尼亚(MR)",
	"Montserrat":                           "蒙特塞拉特(MS)",
	"Malta":                                "马耳他(MT)",
	"Mauritius":                            "毛里求斯(MU)",
	"Maldives":                             "马尔代夫(MV)",
	"Malawi":                               "马拉维(MW)",
	"Mexico":                               "墨西哥(MX)",
	"Malaysia":                             "马来西亚(MY)",
	"Mozambique":                           "莫桑比克(MZ)",
	"Namibia":                              "那米比亚(NA)",
	"New Caledonia":                        "新喀里多尼亚(NC)",
	"Niger":                                "尼日尔(NE)",
	"Norfolk Island":                       "诺福克岛(NF)",
	"Nigeria":                              "尼日利亚(NG)",
	"Nicaragua":                            "尼加拉瓜(NI)",
	"Netherlands":                          "荷兰(NL)",
	"Norway":                               "挪威(NO)",
	"Nepal":                                "尼泊尔(NP)",
	"Nauru":                                "瑙鲁(NR)",
	"Niue":                                 "纽埃(NU)",
	"New Zealand":                          "新西兰(NZ)",
	"Oman":                                 "阿曼(OM)",
	"Panama":                               "巴拿马(PA)",
	"Peru":                                 "秘鲁(PE)",
	"French Polynesia":                     "法属波利尼西亚(PF)",
	"Papua New Guinea":                     "巴布亚新几内亚(PG)",
	"Philippines":                          "菲律宾(PH)",
	"Pakistan":                             "巴基斯坦(PK)",
	"Poland":                               "波兰(PL)",
	"Saint Pierre and Miquelon":            "圣皮埃尔和密克隆(PM)",
	"Pitcairn":                             "皮特凯恩群岛(PN)",
	"Puerto Rico":                          "波多黎各(PR)",
	"Palestine":                            "巴勒斯坦(PS)",
	"Portugal":                             "葡萄牙(PT)",
	"Palau":                                "帕劳(PW)",
	"Paraguay":                             "巴拉圭(PY)",
	"Qatar":                                "卡塔尔(QA)",
	"Réunion":                              "留尼汪(RE)",
	"Romania":                              "罗马尼亚(RO)",
	"Serbia":                               "塞尔维亚(RS)",
	"Russian Federation":                   "俄罗斯(RU)",
	"Rwanda":                               "卢旺达(RW)",
	"Saudi Arabia":                         "沙特阿拉伯(SA)",
	"Solomon Islands":                      "所罗门群岛(SB)",
	"Seychelles":                           "塞舌尔(SC)",
	"Sudan":                                "苏丹(SD)",
	"Sweden":                               "瑞典(SE)",
	"Singapore":                            "新加坡(SG)",
	"Saint Helena":                         "圣赫勒拿、阿森松和特里斯坦-达库尼亚(SH)",
	"Slovenia":                             "斯洛文尼亚(SI)",
	"Svalbard and Jan Mayen":               "斯瓦尔巴和扬马延(SJ)",
	"Slovakia":                             "斯洛伐克(SK)",
	"Sierra Leone":                         "塞拉利昂(SL)",
	"San Marino":                           "圣马力诺(SM)",
	"Senegal":                              "塞内加尔(SN)",
	"Somalia":                              "索马里(SO)",
	"Suriname":                             "苏里南(SR)",
	"South Sudan":                          "南苏丹(SS)",
	"Sao Tome and Principe":                "圣多美和普林西比(ST)",
	"El Salvador":                          "萨尔瓦多(SV)",
	"Sint Maarten (Dutch part)":            "荷属圣马丁(SX)",
	"Syrian Arab Republic":                 "叙利亚(SY)",
	"Eswatini":                             "斯威士兰(SZ)",
	"Turks and Caicos Islands":             "特克斯和凯科斯群岛(TC)",
	"Chad":                                 "乍得(TD)",
	"French Southern Territories":          "法属南部和南极领地(TF)",
	"Togo":                                 "多哥(TG)",
	"Thailand":                             "泰国(TH)",
	"Tajikistan":                           "塔吉克斯坦(TJ)",
	"Tokelau":                              "托克劳(TK)",
	"Timor-Leste":                          "东帝汶(TL)",
	"Turkmenistan":                         "土库曼斯坦(TM)",
	"Tunisia":                              "突尼斯(TN)",
	"Tonga":                                "汤加(TO)",
	"Turkey":                               "土耳其(TR)",
	"Trinidad and Tobago":                  "特立尼达和多巴哥(TT)",
	"Tuvalu":                               "图瓦卢(TV)",
	"Taiwan":                               "台湾(TW)",
	"Tanzania":                             "坦桑尼亚(TZ)",
	"Ukraine":                              "乌克兰(UA)",
	"Uganda":                               "乌干达(UG)",
	"United States Minor Outlying Islands": "美国本土外小岛屿(UM)",
	"United States of America":             "美国(US)",
	"Uruguay":                              "乌拉圭(UY)",
	"Uzbekistan":                           "乌兹别克斯坦(UZ)",
	"Holy See":                             "梵蒂冈(VA)",
	"Saint Vincent and the Grenadines":     "圣文森特和格林纳丁斯(VC)",
	"Venezuela":                            "委内瑞拉(VE)",
	"Virgin Islands, British":              "英属维尔京群岛(VG)",
	"Virgin Islands, U.S.":                 "美属维尔京群岛(VI)",
	"Viet Nam":                             "越南(VN)",
	"Vanuatu":                              "瓦努阿图(VU)",
	"Wallis and Futuna":                    "瓦利斯和富图纳(WF)",
	"Samoa":                                "萨摩亚(WS)",
	"Yemen":                                "也门(YE)",
	"Mayotte":                              "马约特(YT)",
	"South Africa":                         "南非(ZA)",
	"Zambia":                               "赞比亚(ZM)",
	"Zimbabwe":                             "津巴布韦(ZW)",
}

var CountryChineseName = map[string]string{
	"阿森松岛":        "阿森松岛(AC)",
	"安道尔":         "安道尔(AD)",
	"阿联酋":         "阿联酋(AE)",
	"阿富汗":         "阿富汗(AF)",
	"安提瓜和巴布达":     "安提瓜和巴布达(AG)",
	"安圭拉":         "安圭拉(AI)",
	"阿尔巴尼亚":       "阿尔巴尼亚(AL)",
	"亚美尼亚":        "亚美尼亚(AM)",
	"安哥拉":         "安哥拉(AO)",
	"南极洲":         "南极洲(AQ)",
	"阿根廷":         "阿根廷(AR)",
	"美属萨摩亚":       "美属萨摩亚(AS)",
	"奥地利":         "奥地利(AT)",
	"澳大利亚":        "澳大利亚(AU)",
	"阿鲁巴":         "阿鲁巴(AW)",
	"奥兰":          "奥兰(AX)",
	"阿塞拜疆":        "阿塞拜疆(AZ)",
	"波黑":          "波黑(BA)",
	"巴巴多斯":        "巴巴多斯(BB)",
	"孟加拉国":        "孟加拉国(BD)",
	"比利时":         "比利时(BE)",
	"布基纳法索":       "布基纳法索(BF)",
	"保加利亚":        "保加利亚(BG)",
	"巴林":          "巴林(BH)",
	"布隆迪":         "布隆迪(BI)",
	"贝宁":          "贝宁(BJ)",
	"圣巴泰勒米":       "圣巴泰勒米(BL)",
	"百慕大":         "百慕大(BM)",
	"文莱":          "文莱(BN)",
	"玻利维亚":        "玻利维亚(BO)",
	"荷兰加勒比区":      "荷兰加勒比区(BQ)",
	"巴西":          "巴西(BR)",
	"巴哈马":         "巴哈马(BS)",
	"不丹":          "不丹(BT)",
	"布韦岛":         "布韦岛(BV)",
	"博茨瓦纳":        "博茨瓦纳(BW)",
	"白俄罗斯":        "白俄罗斯(BY)",
	"伯利兹":         "伯利兹(BZ)",
	"加拿大":         "加拿大(CA)",
	"科科斯(基林)群岛":   "科科斯(基林)群岛(CC)",
	"刚果民主共和国":     "刚果民主共和国(CD)",
	"中非":          "中非(CF)",
	"刚果共和国":       "刚果共和国(CG)",
	"瑞士":          "瑞士(CH)",
	"科特迪瓦":        "科特迪瓦(CI)",
	"库克群岛":        "库克群岛(CK)",
	"智利":          "智利(CL)",
	"喀麦隆":         "喀麦隆(CM)",
	"中国":          "中国(CN)",
	"哥伦比亚":        "哥伦比亚(CO)",
	"克利珀顿岛":       "克利珀顿岛(CP)",
	"哥斯达黎加":       "哥斯达黎加(CR)",
	"古巴":          "古巴(CU)",
	"佛得角":         "佛得角(CV)",
	"库拉索":         "库拉索(CW)",
	"圣诞岛":         "圣诞岛(CX)",
	"塞浦路斯":        "塞浦路斯(CY)",
	"捷克":          "捷克(CZ)",
	"德国":          "德国(DE)",
	"迪戈加西亚岛":      "迪戈加西亚岛(DG)",
	"吉布提":         "吉布提(DJ)",
	"丹麦":          "丹麦(DK)",
	"多米尼克":        "多米尼克(DM)",
	"多米尼加":        "多米尼加(DO)",
	"阿尔及利亚":       "阿尔及利亚(DZ)",
	"休达":          "休达(EA)",
	"厄瓜多尔":        "厄瓜多尔(EC)",
	"爱沙尼亚":        "爱沙尼亚(EE)",
	"埃及":          "埃及(EG)",
	"西撒哈拉":        "西撒哈拉(EH)",
	"厄立特里亚":       "厄立特里亚(ER)",
	"西班牙":         "西班牙(ES)",
	"埃塞俄比亚":       "埃塞俄比亚(ET)",
	"欧盟":          "欧盟(EU)",
	"芬兰":          "芬兰(FI)",
	"斐济":          "斐济(FJ)",
	"福克兰群岛":       "福克兰群岛(FK)",
	"密克罗尼西亚联邦":    "密克罗尼西亚联邦(FM)",
	"法罗群岛":        "法罗群岛(FO)",
	"法国":          "法国(FR)",
	"加蓬":          "加蓬(GA)",
	"英国":          "英国(UK)",
	"格林纳达":        "格林纳达(GD)",
	"格鲁吉亚":        "格鲁吉亚(GE)",
	"法属圭亚那":       "法属圭亚那(GF)",
	"根西":          "根西(GG)",
	"加纳":          "加纳(GH)",
	"直布罗陀":        "直布罗陀(GI)",
	"格陵兰":         "格陵兰(GL)",
	"冈比亚":         "冈比亚(GM)",
	"几内亚":         "几内亚(GN)",
	"瓜德罗普":        "瓜德罗普(GP)",
	"赤道几内亚":       "赤道几内亚(GQ)",
	"希腊":          "希腊(GR)",
	"南乔治亚和南桑威奇群岛": "南乔治亚和南桑威奇群岛(GS)",
	"危地马拉":        "危地马拉(GT)",
	"关岛":          "关岛(GU)",
	"几内亚比绍":       "几内亚比绍(GW)",
	"圭亚那":         "圭亚那(GY)",
	"香港":          "香港(HK)",
	"赫德岛和麦克唐纳群岛":  "赫德岛和麦克唐纳群岛(HM)",
	"洪都拉斯":        "洪都拉斯(HN)",
	"克罗地亚":        "克罗地亚(HR)",
	"海地":          "海地(HT)",
	"匈牙利":         "匈牙利(HU)",
	"加纳利群岛":       "加纳利群岛(IC)",
	"印尼":          "印尼(ID)",
	"爱尔兰":         "爱尔兰(IE)",
	"以色列":         "以色列(IL)",
	"马恩岛":         "马恩岛(IM)",
	"印度":          "印度(IN)",
	"英属印度洋领地":     "英属印度洋领地(IO)",
	"伊拉克":         "伊拉克(IQ)",
	"伊朗":          "伊朗(IR)",
	"冰岛":          "冰岛(IS)",
	"意大利":         "意大利(IT)",
	"泽西":          "泽西(JE)",
	"牙买加":         "牙买加(JM)",
	"约旦":          "约旦(JO)",
	"日本":          "日本(JP)",
	"肯尼亚":         "肯尼亚(KE)",
	"吉尔吉斯斯坦":      "吉尔吉斯斯坦(KG)",
	"柬埔寨":         "柬埔寨(KH)",
	"基里巴斯":        "基里巴斯(KI)",
	"科摩罗":         "科摩罗(KM)",
	"圣基茨和尼维斯":     "圣基茨和尼维斯(KN)",
	"朝鲜":          "朝鲜(KP)",
	"韩国":          "韩国(KR)",
	"科威特":         "科威特(KW)",
	"开曼群岛":        "开曼群岛(KY)",
	"哈萨克斯坦":       "哈萨克斯坦(KZ)",
	"老挝":          "老挝(LA)",
	"黎巴嫩":         "黎巴嫩(LB)",
	"圣卢西亚":        "圣卢西亚(LC)",
	"列支敦士登":       "列支敦士登(LI)",
	"斯里兰卡":        "斯里兰卡(LK)",
	"利比里亚":        "利比里亚(LR)",
	"莱索托":         "莱索托(LS)",
	"立陶宛":         "立陶宛(LT)",
	"卢森堡":         "卢森堡(LU)",
	"拉脱维亚":        "拉脱维亚(LV)",
	"利比亚":         "利比亚(LY)",
	"摩洛哥":         "摩洛哥(MA)",
	"摩纳哥":         "摩纳哥(MC)",
	"摩尔多瓦":        "摩尔多瓦(MD)",
	"黑山":          "黑山(ME)",
	"法属圣马丁":       "法属圣马丁(MF)",
	"马达加斯加":       "马达加斯加(MG)",
	"马绍尔群岛":       "马绍尔群岛(MH)",
	"北马其顿":        "北马其顿(MK)",
	"马里":          "马里(ML)",
	"缅甸":          "缅甸(MM)",
	"蒙古国":         "蒙古国(MN)",
	"澳门":          "澳门(MO)",
	"北马里亚纳群岛":     "北马里亚纳群岛(MP)",
	"马提尼克":        "马提尼克(MQ)",
	"毛里塔尼亚":       "毛里塔尼亚(MR)",
	"蒙特塞拉特":       "蒙特塞拉特(MS)",
	"马耳他":         "马耳他(MT)",
	"毛里求斯":        "毛里求斯(MU)",
	"马尔代夫":        "马尔代夫(MV)",
	"马拉维":         "马拉维(MW)",
	"墨西哥":         "墨西哥(MX)",
	"马来西亚":        "马来西亚(MY)",
	"莫桑比克":        "莫桑比克(MZ)",
	"纳米比亚":        "纳米比亚(NA)",
	"新喀里多尼亚":      "新喀里多尼亚(NC)",
	"尼日尔":         "尼日尔(NE)",
	"诺福克岛":        "诺福克岛(NF)",
	"尼日利亚":        "尼日利亚(NG)",
	"尼加拉瓜":        "尼加拉瓜(NI)",
	"荷兰":          "荷兰(NL)",
	"挪威":          "挪威(NO)",
	"尼泊尔":         "尼泊尔(NP)",
	"瑙鲁":          "瑙鲁(NR)",
	"纽埃":          "纽埃(NU)",
	"新西兰":         "新西兰(NZ)",
	"阿曼":          "阿曼(OM)",
	"巴拿马":         "巴拿马(PA)",
	"秘鲁":          "秘鲁(PE)",
	"法属波利尼西亚":     "法属波利尼西亚(PF)",
	"巴布亚新几内亚":     "巴布亚新几内亚(PG)",
	"菲律宾":         "菲律宾(PH)",
	"巴基斯坦":        "巴基斯坦(PK)",
	"波兰":          "波兰(PL)",
	"圣皮埃尔和密克隆":    "圣皮埃尔和密克隆(PM)",
	"皮特凯恩群岛":      "皮特凯恩群岛(PN)",
	"波多黎各":        "波多黎各(PR)",
	"巴勒斯坦国|巴勒斯坦":  "巴勒斯坦国|巴勒斯坦(PS)",
	"葡萄牙":         "葡萄牙(PT)",
	"帕劳":          "帕劳(PW)",
	"巴拉圭":         "巴拉圭(PY)",
	"卡塔尔":         "卡塔尔(QA)",
	"留尼旺":         "留尼旺(RE)",
	"罗马尼亚":        "罗马尼亚(RO)",
	"塞尔维亚":        "塞尔维亚(RS)",
	"俄罗斯":         "俄罗斯(RU)",
	"卢旺达":         "卢旺达(RW)",
	"沙特阿拉伯":       "沙特阿拉伯(SA)",
	"所罗门群岛":       "所罗门群岛(SB)",
	"塞舌尔":         "塞舌尔(SC)",
	"苏丹":          "苏丹(SD)",
	"瑞典":          "瑞典(SE)",
	"新加坡":         "新加坡(SG)",
	"圣赫勒拿":        "圣赫勒拿(SH)",
	"斯洛文尼亚":       "斯洛文尼亚(SI)",
	"斯瓦尔巴和扬马延":    "斯瓦尔巴和扬马延(SJ)",
	"斯洛伐克":        "斯洛伐克(SK)",
	"塞拉利昂":        "塞拉利昂(SL)",
	"圣马力诺":        "圣马力诺(SM)",
	"塞内加尔":        "塞内加尔(SN)",
	"索马里":         "索马里(SO)",
	"苏里南":         "苏里南(SR)",
	"南苏丹":         "南苏丹(SS)",
	"圣多美和普林西比":    "圣多美和普林西比(ST)",
	"萨尔瓦多":        "萨尔瓦多(SV)",
	"荷属圣马丁":       "荷属圣马丁(SX)",
	"叙利亚":         "叙利亚(SY)",
	"斯威士兰":        "斯威士兰(SZ)",
	"特里斯坦-达库尼亚":   "特里斯坦-达库尼亚(TA)",
	"特克斯和凯科斯群岛":   "特克斯和凯科斯群岛(TC)",
	"乍得":          "乍得(TD)",
	"法属南部和南极领地":   "法属南部和南极领地(TF)",
	"多哥":          "多哥(TG)",
	"泰国":          "泰国(TH)",
	"塔吉克斯坦":       "塔吉克斯坦(TJ)",
	"托克劳":         "托克劳(TK)",
	"东帝汶":         "东帝汶(TL)",
	"土库曼斯坦":       "土库曼斯坦(TM)",
	"突尼斯":         "突尼斯(TN)",
	"汤加":          "汤加(TO)",
	"土耳其":         "土耳其(TR)",
	"特立尼达和多巴哥":    "特立尼达和多巴哥(TT)",
	"图瓦卢":         "图瓦卢(TV)",
	"台湾":          "台湾(TW)",
	"坦桑尼亚":        "坦桑尼亚(TZ)",
	"乌克兰":         "乌克兰(UA)",
	"乌干达":         "乌干达(UG)",
	"美国本土外小岛屿":    "美国本土外小岛屿(UM)",
	"联合国":         "联合国(UN)",
	"美国":          "美国(US)",
	"乌拉圭":         "乌拉圭(UY)",
	"乌兹别克斯坦":      "乌兹别克斯坦(UZ)",
	"梵蒂冈":         "梵蒂冈(VA)",
	"圣文森特和格林纳丁斯":  "圣文森特和格林纳丁斯(VC)",
	"委内瑞拉":        "委内瑞拉(VE)",
	"英属维尔京群岛":     "英属维尔京群岛(VG)",
	"美属维尔京群岛":     "美属维尔京群岛(VI)",
	"越南":          "越南(VN)",
	"瓦努阿图":        "瓦努阿图(VU)",
	"瓦利斯和富图纳":     "瓦利斯和富图纳(WF)",
	"萨摩亚":         "萨摩亚(WS)",
	"科索沃":         "科索沃(XK)",
	"也门":          "也门(YE)",
	"马约特":         "马约特(YT)",
	"南非":          "南非(ZA)",
	"赞比亚":         "赞比亚(ZM)",
	"津巴布韦":        "津巴布韦(ZW)",
}

var CountryFlag = map[string]string{
	"🇦🇨": "阿森松岛(AC)",
	"🇦🇩": "安道尔(AD)",
	"🇦🇪": "阿联酋(AE)",
	"🇦🇫": "阿富汗(AF)",
	"🇦🇬": "安提瓜和巴布达(AG)",
	"🇦🇮": "安圭拉(AI)",
	"🇦🇱": "阿尔巴尼亚(AL)",
	"🇦🇲": "亚美尼亚(AM)",
	"🇦🇴": "安哥拉(AO)",
	"🇦🇶": "南极洲(AQ)",
	"🇦🇷": "阿根廷(AR)",
	"🇦🇸": "美属萨摩亚(AS)",
	"🇦🇹": "奥地利(AT)",
	"🇦🇺": "澳大利亚(AU)",
	"🇦🇼": "阿鲁巴(AW)",
	"🇦🇽": "奥兰(AX)",
	"🇦🇿": "阿塞拜疆(AZ)",
	"🇧🇦": "波黑(BA)",
	"🇧🇧": "巴巴多斯(BB)",
	"🇧🇩": "孟加拉国(BD)",
	"🇧🇪": "比利时(BE)",
	"🇧🇫": "布基纳法索(BF)",
	"🇧🇬": "保加利亚(BG)",
	"🇧🇭": "巴林(BH)",
	"🇧🇮": "布隆迪(BI)",
	"🇧🇯": "贝宁(BJ)",
	"🇧🇱": "圣巴泰勒米(BL)",
	"🇧🇲": "百慕大(BM)",
	"🇧🇳": "文莱(BN)",
	"🇧🇴": "玻利维亚(BO)",
	"🇧🇶": "荷兰加勒比区(BQ)",
	"🇧🇷": "巴西(BR)",
	"🇧🇸": "巴哈马(BS)",
	"🇧🇹": "不丹(BT)",
	"🇧🇻": "布韦岛(BV)",
	"🇧🇼": "博茨瓦纳(BW)",
	"🇧🇾": "白俄罗斯(BY)",
	"🇧🇿": "伯利兹(BZ)",
	"🇨🇦": "加拿大(CA)",
	"🇨🇨": "科科斯(基林)群岛(CC)",
	"🇨🇩": "刚果民主共和国(CD)",
	"🇨🇫": "中非(CF)",
	"🇨🇬": "刚果共和国(CG)",
	"🇨🇭": "瑞士(CH)",
	"🇨🇮": "科特迪瓦(CI)",
	"🇨🇰": "库克群岛(CK)",
	"🇨🇱": "智利(CL)",
	"🇨🇲": "喀麦隆(CM)",
	"🇨🇳": "中国(CN)",
	"🇨🇴": "哥伦比亚(CO)",
	"🇨🇵": "克利珀顿岛(CP)",
	"🇨🇷": "哥斯达黎加(CR)",
	"🇨🇺": "古巴(CU)",
	"🇨🇻": "佛得角(CV)",
	"🇨🇼": "库拉索(CW)",
	"🇨🇽": "圣诞岛(CX)",
	"🇨🇾": "塞浦路斯(CY)",
	"🇨🇿": "捷克(CZ)",
	"🇩🇪": "德国(DE)",
	"🇩🇬": "迪戈加西亚岛(DG)",
	"🇩🇯": "吉布提(DJ)",
	"🇩🇰": "丹麦(DK)",
	"🇩🇲": "多米尼克(DM)",
	"🇩🇴": "多米尼加(DO)",
	"🇩🇿": "阿尔及利亚(DZ)",
	"🇪🇦": "休达(EA)",
	"🇪🇨": "厄瓜多尔(EC)",
	"🇪🇪": "爱沙尼亚(EE)",
	"🇪🇬": "埃及(EG)",
	"🇪🇭": "西撒哈拉(EH)",
	"🇪🇷": "厄立特里亚(ER)",
	"🇪🇸": "西班牙(ES)",
	"🇪🇹": "埃塞俄比亚(ET)",
	"🇪🇺": "欧盟(EU)",
	"🇫🇮": "芬兰(FI)",
	"🇫🇯": "斐济(FJ)",
	"🇫🇰": "福克兰群岛(FK)",
	"🇫🇲": "密克罗尼西亚联邦(FM)",
	"🇫🇴": "法罗群岛(FO)",
	"🇫🇷": "法国(FR)",
	"🇬🇦": "加蓬(GA)",
	"🇺🇰": "英国(UK)",
	"🇬🇧": "英国(UK)",
	"🇬🇩": "格林纳达(GD)",
	"🇬🇪": "格鲁吉亚(GE)",
	"🇬🇫": "法属圭亚那(GF)",
	"🇬🇬": "根西(GG)",
	"🇬🇭": "加纳(GH)",
	"🇬🇮": "直布罗陀(GI)",
	"🇬🇱": "格陵兰(GL)",
	"🇬🇲": "冈比亚(GM)",
	"🇬🇳": "几内亚(GN)",
	"🇬🇵": "瓜德罗普(GP)",
	"🇬🇶": "赤道几内亚(GQ)",
	"🇬🇷": "希腊(GR)",
	"🇬🇸": "南乔治亚和南桑威奇群岛(GS)",
	"🇬🇹": "危地马拉(GT)",
	"🇬🇺": "关岛(GU)",
	"🇬🇼": "几内亚比绍(GW)",
	"🇬🇾": "圭亚那(GY)",
	"🇭🇰": "香港(HK)",
	"🇭🇲": "赫德岛和麦克唐纳群岛(HM)",
	"🇭🇳": "洪都拉斯(HN)",
	"🇭🇷": "克罗地亚(HR)",
	"🇭🇹": "海地(HT)",
	"🇭🇺": "匈牙利(HU)",
	"🇮🇨": "加纳利群岛(IC)",
	"🇮🇩": "印尼(ID)",
	"🇮🇪": "爱尔兰(IE)",
	"🇮🇱": "以色列(IL)",
	"🇮🇲": "马恩岛(IM)",
	"🇮🇳": "印度(IN)",
	"🇮🇴": "英属印度洋领地(IO)",
	"🇮🇶": "伊拉克(IQ)",
	"🇮🇷": "伊朗(IR)",
	"🇮🇸": "冰岛(IS)",
	"🇮🇹": "意大利(IT)",
	"🇯🇪": "泽西(JE)",
	"🇯🇲": "牙买加(JM)",
	"🇯🇴": "约旦(JO)",
	"🇯🇵": "日本(JP)",
	"🇰🇪": "肯尼亚(KE)",
	"🇰🇬": "吉尔吉斯斯坦(KG)",
	"🇰🇭": "柬埔寨(KH)",
	"🇰🇮": "基里巴斯(KI)",
	"🇰🇲": "科摩罗(KM)",
	"🇰🇳": "圣基茨和尼维斯(KN)",
	"🇰🇵": "朝鲜(KP)",
	"🇰🇷": "韩国(KR)",
	"🇰🇼": "科威特(KW)",
	"🇰🇾": "开曼群岛(KY)",
	"🇰🇿": "哈萨克斯坦(KZ)",
	"🇱🇦": "老挝(LA)",
	"🇱🇧": "黎巴嫩(LB)",
	"🇱🇨": "圣卢西亚(LC)",
	"🇱🇮": "列支敦士登(LI)",
	"🇱🇰": "斯里兰卡(LK)",
	"🇱🇷": "利比里亚(LR)",
	"🇱🇸": "莱索托(LS)",
	"🇱🇹": "立陶宛(LT)",
	"🇱🇺": "卢森堡(LU)",
	"🇱🇻": "拉脱维亚(LV)",
	"🇱🇾": "利比亚(LY)",
	"🇲🇦": "摩洛哥(MA)",
	"🇲🇨": "摩纳哥(MC)",
	"🇲🇩": "摩尔多瓦(MD)",
	"🇲🇪": "黑山(ME)",
	"🇲🇫": "法属圣马丁(MF)",
	"🇲🇬": "马达加斯加(MG)",
	"🇲🇭": "马绍尔群岛(MH)",
	"🇲🇰": "北马其顿(MK)",
	"🇲🇱": "马里(ML)",
	"🇲🇲": "缅甸(MM)",
	"🇲🇳": "蒙古国(MN)",
	"🇲🇴": "澳门(MO)",
	"🇲🇵": "北马里亚纳群岛(MP)",
	"🇲🇶": "马提尼克(MQ)",
	"🇲🇷": "毛里塔尼亚(MR)",
	"🇲🇸": "蒙特塞拉特(MS)",
	"🇲🇹": "马耳他(MT)",
	"🇲🇺": "毛里求斯(MU)",
	"🇲🇻": "马尔代夫(MV)",
	"🇲🇼": "马拉维(MW)",
	"🇲🇽": "墨西哥(MX)",
	"🇲🇾": "马来西亚(MY)",
	"🇲🇿": "莫桑比克(MZ)",
	"🇳🇦": "纳米比亚(NA)",
	"🇳🇨": "新喀里多尼亚(NC)",
	"🇳🇪": "尼日尔(NE)",
	"🇳🇫": "诺福克岛(NF)",
	"🇳🇬": "尼日利亚(NG)",
	"🇳🇮": "尼加拉瓜(NI)",
	"🇳🇱": "荷兰(NL)",
	"🇳🇴": "挪威(NO)",
	"🇳🇵": "尼泊尔(NP)",
	"🇳🇷": "瑙鲁(NR)",
	"🇳🇺": "纽埃(NU)",
	"🇳🇿": "新西兰(NZ)",
	"🇴🇲": "阿曼(OM)",
	"🇵🇦": "巴拿马(PA)",
	"🇵🇪": "秘鲁(PE)",
	"🇵🇫": "法属波利尼西亚(PF)",
	"🇵🇬": "巴布亚新几内亚(PG)",
	"🇵🇭": "菲律宾(PH)",
	"🇵🇰": "巴基斯坦(PK)",
	"🇵🇱": "波兰(PL)",
	"🇵🇲": "圣皮埃尔和密克隆(PM)",
	"🇵🇳": "皮特凯恩群岛(PN)",
	"🇵🇷": "波多黎各(PR)",
	"🇵🇸": "巴勒斯坦国|巴勒斯坦(PS)",
	"🇵🇹": "葡萄牙(PT)",
	"🇵🇼": "帕劳(PW)",
	"🇵🇾": "巴拉圭(PY)",
	"🇶🇦": "卡塔尔(QA)",
	"🇷🇪": "留尼旺(RE)",
	"🇷🇴": "罗马尼亚(RO)",
	"🇷🇸": "塞尔维亚(RS)",
	"🇷🇺": "俄罗斯(RU)",
	"🇷🇼": "卢旺达(RW)",
	"🇸🇦": "沙特阿拉伯(SA)",
	"🇸🇧": "所罗门群岛(SB)",
	"🇸🇨": "塞舌尔(SC)",
	"🇸🇩": "苏丹(SD)",
	"🇸🇪": "瑞典(SE)",
	"🇸🇬": "新加坡(SG)",
	"🇸🇭": "圣赫勒拿(SH)",
	"🇸🇮": "斯洛文尼亚(SI)",
	"🇸🇯": "斯瓦尔巴和扬马延(SJ)",
	"🇸🇰": "斯洛伐克(SK)",
	"🇸🇱": "塞拉利昂(SL)",
	"🇸🇲": "圣马力诺(SM)",
	"🇸🇳": "塞内加尔(SN)",
	"🇸🇴": "索马里(SO)",
	"🇸🇷": "苏里南(SR)",
	"🇸🇸": "南苏丹(SS)",
	"🇸🇹": "圣多美和普林西比(ST)",
	"🇸🇻": "萨尔瓦多(SV)",
	"🇸🇽": "荷属圣马丁(SX)",
	"🇸🇾": "叙利亚(SY)",
	"🇸🇿": "斯威士兰(SZ)",
	"🇹🇦": "特里斯坦-达库尼亚(TA)",
	"🇹🇨": "特克斯和凯科斯群岛(TC)",
	"🇹🇩": "乍得(TD)",
	"🇹🇫": "法属南部和南极领地(TF)",
	"🇹🇬": "多哥(TG)",
	"🇹🇭": "泰国(TH)",
	"🇹🇯": "塔吉克斯坦(TJ)",
	"🇹🇰": "托克劳(TK)",
	"🇹🇱": "东帝汶(TL)",
	"🇹🇲": "土库曼斯坦(TM)",
	"🇹🇳": "突尼斯(TN)",
	"🇹🇴": "汤加(TO)",
	"🇹🇷": "土耳其(TR)",
	"🇹🇹": "特立尼达和多巴哥(TT)",
	"🇹🇻": "图瓦卢(TV)",
	"🇹🇼": "台湾(TW)",
	"🇹🇿": "坦桑尼亚(TZ)",
	"🇺🇦": "乌克兰(UA)",
	"🇺🇬": "乌干达(UG)",
	"🇺🇲": "美国本土外小岛屿(UM)",
	"🇺🇳": "联合国(UN)",
	"🇺🇸": "美国(US)",
	"🇺🇾": "乌拉圭(UY)",
	"🇺🇿": "乌兹别克斯坦(UZ)",
	"🇻🇦": "梵蒂冈(VA)",
	"🇻🇨": "圣文森特和格林纳丁斯(VC)",
	"🇻🇪": "委内瑞拉(VE)",
	"🇻🇬": "英属维尔京群岛(VG)",
	"🇻🇮": "美属维尔京群岛(VI)",
	"🇻🇳": "越南(VN)",
	"🇻🇺": "瓦努阿图(VU)",
	"🇼🇫": "瓦利斯和富图纳(WF)",
	"🇼🇸": "萨摩亚(WS)",
	"🇽🇰": "科索沃(XK)",
	"🇾🇪": "也门(YE)",
	"🇾🇹": "马约特(YT)",
	"🇿🇦": "南非(ZA)",
	"🇿🇲": "赞比亚(ZM)",
	"🇿🇼": "津巴布韦(ZW)",
}

var CountryISO = map[string]string{
	"AC": "阿森松岛(AC)",
	"AD": "安道尔(AD)",
	"AE": "阿联酋(AE)",
	"AF": "阿富汗(AF)",
	"AG": "安提瓜和巴布达(AG)",
	"AI": "安圭拉(AI)",
	"AL": "阿尔巴尼亚(AL)",
	"AM": "亚美尼亚(AM)",
	"AO": "安哥拉(AO)",
	"AQ": "南极洲(AQ)",
	"AR": "阿根廷(AR)",
	"AS": "美属萨摩亚(AS)",
	"AT": "奥地利(AT)",
	"AU": "澳大利亚(AU)",
	"AW": "阿鲁巴(AW)",
	"AX": "奥兰(AX)",
	"AZ": "阿塞拜疆(AZ)",
	"BA": "波黑(BA)",
	"BB": "巴巴多斯(BB)",
	"BD": "孟加拉国(BD)",
	"BE": "比利时(BE)",
	"BF": "布基纳法索(BF)",
	"BG": "保加利亚(BG)",
	"BH": "巴林(BH)",
	"BI": "布隆迪(BI)",
	"BJ": "贝宁(BJ)",
	"BL": "圣巴泰勒米(BL)",
	"BM": "百慕大(BM)",
	"BN": "文莱(BN)",
	"BO": "玻利维亚(BO)",
	"BQ": "荷兰加勒比区(BQ)",
	"BR": "巴西(BR)",
	"BS": "巴哈马(BS)",
	"BT": "不丹(BT)",
	"BV": "布韦岛(BV)",
	"BW": "博茨瓦纳(BW)",
	"BY": "白俄罗斯(BY)",
	"BZ": "伯利兹(BZ)",
	"CA": "加拿大(CA)",
	"CC": "科科斯(基林)群岛(CC)",
	"CD": "刚果民主共和国(CD)",
	"CF": "中非(CF)",
	"CG": "刚果共和国(CG)",
	"CH": "瑞士(CH)",
	"CI": "科特迪瓦(CI)",
	"CK": "库克群岛(CK)",
	"CL": "智利(CL)",
	"CM": "喀麦隆(CM)",
	"CN": "中国(CN)",
	"CO": "哥伦比亚(CO)",
	"CP": "克利珀顿岛(CP)",
	"CR": "哥斯达黎加(CR)",
	"CU": "古巴(CU)",
	"CV": "佛得角(CV)",
	"CW": "库拉索(CW)",
	"CX": "圣诞岛(CX)",
	"CY": "塞浦路斯(CY)",
	"CZ": "捷克(CZ)",
	"DE": "德国(DE)",
	"DG": "迪戈加西亚岛(DG)",
	"DJ": "吉布提(DJ)",
	"DK": "丹麦(DK)",
	"DM": "多米尼克(DM)",
	"DO": "多米尼加(DO)",
	"DZ": "阿尔及利亚(DZ)",
	"EA": "休达(EA)",
	"EC": "厄瓜多尔(EC)",
	"EE": "爱沙尼亚(EE)",
	"EG": "埃及(EG)",
	"EH": "西撒哈拉(EH)",
	"ER": "厄立特里亚(ER)",
	"ES": "西班牙(ES)",
	"ET": "埃塞俄比亚(ET)",
	"EU": "欧盟(EU)",
	"FI": "芬兰(FI)",
	"FJ": "斐济(FJ)",
	"FK": "福克兰群岛(FK)",
	"FM": "密克罗尼西亚联邦(FM)",
	"FO": "法罗群岛(FO)",
	"FR": "法国(FR)",
	"GA": "加蓬(GA)",
	"GB": "英国(UK)",
	"UK": "英国(UK)",
	"GD": "格林纳达(GD)",
	"GE": "格鲁吉亚(GE)",
	"GF": "法属圭亚那(GF)",
	"GG": "根西(GG)",
	"GH": "加纳(GH)",
	"GI": "直布罗陀(GI)",
	"GL": "格陵兰(GL)",
	"GM": "冈比亚(GM)",
	"GN": "几内亚(GN)",
	"GP": "瓜德罗普(GP)",
	"GQ": "赤道几内亚(GQ)",
	"GR": "希腊(GR)",
	"GS": "南乔治亚和南桑威奇群岛(GS)",
	"GT": "危地马拉(GT)",
	"GU": "关岛(GU)",
	"GW": "几内亚比绍(GW)",
	"GY": "圭亚那(GY)",
	"HK": "香港(HK)",
	"HM": "赫德岛和麦克唐纳群岛(HM)",
	"HN": "洪都拉斯(HN)",
	"HR": "克罗地亚(HR)",
	"HT": "海地(HT)",
	"HU": "匈牙利(HU)",
	"IC": "加纳利群岛(IC)",
	"ID": "印尼(ID)",
	"IE": "爱尔兰(IE)",
	"IL": "以色列(IL)",
	"IM": "马恩岛(IM)",
	"IN": "印度(IN)",
	"IO": "英属印度洋领地(IO)",
	"IQ": "伊拉克(IQ)",
	"IR": "伊朗(IR)",
	"IS": "冰岛(IS)",
	"IT": "意大利(IT)",
	"JE": "泽西(JE)",
	"JM": "牙买加(JM)",
	"JO": "约旦(JO)",
	"JP": "日本(JP)",
	"KE": "肯尼亚(KE)",
	"KG": "吉尔吉斯斯坦(KG)",
	"KH": "柬埔寨(KH)",
	"KI": "基里巴斯(KI)",
	"KM": "科摩罗(KM)",
	"KN": "圣基茨和尼维斯(KN)",
	"KP": "朝鲜(KP)",
	"KR": "韩国(KR)",
	"KW": "科威特(KW)",
	"KY": "开曼群岛(KY)",
	"KZ": "哈萨克斯坦(KZ)",
	"LA": "老挝(LA)",
	"LB": "黎巴嫩(LB)",
	"LC": "圣卢西亚(LC)",
	"LI": "列支敦士登(LI)",
	"LK": "斯里兰卡(LK)",
	"LR": "利比里亚(LR)",
	"LS": "莱索托(LS)",
	"LT": "立陶宛(LT)",
	"LU": "卢森堡(LU)",
	"LV": "拉脱维亚(LV)",
	"LY": "利比亚(LY)",
	"MA": "摩洛哥(MA)",
	"MC": "摩纳哥(MC)",
	"MD": "摩尔多瓦(MD)",
	"ME": "黑山(ME)",
	"MF": "法属圣马丁(MF)",
	"MG": "马达加斯加(MG)",
	"MH": "马绍尔群岛(MH)",
	"MK": "北马其顿(MK)",
	"ML": "马里(ML)",
	"MM": "缅甸(MM)",
	"MN": "蒙古国(MN)",
	"MO": "澳门(MO)",
	"MP": "北马里亚纳群岛(MP)",
	"MQ": "马提尼克(MQ)",
	"MR": "毛里塔尼亚(MR)",
	"MS": "蒙特塞拉特(MS)",
	"MT": "马耳他(MT)",
	"MU": "毛里求斯(MU)",
	"MV": "马尔代夫(MV)",
	"MW": "马拉维(MW)",
	"MX": "墨西哥(MX)",
	"MY": "马来西亚(MY)",
	"MZ": "莫桑比克(MZ)",
	"NA": "纳米比亚(NA)",
	"NC": "新喀里多尼亚(NC)",
	"NE": "尼日尔(NE)",
	"NF": "诺福克岛(NF)",
	"NG": "尼日利亚(NG)",
	"NI": "尼加拉瓜(NI)",
	"NL": "荷兰(NL)",
	"NO": "挪威(NO)",
	"NP": "尼泊尔(NP)",
	"NR": "瑙鲁(NR)",
	"NU": "纽埃(NU)",
	"NZ": "新西兰(NZ)",
	"OM": "阿曼(OM)",
	"PA": "巴拿马(PA)",
	"PE": "秘鲁(PE)",
	"PF": "法属波利尼西亚(PF)",
	"PG": "巴布亚新几内亚(PG)",
	"PH": "菲律宾(PH)",
	"PK": "巴基斯坦(PK)",
	"PL": "波兰(PL)",
	"PM": "圣皮埃尔和密克隆(PM)",
	"PN": "皮特凯恩群岛(PN)",
	"PR": "波多黎各(PR)",
	"PS": "巴勒斯坦国|巴勒斯坦(PS)",
	"PT": "葡萄牙(PT)",
	"PW": "帕劳(PW)",
	"PY": "巴拉圭(PY)",
	"QA": "卡塔尔(QA)",
	"RE": "留尼旺(RE)",
	"RO": "罗马尼亚(RO)",
	"RS": "塞尔维亚(RS)",
	"RU": "俄罗斯(RU)",
	"RW": "卢旺达(RW)",
	"SA": "沙特阿拉伯(SA)",
	"SB": "所罗门群岛(SB)",
	"SC": "塞舌尔(SC)",
	"SD": "苏丹(SD)",
	"SE": "瑞典(SE)",
	"SG": "新加坡(SG)",
	"SH": "圣赫勒拿(SH)",
	"SI": "斯洛文尼亚(SI)",
	"SJ": "斯瓦尔巴和扬马延(SJ)",
	"SK": "斯洛伐克(SK)",
	"SL": "塞拉利昂(SL)",
	"SM": "圣马力诺(SM)",
	"SN": "塞内加尔(SN)",
	"SO": "索马里(SO)",
	"SR": "苏里南(SR)",
	"SS": "南苏丹(SS)",
	"ST": "圣多美和普林西比(ST)",
	"SV": "萨尔瓦多(SV)",
	"SX": "荷属圣马丁(SX)",
	"SY": "叙利亚(SY)",
	"SZ": "斯威士兰(SZ)",
	"TA": "特里斯坦-达库尼亚(TA)",
	"TC": "特克斯和凯科斯群岛(TC)",
	"TD": "乍得(TD)",
	"TF": "法属南部和南极领地(TF)",
	"TG": "多哥(TG)",
	"TH": "泰国(TH)",
	"TJ": "塔吉克斯坦(TJ)",
	"TK": "托克劳(TK)",
	"TL": "东帝汶(TL)",
	"TM": "土库曼斯坦(TM)",
	"TN": "突尼斯(TN)",
	"TO": "汤加(TO)",
	"TR": "土耳其(TR)",
	"TT": "特立尼达和多巴哥(TT)",
	"TV": "图瓦卢(TV)",
	"TW": "台湾(TW)",
	"TZ": "坦桑尼亚(TZ)",
	"UA": "乌克兰(UA)",
	"UG": "乌干达(UG)",
	"UM": "美国本土外小岛屿(UM)",
	"UN": "联合国(UN)",
	"US": "美国(US)",
	"UY": "乌拉圭(UY)",
	"UZ": "乌兹别克斯坦(UZ)",
	"VA": "梵蒂冈(VA)",
	"VC": "圣文森特和格林纳丁斯(VC)",
	"VE": "委内瑞拉(VE)",
	"VG": "英属维尔京群岛(VG)",
	"VI": "美属维尔京群岛(VI)",
	"VN": "越南(VN)",
	"VU": "瓦努阿图(VU)",
	"WF": "瓦利斯和富图纳(WF)",
	"WS": "萨摩亚(WS)",
	"XK": "科索沃(XK)",
	"YE": "也门(YE)",
	"YT": "马约特(YT)",
	"ZA": "南非(ZA)",
	"ZM": "赞比亚(ZM)",
	"ZW": "津巴布韦(ZW)",
}

func GetContryName(tag string) string {
	reg := regexp.MustCompile(`(\s?[A-Za-z]{2}[\s-_/]|[\(\[][A-Za-z]{2}[\)\]])`)
	tagSlice := reg.FindStringSubmatch(tag)
	for i := range tagSlice {
		tagSlice[i] = strings.ToLower(strings.Trim(tagSlice[i], "()[] -_/"))
	}
	countryMaps := []map[string]string{
		CountryFlag,
		CountryChineseName,
		CountryISO,
		CountryEnglishName,
	}
	for _, countryMap := range countryMaps {
		for k, v := range countryMap {
			if slices.Contains(tagSlice, strings.ToLower(k)) {
				return v
			}
			if strings.Contains(tag, strings.ToLower(k)) {
				return v
			}
		}
	}
	return "其他地区"
}

var values []string

func IsCountryGroup(tag string) bool {
	if tag == "其他地区" {
		return true
	}
	return slices.Contains(values, tag)
}

func init() {
	values = make([]string, 0, len(CountryISO))
	for _, v := range CountryISO {
		values = append(values, v)
	}
}