diff options
Diffstat (limited to 'utf8-combined.c')
-rw-r--r-- | utf8-combined.c | 1135 |
1 files changed, 1135 insertions, 0 deletions
diff --git a/utf8-combined.c b/utf8-combined.c new file mode 100644 index 00000000..e1b7934f --- /dev/null +++ b/utf8-combined.c @@ -0,0 +1,1135 @@ +/* $OpenBSD$ */ + +/* + * Copyright (c) 2023 Nicholas Marriott <nicholas.marriott@gmail.com> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <sys/types.h> + +#include <stdlib.h> +#include <string.h> +#include <wchar.h> + +#include "tmux.h" + +static const struct { + wchar_t first; + wchar_t second; +} utf8_combined_table[] = { + { 0x1F1E6, 0x1F1E8 }, /* flag: Ascension Island */ + { 0x1F1E6, 0x1F1E9 }, /* flag: Andorra */ + { 0x1F1E6, 0x1F1EA }, /* flag: United Arab Emirates */ + { 0x1F1E6, 0x1F1EB }, /* flag: Afghanistan */ + { 0x1F1E6, 0x1F1EC }, /* flag: Antigua & Barbuda */ + { 0x1F1E6, 0x1F1EE }, /* flag: Anguilla */ + { 0x1F1E6, 0x1F1F1 }, /* flag: Albania */ + { 0x1F1E6, 0x1F1F2 }, /* flag: Armenia */ + { 0x1F1E6, 0x1F1F4 }, /* flag: Angola */ + { 0x1F1E6, 0x1F1F6 }, /* flag: Antarctica */ + { 0x1F1E6, 0x1F1F7 }, /* flag: Argentina */ + { 0x1F1E6, 0x1F1F8 }, /* flag: American Samoa */ + { 0x1F1E6, 0x1F1F9 }, /* flag: Austria */ + { 0x1F1E6, 0x1F1FA }, /* flag: Australia */ + { 0x1F1E6, 0x1F1FC }, /* flag: Aruba */ + { 0x1F1E6, 0x1F1FD }, /* flag: Aland Islands */ + { 0x1F1E6, 0x1F1FF }, /* flag: Azerbaijan */ + { 0x1F1E7, 0x1F1E6 }, /* flag: Bosnia & Herzegovina */ + { 0x1F1E7, 0x1F1E7 }, /* flag: Barbados */ + { 0x1F1E7, 0x1F1E9 }, /* flag: Bangladesh */ + { 0x1F1E7, 0x1F1EA }, /* flag: Belgium */ + { 0x1F1E7, 0x1F1EB }, /* flag: Burkina Faso */ + { 0x1F1E7, 0x1F1EC }, /* flag: Bulgaria */ + { 0x1F1E7, 0x1F1ED }, /* flag: Bahrain */ + { 0x1F1E7, 0x1F1EE }, /* flag: Burundi */ + { 0x1F1E7, 0x1F1EF }, /* flag: Benin */ + { 0x1F1E7, 0x1F1F1 }, /* flag: St. Barthelemy */ + { 0x1F1E7, 0x1F1F2 }, /* flag: Bermuda */ + { 0x1F1E7, 0x1F1F3 }, /* flag: Brunei */ + { 0x1F1E7, 0x1F1F4 }, /* flag: Bolivia */ + { 0x1F1E7, 0x1F1F6 }, /* flag: Caribbean Netherlands */ + { 0x1F1E7, 0x1F1F7 }, /* flag: Brazil */ + { 0x1F1E7, 0x1F1F8 }, /* flag: Bahamas */ + { 0x1F1E7, 0x1F1F9 }, /* flag: Bhutan */ + { 0x1F1E7, 0x1F1FB }, /* flag: Bouvet Island */ + { 0x1F1E7, 0x1F1FC }, /* flag: Botswana */ + { 0x1F1E7, 0x1F1FE }, /* flag: Belarus */ + { 0x1F1E7, 0x1F1FF }, /* flag: Belize */ + { 0x1F1E8, 0x1F1E6 }, /* flag: Canada */ + { 0x1F1E8, 0x1F1E8 }, /* flag: Cocos (Keeling) Islands */ + { 0x1F1E8, 0x1F1E9 }, /* flag: Congo - Kinshasa */ + { 0x1F1E8, 0x1F1EB }, /* flag: Central African Republic */ + { 0x1F1E8, 0x1F1EC }, /* flag: Congo - Brazzaville */ + { 0x1F1E8, 0x1F1ED }, /* flag: Switzerland */ + { 0x1F1E8, 0x1F1EE }, /* flag: Cote d'Ivoire */ + { 0x1F1E8, 0x1F1F0 }, /* flag: Cook Islands */ + { 0x1F1E8, 0x1F1F1 }, /* flag: Chile */ + { 0x1F1E8, 0x1F1F2 }, /* flag: Cameroon */ + { 0x1F1E8, 0x1F1F3 }, /* flag: China */ + { 0x1F1E8, 0x1F1F4 }, /* flag: Colombia */ + { 0x1F1E8, 0x1F1F5 }, /* flag: Clipperton Island */ + { 0x1F1E8, 0x1F1F7 }, /* flag: Costa Rica */ + { 0x1F1E8, 0x1F1FA }, /* flag: Cuba */ + { 0x1F1E8, 0x1F1FB }, /* flag: Cape Verde */ + { 0x1F1E8, 0x1F1FC }, /* flag: Curacao */ + { 0x1F1E8, 0x1F1FD }, /* flag: Christmas Island */ + { 0x1F1E8, 0x1F1FE }, /* flag: Cyprus */ + { 0x1F1E8, 0x1F1FF }, /* flag: Czechia */ + { 0x1F1E9, 0x1F1EA }, /* flag: Germany */ + { 0x1F1E9, 0x1F1EC }, /* flag: Diego Garcia */ + { 0x1F1E9, 0x1F1EF }, /* flag: Djibouti */ + { 0x1F1E9, 0x1F1F0 }, /* flag: Denmark */ + { 0x1F1E9, 0x1F1F2 }, /* flag: Dominica */ + { 0x1F1E9, 0x1F1F4 }, /* flag: Dominican Republic */ + { 0x1F1E9, 0x1F1FF }, /* flag: Algeria */ + { 0x1F1EA, 0x1F1E6 }, /* flag: Ceuta & Melilla */ + { 0x1F1EA, 0x1F1E8 }, /* flag: Ecuador */ + { 0x1F1EA, 0x1F1EA }, /* flag: Estonia */ + { 0x1F1EA, 0x1F1EC }, /* flag: Egypt */ + { 0x1F1EA, 0x1F1ED }, /* flag: Western Sahara */ + { 0x1F1EA, 0x1F1F7 }, /* flag: Eritrea */ + { 0x1F1EA, 0x1F1F8 }, /* flag: Spain */ + { 0x1F1EA, 0x1F1F9 }, /* flag: Ethiopia */ + { 0x1F1EA, 0x1F1FA }, /* flag: European Union */ + { 0x1F1EB, 0x1F1EE }, /* flag: Finland */ + { 0x1F1EB, 0x1F1EF }, /* flag: Fiji */ + { 0x1F1EB, 0x1F1F0 }, /* flag: Falkland Islands */ + { 0x1F1EB, 0x1F1F2 }, /* flag: Micronesia */ + { 0x1F1EB, 0x1F1F4 }, /* flag: Faroe Islands */ + { 0x1F1EB, 0x1F1F7 }, /* flag: France */ + { 0x1F1EC, 0x1F1E6 }, /* flag: Gabon */ + { 0x1F1EC, 0x1F1E7 }, /* flag: United Kingdom */ + { 0x1F1EC, 0x1F1E9 }, /* flag: Grenada */ + { 0x1F1EC, 0x1F1EA }, /* flag: Georgia */ + { 0x1F1EC, 0x1F1EB }, /* flag: French Guiana */ + { 0x1F1EC, 0x1F1EC }, /* flag: Guernsey */ + { 0x1F1EC, 0x1F1ED }, /* flag: Ghana */ + { 0x1F1EC, 0x1F1EE }, /* flag: Gibraltar */ + { 0x1F1EC, 0x1F1F1 }, /* flag: Greenland */ + { 0x1F1EC, 0x1F1F2 }, /* flag: Gambia */ + { 0x1F1EC, 0x1F1F3 }, /* flag: Guinea */ + { 0x1F1EC, 0x1F1F5 }, /* flag: Guadeloupe */ + { 0x1F1EC, 0x1F1F6 }, /* flag: Equatorial Guinea */ + { 0x1F1EC, 0x1F1F7 }, /* flag: Greece */ + { 0x1F1EC, 0x1F1F8 }, /* flag: South Georgia & South Sandwich Islands */ + { 0x1F1EC, 0x1F1F9 }, /* flag: Guatemala */ + { 0x1F1EC, 0x1F1FA }, /* flag: Guam */ + { 0x1F1EC, 0x1F1FC }, /* flag: Guinea-Bissau */ + { 0x1F1EC, 0x1F1FE }, /* flag: Guyana */ + { 0x1F1ED, 0x1F1F0 }, /* flag: Hong Kong SAR China */ + { 0x1F1ED, 0x1F1F2 }, /* flag: Heard & McDonald Islands */ + { 0x1F1ED, 0x1F1F3 }, /* flag: Honduras */ + { 0x1F1ED, 0x1F1F7 }, /* flag: Croatia */ + { 0x1F1ED, 0x1F1F9 }, /* flag: Haiti */ + { 0x1F1ED, 0x1F1FA }, /* flag: Hungary */ + { 0x1F1EE, 0x1F1E8 }, /* flag: Canary Islands */ + { 0x1F1EE, 0x1F1E9 }, /* flag: Indonesia */ + { 0x1F1EE, 0x1F1EA }, /* flag: Ireland */ + { 0x1F1EE, 0x1F1F1 }, /* flag: Israel */ + { 0x1F1EE, 0x1F1F2 }, /* flag: Isle of Man */ + { 0x1F1EE, 0x1F1F3 }, /* flag: India */ + { 0x1F1EE, 0x1F1F4 }, /* flag: British Indian Ocean Territory */ + { 0x1F1EE, 0x1F1F6 }, /* flag: Iraq */ + { 0x1F1EE, 0x1F1F7 }, /* flag: Iran */ + { 0x1F1EE, 0x1F1F8 }, /* flag: Iceland */ + { 0x1F1EE, 0x1F1F9 }, /* flag: Italy */ + { 0x1F1EF, 0x1F1EA }, /* flag: Jersey */ + { 0x1F1EF, 0x1F1F2 }, /* flag: Jamaica */ + { 0x1F1EF, 0x1F1F4 }, /* flag: Jordan */ + { 0x1F1EF, 0x1F1F5 }, /* flag: Japan */ + { 0x1F1F0, 0x1F1EA }, /* flag: Kenya */ + { 0x1F1F0, 0x1F1EC }, /* flag: Kyrgyzstan */ + { 0x1F1F0, 0x1F1ED }, /* flag: Cambodia */ + { 0x1F1F0, 0x1F1EE }, /* flag: Kiribati */ + { 0x1F1F0, 0x1F1F2 }, /* flag: Comoros */ + { 0x1F1F0, 0x1F1F3 }, /* flag: St. Kitts & Nevis */ + { 0x1F1F0, 0x1F1F5 }, /* flag: North Korea */ + { 0x1F1F0, 0x1F1F7 }, /* flag: South Korea */ + { 0x1F1F0, 0x1F1FC }, /* flag: Kuwait */ + { 0x1F1F0, 0x1F1FE }, /* flag: Cayman Islands */ + { 0x1F1F0, 0x1F1FF }, /* flag: Kazakhstan */ + { 0x1F1F1, 0x1F1E6 }, /* flag: Laos */ + { 0x1F1F1, 0x1F1E7 }, /* flag: Lebanon */ + { 0x1F1F1, 0x1F1E8 }, /* flag: St. Lucia */ + { 0x1F1F1, 0x1F1EE }, /* flag: Liechtenstein */ + { 0x1F1F1, 0x1F1F0 }, /* flag: Sri Lanka */ + { 0x1F1F1, 0x1F1F7 }, /* flag: Liberia */ + { 0x1F1F1, 0x1F1F8 }, /* flag: Lesotho */ + { 0x1F1F1, 0x1F1F9 }, /* flag: Lithuania */ + { 0x1F1F1, 0x1F1FA }, /* flag: Luxembourg */ + { 0x1F1F1, 0x1F1FB }, /* flag: Latvia */ + { 0x1F1F1, 0x1F1FE }, /* flag: Libya */ + { 0x1F1F2, 0x1F1E6 }, /* flag: Morocco */ + { 0x1F1F2, 0x1F1E8 }, /* flag: Monaco */ + { 0x1F1F2, 0x1F1E9 }, /* flag: Moldova */ + { 0x1F1F2, 0x1F1EA }, /* flag: Montenegro */ + { 0x1F1F2, 0x1F1EB }, /* flag: St. Martin */ + { 0x1F1F2, 0x1F1EC }, /* flag: Madagascar */ + { 0x1F1F2, 0x1F1ED }, /* flag: Marshall Islands */ + { 0x1F1F2, 0x1F1F0 }, /* flag: North Macedonia */ + { 0x1F1F2, 0x1F1F1 }, /* flag: Mali */ + { 0x1F1F2, 0x1F1F2 }, /* flag: Myanmar (Burma */ + { 0x1F1F2, 0x1F1F3 }, /* flag: Mongolia */ + { 0x1F1F2, 0x1F1F4 }, /* flag: Macao SAR China */ + { 0x1F1F2, 0x1F1F5 }, /* flag: Northern Mariana Islands */ + { 0x1F1F2, 0x1F1F6 }, /* flag: Martinique */ + { 0x1F1F2, 0x1F1F7 }, /* flag: Mauritania */ + { 0x1F1F2, 0x1F1F8 }, /* flag: Montserrat */ + { 0x1F1F2, 0x1F1F9 }, /* flag: Malta */ + { 0x1F1F2, 0x1F1FA }, /* flag: Mauritius */ + { 0x1F1F2, 0x1F1FB }, /* flag: Maldives */ + { 0x1F1F2, 0x1F1FC }, /* flag: Malawi */ + { 0x1F1F2, 0x1F1FD }, /* flag: Mexico */ + { 0x1F1F2, 0x1F1FE }, /* flag: Malaysia */ + { 0x1F1F2, 0x1F1FF }, /* flag: Mozambique */ + { 0x1F1F3, 0x1F1E6 }, /* flag: Namibia */ + { 0x1F1F3, 0x1F1E8 }, /* flag: New Caledonia */ + { 0x1F1F3, 0x1F1EA }, /* flag: Niger */ + { 0x1F1F3, 0x1F1EB }, /* flag: Norfolk Island */ + { 0x1F1F3, 0x1F1EC }, /* flag: Nigeria */ + { 0x1F1F3, 0x1F1EE }, /* flag: Nicaragua */ + { 0x1F1F3, 0x1F1F1 }, /* flag: Netherlands */ + { 0x1F1F3, 0x1F1F4 }, /* flag: Norway */ + { 0x1F1F3, 0x1F1F5 }, /* flag: Nepal */ + { 0x1F1F3, 0x1F1F7 }, /* flag: Nauru */ + { 0x1F1F3, 0x1F1FA }, /* flag: Niue */ + { 0x1F1F3, 0x1F1FF }, /* flag: New Zealand */ + { 0x1F1F4, 0x1F1F2 }, /* flag: Oman */ + { 0x1F1F5, 0x1F1E6 }, /* flag: Panama */ + { 0x1F1F5, 0x1F1EA }, /* flag: Peru */ + { 0x1F1F5, 0x1F1EB }, /* flag: French Polynesia */ + { 0x1F1F5, 0x1F1EC }, /* flag: Papua New Guinea */ + { 0x1F1F5, 0x1F1ED }, /* flag: Philippines */ + { 0x1F1F5, 0x1F1F0 }, /* flag: Pakistan */ + { 0x1F1F5, 0x1F1F1 }, /* flag: Poland */ + { 0x1F1F5, 0x1F1F2 }, /* flag: St. Pierre & Miquelon */ + { 0x1F1F5, 0x1F1F3 }, /* flag: Pitcairn Islands */ + { 0x1F1F5, 0x1F1F7 }, /* flag: Puerto Rico */ + { 0x1F1F5, 0x1F1F8 }, /* flag: Palestinian Territories */ + { 0x1F1F5, 0x1F1F9 }, /* flag: Portugal */ + { 0x1F1F5, 0x1F1FC }, /* flag: Palau */ + { 0x1F1F5, 0x1F1FE }, /* flag: Paraguay */ + { 0x1F1F6, 0x1F1E6 }, /* flag: Qatar */ + { 0x1F1F7, 0x1F1EA }, /* flag: Reunion */ + { 0x1F1F7, 0x1F1F4 }, /* flag: Romania */ + { 0x1F1F7, 0x1F1F8 }, /* flag: Serbia */ + { 0x1F1F7, 0x1F1FA }, /* flag: Russia */ + { 0x1F1F7, 0x1F1FC }, /* flag: Rwanda */ + { 0x1F1F8, 0x1F1E6 }, /* flag: Saudi Arabia */ + { 0x1F1F8, 0x1F1E7 }, /* flag: Solomon Islands */ + { 0x1F1F8, 0x1F1E8 }, /* flag: Seychelles */ + { 0x1F1F8, 0x1F1E9 }, /* flag: Sudan */ + { 0x1F1F8, 0x1F1EA }, /* flag: Sweden */ + { 0x1F1F8, 0x1F1EC }, /* flag: Singapore */ + { 0x1F1F8, 0x1F1ED }, /* flag: St. Helena */ + { 0x1F1F8, 0x1F1EE }, /* flag: Slovenia */ + { 0x1F1F8, 0x1F1EF }, /* flag: Svalbard & Jan Mayen */ + { 0x1F1F8, 0x1F1F0 }, /* flag: Slovakia */ + { 0x1F1F8, 0x1F1F1 }, /* flag: Sierra Leone */ + { 0x1F1F8, 0x1F1F2 }, /* flag: San Marino */ + { 0x1F1F8, 0x1F1F3 }, /* flag: Senegal */ + { 0x1F1F8, 0x1F1F4 }, /* flag: Somalia */ + { 0x1F1F8, 0x1F1F7 }, /* flag: Suriname */ + { 0x1F1F8, 0x1F1F8 }, /* flag: South Sudan */ + { 0x1F1F8, 0x1F1F9 }, /* flag: Sao Tome & Principe */ + { 0x1F1F8, 0x1F1FB }, /* flag: El Salvador */ + { 0x1F1F8, 0x1F1FD }, /* flag: Sint Maarten */ + { 0x1F1F8, 0x1F1FE }, /* flag: Syria */ + { 0x1F1F8, 0x1F1FF }, /* flag: Eswatini */ + { 0x1F1F9, 0x1F1E6 }, /* flag: Tristan da Cunha */ + { 0x1F1F9, 0x1F1E8 }, /* flag: Turks & Caicos Islands */ + { 0x1F1F9, 0x1F1E9 }, /* flag: Chad */ + { 0x1F1F9, 0x1F1EB }, /* flag: French Southern Territories */ + { 0x1F1F9, 0x1F1EC }, /* flag: Togo */ + { 0x1F1F9, 0x1F1ED }, /* flag: Thailand */ + { 0x1F1F9, 0x1F1EF }, /* flag: Tajikistan */ + { 0x1F1F9, 0x1F1F0 }, /* flag: Tokelau */ + { 0x1F1F9, 0x1F1F1 }, /* flag: Timor-Leste */ + { 0x1F1F9, 0x1F1F2 }, /* flag: Turkmenistan */ + { 0x1F1F9, 0x1F1F3 }, /* flag: Tunisia */ + { 0x1F1F9, 0x1F1F4 }, /* flag: Tonga */ + { 0x1F1F9, 0x1F1F7 }, /* flag: Turkey */ + { 0x1F1F9, 0x1F1F9 }, /* flag: Trinidad & Tobago */ + { 0x1F1F9, 0x1F1FB }, /* flag: Tuvalu */ + { 0x1F1F9, 0x1F1FC }, /* flag: Taiwan */ + { 0x1F1F9, 0x1F1FF }, /* flag: Tanzania */ + { 0x1F1FA, 0x1F1E6 }, /* flag: Ukraine */ + { 0x1F1FA, 0x1F1EC }, /* flag: Uganda */ + { 0x1F1FA, 0x1F1F2 }, /* flag: U.S. Outlying Islands */ + { 0x1F1FA, 0x1F1F3 }, /* flag: United Nations */ + { 0x1F1FA, 0x1F1F8 }, /* flag: United States */ + { 0x1F1FA, 0x1F1FE }, /* flag: Uruguay */ + { 0x1F1FA, 0x1F1FF }, /* flag: Uzbekistan */ + { 0x1F1FB, 0x1F1E6 }, /* flag: Vatican City */ + { 0x1F1FB, 0x1F1E8 }, /* flag: St. Vincent & Grenadines */ + { 0x1F1FB, 0x1F1EA }, /* flag: Venezuela */ + { 0x1F1FB, 0x1F1EC }, /* flag: British Virgin Islands */ + { 0x1F1FB, 0x1F1EE }, /* flag: U.S. Virgin Islands */ + { 0x1F1FB, 0x1F1F3 }, /* flag: Vietnam */ + { 0x1F1FB, 0x1F1FA }, /* flag: Vanuatu */ + { 0x1F1FC, 0x1F1EB }, /* flag: Wallis & Futuna */ + { 0x1F1FC, 0x1F1F8 }, /* flag: Samoa */ + { 0x1F1FD, 0x1F1F0 }, /* flag: Kosovo */ + { 0x1F1FE, 0x1F1EA }, /* flag: Yemen */ + { 0x1F1FE, 0x1F1F9 }, /* flag: Mayotte */ + { 0x1F1FF, 0x1F1E6 }, /* flag: South Africa */ + { 0x1F1FF, 0x1F1F2 }, /* flag: Zambia */ + { 0x1F1FF, 0x1F1FC }, /* flag: Zimbabwe */ + { 0x0261D, 0x1F3FB }, /* index pointing up: light skin tone */ + { 0x0261D, 0x1F3FC }, /* index pointing up: medium-light skin tone */ + { 0x0261D, 0x1F3FD }, /* index pointing up: medium skin tone */ + { 0x0261D, 0x1F3FE }, /* index pointing up: medium-dark skin tone */ + { 0x0261D, 0x1F3FF }, /* index pointing up: dark skin tone */ + { 0x026F9, 0x1F3FB }, /* person bouncing ball: light skin tone */ + { 0x026F9, 0x1F3FC }, /* person bouncing ball: medium-light skin tone */ + { 0x026F9, 0x1F3FD }, /* person bouncing ball: medium skin tone */ + { 0x026F9, 0x1F3FE }, /* person bouncing ball: medium-dark skin tone */ + { 0x026F9, 0x1F3FF }, /* person bouncing ball: dark skin tone */ + { 0x0270A, 0x1F3FB }, /* raised fist: light skin tone */ + { 0x0270A, 0x1F3FC }, /* raised fist: medium-light skin tone */ + { 0x0270A, 0x1F3FD }, /* raised fist: medium skin tone */ + { 0x0270A, 0x1F3FE }, /* raised fist: medium-dark skin tone */ + { 0x0270A, 0x1F3FF }, /* raised fist: dark skin tone */ + { 0x0270B, 0x1F3FB }, /* raised hand: light skin tone */ + { 0x0270B, 0x1F3FC }, /* raised hand: medium-light skin tone */ + { 0x0270B, 0x1F3FD }, /* raised hand: medium skin tone */ + { 0x0270B, 0x1F3FE }, /* raised hand: medium-dark skin tone */ + { 0x0270B, 0x1F3FF }, /* raised hand: dark skin tone */ + { 0x0270C, 0x1F3FB }, /* victory hand: light skin tone */ + { 0x0270C, 0x1F3FC }, /* victory hand: medium-light skin tone */ + { 0x0270C, 0x1F3FD }, /* victory hand: medium skin tone */ + { 0x0270C, 0x1F3FE }, /* victory hand: medium-dark skin tone */ + { 0x0270C, 0x1F3FF }, /* victory hand: dark skin tone */ + { 0x0270D, 0x1F3FB }, /* writing hand: light skin tone */ + { 0x0270D, 0x1F3FC }, /* writing hand: medium-light skin tone */ + { 0x0270D, 0x1F3FD }, /* writing hand: medium skin tone */ + { 0x0270D, 0x1F3FE }, /* writing hand: medium-dark skin tone */ + { 0x0270D, 0x1F3FF }, /* writing hand: dark skin tone */ + { 0x1F385, 0x1F3FB }, /* Santa Claus: light skin tone */ + { 0x1F385, 0x1F3FC }, /* Santa Claus: medium-light skin tone */ + { 0x1F385, 0x1F3FD }, /* Santa Claus: medium skin tone */ + { 0x1F385, 0x1F3FE }, /* Santa Claus: medium-dark skin tone */ + { 0x1F385, 0x1F3FF }, /* Santa Claus: dark skin tone */ + { 0x1F3C2, 0x1F3FB }, /* snowboarder: light skin tone */ + { 0x1F3C2, 0x1F3FC }, /* snowboarder: medium-light skin tone */ + { 0x1F3C2, 0x1F3FD }, /* snowboarder: medium skin tone */ + { 0x1F3C2, 0x1F3FE }, /* snowboarder: medium-dark skin tone */ + { 0x1F3C2, 0x1F3FF }, /* snowboarder: dark skin tone */ + { 0x1F3C3, 0x1F3FB }, /* person running: light skin tone */ + { 0x1F3C3, 0x1F3FC }, /* person running: medium-light skin tone */ + { 0x1F3C3, 0x1F3FD }, /* person running: medium skin tone */ + { 0x1F3C3, 0x1F3FE }, /* person running: medium-dark skin tone */ + { 0x1F3C3, 0x1F3FF }, /* person running: dark skin tone */ + { 0x1F3C4, 0x1F3FB }, /* person surfing: light skin tone */ + { 0x1F3C4, 0x1F3FC }, /* person surfing: medium-light skin tone */ + { 0x1F3C4, 0x1F3FD }, /* person surfing: medium skin tone */ + { 0x1F3C4, 0x1F3FE }, /* person surfing: medium-dark skin tone */ + { 0x1F3C4, 0x1F3FF }, /* person surfing: dark skin tone */ + { 0x1F3C7, 0x1F3FB }, /* horse racing: light skin tone */ + { 0x1F3C7, 0x1F3FC }, /* horse racing: medium-light skin tone */ + { 0x1F3C7, 0x1F3FD }, /* horse racing: medium skin tone */ + { 0x1F3C7, 0x1F3FE }, /* horse racing: medium-dark skin tone */ + { 0x1F3C7, 0x1F3FF }, /* horse racing: dark skin tone */ + { 0x1F3CA, 0x1F3FB }, /* person swimming: light skin tone */ + { 0x1F3CA, 0x1F3FC }, /* person swimming: medium-light skin tone */ + { 0x1F3CA, 0x1F3FD }, /* person swimming: medium skin tone */ + { 0x1F3CA, 0x1F3FE }, /* person swimming: medium-dark skin tone */ + { 0x1F3CA, 0x1F3FF }, /* person swimming: dark skin tone */ + { 0x1F3CB, 0x1F3FB }, /* person lifting weights: light skin tone */ + { 0x1F3CB, 0x1F3FC }, /* person lifting weights: medium-light skin tone */ + { 0x1F3CB, 0x1F3FD }, /* person lifting weights: medium skin tone */ + { 0x1F3CB, 0x1F3FE }, /* person lifting weights: medium-dark skin tone */ + { 0x1F3CB, 0x1F3FF }, /* person lifting weights: dark skin tone */ + { 0x1F3CC, 0x1F3FB }, /* person golfing: light skin tone */ + { 0x1F3CC, 0x1F3FC }, /* person golfing: medium-light skin tone */ + { 0x1F3CC, 0x1F3FD }, /* person golfing: medium skin tone */ + { 0x1F3CC, 0x1F3FE }, /* person golfing: medium-dark skin tone */ + { 0x1F3CC, 0x1F3FF }, /* person golfing: dark skin tone */ + { 0x1F442, 0x1F3FB }, /* ear: light skin tone */ + { 0x1F442, 0x1F3FC }, /* ear: medium-light skin tone */ + { 0x1F442, 0x1F3FD }, /* ear: medium skin tone */ + { 0x1F442, 0x1F3FE }, /* ear: medium-dark skin tone */ + { 0x1F442, 0x1F3FF }, /* ear: dark skin tone */ + { 0x1F443, 0x1F3FB }, /* nose: light skin tone */ + { 0x1F443, 0x1F3FC }, /* nose: medium-light skin tone */ + { 0x1F443, 0x1F3FD }, /* nose: medium skin tone */ + { 0x1F443, 0x1F3FE }, /* nose: medium-dark skin tone */ + { 0x1F443, 0x1F3FF }, /* nose: dark skin tone */ + { 0x1F446, 0x1F3FB }, /* backhand index pointing up: light skin tone */ + { 0x1F446, 0x1F3FC }, /* backhand index pointing up: medium-light skin tone */ + { 0x1F446, 0x1F3FD }, /* backhand index pointing up: medium skin tone */ + { 0x1F446, 0x1F3FE }, /* backhand index pointing up: medium-dark skin tone */ + { 0x1F446, 0x1F3FF }, /* backhand index pointing up: dark skin tone */ + { 0x1F447, 0x1F3FB }, /* backhand index pointing down: light skin tone */ + { 0x1F447, 0x1F3FC }, /* backhand index pointing down: medium-light skin tone */ + { 0x1F447, 0x1F3FD }, /* backhand index pointing down: medium skin tone */ + { 0x1F447, 0x1F3FE }, /* backhand index pointing down: medium-dark skin tone */ + { 0x1F447, 0x1F3FF }, /* backhand index pointing down: dark skin tone */ + { 0x1F448, 0x1F3FB }, /* backhand index pointing left: light skin tone */ + { 0x1F448, 0x1F3FC }, /* backhand index pointing left: medium-light skin tone */ + { 0x1F448, 0x1F3FD }, /* backhand index pointing left: medium skin tone */ + { 0x1F448, 0x1F3FE }, /* backhand index pointing left: medium-dark skin tone */ + { 0x1F448, 0x1F3FF }, /* backhand index pointing left: dark skin tone */ + { 0x1F449, 0x1F3FB }, /* backhand index pointing right: light skin tone */ + { 0x1F449, 0x1F3FC }, /* backhand index pointing right: medium-light skin tone */ + { 0x1F449, 0x1F3FD }, /* backhand index pointing right: medium skin tone */ + { 0x1F449, 0x1F3FE }, /* backhand index pointing right: medium-dark skin tone */ + { 0x1F449, 0x1F3FF }, /* backhand index pointing right: dark skin tone */ + { 0x1F44A, 0x1F3FB }, /* oncoming fist: light skin tone */ + { 0x1F44A, 0x1F3FC }, /* oncoming fist: medium-light skin tone */ + { 0x1F44A, 0x1F3FD }, /* oncoming fist: medium skin tone */ + { 0x1F44A, 0x1F3FE }, /* oncoming fist: medium-dark skin tone */ + { 0x1F44A, 0x1F3FF }, /* oncoming fist: dark skin tone */ + { 0x1F44B, 0x1F3FB }, /* waving hand: light skin tone */ + { 0x1F44B, 0x1F3FC }, /* waving hand: medium-light skin tone */ + { 0x1F44B, 0x1F3FD }, /* waving hand: medium skin tone */ + { 0x1F44B, 0x1F3FE }, /* waving hand: medium-dark skin tone */ + { 0x1F44B, 0x1F3FF }, /* waving hand: dark skin tone */ + { 0x1F44C, 0x1F3FB }, /* OK hand: light skin tone */ + { 0x1F44C, 0x1F3FC }, /* OK hand: medium-light skin tone */ + { 0x1F44C, 0x1F3FD }, /* OK hand: medium skin tone */ + { 0x1F44C, 0x1F3FE }, /* OK hand: medium-dark skin tone */ + { 0x1F44C, 0x1F3FF }, /* OK hand: dark skin tone */ + { 0x1F44D, 0x1F3FB }, /* thumbs up: light skin tone */ + { 0x1F44D, 0x1F3FC }, /* thumbs up: medium-light skin tone */ + { 0x1F44D, 0x1F3FD }, /* thumbs up: medium skin tone */ + { 0x1F44D, 0x1F3FE }, /* thumbs up: medium-dark skin tone */ + { 0x1F44D, 0x1F3FF }, /* thumbs up: dark skin tone */ + { 0x1F44E, 0x1F3FB }, /* thumbs down: light skin tone */ + { 0x1F44E, 0x1F3FC }, /* thumbs down: medium-light skin tone */ + { 0x1F44E, 0x1F3FD }, /* thumbs down: medium skin tone */ + { 0x1F44E, 0x1F3FE }, /* thumbs down: medium-dark skin tone */ + { 0x1F44E, 0x1F3FF }, /* thumbs down: dark skin tone */ + { 0x1F44F, 0x1F3FB }, /* clapping hands: light skin tone */ + { 0x1F44F, 0x1F3FC }, /* clapping hands: medium-light skin tone */ + { 0x1F44F, 0x1F3FD }, /* clapping hands: medium skin tone */ + { 0x1F44F, 0x1F3FE }, /* clapping hands: medium-dark skin tone */ + { 0x1F44F, 0x1F3FF }, /* clapping hands: dark skin tone */ + { 0x1F450, 0x1F3FB }, /* open hands: light skin tone */ + { 0x1F450, 0x1F3FC }, /* open hands: medium-light skin tone */ + { 0x1F450, 0x1F3FD }, /* open hands: medium skin tone */ + { 0x1F450, 0x1F3FE }, /* open hands: medium-dark skin tone */ + { 0x1F450, 0x1F3FF }, /* open hands: dark skin tone */ + { 0x1F466, 0x1F3FB }, /* boy: light skin tone */ + { 0x1F466, 0x1F3FC }, /* boy: medium-light skin tone */ + { 0x1F466, 0x1F3FD }, /* boy: medium skin tone */ + { 0x1F466, 0x1F3FE }, /* boy: medium-dark skin tone */ + { 0x1F466, 0x1F3FF }, /* boy: dark skin tone */ + { 0x1F467, 0x1F3FB }, /* girl: light skin tone */ + { 0x1F467, 0x1F3FC }, /* girl: medium-light skin tone */ + { 0x1F467, 0x1F3FD }, /* girl: medium skin tone */ + { 0x1F467, 0x1F3FE }, /* girl: medium-dark skin tone */ + { 0x1F467, 0x1F3FF }, /* girl: dark skin tone */ + { 0x1F468, 0x1F3FB }, /* man: light skin tone */ + { 0x1F468, 0x1F3FC }, /* man: medium-light skin tone */ + { 0x1F468, 0x1F3FD }, /* man: medium skin tone */ + { 0x1F468, 0x1F3FE }, /* man: medium-dark skin tone */ + { 0x1F468, 0x1F3FF }, /* man: dark skin tone */ + { 0x1F469, 0x1F3FB }, /* woman: light skin tone */ + { 0x1F469, 0x1F3FC }, /* woman: medium-light skin tone */ + { 0x1F469, 0x1F3FD }, /* woman: medium skin tone */ + { 0x1F469, 0x1F3FE }, /* woman: medium-dark skin tone */ + { 0x1F469, 0x1F3FF }, /* woman: dark skin tone */ + { 0x1F46B, 0x1F3FB }, /* woman and man holding hands: light skin tone */ + { 0x1F46B, 0x1F3FC }, /* woman and man holding hands: medium-light skin tone */ + { 0x1F46B, 0x1F3FD }, /* woman and man holding hands: medium skin tone */ + { 0x1F46B, 0x1F3FE }, /* woman and man holding hands: medium-dark skin tone */ + { 0x1F46B, 0x1F3FF }, /* woman and man holding hands: dark skin tone */ + { 0x1F46C, 0x1F3FB }, /* men holding hands: light skin tone */ + { 0x1F46C, 0x1F3FC }, /* men holding hands: medium-light skin tone */ + { 0x1F46C, 0x1F3FD }, /* men holding hands: medium skin tone */ + { 0x1F46C, 0x1F3FE }, /* men holding hands: medium-dark skin tone */ + { 0x1F46C, 0x1F3FF }, /* men holding hands: dark skin tone */ + { 0x1F46D, 0x1F3FB }, /* women holding hands: light skin tone */ + { 0x1F46D, 0x1F3FC }, /* women holding hands: medium-light skin tone */ + { 0x1F46D, 0x1F3FD }, /* women holding hands: medium skin tone */ + { 0x1F46D, 0x1F3FE }, /* women holding hands: medium-dark skin tone */ + { 0x1F46D, 0x1F3FF }, /* women holding hands: dark skin tone */ + { 0x1F46E, 0x1F3FB }, /* police officer: light skin tone */ + { 0x1F46E, 0x1F3FC }, /* police officer: medium-light skin tone */ + { 0x1F46E, 0x1F3FD }, /* police officer: medium skin tone */ + { 0x1F46E, 0x1F3FE }, /* police officer: medium-dark skin tone */ + { 0x1F46E, 0x1F3FF }, /* police officer: dark skin tone */ + { 0x1F470, 0x1F3FB }, /* person with veil: light skin tone */ + { 0x1F470, 0x1F3FC }, /* person with veil: medium-light skin tone */ + { 0x1F470, 0x1F3FD }, /* person with veil: medium skin tone */ + { 0x1F470, 0x1F3FE }, /* person with veil: medium-dark skin tone */ + { 0x1F470, 0x1F3FF }, /* person with veil: dark skin tone */ + { 0x1F471, 0x1F3FB }, /* person: light skin tone, blond hair */ + { 0x1F471, 0x1F3FC }, /* person: medium-light skin tone, blond hair */ + { 0x1F471, 0x1F3FD }, /* person: medium skin tone, blond hair */ + { 0x1F471, 0x1F3FE }, /* person: medium-dark skin tone, blond hair */ + { 0x1F471, 0x1F3FF }, /* person: dark skin tone, blond hair */ + { 0x1F472, 0x1F3FB }, /* person with skullcap: light skin tone */ + { 0x1F472, 0x1F3FC }, /* person with skullcap: medium-light skin tone */ + { 0x1F472, 0x1F3FD }, /* person with skullcap: medium skin tone */ + { 0x1F472, 0x1F3FE }, /* person with skullcap: medium-dark skin tone */ + { 0x1F472, 0x1F3FF }, /* person with skullcap: dark skin tone */ + { 0x1F473, 0x1F3FB }, /* person wearing turban: light skin tone */ + { 0x1F473, 0x1F3FC }, /* person wearing turban: medium-light skin tone */ + { 0x1F473, 0x1F3FD }, /* person wearing turban: medium skin tone */ + { 0x1F473, 0x1F3FE }, /* person wearing turban: medium-dark skin tone */ + { 0x1F473, 0x1F3FF }, /* person wearing turban: dark skin tone */ + { 0x1F474, 0x1F3FB }, /* old man: light skin tone */ + { 0x1F474, 0x1F3FC }, /* old man: medium-light skin tone */ + { 0x1F474, 0x1F3FD }, /* old man: medium skin tone */ + { 0x1F474, 0x1F3FE }, /* old man: medium-dark skin tone */ + { 0x1F474, 0x1F3FF }, /* old man: dark skin tone */ + { 0x1F475, 0x1F3FB }, /* old woman: light skin tone */ + { 0x1F475, 0x1F3FC }, /* old woman: medium-light skin tone */ + { 0x1F475, 0x1F3FD }, /* old woman: medium skin tone */ + { 0x1F475, 0x1F3FE }, /* old woman: medium-dark skin tone */ + { 0x1F475, 0x1F3FF }, /* old woman: dark skin tone */ + { 0x1F476, 0x1F3FB }, /* baby: light skin tone */ + { 0x1F476, 0x1F3FC }, /* baby: medium-light skin tone */ + { 0x1F476, 0x1F3FD }, /* baby: medium skin tone */ + { 0x1F476, 0x1F3FE }, /* baby: medium-dark skin tone */ + { 0x1F476, 0x1F3FF }, /* baby: dark skin tone */ + { 0x1F477, 0x1F3FB }, /* construction worker: light skin tone */ + { 0x1F477, 0x1F3FC }, /* construction worker: medium-light skin tone */ + { 0x1F477, 0x1F3FD }, /* construction worker: medium skin tone */ + { 0x1F477, 0x1F3FE }, /* construction worker: medium-dark skin tone */ + { 0x1F477, 0x1F3FF }, /* construction worker: dark skin tone */ + { 0x1F478, 0x1F3FB }, /* princess: light skin tone */ + { 0x1F478, 0x1F3FC }, /* princess: medium-light skin tone */ + { 0x1F478, 0x1F3FD }, /* princess: medium skin tone */ + { 0x1F478, 0x1F3FE }, /* princess: medium-dark skin tone */ + { 0x1F478, 0x1F3FF }, /* princess: dark skin tone */ + { 0x1F47C, 0x1F3FB }, /* baby angel: light skin tone */ + { 0x1F47C, 0x1F3FC }, /* baby angel: medium-light skin tone */ + { 0x1F47C, 0x1F3FD }, /* baby angel: medium skin tone */ + { 0x1F47C, 0x1F3FE }, /* baby angel: medium-dark skin tone */ + { 0x1F47C, 0x1F3FF }, /* baby angel: dark skin tone */ + { 0x1F481, 0x1F3FB }, /* person tipping hand: light skin tone */ + { 0x1F481, 0x1F3FC }, /* person tipping hand: medium-light skin tone */ + { 0x1F481, 0x1F3FD }, /* person tipping hand: medium skin tone */ + { 0x1F481, 0x1F3FE }, /* person tipping hand: medium-dark skin tone */ + { 0x1F481, 0x1F3FF }, /* person tipping hand: dark skin tone */ + { 0x1F482, 0x1F3FB }, /* guard: light skin tone */ + { 0x1F482, 0x1F3FC }, /* guard: medium-light skin tone */ + { 0x1F482, 0x1F3FD }, /* guard: medium skin tone */ + { 0x1F482, 0x1F3FE }, /* guard: medium-dark skin tone */ + { 0x1F482, 0x1F3FF }, /* guard: dark skin tone */ + { 0x1F483, 0x1F3FB }, /* woman dancing: light skin tone */ + { 0x1F483, 0x1F3FC }, /* woman dancing: medium-light skin tone */ + { 0x1F483, 0x1F3FD }, /* woman dancing: medium skin tone */ + { 0x1F483, 0x1F3FE }, /* woman dancing: medium-dark skin tone */ + { 0x1F483, 0x1F3FF }, /* woman dancing: dark skin tone */ + { 0x1F485, 0x1F3FB }, /* nail polish: light skin tone */ + { 0x1F485, 0x1F3FC }, /* nail polish: medium-light skin tone */ + { 0x1F485, 0x1F3FD }, /* nail polish: medium skin tone */ + { 0x1F485, 0x1F3FE }, /* nail polish: medium-dark skin tone */ + { 0x1F485, 0x1F3FF }, /* nail polish: dark skin tone */ + { 0x1F486, 0x1F3FB }, /* person getting massage: light skin tone */ + { 0x1F486, 0x1F3FC }, /* person getting massage: medium-light skin tone */ + { 0x1F486, 0x1F3FD }, /* person getting massage: medium skin tone */ + { 0x1F486, 0x1F3FE }, /* person getting massage: medium-dark skin tone */ + { 0x1F486, 0x1F3FF }, /* person getting massage: dark skin tone */ + { 0x1F487, 0x1F3FB }, /* person getting haircut: light skin tone */ + { 0x1F487, 0x1F3FC }, /* person getting haircut: medium-light skin tone */ + { 0x1F487, 0x1F3FD }, /* person getting haircut: medium skin tone */ + { 0x1F487, 0x1F3FE }, /* person getting haircut: medium-dark skin tone */ + { 0x1F487, 0x1F3FF }, /* person getting haircut: dark skin tone */ + { 0x1F48F, 0x1F3FB }, /* kiss: light skin tone */ + { 0x1F48F, 0x1F3FC }, /* kiss: medium-light skin tone */ + { 0x1F48F, 0x1F3FD }, /* kiss: medium skin tone */ + { 0x1F48F, 0x1F3FE }, /* kiss: medium-dark skin tone */ + { 0x1F48F, 0x1F3FF }, /* kiss: dark skin tone */ + { 0x1F491, 0x1F3FB }, /* couple with heart: light skin tone */ + { 0x1F491, 0x1F3FC }, /* couple with heart: medium-light skin tone */ + { 0x1F491, 0x1F3FD }, /* couple with heart: medium skin tone */ + { 0x1F491, 0x1F3FE }, /* couple with heart: medium-dark skin tone */ + { 0x1F491, 0x1F3FF }, /* couple with heart: dark skin tone */ + { 0x1F4AA, 0x1F3FB }, /* flexed biceps: light skin tone */ + { 0x1F4AA, 0x1F3FC }, /* flexed biceps: medium-light skin tone */ + { 0x1F4AA, 0x1F3FD }, /* flexed biceps: medium skin tone */ + { 0x1F4AA, 0x1F3FE }, /* flexed biceps: medium-dark skin tone */ + { 0x1F4AA, 0x1F3FF }, /* flexed biceps: dark skin tone */ + { 0x1F574, 0x1F3FB }, /* person in suit levitating: light skin tone */ + { 0x1F574, 0x1F3FC }, /* person in suit levitating: medium-light skin tone */ + { 0x1F574, 0x1F3FD }, /* person in suit levitating: medium skin tone */ + { 0x1F574, 0x1F3FE }, /* person in suit levitating: medium-dark skin tone */ + { 0x1F574, 0x1F3FF }, /* person in suit levitating: dark skin tone */ + { 0x1F575, 0x1F3FB }, /* detective: light skin tone */ + { 0x1F575, 0x1F3FC }, /* detective: medium-light skin tone */ + { 0x1F575, 0x1F3FD }, /* detective: medium skin tone */ + { 0x1F575, 0x1F3FE }, /* detective: medium-dark skin tone */ + { 0x1F575, 0x1F3FF }, /* detective: dark skin tone */ + { 0x1F57A, 0x1F3FB }, /* man dancing: light skin tone */ + { 0x1F57A, 0x1F3FC }, /* man dancing: medium-light skin tone */ + { 0x1F57A, 0x1F3FD }, /* man dancing: medium skin tone */ + { 0x1F57A, 0x1F3FE }, /* man dancing: medium-dark skin tone */ + { 0x1F57A, 0x1F3FF }, /* man dancing: dark skin tone */ + { 0x1F590, 0x1F3FB }, /* hand with fingers splayed: light skin tone */ + { 0x1F590, 0x1F3FC }, /* hand with fingers splayed: medium-light skin tone */ + { 0x1F590, 0x1F3FD }, /* hand with fingers splayed: medium skin tone */ + { 0x1F590, 0x1F3FE }, /* hand with fingers splayed: medium-dark skin tone */ + { 0x1F590, 0x1F3FF }, /* hand with fingers splayed: dark skin tone */ + { 0x1F595, 0x1F3FB }, /* middle finger: light skin tone */ + { 0x1F595, 0x1F3FC }, /* middle finger: medium-light skin tone */ + { 0x1F595, 0x1F3FD }, /* middle finger: medium skin tone */ + { 0x1F595, 0x1F3FE }, /* middle finger: medium-dark skin tone */ + { 0x1F595, 0x1F3FF }, /* middle finger: dark skin tone */ + { 0x1F596, 0x1F3FB }, /* vulcan salute: light skin tone */ + { 0x1F596, 0x1F3FC }, /* vulcan salute: medium-light skin tone */ + { 0x1F596, 0x1F3FD }, /* vulcan salute: medium skin tone */ + { 0x1F596, 0x1F3FE }, /* vulcan salute: medium-dark skin tone */ + { 0x1F596, 0x1F3FF }, /* vulcan salute: dark skin tone */ + { 0x1F645, 0x1F3FB }, /* person gesturing NO: light skin tone */ + { 0x1F645, 0x1F3FC }, /* person gesturing NO: medium-light skin tone */ + { 0x1F645, 0x1F3FD }, /* person gesturing NO: medium skin tone */ + { 0x1F645, 0x1F3FE }, /* person gesturing NO: medium-dark skin tone */ + { 0x1F645, 0x1F3FF }, /* person gesturing NO: dark skin tone */ + { 0x1F646, 0x1F3FB }, /* person gesturing OK: light skin tone */ + { 0x1F646, 0x1F3FC }, /* person gesturing OK: medium-light skin tone */ + { 0x1F646, 0x1F3FD }, /* person gesturing OK: medium skin tone */ + { 0x1F646, 0x1F3FE }, /* person gesturing OK: medium-dark skin tone */ + { 0x1F646, 0x1F3FF }, /* person gesturing OK: dark skin tone */ + { 0x1F647, 0x1F3FB }, /* person bowing: light skin tone */ + { 0x1F647, 0x1F3FC }, /* person bowing: medium-light skin tone */ + { 0x1F647, 0x1F3FD }, /* person bowing: medium skin tone */ + { 0x1F647, 0x1F3FE }, /* person bowing: medium-dark skin tone */ + { 0x1F647, 0x1F3FF }, /* person bowing: dark skin tone */ + { 0x1F64B, 0x1F3FB }, /* person raising hand: light skin tone */ + { 0x1F64B, 0x1F3FC }, /* person raising hand: medium-light skin tone */ + { 0x1F64B, 0x1F3FD }, /* person raising hand: medium skin tone */ + { 0x1F64B, 0x1F3FE }, /* person raising hand: medium-dark skin tone */ + { 0x1F64B, 0x1F3FF }, /* person raising hand: dark skin tone */ + { 0x1F64C, 0x1F3FB }, /* raising hands: light skin tone */ + { 0x1F64C, 0x1F3FC }, /* raising hands: medium-light skin tone */ + { 0x1F64C, 0x1F3FD }, /* raising hands: medium skin tone */ + { 0x1F64C, 0x1F3FE }, /* raising hands: medium-dark skin tone */ + { 0x1F64C, 0x1F3FF }, /* raising hands: dark skin tone */ + { 0x1F64D, 0x1F3FB }, /* person frowning: light skin tone */ + { 0x1F64D, 0x1F3FC }, /* person frowning: medium-light skin tone */ + { 0x1F64D, 0x1F3FD }, /* person frowning: medium skin tone */ + { 0x1F64D, 0x1F3FE }, /* person frowning: medium-dark skin tone */ + { 0x1F64D, 0x1F3FF }, /* person frowning: dark skin tone */ + { 0x1F64E, 0x1F3FB }, /* person pouting: light skin tone */ + { 0x1F64E, 0x1F3FC }, /* person pouting: medium-light skin tone */ + { 0x1F64E, 0x1F3FD }, /* person pouting: medium skin tone */ + { 0x1F64E, 0x1F3FE }, /* person pouting: medium-dark skin tone */ + { 0x1F64E, 0x1F3FF }, /* person pouting: dark skin tone */ + { 0x1F64F, 0x1F3FB }, /* folded hands: light skin tone */ + { 0x1F64F, 0x1F3FC }, /* folded hands: medium-light skin tone */ + { 0x1F64F, 0x1F3FD }, /* folded hands: medium skin tone */ + { 0x1F64F, 0x1F3FE }, /* folded hands: medium-dark skin tone */ + { 0x1F64F, 0x1F3FF }, /* folded hands: dark skin tone */ + { 0x1F6A3, 0x1F3FB }, /* person rowing boat: light skin tone */ + { 0x1F6A3, 0x1F3FC }, /* person rowing boat: medium-light skin tone */ + { 0x1F6A3, 0x1F3FD }, /* person rowing boat: medium skin tone */ + { 0x1F6A3, 0x1F3FE }, /* person rowing boat: medium-dark skin tone */ + { 0x1F6A3, 0x1F3FF }, /* person rowing boat: dark skin tone */ + { 0x1F6B4, 0x1F3FB }, /* person biking: light skin tone */ + { 0x1F6B4, 0x1F3FC }, /* person biking: medium-light skin tone */ + { 0x1F6B4, 0x1F3FD }, /* person biking: medium skin tone */ + { 0x1F6B4, 0x1F3FE }, /* person biking: medium-dark skin tone */ + { 0x1F6B4, 0x1F3FF }, /* person biking: dark skin tone */ + { 0x1F6B5, 0x1F3FB }, /* person mountain biking: light skin tone */ + { 0x1F6B5, 0x1F3FC }, /* person mountain biking: medium-light skin tone */ + { 0x1F6B5, 0x1F3FD }, /* person mountain biking: medium skin tone */ + { 0x1F6B5, 0x1F3FE }, /* person mountain biking: medium-dark skin tone */ + { 0x1F6B5, 0x1F3FF }, /* person mountain biking: dark skin tone */ + { 0x1F6B6, 0x1F3FB }, /* person walking: light skin tone */ + { 0x1F6B6, 0x1F3FC }, /* person walking: medium-light skin tone */ + { 0x1F6B6, 0x1F3FD }, /* person walking: medium skin tone */ + { 0x1F6B6, 0x1F3FE }, /* person walking: medium-dark skin tone */ + { 0x1F6B6, 0x1F3FF }, /* person walking: dark skin tone */ + { 0x1F6C0, 0x1F3FB }, /* person taking bath: light skin tone */ + { 0x1F6C0, 0x1F3FC }, /* person taking bath: medium-light skin tone */ + { 0x1F6C0, 0x1F3FD }, /* person taking bath: medium skin tone */ + { 0x1F6C0, 0x1F3FE }, /* person taking bath: medium-dark skin tone */ + { 0x1F6C0, 0x1F3FF }, /* person taking bath: dark skin tone */ + { 0x1F6CC, 0x1F3FB }, /* person in bed: light skin tone */ + { 0x1F6CC, 0x1F3FC }, /* person in bed: medium-light skin tone */ + { 0x1F6CC, 0x1F3FD }, /* person in bed: medium skin tone */ + { 0x1F6CC, 0x1F3FE }, /* person in bed: medium-dark skin tone */ + { 0x1F6CC, 0x1F3FF }, /* person in bed: dark skin tone */ + { 0x1F90C, 0x1F3FB }, /* pinched fingers: light skin tone */ + { 0x1F90C, 0x1F3FC }, /* pinched fingers: medium-light skin tone */ + { 0x1F90C, 0x1F3FD }, /* pinched fingers: medium skin tone */ + { 0x1F90C, 0x1F3FE }, /* pinched fingers: medium-dark skin tone */ + { 0x1F90C, 0x1F3FF }, /* pinched fingers: dark skin tone */ + { 0x1F90F, 0x1F3FB }, /* pinching hand: light skin tone */ + { 0x1F90F, 0x1F3FC }, /* pinching hand: medium-light skin tone */ + { 0x1F90F, 0x1F3FD }, /* pinching hand: medium skin tone */ + { 0x1F90F, 0x1F3FE }, /* pinching hand: medium-dark skin tone */ + { 0x1F90F, 0x1F3FF }, /* pinching hand: dark skin tone */ + { 0x1F918, 0x1F3FB }, /* sign of the horns: light skin tone */ + { 0x1F918, 0x1F3FC }, /* sign of the horns: medium-light skin tone */ + { 0x1F918, 0x1F3FD }, /* sign of the horns: medium skin tone */ + { 0x1F918, 0x1F3FE }, /* sign of the horns: medium-dark skin tone */ + { 0x1F918, 0x1F3FF }, /* sign of the horns: dark skin tone */ + { 0x1F919, 0x1F3FB }, /* call me hand: light skin tone */ + { 0x1F919, 0x1F3FC }, /* call me hand: medium-light skin tone */ + { 0x1F919, 0x1F3FD }, /* call me hand: medium skin tone */ + { 0x1F919, 0x1F3FE }, /* call me hand: medium-dark skin tone */ + { 0x1F919, 0x1F3FF }, /* call me hand: dark skin tone */ + { 0x1F91A, 0x1F3FB }, /* raised back of hand: light skin tone */ + { 0x1F91A, 0x1F3FC }, /* raised back of hand: medium-light skin tone */ + { 0x1F91A, 0x1F3FD }, /* raised back of hand: medium skin tone */ + { 0x1F91A, 0x1F3FE }, /* raised back of hand: medium-dark skin tone */ + { 0x1F91A, 0x1F3FF }, /* raised back of hand: dark skin tone */ + { 0x1F91B, 0x1F3FB }, /* left-facing fist: light skin tone */ + { 0x1F91B, 0x1F3FC }, /* left-facing fist: medium-light skin tone */ + { 0x1F91B, 0x1F3FD }, /* left-facing fist: medium skin tone */ + { 0x1F91B, 0x1F3FE }, /* left-facing fist: medium-dark skin tone */ + { 0x1F91B, 0x1F3FF }, /* left-facing fist: dark skin tone */ + { 0x1F91C, 0x1F3FB }, /* right-facing fist: light skin tone */ + { 0x1F91C, 0x1F3FC }, /* right-facing fist: medium-light skin tone */ + { 0x1F91C, 0x1F3FD }, /* right-facing fist: medium skin tone */ + { 0x1F91C, 0x1F3FE }, /* right-facing fist: medium-dark skin tone */ + { 0x1F91C, 0x1F3FF }, /* right-facing fist: dark skin tone */ + { 0x1F91D, 0x1F3FB }, /* handshake: light skin tone */ + { 0x1F91D, 0x1F3FC }, /* handshake: medium-light skin tone */ + { 0x1F91D, 0x1F3FD }, /* handshake: medium skin tone */ + { 0x1F91D, 0x1F3FE }, /* handshake: medium-dark skin tone */ + { 0x1F91D, 0x1F3FF }, /* handshake: dark skin tone */ + { 0x1F91E, 0x1F3FB }, /* crossed fingers: light skin tone */ + { 0x1F91E, 0x1F3FC }, /* crossed fingers: medium-light skin tone */ + { 0x1F91E, 0x1F3FD }, /* crossed fingers: medium skin tone */ + { 0x1F91E, 0x1F3FE }, /* crossed fingers: medium-dark skin tone */ + { 0x1F91E, 0x1F3FF }, /* crossed fingers: dark skin tone */ + { 0x1F91F, 0x1F3FB }, /* love-you gesture: light skin tone */ + { 0x1F91F, 0x1F3FC }, /* love-you gesture: medium-light skin tone */ + { 0x1F91F, 0x1F3FD }, /* love-you gesture: medium skin tone */ + { 0x1F91F, 0x1F3FE }, /* love-you gesture: medium-dark skin tone */ + { 0x1F91F, 0x1F3FF }, /* love-you gesture: dark skin tone */ + { 0x1F926, 0x1F3FB }, /* person facepalming: light skin tone */ + { 0x1F926, 0x1F3FC }, /* person facepalming: medium-light skin tone */ + { 0x1F926, 0x1F3FD }, /* person facepalming: medium skin tone */ + { 0x1F926, 0x1F3FE }, /* person facepalming: medium-dark skin tone */ + { 0x1F926, 0x1F3FF }, /* person facepalming: dark skin tone */ + { 0x1F930, 0x1F3FB }, /* pregnant woman: light skin tone */ + { 0x1F930, 0x1F3FC }, /* pregnant woman: medium-light skin tone */ + { 0x1F930, 0x1F3FD }, /* pregnant woman: medium skin tone */ + { 0x1F930, 0x1F3FE }, /* pregnant woman: medium-dark skin tone */ + { 0x1F930, 0x1F3FF }, /* pregnant woman: dark skin tone */ + { 0x1F931, 0x1F3FB }, /* breast-feeding: light skin tone */ + { 0x1F931, 0x1F3FC }, /* breast-feeding: medium-light skin tone */ + { 0x1F931, 0x1F3FD }, /* breast-feeding: medium skin tone */ + { 0x1F931, 0x1F3FE }, /* breast-feeding: medium-dark skin tone */ + { 0x1F931, 0x1F3FF }, /* breast-feeding: dark skin tone */ + { 0x1F932, 0x1F3FB }, /* palms up together: light skin tone */ + { 0x1F932, 0x1F3FC }, /* palms up together: medium-light skin tone */ + { 0x1F932, 0x1F3FD }, /* palms up together: medium skin tone */ + { 0x1F932, 0x1F3FE }, /* palms up together: medium-dark skin tone */ + { 0x1F932, 0x1F3FF }, /* palms up together: dark skin tone */ + { 0x1F933, 0x1F3FB }, /* selfie: light skin tone */ + { 0x1F933, 0x1F3FC }, /* selfie: medium-light skin tone */ + { 0x1F933, 0x1F3FD }, /* selfie: medium skin tone */ + { 0x1F933, 0x1F3FE }, /* selfie: medium-dark skin tone */ + { 0x1F933, 0x1F3FF }, /* selfie: dark skin tone */ + { 0x1F934, 0x1F3FB }, /* prince: light skin tone */ + { 0x1F934, 0x1F3FC }, /* prince: medium-light skin tone */ + { 0x1F934, 0x1F3FD }, /* prince: medium skin tone */ + { 0x1F934, 0x1F3FE }, /* prince: medium-dark skin tone */ + { 0x1F934, 0x1F3FF }, /* prince: dark skin tone */ + { 0x1F935, 0x1F3FB }, /* person in tuxedo: light skin tone */ + { 0x1F935, 0x1F3FC }, /* person in tuxedo: medium-light skin tone */ + { 0x1F935, 0x1F3FD }, /* person in tuxedo: medium skin tone */ + { 0x1F935, 0x1F3FE }, /* person in tuxedo: medium-dark skin tone */ + { 0x1F935, 0x1F3FF }, /* person in tuxedo: dark skin tone */ + { 0x1F936, 0x1F3FB }, /* Mrs. Claus: light skin tone */ + { 0x1F936, 0x1F3FC }, /* Mrs. Claus: medium-light skin tone */ + { 0x1F936, 0x1F3FD }, /* Mrs. Claus: medium skin tone */ + { 0x1F936, 0x1F3FE }, /* Mrs. Claus: medium-dark skin tone */ + { 0x1F936, 0x1F3FF }, /* Mrs. Claus: dark skin tone */ + { 0x1F937, 0x1F3FB }, /* person shrugging: light skin tone */ + { 0x1F937, 0x1F3FC }, /* person shrugging: medium-light skin tone */ + { 0x1F937, 0x1F3FD }, /* person shrugging: medium skin tone */ + { 0x1F937, 0x1F3FE }, /* person shrugging: mediu |