@luminati-io/luminati-proxy
Version:
A configurable local proxy for brightdata.com
1,335 lines (1,318 loc) • 66.2 kB
JavaScript
// LICENSE_CODE ZON ISC
'use strict'; /*jslint node:true, browser:true*/
(function(){
var define;
var is_node_ff = typeof module=='object' && module.exports;
if (!is_node_ff)
define = self.define;
else
define = require('./require_node.js').define(module, '../');
define([], function(){
var E = {};
// source of alpha_3:
// https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes/blob/
// master/all/all.json
var base_list = {
AF: {name: 'Afghanistan', cn_name: '阿富汗', alpha_3: 'AFG',
adj: 'Afghan'},
AL: {name: 'Albania', cn_name: '阿爾巴尼亞', alpha_3: 'ALB',
adj: 'Albanian'},
DZ: {name: 'Algeria', cn_name: '阿尔及利亚', alpha_3: 'DZA',
adj: 'Algerian'},
AX: {name: 'Aland Islands', cn_name: '奧蘭群島', alpha_3: 'ALA',
adj_name: 'Åland Islands', adj: 'Åland Island'},
AS: {name: 'American Samoa', cn_name: '美屬薩摩亞', alpha_3: 'ASM',
adj: 'American Samoan'},
AD: {name: 'Andorra', cn_name: '安道爾', alpha_3: 'AND', adj: 'Andorran'},
AO: {name: 'Angola', cn_name: '安哥拉', alpha_3: 'AGO', adj: 'Angolan'},
AI: {name: 'Anguilla', cn_name: '安圭拉島', alpha_3: 'AIA',
adj: 'Anguillan'},
AQ: {name: 'Antarctica', cn_name: '南極洲', alpha_3: 'ATA'},
AG: {name: 'Antigua And Barbuda', cn_name: '安提瓜和巴布達',
alpha_3: 'ATG', adj_name: 'Antigua and Barbuda', adj: 'Antiguan'},
AR: {name: 'Argentina', cn_name: '阿根廷', alpha_3: 'ARG',
adj: 'Argentinian'},
AM: {name: 'Armenia', cn_name: '亚美尼亚', alpha_3: 'ARM',
adj: 'Armenian'},
AW: {name: 'Aruba', cn_name: '阿魯巴島', alpha_3: 'ABW', adj: 'Aruban'},
AU: {name: 'Australia', cn_name: '澳大利亚', alpha_3: 'AUS',
adj: 'Australian'},
AT: {name: 'Austria', cn_name: '奥地利', alpha_3: 'AUT', adj: 'Austrian'},
AZ: {name: 'Azerbaijan', cn_name: '阿塞拜疆', alpha_3: 'AZE',
adj: 'Azerbaijani'},
BS: {name: 'Bahamas', cn_name: '巴哈马', alpha_3: 'BHS', adj: 'Bahamian'},
BH: {name: 'Bahrain', cn_name: '巴林', alpha_3: 'BHR', adj: 'Bahraini'},
JE: {name: 'Bailiwick of Jersey', cn_name: '泽西岛', alpha_3: 'JEY',
adj_name: 'Jersey', adj: 'Channel Island'},
BD: {name: 'Bangladesh', cn_name: '孟加拉國', alpha_3: 'BGD',
adj: 'Bengali'},
BB: {name: 'Barbados', cn_name: '巴巴多斯', alpha_3: 'BRB',
adj: 'Barbadian'},
BY: {name: 'Belarus', cn_name: '白俄羅斯', alpha_3: 'BLR',
adj: 'Belarusian'},
BE: {name: 'Belgium', cn_name: '比利時', alpha_3: 'BEL', adj: 'Belgian'},
BZ: {name: 'Belize', cn_name: '伯利茲', alpha_3: 'BLZ', adj: 'Belizean'},
BJ: {name: 'Benin', cn_name: '贝宁', alpha_3: 'BEN', adj: 'Beninese'},
BM: {name: 'Bermuda', cn_name: '百慕大', alpha_3: 'BMU', adj: 'Bermudan'},
BT: {name: 'Bhutan', cn_name: '不丹', alpha_3: 'BTN', adj: 'Bhutanese'},
BO: {name: 'Bolivia', cn_name: '玻利維亞', alpha_3: 'BOL',
adj: 'Bolivian'},
BQ: {name: 'Bonaire (Caribbean Netherlands)',
cn_name: '博奈爾島(加勒比荷蘭)', alpha_3: 'BES'},
BA: {name: 'Bosnia And Herzegovina', cn_name: '波斯尼亚和黑塞哥维那',
alpha_3: 'BIH', adj_name: 'Bosnia and Herzegovina',
adj: 'Bosnian'},
BW: {name: 'Botswana', cn_name: '博茨瓦納', alpha_3: 'BWA',
adj: 'Botswanan'},
BR: {name: 'Brazil', cn_name: '巴西', alpha_3: 'BRA', adj: 'Brazilian'},
BN: {name: 'Brunei', cn_name: '文萊', alpha_3: 'BRN', adj: 'Bruneian'},
BG: {name: 'Bulgaria', cn_name: '保加利亚', alpha_3: 'BGR',
adj: 'Bulgarian'},
BF: {name: 'Burkina Faso', cn_name: '布基纳法索', alpha_3: 'BFA',
adj: 'Burkinabé'},
BI: {name: 'Burundi', cn_name: '布隆迪', alpha_3: 'BDI',
adj: 'Burundian'},
KH: {name: 'Cambodia', cn_name: '柬埔寨', alpha_3: 'KHM',
adj: 'Cambodian'},
CM: {name: 'Cameroon', cn_name: '喀麦隆', alpha_3: 'CMR',
adj: 'Cameroonian'},
CA: {name: 'Canada', cn_name: '加拿大', alpha_3: 'CAN', adj: 'Canadian'},
CV: {name: 'Cape Verde', cn_name: '佛得角', alpha_3: 'CPV',
adj_name: 'Cabo Verde', adj: 'Cabo Verdean'},
KY: {name: 'Cayman Islands', cn_name: '开曼群岛', alpha_3: 'CYM',
adj: 'Caymanian'},
CF: {name: 'Central African Republic', cn_name: '中非共和國',
alpha_3: 'CAF'},
TD: {name: 'Chad', cn_name: '乍得', alpha_3: 'TCD', adj: 'Chadian'},
CL: {name: 'Chile', cn_name: '智利', alpha_3: 'CHL', adj: 'Chilean'},
CN: {name: 'China', cn_name: '中国', alpha_3: 'CHN', adj: 'Chinese'},
CX: {name: 'Christmas Island', cn_name: '聖誕島', alpha_3: 'CXR',
adj: 'Christmas Island'},
CC: {name: 'Cocos (Keeling) Islands', cn_name: '科科斯(基林)群島',
alpha_3: 'CCK'},
CO: {name: 'Colombia', cn_name: '哥倫比亞', alpha_3: 'COL',
adj: 'Colombian'},
KM: {name: 'Comoros', cn_name: '科摩罗', alpha_3: 'COM', adj: 'Comoran'},
CG: {name: 'Congo', cn_name: '刚果(布)', alpha_3: 'COG',
adj: 'Congolese'},
CK: {name: 'Cook Islands', cn_name: '庫克群島', alpha_3: 'COK',
adj: 'Cook Island'},
CR: {name: 'Costa Rica', cn_name: '哥斯达黎加', alpha_3: 'CRI',
adj: 'Costa Rican'},
CI: {name: 'Cote D\'Ivoire (Ivory Coast)', cn_name: '科特迪瓦',
alpha_3: 'CIV', adj_name: 'Côte d\'Ivoire', adj: 'Ivorian'},
HR: {name: 'Croatia (Hrvatska)', cn_name: '克羅地亞(Hrvatska)',
alpha_3: 'HRV', adj_name: 'Croatia', adj: 'Croatian'},
CU: {name: 'Cuba', cn_name: '古巴', alpha_3: 'CUB', adj: 'Cuban'},
CW: {name: 'Curacao', cn_name: '库拉索', alpha_3: 'CUW',
adj_name: 'Curaçao', adj: 'Curaçaoan'},
CY: {name: 'Cyprus', cn_name: '塞浦路斯', alpha_3: 'CYP', adj: 'Cypriot'},
CZ: {name: 'Czech Republic', cn_name: '捷克', alpha_3: 'CZE',
adj: 'Czech'},
CD: {name: 'Democratic Republic Of Congo (Zaire)',
cn_name: '剛果民主共和國(扎伊爾)', alpha_3: 'COD'},
DK: {name: 'Denmark', cn_name: '丹麦', alpha_3: 'DNK', adj: 'Danish'},
DJ: {name: 'Djibouti', cn_name: '吉布提', alpha_3: 'DJI',
adj: 'Djiboutian'},
DM: {name: 'Dominica', cn_name: '多米尼加', alpha_3: 'DMA',
adj: 'Dominican'},
DO: {name: 'Dominican Republic', cn_name: '多明尼加共和國', alpha_3: 'DOM',
adj: 'Dominican'},
EC: {name: 'Ecuador', cn_name: '厄瓜多尔', alpha_3: 'ECU',
adj: 'Ecuadorian'},
EG: {name: 'Egypt', cn_name: '埃及', alpha_3: 'EGY', adj: 'Egyptian'},
SV: {name: 'El Salvador', cn_name: '萨尔瓦多', alpha_3: 'SLV',
adj: 'Salvadoran'},
GQ: {name: 'Equatorial Guinea', cn_name: '赤道幾內亞', alpha_3: 'GNQ',
adj: 'Equatorial Guinean'},
ER: {name: 'Eritrea', cn_name: '厄立特里亞', alpha_3: 'ERI'},
EU: {name: 'European Union', cn_name: '歐洲聯盟'},
EE: {name: 'Estonia', cn_name: '愛沙尼亞', alpha_3: 'EST',
adj: 'Estonian'},
ET: {name: 'Ethiopia', cn_name: '埃塞俄比亞', alpha_3: 'ETH',
adj: 'Ethiopian'},
FK: {name: 'Falkland Islands (Malvinas)',
cn_name: '福克蘭群島(馬爾維納斯)', alpha_3: 'FLK'},
FO: {name: 'Faroe Islands', cn_name: '法羅群島', alpha_3: 'FRO',
adj: 'Faroese'},
FJ: {name: 'Fiji', cn_name: '斐濟', alpha_3: 'FJI', adj: 'Fijian'},
FI: {name: 'Finland', cn_name: '芬兰', alpha_3: 'FIN', adj: 'Finnish'},
FR: {name: 'France', cn_name: '法国', alpha_3: 'FRA', adj: 'French'},
GF: {name: 'French Guiana', cn_name: '法屬圭亞那', alpha_3: 'GUF'},
PF: {name: 'French Polynesia', cn_name: '法属波利尼西亚', alpha_3: 'PYF',
adj: 'French Polynesian'},
TF: {name: 'French Southern Territories', cn_name: '法屬南部領地',
alpha_3: 'ATF'},
GA: {name: 'Gabon', cn_name: '加蓬', alpha_3: 'GAB', adj: 'Gabonese'},
GM: {name: 'Gambia', cn_name: '冈比亚', alpha_3: 'GMB', adj: 'Gambian'},
GE: {name: 'Georgia', cn_name: '佐治亞州', alpha_3: 'GEO',
adj: 'Georgian'},
DE: {name: 'Germany', cn_name: '德国', alpha_3: 'DEU', adj: 'German'},
GH: {name: 'Ghana', cn_name: '加納', alpha_3: 'GHA', adj: 'Ghanaian'},
GI: {name: 'Gibraltar', cn_name: '直布罗陀', alpha_3: 'GIB',
adj: 'Gibraltar'},
GB: {name: 'Great Britain', cn_name: '大不列顛', alpha_3: 'GBR',
adj_name: 'United Kingdom', adj: 'British'},
GR: {name: 'Greece', cn_name: '希腊', alpha_3: 'GRC', adj: 'Greek'},
GL: {name: 'Greenland', cn_name: '格陵蘭', alpha_3: 'GRL',
adj: 'Greenlandic'},
GD: {name: 'Grenada', cn_name: '格林納達', alpha_3: 'GRD',
adj: 'Grenadian'},
GU: {name: 'Guam', cn_name: '关岛', alpha_3: 'GUM', adj: 'Guamanian'},
GP: {name: 'Guadeloupe', cn_name: '瓜德罗普', alpha_3: 'GLP'},
GT: {name: 'Guatemala', cn_name: '危地马拉', alpha_3: 'GTM',
adj: 'Guatemalan'},
GG: {name: 'Guernsey', cn_name: '根西島', alpha_3: 'GGY',
adj: 'Channel Island'},
GN: {name: 'Guinea', cn_name: '几内亚', alpha_3: 'GIN', adj: 'Guinean'},
GW: {name: 'Guinea-Bissau', cn_name: '幾內亞比紹', alpha_3: 'GNB',
adj: 'Bissau-Guinean'},
GY: {name: 'Guyana', cn_name: '圭亞那', alpha_3: 'GUY', adj: 'Guyanese'},
HT: {name: 'Haiti', cn_name: '海地', alpha_3: 'HTI', adj: 'Haitian'},
HN: {name: 'Honduras', cn_name: '洪都拉斯', alpha_3: 'HND',
adj: 'Honduran'},
HK: {name: 'Hong Kong', cn_name: '香港', alpha_3: 'HKG',
adj: 'Hong Kong'},
HU: {name: 'Hungary', cn_name: '匈牙利', alpha_3: 'HUN',
adj: 'Hungarian'},
IS: {name: 'Iceland', cn_name: '冰岛', alpha_3: 'ISL', adj: 'Icelandic'},
IN: {name: 'India', cn_name: '印度', alpha_3: 'IND', adj: 'Indian'},
ID: {name: 'Indonesia', cn_name: '印度尼西亞', alpha_3: 'IDN',
adj: 'Indonesian'},
IO: {name: 'British Indian Ocean Territory', alpha_3: 'IOT',
adj: 'Indian'},
IR: {name: 'Iran', cn_name: '伊朗', alpha_3: 'IRN', adj: 'Iranian'},
IQ: {name: 'Iraq', cn_name: '伊拉克', alpha_3: 'IRQ', adj: 'Iraqi'},
IE: {name: 'Ireland', cn_name: '愛爾蘭', alpha_3: 'IRL', adj: 'Irish'},
IM: {name: 'Isle of Man', cn_name: '马恩岛', alpha_3: 'IMN', adj: 'Manx'},
IL: {name: 'Israel', cn_name: '以色列', alpha_3: 'ISR', adj: 'Israeli'},
IT: {name: 'Italy', cn_name: '意大利', alpha_3: 'ITA', adj: 'Italian'},
JM: {name: 'Jamaica', cn_name: '牙買加', alpha_3: 'JAM', adj: 'Jamaican'},
JP: {name: 'Japan', cn_name: '日本', alpha_3: 'JPN', adj: 'Japanese'},
JO: {name: 'Jordan', cn_name: '約旦', alpha_3: 'JOR', adj: 'Jordanian'},
KZ: {name: 'Kazakhstan', cn_name: '哈薩克斯坦', alpha_3: 'KAZ',
adj: 'Kazakhstani'},
KE: {name: 'Kenya', cn_name: '肯尼亞', alpha_3: 'KEN', adj: 'Kenyan'},
KI: {name: 'Kiribati', cn_name: '基里巴斯', alpha_3: 'KIR',
adj: 'I-Kiribati'},
XK: {name: 'Kosovo', cn_name: '科索沃'},
KW: {name: 'Kuwait', cn_name: '科威特', alpha_3: 'KWT', adj: 'Kuwaiti'},
KG: {name: 'Kyrgyzstan', cn_name: '吉尔吉斯斯坦', alpha_3: 'KGZ',
adj: 'Kyrgyzstani'},
LA: {name: 'Laos', cn_name: '老撾', alpha_3: 'LAO', adj: 'Lao, Laotian'},
LV: {name: 'Latvia', cn_name: '拉脫維亞', alpha_3: 'LVA', adj: 'Latvian'},
LB: {name: 'Lebanon', cn_name: '黎巴嫩', alpha_3: 'LBN', adj: 'Lebanese'},
LS: {name: 'Lesotho', cn_name: '莱索托', alpha_3: 'LSO', adj: 'Basotho'},
LR: {name: 'Liberia', cn_name: '利比里亚', alpha_3: 'LBR',
adj: 'Liberian'},
LY: {name: 'Libya', cn_name: '利比亚', alpha_3: 'LBY', adj: 'Libyan'},
LI: {name: 'Liechtenstein', cn_name: '列支敦士登', alpha_3: 'LIE',
adj: 'Liechtensteiner'},
LT: {name: 'Lithuania', cn_name: '立陶宛', alpha_3: 'LTU',
adj: 'Lithuanian'},
LU: {name: 'Luxembourg', cn_name: '盧森堡', alpha_3: 'LUX',
adj: 'Luxembourgish'},
MO: {name: 'Macau', cn_name: '澳門', alpha_3: 'MAC', adj: 'Macanese'},
MK: {name: 'Macedonia', cn_name: '马其顿', alpha_3: 'MKD',
adj: 'Macedonian'},
MG: {name: 'Madagascar', cn_name: '马达加斯加', alpha_3: 'MDG',
adj: 'Malagasy'},
MW: {name: 'Malawi', cn_name: '马拉维', alpha_3: 'MWI', adj: 'Malawian'},
MY: {name: 'Malaysia', cn_name: '马来西亚', alpha_3: 'MYS',
adj: 'Malaysian'},
MV: {name: 'Maldives', cn_name: '马尔代夫', alpha_3: 'MDV',
adj: 'Maldivian'},
ML: {name: 'Mali', cn_name: '马里', alpha_3: 'MLI', adj: 'Malian'},
MT: {name: 'Malta', cn_name: '馬耳他', alpha_3: 'MLT', adj: 'Maltese'},
MH: {name: 'Marshall Islands', cn_name: '馬紹爾群島', alpha_3: 'MHL',
adj: 'Marshallese'},
MQ: {name: 'Martinique', cn_name: '馬提尼克島', alpha_3: 'MTQ',
adj: 'Martinican'},
MR: {name: 'Mauritania', cn_name: '毛里塔尼亚', alpha_3: 'MRT',
adj: 'Mauritanian'},
MU: {name: 'Mauritius', cn_name: '毛里求斯', alpha_3: 'MUS',
adj: 'Mauritian'},
YT: {name: 'Mayotte', cn_name: '馬約特島', alpha_3: 'MYT', adj: 'Mahoran'},
MX: {name: 'Mexico', cn_name: '墨西哥', alpha_3: 'MEX', adj: 'Mexican'},
FM: {name: 'Micronesia', cn_name: '密克羅尼西亞', alpha_3: 'FSM',
adj: 'Micronesian'},
MD: {name: 'Moldova', cn_name: '摩爾多瓦', alpha_3: 'MDA',
adj: 'Moldovan'},
MC: {name: 'Monaco', cn_name: '摩納哥', alpha_3: 'MCO', adj: 'Monacan'},
MN: {name: 'Mongolia', cn_name: '蒙古', alpha_3: 'MNG',
adj: 'Mongolian'},
ME: {name: 'Montenegro', cn_name: '黑山', alpha_3: 'MNE',
adj: 'Montenegrin'},
MS: {name: 'Montserrat', cn_name: '蒙特塞拉特', alpha_3: 'MSR'},
MA: {name: 'Morocco', cn_name: '摩洛哥', alpha_3: 'MAR', adj: 'Moroccan'},
MZ: {name: 'Mozambique', cn_name: '莫桑比克', alpha_3: 'MOZ',
adj: 'Mozambican'},
MM: {name: 'Myanmar (Burma)', cn_name: '緬甸', alpha_3: 'MMR',
adj_name: 'Myanmar', adj: 'Burmese'},
NA: {name: 'Namibia', cn_name: '纳米比亚', alpha_3: 'NAM',
adj: 'Namibian'},
NR: {name: 'Nauru', cn_name: '瑙鲁', alpha_3: 'NRU', adj: 'Nauruan'},
NP: {name: 'Nepal', cn_name: '尼泊爾', alpha_3: 'NPL', adj: 'Nepali'},
NL: {name: 'Netherlands', cn_name: '荷兰', alpha_3: 'NLD', adj: 'Dutch'},
AN: {name: 'Netherlands Antilles', cn_name: '荷屬安的列斯'},
NC: {name: 'New Caledonia', cn_name: '新喀里多尼亚', alpha_3: 'NCL',
adj: 'New Caledonian'},
NZ: {name: 'New Zealand', cn_name: '新西兰', alpha_3: 'NZL',
adj: 'Zelanian'},
NI: {name: 'Nicaragua', cn_name: '尼加拉瓜', alpha_3: 'NIC',
adj: 'Nicaraguan'},
NE: {name: 'Niger', cn_name: '尼日爾', alpha_3: 'NER', adj: 'Nigerien'},
NG: {name: 'Nigeria', cn_name: '尼日利亚', alpha_3: 'NGA',
adj: 'Nigerian'},
NU: {name: 'Niue', cn_name: '纽埃', alpha_3: 'NIU'},
NF: {name: 'Norfolk Island', cn_name: '诺福克岛', alpha_3: 'NFK'},
KP: {name: 'North Korea', cn_name: '北朝鮮', alpha_3: 'PRK'},
MP: {name: 'Northern Mariana Islands', cn_name: '北馬里亞納群島',
alpha_3: 'MNP', adj: 'Niuean'},
NO: {name: 'Norway', cn_name: '挪威', alpha_3: 'NOR', adj: 'Norwegian'},
OM: {name: 'Oman', cn_name: '阿曼', alpha_3: 'OMN', adj: 'Omani'},
PK: {name: 'Pakistan', cn_name: '巴基斯坦', alpha_3: 'PAK',
adj: 'Pakistani'},
PW: {name: 'Palau', cn_name: 'u琉', alpha_3: 'PLW', adj: 'Palauan'},
PS: {name: 'Palestine', cn_name: '巴勒斯坦', alpha_3: 'PSE',
adj: 'Palestinian'},
PA: {name: 'Panama', cn_name: '巴拿馬', alpha_3: 'PAN',
adj: 'Panamanian'},
PG: {name: 'Papua New Guinea', cn_name: '巴布亞新幾內亞', alpha_3: 'PNG',
adj: 'Papuan'},
PY: {name: 'Paraguay', cn_name: '巴拉圭', alpha_3: 'PRY',
adj: 'Paraguayan'},
PE: {name: 'Peru', cn_name: '秘魯', alpha_3: 'PER', adj: 'Peruvian'},
PH: {name: 'Philippines', cn_name: '菲律宾', alpha_3: 'PHL',
adj: 'Filipino'},
PN: {name: 'Pitcairn', cn_name: '皮特凱恩', alpha_3: 'PCN'},
PL: {name: 'Poland', cn_name: '波兰', alpha_3: 'POL', adj: 'Polish'},
PM: {name: 'Saint Pierre and Miquelon', alpha_3: 'SPM'},
PT: {name: 'Portugal', cn_name: '葡萄牙', alpha_3: 'PRT',
adj: 'Portuguese'},
PR: {name: 'Puerto Rico', cn_name: '波多黎各', alpha_3: 'PRI',
adj: 'Puerto Rican'},
QA: {name: 'Qatar', cn_name: '卡塔尔', alpha_3: 'QAT', adj: 'Qatari'},
RE: {name: 'Réunion', cn_name: '團圓', alpha_3: 'REU'},
RO: {name: 'Romania', cn_name: '罗马尼亚', alpha_3: 'ROU',
adj: 'Romanian'},
RU: {name: 'Russia', cn_name: '俄罗斯', alpha_3: 'RUS', adj: 'Russian'},
RW: {name: 'Rwanda', cn_name: '卢旺达', alpha_3: 'RWA', adj: 'Rwandan'},
BL: {name: 'Saint Barthelemy', cn_name: '聖巴托洛繆島', alpha_3: 'BLM',
adj_name: 'Saint Barthélemy', adj: 'Barthélemois'},
SH: {name: 'Saint Helena', cn_name: '聖海倫娜', alpha_3: 'SHN'},
KN: {name: 'Saint Kitts And Nevis', cn_name: '聖基茨和尼維斯',
alpha_3: 'KNA', adj_name: 'Saint Kitts and Nevis',
adj: 'Kittitian'},
LC: {name: 'Saint Lucia', cn_name: '聖盧西亞', alpha_3: 'LCA',
adj: 'Saint Lucian'},
MF: {name: 'Saint Martin', cn_name: '聖馬丁', alpha_3: 'MAF',
adj: 'Saint-Martinoise'},
VC: {name: 'Saint Vincent And The Grenadines',
cn_name: '聖文森特和格林納丁斯', alpha_3: 'VCT',
adj_name: 'Saint Vincent and the Grenadines', adj: 'Saint Vincentian'},
SM: {name: 'San Marino', cn_name: '圣马力诺', alpha_3: 'SMR',
adj: 'Sammarinese'},
ST: {name: 'Sao Tome And Principe', cn_name: '聖多美和普林西比',
alpha_3: 'STP'},
SA: {name: 'Saudi Arabia', cn_name: '沙特阿拉伯', alpha_3: 'SAU',
adj: 'Saudi'},
SN: {name: 'Senegal', cn_name: '塞内加尔', alpha_3: 'SEN',
adj: 'Senegalese'},
RS: {name: 'Serbia', cn_name: '塞爾維亞', alpha_3: 'SRB', adj: 'Serbian'},
SC: {name: 'Seychelles', cn_name: '塞舌爾', alpha_3: 'SYC',
adj: 'Seychellois'},
SL: {name: 'Sierra Leone', cn_name: '塞拉利昂', alpha_3: 'SLE',
adj: 'Sierra Leonean'},
SG: {name: 'Singapore', cn_name: '新加坡', alpha_3: 'SGP',
adj: 'Singaporean'},
SX: {name: 'Sint Maarten (Dutch part)', cn_name: '荷属圣马丁',
alpha_3: 'SXM'},
SK: {name: 'Slovak Republic', cn_name: '斯洛伐克共和國', alpha_3: 'SVK',
adj_name: 'Slovakia', adj: 'Slovak'},
SI: {name: 'Slovenia', cn_name: '斯洛文尼亚', alpha_3: 'SVN',
adj: 'Slovenian'},
SB: {name: 'Solomon Islands', cn_name: '所羅門群島', alpha_3: 'SLB',
adj: 'Solomon Island'},
SO: {name: 'Somalia', cn_name: '索马里', alpha_3: 'SOM', adj: 'Somali'},
ZA: {name: 'South Africa', cn_name: '南非', alpha_3: 'ZAF',
adj: 'South African'},
GS: {name: 'South Georgia And South Sandwich Islands',
cn_name: '南喬治亞島和南桑威奇群島', alpha_3: 'SGS'},
KR: {name: 'South Korea', cn_name: '朝鲜', alpha_3: 'KOR',
adj: 'South Korean'},
SS: {name: 'South Sudan', cn_name: '南蘇丹', alpha_3: 'SSD',
adj: 'South Sudanese'},
ES: {name: 'Spain', cn_name: '西班牙', alpha_3: 'ESP', adj: 'Spanish'},
LK: {name: 'Sri Lanka', cn_name: '斯里蘭卡', alpha_3: 'LKA',
adj: 'Sri Lankan'},
SD: {name: 'Sudan', cn_name: '苏丹', alpha_3: 'SDN', adj: 'Sudanese'},
SR: {name: 'Suriname', cn_name: '蘇里南', alpha_3: 'SUR',
adj_name: 'Surinam', adj: 'Surinamese'},
SJ: {name: 'Svalbard and Jan Mayen'},
SZ: {name: 'Swaziland', cn_name: '斯威士兰', alpha_3: 'SWZ', adj: 'Swazi'},
SE: {name: 'Sweden', cn_name: '瑞典', alpha_3: 'SWE', adj: 'Swedish'},
CH: {name: 'Switzerland', cn_name: '瑞士', alpha_3: 'CHE', adj: 'Swiss'},
SY: {name: 'Syria', cn_name: '叙利亚', alpha_3: 'SYR', adj: 'Syrian'},
TW: {name: 'Taiwan', cn_name: '台湾省', alpha_3: 'TWN', adj: 'Taiwanese'},
TJ: {name: 'Tajikistan', cn_name: '塔吉克斯坦', alpha_3: 'TJK',
adj: 'Tajikistani'},
TZ: {name: 'Tanzania', cn_name: '坦桑尼亚', alpha_3: 'TZA',
adj: 'Tanzanian'},
TH: {name: 'Thailand', cn_name: '泰国', alpha_3: 'THA', adj: 'Thai'},
TL: {name: 'Timor-Leste', cn_name: '東帝汶', alpha_3: 'TLS',
adj: 'Timorese'},
TG: {name: 'Togo', cn_name: '多哥', alpha_3: 'TGO', adj: 'Togolese'},
TK: {name: 'Tokelau', cn_name: '托克劳群岛', alpha_3: 'TKL'},
TO: {name: 'Tonga', cn_name: '湯加', alpha_3: 'TON'},
TT: {name: 'Trinidad And Tobago', cn_name: '特立尼达和多巴哥',
alpha_3: 'TTO', adj_name: 'Trinidad and Tobago', adj: 'Trinidadian'},
TN: {name: 'Tunisia', cn_name: '突尼斯', alpha_3: 'TUN', adj: 'Tunisian'},
TR: {name: 'Turkey', cn_name: '土耳其', alpha_3: 'TUR', adj: 'Turkish'},
TM: {name: 'Turkmenistan', cn_name: '土庫曼斯坦', alpha_3: 'TKM'},
TC: {name: 'Turks And Caicos Islands', cn_name: '特克斯和凱科斯群島',
alpha_3: 'TCA', adj_name: 'Turks and Caicos Islands',
adj: 'Turks and Caicos Island'},
TV: {name: 'Tuvalu', cn_name: '圖瓦盧', alpha_3: 'TUV'},
UG: {name: 'Uganda', cn_name: '烏干達', alpha_3: 'UGA', adj: 'Ugandan'},
UA: {name: 'Ukraine', cn_name: '乌克兰', alpha_3: 'UKR',
adj: 'Ukrainian'},
AE: {name: 'United Arab Emirates', cn_name: '阿拉伯聯合酋長國',
alpha_3: 'ARE', adj: 'Emirati'},
UK: {name: 'United Kingdom', cn_name: '英国'},
US: {name: 'United States', cn_name: '美国', alpha_3: 'USA',
adj: 'American'},
UM: {name: 'United States Minor Outlying Islands'},
UY: {name: 'Uruguay', cn_name: '乌拉圭', alpha_3: 'URY',
adj: 'Uruguayan'},
UZ: {name: 'Uzbekistan', cn_name: '烏茲別克斯坦', alpha_3: 'UZB',
adj: 'Uzbekistani'},
VU: {name: 'Vanuatu', cn_name: '瓦努阿圖', alpha_3: 'VUT',
adj: 'Vanuatuan'},
VA: {name: 'Vatican City (Holy See)', cn_name: '梵蒂岡(羅馬教廷)',
alpha_3: 'VAT'},
VE: {name: 'Venezuela', cn_name: '委內瑞拉', alpha_3: 'VEN',
adj: 'Venezuelan'},
VN: {name: 'Vietnam', cn_name: '越南', alpha_3: 'VNM',
adj: 'Vietnamese'},
VG: {name: 'Virgin Islands (British)', cn_name: '維爾京群島(英國)',
alpha_3: 'VGB', adj_name: 'Virgin Islands, British',
adj: 'British Virgin Island'},
VI: {name: 'Virgin Islands (US)', cn_name: '維爾京群島(美國)',
alpha_3: 'VIR', adj_name: 'Virgin Islands, United States',
adj: 'U.S. Virgin Island'},
WF: {name: 'Wallis And Futuna Islands', cn_name: '瓦利斯和富图纳群岛',
alpha_3: 'WLF'},
EH: {name: 'Western Sahara', cn_name: '西撒哈拉', alpha_3: 'ESH'},
WS: {name: 'Western Samoa', cn_name: '薩摩亞西部', alpha_3: 'WSM'},
YE: {name: 'Yemen', cn_name: '也门', alpha_3: 'YEM', adj: 'Yemeni'},
ZM: {name: 'Zambia', cn_name: '赞比亚', alpha_3: 'ZMB', adj: 'Zambian'},
ZW: {name: 'Zimbabwe', cn_name: '津巴布韦', alpha_3: 'ZWE',
adj: 'Zimbabwean'},
BV: {name: 'Bouvet Island', alpha_3: 'BVT', adj: 'Bouvet Islanders',
cn_name: '布维岛'},
HM: {name: 'Heard Island and McDonald Islands', alpha_3: 'HMD',
adj: 'Heard Islanders, McDonald Islanders',
cn_name: '赫德岛和麦克唐纳群岛'},
};
E.list = Object.fromEntries(Object.entries(base_list).map(function(e){
return [e[0], e[1].name]; }));
E.country_codes_lowered = Object.keys(E.list).map(function(c){
return c.toLowerCase(); });
E.cn_list = Object.fromEntries(Object.entries(base_list)
.filter(function(e){ return e[1].cn_name; })
.map(function(e){ return [e[0], e[1].cn_name]; }));
var alpha_3_list = Object.fromEntries(Object.entries(base_list)
.filter(function(e){ return e[1].alpha_3; })
.map(function(e){ return [e[0], e[1].alpha_3]; }));
E.adj_list = Object.fromEntries(Object.entries(base_list)
.filter(function(e){ return e[1].adj; })
.map(function(e){ return [e[0], {
name: e[1].adj_name || e[1].name,
adj: e[1].adj,
}]; }));
E.regions = {
AD: ['Southern Europe', 'EMEA'],
AE: ['Western Asia', 'EMEA'],
AF: ['Southern Asia', 'APAC'],
AG: ['Caribbean', 'AMER'],
AI: ['Caribbean', 'AMER'],
AL: ['South-Eastern Europe', 'EMEA'],
AM: ['Western Asia', 'EMEA'],
AN: ['Caribbean'],
AO: ['Middle Africa', 'EMEA'],
AQ: ['Antarctica', 'APAC'],
AR: ['South America', 'AMER'],
AS: ['Polynesia', 'South America', 'AMER'],
AT: ['Western Europe', 'EMEA', 'EU'],
AU: ['Australia and New Zealand', 'APAC'],
AW: ['Caribbean', 'AMER'],
AX: ['Scandinavia', 'EMEA', 'Northern Europe'],
AZ: ['Western Asia', 'EMEA'],
BA: ['South-Eastern Europe', 'EMEA'],
BB: ['Caribbean', 'AMER'],
BD: ['Southern Asia', 'APAC'],
BE: ['Western Europe', 'EMEA', 'EU'],
BF: ['Western Africa', 'EMEA'],
BG: ['Eastern Europe', 'EMEA', 'EU'],
BH: ['Western Asia', 'EMEA'],
BI: ['Eastern Africa', 'EMEA'],
BJ: ['Western Africa', 'EMEA'],
BL: ['Caribbean', 'AMER'],
BM: ['Northern America', 'AMER'],
BN: ['South-Eastern Asia', 'APAC'],
BO: ['South America', 'AMER'],
BQ: ['Caribbean', 'AMER'],
BR: ['South America', 'AMER'],
BS: ['Caribbean', 'AMER'],
BT: ['Southern Asia', 'APAC'],
BW: ['Southern Africa', 'EMEA'],
BY: ['Eastern Europe', 'EMEA'],
BZ: ['South America', 'AMER'],
CA: ['Northern America', 'AMER'],
CC: ['Australia and New Zealand', 'APAC'],
CD: ['Middle Africa', 'EMEA'],
CF: ['Middle Africa', 'EMEA'],
CG: ['Middle Africa', 'EMEA'],
CH: ['Western Europe', 'EMEA'],
CI: ['Western Africa', 'EMEA'],
CK: ['Polynesia', 'APAC'],
CL: ['South America', 'AMER'],
CM: ['Middle Africa', 'EMEA'],
CN: ['Asia', 'China', 'APAC'],
CO: ['South America', 'AMER'],
CR: ['South America', 'AMER'],
CU: ['Caribbean', 'AMER'],
CV: ['Western Africa', 'EMEA'],
CW: ['Caribbean', 'AMER'],
CX: ['Australia and New Zealand', 'APAC'],
CY: ['South-Eastern Europe', 'EMEA', 'EU'],
CZ: ['Eastern Europe', 'EMEA', 'EU'],
DE: ['Western Europe', 'EMEA', 'EU'],
DJ: ['Eastern Africa', 'EMEA'],
DK: ['Scandinavia', 'EMEA', 'Northern Europe', 'EU'],
DM: ['Caribbean', 'AMER'],
DO: ['Caribbean', 'AMER'],
DZ: ['Northern Africa', 'EMEA'],
EC: ['South America', 'AMER'],
EE: ['Eastern Europe', 'EMEA', 'EU'],
EG: ['Northern Africa', 'EMEA'],
EH: ['Northern Africa', 'EMEA'],
ER: ['Eastern Africa', 'EMEA'],
ES: ['Southern Europe', 'EMEA', 'EU'],
ET: ['Eastern Africa', 'EMEA'],
EU: ['Western Europe'],
FI: ['Scandinavia', 'EMEA', 'Northern Europe', 'EU'],
FJ: ['Melanesia', 'APAC'],
FK: ['South America', 'AMER'],
FM: ['Micronesia', 'APAC'],
FO: ['Scandinavia', 'EMEA', 'Northern Europe'],
FR: ['Western Europe', 'EMEA', 'EU'],
GA: ['Middle Africa', 'EMEA'],
GB: ['Northern Europe', 'EMEA'],
GD: ['Caribbean', 'AMER'],
GE: ['Western Asia', 'EMEA'],
GF: ['South America', 'AMER'],
GG: ['Northern Europe', 'EMEA'],
GH: ['Western Africa', 'EMEA'],
GI: ['Southern Europe', 'EMEA'],
GL: ['Scandinavia', 'EMEA', 'Northern Europe'],
GM: ['Western Africa', 'EMEA'],
GN: ['Western Africa', 'EMEA'],
GP: ['Caribbean', 'AMER'],
GQ: ['Middle Africa', 'EMEA'],
GR: ['South-Eastern Europe', 'EMEA', 'EU'],
GS: ['Antarctica', 'South America', 'AMER'],
GT: ['South America', 'AMER'],
GU: ['Micronesia', 'APAC'],
GW: ['Western Africa', 'EMEA'],
GY: ['South America', 'AMER'],
HK: ['Eastern Asia', 'APAC'],
HN: ['South America', 'AMER'],
HR: ['South-Eastern Europe', 'EMEA', 'EU'],
HT: ['Caribbean', 'AMER'],
HU: ['Eastern Europe', 'EMEA', 'EU'],
ID: ['South-Eastern Asia', 'APAC'],
IO: ['Eastern Africa', 'AMER'],
IE: ['Northern Europe', 'EMEA', 'EU'],
IL: ['Western Asia', 'EMEA'],
IM: ['Northern Europe', 'EMEA'],
IN: ['Southern Asia', 'APAC'],
IQ: ['Western Asia', 'EMEA'],
IR: ['Southern Asia', 'EMEA'],
IS: ['Scandinavia', 'EMEA', 'Northern Europe'],
IT: ['Southern Europe', 'EMEA', 'EU'],
JE: ['Northern Europe', 'EMEA'],
JM: ['Caribbean', 'AMER'],
JO: ['Western Asia', 'EMEA'],
JP: ['Eastern Asia', 'APAC'],
KE: ['Eastern Africa', 'EMEA'],
KG: ['Central Asia', 'EMEA'],
KH: ['South-Eastern Asia', 'APAC'],
KI: ['Micronesia', 'APAC'],
KM: ['Eastern Africa', 'EMEA'],
KN: ['Caribbean', 'AMER'],
KP: ['Eastern Asia', 'APAC'],
KR: ['Eastern Asia', 'APAC'],
KW: ['Western Asia', 'EMEA'],
KY: ['Caribbean', 'AMER'],
KZ: ['Central Asia', 'EMEA'],
LA: ['South-Eastern Asia', 'APAC'],
LB: ['Western Asia', 'EMEA'],
LC: ['Caribbean', 'AMER'],
LI: ['Western Europe', 'EMEA'],
LK: ['Southern Asia', 'APAC'],
LR: ['Western Africa', 'EMEA'],
LS: ['Southern Africa', 'EMEA'],
LT: ['Eastern Europe', 'EMEA', 'EU'],
LU: ['Western Europe', 'EMEA', 'EU'],
LV: ['Eastern Europe', 'EMEA', 'EU'],
LY: ['Northern Africa', 'EMEA'],
MA: ['Northern Africa', 'EMEA'],
MC: ['Western Europe', 'EMEA'],
MD: ['Eastern Europe', 'EMEA'],
ME: ['South-Eastern Europe', 'EMEA'],
MF: ['Caribbean', 'AMER'],
MG: ['Eastern Africa', 'EMEA'],
MH: ['Micronesia', 'APAC'],
MK: ['South-Eastern Europe', 'EMEA'],
ML: ['Western Africa', 'EMEA'],
MM: ['South-Eastern Asia', 'APAC'],
MN: ['Eastern Asia', 'APAC'],
MO: ['Eastern Asia', 'APAC'],
MP: ['Micronesia', 'APAC'],
MQ: ['Caribbean', 'AMER'],
MR: ['Western Africa', 'EMEA'],
MS: ['Caribbean', 'AMER'],
MT: ['Southern Europe', 'EMEA', 'EU'],
MU: ['Eastern Africa', 'EMEA'],
MV: ['Southern Asia', 'APAC'],
MW: ['Eastern Africa', 'EMEA'],
MX: ['South America', 'AMER'],
MY: ['South-Eastern Asia', 'APAC'],
MZ: ['Eastern Africa', 'EMEA'],
NA: ['Southern Africa', 'EMEA'],
NC: ['Melanesia', 'APAC'],
NE: ['Western Africa', 'EMEA'],
NF: ['Australia and New Zealand', 'APAC'],
NG: ['Western Africa', 'EMEA'],
NI: ['South America', 'AMER'],
NL: ['Western Europe', 'EMEA', 'EU'],
NO: ['Scandinavia', 'EMEA', 'Northern Europe'],
NP: ['Southern Asia', 'APAC'],
NR: ['Micronesia', 'APAC'],
NU: ['Polynesia', 'APAC'],
NZ: ['Australia and New Zealand', 'APAC'],
OM: ['Western Asia', 'EMEA'],
PA: ['South America', 'AMER'],
PE: ['South America', 'AMER'],
PF: ['Polynesia', 'APAC'],
PG: ['Melanesia', 'APAC'],
PH: ['South-Eastern Asia', 'APAC'],
PK: ['Southern Asia', 'APAC'],
PL: ['Eastern Europe', 'EMEA', 'EU'],
PN: ['Polynesia', 'AMER', 'South America'],
PM: ['Northern America', 'AMER'],
PR: ['Caribbean', 'AMER'],
PS: ['Western Asia', 'EMEA'],
PT: ['Southern Europe', 'EMEA', 'EU'],
PW: ['Micronesia', 'APAC'],
PY: ['South America', 'AMER'],
QA: ['Western Asia', 'EMEA'],
RE: ['Eastern Africa', 'APAC'],
RO: ['Eastern Europe', 'EMEA', 'EU'],
RS: ['South-Eastern Europe', 'EMEA'],
RU: ['Eastern Europe', 'EMEA'],
RW: ['Eastern Africa', 'EMEA'],
SA: ['Western Asia', 'EMEA'],
SB: ['Melanesia', 'APAC'],
SC: ['Eastern Africa', 'EMEA'],
SD: ['Northern Africa', 'EMEA'],
SE: ['Scandinavia', 'EMEA', 'Northern Europe', 'EU'],
SG: ['South-Eastern Asia', 'APAC'],
SH: ['Western Africa', 'EMEA'],
SI: ['South-Eastern Europe', 'EMEA', 'EU'],
SJ: ['South America', 'AMER'],
SK: ['Eastern Europe', 'EMEA', 'EU'],
SL: ['Western Africa', 'EMEA'],
SM: ['Southern Europe', 'EMEA'],
SN: ['Western Africa', 'EMEA'],
SO: ['Eastern Africa', 'EMEA'],
SR: ['South America', 'AMER'],
SS: ['Eastern Africa', 'EMEA'],
ST: ['Middle Africa', 'EMEA'],
SV: ['South America', 'AMER'],
SX: ['Caribbean', 'AMER'],
SY: ['Western Asia', 'EMEA'],
SZ: ['Southern Africa', 'EMEA'],
TC: ['Caribbean', 'AMER'],
TD: ['Middle Africa', 'EMEA'],
TF: ['Antarctica', 'EMEA'],
TG: ['Western Africa', 'EMEA'],
TH: ['South-Eastern Asia', 'APAC'],
TJ: ['Central Asia', 'APAC'],
TK: ['Polynesia', 'APAC'],
TL: ['South-Eastern Asia', 'APAC'],
TM: ['Central Asia', 'APAC'],
TN: ['Northern Africa', 'EMEA'],
TO: ['Polynesia', 'APAC'],
TR: ['South-Eastern Europe', 'EMEA'],
TT: ['Caribbean', 'AMER'],
TV: ['Polynesia', 'APAC'],
TW: ['Eastern Asia', 'APAC'],
TZ: ['Eastern Africa', 'EMEA'],
UA: ['Eastern Europe', 'EMEA'],
UG: ['Eastern Africa', 'EMEA'],
UK: ['Northern Europe', 'EMEA'],
UM: ['APAC'],
US: ['Northern America', 'AMER'],
UY: ['South America', 'AMER'],
UZ: ['Central Asia', 'EMEA'],
VA: ['Southern Europe', 'EMEA'],
VC: ['Caribbean', 'AMER'],
VE: ['South America', 'AMER'],
VG: ['Caribbean', 'AMER'],
VI: ['Caribbean', 'AMER'],
VN: ['South-Eastern Asia', 'APAC'],
VU: ['Melanesia', 'APAC'],
WF: ['Polynesia', 'APAC'],
WS: ['Polynesia', 'APAC'],
XK: ['South-Eastern Europe', 'EMEA'],
YE: ['Western Asia', 'EMEA'],
YT: ['Eastern Africa', 'EMEA'],
ZA: ['Southern Africa', 'EMEA'],
ZM: ['Eastern Africa', 'EMEA'],
ZW: ['Eastern Africa', 'EMEA'],
BV: ['Southern Africa', 'EMEA'],
HM: ['South America', 'AMER'],
};
E.region = {};
for (var cn in E.regions)
{
var codes = ['EMEA', 'AMER', 'APAC'];
var regions = E.regions[cn];
var code = codes.find(function(c){ return regions.includes(c); });
if (code)
E.region[cn] = code;
else if (regions.includes('China'))
E.region[cn] = 'APAC';
}
var supraregions = {
'Northern America': ['America'],
'South America': ['LATAM'],
'Central America': ['LATAM'],
Caribbean: ['LATAM', 'South America'],
LATAM: ['America'],
'Eastern Europe': ['Eastern Europe (W/E)'],
'South-Eastern Europe': ['Eastern Europe (W/E)'],
'Western Europe': ['Western Europe (W/E)'],
'Southern Europe': ['Western Europe (W/E)'],
'Northern Europe': ['Western Europe (W/E)'],
'Western Europe (W/E)': ['Europe'],
'Eastern Europe (W/E)': ['Europe'],
Polynesia: ['Oceania'],
Melanesia: ['Oceania'],
Micronesia: ['Oceania'],
'Australia and New Zealand': ['Oceania'],
Oceania: ['APAC'],
'South-Eastern Asia': ['APAC', 'Asia'],
'Southern Asia': ['APAC', 'Asia'],
'Eastern Asia': ['APAC', 'Asia'],
'Central Asia': ['Asia'],
'Western Asia': ['Asia'],
'Eastern Africa': ['Africa'],
'Western Africa': ['Africa'],
'Southern Africa': ['Africa'],
'Northern Africa': ['Africa'],
'Middle Africa': ['Africa'],
'EU': ['Europe']
};
E.country_terr = {};
var terr_country = {
apac_r: ['AF', 'AQ', 'AU', 'BT', 'BN', 'KH', 'CX', 'CC', 'CK', 'FJ',
'PF', 'GU', 'ID', 'JP', 'KI', 'KP', 'KR', 'LA', 'MY', 'MH', 'FM', 'MN',
'MM', 'NR', 'NP', 'NC', 'NZ', 'NU', 'NF', 'MP', 'PK', 'PW', 'PG', 'PH',
'WS', 'SG', 'SB', 'TW', 'TJ', 'TH', 'TL', 'TK', 'TO', 'TM', 'TV', 'UM',
'VU', 'VN', 'WF'],
emea_e: ['AL', 'AD', 'DZ', 'AO', 'AM', 'AZ', 'BH', 'BY', 'BJ', 'BA',
'BW', 'BG', 'BF', 'BI', 'CV', 'CM', 'CF', 'TD', 'KM', 'CG', 'CD', 'CI',
'HR', 'CY', 'CZ', 'DJ', 'EG', 'ES', 'GQ', 'ER', 'EE', 'SZ', 'ET', 'TF',
'GA', 'GM', 'GE', 'GI', 'GH', 'GR', 'GN', 'GW', 'HU', 'IR', 'IT', 'IQ',
'IL', 'JO', 'KZ', 'KE', 'KW', 'KG', 'LV', 'LB', 'LS', 'LR', 'LY', 'LT',
'MG', 'MW', 'ML', 'MR', 'MU', 'YT', 'MD', 'ME', 'MA', 'MZ', 'NA', 'NE',
'NG', 'MK', 'MT', 'OM', 'PS', 'PL', 'PT', 'QA', 'RO', 'RU', 'RW', 'SH',
'ST', 'SA', 'SM', 'SN', 'RS', 'SC', 'SL', 'SK', 'SI', 'SO', 'ZA', 'SS',
'SD', 'SY', 'TZ', 'TG', 'TN', 'TR', 'UG', 'UA', 'AE', 'UZ', 'EH', 'YE',
'ZM', 'ZW', 'XK', 'BV'],
emea_w: ['AX', 'AT', 'BE', 'DK', 'FO', 'FI', 'FR', 'DE', 'GL', 'GG', 'VA',
'IS', 'IE', 'IM', 'JE', 'LI', 'LU', 'MC', 'NO', 'SE', 'CH', 'UK', 'GB',
'NL'],
in: ['IN', 'BD', 'LK', 'RE', 'MV'],
amer_e: [],
amer_w: ['US', 'CA'],
amer_s: ['AS', 'AI', 'AG', 'AR', 'AW', 'BS', 'BB', 'BZ', 'BM', 'BO', 'BQ',
'BV', 'BR', 'IO', 'KY', 'CL', 'CO', 'CR', 'CU', 'CW', 'DM', 'DO', 'EC',
'SV', 'FK', 'GF', 'GD', 'GP', 'GT', 'GY', 'HT', 'HM', 'HN', 'JM', 'MQ',
'MX', 'MS', 'NI', 'PA', 'PY', 'PE', 'PN', 'PR', 'BL', 'KN', 'LC', 'MF',
'PM', 'VC', 'SX', 'GS', 'SR', 'SJ', 'TT', 'TC', 'UY', 'VE', 'VG', 'VI'],
cn: ['CN', 'HK', 'MO'],
};
Object.entries(terr_country).forEach(function(ct){
ct[1].forEach(function(c){ E.country_terr[c] = ct[0]; });
});
var state_terr_us_list = {
amer_w: ['AK', 'AR', 'AZ', 'CA', 'CO', 'HI', 'IA', 'ID', 'KS', 'LA', 'MN',
'MO', 'MT', 'ND', 'NE', 'NM', 'NV', 'OK', 'OR', 'SD', 'TX', 'UT',
'WA', 'WY'],
amer_e: ['AL', 'CT', 'DC', 'DE', 'FL', 'GA', 'IL', 'IN', 'KY', 'MA', 'MD',
'ME', 'MI', 'MS', 'NC', 'NH', 'NJ', 'NY', 'OH', 'PA', 'RI', 'SC', 'TN',
'VA', 'VT', 'WI', 'WV'],
};
E.state_terr = {US: Object.entries(state_terr_us_list).reduce(
function(m, e){
e[1].forEach(function(terr){ m[terr] = e[0]; });
return m;
}, {})};
var extend_regions = function(_regions, country_code){
for (var i = 0; i<_regions.length; i++)
{
(supraregions[_regions[i]]||[])
.filter(function(extra){ return !_regions.includes(extra); })
.forEach(function(extra){ _regions.push(extra); });
}
_regions.push('All');
};
for (var region_country in E.regions)
extend_regions(E.regions[region_country], region_country);
E.is_country_code = function(c){
return typeof c=='string'&&c.length==2
&&E.country_codes_lowered.includes(c.toLowerCase());
};
E.non_iso = {UK: 1, EU: 1};
E.lum_easy_pass = {
AR: 1,
AT: 1,
AU: 1,
BE: 1,
CA: 1,
EU: 1,
FL: 1,
FR: 1,
DE: 1,
GB: 1,
IE: 1,
IL: 1,
IT: 1,
NL: 1,
NZ: 1,
PL: 1,
PT: 1,
SG: 1,
KR: 1,
CH: 1,
SE: 1,
UK: 1,
US: 1,
JP: 1,
};
// records with "Parent" column equal to "Country"/"Region" from this list:
// https://developers.google.com/adwords/api/docs/appendix/geotargeting
// intersected with "Region Setting" from https://www.google.com/preferences
// plus countries from https://support.google.com/google-ads/answer/6163740
E.google_list = {
AD: 'Andorra',
AE: 'United Arab Emirates',
AF: 'Afghanistan',
AG: 'Antigua and Barbuda',
AI: 'Anguilla',
AL: 'Albania',
AM: 'Armenia',
AN: 'Netherlands Antilles',
AO: 'Angola',
AQ: 'Antarctica',
AR: 'Argentina',
AS: 'American Samoa',
AT: 'Austria',
AU: 'Australia',
AW: 'Aruba',
AZ: 'Azerbaijan',
BA: 'Bosnia and Herzegovina',
BB: 'Barbados',
BD: 'Bangladesh',
BE: 'Belgium',
BF: 'Burkina Faso',
BG: 'Bulgaria',
BH: 'Bahrain',
BI: 'Burundi',
BJ: 'Benin',
BM: 'Bermuda',
BN: 'Brunei',
BO: 'Bolivia',
BQ: 'Caribbean Netherlands',
BR: 'Brazil',
BS: 'The Bahamas',
BT: 'Bhutan',
BV: 'Bouvet Island',
BW: 'Botswana',
BY: 'Belarus',
BZ: 'Belize',
CA: 'Canada',
CC: 'Cocos (Keeling) Islands',
CD: 'Democratic Republic of the Congo',
CF: 'Central African Republic',
CG: 'Republic of the Congo',
CH: 'Switzerland',
CI: 'Cote d\'Ivoire',
CK: 'Cook Islands',
CL: 'Chile',
CM: 'Cameroon',
CN: 'China',
CO: 'Colombia',
CR: 'Costa Rica',
CS: 'Serbia and Montenegro',
CU: 'Cuba',
CV: 'Cape Verde',
CW: 'Curacao',
CX: 'Christmas Island',
CY: 'Cyprus',
CZ: 'Czechia',
DE: 'Germany',
DJ: 'Djibouti',
DK: 'Denmark',
DM: 'Dominica',
DO: 'Dominican Republic',
DZ: 'Algeria',
EC: 'Ecuador',
EE: 'Estonia',
EG: 'Egypt',
EH: 'Western Sahara',
ER: 'Eritrea',
ES: 'Spain',
ET: 'Ethiopia',
FI: 'Finland',
FJ: 'Fiji',
FK: 'Falkland Islands (Malvinas)',
FM: 'Federated States of Micronesia',
FO: 'Faroe Islands',
FR: 'France',
GA: 'Gabon',
GB: 'United Kingdom',
GD: 'Grenada',
GE: 'Georgia',
GF: 'French Guiana',
GG: 'Guernsey',
GH: 'Ghana',
GI: 'Gibraltar',
GL: 'Greenland',
GM: 'The Gambia',
GN: 'Guinea',
GP: 'Guadeloupe',
GQ: 'Equatorial Guinea',
GR: 'Greece',
GS: 'South Georgia and the South Sandwich Islands',
GT: 'Guatemala',
GU: 'Guam',
GW: 'Guinea-Bissau',
GY: 'Guyana',
HK: 'Hong Kong',
HM: 'Heard Island and McDonald Islands',
HN: 'Honduras',
HR: 'Croatia',
HT: 'Haiti',
HU: 'Hungary',
ID: 'Indonesia',
IE: 'Ireland',
IL: 'Israel',
IM: 'Isle of Man,United Kingdom',
IN: 'India',
IO: 'British Indian Ocean Territory',
IQ: 'Iraq',
IR: 'Iran',
IS: 'Iceland',
IT: 'Italy',
JE: 'Jersey',
JM: 'Jamaica',
JO: 'Jordan',
JP: 'Japan',
KE: 'Kenya',
KG: 'Kyrgyzstan',
KH: 'Cambodia',
KI: 'Kiribati',
KM: 'Comoros',
KN: 'Saint Kitts and Nevis',
KP: 'North Korea',
KR: 'South Korea',
KW: 'Kuwait',
KY: 'Cayman Islands',
KZ: 'Kazakhstan',
LA: 'Laos',
LB: 'Lebanon',
LC: 'Saint Lucia',
LI: 'Liechtenstein',
LK: 'Sri Lanka',
LR: 'Liberia',
LS: 'Lesotho',
LT: 'Lithuania',
LU: 'Luxembourg',
LV: 'Latvia',
LY: 'Libya',
MA: 'Morocco',
MC: 'Monaco',
MD: 'Moldova',
ME: 'Montenegro',
MG: 'Madagascar',
MH: 'Marshall Islands',
MK: 'North Macedonia',
ML: 'Mali',
MM: 'Myanmar (Burma)',
MN: 'Mongolia',
MO: 'Macao',
MP: 'Northern Mariana Islands',
MQ: 'Martinique',
MR: 'Mauritania',
MS: 'Montserrat',
MT: 'Malta',
MU: 'Mauritius',
MV: 'Maldives',
MW: 'Malawi',
MX: 'Mexico',
MY: 'Malaysia',
MZ: 'Mozambique',
NA: 'Namibia',
NC: 'New Caledonia',
NE: 'Niger',
NF: 'Norfolk Island',
NG: 'Nigeria',
NI: 'Nicaragua',
NL: 'Netherlands',
NO: 'Norway',
NP: 'Nepal',
NR: 'Nauru',
NU: 'Niue',
NZ: 'New Zealand',
OM: 'Oman',
PA: 'Panama',
PE: 'Peru',
PF: 'French Polynesia',
PG: 'Papua New Guinea',
PH: 'Philippines',
PK: 'Pakistan',
PL: 'Poland',
PM: 'Saint Pierre and Miquelon',
PN: 'Pitcairn Islands',
PR: 'Puerto Rico',
PS: 'Palestine',
PT: 'Portugal',
PW: 'Palau',
PY: 'Paraguay',
QA: 'Qatar',
RE: 'Reunion',
RO: 'Romania',
RS: 'Serbia',
RU: 'Russia',
RW: 'Rwanda',
SA: 'Saudi Arabia',
SB: 'Solomon Islands',
SC: 'Seychelles',
SD: 'Sudan',
SE: 'Sweden',
SG: 'Singapore',
SJ: 'Svalbard and Jan Mayen',
SH: 'Saint Helena, Ascension and Tristan da Cunha',
SI: 'Slovenia',
SK: 'Slovakia',
SL: 'Sierra Leone',
SM: 'San Marino',
SN: 'Senegal',
SO: 'Somalia',
SR: 'Suriname',
ST: 'Sao Tome and Principe',
SV: 'El Salvador',
SX: 'Sint Maarten',
SY: 'Syria',
SZ: 'Eswatini',
TC: 'Turks and Caicos Islands',
TD: 'Chad',
TF: 'French Southern and Antarctic Lands',
TG: 'Togo',
TH: 'Thailand',
TJ: 'Tajikistan',
TK: 'Tokelau',
TL: 'Timor-Leste',
TM: 'Turkmenistan',
TN: 'Tunisia',
TO: 'Tonga',
TR: 'Turkey',
TT: 'Trinidad and Tobago',
TV: 'Tuvalu',
TW: 'Taiwan',
TZ: 'Tanzania',
UA: 'Ukraine',
UG: 'Uganda',
UK: 'United Kingdom',
UM: 'United States Minor Outlying Islands',
US: 'United States',
UY: 'Uruguay',
UZ: 'Uzbekistan',
VA: 'Vatican City',
VC: 'Saint Vincent and the Grenadines',
VE: 'Venezuela',
VG: 'British Virgin Islands',
VI: 'U.S. Virgin Islands',
VN: 'Vietnam',
VU: 'Vanuatu',
WF: 'Wallis and Futuna',
WS: 'Samoa',
YE: 'Yemen',
YT: 'Mayotte',
ZA: 'South Africa',
ZM: 'Zambia',
ZW: 'Zimbabwe',
};
// scraped from https://duckduckgo.com/settings#general
// the list at https://duckduckgo.com/params is outdated
E.duckduckgo_list = {
'wt-wt': 'All regions',
'ar-es': 'Argentina',
'au-en': 'Australia',
'at-de': 'Austria',
'be-fr': 'Belgium (fr)',
'be-nl': 'Belgium (nl)',
'br-pt': 'Brazil',
'bg-bg': 'Bulgaria',
'ca-en': 'Canada (en)',
'ca-fr': 'Canada (fr)',
'ct-ca': 'Catalonia',
'cl-es': 'Chile',
'cn-zh': 'China',
'co-es': 'Colombia',
'hr-hr': 'Croatia',
'cz-cs': 'Czech Republic',
'dk-da': 'Denmark',
'ee-et': 'Estonia',
'fi-fi': 'Finland',
'fr-fr': 'France',
'de-de': 'Germany',
'gr-el': 'Greece',
'hk-tzh': 'Hong Kong',
'hu-hu': 'Hungary',
'is-is': 'Iceland',
'in-en': 'India (en)',
'id-en': 'Indonesia (en)',
'ie-en': 'Ireland',
'il-en': 'Israel (en)',
'it-it': 'Italy',
'jp-jp': 'Japan',
'kr-kr': 'Korea',
'lv-lv': 'Latvia',
'lt-lt': 'Lithuania',
'my-en': 'Malaysia (en)',
'mx-es': 'Mexico',
'nl-nl': 'Netherlands',
'nz-en': 'New Zealand',
'no-no': 'Norway',
'pk-en': 'Pakistan (en)',
'pe-es': 'Peru',
'ph-en': 'Philippines (en)',
'pl-pl': 'Poland',
'pt-pt': 'Portugal',
'ro-ro': 'Romania',
'ru-ru': 'Russia',
'xa-ar': 'Saudi Arabia',
'sg-en': 'Singapore',
'sk-sk': 'Slovakia',
'sl-sl': 'Slovenia',
'za-en': 'South Africa',
'es-ca': 'Spain (ca)',
'es-es': 'Spain (es)',
'se-sv': 'Sweden',
'ch-de': 'Switzerland (de)',
'ch-fr': 'Switzerland (fr)',
'tw-tzh': 'Taiwan',
'th-en': 'Thailand (en)',
'tr-tr': 'Turkey',
'us-en': 'US (English)',
'us-es': 'US (Spanish)',
'ua-uk': 'Ukraine',
'uk-en': 'United Kingdom',
'vn-en': 'Vietnam (en)',
};
// List of cc: https://www.bing.com/account/general#region-section
// mkt: https://docs.microsoft.com/en-us/rest/api/cognitiveservices-bingsearch/bing-custom-search-api-v7-reference#market-codes
// Generated from all language/country combinations accepted by Bing:
// - select language on Settings page
// - select country
// - check if _EDGE_S cookie respects both choices in mkt field
// Order per country matters: the first locale is used by Bing by default.
E.bing_list = {
'prs-af': 'Afghanistan',
'sq-al': 'Albania',
'en-dz': 'Algeria - English',
'ar-dz': 'Algeria - Arabic',
'en-as': 'American Samoa',
'ca-ad': 'Andorra',
'en-ao': 'Angola - English',
'pt-ao': 'Angola - Portuguese',
'en-ai': 'Anguilla',
'en-ag': 'Antigua and Barbuda',
'es-ar': 'Argentina',
'hy-am': 'Armenia',
'en-aw': 'Aruba - English',
'nl-aw': 'Aruba - Dutch',
'en-au': 'Australia',
'de-at': 'Austria',
'en-az': 'Azerbaijan - English',
'az-latn-az': 'Azerbaijan - Azerbaijani',
'en-bs': 'Bahamas',
'en-bh': 'Bahrain - English',
'ar-bh': 'Bahrain - Arabic',
'en-bd': 'Bangladesh - English',
'bn-bd': 'Bangladesh - Bangla',
'en-bb': 'Barbados',
'ru-by': 'Belarus - Russian',
'be-by': 'Belarus - Belarusian',
'nl-be': 'Belgium - Dutch',
'fr-be': 'Belgium - French',
'en-bz': 'Belize',
'en-bj': 'Benin - English',
'fr-bj': 'Benin - French',
'en-bm': 'Bermuda',
'en-bt': 'Bhutan',
'es-bo': 'Bolivia',
'en-ba': 'Bosnia & Herzegovina - English',
'bs-latn-ba': 'Bosnia & Herzegovina - Bosnian',
'en-bw': 'Botswana - English',
'tn-bw': 'Botswana - Setswana',
'pt-br': 'Brazil',
'en-vg': 'British Virgin Islands',
'ms-bn': 'Brunei',
'bg-bg': 'Bulgaria',
'en-bf': 'Burkina Faso - English',
'fr-bf': 'Burkina Faso - French',
'en-bi': 'Burundi - English',
'fr-bi': 'Burundi - French',
'en-cv': 'Cabo Verde - English',
'pt-cv': 'Cabo Verde - Portuguese',
'km-kh': 'Cambodia',
'en-cm': 'Cameroon - English',
'fr-cm': 'Cameroon - French',
'en-ca': 'Canada - English',
'fr-ca': 'Canada - French',
'en-ky': 'Cayman Islands',
'en-cf': 'Central African Republic',
'en-td': 'Chad - English',
'ar-td': 'Chad - Arabic',
'es-cl': 'Chile',
'zh-cn': 'China - Chinese',
'ug-cn': 'China - Uyghur',
'en-cx': 'Christmas Island',
'en-cc': 'Cocos (Keeling) Islands',
'es-co': 'Colombia',
'ar-km': 'Comoros - Arabic',
'fr-km': 'Comoros - French',
'fr-cg': 'Congo',
'fr-cd': 'Congo (DRC)',
'en-ck': 'Cook Islands',
'es-cr': 'Costa Rica',
'hr-hr': 'Croatia',
'nl-cw': 'Curaçao',
'en-cy': 'Cyprus - English',
'el-cy': 'Cyprus - Greek',
'en-cz': 'Czechia - English',
'cs-cz': 'Czechia - Czech',
'fr-ci': 'Côte d’Ivoire',
'en-dk': 'Denmark - English',
'da-dk': 'Denmark - Danish',
'en-dj': 'Djibouti',
'en-dm': 'Dominica',
'es-do': 'Dominican Republic',
'es-ec': 'Ecuador',
'en-eg': 'Egypt - English',
'ar-eg': 'Egypt - Arabic',
'es-sv': 'El Salvador',
'en-gq': 'Equatorial Guinea - English',
'es-gq': 'Equatorial Guinea - Spanish',
'en-er': 'Eritrea - English',
'ti-er': 'Eritrea - Tigrinya',
'et-ee': 'Estonia',
'en-sz': 'Eswatini',
'am-et': 'Ethiopia',
'en-fk': 'Falkland Islands',
'fo-fo': 'Faroe Islands',
'en-fj': 'Fiji',
'en-fi': 'Finland - English',
'fi-fi': 'Finland - Finnish',
'fr-fr': 'France',
'fr-gf': 'French Guiana',
'fr-pf': 'French Polynesia',
'fr-ga': 'Gabon',
'en-gm': 'Gambia',
'ka-ge': 'Georgia',
'de-de': 'Germany',
'en-gh': 'Ghana',
'en-gi': 'Gibraltar',
'en-gr': 'Greece - English',
'el-gr': 'Greece - Greek',
'kl-gl': 'Greenland',
'en-gd': 'Grenada',
'fr-gp': 'Guadeloupe',
'en-gu': 'Guam',
'es-gt': 'Guatemala - Spanish',
'quc-gt': 'Guatemala - K\'iche\'',
'en-gg': 'Guernsey',
'en-gn': 'Guinea - English',
'fr-gn': 'Guinea - French',
'en-gw': 'Guinea-Bissau - English',
'pt-gw': 'Guinea-Bissau - Portuguese',
'en-gy': 'Guyana',
'fr-ht': 'Haiti',
'es-hn': 'Honduras',
'en-hk': 'Hong Kong SAR - English',
'zh-hk': 'Hong Kong SAR - Chinese',
'en-hu': 'Hungary - English',
'hu-hu': 'Hungary - Hungarian',
'is-is': 'Iceland',
'en-in': 'India - English',
'as-in': 'India - Assamese',
'gu-in': 'India - Gujarati',
'hi-in': 'India - Hindi',
'kn-in': 'India - Kannada',
'kok-in': 'India - Konkani',
'ml-in': 'India - Malayalam',
'mr-in': 'India - Marathi',
'or-in': 'India - Odia',
'ta-in': 'India - Tamil',
'te-in': 'India - Telugu',
'en-id': 'Indonesia - English',
'id-id': 'Indonesia - Indonesian',
'fa-ir': 'Iran',
'en-iq': 'Iraq - English',
'ar-iq': 'Iraq - Arabic',
'ku-arab-iq': 'Iraq - Central Kurdish',
'en-ie': 'Ireland - English',
'ga-ie': 'Ireland - Irish',
'en-il': 'Israel - English',
'he-il': 'Israel - Hebrew',
'it-it': 'Italy',
'en-jm': 'Jamaica',
'ja-jp': 'Japan',
'en-je': 'Jersey',
'en-jo': 'Jordan - English',
'ar-jo': 'Jordan - Arabic',
'kk-kz': 'Kazakhstan',
'sw-ke': 'Kenya',
'en-ki': 'Kiribati',
'ko-kr': 'Korea',
'en-kw': 'Kuwait - English',
'ar-kw': 'Kuwait - Arabic',
'ky-kg': 'Kyrgyzstan',
'en-la': 'Laos - English',
'lo-la': 'Laos - Lao',
'lv-lv': 'Latvia',
'en-lb': 'Lebanon - English',
'ar-lb': 'Lebanon - Arabic',
'en-ls': 'Lesotho',
'en-lr': 'Liberia',
'en-ly': 'Libya - English',
'ar-ly': 'Libya - Arabic',
'de-