From 5217251e94b2e5ea54a48ac660cb303257489f91 Mon Sep 17 00:00:00 2001 From: Tony Olagbaiye Date: Sat, 12 May 2018 18:22:18 +0100 Subject: [PATCH] Add Completion module and emoji completion hook Note: this doesn't enable emoji completion. Weechat seems to require hooking on the commands /input complete_* rather than just invoking hook_completion. --- Makefile | 1 + slack-completion.c | 20 + slack-completion.h | 10 + slack-emoji.c | 89 +- slack-emoji.h | 7 +- slack-emoji.inc | 3346 ++++++++++++++++++++++---------------------- slack-emoji.pl | 19 +- slack-emoji.py | 10 +- slack.c | 5 +- 9 files changed, 1820 insertions(+), 1687 deletions(-) create mode 100644 slack-completion.c create mode 100644 slack-completion.h diff --git a/Makefile b/Makefile index 9480a0f..4568e53 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ SRCS=slack.c \ slack-channel.c \ slack-config.c \ slack-command.c \ + slack-completion.c \ slack-emoji.c \ slack-input.c \ slack-message.c \ diff --git a/slack-completion.c b/slack-completion.c new file mode 100644 index 0000000..8cd19a2 --- /dev/null +++ b/slack-completion.c @@ -0,0 +1,20 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, version 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include + +#include "weechat-plugin.h" +#include "slack.h" +#include "slack-emoji.h" +#include "slack-workspace.h" +#include "slack-channel.h" +#include "slack-completion.h" + +void slack_completion_init() +{ + weechat_hook_completion("slack_emoji", + N_("slack emoji"), + &slack_emoji_complete_by_name_cb, + NULL, NULL); +} diff --git a/slack-completion.h b/slack-completion.h new file mode 100644 index 0000000..5ae559f --- /dev/null +++ b/slack-completion.h @@ -0,0 +1,10 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, version 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#ifndef _SLACK_COMPLETION_H_ +#define _SLACK_COMPLETION_H_ + +void slack_completion_init(); + +#endif /*SLACK_COMPLETION_H*/ diff --git a/slack-emoji.c b/slack-emoji.c index 1c7e6ba..8de99ba 100644 --- a/slack-emoji.c +++ b/slack-emoji.c @@ -2,6 +2,7 @@ // License, version 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. +#include #include #include "weechat-plugin.h" @@ -10,6 +11,8 @@ #include "slack-emoji.inc" +#define MIN(a,b) (((a)<(b))?(a):(b)) + static int emoji_byname_cmp(const void *p1, const void *p2) { return strcasecmp(((struct t_slack_emoji_by_name *)p1)->name, @@ -22,6 +25,88 @@ static int emoji_bytext_cmp(const void *p1, const void *p2) ((struct t_slack_emoji_by_text *)p2)->text); } +static size_t levenshtein_dist(const char *s, size_t len_s, const char *t, size_t len_t) +{ + size_t cost; + + /* base case: empty strings */ + if (len_s == 0) return len_t; + if (len_t == 0) return len_s; + + /* test if last characters of the strings match */ + if (s[len_s-1] == t[len_t-1]) + cost = 0; + else + cost = 1; + + /* delete char from s, delete char from t, and delete char from both */ + size_t delete = levenshtein_dist(s, len_s - 1, t, len_t ) + 1; + size_t insert = levenshtein_dist(s, len_s , t, len_t - 1) + 1; + size_t replace = levenshtein_dist(s, len_s - 1, t, len_t - 1) + cost; + return MIN( MIN( delete, insert ), replace ); +} + +static size_t wagner_fischer(const char *src, const char *targ) +{ + size_t len = strlen(targ) + 1; + size_t above[len], below[len]; + for (size_t *k = above, c = 0; k < above+len; ++k, ++c) *k=c; + + const char *src_at = src, *targ_at; + for (size_t j = 1; j < strlen(src)+1; ++j) + { + *below = j; + targ_at = targ; + for (size_t *d = above, *a = above+1, *l = below, *c = below + 1; + c < below + len; ++d, ++a, ++l, ++c) + { + *c = MIN( *src_at == *targ_at ? *d : *d + 1, MIN( *a + 1, *l + 1 ) ); + ++targ_at; + } + for (size_t *a = above, *b = below; a < above + len; ++a, ++b) *a = *b; + ++src_at; + } + + return above[len-1]; +} + +int slack_emoji_complete_by_name_cb(const void *pointer, void *data, + const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion) +{ + struct t_slack_emoji_by_name *closest_emoji; + + (void) pointer; + (void) data; + + weechat_printf(NULL, "Completing!"); + + size_t i, emoji_count = sizeof(slack_emoji_by_name) + / sizeof(struct t_slack_emoji_by_name); + closest_emoji = malloc(sizeof(slack_emoji_by_name)); + memcpy(closest_emoji, slack_emoji_by_name, + sizeof(slack_emoji_by_name)); + + int edit_dist_cmp(const void *p1, const void *p2) + { + return 0; + }; + qsort(closest_emoji, emoji_count, + sizeof(struct t_slack_emoji_by_name), + edit_dist_cmp); + + for (i = 0; i < emoji_count; i++) + { + weechat_printf(NULL, closest_emoji[i].name); + weechat_hook_completion_list_add(completion, closest_emoji[i].name, + 0, WEECHAT_LIST_POS_END); + } + + free(closest_emoji); + return WEECHAT_RC_OK; +} + const char *slack_emoji_get_unicode_by_name(const char *name) { struct t_slack_emoji_by_name *result; @@ -70,7 +155,7 @@ const char *slack_emoji_get_text_by_name(const char *name) return result->text_to; } -const char *slack_emoji_get_text_by_text(const char *text) +const char *slack_emoji_get_name_by_text(const char *text) { struct t_slack_emoji_by_text *result; struct t_slack_emoji_by_text key; @@ -83,5 +168,5 @@ const char *slack_emoji_get_text_by_text(const char *text) sizeof(struct t_slack_emoji_by_text), emoji_bytext_cmp); - return result->text_to; + return result->name_to; } diff --git a/slack-emoji.h b/slack-emoji.h index aab3445..906c684 100644 --- a/slack-emoji.h +++ b/slack-emoji.h @@ -5,12 +5,17 @@ #ifndef _SLACK_EMOJI_H_ #define _SLACK_EMOJI_H_ +int slack_emoji_complete_by_name_cb(const void *pointer, void *data, + const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion); + const char *slack_emoji_get_unicode_by_name(const char *name); const char *slack_emoji_get_unicode_by_text(const char *text); const char *slack_emoji_get_text_by_name(const char *name); -const char *slack_emoji_get_text_by_text(const char *text); +const char *slack_emoji_get_name_by_text(const char *text); #endif /*SLACK_EMOJI_H*/ diff --git a/slack-emoji.inc b/slack-emoji.inc index de277af..23f0588 100644 --- a/slack-emoji.inc +++ b/slack-emoji.inc @@ -23,1680 +23,1680 @@ struct t_slack_emoji_by_text { }; static struct t_slack_emoji_by_name slack_emoji_by_name[] = -{ { "+1", "\u1f44D", NULL, {NULL} } -, { "-1", "\u1f44E", NULL, {NULL} } -, { "100", "\u1f4aF", NULL, {NULL} } -, { "1234", "\u1f522", NULL, {NULL} } -, { "8ball", "\u1f3b1", NULL, {NULL} } -, { "a", "\u1f170\ufe0f", NULL, {NULL} } -, { "ab", "\u1f18E", NULL, {NULL} } -, { "abc", "\u1f524", NULL, {NULL} } -, { "abcd", "\u1f521", NULL, {NULL} } -, { "accept", "\u1f251", NULL, {NULL} } -, { "admission_tickets", "\u1f39F\ufe0f", NULL, {NULL} } -, { "adult", "\u1f9d1", NULL, {NULL} } -, { "aerial_tramway", "\u1f6a1", NULL, {NULL} } -, { "airplane", "\u2708\ufe0f", NULL, {NULL} } -, { "airplane_arriving", "\u1f6eC", NULL, {NULL} } -, { "airplane_departure", "\u1f6eB", NULL, {NULL} } -, { "alarm_clock", "\u23f0", NULL, {NULL} } -, { "alembic", "\u2697\ufe0f", NULL, {NULL} } -, { "alien", "\u1f47D", NULL, {NULL} } -, { "ambulance", "\u1f691", NULL, {NULL} } -, { "amphora", "\u1f3fA", NULL, {NULL} } -, { "anchor", "\u2693", NULL, {NULL} } -, { "angel", "\u1f47C", NULL, {NULL} } -, { "anger", "\u1f4a2", NULL, {NULL} } -, { "angry", "\u1f620", NULL, {">:(", ">:-(", NULL} } -, { "anguished", "\u1f627", NULL, {"D:", NULL} } -, { "ant", "\u1f41C", NULL, {NULL} } -, { "apple", "\u1f34E", NULL, {NULL} } -, { "aquarius", "\u2652", NULL, {NULL} } -, { "aries", "\u2648", NULL, {NULL} } -, { "arrow_backward", "\u25c0\ufe0f", NULL, {NULL} } -, { "arrow_double_down", "\u23ec", NULL, {NULL} } -, { "arrow_double_up", "\u23eb", NULL, {NULL} } -, { "arrow_down", "\u2b07\ufe0f", NULL, {NULL} } -, { "arrow_down_small", "\u1f53D", NULL, {NULL} } -, { "arrow_forward", "\u25b6\ufe0f", NULL, {NULL} } -, { "arrow_heading_down", "\u2935\ufe0f", NULL, {NULL} } -, { "arrow_heading_up", "\u2934\ufe0f", NULL, {NULL} } -, { "arrow_left", "\u2b05\ufe0f", NULL, {NULL} } -, { "arrow_lower_left", "\u2199\ufe0f", NULL, {NULL} } -, { "arrow_lower_right", "\u2198\ufe0f", NULL, {NULL} } -, { "arrow_right", "\u27a1\ufe0f", NULL, {NULL} } -, { "arrow_right_hook", "\u21aa\ufe0f", NULL, {NULL} } -, { "arrow_up", "\u2b06\ufe0f", NULL, {NULL} } -, { "arrow_up_down", "\u2195\ufe0f", NULL, {NULL} } -, { "arrow_up_small", "\u1f53C", NULL, {NULL} } -, { "arrow_upper_left", "\u2196\ufe0f", NULL, {NULL} } -, { "arrow_upper_right", "\u2197\ufe0f", NULL, {NULL} } -, { "arrows_clockwise", "\u1f503", NULL, {NULL} } -, { "arrows_counterclockwise", "\u1f504", NULL, {NULL} } -, { "art", "\u1f3a8", NULL, {NULL} } -, { "articulated_lorry", "\u1f69B", NULL, {NULL} } -, { "astonished", "\u1f632", NULL, {NULL} } -, { "athletic_shoe", "\u1f45F", NULL, {NULL} } -, { "atm", "\u1f3e7", NULL, {NULL} } -, { "atom_symbol", "\u269b\ufe0f", NULL, {NULL} } -, { "avocado", "\u1f951", NULL, {NULL} } -, { "b", "\u1f171\ufe0f", NULL, {NULL} } -, { "baby", "\u1f476", NULL, {NULL} } -, { "baby_bottle", "\u1f37C", NULL, {NULL} } -, { "baby_chick", "\u1f424", NULL, {NULL} } -, { "baby_symbol", "\u1f6bC", NULL, {NULL} } -, { "back", "\u1f519", NULL, {NULL} } -, { "bacon", "\u1f953", NULL, {NULL} } -, { "badminton_racquet_and_shuttlecock", "\u1f3f8", NULL, {NULL} } -, { "baggage_claim", "\u1f6c4", NULL, {NULL} } -, { "baguette_bread", "\u1f956", NULL, {NULL} } -, { "balloon", "\u1f388", NULL, {NULL} } -, { "ballot_box_with_ballot", "\u1f5f3\ufe0f", NULL, {NULL} } -, { "ballot_box_with_check", "\u2611\ufe0f", NULL, {NULL} } -, { "bamboo", "\u1f38D", NULL, {NULL} } -, { "banana", "\u1f34C", NULL, {NULL} } -, { "bangbang", "\u203c\ufe0f", NULL, {NULL} } -, { "bank", "\u1f3e6", NULL, {NULL} } -, { "bar_chart", "\u1f4cA", NULL, {NULL} } -, { "barber", "\u1f488", NULL, {NULL} } -, { "barely_sunny", "\u1f325\ufe0f", NULL, {NULL} } -, { "baseball", "\u26be", NULL, {NULL} } -, { "basketball", "\u1f3c0", NULL, {NULL} } -, { "bat", "\u1f987", NULL, {NULL} } -, { "bath", "\u1f6c0", NULL, {NULL} } -, { "bathtub", "\u1f6c1", NULL, {NULL} } -, { "battery", "\u1f50B", NULL, {NULL} } -, { "beach_with_umbrella", "\u1f3d6\ufe0f", NULL, {NULL} } -, { "bear", "\u1f43B", NULL, {NULL} } -, { "bearded_person", "\u1f9d4", NULL, {NULL} } -, { "bed", "\u1f6cF\ufe0f", NULL, {NULL} } -, { "bee", "\u1f41D", NULL, {NULL} } -, { "beer", "\u1f37A", NULL, {NULL} } -, { "beers", "\u1f37B", NULL, {NULL} } -, { "beetle", "\u1f41E", NULL, {NULL} } -, { "beginner", "\u1f530", NULL, {NULL} } -, { "bell", "\u1f514", NULL, {NULL} } -, { "bellhop_bell", "\u1f6cE\ufe0f", NULL, {NULL} } -, { "bento", "\u1f371", NULL, {NULL} } -, { "bicyclist", "\u1f6b4", NULL, {NULL} } -, { "bike", "\u1f6b2", NULL, {NULL} } -, { "bikini", "\u1f459", NULL, {NULL} } -, { "billed_cap", "\u1f9e2", NULL, {NULL} } -, { "biohazard_sign", "\u2623\ufe0f", NULL, {NULL} } -, { "bird", "\u1f426", NULL, {NULL} } -, { "birthday", "\u1f382", NULL, {NULL} } -, { "black_circle", "\u26ab", NULL, {NULL} } -, { "black_circle_for_record", "\u23fa\ufe0f", NULL, {NULL} } -, { "black_heart", "\u1f5a4", NULL, {NULL} } -, { "black_joker", "\u1f0cF", NULL, {NULL} } -, { "black_large_square", "\u2b1b", NULL, {NULL} } -, { "black_left_pointing_double_triangle_with_vertical_bar", "\u23ee\ufe0f", NULL, {NULL} } -, { "black_medium_small_square", "\u25fe", NULL, {NULL} } -, { "black_medium_square", "\u25fc\ufe0f", NULL, {NULL} } -, { "black_nib", "\u2712\ufe0f", NULL, {NULL} } -, { "black_right_pointing_double_triangle_with_vertical_bar", "\u23ed\ufe0f", NULL, {NULL} } -, { "black_right_pointing_triangle_with_double_vertical_bar", "\u23ef\ufe0f", NULL, {NULL} } -, { "black_small_square", "\u25aa\ufe0f", NULL, {NULL} } -, { "black_square_button", "\u1f532", NULL, {NULL} } -, { "black_square_for_stop", "\u23f9\ufe0f", NULL, {NULL} } -, { "blond-haired-man", "\u1f471\u200d\u2642\ufe0f", NULL, {NULL} } -, { "blond-haired-woman", "\u1f471\u200d\u2640\ufe0f", NULL, {NULL} } -, { "blossom", "\u1f33C", NULL, {NULL} } -, { "blowfish", "\u1f421", NULL, {NULL} } -, { "blue_book", "\u1f4d8", NULL, {NULL} } -, { "blue_car", "\u1f699", NULL, {NULL} } -, { "blue_heart", "\u1f499", "<3", {NULL} } -, { "blush", "\u1f60A", ":)", {NULL} } -, { "boar", "\u1f417", NULL, {NULL} } -, { "boat", "\u26f5", NULL, {NULL} } -, { "bomb", "\u1f4a3", NULL, {NULL} } -, { "book", "\u1f4d6", NULL, {NULL} } -, { "bookmark", "\u1f516", NULL, {NULL} } -, { "bookmark_tabs", "\u1f4d1", NULL, {NULL} } -, { "books", "\u1f4dA", NULL, {NULL} } -, { "boom", "\u1f4a5", NULL, {NULL} } -, { "boot", "\u1f462", NULL, {NULL} } -, { "bouquet", "\u1f490", NULL, {NULL} } -, { "bow", "\u1f647", NULL, {NULL} } -, { "bow_and_arrow", "\u1f3f9", NULL, {NULL} } -, { "bowl_with_spoon", "\u1f963", NULL, {NULL} } -, { "bowling", "\u1f3b3", NULL, {NULL} } -, { "boxing_glove", "\u1f94A", NULL, {NULL} } -, { "boy", "\u1f466", NULL, {NULL} } -, { "brain", "\u1f9e0", NULL, {NULL} } -, { "bread", "\u1f35E", NULL, {NULL} } -, { "breast-feeding", "\u1f931", NULL, {NULL} } -, { "bride_with_veil", "\u1f470", NULL, {NULL} } -, { "bridge_at_night", "\u1f309", NULL, {NULL} } -, { "briefcase", "\u1f4bC", NULL, {NULL} } -, { "broccoli", "\u1f966", NULL, {NULL} } -, { "broken_heart", "\u1f494", "", ":->", NULL} } -, { "leaves", "\u1f343", NULL, {NULL} } -, { "ledger", "\u1f4d2", NULL, {NULL} } -, { "left-facing_fist", "\u1f91B", NULL, {NULL} } -, { "left_luggage", "\u1f6c5", NULL, {NULL} } -, { "left_right_arrow", "\u2194\ufe0f", NULL, {NULL} } -, { "left_speech_bubble", "\u1f5e8\ufe0f", NULL, {NULL} } -, { "leftwards_arrow_with_hook", "\u21a9\ufe0f", NULL, {NULL} } -, { "lemon", "\u1f34B", NULL, {NULL} } -, { "leo", "\u264c", NULL, {NULL} } -, { "leopard", "\u1f406", NULL, {NULL} } -, { "level_slider", "\u1f39A\ufe0f", NULL, {NULL} } -, { "libra", "\u264e", NULL, {NULL} } -, { "light_rail", "\u1f688", NULL, {NULL} } -, { "lightning", "\u1f329\ufe0f", NULL, {NULL} } -, { "lightning_cloud", "\u1f329\ufe0f", NULL, {NULL} } -, { "link", "\u1f517", NULL, {NULL} } -, { "linked_paperclips", "\u1f587\ufe0f", NULL, {NULL} } -, { "lion_face", "\u1f981", NULL, {NULL} } -, { "lips", "\u1f444", NULL, {NULL} } -, { "lipstick", "\u1f484", NULL, {NULL} } -, { "lizard", "\u1f98E", NULL, {NULL} } -, { "lock", "\u1f512", NULL, {NULL} } -, { "lock_with_ink_pen", "\u1f50F", NULL, {NULL} } -, { "lollipop", "\u1f36D", NULL, {NULL} } -, { "loop", "\u27bf", NULL, {NULL} } -, { "loud_sound", "\u1f50A", NULL, {NULL} } -, { "loudspeaker", "\u1f4e2", NULL, {NULL} } -, { "love_hotel", "\u1f3e9", NULL, {NULL} } -, { "love_letter", "\u1f48C", NULL, {NULL} } -, { "low_brightness", "\u1f505", NULL, {NULL} } -, { "lower_left_ballpoint_pen", "\u1f58A\ufe0f", NULL, {NULL} } -, { "lower_left_crayon", "\u1f58D\ufe0f", NULL, {NULL} } -, { "lower_left_fountain_pen", "\u1f58B\ufe0f", NULL, {NULL} } -, { "lower_left_paintbrush", "\u1f58C\ufe0f", NULL, {NULL} } -, { "lying_face", "\u1f925", NULL, {NULL} } -, { "m", "\u24c2\ufe0f", NULL, {NULL} } -, { "mag", "\u1f50D", NULL, {NULL} } -, { "mag_right", "\u1f50E", NULL, {NULL} } -, { "mage", "\u1f9d9", NULL, {NULL} } -, { "mahjong", "\u1f004", NULL, {NULL} } -, { "mailbox", "\u1f4eB", NULL, {NULL} } -, { "mailbox_closed", "\u1f4eA", NULL, {NULL} } -, { "mailbox_with_mail", "\u1f4eC", NULL, {NULL} } -, { "mailbox_with_no_mail", "\u1f4eD", NULL, {NULL} } -, { "male-artist", "\u1f468\u200d\u1f3a8", NULL, {NULL} } -, { "male-astronaut", "\u1f468\u200d\u1f680", NULL, {NULL} } -, { "male-construction-worker", "\u1f477\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male-cook", "\u1f468\u200d\u1f373", NULL, {NULL} } -, { "male-detective", "\u1f575\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male-doctor", "\u1f468\u200d\u2695\ufe0f", NULL, {NULL} } -, { "male-factory-worker", "\u1f468\u200d\u1f3eD", NULL, {NULL} } -, { "male-farmer", "\u1f468\u200d\u1f33E", NULL, {NULL} } -, { "male-firefighter", "\u1f468\u200d\u1f692", NULL, {NULL} } -, { "male-guard", "\u1f482\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male-judge", "\u1f468\u200d\u2696\ufe0f", NULL, {NULL} } -, { "male-mechanic", "\u1f468\u200d\u1f527", NULL, {NULL} } -, { "male-office-worker", "\u1f468\u200d\u1f4bC", NULL, {NULL} } -, { "male-pilot", "\u1f468\u200d\u2708\ufe0f", NULL, {NULL} } -, { "male-police-officer", "\u1f46E\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male-scientist", "\u1f468\u200d\u1f52C", NULL, {NULL} } -, { "male-singer", "\u1f468\u200d\u1f3a4", NULL, {NULL} } -, { "male-student", "\u1f468\u200d\u1f393", NULL, {NULL} } -, { "male-teacher", "\u1f468\u200d\u1f3eB", NULL, {NULL} } -, { "male-technologist", "\u1f468\u200d\u1f4bB", NULL, {NULL} } -, { "male_elf", "\u1f9dD\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male_fairy", "\u1f9dA\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male_genie", "\u1f9dE\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male_mage", "\u1f9d9\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male_sign", "\u2642\ufe0f", NULL, {NULL} } -, { "male_vampire", "\u1f9dB\u200d\u2642\ufe0f", NULL, {NULL} } -, { "male_zombie", "\u1f9dF\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man", "\u1f468", NULL, {NULL} } -, { "man-biking", "\u1f6b4\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-bouncing-ball", "\u26f9\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-bowing", "\u1f647\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-boy", "\u1f468\u200d\u1f466", NULL, {NULL} } -, { "man-boy-boy", "\u1f468\u200d\u1f466\u200d\u1f466", NULL, {NULL} } -, { "man-cartwheeling", "\u1f938\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-facepalming", "\u1f926\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-frowning", "\u1f64D\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-gesturing-no", "\u1f645\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-gesturing-ok", "\u1f646\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-getting-haircut", "\u1f487\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-getting-massage", "\u1f486\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-girl", "\u1f468\u200d\u1f467", NULL, {NULL} } -, { "man-girl-boy", "\u1f468\u200d\u1f467\u200d\u1f466", NULL, {NULL} } -, { "man-girl-girl", "\u1f468\u200d\u1f467\u200d\u1f467", NULL, {NULL} } -, { "man-golfing", "\u1f3cC\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-heart-man", "\u1f468\u200d\u2764\ufe0f\u200d\u1f468", NULL, {NULL} } -, { "man-juggling", "\u1f939\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-kiss-man", "\u1f468\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f468", NULL, {NULL} } -, { "man-lifting-weights", "\u1f3cB\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-man-boy", "\u1f468\u200d\u1f468\u200d\u1f466", NULL, {NULL} } -, { "man-man-boy-boy", "\u1f468\u200d\u1f468\u200d\u1f466\u200d\u1f466", NULL, {NULL} } -, { "man-man-girl", "\u1f468\u200d\u1f468\u200d\u1f467", NULL, {NULL} } -, { "man-man-girl-boy", "\u1f468\u200d\u1f468\u200d\u1f467\u200d\u1f466", NULL, {NULL} } -, { "man-man-girl-girl", "\u1f468\u200d\u1f468\u200d\u1f467\u200d\u1f467", NULL, {NULL} } -, { "man-mountain-biking", "\u1f6b5\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-playing-handball", "\u1f93E\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-playing-water-polo", "\u1f93D\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-pouting", "\u1f64E\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-raising-hand", "\u1f64B\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-rowing-boat", "\u1f6a3\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-running", "\u1f3c3\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-shrugging", "\u1f937\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-surfing", "\u1f3c4\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-swimming", "\u1f3cA\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-tipping-hand", "\u1f481\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-walking", "\u1f6b6\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-wearing-turban", "\u1f473\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-with-bunny-ears-partying", "\u1f46F\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man-woman-boy", "\u1f468\u200d\u1f469\u200d\u1f466", NULL, {NULL} } -, { "man-woman-boy", "\u1f46A", NULL, {NULL} } -, { "man-woman-boy-boy", "\u1f468\u200d\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } -, { "man-woman-girl", "\u1f468\u200d\u1f469\u200d\u1f467", NULL, {NULL} } -, { "man-woman-girl-boy", "\u1f468\u200d\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } -, { "man-woman-girl-girl", "\u1f468\u200d\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } -, { "man-wrestling", "\u1f93C\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man_and_woman_holding_hands", "\u1f46B", NULL, {NULL} } -, { "man_climbing", "\u1f9d7\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man_dancing", "\u1f57A", NULL, {NULL} } -, { "man_in_business_suit_levitating", "\u1f574\ufe0f", NULL, {NULL} } -, { "man_in_lotus_position", "\u1f9d8\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man_in_steamy_room", "\u1f9d6\u200d\u2642\ufe0f", NULL, {NULL} } -, { "man_in_tuxedo", "\u1f935", NULL, {NULL} } -, { "man_with_gua_pi_mao", "\u1f472", NULL, {NULL} } -, { "man_with_turban", "\u1f473", NULL, {NULL} } -, { "mans_shoe", "\u1f45E", NULL, {NULL} } -, { "mantelpiece_clock", "\u1f570\ufe0f", NULL, {NULL} } -, { "maple_leaf", "\u1f341", NULL, {NULL} } -, { "martial_arts_uniform", "\u1f94B", NULL, {NULL} } -, { "mask", "\u1f637", NULL, {NULL} } -, { "massage", "\u1f486", NULL, {NULL} } -, { "meat_on_bone", "\u1f356", NULL, {NULL} } -, { "medal", "\u1f396\ufe0f", NULL, {NULL} } -, { "medical_symbol", "\u2695\ufe0f", NULL, {NULL} } -, { "mega", "\u1f4e3", NULL, {NULL} } -, { "melon", "\u1f348", NULL, {NULL} } -, { "memo", "\u1f4dD", NULL, {NULL} } -, { "menorah_with_nine_branches", "\u1f54E", NULL, {NULL} } -, { "mens", "\u1f6b9", NULL, {NULL} } -, { "mermaid", "\u1f9dC\u200d\u2640\ufe0f", NULL, {NULL} } -, { "merman", "\u1f9dC\u200d\u2642\ufe0f", NULL, {NULL} } -, { "merperson", "\u1f9dC", NULL, {NULL} } -, { "metro", "\u1f687", NULL, {NULL} } -, { "microphone", "\u1f3a4", NULL, {NULL} } -, { "microscope", "\u1f52C", NULL, {NULL} } -, { "middle_finger", "\u1f595", NULL, {NULL} } -, { "milky_way", "\u1f30C", NULL, {NULL} } -, { "minibus", "\u1f690", NULL, {NULL} } -, { "minidisc", "\u1f4bD", NULL, {NULL} } -, { "mobile_phone_off", "\u1f4f4", NULL, {NULL} } -, { "money_mouth_face", "\u1f911", NULL, {NULL} } -, { "money_with_wings", "\u1f4b8", NULL, {NULL} } -, { "moneybag", "\u1f4b0", NULL, {NULL} } -, { "monkey", "\u1f412", NULL, {NULL} } -, { "monkey_face", "\u1f435", NULL, {":o)", NULL} } -, { "monorail", "\u1f69D", NULL, {NULL} } -, { "moon", "\u1f314", NULL, {NULL} } -, { "mortar_board", "\u1f393", NULL, {NULL} } -, { "mosque", "\u1f54C", NULL, {NULL} } -, { "mostly_sunny", "\u1f324\ufe0f", NULL, {NULL} } -, { "mother_christmas", "\u1f936", NULL, {NULL} } -, { "motor_boat", "\u1f6e5\ufe0f", NULL, {NULL} } -, { "motor_scooter", "\u1f6f5", NULL, {NULL} } -, { "motorway", "\u1f6e3\ufe0f", NULL, {NULL} } -, { "mount_fuji", "\u1f5fB", NULL, {NULL} } -, { "mountain", "\u26f0\ufe0f", NULL, {NULL} } -, { "mountain_bicyclist", "\u1f6b5", NULL, {NULL} } -, { "mountain_cableway", "\u1f6a0", NULL, {NULL} } -, { "mountain_railway", "\u1f69E", NULL, {NULL} } -, { "mouse", "\u1f42D", NULL, {NULL} } -, { "mouse2", "\u1f401", NULL, {NULL} } -, { "movie_camera", "\u1f3a5", NULL, {NULL} } -, { "moyai", "\u1f5fF", NULL, {NULL} } -, { "mrs_claus", "\u1f936", NULL, {NULL} } -, { "muscle", "\u1f4aA", NULL, {NULL} } -, { "mushroom", "\u1f344", NULL, {NULL} } -, { "musical_keyboard", "\u1f3b9", NULL, {NULL} } -, { "musical_note", "\u1f3b5", NULL, {NULL} } -, { "musical_score", "\u1f3bC", NULL, {NULL} } -, { "mute", "\u1f507", NULL, {NULL} } -, { "nail_care", "\u1f485", NULL, {NULL} } -, { "name_badge", "\u1f4dB", NULL, {NULL} } -, { "national_park", "\u1f3dE\ufe0f", NULL, {NULL} } -, { "nauseated_face", "\u1f922", NULL, {NULL} } -, { "necktie", "\u1f454", NULL, {NULL} } -, { "negative_squared_cross_mark", "\u274e", NULL, {NULL} } -, { "nerd_face", "\u1f913", NULL, {NULL} } -, { "neutral_face", "\u1f610", NULL, {":|", ":-|", NULL} } -, { "new", "\u1f195", NULL, {NULL} } -, { "new_moon", "\u1f311", NULL, {NULL} } -, { "new_moon_with_face", "\u1f31A", NULL, {NULL} } -, { "newspaper", "\u1f4f0", NULL, {NULL} } -, { "ng", "\u1f196", NULL, {NULL} } -, { "night_with_stars", "\u1f303", NULL, {NULL} } -, { "nine", "9\ufe0f\u20e3", NULL, {NULL} } -, { "no_bell", "\u1f515", NULL, {NULL} } -, { "no_bicycles", "\u1f6b3", NULL, {NULL} } -, { "no_entry", "\u26d4", NULL, {NULL} } -, { "no_entry_sign", "\u1f6aB", NULL, {NULL} } -, { "no_good", "\u1f645", NULL, {NULL} } -, { "no_mobile_phones", "\u1f4f5", NULL, {NULL} } -, { "no_mouth", "\u1f636", NULL, {NULL} } -, { "no_pedestrians", "\u1f6b7", NULL, {NULL} } -, { "no_smoking", "\u1f6aD", NULL, {NULL} } -, { "non-potable_water", "\u1f6b1", NULL, {NULL} } -, { "nose", "\u1f443", NULL, {NULL} } -, { "notebook", "\u1f4d3", NULL, {NULL} } -, { "notebook_with_decorative_cover", "\u1f4d4", NULL, {NULL} } -, { "notes", "\u1f3b6", NULL, {NULL} } -, { "nut_and_bolt", "\u1f529", NULL, {NULL} } -, { "o", "\u2b55", NULL, {NULL} } -, { "o2", "\u1f17E\ufe0f", NULL, {NULL} } -, { "ocean", "\u1f30A", NULL, {NULL} } -, { "octagonal_sign", "\u1f6d1", NULL, {NULL} } -, { "octopus", "\u1f419", NULL, {NULL} } -, { "oden", "\u1f362", NULL, {NULL} } -, { "office", "\u1f3e2", NULL, {NULL} } -, { "oil_drum", "\u1f6e2\ufe0f", NULL, {NULL} } -, { "ok", "\u1f197", NULL, {NULL} } -, { "ok_hand", "\u1f44C", NULL, {NULL} } -, { "ok_woman", "\u1f646", NULL, {NULL} } -, { "old_key", "\u1f5dD\ufe0f", NULL, {NULL} } -, { "older_adult", "\u1f9d3", NULL, {NULL} } -, { "older_man", "\u1f474", NULL, {NULL} } -, { "older_woman", "\u1f475", NULL, {NULL} } -, { "om_symbol", "\u1f549\ufe0f", NULL, {NULL} } -, { "on", "\u1f51B", NULL, {NULL} } -, { "oncoming_automobile", "\u1f698", NULL, {NULL} } -, { "oncoming_bus", "\u1f68D", NULL, {NULL} } -, { "oncoming_police_car", "\u1f694", NULL, {NULL} } -, { "oncoming_taxi", "\u1f696", NULL, {NULL} } -, { "one", "1\ufe0f\u20e3", NULL, {NULL} } -, { "open_book", "\u1f4d6", NULL, {NULL} } -, { "open_file_folder", "\u1f4c2", NULL, {NULL} } -, { "open_hands", "\u1f450", NULL, {NULL} } -, { "open_mouth", "\u1f62E", NULL, {":o", ":-o", ":O", ":-O", NULL} } -, { "ophiuchus", "\u26ce", NULL, {NULL} } -, { "orange_book", "\u1f4d9", NULL, {NULL} } -, { "orange_heart", "\u1f9e1", NULL, {NULL} } -, { "orthodox_cross", "\u2626\ufe0f", NULL, {NULL} } -, { "outbox_tray", "\u1f4e4", NULL, {NULL} } -, { "owl", "\u1f989", NULL, {NULL} } -, { "ox", "\u1f402", NULL, {NULL} } -, { "package", "\u1f4e6", NULL, {NULL} } -, { "page_facing_up", "\u1f4c4", NULL, {NULL} } -, { "page_with_curl", "\u1f4c3", NULL, {NULL} } -, { "pager", "\u1f4dF", NULL, {NULL} } -, { "palm_tree", "\u1f334", NULL, {NULL} } -, { "palms_up_together", "\u1f932", NULL, {NULL} } -, { "pancakes", "\u1f95E", NULL, {NULL} } -, { "panda_face", "\u1f43C", NULL, {NULL} } -, { "paperclip", "\u1f4cE", NULL, {NULL} } -, { "parking", "\u1f17F\ufe0f", NULL, {NULL} } -, { "part_alternation_mark", "\u303d\ufe0f", NULL, {NULL} } -, { "partly_sunny", "\u26c5", NULL, {NULL} } -, { "partly_sunny_rain", "\u1f326\ufe0f", NULL, {NULL} } -, { "passenger_ship", "\u1f6f3\ufe0f", NULL, {NULL} } -, { "passport_control", "\u1f6c2", NULL, {NULL} } -, { "paw_prints", "\u1f43E", NULL, {NULL} } -, { "peace_symbol", "\u262e\ufe0f", NULL, {NULL} } -, { "peach", "\u1f351", NULL, {NULL} } -, { "peanuts", "\u1f95C", NULL, {NULL} } -, { "pear", "\u1f350", NULL, {NULL} } -, { "pencil", "\u1f4dD", NULL, {NULL} } -, { "pencil2", "\u270f\ufe0f", NULL, {NULL} } -, { "penguin", "\u1f427", NULL, {NULL} } -, { "pensive", "\u1f614", NULL, {NULL} } -, { "performing_arts", "\u1f3aD", NULL, {NULL} } -, { "persevere", "\u1f623", NULL, {NULL} } -, { "person_climbing", "\u1f9d7", NULL, {NULL} } -, { "person_doing_cartwheel", "\u1f938", NULL, {NULL} } -, { "person_frowning", "\u1f64D", NULL, {NULL} } -, { "person_in_lotus_position", "\u1f9d8", NULL, {NULL} } -, { "person_in_steamy_room", "\u1f9d6", NULL, {NULL} } -, { "person_with_ball", "\u26f9\ufe0f", NULL, {NULL} } -, { "person_with_blond_hair", "\u1f471", NULL, {NULL} } -, { "person_with_headscarf", "\u1f9d5", NULL, {NULL} } -, { "person_with_pouting_face", "\u1f64E", NULL, {NULL} } -, { "phone", "\u260e\ufe0f", NULL, {NULL} } -, { "pick", "\u26cf\ufe0f", NULL, {NULL} } -, { "pie", "\u1f967", NULL, {NULL} } -, { "pig", "\u1f437", NULL, {NULL} } -, { "pig2", "\u1f416", NULL, {NULL} } -, { "pig_nose", "\u1f43D", NULL, {NULL} } -, { "pill", "\u1f48A", NULL, {NULL} } -, { "pineapple", "\u1f34D", NULL, {NULL} } -, { "pisces", "\u2653", NULL, {NULL} } -, { "pizza", "\u1f355", NULL, {NULL} } -, { "place_of_worship", "\u1f6d0", NULL, {NULL} } -, { "point_down", "\u1f447", NULL, {NULL} } -, { "point_left", "\u1f448", NULL, {NULL} } -, { "point_right", "\u1f449", NULL, {NULL} } -, { "point_up", "\u261d\ufe0f", NULL, {NULL} } -, { "point_up_2", "\u1f446", NULL, {NULL} } -, { "police_car", "\u1f693", NULL, {NULL} } -, { "poodle", "\u1f429", NULL, {NULL} } -, { "poop", "\u1f4a9", NULL, {NULL} } -, { "popcorn", "\u1f37F", NULL, {NULL} } -, { "post_office", "\u1f3e3", NULL, {NULL} } -, { "postal_horn", "\u1f4eF", NULL, {NULL} } -, { "postbox", "\u1f4eE", NULL, {NULL} } -, { "potable_water", "\u1f6b0", NULL, {NULL} } -, { "potato", "\u1f954", NULL, {NULL} } -, { "pouch", "\u1f45D", NULL, {NULL} } -, { "poultry_leg", "\u1f357", NULL, {NULL} } -, { "pound", "\u1f4b7", NULL, {NULL} } -, { "pouting_cat", "\u1f63E", NULL, {NULL} } -, { "pray", "\u1f64F", NULL, {NULL} } -, { "prayer_beads", "\u1f4fF", NULL, {NULL} } -, { "pregnant_woman", "\u1f930", NULL, {NULL} } -, { "pretzel", "\u1f968", NULL, {NULL} } -, { "prince", "\u1f934", NULL, {NULL} } -, { "princess", "\u1f478", NULL, {NULL} } -, { "printer", "\u1f5a8\ufe0f", NULL, {NULL} } -, { "punch", "\u1f44A", NULL, {NULL} } -, { "purple_heart", "\u1f49C", "<3", {NULL} } -, { "purse", "\u1f45B", NULL, {NULL} } -, { "pushpin", "\u1f4cC", NULL, {NULL} } -, { "put_litter_in_its_place", "\u1f6aE", NULL, {NULL} } -, { "question", "\u2753", NULL, {NULL} } -, { "rabbit", "\u1f430", NULL, {NULL} } -, { "rabbit2", "\u1f407", NULL, {NULL} } -, { "racehorse", "\u1f40E", NULL, {NULL} } -, { "racing_car", "\u1f3cE\ufe0f", NULL, {NULL} } -, { "racing_motorcycle", "\u1f3cD\ufe0f", NULL, {NULL} } -, { "radio", "\u1f4fB", NULL, {NULL} } -, { "radio_button", "\u1f518", NULL, {NULL} } -, { "radioactive_sign", "\u2622\ufe0f", NULL, {NULL} } -, { "rage", "\u1f621", NULL, {NULL} } -, { "railway_car", "\u1f683", NULL, {NULL} } -, { "railway_track", "\u1f6e4\ufe0f", NULL, {NULL} } -, { "rain_cloud", "\u1f327\ufe0f", NULL, {NULL} } -, { "rainbow", "\u1f308", NULL, {NULL} } -, { "rainbow-flag", "\u1f3f3\ufe0f\u200d\u1f308", NULL, {NULL} } -, { "raised_back_of_hand", "\u1f91A", NULL, {NULL} } -, { "raised_hand", "\u270b", NULL, {NULL} } -, { "raised_hand_with_fingers_splayed", "\u1f590\ufe0f", NULL, {NULL} } -, { "raised_hands", "\u1f64C", NULL, {NULL} } -, { "raising_hand", "\u1f64B", NULL, {NULL} } -, { "ram", "\u1f40F", NULL, {NULL} } -, { "ramen", "\u1f35C", NULL, {NULL} } -, { "rat", "\u1f400", NULL, {NULL} } -, { "recycle", "\u267b\ufe0f", NULL, {NULL} } -, { "red_car", "\u1f697", NULL, {NULL} } -, { "red_circle", "\u1f534", NULL, {NULL} } -, { "registered", "\u00ae\ufe0f", NULL, {NULL} } -, { "relaxed", "\u263a\ufe0f", NULL, {NULL} } -, { "relieved", "\u1f60C", NULL, {NULL} } -, { "reminder_ribbon", "\u1f397\ufe0f", NULL, {NULL} } -, { "repeat", "\u1f501", NULL, {NULL} } -, { "repeat_one", "\u1f502", NULL, {NULL} } -, { "restroom", "\u1f6bB", NULL, {NULL} } -, { "reversed_hand_with_middle_finger_extended", "\u1f595", NULL, {NULL} } -, { "revolving_hearts", "\u1f49E", NULL, {NULL} } -, { "rewind", "\u23ea", NULL, {NULL} } -, { "rhinoceros", "\u1f98F", NULL, {NULL} } -, { "ribbon", "\u1f380", NULL, {NULL} } -, { "rice", "\u1f35A", NULL, {NULL} } -, { "rice_ball", "\u1f359", NULL, {NULL} } -, { "rice_cracker", "\u1f358", NULL, {NULL} } -, { "rice_scene", "\u1f391", NULL, {NULL} } -, { "right-facing_fist", "\u1f91C", NULL, {NULL} } -, { "right_anger_bubble", "\u1f5eF\ufe0f", NULL, {NULL} } -, { "ring", "\u1f48D", NULL, {NULL} } -, { "robot_face", "\u1f916", NULL, {NULL} } -, { "rocket", "\u1f680", NULL, {NULL} } -, { "rolled_up_newspaper", "\u1f5dE\ufe0f", NULL, {NULL} } -, { "roller_coaster", "\u1f3a2", NULL, {NULL} } -, { "rolling_on_the_floor_laughing", "\u1f923", NULL, {NULL} } -, { "rooster", "\u1f413", NULL, {NULL} } -, { "rose", "\u1f339", NULL, {NULL} } -, { "rosette", "\u1f3f5\ufe0f", NULL, {NULL} } -, { "rotating_light", "\u1f6a8", NULL, {NULL} } -, { "round_pushpin", "\u1f4cD", NULL, {NULL} } -, { "rowboat", "\u1f6a3", NULL, {NULL} } -, { "ru", "\u1f1f7\u1f1fA", NULL, {NULL} } -, { "rugby_football", "\u1f3c9", NULL, {NULL} } -, { "runner", "\u1f3c3", NULL, {NULL} } -, { "running", "\u1f3c3", NULL, {NULL} } -, { "running_shirt_with_sash", "\u1f3bD", NULL, {NULL} } -, { "sa", "\u1f202\ufe0f", NULL, {NULL} } -, { "sagittarius", "\u2650", NULL, {NULL} } -, { "sailboat", "\u26f5", NULL, {NULL} } -, { "sake", "\u1f376", NULL, {NULL} } -, { "sandal", "\u1f461", NULL, {NULL} } -, { "sandwich", "\u1f96A", NULL, {NULL} } -, { "santa", "\u1f385", NULL, {NULL} } -, { "satellite", "\u1f6f0\ufe0f", NULL, {NULL} } -, { "satellite_antenna", "\u1f4e1", NULL, {NULL} } -, { "satisfied", "\u1f606", NULL, {":>", ":->", NULL} } -, { "sauropod", "\u1f995", NULL, {NULL} } -, { "saxophone", "\u1f3b7", NULL, {NULL} } -, { "scales", "\u2696\ufe0f", NULL, {NULL} } -, { "scarf", "\u1f9e3", NULL, {NULL} } -, { "school", "\u1f3eB", NULL, {NULL} } -, { "school_satchel", "\u1f392", NULL, {NULL} } -, { "scissors", "\u2702\ufe0f", NULL, {NULL} } -, { "scooter", "\u1f6f4", NULL, {NULL} } -, { "scorpion", "\u1f982", NULL, {NULL} } -, { "scorpius", "\u264f", NULL, {NULL} } -, { "scream", "\u1f631", NULL, {NULL} } -, { "scream_cat", "\u1f640", NULL, {NULL} } -, { "scroll", "\u1f4dC", NULL, {NULL} } -, { "seat", "\u1f4bA", NULL, {NULL} } -, { "second_place_medal", "\u1f948", NULL, {NULL} } -, { "secret", "\u3299\ufe0f", NULL, {NULL} } -, { "see_no_evil", "\u1f648", NULL, {NULL} } -, { "seedling", "\u1f331", NULL, {NULL} } -, { "selfie", "\u1f933", NULL, {NULL} } -, { "serious_face_with_symbols_covering_mouth", "\u1f92C", NULL, {NULL} } -, { "seven", "7\ufe0f\u20e3", NULL, {NULL} } -, { "shallow_pan_of_food", "\u1f958", NULL, {NULL} } -, { "shamrock", "\u2618\ufe0f", NULL, {NULL} } -, { "shark", "\u1f988", NULL, {NULL} } -, { "shaved_ice", "\u1f367", NULL, {NULL} } -, { "sheep", "\u1f411", NULL, {NULL} } -, { "shell", "\u1f41A", NULL, {NULL} } -, { "shield", "\u1f6e1\ufe0f", NULL, {NULL} } -, { "shinto_shrine", "\u26e9\ufe0f", NULL, {NULL} } -, { "ship", "\u1f6a2", NULL, {NULL} } -, { "shirt", "\u1f455", NULL, {NULL} } -, { "shit", "\u1f4a9", NULL, {NULL} } -, { "shocked_face_with_exploding_head", "\u1f92F", NULL, {NULL} } -, { "shoe", "\u1f45E", NULL, {NULL} } -, { "shopping_bags", "\u1f6cD\ufe0f", NULL, {NULL} } -, { "shopping_trolley", "\u1f6d2", NULL, {NULL} } -, { "shower", "\u1f6bF", NULL, {NULL} } -, { "shrimp", "\u1f990", NULL, {NULL} } -, { "shrug", "\u1f937", NULL, {NULL} } -, { "shushing_face", "\u1f92B", NULL, {NULL} } -, { "sign_of_the_horns", "\u1f918", NULL, {NULL} } -, { "signal_strength", "\u1f4f6", NULL, {NULL} } -, { "six", "6\ufe0f\u20e3", NULL, {NULL} } -, { "six_pointed_star", "\u1f52F", NULL, {NULL} } -, { "ski", "\u1f3bF", NULL, {NULL} } -, { "skier", "\u26f7\ufe0f", NULL, {NULL} } -, { "skin-tone-2", "\u1f3fB", NULL, {NULL} } -, { "skin-tone-3", "\u1f3fC", NULL, {NULL} } -, { "skin-tone-4", "\u1f3fD", NULL, {NULL} } -, { "skin-tone-5", "\u1f3fE", NULL, {NULL} } -, { "skin-tone-6", "\u1f3fF", NULL, {NULL} } -, { "skull", "\u1f480", NULL, {NULL} } -, { "skull_and_crossbones", "\u2620\ufe0f", NULL, {NULL} } -, { "sled", "\u1f6f7", NULL, {NULL} } -, { "sleeping", "\u1f634", NULL, {NULL} } -, { "sleeping_accommodation", "\u1f6cC", NULL, {NULL} } -, { "sleepy", "\u1f62A", NULL, {NULL} } -, { "sleuth_or_spy", "\u1f575\ufe0f", NULL, {NULL} } -, { "slightly_frowning_face", "\u1f641", NULL, {NULL} } -, { "slightly_smiling_face", "\u1f642", NULL, {":)", "(:", ":-)", NULL} } -, { "slot_machine", "\u1f3b0", NULL, {NULL} } -, { "small_airplane", "\u1f6e9\ufe0f", NULL, {NULL} } -, { "small_blue_diamond", "\u1f539", NULL, {NULL} } -, { "small_orange_diamond", "\u1f538", NULL, {NULL} } -, { "small_red_triangle", "\u1f53A", NULL, {NULL} } -, { "small_red_triangle_down", "\u1f53B", NULL, {NULL} } -, { "smile", "\u1f604", ":)", {"C:", "c:", ":D", ":-D", NULL} } -, { "smile_cat", "\u1f638", NULL, {NULL} } -, { "smiley", "\u1f603", ":)", {"=)", "=-)", NULL} } -, { "smiley_cat", "\u1f63A", NULL, {NULL} } -, { "smiling_face_with_smiling_eyes_and_hand_covering_mouth", "\u1f92D", NULL, {NULL} } -, { "smiling_imp", "\u1f608", NULL, {NULL} } -, { "smirk", "\u1f60F", NULL, {NULL} } -, { "smirk_cat", "\u1f63C", NULL, {NULL} } -, { "smoking", "\u1f6aC", NULL, {NULL} } -, { "snail", "\u1f40C", NULL, {NULL} } -, { "snake", "\u1f40D", NULL, {NULL} } -, { "sneezing_face", "\u1f927", NULL, {NULL} } -, { "snow_capped_mountain", "\u1f3d4\ufe0f", NULL, {NULL} } -, { "snow_cloud", "\u1f328\ufe0f", NULL, {NULL} } -, { "snowboarder", "\u1f3c2", NULL, {NULL} } -, { "snowflake", "\u2744\ufe0f", NULL, {NULL} } -, { "snowman", "\u2603\ufe0f", NULL, {NULL} } -, { "snowman_without_snow", "\u26c4", NULL, {NULL} } -, { "sob", "\u1f62D", ":'(", {NULL} } -, { "soccer", "\u26bd", NULL, {NULL} } -, { "socks", "\u1f9e6", NULL, {NULL} } -, { "soon", "\u1f51C", NULL, {NULL} } -, { "sos", "\u1f198", NULL, {NULL} } -, { "sound", "\u1f509", NULL, {NULL} } -, { "space_invader", "\u1f47E", NULL, {NULL} } -, { "spades", "\u2660\ufe0f", NULL, {NULL} } -, { "spaghetti", "\u1f35D", NULL, {NULL} } -, { "sparkle", "\u2747\ufe0f", NULL, {NULL} } -, { "sparkler", "\u1f387", NULL, {NULL} } -, { "sparkles", "\u2728", NULL, {NULL} } -, { "sparkling_heart", "\u1f496", NULL, {NULL} } -, { "speak_no_evil", "\u1f64A", NULL, {NULL} } -, { "speaker", "\u1f508", NULL, {NULL} } -, { "speaking_head_in_silhouette", "\u1f5e3\ufe0f", NULL, {NULL} } -, { "speech_balloon", "\u1f4aC", NULL, {NULL} } -, { "speedboat", "\u1f6a4", NULL, {NULL} } -, { "spider", "\u1f577\ufe0f", NULL, {NULL} } -, { "spider_web", "\u1f578\ufe0f", NULL, {NULL} } -, { "spiral_calendar_pad", "\u1f5d3\ufe0f", NULL, {NULL} } -, { "spiral_note_pad", "\u1f5d2\ufe0f", NULL, {NULL} } -, { "spock-hand", "\u1f596", NULL, {NULL} } -, { "spoon", "\u1f944", NULL, {NULL} } -, { "sports_medal", "\u1f3c5", NULL, {NULL} } -, { "squid", "\u1f991", NULL, {NULL} } -, { "stadium", "\u1f3dF\ufe0f", NULL, {NULL} } -, { "staff_of_aesculapius", "\u2695\ufe0f", NULL, {NULL} } -, { "star", "\u2b50", NULL, {NULL} } -, { "star-struck", "\u1f929", NULL, {NULL} } -, { "star2", "\u1f31F", NULL, {NULL} } -, { "star_and_crescent", "\u262a\ufe0f", NULL, {NULL} } -, { "star_of_david", "\u2721\ufe0f", NULL, {NULL} } -, { "stars", "\u1f320", NULL, {NULL} } -, { "station", "\u1f689", NULL, {NULL} } -, { "statue_of_liberty", "\u1f5fD", NULL, {NULL} } -, { "steam_locomotive", "\u1f682", NULL, {NULL} } -, { "stew", "\u1f372", NULL, {NULL} } -, { "stopwatch", "\u23f1\ufe0f", NULL, {NULL} } -, { "straight_ruler", "\u1f4cF", NULL, {NULL} } -, { "strawberry", "\u1f353", NULL, {NULL} } -, { "stuck_out_tongue", "\u1f61B", ":p", {":p", ":-p", ":P", ":-P", ":b", ":-b", NULL} } -, { "stuck_out_tongue_closed_eyes", "\u1f61D", NULL, {NULL} } -, { "stuck_out_tongue_winking_eye", "\u1f61C", ";p", {";p", ";-p", ";b", ";-b", ";P", ";-P", NULL} } -, { "studio_microphone", "\u1f399\ufe0f", NULL, {NULL} } -, { "stuffed_flatbread", "\u1f959", NULL, {NULL} } -, { "sun_behind_cloud", "\u1f325\ufe0f", NULL, {NULL} } -, { "sun_behind_rain_cloud", "\u1f326\ufe0f", NULL, {NULL} } -, { "sun_small_cloud", "\u1f324\ufe0f", NULL, {NULL} } -, { "sun_with_face", "\u1f31E", NULL, {NULL} } -, { "sunflower", "\u1f33B", NULL, {NULL} } -, { "sunglasses", "\u1f60E", NULL, {"8)", NULL} } -, { "sunny", "\u2600\ufe0f", NULL, {NULL} } -, { "sunrise", "\u1f305", NULL, {NULL} } -, { "sunrise_over_mountains", "\u1f304", NULL, {NULL} } -, { "surfer", "\u1f3c4", NULL, {NULL} } -, { "sushi", "\u1f363", NULL, {NULL} } -, { "suspension_railway", "\u1f69F", NULL, {NULL} } -, { "sweat", "\u1f613", NULL, {NULL} } -, { "sweat_drops", "\u1f4a6", NULL, {NULL} } -, { "sweat_smile", "\u1f605", NULL, {NULL} } -, { "sweet_potato", "\u1f360", NULL, {NULL} } -, { "swimmer", "\u1f3cA", NULL, {NULL} } -, { "symbols", "\u1f523", NULL, {NULL} } -, { "synagogue", "\u1f54D", NULL, {NULL} } -, { "syringe", "\u1f489", NULL, {NULL} } -, { "t-rex", "\u1f996", NULL, {NULL} } -, { "table_tennis_paddle_and_ball", "\u1f3d3", NULL, {NULL} } -, { "taco", "\u1f32E", NULL, {NULL} } -, { "tada", "\u1f389", NULL, {NULL} } -, { "takeout_box", "\u1f961", NULL, {NULL} } -, { "tanabata_tree", "\u1f38B", NULL, {NULL} } -, { "tangerine", "\u1f34A", NULL, {NULL} } -, { "taurus", "\u2649", NULL, {NULL} } -, { "taxi", "\u1f695", NULL, {NULL} } -, { "tea", "\u1f375", NULL, {NULL} } -, { "telephone", "\u260e\ufe0f", NULL, {NULL} } -, { "telephone_receiver", "\u1f4dE", NULL, {NULL} } -, { "telescope", "\u1f52D", NULL, {NULL} } -, { "tennis", "\u1f3bE", NULL, {NULL} } -, { "tent", "\u26fa", NULL, {NULL} } -, { "the_horns", "\u1f918", NULL, {NULL} } -, { "thermometer", "\u1f321\ufe0f", NULL, {NULL} } -, { "thinking_face", "\u1f914", NULL, {NULL} } -, { "third_place_medal", "\u1f949", NULL, {NULL} } -, { "thought_balloon", "\u1f4aD", NULL, {NULL} } -, { "three", "3\ufe0f\u20e3", NULL, {NULL} } -, { "three_button_mouse", "\u1f5b1\ufe0f", NULL, {NULL} } -, { "thumbsdown", "\u1f44E", NULL, {NULL} } -, { "thumbsup", "\u1f44D", NULL, {NULL} } -, { "thunder_cloud_and_rain", "\u26c8\ufe0f", NULL, {NULL} } -, { "ticket", "\u1f3aB", NULL, {NULL} } -, { "tiger", "\u1f42F", NULL, {NULL} } -, { "tiger2", "\u1f405", NULL, {NULL} } -, { "timer_clock", "\u23f2\ufe0f", NULL, {NULL} } -, { "tired_face", "\u1f62B", NULL, {NULL} } -, { "tm", "\u2122\ufe0f", NULL, {NULL} } -, { "toilet", "\u1f6bD", NULL, {NULL} } -, { "tokyo_tower", "\u1f5fC", NULL, {NULL} } -, { "tomato", "\u1f345", NULL, {NULL} } -, { "tongue", "\u1f445", NULL, {NULL} } -, { "top", "\u1f51D", NULL, {NULL} } -, { "tophat", "\u1f3a9", NULL, {NULL} } -, { "tornado", "\u1f32A\ufe0f", NULL, {NULL} } -, { "tornado_cloud", "\u1f32A\ufe0f", NULL, {NULL} } -, { "trackball", "\u1f5b2\ufe0f", NULL, {NULL} } -, { "tractor", "\u1f69C", NULL, {NULL} } -, { "traffic_light", "\u1f6a5", NULL, {NULL} } -, { "train", "\u1f68B", NULL, {NULL} } -, { "train2", "\u1f686", NULL, {NULL} } -, { "tram", "\u1f68A", NULL, {NULL} } -, { "triangular_flag_on_post", "\u1f6a9", NULL, {NULL} } -, { "triangular_ruler", "\u1f4d0", NULL, {NULL} } -, { "trident", "\u1f531", NULL, {NULL} } -, { "triumph", "\u1f624", NULL, {NULL} } -, { "trolleybus", "\u1f68E", NULL, {NULL} } -, { "trophy", "\u1f3c6", NULL, {NULL} } -, { "tropical_drink", "\u1f379", NULL, {NULL} } -, { "tropical_fish", "\u1f420", NULL, {NULL} } -, { "truck", "\u1f69A", NULL, {NULL} } -, { "trumpet", "\u1f3bA", NULL, {NULL} } -, { "tshirt", "\u1f455", NULL, {NULL} } -, { "tulip", "\u1f337", NULL, {NULL} } -, { "tumbler_glass", "\u1f943", NULL, {NULL} } -, { "turkey", "\u1f983", NULL, {NULL} } -, { "turtle", "\u1f422", NULL, {NULL} } -, { "tv", "\u1f4fA", NULL, {NULL} } -, { "twisted_rightwards_arrows", "\u1f500", NULL, {NULL} } -, { "two", "2\ufe0f\u20e3", NULL, {NULL} } -, { "two_hearts", "\u1f495", NULL, {NULL} } -, { "two_men_holding_hands", "\u1f46C", NULL, {NULL} } -, { "two_women_holding_hands", "\u1f46D", NULL, {NULL} } -, { "u5272", "\u1f239", NULL, {NULL} } -, { "u5408", "\u1f234", NULL, {NULL} } -, { "u55b6", "\u1f23A", NULL, {NULL} } -, { "u6307", "\u1f22F", NULL, {NULL} } -, { "u6708", "\u1f237\ufe0f", NULL, {NULL} } -, { "u6709", "\u1f236", NULL, {NULL} } -, { "u6e80", "\u1f235", NULL, {NULL} } -, { "u7121", "\u1f21A", NULL, {NULL} } -, { "u7533", "\u1f238", NULL, {NULL} } -, { "u7981", "\u1f232", NULL, {NULL} } -, { "u7a7a", "\u1f233", NULL, {NULL} } -, { "uk", "\u1f1eC\u1f1e7", NULL, {NULL} } -, { "umbrella", "\u2602\ufe0f", NULL, {NULL} } -, { "umbrella_on_ground", "\u26f1\ufe0f", NULL, {NULL} } -, { "umbrella_with_rain_drops", "\u2614", NULL, {NULL} } -, { "unamused", "\u1f612", ":(", {NULL} } -, { "underage", "\u1f51E", NULL, {NULL} } -, { "unicorn_face", "\u1f984", NULL, {NULL} } -, { "unlock", "\u1f513", NULL, {NULL} } -, { "up", "\u1f199", NULL, {NULL} } -, { "upside_down_face", "\u1f643", NULL, {NULL} } -, { "us", "\u1f1fA\u1f1f8", NULL, {NULL} } -, { "v", "\u270c\ufe0f", NULL, {NULL} } -, { "vampire", "\u1f9dB", NULL, {NULL} } -, { "vertical_traffic_light", "\u1f6a6", NULL, {NULL} } -, { "vhs", "\u1f4fC", NULL, {NULL} } -, { "vibration_mode", "\u1f4f3", NULL, {NULL} } -, { "video_camera", "\u1f4f9", NULL, {NULL} } -, { "video_game", "\u1f3aE", NULL, {NULL} } -, { "violin", "\u1f3bB", NULL, {NULL} } -, { "virgo", "\u264d", NULL, {NULL} } -, { "volcano", "\u1f30B", NULL, {NULL} } -, { "volleyball", "\u1f3d0", NULL, {NULL} } -, { "vs", "\u1f19A", NULL, {NULL} } -, { "walking", "\u1f6b6", NULL, {NULL} } -, { "waning_crescent_moon", "\u1f318", NULL, {NULL} } -, { "waning_gibbous_moon", "\u1f316", NULL, {NULL} } -, { "warning", "\u26a0\ufe0f", NULL, {NULL} } -, { "wastebasket", "\u1f5d1\ufe0f", NULL, {NULL} } -, { "watch", "\u231a", NULL, {NULL} } -, { "water_buffalo", "\u1f403", NULL, {NULL} } -, { "water_polo", "\u1f93D", NULL, {NULL} } -, { "watermelon", "\u1f349", NULL, {NULL} } -, { "wave", "\u1f44B", NULL, {NULL} } -, { "waving_black_flag", "\u1f3f4", NULL, {NULL} } -, { "waving_white_flag", "\u1f3f3\ufe0f", NULL, {NULL} } -, { "wavy_dash", "\u3030\ufe0f", NULL, {NULL} } -, { "waxing_crescent_moon", "\u1f312", NULL, {NULL} } -, { "waxing_gibbous_moon", "\u1f314", NULL, {NULL} } -, { "wc", "\u1f6bE", NULL, {NULL} } -, { "weary", "\u1f629", NULL, {NULL} } -, { "wedding", "\u1f492", NULL, {NULL} } -, { "weight_lifter", "\u1f3cB\ufe0f", NULL, {NULL} } -, { "whale", "\u1f433", NULL, {NULL} } -, { "whale2", "\u1f40B", NULL, {NULL} } -, { "wheel_of_dharma", "\u2638\ufe0f", NULL, {NULL} } -, { "wheelchair", "\u267f", NULL, {NULL} } -, { "white_check_mark", "\u2705", NULL, {NULL} } -, { "white_circle", "\u26aa", NULL, {NULL} } -, { "white_flower", "\u1f4aE", NULL, {NULL} } -, { "white_frowning_face", "\u2639\ufe0f", NULL, {NULL} } -, { "white_large_square", "\u2b1c", NULL, {NULL} } -, { "white_medium_small_square", "\u25fd", NULL, {NULL} } -, { "white_medium_square", "\u25fb\ufe0f", NULL, {NULL} } -, { "white_small_square", "\u25ab\ufe0f", NULL, {NULL} } -, { "white_square_button", "\u1f533", NULL, {NULL} } -, { "wilted_flower", "\u1f940", NULL, {NULL} } -, { "wind_blowing_face", "\u1f32C\ufe0f", NULL, {NULL} } -, { "wind_chime", "\u1f390", NULL, {NULL} } -, { "wine_glass", "\u1f377", NULL, {NULL} } -, { "wink", "\u1f609", ";)", {";)", ";-)", NULL} } -, { "wolf", "\u1f43A", NULL, {NULL} } -, { "woman", "\u1f469", NULL, {NULL} } -, { "woman-biking", "\u1f6b4\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-bouncing-ball", "\u26f9\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-bowing", "\u1f647\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-boy", "\u1f469\u200d\u1f466", NULL, {NULL} } -, { "woman-boy-boy", "\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } -, { "woman-cartwheeling", "\u1f938\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-facepalming", "\u1f926\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-frowning", "\u1f64D\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-gesturing-no", "\u1f645\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-gesturing-ok", "\u1f646\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-getting-haircut", "\u1f487\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-getting-massage", "\u1f486\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-girl", "\u1f469\u200d\u1f467", NULL, {NULL} } -, { "woman-girl-boy", "\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } -, { "woman-girl-girl", "\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } -, { "woman-golfing", "\u1f3cC\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-heart-man", "\u1f469\u200d\u2764\ufe0f\u200d\u1f468", NULL, {NULL} } -, { "woman-heart-woman", "\u1f469\u200d\u2764\ufe0f\u200d\u1f469", NULL, {NULL} } -, { "woman-juggling", "\u1f939\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-kiss-man", "\u1f469\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f468", NULL, {NULL} } -, { "woman-kiss-woman", "\u1f469\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f469", NULL, {NULL} } -, { "woman-lifting-weights", "\u1f3cB\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-mountain-biking", "\u1f6b5\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-playing-handball", "\u1f93E\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-playing-water-polo", "\u1f93D\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-pouting", "\u1f64E\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-raising-hand", "\u1f64B\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-rowing-boat", "\u1f6a3\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-running", "\u1f3c3\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-shrugging", "\u1f937\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-surfing", "\u1f3c4\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-swimming", "\u1f3cA\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-tipping-hand", "\u1f481\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-walking", "\u1f6b6\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-wearing-turban", "\u1f473\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-with-bunny-ears-partying", "\u1f46F\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman-woman-boy", "\u1f469\u200d\u1f469\u200d\u1f466", NULL, {NULL} } -, { "woman-woman-boy-boy", "\u1f469\u200d\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } -, { "woman-woman-girl", "\u1f469\u200d\u1f469\u200d\u1f467", NULL, {NULL} } -, { "woman-woman-girl-boy", "\u1f469\u200d\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } -, { "woman-woman-girl-girl", "\u1f469\u200d\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } -, { "woman-wrestling", "\u1f93C\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman_climbing", "\u1f9d7\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman_in_lotus_position", "\u1f9d8\u200d\u2640\ufe0f", NULL, {NULL} } -, { "woman_in_steamy_room", "\u1f9d6\u200d\u2640\ufe0f", NULL, {NULL} } -, { "womans_clothes", "\u1f45A", NULL, {NULL} } -, { "womans_hat", "\u1f452", NULL, {NULL} } -, { "womens", "\u1f6bA", NULL, {NULL} } -, { "world_map", "\u1f5fA\ufe0f", NULL, {NULL} } -, { "worried", "\u1f61F", NULL, {NULL} } -, { "wrench", "\u1f527", NULL, {NULL} } -, { "wrestlers", "\u1f93C", NULL, {NULL} } -, { "writing_hand", "\u270d\ufe0f", NULL, {NULL} } -, { "x", "\u274c", NULL, {NULL} } -, { "yellow_heart", "\u1f49B", "<3", {NULL} } -, { "yen", "\u1f4b4", NULL, {NULL} } -, { "yin_yang", "\u262f\ufe0f", NULL, {NULL} } -, { "yum", "\u1f60B", NULL, {NULL} } -, { "zany_face", "\u1f92A", NULL, {NULL} } -, { "zap", "\u26a1", NULL, {NULL} } -, { "zebra_face", "\u1f993", NULL, {NULL} } -, { "zero", "0\ufe0f\u20e3", NULL, {NULL} } -, { "zipper_mouth_face", "\u1f910", NULL, {NULL} } -, { "zombie", "\u1f9dF", NULL, {NULL} } -, { "zzz", "\u1f4a4", NULL, {NULL} } +{ { ":+1:", "\u1f44D", NULL, {NULL} } +, { ":-1:", "\u1f44E", NULL, {NULL} } +, { ":100:", "\u1f4aF", NULL, {NULL} } +, { ":1234:", "\u1f522", NULL, {NULL} } +, { ":8ball:", "\u1f3b1", NULL, {NULL} } +, { ":a:", "\u1f170\ufe0f", NULL, {NULL} } +, { ":ab:", "\u1f18E", NULL, {NULL} } +, { ":abc:", "\u1f524", NULL, {NULL} } +, { ":abcd:", "\u1f521", NULL, {NULL} } +, { ":accept:", "\u1f251", NULL, {NULL} } +, { ":admission_tickets:", "\u1f39F\ufe0f", NULL, {NULL} } +, { ":adult:", "\u1f9d1", NULL, {NULL} } +, { ":aerial_tramway:", "\u1f6a1", NULL, {NULL} } +, { ":airplane:", "\u2708\ufe0f", NULL, {NULL} } +, { ":airplane_arriving:", "\u1f6eC", NULL, {NULL} } +, { ":airplane_departure:", "\u1f6eB", NULL, {NULL} } +, { ":alarm_clock:", "\u23f0", NULL, {NULL} } +, { ":alembic:", "\u2697\ufe0f", NULL, {NULL} } +, { ":alien:", "\u1f47D", NULL, {NULL} } +, { ":ambulance:", "\u1f691", NULL, {NULL} } +, { ":amphora:", "\u1f3fA", NULL, {NULL} } +, { ":anchor:", "\u2693", NULL, {NULL} } +, { ":angel:", "\u1f47C", NULL, {NULL} } +, { ":anger:", "\u1f4a2", NULL, {NULL} } +, { ":angry:", "\u1f620", NULL, {">:(", ">:-(", NULL} } +, { ":anguished:", "\u1f627", NULL, {"D:", NULL} } +, { ":ant:", "\u1f41C", NULL, {NULL} } +, { ":apple:", "\u1f34E", NULL, {NULL} } +, { ":aquarius:", "\u2652", NULL, {NULL} } +, { ":aries:", "\u2648", NULL, {NULL} } +, { ":arrow_backward:", "\u25c0\ufe0f", NULL, {NULL} } +, { ":arrow_double_down:", "\u23ec", NULL, {NULL} } +, { ":arrow_double_up:", "\u23eb", NULL, {NULL} } +, { ":arrow_down:", "\u2b07\ufe0f", NULL, {NULL} } +, { ":arrow_down_small:", "\u1f53D", NULL, {NULL} } +, { ":arrow_forward:", "\u25b6\ufe0f", NULL, {NULL} } +, { ":arrow_heading_down:", "\u2935\ufe0f", NULL, {NULL} } +, { ":arrow_heading_up:", "\u2934\ufe0f", NULL, {NULL} } +, { ":arrow_left:", "\u2b05\ufe0f", NULL, {NULL} } +, { ":arrow_lower_left:", "\u2199\ufe0f", NULL, {NULL} } +, { ":arrow_lower_right:", "\u2198\ufe0f", NULL, {NULL} } +, { ":arrow_right:", "\u27a1\ufe0f", NULL, {NULL} } +, { ":arrow_right_hook:", "\u21aa\ufe0f", NULL, {NULL} } +, { ":arrow_up:", "\u2b06\ufe0f", NULL, {NULL} } +, { ":arrow_up_down:", "\u2195\ufe0f", NULL, {NULL} } +, { ":arrow_up_small:", "\u1f53C", NULL, {NULL} } +, { ":arrow_upper_left:", "\u2196\ufe0f", NULL, {NULL} } +, { ":arrow_upper_right:", "\u2197\ufe0f", NULL, {NULL} } +, { ":arrows_clockwise:", "\u1f503", NULL, {NULL} } +, { ":arrows_counterclockwise:", "\u1f504", NULL, {NULL} } +, { ":art:", "\u1f3a8", NULL, {NULL} } +, { ":articulated_lorry:", "\u1f69B", NULL, {NULL} } +, { ":astonished:", "\u1f632", NULL, {NULL} } +, { ":athletic_shoe:", "\u1f45F", NULL, {NULL} } +, { ":atm:", "\u1f3e7", NULL, {NULL} } +, { ":atom_symbol:", "\u269b\ufe0f", NULL, {NULL} } +, { ":avocado:", "\u1f951", NULL, {NULL} } +, { ":b:", "\u1f171\ufe0f", NULL, {NULL} } +, { ":baby:", "\u1f476", NULL, {NULL} } +, { ":baby_bottle:", "\u1f37C", NULL, {NULL} } +, { ":baby_chick:", "\u1f424", NULL, {NULL} } +, { ":baby_symbol:", "\u1f6bC", NULL, {NULL} } +, { ":back:", "\u1f519", NULL, {NULL} } +, { ":bacon:", "\u1f953", NULL, {NULL} } +, { ":badminton_racquet_and_shuttlecock:", "\u1f3f8", NULL, {NULL} } +, { ":baggage_claim:", "\u1f6c4", NULL, {NULL} } +, { ":baguette_bread:", "\u1f956", NULL, {NULL} } +, { ":balloon:", "\u1f388", NULL, {NULL} } +, { ":ballot_box_with_ballot:", "\u1f5f3\ufe0f", NULL, {NULL} } +, { ":ballot_box_with_check:", "\u2611\ufe0f", NULL, {NULL} } +, { ":bamboo:", "\u1f38D", NULL, {NULL} } +, { ":banana:", "\u1f34C", NULL, {NULL} } +, { ":bangbang:", "\u203c\ufe0f", NULL, {NULL} } +, { ":bank:", "\u1f3e6", NULL, {NULL} } +, { ":bar_chart:", "\u1f4cA", NULL, {NULL} } +, { ":barber:", "\u1f488", NULL, {NULL} } +, { ":barely_sunny:", "\u1f325\ufe0f", NULL, {NULL} } +, { ":baseball:", "\u26be", NULL, {NULL} } +, { ":basketball:", "\u1f3c0", NULL, {NULL} } +, { ":bat:", "\u1f987", NULL, {NULL} } +, { ":bath:", "\u1f6c0", NULL, {NULL} } +, { ":bathtub:", "\u1f6c1", NULL, {NULL} } +, { ":battery:", "\u1f50B", NULL, {NULL} } +, { ":beach_with_umbrella:", "\u1f3d6\ufe0f", NULL, {NULL} } +, { ":bear:", "\u1f43B", NULL, {NULL} } +, { ":bearded_person:", "\u1f9d4", NULL, {NULL} } +, { ":bed:", "\u1f6cF\ufe0f", NULL, {NULL} } +, { ":bee:", "\u1f41D", NULL, {NULL} } +, { ":beer:", "\u1f37A", NULL, {NULL} } +, { ":beers:", "\u1f37B", NULL, {NULL} } +, { ":beetle:", "\u1f41E", NULL, {NULL} } +, { ":beginner:", "\u1f530", NULL, {NULL} } +, { ":bell:", "\u1f514", NULL, {NULL} } +, { ":bellhop_bell:", "\u1f6cE\ufe0f", NULL, {NULL} } +, { ":bento:", "\u1f371", NULL, {NULL} } +, { ":bicyclist:", "\u1f6b4", NULL, {NULL} } +, { ":bike:", "\u1f6b2", NULL, {NULL} } +, { ":bikini:", "\u1f459", NULL, {NULL} } +, { ":billed_cap:", "\u1f9e2", NULL, {NULL} } +, { ":biohazard_sign:", "\u2623\ufe0f", NULL, {NULL} } +, { ":bird:", "\u1f426", NULL, {NULL} } +, { ":birthday:", "\u1f382", NULL, {NULL} } +, { ":black_circle:", "\u26ab", NULL, {NULL} } +, { ":black_circle_for_record:", "\u23fa\ufe0f", NULL, {NULL} } +, { ":black_heart:", "\u1f5a4", NULL, {NULL} } +, { ":black_joker:", "\u1f0cF", NULL, {NULL} } +, { ":black_large_square:", "\u2b1b", NULL, {NULL} } +, { ":black_left_pointing_double_triangle_with_vertical_bar:", "\u23ee\ufe0f", NULL, {NULL} } +, { ":black_medium_small_square:", "\u25fe", NULL, {NULL} } +, { ":black_medium_square:", "\u25fc\ufe0f", NULL, {NULL} } +, { ":black_nib:", "\u2712\ufe0f", NULL, {NULL} } +, { ":black_right_pointing_double_triangle_with_vertical_bar:", "\u23ed\ufe0f", NULL, {NULL} } +, { ":black_right_pointing_triangle_with_double_vertical_bar:", "\u23ef\ufe0f", NULL, {NULL} } +, { ":black_small_square:", "\u25aa\ufe0f", NULL, {NULL} } +, { ":black_square_button:", "\u1f532", NULL, {NULL} } +, { ":black_square_for_stop:", "\u23f9\ufe0f", NULL, {NULL} } +, { ":blond-haired-man:", "\u1f471\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":blond-haired-woman:", "\u1f471\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":blossom:", "\u1f33C", NULL, {NULL} } +, { ":blowfish:", "\u1f421", NULL, {NULL} } +, { ":blue_book:", "\u1f4d8", NULL, {NULL} } +, { ":blue_car:", "\u1f699", NULL, {NULL} } +, { ":blue_heart:", "\u1f499", "<3", {NULL} } +, { ":blush:", "\u1f60A", ":)", {NULL} } +, { ":boar:", "\u1f417", NULL, {NULL} } +, { ":boat:", "\u26f5", NULL, {NULL} } +, { ":bomb:", "\u1f4a3", NULL, {NULL} } +, { ":book:", "\u1f4d6", NULL, {NULL} } +, { ":bookmark:", "\u1f516", NULL, {NULL} } +, { ":bookmark_tabs:", "\u1f4d1", NULL, {NULL} } +, { ":books:", "\u1f4dA", NULL, {NULL} } +, { ":boom:", "\u1f4a5", NULL, {NULL} } +, { ":boot:", "\u1f462", NULL, {NULL} } +, { ":bouquet:", "\u1f490", NULL, {NULL} } +, { ":bow:", "\u1f647", NULL, {NULL} } +, { ":bow_and_arrow:", "\u1f3f9", NULL, {NULL} } +, { ":bowl_with_spoon:", "\u1f963", NULL, {NULL} } +, { ":bowling:", "\u1f3b3", NULL, {NULL} } +, { ":boxing_glove:", "\u1f94A", NULL, {NULL} } +, { ":boy:", "\u1f466", NULL, {NULL} } +, { ":brain:", "\u1f9e0", NULL, {NULL} } +, { ":bread:", "\u1f35E", NULL, {NULL} } +, { ":breast-feeding:", "\u1f931", NULL, {NULL} } +, { ":bride_with_veil:", "\u1f470", NULL, {NULL} } +, { ":bridge_at_night:", "\u1f309", NULL, {NULL} } +, { ":briefcase:", "\u1f4bC", NULL, {NULL} } +, { ":broccoli:", "\u1f966", NULL, {NULL} } +, { ":broken_heart:", "\u1f494", "", ":->", NULL} } +, { ":leaves:", "\u1f343", NULL, {NULL} } +, { ":ledger:", "\u1f4d2", NULL, {NULL} } +, { ":left-facing_fist:", "\u1f91B", NULL, {NULL} } +, { ":left_luggage:", "\u1f6c5", NULL, {NULL} } +, { ":left_right_arrow:", "\u2194\ufe0f", NULL, {NULL} } +, { ":left_speech_bubble:", "\u1f5e8\ufe0f", NULL, {NULL} } +, { ":leftwards_arrow_with_hook:", "\u21a9\ufe0f", NULL, {NULL} } +, { ":lemon:", "\u1f34B", NULL, {NULL} } +, { ":leo:", "\u264c", NULL, {NULL} } +, { ":leopard:", "\u1f406", NULL, {NULL} } +, { ":level_slider:", "\u1f39A\ufe0f", NULL, {NULL} } +, { ":libra:", "\u264e", NULL, {NULL} } +, { ":light_rail:", "\u1f688", NULL, {NULL} } +, { ":lightning:", "\u1f329\ufe0f", NULL, {NULL} } +, { ":lightning_cloud:", "\u1f329\ufe0f", NULL, {NULL} } +, { ":link:", "\u1f517", NULL, {NULL} } +, { ":linked_paperclips:", "\u1f587\ufe0f", NULL, {NULL} } +, { ":lion_face:", "\u1f981", NULL, {NULL} } +, { ":lips:", "\u1f444", NULL, {NULL} } +, { ":lipstick:", "\u1f484", NULL, {NULL} } +, { ":lizard:", "\u1f98E", NULL, {NULL} } +, { ":lock:", "\u1f512", NULL, {NULL} } +, { ":lock_with_ink_pen:", "\u1f50F", NULL, {NULL} } +, { ":lollipop:", "\u1f36D", NULL, {NULL} } +, { ":loop:", "\u27bf", NULL, {NULL} } +, { ":loud_sound:", "\u1f50A", NULL, {NULL} } +, { ":loudspeaker:", "\u1f4e2", NULL, {NULL} } +, { ":love_hotel:", "\u1f3e9", NULL, {NULL} } +, { ":love_letter:", "\u1f48C", NULL, {NULL} } +, { ":low_brightness:", "\u1f505", NULL, {NULL} } +, { ":lower_left_ballpoint_pen:", "\u1f58A\ufe0f", NULL, {NULL} } +, { ":lower_left_crayon:", "\u1f58D\ufe0f", NULL, {NULL} } +, { ":lower_left_fountain_pen:", "\u1f58B\ufe0f", NULL, {NULL} } +, { ":lower_left_paintbrush:", "\u1f58C\ufe0f", NULL, {NULL} } +, { ":lying_face:", "\u1f925", NULL, {NULL} } +, { ":m:", "\u24c2\ufe0f", NULL, {NULL} } +, { ":mag:", "\u1f50D", NULL, {NULL} } +, { ":mag_right:", "\u1f50E", NULL, {NULL} } +, { ":mage:", "\u1f9d9", NULL, {NULL} } +, { ":mahjong:", "\u1f004", NULL, {NULL} } +, { ":mailbox:", "\u1f4eB", NULL, {NULL} } +, { ":mailbox_closed:", "\u1f4eA", NULL, {NULL} } +, { ":mailbox_with_mail:", "\u1f4eC", NULL, {NULL} } +, { ":mailbox_with_no_mail:", "\u1f4eD", NULL, {NULL} } +, { ":male-artist:", "\u1f468\u200d\u1f3a8", NULL, {NULL} } +, { ":male-astronaut:", "\u1f468\u200d\u1f680", NULL, {NULL} } +, { ":male-construction-worker:", "\u1f477\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male-cook:", "\u1f468\u200d\u1f373", NULL, {NULL} } +, { ":male-detective:", "\u1f575\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male-doctor:", "\u1f468\u200d\u2695\ufe0f", NULL, {NULL} } +, { ":male-factory-worker:", "\u1f468\u200d\u1f3eD", NULL, {NULL} } +, { ":male-farmer:", "\u1f468\u200d\u1f33E", NULL, {NULL} } +, { ":male-firefighter:", "\u1f468\u200d\u1f692", NULL, {NULL} } +, { ":male-guard:", "\u1f482\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male-judge:", "\u1f468\u200d\u2696\ufe0f", NULL, {NULL} } +, { ":male-mechanic:", "\u1f468\u200d\u1f527", NULL, {NULL} } +, { ":male-office-worker:", "\u1f468\u200d\u1f4bC", NULL, {NULL} } +, { ":male-pilot:", "\u1f468\u200d\u2708\ufe0f", NULL, {NULL} } +, { ":male-police-officer:", "\u1f46E\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male-scientist:", "\u1f468\u200d\u1f52C", NULL, {NULL} } +, { ":male-singer:", "\u1f468\u200d\u1f3a4", NULL, {NULL} } +, { ":male-student:", "\u1f468\u200d\u1f393", NULL, {NULL} } +, { ":male-teacher:", "\u1f468\u200d\u1f3eB", NULL, {NULL} } +, { ":male-technologist:", "\u1f468\u200d\u1f4bB", NULL, {NULL} } +, { ":male_elf:", "\u1f9dD\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male_fairy:", "\u1f9dA\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male_genie:", "\u1f9dE\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male_mage:", "\u1f9d9\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male_sign:", "\u2642\ufe0f", NULL, {NULL} } +, { ":male_vampire:", "\u1f9dB\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":male_zombie:", "\u1f9dF\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man:", "\u1f468", NULL, {NULL} } +, { ":man-biking:", "\u1f6b4\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-bouncing-ball:", "\u26f9\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-bowing:", "\u1f647\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-boy:", "\u1f468\u200d\u1f466", NULL, {NULL} } +, { ":man-boy-boy:", "\u1f468\u200d\u1f466\u200d\u1f466", NULL, {NULL} } +, { ":man-cartwheeling:", "\u1f938\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-facepalming:", "\u1f926\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-frowning:", "\u1f64D\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-gesturing-no:", "\u1f645\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-gesturing-ok:", "\u1f646\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-getting-haircut:", "\u1f487\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-getting-massage:", "\u1f486\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-girl:", "\u1f468\u200d\u1f467", NULL, {NULL} } +, { ":man-girl-boy:", "\u1f468\u200d\u1f467\u200d\u1f466", NULL, {NULL} } +, { ":man-girl-girl:", "\u1f468\u200d\u1f467\u200d\u1f467", NULL, {NULL} } +, { ":man-golfing:", "\u1f3cC\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-heart-man:", "\u1f468\u200d\u2764\ufe0f\u200d\u1f468", NULL, {NULL} } +, { ":man-juggling:", "\u1f939\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-kiss-man:", "\u1f468\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f468", NULL, {NULL} } +, { ":man-lifting-weights:", "\u1f3cB\ufe0f\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-man-boy:", "\u1f468\u200d\u1f468\u200d\u1f466", NULL, {NULL} } +, { ":man-man-boy-boy:", "\u1f468\u200d\u1f468\u200d\u1f466\u200d\u1f466", NULL, {NULL} } +, { ":man-man-girl:", "\u1f468\u200d\u1f468\u200d\u1f467", NULL, {NULL} } +, { ":man-man-girl-boy:", "\u1f468\u200d\u1f468\u200d\u1f467\u200d\u1f466", NULL, {NULL} } +, { ":man-man-girl-girl:", "\u1f468\u200d\u1f468\u200d\u1f467\u200d\u1f467", NULL, {NULL} } +, { ":man-mountain-biking:", "\u1f6b5\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-playing-handball:", "\u1f93E\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-playing-water-polo:", "\u1f93D\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-pouting:", "\u1f64E\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-raising-hand:", "\u1f64B\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-rowing-boat:", "\u1f6a3\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-running:", "\u1f3c3\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-shrugging:", "\u1f937\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-surfing:", "\u1f3c4\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-swimming:", "\u1f3cA\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-tipping-hand:", "\u1f481\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-walking:", "\u1f6b6\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-wearing-turban:", "\u1f473\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-with-bunny-ears-partying:", "\u1f46F\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man-woman-boy:", "\u1f468\u200d\u1f469\u200d\u1f466", NULL, {NULL} } +, { ":man-woman-boy:", "\u1f46A", NULL, {NULL} } +, { ":man-woman-boy-boy:", "\u1f468\u200d\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } +, { ":man-woman-girl:", "\u1f468\u200d\u1f469\u200d\u1f467", NULL, {NULL} } +, { ":man-woman-girl-boy:", "\u1f468\u200d\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } +, { ":man-woman-girl-girl:", "\u1f468\u200d\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } +, { ":man-wrestling:", "\u1f93C\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man_and_woman_holding_hands:", "\u1f46B", NULL, {NULL} } +, { ":man_climbing:", "\u1f9d7\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man_dancing:", "\u1f57A", NULL, {NULL} } +, { ":man_in_business_suit_levitating:", "\u1f574\ufe0f", NULL, {NULL} } +, { ":man_in_lotus_position:", "\u1f9d8\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man_in_steamy_room:", "\u1f9d6\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":man_in_tuxedo:", "\u1f935", NULL, {NULL} } +, { ":man_with_gua_pi_mao:", "\u1f472", NULL, {NULL} } +, { ":man_with_turban:", "\u1f473", NULL, {NULL} } +, { ":mans_shoe:", "\u1f45E", NULL, {NULL} } +, { ":mantelpiece_clock:", "\u1f570\ufe0f", NULL, {NULL} } +, { ":maple_leaf:", "\u1f341", NULL, {NULL} } +, { ":martial_arts_uniform:", "\u1f94B", NULL, {NULL} } +, { ":mask:", "\u1f637", NULL, {NULL} } +, { ":massage:", "\u1f486", NULL, {NULL} } +, { ":meat_on_bone:", "\u1f356", NULL, {NULL} } +, { ":medal:", "\u1f396\ufe0f", NULL, {NULL} } +, { ":medical_symbol:", "\u2695\ufe0f", NULL, {NULL} } +, { ":mega:", "\u1f4e3", NULL, {NULL} } +, { ":melon:", "\u1f348", NULL, {NULL} } +, { ":memo:", "\u1f4dD", NULL, {NULL} } +, { ":menorah_with_nine_branches:", "\u1f54E", NULL, {NULL} } +, { ":mens:", "\u1f6b9", NULL, {NULL} } +, { ":mermaid:", "\u1f9dC\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":merman:", "\u1f9dC\u200d\u2642\ufe0f", NULL, {NULL} } +, { ":merperson:", "\u1f9dC", NULL, {NULL} } +, { ":metro:", "\u1f687", NULL, {NULL} } +, { ":microphone:", "\u1f3a4", NULL, {NULL} } +, { ":microscope:", "\u1f52C", NULL, {NULL} } +, { ":middle_finger:", "\u1f595", NULL, {NULL} } +, { ":milky_way:", "\u1f30C", NULL, {NULL} } +, { ":minibus:", "\u1f690", NULL, {NULL} } +, { ":minidisc:", "\u1f4bD", NULL, {NULL} } +, { ":mobile_phone_off:", "\u1f4f4", NULL, {NULL} } +, { ":money_mouth_face:", "\u1f911", NULL, {NULL} } +, { ":money_with_wings:", "\u1f4b8", NULL, {NULL} } +, { ":moneybag:", "\u1f4b0", NULL, {NULL} } +, { ":monkey:", "\u1f412", NULL, {NULL} } +, { ":monkey_face:", "\u1f435", NULL, {":o)", NULL} } +, { ":monorail:", "\u1f69D", NULL, {NULL} } +, { ":moon:", "\u1f314", NULL, {NULL} } +, { ":mortar_board:", "\u1f393", NULL, {NULL} } +, { ":mosque:", "\u1f54C", NULL, {NULL} } +, { ":mostly_sunny:", "\u1f324\ufe0f", NULL, {NULL} } +, { ":mother_christmas:", "\u1f936", NULL, {NULL} } +, { ":motor_boat:", "\u1f6e5\ufe0f", NULL, {NULL} } +, { ":motor_scooter:", "\u1f6f5", NULL, {NULL} } +, { ":motorway:", "\u1f6e3\ufe0f", NULL, {NULL} } +, { ":mount_fuji:", "\u1f5fB", NULL, {NULL} } +, { ":mountain:", "\u26f0\ufe0f", NULL, {NULL} } +, { ":mountain_bicyclist:", "\u1f6b5", NULL, {NULL} } +, { ":mountain_cableway:", "\u1f6a0", NULL, {NULL} } +, { ":mountain_railway:", "\u1f69E", NULL, {NULL} } +, { ":mouse:", "\u1f42D", NULL, {NULL} } +, { ":mouse2:", "\u1f401", NULL, {NULL} } +, { ":movie_camera:", "\u1f3a5", NULL, {NULL} } +, { ":moyai:", "\u1f5fF", NULL, {NULL} } +, { ":mrs_claus:", "\u1f936", NULL, {NULL} } +, { ":muscle:", "\u1f4aA", NULL, {NULL} } +, { ":mushroom:", "\u1f344", NULL, {NULL} } +, { ":musical_keyboard:", "\u1f3b9", NULL, {NULL} } +, { ":musical_note:", "\u1f3b5", NULL, {NULL} } +, { ":musical_score:", "\u1f3bC", NULL, {NULL} } +, { ":mute:", "\u1f507", NULL, {NULL} } +, { ":nail_care:", "\u1f485", NULL, {NULL} } +, { ":name_badge:", "\u1f4dB", NULL, {NULL} } +, { ":national_park:", "\u1f3dE\ufe0f", NULL, {NULL} } +, { ":nauseated_face:", "\u1f922", NULL, {NULL} } +, { ":necktie:", "\u1f454", NULL, {NULL} } +, { ":negative_squared_cross_mark:", "\u274e", NULL, {NULL} } +, { ":nerd_face:", "\u1f913", NULL, {NULL} } +, { ":neutral_face:", "\u1f610", NULL, {":|", ":-|", NULL} } +, { ":new:", "\u1f195", NULL, {NULL} } +, { ":new_moon:", "\u1f311", NULL, {NULL} } +, { ":new_moon_with_face:", "\u1f31A", NULL, {NULL} } +, { ":newspaper:", "\u1f4f0", NULL, {NULL} } +, { ":ng:", "\u1f196", NULL, {NULL} } +, { ":night_with_stars:", "\u1f303", NULL, {NULL} } +, { ":nine:", "9\ufe0f\u20e3", NULL, {NULL} } +, { ":no_bell:", "\u1f515", NULL, {NULL} } +, { ":no_bicycles:", "\u1f6b3", NULL, {NULL} } +, { ":no_entry:", "\u26d4", NULL, {NULL} } +, { ":no_entry_sign:", "\u1f6aB", NULL, {NULL} } +, { ":no_good:", "\u1f645", NULL, {NULL} } +, { ":no_mobile_phones:", "\u1f4f5", NULL, {NULL} } +, { ":no_mouth:", "\u1f636", NULL, {NULL} } +, { ":no_pedestrians:", "\u1f6b7", NULL, {NULL} } +, { ":no_smoking:", "\u1f6aD", NULL, {NULL} } +, { ":non-potable_water:", "\u1f6b1", NULL, {NULL} } +, { ":nose:", "\u1f443", NULL, {NULL} } +, { ":notebook:", "\u1f4d3", NULL, {NULL} } +, { ":notebook_with_decorative_cover:", "\u1f4d4", NULL, {NULL} } +, { ":notes:", "\u1f3b6", NULL, {NULL} } +, { ":nut_and_bolt:", "\u1f529", NULL, {NULL} } +, { ":o:", "\u2b55", NULL, {NULL} } +, { ":o2:", "\u1f17E\ufe0f", NULL, {NULL} } +, { ":ocean:", "\u1f30A", NULL, {NULL} } +, { ":octagonal_sign:", "\u1f6d1", NULL, {NULL} } +, { ":octopus:", "\u1f419", NULL, {NULL} } +, { ":oden:", "\u1f362", NULL, {NULL} } +, { ":office:", "\u1f3e2", NULL, {NULL} } +, { ":oil_drum:", "\u1f6e2\ufe0f", NULL, {NULL} } +, { ":ok:", "\u1f197", NULL, {NULL} } +, { ":ok_hand:", "\u1f44C", NULL, {NULL} } +, { ":ok_woman:", "\u1f646", NULL, {NULL} } +, { ":old_key:", "\u1f5dD\ufe0f", NULL, {NULL} } +, { ":older_adult:", "\u1f9d3", NULL, {NULL} } +, { ":older_man:", "\u1f474", NULL, {NULL} } +, { ":older_woman:", "\u1f475", NULL, {NULL} } +, { ":om_symbol:", "\u1f549\ufe0f", NULL, {NULL} } +, { ":on:", "\u1f51B", NULL, {NULL} } +, { ":oncoming_automobile:", "\u1f698", NULL, {NULL} } +, { ":oncoming_bus:", "\u1f68D", NULL, {NULL} } +, { ":oncoming_police_car:", "\u1f694", NULL, {NULL} } +, { ":oncoming_taxi:", "\u1f696", NULL, {NULL} } +, { ":one:", "1\ufe0f\u20e3", NULL, {NULL} } +, { ":open_book:", "\u1f4d6", NULL, {NULL} } +, { ":open_file_folder:", "\u1f4c2", NULL, {NULL} } +, { ":open_hands:", "\u1f450", NULL, {NULL} } +, { ":open_mouth:", "\u1f62E", NULL, {":o", ":-o", ":O", ":-O", NULL} } +, { ":ophiuchus:", "\u26ce", NULL, {NULL} } +, { ":orange_book:", "\u1f4d9", NULL, {NULL} } +, { ":orange_heart:", "\u1f9e1", NULL, {NULL} } +, { ":orthodox_cross:", "\u2626\ufe0f", NULL, {NULL} } +, { ":outbox_tray:", "\u1f4e4", NULL, {NULL} } +, { ":owl:", "\u1f989", NULL, {NULL} } +, { ":ox:", "\u1f402", NULL, {NULL} } +, { ":package:", "\u1f4e6", NULL, {NULL} } +, { ":page_facing_up:", "\u1f4c4", NULL, {NULL} } +, { ":page_with_curl:", "\u1f4c3", NULL, {NULL} } +, { ":pager:", "\u1f4dF", NULL, {NULL} } +, { ":palm_tree:", "\u1f334", NULL, {NULL} } +, { ":palms_up_together:", "\u1f932", NULL, {NULL} } +, { ":pancakes:", "\u1f95E", NULL, {NULL} } +, { ":panda_face:", "\u1f43C", NULL, {NULL} } +, { ":paperclip:", "\u1f4cE", NULL, {NULL} } +, { ":parking:", "\u1f17F\ufe0f", NULL, {NULL} } +, { ":part_alternation_mark:", "\u303d\ufe0f", NULL, {NULL} } +, { ":partly_sunny:", "\u26c5", NULL, {NULL} } +, { ":partly_sunny_rain:", "\u1f326\ufe0f", NULL, {NULL} } +, { ":passenger_ship:", "\u1f6f3\ufe0f", NULL, {NULL} } +, { ":passport_control:", "\u1f6c2", NULL, {NULL} } +, { ":paw_prints:", "\u1f43E", NULL, {NULL} } +, { ":peace_symbol:", "\u262e\ufe0f", NULL, {NULL} } +, { ":peach:", "\u1f351", NULL, {NULL} } +, { ":peanuts:", "\u1f95C", NULL, {NULL} } +, { ":pear:", "\u1f350", NULL, {NULL} } +, { ":pencil:", "\u1f4dD", NULL, {NULL} } +, { ":pencil2:", "\u270f\ufe0f", NULL, {NULL} } +, { ":penguin:", "\u1f427", NULL, {NULL} } +, { ":pensive:", "\u1f614", NULL, {NULL} } +, { ":performing_arts:", "\u1f3aD", NULL, {NULL} } +, { ":persevere:", "\u1f623", NULL, {NULL} } +, { ":person_climbing:", "\u1f9d7", NULL, {NULL} } +, { ":person_doing_cartwheel:", "\u1f938", NULL, {NULL} } +, { ":person_frowning:", "\u1f64D", NULL, {NULL} } +, { ":person_in_lotus_position:", "\u1f9d8", NULL, {NULL} } +, { ":person_in_steamy_room:", "\u1f9d6", NULL, {NULL} } +, { ":person_with_ball:", "\u26f9\ufe0f", NULL, {NULL} } +, { ":person_with_blond_hair:", "\u1f471", NULL, {NULL} } +, { ":person_with_headscarf:", "\u1f9d5", NULL, {NULL} } +, { ":person_with_pouting_face:", "\u1f64E", NULL, {NULL} } +, { ":phone:", "\u260e\ufe0f", NULL, {NULL} } +, { ":pick:", "\u26cf\ufe0f", NULL, {NULL} } +, { ":pie:", "\u1f967", NULL, {NULL} } +, { ":pig:", "\u1f437", NULL, {NULL} } +, { ":pig2:", "\u1f416", NULL, {NULL} } +, { ":pig_nose:", "\u1f43D", NULL, {NULL} } +, { ":pill:", "\u1f48A", NULL, {NULL} } +, { ":pineapple:", "\u1f34D", NULL, {NULL} } +, { ":pisces:", "\u2653", NULL, {NULL} } +, { ":pizza:", "\u1f355", NULL, {NULL} } +, { ":place_of_worship:", "\u1f6d0", NULL, {NULL} } +, { ":point_down:", "\u1f447", NULL, {NULL} } +, { ":point_left:", "\u1f448", NULL, {NULL} } +, { ":point_right:", "\u1f449", NULL, {NULL} } +, { ":point_up:", "\u261d\ufe0f", NULL, {NULL} } +, { ":point_up_2:", "\u1f446", NULL, {NULL} } +, { ":police_car:", "\u1f693", NULL, {NULL} } +, { ":poodle:", "\u1f429", NULL, {NULL} } +, { ":poop:", "\u1f4a9", NULL, {NULL} } +, { ":popcorn:", "\u1f37F", NULL, {NULL} } +, { ":post_office:", "\u1f3e3", NULL, {NULL} } +, { ":postal_horn:", "\u1f4eF", NULL, {NULL} } +, { ":postbox:", "\u1f4eE", NULL, {NULL} } +, { ":potable_water:", "\u1f6b0", NULL, {NULL} } +, { ":potato:", "\u1f954", NULL, {NULL} } +, { ":pouch:", "\u1f45D", NULL, {NULL} } +, { ":poultry_leg:", "\u1f357", NULL, {NULL} } +, { ":pound:", "\u1f4b7", NULL, {NULL} } +, { ":pouting_cat:", "\u1f63E", NULL, {NULL} } +, { ":pray:", "\u1f64F", NULL, {NULL} } +, { ":prayer_beads:", "\u1f4fF", NULL, {NULL} } +, { ":pregnant_woman:", "\u1f930", NULL, {NULL} } +, { ":pretzel:", "\u1f968", NULL, {NULL} } +, { ":prince:", "\u1f934", NULL, {NULL} } +, { ":princess:", "\u1f478", NULL, {NULL} } +, { ":printer:", "\u1f5a8\ufe0f", NULL, {NULL} } +, { ":punch:", "\u1f44A", NULL, {NULL} } +, { ":purple_heart:", "\u1f49C", "<3", {NULL} } +, { ":purse:", "\u1f45B", NULL, {NULL} } +, { ":pushpin:", "\u1f4cC", NULL, {NULL} } +, { ":put_litter_in_its_place:", "\u1f6aE", NULL, {NULL} } +, { ":question:", "\u2753", NULL, {NULL} } +, { ":rabbit:", "\u1f430", NULL, {NULL} } +, { ":rabbit2:", "\u1f407", NULL, {NULL} } +, { ":racehorse:", "\u1f40E", NULL, {NULL} } +, { ":racing_car:", "\u1f3cE\ufe0f", NULL, {NULL} } +, { ":racing_motorcycle:", "\u1f3cD\ufe0f", NULL, {NULL} } +, { ":radio:", "\u1f4fB", NULL, {NULL} } +, { ":radio_button:", "\u1f518", NULL, {NULL} } +, { ":radioactive_sign:", "\u2622\ufe0f", NULL, {NULL} } +, { ":rage:", "\u1f621", NULL, {NULL} } +, { ":railway_car:", "\u1f683", NULL, {NULL} } +, { ":railway_track:", "\u1f6e4\ufe0f", NULL, {NULL} } +, { ":rain_cloud:", "\u1f327\ufe0f", NULL, {NULL} } +, { ":rainbow:", "\u1f308", NULL, {NULL} } +, { ":rainbow-flag:", "\u1f3f3\ufe0f\u200d\u1f308", NULL, {NULL} } +, { ":raised_back_of_hand:", "\u1f91A", NULL, {NULL} } +, { ":raised_hand:", "\u270b", NULL, {NULL} } +, { ":raised_hand_with_fingers_splayed:", "\u1f590\ufe0f", NULL, {NULL} } +, { ":raised_hands:", "\u1f64C", NULL, {NULL} } +, { ":raising_hand:", "\u1f64B", NULL, {NULL} } +, { ":ram:", "\u1f40F", NULL, {NULL} } +, { ":ramen:", "\u1f35C", NULL, {NULL} } +, { ":rat:", "\u1f400", NULL, {NULL} } +, { ":recycle:", "\u267b\ufe0f", NULL, {NULL} } +, { ":red_car:", "\u1f697", NULL, {NULL} } +, { ":red_circle:", "\u1f534", NULL, {NULL} } +, { ":registered:", "\u00ae\ufe0f", NULL, {NULL} } +, { ":relaxed:", "\u263a\ufe0f", NULL, {NULL} } +, { ":relieved:", "\u1f60C", NULL, {NULL} } +, { ":reminder_ribbon:", "\u1f397\ufe0f", NULL, {NULL} } +, { ":repeat:", "\u1f501", NULL, {NULL} } +, { ":repeat_one:", "\u1f502", NULL, {NULL} } +, { ":restroom:", "\u1f6bB", NULL, {NULL} } +, { ":reversed_hand_with_middle_finger_extended:", "\u1f595", NULL, {NULL} } +, { ":revolving_hearts:", "\u1f49E", NULL, {NULL} } +, { ":rewind:", "\u23ea", NULL, {NULL} } +, { ":rhinoceros:", "\u1f98F", NULL, {NULL} } +, { ":ribbon:", "\u1f380", NULL, {NULL} } +, { ":rice:", "\u1f35A", NULL, {NULL} } +, { ":rice_ball:", "\u1f359", NULL, {NULL} } +, { ":rice_cracker:", "\u1f358", NULL, {NULL} } +, { ":rice_scene:", "\u1f391", NULL, {NULL} } +, { ":right-facing_fist:", "\u1f91C", NULL, {NULL} } +, { ":right_anger_bubble:", "\u1f5eF\ufe0f", NULL, {NULL} } +, { ":ring:", "\u1f48D", NULL, {NULL} } +, { ":robot_face:", "\u1f916", NULL, {NULL} } +, { ":rocket:", "\u1f680", NULL, {NULL} } +, { ":rolled_up_newspaper:", "\u1f5dE\ufe0f", NULL, {NULL} } +, { ":roller_coaster:", "\u1f3a2", NULL, {NULL} } +, { ":rolling_on_the_floor_laughing:", "\u1f923", NULL, {NULL} } +, { ":rooster:", "\u1f413", NULL, {NULL} } +, { ":rose:", "\u1f339", NULL, {NULL} } +, { ":rosette:", "\u1f3f5\ufe0f", NULL, {NULL} } +, { ":rotating_light:", "\u1f6a8", NULL, {NULL} } +, { ":round_pushpin:", "\u1f4cD", NULL, {NULL} } +, { ":rowboat:", "\u1f6a3", NULL, {NULL} } +, { ":ru:", "\u1f1f7\u1f1fA", NULL, {NULL} } +, { ":rugby_football:", "\u1f3c9", NULL, {NULL} } +, { ":runner:", "\u1f3c3", NULL, {NULL} } +, { ":running:", "\u1f3c3", NULL, {NULL} } +, { ":running_shirt_with_sash:", "\u1f3bD", NULL, {NULL} } +, { ":sa:", "\u1f202\ufe0f", NULL, {NULL} } +, { ":sagittarius:", "\u2650", NULL, {NULL} } +, { ":sailboat:", "\u26f5", NULL, {NULL} } +, { ":sake:", "\u1f376", NULL, {NULL} } +, { ":sandal:", "\u1f461", NULL, {NULL} } +, { ":sandwich:", "\u1f96A", NULL, {NULL} } +, { ":santa:", "\u1f385", NULL, {NULL} } +, { ":satellite:", "\u1f6f0\ufe0f", NULL, {NULL} } +, { ":satellite_antenna:", "\u1f4e1", NULL, {NULL} } +, { ":satisfied:", "\u1f606", NULL, {":>", ":->", NULL} } +, { ":sauropod:", "\u1f995", NULL, {NULL} } +, { ":saxophone:", "\u1f3b7", NULL, {NULL} } +, { ":scales:", "\u2696\ufe0f", NULL, {NULL} } +, { ":scarf:", "\u1f9e3", NULL, {NULL} } +, { ":school:", "\u1f3eB", NULL, {NULL} } +, { ":school_satchel:", "\u1f392", NULL, {NULL} } +, { ":scissors:", "\u2702\ufe0f", NULL, {NULL} } +, { ":scooter:", "\u1f6f4", NULL, {NULL} } +, { ":scorpion:", "\u1f982", NULL, {NULL} } +, { ":scorpius:", "\u264f", NULL, {NULL} } +, { ":scream:", "\u1f631", NULL, {NULL} } +, { ":scream_cat:", "\u1f640", NULL, {NULL} } +, { ":scroll:", "\u1f4dC", NULL, {NULL} } +, { ":seat:", "\u1f4bA", NULL, {NULL} } +, { ":second_place_medal:", "\u1f948", NULL, {NULL} } +, { ":secret:", "\u3299\ufe0f", NULL, {NULL} } +, { ":see_no_evil:", "\u1f648", NULL, {NULL} } +, { ":seedling:", "\u1f331", NULL, {NULL} } +, { ":selfie:", "\u1f933", NULL, {NULL} } +, { ":serious_face_with_symbols_covering_mouth:", "\u1f92C", NULL, {NULL} } +, { ":seven:", "7\ufe0f\u20e3", NULL, {NULL} } +, { ":shallow_pan_of_food:", "\u1f958", NULL, {NULL} } +, { ":shamrock:", "\u2618\ufe0f", NULL, {NULL} } +, { ":shark:", "\u1f988", NULL, {NULL} } +, { ":shaved_ice:", "\u1f367", NULL, {NULL} } +, { ":sheep:", "\u1f411", NULL, {NULL} } +, { ":shell:", "\u1f41A", NULL, {NULL} } +, { ":shield:", "\u1f6e1\ufe0f", NULL, {NULL} } +, { ":shinto_shrine:", "\u26e9\ufe0f", NULL, {NULL} } +, { ":ship:", "\u1f6a2", NULL, {NULL} } +, { ":shirt:", "\u1f455", NULL, {NULL} } +, { ":shit:", "\u1f4a9", NULL, {NULL} } +, { ":shocked_face_with_exploding_head:", "\u1f92F", NULL, {NULL} } +, { ":shoe:", "\u1f45E", NULL, {NULL} } +, { ":shopping_bags:", "\u1f6cD\ufe0f", NULL, {NULL} } +, { ":shopping_trolley:", "\u1f6d2", NULL, {NULL} } +, { ":shower:", "\u1f6bF", NULL, {NULL} } +, { ":shrimp:", "\u1f990", NULL, {NULL} } +, { ":shrug:", "\u1f937", NULL, {NULL} } +, { ":shushing_face:", "\u1f92B", NULL, {NULL} } +, { ":sign_of_the_horns:", "\u1f918", NULL, {NULL} } +, { ":signal_strength:", "\u1f4f6", NULL, {NULL} } +, { ":six:", "6\ufe0f\u20e3", NULL, {NULL} } +, { ":six_pointed_star:", "\u1f52F", NULL, {NULL} } +, { ":ski:", "\u1f3bF", NULL, {NULL} } +, { ":skier:", "\u26f7\ufe0f", NULL, {NULL} } +, { ":skin-tone-2:", "\u1f3fB", NULL, {NULL} } +, { ":skin-tone-3:", "\u1f3fC", NULL, {NULL} } +, { ":skin-tone-4:", "\u1f3fD", NULL, {NULL} } +, { ":skin-tone-5:", "\u1f3fE", NULL, {NULL} } +, { ":skin-tone-6:", "\u1f3fF", NULL, {NULL} } +, { ":skull:", "\u1f480", NULL, {NULL} } +, { ":skull_and_crossbones:", "\u2620\ufe0f", NULL, {NULL} } +, { ":sled:", "\u1f6f7", NULL, {NULL} } +, { ":sleeping:", "\u1f634", NULL, {NULL} } +, { ":sleeping_accommodation:", "\u1f6cC", NULL, {NULL} } +, { ":sleepy:", "\u1f62A", NULL, {NULL} } +, { ":sleuth_or_spy:", "\u1f575\ufe0f", NULL, {NULL} } +, { ":slightly_frowning_face:", "\u1f641", NULL, {NULL} } +, { ":slightly_smiling_face:", "\u1f642", NULL, {":)", "(:", ":-)", NULL} } +, { ":slot_machine:", "\u1f3b0", NULL, {NULL} } +, { ":small_airplane:", "\u1f6e9\ufe0f", NULL, {NULL} } +, { ":small_blue_diamond:", "\u1f539", NULL, {NULL} } +, { ":small_orange_diamond:", "\u1f538", NULL, {NULL} } +, { ":small_red_triangle:", "\u1f53A", NULL, {NULL} } +, { ":small_red_triangle_down:", "\u1f53B", NULL, {NULL} } +, { ":smile:", "\u1f604", ":)", {"C:", "c:", ":D", ":-D", NULL} } +, { ":smile_cat:", "\u1f638", NULL, {NULL} } +, { ":smiley:", "\u1f603", ":)", {"=)", "=-)", NULL} } +, { ":smiley_cat:", "\u1f63A", NULL, {NULL} } +, { ":smiling_face_with_smiling_eyes_and_hand_covering_mouth:", "\u1f92D", NULL, {NULL} } +, { ":smiling_imp:", "\u1f608", NULL, {NULL} } +, { ":smirk:", "\u1f60F", NULL, {NULL} } +, { ":smirk_cat:", "\u1f63C", NULL, {NULL} } +, { ":smoking:", "\u1f6aC", NULL, {NULL} } +, { ":snail:", "\u1f40C", NULL, {NULL} } +, { ":snake:", "\u1f40D", NULL, {NULL} } +, { ":sneezing_face:", "\u1f927", NULL, {NULL} } +, { ":snow_capped_mountain:", "\u1f3d4\ufe0f", NULL, {NULL} } +, { ":snow_cloud:", "\u1f328\ufe0f", NULL, {NULL} } +, { ":snowboarder:", "\u1f3c2", NULL, {NULL} } +, { ":snowflake:", "\u2744\ufe0f", NULL, {NULL} } +, { ":snowman:", "\u2603\ufe0f", NULL, {NULL} } +, { ":snowman_without_snow:", "\u26c4", NULL, {NULL} } +, { ":sob:", "\u1f62D", ":'(", {NULL} } +, { ":soccer:", "\u26bd", NULL, {NULL} } +, { ":socks:", "\u1f9e6", NULL, {NULL} } +, { ":soon:", "\u1f51C", NULL, {NULL} } +, { ":sos:", "\u1f198", NULL, {NULL} } +, { ":sound:", "\u1f509", NULL, {NULL} } +, { ":space_invader:", "\u1f47E", NULL, {NULL} } +, { ":spades:", "\u2660\ufe0f", NULL, {NULL} } +, { ":spaghetti:", "\u1f35D", NULL, {NULL} } +, { ":sparkle:", "\u2747\ufe0f", NULL, {NULL} } +, { ":sparkler:", "\u1f387", NULL, {NULL} } +, { ":sparkles:", "\u2728", NULL, {NULL} } +, { ":sparkling_heart:", "\u1f496", NULL, {NULL} } +, { ":speak_no_evil:", "\u1f64A", NULL, {NULL} } +, { ":speaker:", "\u1f508", NULL, {NULL} } +, { ":speaking_head_in_silhouette:", "\u1f5e3\ufe0f", NULL, {NULL} } +, { ":speech_balloon:", "\u1f4aC", NULL, {NULL} } +, { ":speedboat:", "\u1f6a4", NULL, {NULL} } +, { ":spider:", "\u1f577\ufe0f", NULL, {NULL} } +, { ":spider_web:", "\u1f578\ufe0f", NULL, {NULL} } +, { ":spiral_calendar_pad:", "\u1f5d3\ufe0f", NULL, {NULL} } +, { ":spiral_note_pad:", "\u1f5d2\ufe0f", NULL, {NULL} } +, { ":spock-hand:", "\u1f596", NULL, {NULL} } +, { ":spoon:", "\u1f944", NULL, {NULL} } +, { ":sports_medal:", "\u1f3c5", NULL, {NULL} } +, { ":squid:", "\u1f991", NULL, {NULL} } +, { ":stadium:", "\u1f3dF\ufe0f", NULL, {NULL} } +, { ":staff_of_aesculapius:", "\u2695\ufe0f", NULL, {NULL} } +, { ":star:", "\u2b50", NULL, {NULL} } +, { ":star-struck:", "\u1f929", NULL, {NULL} } +, { ":star2:", "\u1f31F", NULL, {NULL} } +, { ":star_and_crescent:", "\u262a\ufe0f", NULL, {NULL} } +, { ":star_of_david:", "\u2721\ufe0f", NULL, {NULL} } +, { ":stars:", "\u1f320", NULL, {NULL} } +, { ":station:", "\u1f689", NULL, {NULL} } +, { ":statue_of_liberty:", "\u1f5fD", NULL, {NULL} } +, { ":steam_locomotive:", "\u1f682", NULL, {NULL} } +, { ":stew:", "\u1f372", NULL, {NULL} } +, { ":stopwatch:", "\u23f1\ufe0f", NULL, {NULL} } +, { ":straight_ruler:", "\u1f4cF", NULL, {NULL} } +, { ":strawberry:", "\u1f353", NULL, {NULL} } +, { ":stuck_out_tongue:", "\u1f61B", ":p", {":p", ":-p", ":P", ":-P", ":b", ":-b", NULL} } +, { ":stuck_out_tongue_closed_eyes:", "\u1f61D", NULL, {NULL} } +, { ":stuck_out_tongue_winking_eye:", "\u1f61C", ";p", {";p", ";-p", ";b", ";-b", ";P", ";-P", NULL} } +, { ":studio_microphone:", "\u1f399\ufe0f", NULL, {NULL} } +, { ":stuffed_flatbread:", "\u1f959", NULL, {NULL} } +, { ":sun_behind_cloud:", "\u1f325\ufe0f", NULL, {NULL} } +, { ":sun_behind_rain_cloud:", "\u1f326\ufe0f", NULL, {NULL} } +, { ":sun_small_cloud:", "\u1f324\ufe0f", NULL, {NULL} } +, { ":sun_with_face:", "\u1f31E", NULL, {NULL} } +, { ":sunflower:", "\u1f33B", NULL, {NULL} } +, { ":sunglasses:", "\u1f60E", NULL, {"8)", NULL} } +, { ":sunny:", "\u2600\ufe0f", NULL, {NULL} } +, { ":sunrise:", "\u1f305", NULL, {NULL} } +, { ":sunrise_over_mountains:", "\u1f304", NULL, {NULL} } +, { ":surfer:", "\u1f3c4", NULL, {NULL} } +, { ":sushi:", "\u1f363", NULL, {NULL} } +, { ":suspension_railway:", "\u1f69F", NULL, {NULL} } +, { ":sweat:", "\u1f613", NULL, {NULL} } +, { ":sweat_drops:", "\u1f4a6", NULL, {NULL} } +, { ":sweat_smile:", "\u1f605", NULL, {NULL} } +, { ":sweet_potato:", "\u1f360", NULL, {NULL} } +, { ":swimmer:", "\u1f3cA", NULL, {NULL} } +, { ":symbols:", "\u1f523", NULL, {NULL} } +, { ":synagogue:", "\u1f54D", NULL, {NULL} } +, { ":syringe:", "\u1f489", NULL, {NULL} } +, { ":t-rex:", "\u1f996", NULL, {NULL} } +, { ":table_tennis_paddle_and_ball:", "\u1f3d3", NULL, {NULL} } +, { ":taco:", "\u1f32E", NULL, {NULL} } +, { ":tada:", "\u1f389", NULL, {NULL} } +, { ":takeout_box:", "\u1f961", NULL, {NULL} } +, { ":tanabata_tree:", "\u1f38B", NULL, {NULL} } +, { ":tangerine:", "\u1f34A", NULL, {NULL} } +, { ":taurus:", "\u2649", NULL, {NULL} } +, { ":taxi:", "\u1f695", NULL, {NULL} } +, { ":tea:", "\u1f375", NULL, {NULL} } +, { ":telephone:", "\u260e\ufe0f", NULL, {NULL} } +, { ":telephone_receiver:", "\u1f4dE", NULL, {NULL} } +, { ":telescope:", "\u1f52D", NULL, {NULL} } +, { ":tennis:", "\u1f3bE", NULL, {NULL} } +, { ":tent:", "\u26fa", NULL, {NULL} } +, { ":the_horns:", "\u1f918", NULL, {NULL} } +, { ":thermometer:", "\u1f321\ufe0f", NULL, {NULL} } +, { ":thinking_face:", "\u1f914", NULL, {NULL} } +, { ":third_place_medal:", "\u1f949", NULL, {NULL} } +, { ":thought_balloon:", "\u1f4aD", NULL, {NULL} } +, { ":three:", "3\ufe0f\u20e3", NULL, {NULL} } +, { ":three_button_mouse:", "\u1f5b1\ufe0f", NULL, {NULL} } +, { ":thumbsdown:", "\u1f44E", NULL, {NULL} } +, { ":thumbsup:", "\u1f44D", NULL, {NULL} } +, { ":thunder_cloud_and_rain:", "\u26c8\ufe0f", NULL, {NULL} } +, { ":ticket:", "\u1f3aB", NULL, {NULL} } +, { ":tiger:", "\u1f42F", NULL, {NULL} } +, { ":tiger2:", "\u1f405", NULL, {NULL} } +, { ":timer_clock:", "\u23f2\ufe0f", NULL, {NULL} } +, { ":tired_face:", "\u1f62B", NULL, {NULL} } +, { ":tm:", "\u2122\ufe0f", NULL, {NULL} } +, { ":toilet:", "\u1f6bD", NULL, {NULL} } +, { ":tokyo_tower:", "\u1f5fC", NULL, {NULL} } +, { ":tomato:", "\u1f345", NULL, {NULL} } +, { ":tongue:", "\u1f445", NULL, {NULL} } +, { ":top:", "\u1f51D", NULL, {NULL} } +, { ":tophat:", "\u1f3a9", NULL, {NULL} } +, { ":tornado:", "\u1f32A\ufe0f", NULL, {NULL} } +, { ":tornado_cloud:", "\u1f32A\ufe0f", NULL, {NULL} } +, { ":trackball:", "\u1f5b2\ufe0f", NULL, {NULL} } +, { ":tractor:", "\u1f69C", NULL, {NULL} } +, { ":traffic_light:", "\u1f6a5", NULL, {NULL} } +, { ":train:", "\u1f68B", NULL, {NULL} } +, { ":train2:", "\u1f686", NULL, {NULL} } +, { ":tram:", "\u1f68A", NULL, {NULL} } +, { ":triangular_flag_on_post:", "\u1f6a9", NULL, {NULL} } +, { ":triangular_ruler:", "\u1f4d0", NULL, {NULL} } +, { ":trident:", "\u1f531", NULL, {NULL} } +, { ":triumph:", "\u1f624", NULL, {NULL} } +, { ":trolleybus:", "\u1f68E", NULL, {NULL} } +, { ":trophy:", "\u1f3c6", NULL, {NULL} } +, { ":tropical_drink:", "\u1f379", NULL, {NULL} } +, { ":tropical_fish:", "\u1f420", NULL, {NULL} } +, { ":truck:", "\u1f69A", NULL, {NULL} } +, { ":trumpet:", "\u1f3bA", NULL, {NULL} } +, { ":tshirt:", "\u1f455", NULL, {NULL} } +, { ":tulip:", "\u1f337", NULL, {NULL} } +, { ":tumbler_glass:", "\u1f943", NULL, {NULL} } +, { ":turkey:", "\u1f983", NULL, {NULL} } +, { ":turtle:", "\u1f422", NULL, {NULL} } +, { ":tv:", "\u1f4fA", NULL, {NULL} } +, { ":twisted_rightwards_arrows:", "\u1f500", NULL, {NULL} } +, { ":two:", "2\ufe0f\u20e3", NULL, {NULL} } +, { ":two_hearts:", "\u1f495", NULL, {NULL} } +, { ":two_men_holding_hands:", "\u1f46C", NULL, {NULL} } +, { ":two_women_holding_hands:", "\u1f46D", NULL, {NULL} } +, { ":u5272:", "\u1f239", NULL, {NULL} } +, { ":u5408:", "\u1f234", NULL, {NULL} } +, { ":u55b6:", "\u1f23A", NULL, {NULL} } +, { ":u6307:", "\u1f22F", NULL, {NULL} } +, { ":u6708:", "\u1f237\ufe0f", NULL, {NULL} } +, { ":u6709:", "\u1f236", NULL, {NULL} } +, { ":u6e80:", "\u1f235", NULL, {NULL} } +, { ":u7121:", "\u1f21A", NULL, {NULL} } +, { ":u7533:", "\u1f238", NULL, {NULL} } +, { ":u7981:", "\u1f232", NULL, {NULL} } +, { ":u7a7a:", "\u1f233", NULL, {NULL} } +, { ":uk:", "\u1f1eC\u1f1e7", NULL, {NULL} } +, { ":umbrella:", "\u2602\ufe0f", NULL, {NULL} } +, { ":umbrella_on_ground:", "\u26f1\ufe0f", NULL, {NULL} } +, { ":umbrella_with_rain_drops:", "\u2614", NULL, {NULL} } +, { ":unamused:", "\u1f612", ":(", {NULL} } +, { ":underage:", "\u1f51E", NULL, {NULL} } +, { ":unicorn_face:", "\u1f984", NULL, {NULL} } +, { ":unlock:", "\u1f513", NULL, {NULL} } +, { ":up:", "\u1f199", NULL, {NULL} } +, { ":upside_down_face:", "\u1f643", NULL, {NULL} } +, { ":us:", "\u1f1fA\u1f1f8", NULL, {NULL} } +, { ":v:", "\u270c\ufe0f", NULL, {NULL} } +, { ":vampire:", "\u1f9dB", NULL, {NULL} } +, { ":vertical_traffic_light:", "\u1f6a6", NULL, {NULL} } +, { ":vhs:", "\u1f4fC", NULL, {NULL} } +, { ":vibration_mode:", "\u1f4f3", NULL, {NULL} } +, { ":video_camera:", "\u1f4f9", NULL, {NULL} } +, { ":video_game:", "\u1f3aE", NULL, {NULL} } +, { ":violin:", "\u1f3bB", NULL, {NULL} } +, { ":virgo:", "\u264d", NULL, {NULL} } +, { ":volcano:", "\u1f30B", NULL, {NULL} } +, { ":volleyball:", "\u1f3d0", NULL, {NULL} } +, { ":vs:", "\u1f19A", NULL, {NULL} } +, { ":walking:", "\u1f6b6", NULL, {NULL} } +, { ":waning_crescent_moon:", "\u1f318", NULL, {NULL} } +, { ":waning_gibbous_moon:", "\u1f316", NULL, {NULL} } +, { ":warning:", "\u26a0\ufe0f", NULL, {NULL} } +, { ":wastebasket:", "\u1f5d1\ufe0f", NULL, {NULL} } +, { ":watch:", "\u231a", NULL, {NULL} } +, { ":water_buffalo:", "\u1f403", NULL, {NULL} } +, { ":water_polo:", "\u1f93D", NULL, {NULL} } +, { ":watermelon:", "\u1f349", NULL, {NULL} } +, { ":wave:", "\u1f44B", NULL, {NULL} } +, { ":waving_black_flag:", "\u1f3f4", NULL, {NULL} } +, { ":waving_white_flag:", "\u1f3f3\ufe0f", NULL, {NULL} } +, { ":wavy_dash:", "\u3030\ufe0f", NULL, {NULL} } +, { ":waxing_crescent_moon:", "\u1f312", NULL, {NULL} } +, { ":waxing_gibbous_moon:", "\u1f314", NULL, {NULL} } +, { ":wc:", "\u1f6bE", NULL, {NULL} } +, { ":weary:", "\u1f629", NULL, {NULL} } +, { ":wedding:", "\u1f492", NULL, {NULL} } +, { ":weight_lifter:", "\u1f3cB\ufe0f", NULL, {NULL} } +, { ":whale:", "\u1f433", NULL, {NULL} } +, { ":whale2:", "\u1f40B", NULL, {NULL} } +, { ":wheel_of_dharma:", "\u2638\ufe0f", NULL, {NULL} } +, { ":wheelchair:", "\u267f", NULL, {NULL} } +, { ":white_check_mark:", "\u2705", NULL, {NULL} } +, { ":white_circle:", "\u26aa", NULL, {NULL} } +, { ":white_flower:", "\u1f4aE", NULL, {NULL} } +, { ":white_frowning_face:", "\u2639\ufe0f", NULL, {NULL} } +, { ":white_large_square:", "\u2b1c", NULL, {NULL} } +, { ":white_medium_small_square:", "\u25fd", NULL, {NULL} } +, { ":white_medium_square:", "\u25fb\ufe0f", NULL, {NULL} } +, { ":white_small_square:", "\u25ab\ufe0f", NULL, {NULL} } +, { ":white_square_button:", "\u1f533", NULL, {NULL} } +, { ":wilted_flower:", "\u1f940", NULL, {NULL} } +, { ":wind_blowing_face:", "\u1f32C\ufe0f", NULL, {NULL} } +, { ":wind_chime:", "\u1f390", NULL, {NULL} } +, { ":wine_glass:", "\u1f377", NULL, {NULL} } +, { ":wink:", "\u1f609", ";)", {";)", ";-)", NULL} } +, { ":wolf:", "\u1f43A", NULL, {NULL} } +, { ":woman:", "\u1f469", NULL, {NULL} } +, { ":woman-biking:", "\u1f6b4\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-bouncing-ball:", "\u26f9\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-bowing:", "\u1f647\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-boy:", "\u1f469\u200d\u1f466", NULL, {NULL} } +, { ":woman-boy-boy:", "\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } +, { ":woman-cartwheeling:", "\u1f938\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-facepalming:", "\u1f926\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-frowning:", "\u1f64D\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-gesturing-no:", "\u1f645\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-gesturing-ok:", "\u1f646\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-getting-haircut:", "\u1f487\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-getting-massage:", "\u1f486\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-girl:", "\u1f469\u200d\u1f467", NULL, {NULL} } +, { ":woman-girl-boy:", "\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } +, { ":woman-girl-girl:", "\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } +, { ":woman-golfing:", "\u1f3cC\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-heart-man:", "\u1f469\u200d\u2764\ufe0f\u200d\u1f468", NULL, {NULL} } +, { ":woman-heart-woman:", "\u1f469\u200d\u2764\ufe0f\u200d\u1f469", NULL, {NULL} } +, { ":woman-juggling:", "\u1f939\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-kiss-man:", "\u1f469\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f468", NULL, {NULL} } +, { ":woman-kiss-woman:", "\u1f469\u200d\u2764\ufe0f\u200d\u1f48B\u200d\u1f469", NULL, {NULL} } +, { ":woman-lifting-weights:", "\u1f3cB\ufe0f\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-mountain-biking:", "\u1f6b5\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-playing-handball:", "\u1f93E\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-playing-water-polo:", "\u1f93D\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-pouting:", "\u1f64E\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-raising-hand:", "\u1f64B\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-rowing-boat:", "\u1f6a3\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-running:", "\u1f3c3\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-shrugging:", "\u1f937\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-surfing:", "\u1f3c4\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-swimming:", "\u1f3cA\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-tipping-hand:", "\u1f481\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-walking:", "\u1f6b6\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-wearing-turban:", "\u1f473\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-with-bunny-ears-partying:", "\u1f46F\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman-woman-boy:", "\u1f469\u200d\u1f469\u200d\u1f466", NULL, {NULL} } +, { ":woman-woman-boy-boy:", "\u1f469\u200d\u1f469\u200d\u1f466\u200d\u1f466", NULL, {NULL} } +, { ":woman-woman-girl:", "\u1f469\u200d\u1f469\u200d\u1f467", NULL, {NULL} } +, { ":woman-woman-girl-boy:", "\u1f469\u200d\u1f469\u200d\u1f467\u200d\u1f466", NULL, {NULL} } +, { ":woman-woman-girl-girl:", "\u1f469\u200d\u1f469\u200d\u1f467\u200d\u1f467", NULL, {NULL} } +, { ":woman-wrestling:", "\u1f93C\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman_climbing:", "\u1f9d7\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman_in_lotus_position:", "\u1f9d8\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":woman_in_steamy_room:", "\u1f9d6\u200d\u2640\ufe0f", NULL, {NULL} } +, { ":womans_clothes:", "\u1f45A", NULL, {NULL} } +, { ":womans_hat:", "\u1f452", NULL, {NULL} } +, { ":womens:", "\u1f6bA", NULL, {NULL} } +, { ":world_map:", "\u1f5fA\ufe0f", NULL, {NULL} } +, { ":worried:", "\u1f61F", NULL, {NULL} } +, { ":wrench:", "\u1f527", NULL, {NULL} } +, { ":wrestlers:", "\u1f93C", NULL, {NULL} } +, { ":writing_hand:", "\u270d\ufe0f", NULL, {NULL} } +, { ":x:", "\u274c", NULL, {NULL} } +, { ":yellow_heart:", "\u1f49B", "<3", {NULL} } +, { ":yen:", "\u1f4b4", NULL, {NULL} } +, { ":yin_yang:", "\u262f\ufe0f", NULL, {NULL} } +, { ":yum:", "\u1f60B", NULL, {NULL} } +, { ":zany_face:", "\u1f92A", NULL, {NULL} } +, { ":zap:", "\u26a1", NULL, {NULL} } +, { ":zebra_face:", "\u1f993", NULL, {NULL} } +, { ":zero:", "0\ufe0f\u20e3", NULL, {NULL} } +, { ":zipper_mouth_face:", "\u1f910", NULL, {NULL} } +, { ":zombie:", "\u1f9dF", NULL, {NULL} } +, { ":zzz:", "\u1f4a4", NULL, {NULL} } }; static struct t_slack_emoji_by_text slack_emoji_by_text[] = -{ { "(:", "\u1f642", "slightly_smiling_face", {"slightly_smiling_face", NULL} } -, { "):", "\u1f61E", "disappointed", {"disappointed", NULL} } -, { "8)", "\u1f60E", "sunglasses", {"sunglasses", NULL} } -, { ":'(", "\u1f622", "cry", {"cry", NULL} } -, { ":(", "\u1f61E", "disappointed", {"disappointed", NULL} } -, { ":)", "\u1f642", "slightly_smiling_face", {"slightly_smiling_face", NULL} } -, { ":*", "\u1f618", "kissing_heart", {"kissing_heart", NULL} } -, { ":-(", "\u1f61E", "disappointed", {"disappointed", NULL} } -, { ":-)", "\u1f642", "slightly_smiling_face", {"slightly_smiling_face", NULL} } -, { ":-*", "\u1f618", "kissing_heart", {"kissing_heart", NULL} } -, { ":-/", "\u1f615", "confused", {"confused", NULL} } -, { ":->", "\u1f606", "laughing", {"laughing", "satisfied", NULL} } -, { ":-D", "\u1f604", "smile", {"smile", NULL} } -, { ":-O", "\u1f62E", "open_mouth", {"open_mouth", NULL} } -, { ":-P", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":-\\", "\u1f615", "confused", {"confused", NULL} } -, { ":-b", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":-o", "\u1f62E", "open_mouth", {"open_mouth", NULL} } -, { ":-p", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":-|", "\u1f610", "neutral_face", {"neutral_face", NULL} } -, { ":/", "\u1f615", "confused", {"confused", NULL} } -, { ":>", "\u1f606", "laughing", {"laughing", "satisfied", NULL} } -, { ":D", "\u1f604", "smile", {"smile", NULL} } -, { ":O", "\u1f62E", "open_mouth", {"open_mouth", NULL} } -, { ":P", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":\\", "\u1f615", "confused", {"confused", NULL} } -, { ":b", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":o", "\u1f62E", "open_mouth", {"open_mouth", NULL} } -, { ":o)", "\u1f435", "monkey_face", {"monkey_face", NULL} } -, { ":p", "\u1f61B", "stuck_out_tongue", {"stuck_out_tongue", NULL} } -, { ":|", "\u1f610", "neutral_face", {"neutral_face", NULL} } -, { ";)", "\u1f609", "wink", {"wink", NULL} } -, { ";-)", "\u1f609", "wink", {"wink", NULL} } -, { ";-P", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ";-b", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ";-p", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ";P", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ";b", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ";p", "\u1f61C", "stuck_out_tongue_winking_eye", {"stuck_out_tongue_winking_eye", NULL} } -, { ":(", "\u1f620", "angry", {"angry", NULL} } -, { ">:-(", "\u1f620", "angry", {"angry", NULL} } -, { "C:", "\u1f604", "smile", {"smile", NULL} } -, { "D:", "\u1f627", "anguished", {"anguished", NULL} } -, { "c:", "\u1f604", "smile", {"smile", NULL} } +{ { "(:", "\u1f642", ":slightly_smiling_face:", {":slightly_smiling_face:", NULL} } +, { "):", "\u1f61E", ":disappointed:", {":disappointed:", NULL} } +, { "8)", "\u1f60E", ":sunglasses:", {":sunglasses:", NULL} } +, { ":'(", "\u1f622", ":cry:", {":cry:", NULL} } +, { ":(", "\u1f61E", ":disappointed:", {":disappointed:", NULL} } +, { ":)", "\u1f642", ":slightly_smiling_face:", {":slightly_smiling_face:", NULL} } +, { ":*", "\u1f618", ":kissing_heart:", {":kissing_heart:", NULL} } +, { ":-(", "\u1f61E", ":disappointed:", {":disappointed:", NULL} } +, { ":-)", "\u1f642", ":slightly_smiling_face:", {":slightly_smiling_face:", NULL} } +, { ":-*", "\u1f618", ":kissing_heart:", {":kissing_heart:", NULL} } +, { ":-/", "\u1f615", ":confused:", {":confused:", NULL} } +, { ":->", "\u1f606", ":laughing:", {":laughing:", ":satisfied:", NULL} } +, { ":-D", "\u1f604", ":smile:", {":smile:", NULL} } +, { ":-O", "\u1f62E", ":open_mouth:", {":open_mouth:", NULL} } +, { ":-P", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":-\\", "\u1f615", ":confused:", {":confused:", NULL} } +, { ":-b", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":-o", "\u1f62E", ":open_mouth:", {":open_mouth:", NULL} } +, { ":-p", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":-|", "\u1f610", ":neutral_face:", {":neutral_face:", NULL} } +, { ":/", "\u1f615", ":confused:", {":confused:", NULL} } +, { ":>", "\u1f606", ":laughing:", {":laughing:", ":satisfied:", NULL} } +, { ":D", "\u1f604", ":smile:", {":smile:", NULL} } +, { ":O", "\u1f62E", ":open_mouth:", {":open_mouth:", NULL} } +, { ":P", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":\\", "\u1f615", ":confused:", {":confused:", NULL} } +, { ":b", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":o", "\u1f62E", ":open_mouth:", {":open_mouth:", NULL} } +, { ":o)", "\u1f435", ":monkey_face:", {":monkey_face:", NULL} } +, { ":p", "\u1f61B", ":stuck_out_tongue:", {":stuck_out_tongue:", NULL} } +, { ":|", "\u1f610", ":neutral_face:", {":neutral_face:", NULL} } +, { ";)", "\u1f609", ":wink:", {":wink:", NULL} } +, { ";-)", "\u1f609", ":wink:", {":wink:", NULL} } +, { ";-P", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ";-b", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ";-p", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ";P", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ";b", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ";p", "\u1f61C", ":stuck_out_tongue_winking_eye:", {":stuck_out_tongue_winking_eye:", NULL} } +, { ":(", "\u1f620", ":angry:", {":angry:", NULL} } +, { ">:-(", "\u1f620", ":angry:", {":angry:", NULL} } +, { "C:", "\u1f604", ":smile:", {":smile:", NULL} } +, { "D:", "\u1f627", ":anguished:", {":anguished:", NULL} } +, { "c:", "\u1f604", ":smile:", {":smile:", NULL} } }; diff --git a/slack-emoji.pl b/slack-emoji.pl index 357f528..5803327 100644 --- a/slack-emoji.pl +++ b/slack-emoji.pl @@ -51,16 +51,21 @@ my %byname = map { my $o = $_; map {($_, $o)} @{$o->{'short_names'}} } @array; my @sortedbyname = sort { $a cmp $b } keys %byname; foreach my $name (@sortedbyname) { - my $_0 = "\"$name\""; + my $_0 = "\":$name:\""; my @_1 = split /-/, $byname{$name}->{'unified'}; my $_1 = "\""; - foreach my $codepoint (@_1) { $_1 .= "\\u$codepoint" }; + foreach my $codepoint (@_1) { + if (hex $codepoint < 0xA0) { $_1 .= chr hex $codepoint } else { $_1 .= "\\u$codepoint" } + }; $_1 .= "\""; + $_1 =~ tr/A-Za-z/a-za-z/; my $_2 = $byname{$name}->{'text'}; if (defined $_2) { $_2 = "\"$_2\"" } else { $_2 = "NULL" }; + $_2 =~ s/\\/\\\\/g; my $_3 = "{"; foreach my $text (@{$byname{$name}->{'texts'}}) { if (defined $text) { $_3 .= "\"$text\", " } }; $_3 .= "NULL}"; + $_3 =~ s/\\/\\\\/g; print "$c { $_0, $_1, $_2, $_3 }"; $c = ','; } @@ -73,14 +78,18 @@ my @sortedbytext = sort { $a cmp $b } keys %bytext; foreach my $text (@sortedbytext) { my $_0 = "\"$text\""; + $_0 =~ s/\\/\\\\/g; my @_1 = split /-/, $bytext{$text}->{'unified'}; my $_1 = "\""; - foreach my $codepoint (@_1) { $_1 .= "\\u$codepoint" }; + foreach my $codepoint (@_1) { + if (hex $codepoint < 0xA0) { $_1 .= chr hex $codepoint } else { $_1 .= "\\u$codepoint" } + }; $_1 .= "\""; + $_1 =~ tr/A-Za-z/a-za-z/; my $_2 = $bytext{$text}->{'short_name'}; - if (defined $_2) { $_2 = "\"$_2\"" } else { $_2 = "NULL" }; + if (defined $_2) { $_2 = "\":$_2:\"" } else { $_2 = "NULL" }; my $_3 = "{"; - foreach my $name (@{$bytext{$text}->{'short_names'}}) { if (defined $name) { $_3 .= "\"$name\", " } }; + foreach my $name (@{$bytext{$text}->{'short_names'}}) { if (defined $name) { $_3 .= "\":$name:\", " } }; $_3 .= "NULL}"; print "$c { $_0, $_1, $_2, $_3 }"; $c = ','; diff --git a/slack-emoji.py b/slack-emoji.py index 558ce9b..9b5e90e 100755 --- a/slack-emoji.py +++ b/slack-emoji.py @@ -1,5 +1,4 @@ -#!/usr/bin/python -# Compatible with python v2 and v3 +#!/usr/bin/env python3 # This Source Code Form is subject to the terms of the Mozilla Public # License, version 2.0. If a copy of the MPL was not distributed with this @@ -38,7 +37,7 @@ struct t_slack_emoji_by_text { max(len(o['short_names'] if o['short_names'] else []) for o in emoji) + 1)) print("static struct t_slack_emoji_by_name slack_emoji_by_name[] =") print("{"+"\n".join(", {{ {0}, {1}, {2}, {3} }}".format( - json.dumps(name), + json.dumps(":"+name+":"), json.dumps(ast.parse("\"\\u"+"\\u".join(o['unified'].split('-'))+"\"", mode='eval').body.s), json.dumps(o['text']), "{"+json.dumps(o['texts']+[None] if o['texts'] else [None])[1:-1]+"}") @@ -51,8 +50,9 @@ print("static struct t_slack_emoji_by_text slack_emoji_by_text[] =") print("{"+"\n".join(", {{ {0}, {1}, {2}, {3} }}".format( json.dumps(text), json.dumps(ast.parse("\"\\u"+"\\u".join(o['unified'].split('-'))+"\"", mode='eval').body.s), - json.dumps(o['short_name']), - "{"+json.dumps(o['short_names']+[None] if o['short_names'] else [None])[1:-1]+"}") + json.dumps(":"+o['short_name']+":"), + "{"+json.dumps(list(map(lambda name: ":"+name+":", o['short_names']))+[None] + if o['short_names'] else [None])[1:-1]+"}") for o,text in sorted(((o,text) for o in emoji if o['texts'] for text in o['texts']), key=lambda x:x[1]) ).replace("null", "NULL")[1:]) diff --git a/slack.c b/slack.c index fb83898..29cc0cf 100644 --- a/slack.c +++ b/slack.c @@ -15,6 +15,7 @@ #include "slack-workspace.h" #include "slack-api.h" #include "slack-buffer.h" +#include "slack-completion.h" WEECHAT_PLUGIN_NAME(SLACK_PLUGIN_NAME); @@ -49,7 +50,7 @@ int weechat_plugin_init(struct t_weechat_plugin *plugin, int argc, char *argv[]) weechat_plugin = plugin; - lws_set_log_level(LLL_ERR | LLL_WARN | LLL_NOTICE /*| LLL_INFO | LLL_DEBUG + lws_set_log_level(LLL_ERR | LLL_WARN /*| LLL_NOTICE | LLL_INFO | LLL_DEBUG | LLL_PARSER | LLL_HEADER | LLL_EXT | LLL_CLIENT | LLL_LATENCY | LLL_USER | LLL_COUNT*/, slack_lwsl_emit_weechat); @@ -63,6 +64,8 @@ int weechat_plugin_init(struct t_weechat_plugin *plugin, int argc, char *argv[]) slack_api_init(); + slack_completion_init(); + slack_hook_timer = weechat_hook_timer(0.1 * 1000, 0, 0, &slack_workspace_timer_cb, NULL, NULL);