;;; company-emoji.el --- company-mode backend for emoji ;; Copyright (C) 2015 Alex Dunn ;; Author: Alex Dunn ;; URL: https://github.com/dunn/company-emoji.git ;; Package-Version: 20160331.1641 ;; Version: 2.3.0 ;; Package-Requires: ((cl-lib "0.5") (company "0.8.0")) ;; Keywords: emoji company honk ;; Prefix: company-emoji ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; company-mode backend providing autocompletion for emoji. ๐Ÿ†’๐Ÿ’ฆ ;; ### setup ;; Add `company-emoji.el` to your load-path, then add something like the ;; following to your init file: ;; (require 'company-emoji) ;; (add-to-list 'company-backends 'company-emoji) ;; After selecting an emoji-word from the completion-list, it will be ;; replaced by the real unicode emoji (`:cactus:` becomes ๐ŸŒต, `:cat:` ;; becomes ๐Ÿฑ, etc.) ;; ### emoji font support ;; If youโ€™re on Linux, or on Mac OS X and using the Cocoa version of ;; Emacs (i.e., if built `โ€-with-ns`, or `--with-cocoa` using Homebrew), ;; youโ€™ll need to add something like this to your init file (thanks to ;; [@syohex](https://github.com/syohex) and ;; [@waymondo](https://github.com/waymondo)): ;; ```elisp ;; (defun --set-emoji-font (frame) ;; "Adjust the font settings of FRAME so Emacs can display emoji properly." ;; (if (eq system-type 'darwin) ;; ;; For NS/Cocoa ;; (set-fontset-font t 'symbol (font-spec :family "Apple Color Emoji") frame 'prepend) ;; ;; For Linux ;; (set-fontset-font t 'symbol (font-spec :family "Symbola") frame 'prepend))) ;; ;; For when Emacs is started in GUI mode: ;; (--set-emoji-font nil) ;; ;; Hook for when a frame is created with emacsclient ;; ;; see https://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Frames.html ;; (add-hook 'after-make-frame-functions '--set-emoji-font) ;; ``` ;; [Symbola](https://zhm.github.io/symbola/) can be installed with `apt-get`: ;; ```sh ;; apt-get install ttf-ancient-fonts ;; ``` ;; **NB:** The `set-fontset-font` function is apparently only available ;; when Emacs has been compiled with a window system. ;; ### custom variables ;; #### aliases ;; You can add shortcode aliases by modifying `company-emoji-aliases`. ;; Run `M-x customize-variable [RET] company-emoji-aliases` to bring up ;; company-emojiโ€™s customization pane, then add or remove aliases to your ;; taste: ;; Hide Company Emoji Aliases: ;; [INS] [DEL] Symbol: :man-woman-boy: ;; String: :family: ;; [INS] [DEL] Symbol: :woman-kiss-man: ;; String: :couplekiss: ;; [INS] [DEL] Symbol: :woman_man_holding_hands: ;; String: :couple: ;; [INS] [DEL] Symbol: :woman-heart-man: ;; String: :couple_with_heart: ;; [INS] [DEL] Symbol: :oop: ;; String: :speak_no_evil: ;; [INS] ;; (โ€œSymbolโ€ designates the user-defined alias, and โ€œstringโ€ designates ;; the original shortcode you want your alias to mimick.) ;; Occasionally new default aliases may be added (like `:middle-finger:` ;; for ๐Ÿ–•). If youโ€™re upgrading and have modified the ;; `company-emoji-aliases` variable, the new aliases will be ignored; ;; youโ€™ll need to add them manually. ;; #### unicode replacement ;; By default, `:cat:` is replaced with ๐Ÿฑ upon completion, but that can ;; be turned off by setting the variable `company-emoji-insert-unicode` ;; to `nil`. ;;; Code: ;; requires (require 'cl-lib) (require 'company) ;; version string (defconst company-emoji-version "2.3.0") ;; customize (defgroup company-emoji nil "Company-mode backend for autocompleting emoji" :group 'company) (defcustom company-emoji-aliases '( (:man-woman-boy: . ":family:") (:woman-kiss-man: . ":couplekiss:") (:woman_man_holding_hands: . ":couple:") (:woman-heart-man: . ":couple_with_heart:") (:middle-finger: . ":reversed-hand-with-middle-finger-extended:") ) "Alternate shortcodes for emoji." :group 'company-emoji :type '(alist :key-type symbol :value-type string)) (defcustom company-emoji-insert-unicode t "Replace the :shortcode: with the real Unicode character upon completion." :group 'company-emoji :type 'boolean) ;; the actual code things (defun company-emoji--create-list () "Return the propertized list of emoji." ;; See ;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Props-and-Strings.html ;; for the syntax. (list #(":grinning:" 0 1 (:unicode "๐Ÿ˜€")) #(":grin:" 0 1 (:unicode "๐Ÿ˜")) #(":joy:" 0 1 (:unicode "๐Ÿ˜‚")) #(":smiley:" 0 1 (:unicode "๐Ÿ˜ƒ")) #(":smile:" 0 1 (:unicode "๐Ÿ˜„")) #(":sweat_smile:" 0 1 (:unicode "๐Ÿ˜…")) #(":satisfied:" 0 1 (:unicode "๐Ÿ˜†")) #(":innocent:" 0 1 (:unicode "๐Ÿ˜‡")) #(":smiling_imp:" 0 1 (:unicode "๐Ÿ˜ˆ")) #(":imp:" 0 1 (:unicode "๐Ÿ‘ฟ")) #(":wink:" 0 1 (:unicode "๐Ÿ˜‰")) #(":blush:" 0 1 (:unicode "๐Ÿ˜Š")) #(":yum:" 0 1 (:unicode "๐Ÿ˜‹")) #(":relieved:" 0 1 (:unicode "๐Ÿ˜Œ")) #(":heart_eyes:" 0 1 (:unicode "๐Ÿ˜")) #(":sunglasses:" 0 1 (:unicode "๐Ÿ˜Ž")) #(":smirk:" 0 1 (:unicode "๐Ÿ˜")) #(":neutral_face:" 0 1 (:unicode "๐Ÿ˜")) #(":expressionless:" 0 1 (:unicode "๐Ÿ˜‘")) #(":unamused:" 0 1 (:unicode "๐Ÿ˜’")) #(":sweat:" 0 1 (:unicode "๐Ÿ˜“")) #(":pensive:" 0 1 (:unicode "๐Ÿ˜”")) #(":confused:" 0 1 (:unicode "๐Ÿ˜•")) #(":confounded:" 0 1 (:unicode "๐Ÿ˜–")) #(":kissing:" 0 1 (:unicode "๐Ÿ˜—")) #(":kissing_heart:" 0 1 (:unicode "๐Ÿ˜˜")) #(":kissing_smiling_eyes:" 0 1 (:unicode "๐Ÿ˜™")) #(":kissing_closed_eyes:" 0 1 (:unicode "๐Ÿ˜š")) #(":stuck_out_tongue:" 0 1 (:unicode "๐Ÿ˜›")) #(":stuck_out_tongue_winking_eye:" 0 1 (:unicode "๐Ÿ˜œ")) #(":stuck_out_tongue_closed_eyes:" 0 1 (:unicode "๐Ÿ˜")) #(":disappointed:" 0 1 (:unicode "๐Ÿ˜ž")) #(":worried:" 0 1 (:unicode "๐Ÿ˜Ÿ")) #(":angry:" 0 1 (:unicode "๐Ÿ˜ ")) #(":rage:" 0 1 (:unicode "๐Ÿ˜ก")) #(":cry:" 0 1 (:unicode "๐Ÿ˜ข")) #(":persevere:" 0 1 (:unicode "๐Ÿ˜ฃ")) #(":triumph:" 0 1 (:unicode "๐Ÿ˜ค")) #(":disappointed_relieved:" 0 1 (:unicode "๐Ÿ˜ฅ")) #(":frowning:" 0 1 (:unicode "๐Ÿ˜ฆ")) #(":anguished:" 0 1 (:unicode "๐Ÿ˜ง")) #(":fearful:" 0 1 (:unicode "๐Ÿ˜จ")) #(":weary:" 0 1 (:unicode "๐Ÿ˜ฉ")) #(":sleepy:" 0 1 (:unicode "๐Ÿ˜ช")) #(":tired_face:" 0 1 (:unicode "๐Ÿ˜ซ")) #(":grimacing:" 0 1 (:unicode "๐Ÿ˜ฌ")) #(":sob:" 0 1 (:unicode "๐Ÿ˜ญ")) #(":open_mouth:" 0 1 (:unicode "๐Ÿ˜ฎ")) #(":hushed:" 0 1 (:unicode "๐Ÿ˜ฏ")) #(":cold_sweat:" 0 1 (:unicode "๐Ÿ˜ฐ")) #(":scream:" 0 1 (:unicode "๐Ÿ˜ฑ")) #(":astonished:" 0 1 (:unicode "๐Ÿ˜ฒ")) #(":flushed:" 0 1 (:unicode "๐Ÿ˜ณ")) #(":sleeping:" 0 1 (:unicode "๐Ÿ˜ด")) #(":dizzy_face:" 0 1 (:unicode "๐Ÿ˜ต")) #(":no_mouth:" 0 1 (:unicode "๐Ÿ˜ถ")) #(":mask:" 0 1 (:unicode "๐Ÿ˜ท")) #(":smile_cat:" 0 1 (:unicode "๐Ÿ˜ธ")) #(":joy_cat:" 0 1 (:unicode "๐Ÿ˜น")) #(":smiley_cat:" 0 1 (:unicode "๐Ÿ˜บ")) #(":heart_eyes_cat:" 0 1 (:unicode "๐Ÿ˜ป")) #(":smirk_cat:" 0 1 (:unicode "๐Ÿ˜ผ")) #(":kissing_cat:" 0 1 (:unicode "๐Ÿ˜ฝ")) #(":pouting_cat:" 0 1 (:unicode "๐Ÿ˜พ")) #(":crying_cat_face:" 0 1 (:unicode "๐Ÿ˜ฟ")) #(":scream_cat:" 0 1 (:unicode "๐Ÿ™€")) #(":footprints:" 0 1 (:unicode "๐Ÿ‘ฃ")) #(":bust_in_silhouette:" 0 1 (:unicode "๐Ÿ‘ค")) #(":busts_in_silhouette:" 0 1 (:unicode "๐Ÿ‘ฅ")) #(":baby:" 0 1 (:unicode "๐Ÿ‘ถ")) #(":boy:" 0 1 (:unicode "๐Ÿ‘ฆ")) #(":girl:" 0 1 (:unicode "๐Ÿ‘ง")) #(":man:" 0 1 (:unicode "๐Ÿ‘จ")) #(":woman:" 0 1 (:unicode "๐Ÿ‘ฉ")) #(":family:" 0 1 (:unicode "๐Ÿ‘ช")) #(":man-woman-girl:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง")) #(":man-woman-girl-boy:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ")) #(":man-woman-boy-boy:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ")) #(":man-woman-girl-girl:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง")) #(":woman-woman-boy:" 0 1 (:unicode "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ")) #(":woman-woman-girl:" 0 1 (:unicode "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง")) #(":woman-woman-girl-boy:" 0 1 (:unicode "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ")) #(":woman-woman-boy-boy:" 0 1 (:unicode "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ")) #(":woman-woman-girl-girl:" 0 1 (:unicode "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง")) #(":man-man-boy:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ")) #(":man-man-girl:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง")) #(":man-man-girl-boy:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ")) #(":man-man-boy-boy:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ")) #(":man-man-girl-girl:" 0 1 (:unicode "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง")) #(":couple:" 0 1 (:unicode "๐Ÿ‘ซ")) #(":two_men_holding_hands:" 0 1 (:unicode "๐Ÿ‘ฌ")) #(":two_women_holding_hands:" 0 1 (:unicode "๐Ÿ‘ญ")) #(":dancers:" 0 1 (:unicode "๐Ÿ‘ฏ")) #(":bride_with_veil:" 0 1 (:unicode "๐Ÿ‘ฐ")) #(":person_with_blond_hair:" 0 1 (:unicode "๐Ÿ‘ฑ")) #(":man_with_gua_pi_mao:" 0 1 (:unicode "๐Ÿ‘ฒ")) #(":man_with_turban:" 0 1 (:unicode "๐Ÿ‘ณ")) #(":older_man:" 0 1 (:unicode "๐Ÿ‘ด")) #(":older_woman:" 0 1 (:unicode "๐Ÿ‘ต")) #(":cop:" 0 1 (:unicode "๐Ÿ‘ฎ")) #(":construction_worker:" 0 1 (:unicode "๐Ÿ‘ท")) #(":princess:" 0 1 (:unicode "๐Ÿ‘ธ")) #(":guardsman:" 0 1 (:unicode "๐Ÿ’‚")) #(":angel:" 0 1 (:unicode "๐Ÿ‘ผ")) #(":santa:" 0 1 (:unicode "๐ŸŽ…")) #(":ghost:" 0 1 (:unicode "๐Ÿ‘ป")) #(":japanese_ogre:" 0 1 (:unicode "๐Ÿ‘น")) #(":japanese_goblin:" 0 1 (:unicode "๐Ÿ‘บ")) #(":poop:" 0 1 (:unicode "๐Ÿ’ฉ")) #(":skull:" 0 1 (:unicode "๐Ÿ’€")) #(":alien:" 0 1 (:unicode "๐Ÿ‘ฝ")) #(":space_invader:" 0 1 (:unicode "๐Ÿ‘พ")) #(":bow:" 0 1 (:unicode "๐Ÿ™‡")) #(":information_desk_person:" 0 1 (:unicode "๐Ÿ’")) #(":no_good:" 0 1 (:unicode "๐Ÿ™…")) #(":ok_woman:" 0 1 (:unicode "๐Ÿ™†")) #(":raising_hand:" 0 1 (:unicode "๐Ÿ™‹")) #(":person_with_pouting_face:" 0 1 (:unicode "๐Ÿ™Ž")) #(":person_frowning:" 0 1 (:unicode "๐Ÿ™")) #(":massage:" 0 1 (:unicode "๐Ÿ’†")) #(":haircut:" 0 1 (:unicode "๐Ÿ’‡")) #("couple_with_heart:" 0 1 (:unicode "๐Ÿ’‘")) #(":woman-heart-woman:" 0 1 (:unicode "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ")) #(":man-heart-man:" 0 1 (:unicode "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ")) #(":couplekiss:" 0 1 (:unicode "๐Ÿ’")) #(":woman-kiss-woman:" 0 1 (:unicode "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ")) #(":man-kiss-man:" 0 1 (:unicode "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ")) #(":raised_hands:" 0 1 (:unicode "๐Ÿ™Œ")) #(":clap:" 0 1 (:unicode "๐Ÿ‘")) #(":ear:" 0 1 (:unicode "๐Ÿ‘‚")) #(":eyes:" 0 1 (:unicode "๐Ÿ‘€")) #(":nose:" 0 1 (:unicode "๐Ÿ‘ƒ")) #(":lips:" 0 1 (:unicode "๐Ÿ‘„")) #(":kiss:" 0 1 (:unicode "๐Ÿ’‹")) #(":tongue:" 0 1 (:unicode "๐Ÿ‘…")) #(":nail_care:" 0 1 (:unicode "๐Ÿ’…")) #(":wave:" 0 1 (:unicode "๐Ÿ‘‹")) #(":thumbsup:" 0 1 (:unicode "๐Ÿ‘")) #(":thumbsdown:" 0 1 (:unicode "๐Ÿ‘Ž")) #(":point_up:" 0 1 (:unicode "โ˜๏ธ")) #(":point_up_2:" 0 1 (:unicode "๐Ÿ‘†")) #(":point_down:" 0 1 (:unicode "๐Ÿ‘‡")) #(":point_left:" 0 1 (:unicode "๐Ÿ‘ˆ")) #(":point_right:" 0 1 (:unicode "๐Ÿ‘‰")) #(":ok_hand:" 0 1 (:unicode "๐Ÿ‘Œ")) #(":v:" 0 1 (:unicode "โœŒ๏ธ")) #(":punch:" 0 1 (:unicode "๐Ÿ‘Š")) #(":fist:" 0 1 (:unicode "โœŠ")) #(":raised_hand:" 0 1 (:unicode "โœ‹")) #(":muscle:" 0 1 (:unicode "๐Ÿ’ช")) #(":open_hands:" 0 1 (:unicode "๐Ÿ‘")) #(":pray:" 0 1 (:unicode "๐Ÿ™")) #(":spock:" 0 1 (:unicode "๐Ÿ––")) #(":seedling:" 0 1 (:unicode "๐ŸŒฑ")) #(":evergreen_tree:" 0 1 (:unicode "๐ŸŒฒ")) #(":deciduous_tree:" 0 1 (:unicode "๐ŸŒณ")) #(":palm_tree:" 0 1 (:unicode "๐ŸŒด")) #(":cactus:" 0 1 (:unicode "๐ŸŒต")) #(":tulip:" 0 1 (:unicode "๐ŸŒท")) #(":cherry_blossom:" 0 1 (:unicode "๐ŸŒธ")) #(":rose:" 0 1 (:unicode "๐ŸŒน")) #(":hibiscus:" 0 1 (:unicode "๐ŸŒบ")) #(":sunflower:" 0 1 (:unicode "๐ŸŒป")) #(":blossom:" 0 1 (:unicode "๐ŸŒผ")) #(":bouquet:" 0 1 (:unicode "๐Ÿ’")) #(":ear_of_rice:" 0 1 (:unicode "๐ŸŒพ")) #(":herb:" 0 1 (:unicode "๐ŸŒฟ")) #(":four_leaf_clover:" 0 1 (:unicode "๐Ÿ€")) #(":maple_leaf:" 0 1 (:unicode "๐Ÿ")) #(":fallen_leaf:" 0 1 (:unicode "๐Ÿ‚")) #(":leaves:" 0 1 (:unicode "๐Ÿƒ")) #(":mushroom:" 0 1 (:unicode "๐Ÿ„")) #(":chestnut:" 0 1 (:unicode "๐ŸŒฐ")) #(":rat:" 0 1 (:unicode "๐Ÿ€")) #(":mouse2:" 0 1 (:unicode "๐Ÿ")) #(":mouse:" 0 1 (:unicode "๐Ÿญ")) #(":hamster:" 0 1 (:unicode "๐Ÿน")) #(":ox:" 0 1 (:unicode "๐Ÿ‚")) #(":water_buffalo:" 0 1 (:unicode "๐Ÿƒ")) #(":cow2:" 0 1 (:unicode "๐Ÿ„")) #(":cow:" 0 1 (:unicode "๐Ÿฎ")) #(":tiger2:" 0 1 (:unicode "๐Ÿ…")) #(":leopard:" 0 1 (:unicode "๐Ÿ†")) #(":tiger:" 0 1 (:unicode "๐Ÿฏ")) #(":rabbit2:" 0 1 (:unicode "๐Ÿ‡")) #(":rabbit:" 0 1 (:unicode "๐Ÿฐ")) #(":cat2:" 0 1 (:unicode "๐Ÿˆ")) #(":cat:" 0 1 (:unicode "๐Ÿฑ")) #(":racehorse:" 0 1 (:unicode "๐ŸŽ")) #(":horse:" 0 1 (:unicode "๐Ÿด")) #(":ram:" 0 1 (:unicode "๐Ÿ")) #(":sheep:" 0 1 (:unicode "๐Ÿ‘")) #(":goat:" 0 1 (:unicode "๐Ÿ")) #(":rooster:" 0 1 (:unicode "๐Ÿ“")) #(":chicken:" 0 1 (:unicode "๐Ÿ”")) #(":baby_chick:" 0 1 (:unicode "๐Ÿค")) #(":hatching_chick:" 0 1 (:unicode "๐Ÿฃ")) #(":hatched_chick:" 0 1 (:unicode "๐Ÿฅ")) #(":bird:" 0 1 (:unicode "๐Ÿฆ")) #(":penguin:" 0 1 (:unicode "๐Ÿง")) #(":elephant:" 0 1 (:unicode "๐Ÿ˜")) #(":dromedary_camel:" 0 1 (:unicode "๐Ÿช")) #(":camel:" 0 1 (:unicode "๐Ÿซ")) #(":boar:" 0 1 (:unicode "๐Ÿ—")) #(":pig2:" 0 1 (:unicode "๐Ÿ–")) #(":pig:" 0 1 (:unicode "๐Ÿท")) #(":pig_nose:" 0 1 (:unicode "๐Ÿฝ")) #(":dog2:" 0 1 (:unicode "๐Ÿ•")) #(":poodle:" 0 1 (:unicode "๐Ÿฉ")) #(":dog:" 0 1 (:unicode "๐Ÿถ")) #(":wolf:" 0 1 (:unicode "๐Ÿบ")) #(":bear:" 0 1 (:unicode "๐Ÿป")) #(":koala:" 0 1 (:unicode "๐Ÿจ")) #(":panda_face:" 0 1 (:unicode "๐Ÿผ")) #(":monkey_face:" 0 1 (:unicode "๐Ÿต")) #(":see_no_evil:" 0 1 (:unicode "๐Ÿ™ˆ")) #(":hear_no_evil:" 0 1 (:unicode "๐Ÿ™‰")) #(":speak_no_evil:" 0 1 (:unicode "๐Ÿ™Š")) #(":monkey:" 0 1 (:unicode "๐Ÿ’")) #(":dragon:" 0 1 (:unicode "๐Ÿ‰")) #(":dragon_face:" 0 1 (:unicode "๐Ÿฒ")) #(":crocodile:" 0 1 (:unicode "๐ŸŠ")) #(":snake:" 0 1 (:unicode "๐Ÿ")) #(":turtle:" 0 1 (:unicode "๐Ÿข")) #(":frog:" 0 1 (:unicode "๐Ÿธ")) #(":whale2:" 0 1 (:unicode "๐Ÿ‹")) #(":whale:" 0 1 (:unicode "๐Ÿณ")) #(":flipper:" 0 1 (:unicode "๐Ÿฌ")) #(":octopus:" 0 1 (:unicode "๐Ÿ™")) #(":fish:" 0 1 (:unicode "๐ŸŸ")) #(":tropical_fish:" 0 1 (:unicode "๐Ÿ ")) #(":blowfish:" 0 1 (:unicode "๐Ÿก")) #(":shell:" 0 1 (:unicode "๐Ÿš")) #(":snail:" 0 1 (:unicode "๐ŸŒ")) #(":bug:" 0 1 (:unicode "๐Ÿ›")) #(":ant:" 0 1 (:unicode "๐Ÿœ")) #(":honeybee:" 0 1 (:unicode "๐Ÿ")) #(":beetle:" 0 1 (:unicode "๐Ÿž")) #(":paw_prints:" 0 1 (:unicode "๐Ÿพ")) #(":zap:" 0 1 (:unicode "โšก")) #(":fire:" 0 1 (:unicode "๐Ÿ”ฅ")) #(":crescent_moon:" 0 1 (:unicode "๐ŸŒ™")) #(":sunny:" 0 1 (:unicode "โ˜€๏ธ")) #(":partly_sunny:" 0 1 (:unicode "โ›…")) #("๏ธ:cloud:" 0 1 (:unicode "๏ธโ˜๏ธ")) #(":droplet:" 0 1 (:unicode "๐Ÿ’ง")) #(":sweat_drops:" 0 1 (:unicode "๐Ÿ’ฆ")) #(":umbrella:" 0 1 (:unicode "โ˜”")) #(":dash:" 0 1 (:unicode "๐Ÿ’จ")) #(":snowflake:" 0 1 (:unicode "โ„๏ธ")) #(":star2:" 0 1 (:unicode "๐ŸŒŸ")) #(":star:" 0 1 (:unicode "โญ")) #(":shooting_star:" 0 1 (:unicode "๐ŸŒ ")) #(":sunrise_over_mountains:" 0 1 (:unicode "๐ŸŒ„")) #(":sunrise:" 0 1 (:unicode "๐ŸŒ…")) #(":rainbow:" 0 1 (:unicode "๐ŸŒˆ")) #(":ocean:" 0 1 (:unicode "๐ŸŒŠ")) #(":volcano:" 0 1 (:unicode "๐ŸŒ‹")) #(":milky_way:" 0 1 (:unicode "๐ŸŒŒ")) #(":mount_fuji:" 0 1 (:unicode "๐Ÿ—ป")) #(":japan:" 0 1 (:unicode "๐Ÿ—พ")) #(":globe_with_meridians:" 0 1 (:unicode "๐ŸŒ")) #(":earth_africa:" 0 1 (:unicode "๐ŸŒ")) #(":earth_americas:" 0 1 (:unicode "๐ŸŒŽ")) #(":earth_asia:" 0 1 (:unicode "๐ŸŒ")) #(":new_moon:" 0 1 (:unicode "๐ŸŒ‘")) #(":waxing_crescent_moon:" 0 1 (:unicode "๐ŸŒ’")) #(":first_quarter_moon:" 0 1 (:unicode "๐ŸŒ“")) #(":waxing_gibbous_moon:" 0 1 (:unicode "๐ŸŒ”")) #(":full_moon:" 0 1 (:unicode "๐ŸŒ•")) #(":waning_gibbous_moon:" 0 1 (:unicode "๐ŸŒ–")) #(":last_quarter_moon:" 0 1 (:unicode "๐ŸŒ—")) #(":waning_crescent_moon:" 0 1 (:unicode "๐ŸŒ˜")) #(":new_moon_with_face:" 0 1 (:unicode "๐ŸŒš")) #(":full_moon_with_face:" 0 1 (:unicode "๐ŸŒ")) #(":first_quarter_moon_with_face:" 0 1 (:unicode "๐ŸŒ›")) #(":last_quarter_moon_with_face:" 0 1 (:unicode "๐ŸŒœ")) #(":sun_with_face:" 0 1 (:unicode "๐ŸŒž")) #(":tomato:" 0 1 (:unicode "๐Ÿ…")) #(":eggplant:" 0 1 (:unicode "๐Ÿ†")) #(":corn:" 0 1 (:unicode "๐ŸŒฝ")) #(":sweet_potato:" 0 1 (:unicode "๐Ÿ ")) #(":grapes:" 0 1 (:unicode "๐Ÿ‡")) #(":melon:" 0 1 (:unicode "๐Ÿˆ")) #(":watermelon:" 0 1 (:unicode "๐Ÿ‰")) #(":tangerine:" 0 1 (:unicode "๐ŸŠ")) #(":lemon:" 0 1 (:unicode "๐Ÿ‹")) #(":banana:" 0 1 (:unicode "๐ŸŒ")) #(":pineapple:" 0 1 (:unicode "๐Ÿ")) #(":apple:" 0 1 (:unicode "๐ŸŽ")) #(":green_apple:" 0 1 (:unicode "๐Ÿ")) #(":pear:" 0 1 (:unicode "๐Ÿ")) #(":peach:" 0 1 (:unicode "๐Ÿ‘")) #(":cherries:" 0 1 (:unicode "๐Ÿ’")) #(":strawberry:" 0 1 (:unicode "๐Ÿ“")) #(":hamburger:" 0 1 (:unicode "๐Ÿ”")) #(":pizza:" 0 1 (:unicode "๐Ÿ•")) #(":meat_on_bone:" 0 1 (:unicode "๐Ÿ–")) #(":poultry_leg:" 0 1 (:unicode "๐Ÿ—")) #(":rice_cracker:" 0 1 (:unicode "๐Ÿ˜")) #(":rice_ball:" 0 1 (:unicode "๐Ÿ™")) #(":rice:" 0 1 (:unicode "๐Ÿš")) #(":curry:" 0 1 (:unicode "๐Ÿ›")) #(":ramen:" 0 1 (:unicode "๐Ÿœ")) #(":spaghetti:" 0 1 (:unicode "๐Ÿ")) #(":bread:" 0 1 (:unicode "๐Ÿž")) #(":fries:" 0 1 (:unicode "๐ŸŸ")) #(":dango:" 0 1 (:unicode "๐Ÿก")) #(":oden:" 0 1 (:unicode "๐Ÿข")) #(":sushi:" 0 1 (:unicode "๐Ÿฃ")) #(":fried_shrimp:" 0 1 (:unicode "๐Ÿค")) #(":fish_cake:" 0 1 (:unicode "๐Ÿฅ")) #(":icecream:" 0 1 (:unicode "๐Ÿฆ")) #(":shaved_ice:" 0 1 (:unicode "๐Ÿง")) #(":ice_cream:" 0 1 (:unicode "๐Ÿจ")) #(":doughnut:" 0 1 (:unicode "๐Ÿฉ")) #(":cookie:" 0 1 (:unicode "๐Ÿช")) #(":chocolate_bar:" 0 1 (:unicode "๐Ÿซ")) #(":candy:" 0 1 (:unicode "๐Ÿฌ")) #(":lollipop:" 0 1 (:unicode "๐Ÿญ")) #(":custard:" 0 1 (:unicode "๐Ÿฎ")) #(":honey_pot:" 0 1 (:unicode "๐Ÿฏ")) #(":cake:" 0 1 (:unicode "๐Ÿฐ")) #(":bento:" 0 1 (:unicode "๐Ÿฑ")) #(":stew:" 0 1 (:unicode "๐Ÿฒ")) #(":egg:" 0 1 (:unicode "๐Ÿณ")) #(":fork_and_knife:" 0 1 (:unicode "๐Ÿด")) #(":tea:" 0 1 (:unicode "๐Ÿต")) #(":coffee:" 0 1 (:unicode "โ˜•")) #(":sake:" 0 1 (:unicode "๐Ÿถ")) #(":wine_glass:" 0 1 (:unicode "๐Ÿท")) #(":cocktail:" 0 1 (:unicode "๐Ÿธ")) #(":tropical_drink:" 0 1 (:unicode "๐Ÿน")) #(":beer:" 0 1 (:unicode "๐Ÿบ")) #(":beers:" 0 1 (:unicode "๐Ÿป")) #(":baby_bottle:" 0 1 (:unicode "๐Ÿผ")) #(":ribbon:" 0 1 (:unicode "๐ŸŽ€")) #(":gift:" 0 1 (:unicode "๐ŸŽ")) #(":birthday:" 0 1 (:unicode "๐ŸŽ‚")) #(":jack_o_lantern:" 0 1 (:unicode "๐ŸŽƒ")) #(":christmas_tree:" 0 1 (:unicode "๐ŸŽ„")) #(":tanabata_tree:" 0 1 (:unicode "๐ŸŽ‹")) #(":bamboo:" 0 1 (:unicode "๐ŸŽ")) #(":rice_scene:" 0 1 (:unicode "๐ŸŽ‘")) #(":fireworks:" 0 1 (:unicode "๐ŸŽ†")) #(":sparkler:" 0 1 (:unicode "๐ŸŽ‡")) #(":tada:" 0 1 (:unicode "๐ŸŽ‰")) #(":confetti_ball:" 0 1 (:unicode "๐ŸŽŠ")) #(":balloon:" 0 1 (:unicode "๐ŸŽˆ")) #(":dizzy:" 0 1 (:unicode "๐Ÿ’ซ")) #(":sparkles:" 0 1 (:unicode "โœจ")) #(":collision:" 0 1 (:unicode "๐Ÿ’ฅ")) #(":mortar_board:" 0 1 (:unicode "๐ŸŽ“")) #(":crown:" 0 1 (:unicode "๐Ÿ‘‘")) #(":dolls:" 0 1 (:unicode "๐ŸŽŽ")) #(":flags:" 0 1 (:unicode "๐ŸŽ")) #(":wind_chime:" 0 1 (:unicode "๐ŸŽ")) #(":crossed_flags:" 0 1 (:unicode "๐ŸŽŒ")) #(":lantern:" 0 1 (:unicode "๐Ÿฎ")) #(":ring:" 0 1 (:unicode "๐Ÿ’")) #(":heart:" 0 1 (:unicode "โค๏ธ")) #(":broken_heart:" 0 1 (:unicode "๐Ÿ’”")) #(":love_letter:" 0 1 (:unicode "๐Ÿ’Œ")) #(":two_hearts:" 0 1 (:unicode "๐Ÿ’•")) #(":revolving_hearts:" 0 1 (:unicode "๐Ÿ’ž")) #(":heartbeat:" 0 1 (:unicode "๐Ÿ’“")) #(":heartpulse:" 0 1 (:unicode "๐Ÿ’—")) #(":sparkling_heart:" 0 1 (:unicode "๐Ÿ’–")) #(":cupid:" 0 1 (:unicode "๐Ÿ’˜")) #(":gift_heart:" 0 1 (:unicode "๐Ÿ’")) #(":heart_decoration:" 0 1 (:unicode "๐Ÿ’Ÿ")) #(":purple_heart:" 0 1 (:unicode "๐Ÿ’œ")) #(":yellow_heart:" 0 1 (:unicode "๐Ÿ’›")) #(":green_heart:" 0 1 (:unicode "๐Ÿ’š")) #(":blue_heart:" 0 1 (:unicode "๐Ÿ’™")) #(":running:" 0 1 (:unicode "๐Ÿƒ")) #(":walking:" 0 1 (:unicode "๐Ÿšถ")) #(":dancer:" 0 1 (:unicode "๐Ÿ’ƒ")) #(":rowboat:" 0 1 (:unicode "๐Ÿšฃ")) #(":swimmer:" 0 1 (:unicode "๐ŸŠ")) #(":surfer:" 0 1 (:unicode "๐Ÿ„")) #(":bath:" 0 1 (:unicode "๐Ÿ›€")) #(":snowboarder:" 0 1 (:unicode "๐Ÿ‚")) #(":ski:" 0 1 (:unicode "๐ŸŽฟ")) #(":snowman:" 0 1 (:unicode "โ›„")) #("๏ธ:bicyclist:" 0 1 (:unicode "๏ธ๐Ÿšด")) #(":mountain_bicyclist:" 0 1 (:unicode "๐Ÿšต")) #(":horse_racing:" 0 1 (:unicode "๐Ÿ‡")) #(":tent:" 0 1 (:unicode "โ›บ")) #("๏ธ:fishing_pole_and_fish:" 0 1 (:unicode "๏ธ๐ŸŽฃ")) #(":soccer:" 0 1 (:unicode "โšฝ")) #("๏ธ:basketball:" 0 1 (:unicode "๏ธ๐Ÿ€")) #(":football:" 0 1 (:unicode "๐Ÿˆ")) #(":baseball:" 0 1 (:unicode "โšพ๏ธ")) #(":tennis:" 0 1 (:unicode "๐ŸŽพ")) #(":rugby_football:" 0 1 (:unicode "๐Ÿ‰")) #(":golf:" 0 1 (:unicode "โ›ณ")) #("๏ธ:trophy:" 0 1 (:unicode "๏ธ๐Ÿ†")) #(":running_shirt_with_sash:" 0 1 (:unicode "๐ŸŽฝ")) #(":checkered_flag:" 0 1 (:unicode "๐Ÿ")) #(":musical_keyboard:" 0 1 (:unicode "๐ŸŽน")) #(":guitar:" 0 1 (:unicode "๐ŸŽธ")) #(":violin:" 0 1 (:unicode "๐ŸŽป")) #(":saxophone:" 0 1 (:unicode "๐ŸŽท")) #(":trumpet:" 0 1 (:unicode "๐ŸŽบ")) #(":musical_note:" 0 1 (:unicode "๐ŸŽต")) #(":notes:" 0 1 (:unicode "๐ŸŽถ")) #(":musical_score:" 0 1 (:unicode "๐ŸŽผ")) #(":headphones:" 0 1 (:unicode "๐ŸŽง")) #(":microphone:" 0 1 (:unicode "๐ŸŽค")) #(":performing_arts:" 0 1 (:unicode "๐ŸŽญ")) #(":ticket:" 0 1 (:unicode "๐ŸŽซ")) #(":tophat:" 0 1 (:unicode "๐ŸŽฉ")) #(":circus_tent:" 0 1 (:unicode "๐ŸŽช")) #(":clapper:" 0 1 (:unicode "๐ŸŽฌ")) #(":art:" 0 1 (:unicode "๐ŸŽจ")) #(":dart:" 0 1 (:unicode "๐ŸŽฏ")) #(":8ball:" 0 1 (:unicode "๐ŸŽฑ")) #(":bowling:" 0 1 (:unicode "๐ŸŽณ")) #(":slot_machine:" 0 1 (:unicode "๐ŸŽฐ")) #(":game_die:" 0 1 (:unicode "๐ŸŽฒ")) #(":video_game:" 0 1 (:unicode "๐ŸŽฎ")) #(":flower_playing_cards:" 0 1 (:unicode "๐ŸŽด")) #(":black_joker:" 0 1 (:unicode "๐Ÿƒ")) #(":mahjong:" 0 1 (:unicode "๐Ÿ€„")) #(":carousel_horse:" 0 1 (:unicode "๐ŸŽ ")) #(":ferris_wheel:" 0 1 (:unicode "๐ŸŽก")) #(":roller_coaster:" 0 1 (:unicode "๐ŸŽข")) #(":train:" 0 1 (:unicode "๐Ÿšƒ")) #(":mountain_railway:" 0 1 (:unicode "๐Ÿšž")) #(":steam_locomotive:" 0 1 (:unicode "๐Ÿš‚")) #(":tram:" 0 1 (:unicode "๐Ÿš‹")) #(":monorail:" 0 1 (:unicode "๐Ÿš")) #(":bullettrain_side:" 0 1 (:unicode "๐Ÿš„")) #(":bullettrain_front:" 0 1 (:unicode "๐Ÿš…")) #(":train2:" 0 1 (:unicode "๐Ÿš†")) #(":metro:" 0 1 (:unicode "๐Ÿš‡")) #(":light_rail:" 0 1 (:unicode "๐Ÿšˆ")) #(":station:" 0 1 (:unicode "๐Ÿš‰")) #(":tram:" 0 1 (:unicode "๐ŸšŠ")) #(":bus:" 0 1 (:unicode "๐ŸšŒ")) #(":oncoming_bus:" 0 1 (:unicode "๐Ÿš")) #(":trolleybus:" 0 1 (:unicode "๐ŸšŽ")) #(":minibus:" 0 1 (:unicode "๐Ÿš")) #(":ambulance:" 0 1 (:unicode "๐Ÿš‘")) #(":fire_engine:" 0 1 (:unicode "๐Ÿš’")) #(":police_car:" 0 1 (:unicode "๐Ÿš“")) #(":oncoming_police_car:" 0 1 (:unicode "๐Ÿš”")) #(":rotating_light:" 0 1 (:unicode "๐Ÿšจ")) #(":taxi:" 0 1 (:unicode "๐Ÿš•")) #(":oncoming_taxi:" 0 1 (:unicode "๐Ÿš–")) #(":red_car:" 0 1 (:unicode "๐Ÿš—")) #(":oncoming_automobile:" 0 1 (:unicode "๐Ÿš˜")) #(":blue_car:" 0 1 (:unicode "๐Ÿš™")) #(":truck:" 0 1 (:unicode "๐Ÿšš")) #(":articulated_lorry:" 0 1 (:unicode "๐Ÿš›")) #(":tractor:" 0 1 (:unicode "๐Ÿšœ")) #(":bike:" 0 1 (:unicode "๐Ÿšฒ")) #(":busstop:" 0 1 (:unicode "๐Ÿš")) #(":fuelpump:" 0 1 (:unicode "โ›ฝ")) #(":construction:" 0 1 (:unicode "๐Ÿšง")) #(":vertical_traffic_light:" 0 1 (:unicode "๐Ÿšฆ")) #(":traffic_light:" 0 1 (:unicode "๐Ÿšฅ")) #(":rocket:" 0 1 (:unicode "๐Ÿš€")) #(":helicopter:" 0 1 (:unicode "๐Ÿš")) #(":airplane:" 0 1 (:unicode "โœˆ๏ธ")) #(":seat:" 0 1 (:unicode "๐Ÿ’บ")) #(":anchor:" 0 1 (:unicode "โš“")) #(":ship:" 0 1 (:unicode "๐Ÿšข")) #(":speedboat:" 0 1 (:unicode "๐Ÿšค")) #(":sailboat:" 0 1 (:unicode "โ›ต")) #(":aerial_tramway:" 0 1 (:unicode "๐Ÿšก")) #(":mountain_cableway:" 0 1 (:unicode "๐Ÿš ")) #(":suspension_railway:" 0 1 (:unicode "๐ŸšŸ")) #(":passport_control:" 0 1 (:unicode "๐Ÿ›‚")) #(":customs:" 0 1 (:unicode "๐Ÿ›ƒ")) #(":baggage_claim:" 0 1 (:unicode "๐Ÿ›„")) #(":left_luggage:" 0 1 (:unicode "๐Ÿ›…")) #(":yen:" 0 1 (:unicode "๐Ÿ’ด")) #(":euro:" 0 1 (:unicode "๐Ÿ’ถ")) #(":pound:" 0 1 (:unicode "๐Ÿ’ท")) #(":dollar:" 0 1 (:unicode "๐Ÿ’ต")) #(":statue_of_liberty:" 0 1 (:unicode "๐Ÿ—ฝ")) #(":moyai:" 0 1 (:unicode "๐Ÿ—ฟ")) #(":foggy:" 0 1 (:unicode "๐ŸŒ")) #(":tokyo_tower:" 0 1 (:unicode "๐Ÿ—ผ")) #(":fountain:" 0 1 (:unicode "โ›ฒ")) #(":european_castle:" 0 1 (:unicode "๐Ÿฐ")) #(":japanese_castle:" 0 1 (:unicode "๐Ÿฏ")) #(":city_sunrise:" 0 1 (:unicode "๐ŸŒ‡")) #(":city_sunset:" 0 1 (:unicode "๐ŸŒ†")) #(":stars:" 0 1 (:unicode "๐ŸŒƒ")) #(":bridge_at_night:" 0 1 (:unicode "๐ŸŒ‰")) #(":house:" 0 1 (:unicode "๐Ÿ ")) #(":house_with_garden:" 0 1 (:unicode "๐Ÿก")) #(":office:" 0 1 (:unicode "๐Ÿข")) #(":department_store:" 0 1 (:unicode "๐Ÿฌ")) #(":factory:" 0 1 (:unicode "๐Ÿญ")) #(":post_office:" 0 1 (:unicode "๐Ÿฃ")) #(":european_post_office:" 0 1 (:unicode "๐Ÿค")) #(":hospital:" 0 1 (:unicode "๐Ÿฅ")) #(":bank:" 0 1 (:unicode "๐Ÿฆ")) #(":hotel:" 0 1 (:unicode "๐Ÿจ")) #(":love_hotel:" 0 1 (:unicode "๐Ÿฉ")) #(":wedding:" 0 1 (:unicode "๐Ÿ’’")) #(":church:" 0 1 (:unicode "โ›ช")) #(":convenience_store:" 0 1 (:unicode "๐Ÿช")) #(":school:" 0 1 (:unicode "๐Ÿซ")) #(":flag-au:" 0 1 (:unicode "๐Ÿ‡ฆ๐Ÿ‡บ")) #(":flag-at:" 0 1 (:unicode "๐Ÿ‡ฆ๐Ÿ‡น")) #(":flag-be:" 0 1 (:unicode "๐Ÿ‡ง๐Ÿ‡ช")) #(":flag-br:" 0 1 (:unicode "๐Ÿ‡ง๐Ÿ‡ท")) #(":flag-ca:" 0 1 (:unicode "๐Ÿ‡จ๐Ÿ‡ฆ")) #(":flag-cl:" 0 1 (:unicode "๐Ÿ‡จ๐Ÿ‡ฑ")) #(":flag-cn:" 0 1 (:unicode "๐Ÿ‡จ๐Ÿ‡ณ")) #(":flag-co:" 0 1 (:unicode "๐Ÿ‡จ๐Ÿ‡ด")) #(":flag-dk:" 0 1 (:unicode "๐Ÿ‡ฉ๐Ÿ‡ฐ")) #(":flag-fi:" 0 1 (:unicode "๐Ÿ‡ซ๐Ÿ‡ฎ")) #(":flag-fr:" 0 1 (:unicode "๐Ÿ‡ซ๐Ÿ‡ท")) #(":flag-de:" 0 1 (:unicode "๐Ÿ‡ฉ๐Ÿ‡ช")) #(":flag-hk:" 0 1 (:unicode "๐Ÿ‡ญ๐Ÿ‡ฐ")) #(":flag-in:" 0 1 (:unicode "๐Ÿ‡ฎ๐Ÿ‡ณ")) #(":flag-id:" 0 1 (:unicode "๐Ÿ‡ฎ๐Ÿ‡ฉ")) #(":flag-ie:" 0 1 (:unicode "๐Ÿ‡ฎ๐Ÿ‡ช")) #(":flag-il:" 0 1 (:unicode "๐Ÿ‡ฎ๐Ÿ‡ฑ")) #(":flag-it:" 0 1 (:unicode "๐Ÿ‡ฎ๐Ÿ‡น")) #(":flag-jp:" 0 1 (:unicode "๐Ÿ‡ฏ๐Ÿ‡ต")) #(":flag-kr:" 0 1 (:unicode "๐Ÿ‡ฐ๐Ÿ‡ท")) #(":flag-mo:" 0 1 (:unicode "๐Ÿ‡ฒ๐Ÿ‡ด")) #(":flag-my:" 0 1 (:unicode "๐Ÿ‡ฒ๐Ÿ‡พ")) #(":flag-mx:" 0 1 (:unicode "๐Ÿ‡ฒ๐Ÿ‡ฝ")) #(":flag-nl:" 0 1 (:unicode "๐Ÿ‡ณ๐Ÿ‡ฑ")) #(":flag-nz:" 0 1 (:unicode "๐Ÿ‡ณ๐Ÿ‡ฟ")) #(":flag-no:" 0 1 (:unicode "๐Ÿ‡ณ๐Ÿ‡ด")) #(":flag-ph:" 0 1 (:unicode "๐Ÿ‡ต๐Ÿ‡ญ")) #(":flag-pl:" 0 1 (:unicode "๐Ÿ‡ต๐Ÿ‡ฑ")) #(":flag-pt:" 0 1 (:unicode "๐Ÿ‡ต๐Ÿ‡น")) #(":flag-pr:" 0 1 (:unicode "๐Ÿ‡ต๐Ÿ‡ท")) #(":flag-ru:" 0 1 (:unicode "๐Ÿ‡ท๐Ÿ‡บ")) #(":flag-sa:" 0 1 (:unicode "๐Ÿ‡ธ๐Ÿ‡ฆ")) #(":flag-sg:" 0 1 (:unicode "๐Ÿ‡ธ๐Ÿ‡ฌ")) #(":flag-za:" 0 1 (:unicode "๐Ÿ‡ฟ๐Ÿ‡ฆ")) #(":flag-es:" 0 1 (:unicode "๐Ÿ‡ช๐Ÿ‡ธ")) #(":flag-se:" 0 1 (:unicode "๐Ÿ‡ธ๐Ÿ‡ช")) #(":flag-ch:" 0 1 (:unicode "๐Ÿ‡จ๐Ÿ‡ญ")) #(":flag-tr:" 0 1 (:unicode "๐Ÿ‡น๐Ÿ‡ท")) #(":flag-gb:" 0 1 (:unicode "๐Ÿ‡ฌ๐Ÿ‡ง")) #(":flag-us:" 0 1 (:unicode "๐Ÿ‡บ๐Ÿ‡ธ")) #(":flag-ae:" 0 1 (:unicode "๐Ÿ‡ฆ๐Ÿ‡ช")) #(":flag-vn:" 0 1 (:unicode "๐Ÿ‡ป๐Ÿ‡ณ")) #(":watch:" 0 1 (:unicode "โŒš")) #(":iphone:" 0 1 (:unicode "๐Ÿ“ฑ")) #(":calling:" 0 1 (:unicode "๐Ÿ“ฒ")) #(":computer:" 0 1 (:unicode "๐Ÿ’ป")) #(":alarm_clock:" 0 1 (:unicode "โฐ")) #(":hourglass_flowing_sand:" 0 1 (:unicode "โณ")) #(":hourglass:" 0 1 (:unicode "โŒ›")) #(":camera:" 0 1 (:unicode "๐Ÿ“ท")) #(":video_camera:" 0 1 (:unicode "๐Ÿ“น")) #(":movie_camera:" 0 1 (:unicode "๐ŸŽฅ")) #(":tv:" 0 1 (:unicode "๐Ÿ“บ")) #(":radio:" 0 1 (:unicode "๐Ÿ“ป")) #(":pager:" 0 1 (:unicode "๐Ÿ“Ÿ")) #(":telephone_receiver:" 0 1 (:unicode "๐Ÿ“ž")) #(":telephone:" 0 1 (:unicode "โ˜Ž๏ธ")) #(":fax:" 0 1 (:unicode "๐Ÿ“ ")) #(":minidisc:" 0 1 (:unicode "๐Ÿ’ฝ")) #(":floppy_disk:" 0 1 (:unicode "๐Ÿ’พ")) #(":cd:" 0 1 (:unicode "๐Ÿ’ฟ")) #(":dvd:" 0 1 (:unicode "๐Ÿ“€")) #(":vhs:" 0 1 (:unicode "๐Ÿ“ผ")) #(":battery:" 0 1 (:unicode "๐Ÿ”‹")) #(":electric_plug:" 0 1 (:unicode "๐Ÿ”Œ")) #(":bulb:" 0 1 (:unicode "๐Ÿ’ก")) #(":flashlight:" 0 1 (:unicode "๐Ÿ”ฆ")) #(":satellite:" 0 1 (:unicode "๐Ÿ“ก")) #(":credit_card:" 0 1 (:unicode "๐Ÿ’ณ")) #(":money_with_wings:" 0 1 (:unicode "๐Ÿ’ธ")) #(":moneybag:" 0 1 (:unicode "๐Ÿ’ฐ")) #(":gem:" 0 1 (:unicode "๐Ÿ’Ž")) #(":closed_umbrella:" 0 1 (:unicode "๐ŸŒ‚")) #(":pouch:" 0 1 (:unicode "๐Ÿ‘")) #(":purse:" 0 1 (:unicode "๐Ÿ‘›")) #(":handbag:" 0 1 (:unicode "๐Ÿ‘œ")) #(":briefcase:" 0 1 (:unicode "๐Ÿ’ผ")) #(":school_satchel:" 0 1 (:unicode "๐ŸŽ’")) #(":lipstick:" 0 1 (:unicode "๐Ÿ’„")) #(":eyeglasses:" 0 1 (:unicode "๐Ÿ‘“")) #(":womans_hat:" 0 1 (:unicode "๐Ÿ‘’")) #(":sandal:" 0 1 (:unicode "๐Ÿ‘ก")) #(":high_heel:" 0 1 (:unicode "๐Ÿ‘ ")) #(":boot:" 0 1 (:unicode "๐Ÿ‘ข")) #(":shoe:" 0 1 (:unicode "๐Ÿ‘ž")) #(":athletic_shoe:" 0 1 (:unicode "๐Ÿ‘Ÿ")) #(":bikini:" 0 1 (:unicode "๐Ÿ‘™")) #(":dress:" 0 1 (:unicode "๐Ÿ‘—")) #(":kimono:" 0 1 (:unicode "๐Ÿ‘˜")) #(":womans_clothes:" 0 1 (:unicode "๐Ÿ‘š")) #(":tshirt:" 0 1 (:unicode "๐Ÿ‘•")) #(":necktie:" 0 1 (:unicode "๐Ÿ‘”")) #(":jeans:" 0 1 (:unicode "๐Ÿ‘–")) #(":door:" 0 1 (:unicode "๐Ÿšช")) #(":shower:" 0 1 (:unicode "๐Ÿšฟ")) #(":bathtub:" 0 1 (:unicode "๐Ÿ›")) #(":toilet:" 0 1 (:unicode "๐Ÿšฝ")) #(":barber:" 0 1 (:unicode "๐Ÿ’ˆ")) #(":syringe:" 0 1 (:unicode "๐Ÿ’‰")) #(":pill:" 0 1 (:unicode "๐Ÿ’Š")) #(":microscope:" 0 1 (:unicode "๐Ÿ”ฌ")) #(":telescope:" 0 1 (:unicode "๐Ÿ”ญ")) #(":crystal_ball:" 0 1 (:unicode "๐Ÿ”ฎ")) #(":wrench:" 0 1 (:unicode "๐Ÿ”ง")) #(":hocho:" 0 1 (:unicode "๐Ÿ”ช")) #(":nut_and_bolt:" 0 1 (:unicode "๐Ÿ”ฉ")) #(":hammer:" 0 1 (:unicode "๐Ÿ”จ")) #(":bomb:" 0 1 (:unicode "๐Ÿ’ฃ")) #(":smoking:" 0 1 (:unicode "๐Ÿšฌ")) #(":gun:" 0 1 (:unicode "๐Ÿ”ซ")) #(":bookmark:" 0 1 (:unicode "๐Ÿ”–")) #(":newspaper:" 0 1 (:unicode "๐Ÿ“ฐ")) #(":key:" 0 1 (:unicode "๐Ÿ”‘")) #(":envelope:" 0 1 (:unicode "โœ‰๏ธ")) #(":envelope_with_arrow:" 0 1 (:unicode "๐Ÿ“ฉ")) #(":incoming_envelope:" 0 1 (:unicode "๐Ÿ“จ")) #(":e-mail:" 0 1 (:unicode "๐Ÿ“ง")) #(":inbox_tray:" 0 1 (:unicode "๐Ÿ“ฅ")) #(":outbox_tray:" 0 1 (:unicode "๐Ÿ“ค")) #(":package:" 0 1 (:unicode "๐Ÿ“ฆ")) #(":postal_horn:" 0 1 (:unicode "๐Ÿ“ฏ")) #(":postbox:" 0 1 (:unicode "๐Ÿ“ฎ")) #(":mailbox_closed:" 0 1 (:unicode "๐Ÿ“ช")) #(":mailbox:" 0 1 (:unicode "๐Ÿ“ซ")) #(":mailbox_with_mail:" 0 1 (:unicode "๐Ÿ“ฌ")) #(":mailbox_with_no_mail:" 0 1 (:unicode "๐Ÿ“ญ")) #(":page_facing_up:" 0 1 (:unicode "๐Ÿ“„")) #(":page_with_curl:" 0 1 (:unicode "๐Ÿ“ƒ")) #(":bookmark_tabs:" 0 1 (:unicode "๐Ÿ“‘")) #(":chart_with_upwards_trend:" 0 1 (:unicode "๐Ÿ“ˆ")) #(":chart_with_downwards_trend:" 0 1 (:unicode "๐Ÿ“‰")) #(":bar_chart:" 0 1 (:unicode "๐Ÿ“Š")) #(":date:" 0 1 (:unicode "๐Ÿ“…")) #(":calendar:" 0 1 (:unicode "๐Ÿ“†")) #(":low_brightness:" 0 1 (:unicode "๐Ÿ”…")) #(":high_brightness:" 0 1 (:unicode "๐Ÿ”†")) #(":scroll:" 0 1 (:unicode "๐Ÿ“œ")) #(":clipboard:" 0 1 (:unicode "๐Ÿ“‹")) #(":open_book:" 0 1 (:unicode "๐Ÿ“–")) #(":notebook:" 0 1 (:unicode "๐Ÿ““")) #(":notebook_with_decorative_cover:" 0 1 (:unicode "๐Ÿ“”")) #(":ledger:" 0 1 (:unicode "๐Ÿ“’")) #(":closed_book:" 0 1 (:unicode "๐Ÿ“•")) #(":green_book:" 0 1 (:unicode "๐Ÿ“—")) #(":blue_book:" 0 1 (:unicode "๐Ÿ“˜")) #(":orange_book:" 0 1 (:unicode "๐Ÿ“™")) #(":books:" 0 1 (:unicode "๐Ÿ“š")) #(":card_index:" 0 1 (:unicode "๐Ÿ“‡")) #(":link:" 0 1 (:unicode "๐Ÿ”—")) #(":paperclip:" 0 1 (:unicode "๐Ÿ“Ž")) #(":pushpin:" 0 1 (:unicode "๐Ÿ“Œ")) #(":scissors:" 0 1 (:unicode "โœ‚๏ธ")) #(":triangular_ruler:" 0 1 (:unicode "๐Ÿ“")) #(":round_pushpin:" 0 1 (:unicode "๐Ÿ“")) #(":straight_ruler:" 0 1 (:unicode "๐Ÿ“")) #(":triangular_flag_on_post:" 0 1 (:unicode "๐Ÿšฉ")) #(":file_folder:" 0 1 (:unicode "๐Ÿ“")) #(":open_file_folder:" 0 1 (:unicode "๐Ÿ“‚")) #(":black_nib:" 0 1 (:unicode "โœ’๏ธ")) #(":pencil2:" 0 1 (:unicode "โœ๏ธ")) #(":pencil:" 0 1 (:unicode "๐Ÿ“")) #(":lock_with_ink_pen:" 0 1 (:unicode "๐Ÿ”")) #(":closed_lock_with_key:" 0 1 (:unicode "๐Ÿ”")) #(":lock:" 0 1 (:unicode "๐Ÿ”’")) #(":unlock:" 0 1 (:unicode "๐Ÿ”“")) #(":mega:" 0 1 (:unicode "๐Ÿ“ฃ")) #(":loudspeaker:" 0 1 (:unicode "๐Ÿ“ข")) #(":speakers:" 0 1 (:unicode "๐Ÿ”ˆ")) #(":quiet_speakers:" 0 1 (:unicode "๐Ÿ”‰")) #(":loud_speakers:" 0 1 (:unicode "๐Ÿ”Š")) #(":mute:" 0 1 (:unicode "๐Ÿ”‡")) #(":zzz:" 0 1 (:unicode "๐Ÿ’ค")) #(":bell:" 0 1 (:unicode "๐Ÿ””")) #(":no_bell:" 0 1 (:unicode "๐Ÿ”•")) #(":thought_balloon:" 0 1 (:unicode "๐Ÿ’ญ")) #(":speech_balloon:" 0 1 (:unicode "๐Ÿ’ฌ")) #(":children_crossing:" 0 1 (:unicode "๐Ÿšธ")) #(":mag:" 0 1 (:unicode "๐Ÿ”")) #(":mag_right:" 0 1 (:unicode "๐Ÿ”Ž")) #(":no_entry_sign:" 0 1 (:unicode "๐Ÿšซ")) #(":no_entry:" 0 1 (:unicode "โ›”")) #(":name_badge:" 0 1 (:unicode "๐Ÿ“›")) #(":no_pedestrians:" 0 1 (:unicode "๐Ÿšท")) #(":do_not_litter:" 0 1 (:unicode "๐Ÿšฏ")) #(":no_bicycles:" 0 1 (:unicode "๐Ÿšณ")) #(":non-potable_water:" 0 1 (:unicode "๐Ÿšฑ")) #(":no_mobile_phones:" 0 1 (:unicode "๐Ÿ“ต")) #(":underage:" 0 1 (:unicode "๐Ÿ”ž")) #(":accept:" 0 1 (:unicode "๐Ÿ‰‘")) #(":ideograph_advantage:" 0 1 (:unicode "๐Ÿ‰")) #(":white_flower:" 0 1 (:unicode "๐Ÿ’ฎ")) #(":secret:" 0 1 (:unicode "ใŠ™๏ธ")) #(":congratulations:" 0 1 (:unicode "ใŠ—๏ธ")) #(":u5408:" 0 1 (:unicode "๐Ÿˆด")) #(":u6e80:" 0 1 (:unicode "๐Ÿˆต")) #(":u7981:" 0 1 (:unicode "๐Ÿˆฒ")) #(":u6709:" 0 1 (:unicode "๐Ÿˆถ")) #(":u7121:" 0 1 (:unicode "๐Ÿˆš")) #(":u7533:" 0 1 (:unicode "๐Ÿˆธ")) #(":u55b6:" 0 1 (:unicode "๐Ÿˆบ")) #(":u6708:" 0 1 (:unicode "๐Ÿˆท")) #(":u5272:" 0 1 (:unicode "๐Ÿˆน")) #(":u7a7a:" 0 1 (:unicode "๐Ÿˆณ")) #(":sa:" 0 1 (:unicode "๐Ÿˆ‚")) #(":koko:" 0 1 (:unicode "๐Ÿˆ")) #(":u6307:" 0 1 (:unicode "๐Ÿˆฏ")) #(":chart:" 0 1 (:unicode "๐Ÿ’น")) #(":sparkle:" 0 1 (:unicode "โ‡๏ธ")) #(":eight_spoked_asterisk:" 0 1 (:unicode "โœณ๏ธ")) #(":negative_squared_cross_mark:" 0 1 (:unicode "โŽ")) #(":white_check_mark:" 0 1 (:unicode "โœ…")) #(":eight_pointed_black_star:" 0 1 (:unicode "โœด๏ธ")) #(":vibration_mode:" 0 1 (:unicode "๐Ÿ“ณ")) #(":mobile_phone_off:" 0 1 (:unicode "๐Ÿ“ด")) #(":vs:" 0 1 (:unicode "๐Ÿ†š")) #(":a:" 0 1 (:unicode "๐Ÿ…ฐ")) #(":b:" 0 1 (:unicode "๐Ÿ…ฑ")) #(":ab:" 0 1 (:unicode "๐Ÿ†Ž")) #(":cl:" 0 1 (:unicode "๐Ÿ†‘")) #(":o2:" 0 1 (:unicode "๐Ÿ…พ")) #(":sos:" 0 1 (:unicode "๐Ÿ†˜")) #(":id:" 0 1 (:unicode "๐Ÿ†”")) #(":parking:" 0 1 (:unicode "๐Ÿ…ฟ")) #(":wc:" 0 1 (:unicode "๐Ÿšพ")) #(":cool:" 0 1 (:unicode "๐Ÿ†’")) #(":free:" 0 1 (:unicode "๐Ÿ†“")) #(":new:" 0 1 (:unicode "๐Ÿ†•")) #(":ng:" 0 1 (:unicode "๐Ÿ†–")) #(":ok:" 0 1 (:unicode "๐Ÿ†—")) #(":up:" 0 1 (:unicode "๐Ÿ†™")) #(":atm:" 0 1 (:unicode "๐Ÿง")) #(":aries:" 0 1 (:unicode "โ™ˆ")) #(":taurus:" 0 1 (:unicode "โ™‰")) #(":gemini:" 0 1 (:unicode "โ™Š")) #(":cancer:" 0 1 (:unicode "โ™‹")) #(":leo:" 0 1 (:unicode "โ™Œ")) #(":virgo:" 0 1 (:unicode "โ™")) #(":libra:" 0 1 (:unicode "โ™Ž")) #(":scorpius:" 0 1 (:unicode "โ™")) #(":sagittarius:" 0 1 (:unicode "โ™")) #(":capricorn:" 0 1 (:unicode "โ™‘")) #(":aquarius:" 0 1 (:unicode "โ™’")) #(":pisces:" 0 1 (:unicode "โ™“")) #(":restroom:" 0 1 (:unicode "๐Ÿšป")) #(":mens:" 0 1 (:unicode "๐Ÿšน")) #(":womens:" 0 1 (:unicode "๐Ÿšบ")) #(":baby_symbol:" 0 1 (:unicode "๐Ÿšผ")) #(":wheelchair:" 0 1 (:unicode "โ™ฟ")) #(":potable_water:" 0 1 (:unicode "๐Ÿšฐ")) #(":no_smoking:" 0 1 (:unicode "๐Ÿšญ")) #(":put_litter_in_its_place:" 0 1 (:unicode "๐Ÿšฎ")) #(":arrow_forward:" 0 1 (:unicode "โ–ถ๏ธ")) #(":arrow_backward:" 0 1 (:unicode "โ—€๏ธ")) #(":arrow_up_small:" 0 1 (:unicode "๐Ÿ”ผ")) #(":arrow_down_small:" 0 1 (:unicode "๐Ÿ”ฝ")) #(":fast_forward:" 0 1 (:unicode "โฉ")) #(":rewind:" 0 1 (:unicode "โช")) #(":arrow_double_up:" 0 1 (:unicode "โซ")) #(":arrow_double_down:" 0 1 (:unicode "โฌ")) #(":arrow_right:" 0 1 (:unicode "โžก๏ธ")) #(":arrow_left:" 0 1 (:unicode "โฌ…๏ธ")) #(":arrow_up:" 0 1 (:unicode "โฌ†๏ธ")) #(":arrow_down:" 0 1 (:unicode "โฌ‡๏ธ")) #(":arrow_upper_right:" 0 1 (:unicode "โ†—๏ธ")) #(":arrow_lower_right:" 0 1 (:unicode "โ†˜๏ธ")) #(":arrow_lower_left:" 0 1 (:unicode "โ†™๏ธ")) #(":arrow_upper_left:" 0 1 (:unicode "โ†–๏ธ")) #(":arrow_up_down:" 0 1 (:unicode "โ†•๏ธ")) #(":left_right_arrow:" 0 1 (:unicode "โ†”๏ธ")) #(":arrows_counterclockwise:" 0 1 (:unicode "๐Ÿ”„")) #(":arrow_right_hook:" 0 1 (:unicode "โ†ช๏ธ")) #(":leftwards_arrow_with_hook:" 0 1 (:unicode "โ†ฉ๏ธ")) #(":arrow_heading_up:" 0 1 (:unicode "โคด๏ธ")) #(":arrow_heading_down:" 0 1 (:unicode "โคต๏ธ")) #(":twisted_rightwards_arrows:" 0 1 (:unicode "๐Ÿ”€")) #(":repeat:" 0 1 (:unicode "๐Ÿ”")) #(":repeat_one:" 0 1 (:unicode "๐Ÿ”‚")) #(":hashtag:" 0 1 (:unicode "#๏ธโƒฃ")) #(":keycap_zero:" 0 1 (:unicode "0๏ธโƒฃ")) #(":keycap_one:" 0 1 (:unicode "1๏ธโƒฃ")) #(":keycap_two:" 0 1 (:unicode "2๏ธโƒฃ")) #(":keycap_three:" 0 1 (:unicode "3๏ธโƒฃ")) #(":keycap_four:" 0 1 (:unicode "4๏ธโƒฃ")) #(":keycap_five:" 0 1 (:unicode "5๏ธโƒฃ")) #(":keycap_six:" 0 1 (:unicode "6๏ธโƒฃ")) #(":keycap_seven:" 0 1 (:unicode "7๏ธโƒฃ")) #(":keycap_eight:" 0 1 (:unicode "8๏ธโƒฃ")) #(":keycap_nine:" 0 1 (:unicode "9๏ธโƒฃ")) #(":keycap_ten:" 0 1 (:unicode "๐Ÿ”Ÿ")) #(":1234:" 0 1 (:unicode "๐Ÿ”ข")) #(":abc:" 0 1 (:unicode "๐Ÿ”ค")) #(":abcd:" 0 1 (:unicode "๐Ÿ”ก")) #(":capital_abcd:" 0 1 (:unicode "๐Ÿ” ")) #(":information_source:" 0 1 (:unicode "โ„น๏ธ")) #(":signal_strength:" 0 1 (:unicode "๐Ÿ“ถ")) #(":cinema:" 0 1 (:unicode "๐ŸŽฆ")) #(":symbols:" 0 1 (:unicode "๐Ÿ”ฃ")) #(":heavy_plus_sign:" 0 1 (:unicode "โž•")) #(":heavy_minus_sign:" 0 1 (:unicode "โž–")) #(":wavy_dash:" 0 1 (:unicode "ใ€ฐ")) #(":heavy_division_sign:" 0 1 (:unicode "โž—")) #(":heavy_multiplication_x:" 0 1 (:unicode "โœ–๏ธ")) #(":heavy_check_mark:" 0 1 (:unicode "โœ”๏ธ")) #(":arrows_clockwise:" 0 1 (:unicode "๐Ÿ”ƒ")) #(":trademark:" 0 1 (:unicode "โ„ข")) #(":copyright:" 0 1 (:unicode "ยฉ")) #(":registered:" 0 1 (:unicode "ยฎ")) #(":currency_exchange:" 0 1 (:unicode "๐Ÿ’ฑ")) #(":heavy_dollar_sign:" 0 1 (:unicode "๐Ÿ’ฒ")) #(":curly_loop:" 0 1 (:unicode "โžฐ")) #(":loop:" 0 1 (:unicode "โžฟ")) #(":part_alternation_mark:" 0 1 (:unicode "ใ€ฝ๏ธ")) #(":heavy_exclamation_mark:" 0 1 (:unicode "โ—")) #(":question:" 0 1 (:unicode "โ“")) #(":grey_exclamation:" 0 1 (:unicode "โ•")) #(":grey_question:" 0 1 (:unicode "โ”")) #(":double_exclamation_mark:" 0 1 (:unicode "โ€ผ๏ธ")) #(":interrobang:" 0 1 (:unicode "โ‰๏ธ")) #("๏ธ:x:" 0 1 (:unicode "๏ธโŒ")) #(":o:" 0 1 (:unicode "โญ•")) #(":100:" 0 1 (:unicode "๐Ÿ’ฏ")) #(":end:" 0 1 (:unicode "๐Ÿ”š")) #(":back:" 0 1 (:unicode "๐Ÿ”™")) #(":on:" 0 1 (:unicode "๐Ÿ”›")) #(":top:" 0 1 (:unicode "๐Ÿ”")) #(":soon:" 0 1 (:unicode "๐Ÿ”œ")) #(":cyclone:" 0 1 (:unicode "๐ŸŒ€")) #(":m:" 0 1 (:unicode "โ“‚๏ธ")) #(":ophiuchus:" 0 1 (:unicode "โ›Ž")) #(":six_pointed_star:" 0 1 (:unicode "๐Ÿ”ฏ")) #(":beginner:" 0 1 (:unicode "๐Ÿ”ฐ")) #(":trident:" 0 1 (:unicode "๐Ÿ”ฑ")) #(":warning:" 0 1 (:unicode "โš ๏ธ")) #(":hotsprings:" 0 1 (:unicode "โ™จ๏ธ")) #(":recycle:" 0 1 (:unicode "โ™ป๏ธ")) #(":anger:" 0 1 (:unicode "๐Ÿ’ข")) #(":diamond_shape_with_a_dot_inside:" 0 1 (:unicode "๐Ÿ’ ")) #(":spades:" 0 1 (:unicode "โ™ ๏ธ")) #(":clubs:" 0 1 (:unicode "โ™ฃ๏ธ")) #(":hearts:" 0 1 (:unicode "โ™ฅ๏ธ")) #(":diamonds:" 0 1 (:unicode "โ™ฆ๏ธ")) #(":ballot_box_with_check:" 0 1 (:unicode "โ˜‘๏ธ")) #(":white_circle:" 0 1 (:unicode "โšช")) #(":black_circle:" 0 1 (:unicode "โšซ")) #(":radio_button:" 0 1 (:unicode "๐Ÿ”˜")) #(":red_circle:" 0 1 (:unicode "๐Ÿ”ด")) #(":large_blue_circle:" 0 1 (:unicode "๐Ÿ”ต")) #(":small_red_triangle:" 0 1 (:unicode "๐Ÿ”บ")) #(":small_red_triangle_down:" 0 1 (:unicode "๐Ÿ”ป")) #(":small_orange_diamond:" 0 1 (:unicode "๐Ÿ”ธ")) #(":small_blue_diamond:" 0 1 (:unicode "๐Ÿ”น")) #(":large_orange_diamond:" 0 1 (:unicode "๐Ÿ”ถ")) #(":large_blue_diamond:" 0 1 (:unicode "๐Ÿ”ท")) #(":black_small_square:" 0 1 (:unicode "โ–ช๏ธ")) #(":white_small_square:" 0 1 (:unicode "โ–ซ๏ธ")) #(":black_large_square:" 0 1 (:unicode "โฌ›๏ธ")) #(":white_large_square:" 0 1 (:unicode "โฌœ๏ธ")) #(":black_medium_square:" 0 1 (:unicode "โ—ผ๏ธ")) #(":white_medium_square:" 0 1 (:unicode "โ—ป๏ธ")) #(":black_medium_small_square:" 0 1 (:unicode "โ—พ๏ธ")) #(":white_medium_small_square:" 0 1 (:unicode "โ—ฝ๏ธ")) #(":black_square_button:" 0 1 (:unicode "๐Ÿ”ฒ")) #(":white_square_button:" 0 1 (:unicode "๐Ÿ”ณ")) #(":clock1:" 0 1 (:unicode "๐Ÿ•")) #(":clock2:" 0 1 (:unicode "๐Ÿ•‘")) #(":clock3:" 0 1 (:unicode "๐Ÿ•’")) #(":clock4:" 0 1 (:unicode "๐Ÿ•“")) #(":clock5:" 0 1 (:unicode "๐Ÿ•”")) #(":clock6:" 0 1 (:unicode "๐Ÿ••")) #(":clock7:" 0 1 (:unicode "๐Ÿ•–")) #(":clock8:" 0 1 (:unicode "๐Ÿ•—")) #(":clock9:" 0 1 (:unicode "๐Ÿ•˜")) #(":clock10:" 0 1 (:unicode "๐Ÿ•™")) #(":clock11:" 0 1 (:unicode "๐Ÿ•š")) #(":clock12:" 0 1 (:unicode "๐Ÿ•›")) #(":clock130:" 0 1 (:unicode "๐Ÿ•œ")) #(":clock230:" 0 1 (:unicode "๐Ÿ•")) #(":clock330:" 0 1 (:unicode "๐Ÿ•ž")) #(":clock430:" 0 1 (:unicode "๐Ÿ•Ÿ")) #(":clock530:" 0 1 (:unicode "๐Ÿ• ")) #(":clock630:" 0 1 (:unicode "๐Ÿ•ก")) #(":clock730:" 0 1 (:unicode "๐Ÿ•ข")) #(":clock830:" 0 1 (:unicode "๐Ÿ•ฃ")) #(":clock930:" 0 1 (:unicode "๐Ÿ•ค")) #(":clock1030:" 0 1 (:unicode "๐Ÿ•ฅ")) #(":clock1130:" 0 1 (:unicode "๐Ÿ•ฆ")) #(":clock1230:" 0 1 (:unicode "๐Ÿ•ง")) #(":skin-tone-1:" 0 1 (:unicode "๐Ÿฟ")) #(":skin-tone-2:" 0 1 (:unicode "๐Ÿพ")) #(":skin-tone-3:" 0 1 (:unicode "๐Ÿฝ")) #(":skin-tone-4:" 0 1 (:unicode "๐Ÿผ")) #(":skin-tone-5:" 0 1 (:unicode "๐Ÿป")) #(":slightly-smiling-face:" 0 1 (:unicode "๐Ÿ™‚")) #(":hugging-face:" 0 1 (:unicode "๐Ÿค—")) #(":thinking-face:" 0 1 (:unicode "๐Ÿค”")) #(":face-with-rolling-eyes:" 0 1 (:unicode "๐Ÿ™„")) #(":zipper-mouth-face:" 0 1 (:unicode "๐Ÿค")) #(":nerd-face:" 0 1 (:unicode "๐Ÿค“")) #(":white-frowning-face:" 0 1 (:unicode "โ˜น๏ธ")) #(":slightly-frowning-face:" 0 1 (:unicode "๐Ÿ™")) #(":upside-down-face:" 0 1 (:unicode "๐Ÿ™ƒ")) #(":face-with-thermometer:" 0 1 (:unicode "๐Ÿค’")) #(":face-with-head-bandage:" 0 1 (:unicode "๐Ÿค•")) #(":money-mouth-face:" 0 1 (:unicode "๐Ÿค‘")) #(":helmet-with-white-cross:" 0 1 (:unicode "โ›‘")) #(":sleuth-or-spy:" 0 1 (:unicode "๐Ÿ•ต")) #(":speaking-head-in-silhouette:" 0 1 (:unicode "๐Ÿ—ฃ")) #(":man-in-business-suit-levitating:" 0 1 (:unicode "๐Ÿ•ด")) #(":reversed-hand-with-middle-finger-extended:" 0 1 (:unicode "๐Ÿ–•")) #(":sign-of-the-horns:" 0 1 (:unicode "๐Ÿค˜")) #(":raised-hand-with-fingers-splayed:" 0 1 (:unicode "๐Ÿ–")) #(":writing-hand:" 0 1 (:unicode "โœ")) #(":eye:" 0 1 (:unicode "๐Ÿ‘")) #(":heavy-heart-exclamation-mark-ornament:" 0 1 (:unicode "โฃ")) #(":hole:" 0 1 (:unicode "๐Ÿ•ณ")) #(":right-anger-bubble:" 0 1 (:unicode "๐Ÿ—ฏ")) #(":dark-sunglasses:" 0 1 (:unicode "๐Ÿ•ถ")) #(":shopping-bags:" 0 1 (:unicode "๐Ÿ›")) #(":prayer-beads:" 0 1 (:unicode "๐Ÿ“ฟ")) #(":skull-and-crossbones:" 0 1 (:unicode "โ˜ ")) #(":robot-face:" 0 1 (:unicode "๐Ÿค–")) #(":lion-face:" 0 1 (:unicode "๐Ÿฆ")) #(":unicorn-face:" 0 1 (:unicode "๐Ÿฆ„")) #(":chipmunk:" 0 1 (:unicode "๐Ÿฟ")) #(":turkey:" 0 1 (:unicode "๐Ÿฆƒ")) #(":dove-of-peace:" 0 1 (:unicode "๐Ÿ•Š")) #(":crab:" 0 1 (:unicode "๐Ÿฆ€")) #(":spider:" 0 1 (:unicode "๐Ÿ•ท")) #(":spider-web:" 0 1 (:unicode "๐Ÿ•ธ")) #(":scorpion:" 0 1 (:unicode "๐Ÿฆ‚")) #(":rosette:" 0 1 (:unicode "๐Ÿต")) #(":shamrock:" 0 1 (:unicode "โ˜˜")) #(":hot-pepper:" 0 1 (:unicode "๐ŸŒถ")) #(":cheese-wedge:" 0 1 (:unicode "๐Ÿง€")) #(":hot-dog:" 0 1 (:unicode "๐ŸŒญ")) #(":taco:" 0 1 (:unicode "๐ŸŒฎ")) #(":burrito:" 0 1 (:unicode "๐ŸŒฏ")) #(":popcorn:" 0 1 (:unicode "๐Ÿฟ")) #(":bottle-with-popping-cork:" 0 1 (:unicode "๐Ÿพ")) #(":fork-and-knife-with-plate:" 0 1 (:unicode "๐Ÿฝ")) #(":amphora:" 0 1 (:unicode "๐Ÿบ")) #(":world-map:" 0 1 (:unicode "๐Ÿ—บ")) #(":snow-capped-mountain:" 0 1 (:unicode "๐Ÿ”")) #(":mountain:" 0 1 (:unicode "โ›ฐ")) #(":camping:" 0 1 (:unicode "๐Ÿ•")) #(":beach-with-umbrella:" 0 1 (:unicode "๐Ÿ–")) #(":desert:" 0 1 (:unicode "๐Ÿœ")) #(":desert-island:" 0 1 (:unicode "๐Ÿ")) #(":national-park:" 0 1 (:unicode "๐Ÿž")) #(":stadium:" 0 1 (:unicode "๐ŸŸ")) #(":classical-building:" 0 1 (:unicode "๐Ÿ›")) #(":building-construction:" 0 1 (:unicode "๐Ÿ—")) #(":house-buildings:" 0 1 (:unicode "๐Ÿ˜")) #(":cityscape:" 0 1 (:unicode "๐Ÿ™")) #(":derelict-house-building:" 0 1 (:unicode "๐Ÿš")) #(":place-of-worship:" 0 1 (:unicode "๐Ÿ›")) #(":kaaba:" 0 1 (:unicode "๐Ÿ•‹")) #(":mosque:" 0 1 (:unicode "๐Ÿ•Œ")) #(":synagogue:" 0 1 (:unicode "๐Ÿ•")) #(":frame-with-picture:" 0 1 (:unicode "๐Ÿ–ผ")) #(":oil-drum:" 0 1 (:unicode "๐Ÿ›ข")) #(":motorway:" 0 1 (:unicode "๐Ÿ›ฃ")) #(":railway-track:" 0 1 (:unicode "๐Ÿ›ค")) #(":passenger-ship:" 0 1 (:unicode "๐Ÿ›ณ")) #(":ferry:" 0 1 (:unicode "โ›ด")) #(":motor-boat:" 0 1 (:unicode "๐Ÿ›ฅ")) #(":small-airplane:" 0 1 (:unicode "๐Ÿ›ฉ")) #(":airplane-departure:" 0 1 (:unicode "๐Ÿ›ซ")) #(":airplane-arriving:" 0 1 (:unicode "๐Ÿ›ฌ")) #(":satellite:" 0 1 (:unicode "๐Ÿ›ฐ")) #(":bellhop-bell:" 0 1 (:unicode "๐Ÿ›Ž")) #(":sleeping-accommodation:" 0 1 (:unicode "๐Ÿ›Œ")) #(":bed:" 0 1 (:unicode "๐Ÿ›")) #(":couch-and-lamp:" 0 1 (:unicode "๐Ÿ›‹")) #(":stopwatch:" 0 1 (:unicode "โฑ")) #(":timer-clock:" 0 1 (:unicode "โฒ")) #(":mantelpiece-clock:" 0 1 (:unicode "๐Ÿ•ฐ")) #(":thermometer:" 0 1 (:unicode "๐ŸŒก")) #(":thunder-cloud-and-rain:" 0 1 (:unicode "โ›ˆ")) #(":white-sun-with-small-cloud:" 0 1 (:unicode "๐ŸŒค")) #(":white-sun-behind-cloud:" 0 1 (:unicode "๐ŸŒฅ")) #(":white-sun-behind-cloud-with-rain:" 0 1 (:unicode "๐ŸŒฆ")) #(":cloud-with-rain:" 0 1 (:unicode "๐ŸŒง")) #(":cloud-with-snow:" 0 1 (:unicode "๐ŸŒจ")) #(":cloud-with-lightning:" 0 1 (:unicode "๐ŸŒฉ")) #(":cloud-with-tornado:" 0 1 (:unicode "๐ŸŒช")) #(":fog:" 0 1 (:unicode "๐ŸŒซ")) #(":wind-blowing-face:" 0 1 (:unicode "๐ŸŒฌ")) #(":umbrella:" 0 1 (:unicode "โ˜‚")) #(":umbrella-on-ground:" 0 1 (:unicode "โ›ฑ")) #(":snowman:" 0 1 (:unicode "โ˜ƒ")) #(":comet:" 0 1 (:unicode "โ˜„")) #(":menorah-with-nine-branches:" 0 1 (:unicode "๐Ÿ•Ž")) #(":military-medal:" 0 1 (:unicode "๐ŸŽ–")) #(":reminder-ribbon:" 0 1 (:unicode "๐ŸŽ—")) #(":film-frames:" 0 1 (:unicode "๐ŸŽž")) #(":admission-tickets:" 0 1 (:unicode "๐ŸŽŸ")) #(":label:" 0 1 (:unicode "๐Ÿท")) #(":golfer:" 0 1 (:unicode "๐ŸŒ")) #(":ice-skate:" 0 1 (:unicode "โ›ธ")) #(":skier:" 0 1 (:unicode "โ›ท")) #(":person-with-ball:" 0 1 (:unicode "โ›น")) #(":weight-lifter:" 0 1 (:unicode "๐Ÿ‹")) #(":racing-car:" 0 1 (:unicode "๐ŸŽ")) #(":racing-motorcycle:" 0 1 (:unicode "๐Ÿ")) #(":sports-medal:" 0 1 (:unicode "๐Ÿ…")) #(":cricket-bat-and-ball:" 0 1 (:unicode "๐Ÿ")) #(":volleyball:" 0 1 (:unicode "๐Ÿ")) #(":field-hockey-stick-and-ball:" 0 1 (:unicode "๐Ÿ‘")) #(":ice-hockey-stick-and-puck:" 0 1 (:unicode "๐Ÿ’")) #(":table-tennis-paddle-and-ball:" 0 1 (:unicode "๐Ÿ“")) #(":badminton-racquet-and-shuttlecock:" 0 1 (:unicode "๐Ÿธ")) #(":joystick:" 0 1 (:unicode "๐Ÿ•น")) #(":black-right-pointing-double-triangle-with-vertical-bar:" 0 1 (:unicode "โญ")) #(":black-right-pointing-triangle-with-double-vertical-bar:" 0 1 (:unicode "โฏ")) #(":black-left-pointing-double-triangle-with-vertical-bar:" 0 1 (:unicode "โฎ")) #(":double-vertical-bar:" 0 1 (:unicode "โธ")) #(":black-square-for-stop:" 0 1 (:unicode "โน")) #(":black-circle-for-record:" 0 1 (:unicode "โบ")) #(":studio-microphone:" 0 1 (:unicode "๐ŸŽ™")) #(":level-slider:" 0 1 (:unicode "๐ŸŽš")) #(":control-knobs:" 0 1 (:unicode "๐ŸŽ›")) #(":keycap-asterisk" 0 1 (:unicode "*โƒฃ")) #(":desktop-computer:" 0 1 (:unicode "๐Ÿ–ฅ")) #(":printer:" 0 1 (:unicode "๐Ÿ–จ")) #(":keyboard:" 0 1 (:unicode "โŒจ")) #(":three-button-mouse:" 0 1 (:unicode "๐Ÿ–ฑ")) #(":trackball:" 0 1 (:unicode "๐Ÿ–ฒ")) #(":film-projector:" 0 1 (:unicode "๐Ÿ“ฝ")) #(":camera-with-flash:" 0 1 (:unicode "๐Ÿ“ธ")) #(":candle:" 0 1 (:unicode "๐Ÿ•ฏ")) #(":rolled-up-newspaper:" 0 1 (:unicode "๐Ÿ—ž")) #(":ballot-box-with-ballot:" 0 1 (:unicode "๐Ÿ—ณ")) #(":lower-left-fountain-pen:" 0 1 (:unicode "๐Ÿ–‹")) #(":lower-left-ballpoint-pen:" 0 1 (:unicode "๐Ÿ–Š")) #(":lower-left-paintbrush:" 0 1 (:unicode "๐Ÿ–Œ")) #(":lower-left-crayon:" 0 1 (:unicode "๐Ÿ–")) #(":card-index-dividers:" 0 1 (:unicode "๐Ÿ—‚")) #(":spiral-note-pad:" 0 1 (:unicode "๐Ÿ—’")) #(":spiral-calendar-pad:" 0 1 (:unicode "๐Ÿ—“")) #(":linked-paperclips:" 0 1 (:unicode "๐Ÿ–‡")) #(":card-file-box:" 0 1 (:unicode "๐Ÿ—ƒ")) #(":file-cabinet:" 0 1 (:unicode "๐Ÿ—„")) #(":wastebasket:" 0 1 (:unicode "๐Ÿ—‘")) #(":old-key:" 0 1 (:unicode "๐Ÿ—")) #(":pick:" 0 1 (:unicode "โ›")) #(":hammer-and-pick:" 0 1 (:unicode "โš’")) #(":hammer-and-wrench:" 0 1 (:unicode "๐Ÿ› ")) #(":gear:" 0 1 (:unicode "โš™")) #(":compression:" 0 1 (:unicode "๐Ÿ—œ")) #(":alembic:" 0 1 (:unicode "โš—")) #(":scales:" 0 1 (:unicode "โš–")) #(":chains:" 0 1 (:unicode "โ›“")) #(":dagger-knife:" 0 1 (:unicode "๐Ÿ—ก")) #(":crossed-swords:" 0 1 (:unicode "โš”")) #(":shield:" 0 1 (:unicode "๐Ÿ›ก")) #(":bow-and-arrow:" 0 1 (:unicode "๐Ÿน")) #(":coffin:" 0 1 (:unicode "โšฐ")) #(":funeral-urn:" 0 1 (:unicode "โšฑ")) #(":waving-white-flag:" 0 1 (:unicode "๐Ÿณ")) #(":waving-black-flag:" 0 1 (:unicode "๐Ÿด")) #(":fleur-de-lis:" 0 1 (:unicode "โšœ")) #(":atom-symbol:" 0 1 (:unicode "โš›")) #(":om-symbol:" 0 1 (:unicode "๐Ÿ•‰")) #(":star-of-david:" 0 1 (:unicode "โœก")) #(":wheel-of-dharma:" 0 1 (:unicode "โ˜ธ")) #(":yin-yang:" 0 1 (:unicode "โ˜ฏ")) #(":latin-cross:" 0 1 (:unicode "โœ")) #(":orthodox-cross:" 0 1 (:unicode "โ˜ฆ")) #(":shinto-shrine:" 0 1 (:unicode "โ›ฉ")) #(":star-and-crescent:" 0 1 (:unicode "โ˜ช")) #(":peace-symbol:" 0 1 (:unicode "โ˜ฎ")) #(":radioactive-sign:" 0 1 (:unicode "โ˜ข")) #(":biohazard-sign:" 0 1 (:unicode "โ˜ฃ")) #(":eye-in-speech-bubble:" 0 1 (:unicode "๐Ÿ‘โ€๐Ÿ—จ")) #(":left-speech-bubble:" 0 1 (:unicode "๐Ÿ—จ")) ) ) (defun company-emoji--annotation (s) "Return a formatted annotation for completion candidate S." (format " %s" (get-text-property 0 :unicode s))) (defun company-emoji--add-aliases (aliases candidates) "Add the emoji ALIASES to the list of completion CANDIDATES and return the new list." (dolist (elem aliases candidates) ;; * `aliased` will be nil if the alias alist is somehow ;; malformedโ€”if there's no second element. ;; ;; * `emoji-string` will be nil if the current alias is invalidโ€”if ;; the shortcode that an alias has been assigned to does not ;; correspond to any emoji. For example, if you added (:kermit: ;; . ":toad:") to your list of custom aliases, that would be an ;; invalid assignment since :toad: is not a real shortcodeโ€”we ;; only have :frog:. As long as this is a valid alias, then ;; emoji-string is the propertized text that the alias points ;; to; something like #(":imp:" 0 1 (:unicode "๐Ÿ‘ฟ")) (let* ((aliased (cdr elem)) (emoji-string (car (member aliased candidates)))) (if (and aliased emoji-string) ;; * `new-item` is what will become a new propertized string ;; that we add to the list of completion candidates. It ;; starts its life as the string version of the current ;; alias; from (:man-woman-boy: . ":family:"), the string ;; assigned to `new-item` would be ":man-woman-boy:" ;; ;; * `unicode` is the unicode character to which we want our ;; alias to point; we retrieve it from `emoji-string`. (let ((new-item (symbol-name (car elem))) (unicode (get-text-property 0 :unicode emoji-string))) ;; Propertize the `new-item` string. The string returned ;; from `symbol-name` already seems to have some properties, ;; so overwrite them with `set-text-properties', instead of ;; simply adding a new property with `add-text-property'. (set-text-properties 0 1 (list ':unicode unicode) new-item) (setq candidates (cons new-item candidates))))))) ;;;###autoload (defun company-emoji (command &optional arg &rest ignored) "Provide a backend for company to complete emoji-words. company.el calls this function, and passes a COMMAND to it that depends on the context: 'prefix', 'candidates', 'annotation', etc. In some contexts it also passes ARG, which is the list of candidates that match what has been typed so far. Sometimes ARG is a single candidate, as when COMMAND is 'annotation' or 'post-completion'. Other arguments are IGNORED." ;; First, update the list of candidates by adding the custom ;; aliases: (let ((emoji-list (company-emoji--add-aliases company-emoji-aliases (company-emoji--create-list)))) (cl-case command ;; 'prefix' has too many meanings in emacs lisp but here we're ;; specifying what the string we're completing should begin with (prefix (company-grab "\:[a-zA-Z0-9-_]*")) (candidates ;; filter based on what's already been typed (cl-remove-if-not (lambda (c) (string-prefix-p arg c)) emoji-list)) ;; show the real emoji alongside its name in the completion list (annotation (company-emoji--annotation arg)) ;; when we find the emoji we want, replace it with the real emoji ;; (assuming company-emoji-insert-unicode is set to true) (post-completion (if company-emoji-insert-unicode (progn (kill-region (- (point) (length arg)) (point)) (insert (get-text-property 0 :unicode arg)))))))) ;;;###autoload (defun company-emoji-init () "Add emoji to the company backends." (interactive) (add-to-list 'company-backends 'company-emoji)) (provide 'company-emoji) ;;; company-emoji.el ends here