diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c3eac6e7..0cb9410fc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,6 +5,7 @@ plugins/genpass/ @atoponce plugins/git-lfs/ @hellovietduc plugins/gitfast/ @felipec plugins/sdk/ @rgoldberg +plugins/shell-proxy/ @septs plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index c44bb2475..484a8cf53 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -github: [robbyrussell, mcornella, larson-carter] +github: [ohmyzsh, robbyrussell, mcornella, larson-carter] open_collective: ohmyzsh diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index af2973fec..98f66b1d2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,12 +1,11 @@ -name: Bug report -description: Create a report to help us improve Oh My Zsh -labels: 'Bug' +name: Report a bug +description: Report a bug that isn't caused by Oh My Zsh. If unsure, use this form body: - type: markdown attributes: value: | ## Self Check - - Try searching existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed) for similar issues. + - Look for similar errors in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). - Try reaching out on the [Discord server](https://discord.gg/ohmyzsh) for help. - type: textarea validations: @@ -41,21 +40,21 @@ body: validations: required: true attributes: - label: OS / Distro - placeholder: e.g. Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... + label: OS / Linux distribution + placeholder: Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... - type: input validations: required: true attributes: label: Zsh version description: Run `echo $ZSH_VERSION` to check. - placeholder: e.g. 5.6 + placeholder: "5.6" - type: input validations: required: true attributes: label: Terminal emulator - placeholder: e.g. iTerm2, Gnome Terminal... + placeholder: iTerm2, GNOME Terminal, Terminal.app... - type: dropdown attributes: label: If using WSL on Windows, which version of WSL diff --git a/.github/ISSUE_TEMPLATE/bug_report_omz.yml b/.github/ISSUE_TEMPLATE/bug_report_omz.yml new file mode 100644 index 000000000..96f5ad934 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_omz.yml @@ -0,0 +1,77 @@ +name: Report a bug in Oh My Zsh +description: Create a report to help us improve Oh My Zsh +labels: ['Bug'] +body: + - type: markdown + attributes: + value: | + ## Self Check + - **Make sure this bug only happens with Oh My Zsh enabled**. + - Look for similar errors in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). + - Try reaching out on the [Discord server](https://discord.gg/ohmyzsh) for help. + - type: textarea + validations: + required: true + attributes: + label: Describe the bug + description: A clear description of what the bug is. + - type: textarea + validations: + required: true + attributes: + label: Steps to reproduce + description: | + Steps to reproduce the problem. + placeholder: | + For example: + 1. Enable plugin '...' + 2. Run command '...' or try to complete command '...' + 3. See error + - type: textarea + validations: + required: true + attributes: + label: Expected behavior + description: A brief description of what should happen. + - type: textarea + attributes: + label: Screenshots and recordings + description: | + If applicable, add screenshots to help explain your problem. You can also record an asciinema session: https://asciinema.org/ + - type: input + validations: + required: true + attributes: + label: OS / Linux distribution + placeholder: Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... + - type: input + validations: + required: true + attributes: + label: Zsh version + description: Run `echo $ZSH_VERSION` to check. + placeholder: "5.6" + - type: input + validations: + required: true + attributes: + label: Oh My Zsh version + description: Run `omz version` to check. + placeholder: master (bf303965) + - type: input + validations: + required: true + attributes: + label: Terminal emulator + placeholder: iTerm2, GNOME Terminal, Terminal.app... + - type: dropdown + attributes: + label: If using WSL on Windows, which version of WSL + description: Run `wsl -l -v` to check. + options: + - WSL1 + - WSL2 + - type: textarea + attributes: + label: Additional context + description: Add any other context about the problem here. This can be themes, plugins, custom settings... diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index dc4baf2b1..ac966dfd9 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,12 @@ name: Feature request description: Suggest a feature for Oh My Zsh -labels: 'Feature' +labels: ["Feature"] body: + - type: markdown + attributes: + value: | + ## Self Check + - Look for similar features in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). - type: input attributes: label: If the feature request is for a plugin or theme, specify it here. diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 000000000..dcd237ba2 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,15 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) +[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) +[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) +[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) +[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) +[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) +[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 000000000..c83423a8e --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,25 @@ + +
If the flagged items do not appear to be text + +If items relate to a ... +* well-formed pattern. + + If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it, + try adding it to the `patterns.txt` file. + + Patterns are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. + + Note that patterns can't match multiline strings. + +* binary file. + + Please add a file path to the `excludes.txt` file matching the containing file. + + File paths are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. + + `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( +../tree/HEAD/README.md) (on whichever branch you're using). + +
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 000000000..e69de29bb diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 000000000..f1cfeefbb --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,41 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)vendor/ +ignore$ +\.avi$ +\.ico$ +\.jpe?g$ +\.lock$ +\.map$ +\.min\.. +\.mod$ +\.mp[34]$ +\.png$ +\.wav$ +^\.github/ +^\Qplugins/archlinux/archlinux.plugin.zsh\E$ +^\Qplugins/cp/cp.plugin.zsh\E$ +^\Qplugins/extract/_extract\E$ +^\Qplugins/genpass/genpass.plugin.zsh\E$ +^\Qplugins/gitignore/gitignore.plugin.zsh\E$ +^\Qplugins/gnu-utils/gnu-utils.plugin.zsh\E$ +^\Qplugins/hitchhiker/fortunes/hitchhiker\E$ +^\Qplugins/jhbuild/jhbuild.plugin.zsh\E$ +^\Qplugins/jhbuild/README.md\E$ +^\Qplugins/jruby/jruby.plugin.zsh\E$ +^\Qplugins/kubectl/kubectl.plugin.zsh\E$ +^\Qplugins/lol/lol.plugin.zsh\E$ +^\Qplugins/mosh/mosh.plugin.zsh\E$ +^\Qplugins/npx/npx.plugin.zsh\E$ +^\Qplugins/powder/_powder\E$ +^\Qplugins/suse/suse.plugin.zsh\E$ +^\Qplugins/thor/_thor\E$ +^\Qplugins/universalarchive/_universalarchive\E$ +^\Qplugins/vagrant/vagrant.plugin.zsh\E$ +^\Qplugins/wp-cli/README.md\E$ +^\Qplugins/wp-cli/wp-cli.plugin.zsh\E$ +^\Qthemes/clean.zsh-theme\E$ +^\Qthemes/philips.zsh-theme\E$ +^\Qthemes/tonotdo.zsh-theme\E$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 000000000..5c5a04ff1 --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,4494 @@ +AAAAC +aac +aar +abcdefghjkmnpqrstvwxyz +ABRT +absorbgitdirs +abspath +abtvfr +acceptorthreads +accessip +ACDIM +acking +ackmate +ackup +ACLs +acon +aconf +acp +acpi +acpitool +acr +acroread +acs +acsc +acsp +acss +actionformats +Adamantium +adb +adbd +adben +addgroups +addhistory +addon +addprincipals +addrport +addrs +addusergroups +addwin +adelcampo +adg +ADK +adminalias +adminport +Admins +adoc +adu +aeiouy +afh +afind +afmagic +afs +afu +agb +agc +agd +agentpath +agi +agignore +agli +aglu +agnoster +agp +agrimaldi +ags +agu +agud +agug +aguu +AHg +ainv +aip +Airbender +ajp +ajs +Akinori +akoenig +alacritty +albers +alberto +alertmanager +alex +alexandre +aliasfiletype +aliaspassword +allexport +alloc +allocstatus +allownoncomponentcallers +allpkgs +alnum +ALRM +altchar +Altoid +alwayz +amanda +amazonaws +amazonec +ambyj +amd +amqp +AMRD +anche +andi +andrewrdwyer +angularjs +anley +anlp +annots +anonymize +anotherfolder +ansible +antrun +anycommand +apexcodefile +apextests +api +apidocs +apiversion +apjanke +apk +apklib +aplaybook +appid +applica +applist +appname +apps +appup +aps +apull +arachnophobia +araxis +ARCHFLAGS +archimport +archlinux +arci +arcizan +ard +ardc +ardnu +ardnupc +ardp +ardpc +ARGC +args +argset +argslist +argu +argv +ARGZERO +arh +arinit +arl +arli +arpa +arquillian +artifactory +asadmin +asc +asciicast +asciidoc +asciidoctor +asciinema +asdeps +asdf +askpass +asm +asmo +asrc +assem +associatewiththread +ASTs +asyncreplication +atlassian +attr +ATTRIBUTENAME +aufs +auin +auinsd +auloc +auls +aulst +aumir +auown +auownloc +auownls +aur +aure +aurem +aurep +aurinsd +aurph +aurrep +authmethods +authorizationdb +authpriv +authrealmname +authz +autoapplyenabled +autoclean +autocomplete +autocompleted +autocompletion +AUTOCONNECT +autocrlf +autodetermine +autodie +autoenv +autohadboverride +autoipd +autojump +autoload +autolock +autolocking +autopep +AUTOQUIT +autoreload +autoreloading +autoremove +autorun +autoscale +autoscaling +autoselect +autoshortened +autosquash +autostart +autostash +autoupdate +auupd +auupg +availabilityenabled +avh +avi +AVIT +avivrosenberg +avneet +avz +avzu +aws +awscli +awslogs +babakks +backend +backendconfig +backtick +backupconfig +backupdir +backupfile +backuptheme +bactrian +baidu +bamshuf +bamtobed +bamtofastq +Barsi +Basecamp +basedir +basedn +basefile +baseurl +basevmdk +bashcompinit +bashdefault +bashrc +batchid +baz +bazel +bazelbuild +bbd +bbdiff +bbedit +BBM +bbpb +bcc +bcdfghjklmnpqrstvwxz +bck +bcn +bcubc +bcubo +beaglidx +becc +bedcov +BEDGRAPH +BEDPE +bedpetobam +bedtobam +bedtools +Belarus +bem +benchmarker +benchmem +benchtime +bento +benwilcock +berks +Bertinelli +bgnotify +bgrewriteeaof +bgsave +binarynights +bindaddress +binded +bindir +bindkey +binpack +binstub +bintray +bip +bira +bisd +bitboxer +bitbucket +bitswap +bitwarden +blkio +blockprofile +blockprofilerate +blod +blog +blogger +blogspot +blpop +bluebox +Bluetooth +bobwilliams +bodycc +Bonetti +bookmarked +booknames +bootclasspath +bootscript +bootsnipp +borland +borrowck +Boudreau +Boushh +Bouvet +BPtmux +bpython +bqr +brainstormr +Brainville +branchformat +branchname +branchrefs +brewp +brewsp +briancarper +bringz +Broadcom +Brodersen +brpop +brpoplpush +btannous +btih +btn +btrestart +btrfs +btw +bubc +bubu +buf +buffersizebytes +buflines +bugfix +bugfixes +bugreport +bugsnag +Buildfile +buildinstance +buildnumber +buildpackage +buildpacks +buildscript +builtins +bundlephobia +bunzip +Burkina +Busybox +bwaht +Bxegedabagacad +bypjyp +bytebuffertype +bytecode +bytewise +byznis +bzip +bzr +cabextract +CACERT +cacertfile +cacheinfo +cachename +caiifr +Cakefile +cakephp +callvim +calmd +calways +caname +caniuse +cano +capath +Capfile +capify +capistrano +capistranorb +capit +CARETCOLOR +caserta +Caskroom +catimg +catserver +catspeak +cbr +ccat +cccmd +ccflags +ccl +ccomp +ccp +cdargs +cdcmd +cdo +CDPATH +cdu +cdx +cdylib +cecho +cehlrtx +celerybeat +celeryev +celerymon +celeryproject +Celso +celsomiranda +certfile +certname +certs +cfa +cfap +cfbpk +cfbs +cfc +cfdel +cfdm +cfdor +cfds +cfe +cfev +cfg +cfgfile +cfhu +cfl +cflg +cflr +cfp +cfpc +cfpm +cfr +cfsc +cfsh +cfsp +cfsrt +cfsrtall +cfstg +cfstp +cfstpall +cft +cfup +cfus +cget +cgi +cgit +cgr +cgrm +cgroup +cgroupns +cgu +changelog +changepassword +changeset +charmap +charset +chaselinks +chcid +chdir +cheatsheet +checkin +checkinit +checkonly +checkports +checkstyle +cheeseshops +Chesal +chiark +childlogdir +chlrtx +chmod +chown +chpwd +chroot +chruby +chrubydirs +chsh +chucknorris +chucknorrisfacts +Chucktatorship +Chucktober +chunker +cidfile +cidr +CIDs +cidv +ciici +cim +cirw +citool +civis +cjk +clamav +classfile +classloaders +classloading +classmap +classname +classpath +CLDR +cleardump +cless +CLICOLOR +clientauthenabled +clientid +clipcmd +clipcopy +clippaste +Clipperton +clj +Clojure +closelim +cloudfoundry +cloudproviders +CLOUDSDK +clrz +clustertype +cmdargs +cmdline +cmds +Cmp +CMR +cms +cmt +cnorm +cobertura +cocoapods +codebase +codeclimate +codecompare +codecoverage +codegen +codepen +coderwall +CODESET +codium +coffeescript +colemak +Colindres +collectstatic +colorbool +colorcoded +colorcoding +colorify +colorized +colorls +colorpair +colorset +colorspec +colourised +Colouriser +colsearch +COMMANDLINE +commandlinefu +committerdate +Comoros +compadd +comparguments +compassdoc +compaudit +compbiome +compcall +compctl +compdef +compdescribe +compdump +compfiles +compfix +compgen +compgroups +compilemessages +compinit +compl +completemarks +completionsdir +complist +componentname +compopt +compquote +COMPREPLY +COMPRESSSPARSESTATE +compset +compstate +comptags +comptry +compvalues +CONDA +CONFG +config +configfile +confighelp +configmap +configstoretype +connectiondefinition +connectionpoolid +conssec +Consts +contacto +containerd +contenttype +contextinitialization +contextroot +contoroll +contreras +controlargs +conventionalcommits +COOKBOOKNAME +cookbookversion +coproc +copybuffer +copydir +copyfile +copypaste +copypasteable +cordova +coreutil +cors +cowsay +cowthink +cpan +cpanm +cpanminus +cpantesters +cpio +cpp +cprint +cprof +cpuprofile +cpuset +cpv +createcachetable +createdlastdays +createsuperuser +createtables +creationretryattempts +creationretryinterval +cription +crlf +crm +crockford +cron +cronjob +crt +cseuckr +cseucpkdfmtjapanese +csh +csibm +csiso +csisolatin +cskoi +csksc +css +cssflow +cssh +csshiftjis +csu +csv +csvfile +ctag +ctl +ctlseqs +ctx +ctype +culater +Cunha +curcontext +curdir +curhistsize +curkeyword +curpath +currentartist +currentdir +currenttrack +cursored +curtheme +Customisation +CUTBUFFER +cvccvc +cvf +cvhs +cvjf +cvs +cvsexportcommit +cvsimport +cvsserver +cvvis +cvzf +cwd +cword +cxx +cya +cycledleft +cycledright +cygpath +cygstart +cygwin +cygwyn +czf +daemonize +daemonized +daemonizing +daemonset +dalias +dango +danielcsgomes +darcs +dartdoc +dartlang +dashdoc +DATABAGNAME +datafieldenc +datasift +datasourceclassname +datastore +datestamp +datetime +daylerees +dbbolton +dbconsole +dbfile +dbhome +dbhost +dbport +dbshell +dbsize +dburl +dbus +dbuser +dbvendor +dbvendorname +dccmd +dcdn +dce +dck +dcl +dclf +dco +dcom +dcommit +dcps +dcpull +dcr +dcrestart +dcrm +dcstart +dcstop +dcup +dcupb +dcupd +ddg +ddl +deadwyler +debian +debman +debuginfo +debuglevel +decr +decrby +DECSCUSR +defaultleasettl +defaultpackagedir +Defaultsfdx +defaultvs +defaultwebmodule +definitionfile +definitionjson +deinit +deinstall +delwin +denable +deno +dependencyfile +deploydir +deployers +deploymentplan +deps +depthfrom +dequote +dequoted +deref +derek +descr +dest +DESTDIR +destroot +desttype +devcenter +devdocs +devfolder +devicehost +devicemapper +deviceport +devlog +devops +devpath +dfa +dffx +dflt +dfmt +dfs +dhcp +dhcpd +dhcpip +dht +dhtrc +dhtt +diagdump +didexit +diffcore +diffmerge +diffs +diffsettings +difftool +digitalocean +diiirrrty +dijcaf +dircolors +dircycle +direnv +dirhistory +dirname +dirpath +dirpersist +dirs +dirstack +DIRSTACKSIZE +dirstat +dirver +disablemasking +disksize +diskutil +displayconfiguration +displayname +distcache +distcheck +distclean +distro +dists +django +djangojs +djangoproject +djangopypi +djview +djvu +dli +dlist +dls +dman +dmatching +dmesg +dmg +dna +dnf +dnfc +dnfgi +dnfgl +dnfgr +dnfi +dnfl +dnfli +dnfmc +dnfp +dnfr +dnfu +dng +dnote +dns +dnsmasq +dnsrr +doap +docck +dockerd +dockerdaemon +dockerenv +Dockerfile +dockerport +dockersearch +docopt +docset +docstring +doctl +doctorjellyface +dogenpunk +doitclient +domaindir +domainname +domainproperties +domterm +Donenfeld +dongweiming +donotwant +dopts +dotall +dotenv +dotest +dotfile +dotnet +doubledash +doublequotes +dowant +dpkg +drca +drcb +drcg +drcj +drcm +drcml +drcr +drct +drcv +drdmp +dren +dreurmail +drf +drfi +drfr +drfra +drfu +Driessen +drif +dris +driverclassname +drn +drnew +droid +dropandcreatetables +dropindexes +droplr +dropreplace +droptables +drpm +drpu +drst +drup +drush +drushrc +drv +drvd +drvg +drw +dsa +dselect +dsl +dssh +dst +dsupport +Dtest +dtrace +dts +duckduckgo +duf +dumpconfig +dumpdata +dumpfiles +duplessis +durationdays +durrheimer +dutchcoders +dvd +dvi +dwim +dwr +dylib +eal +eastermonday +eauth +ebuild +ecd +ecdsa +echotc +echoti +ecma +ecmerge +ecosia +ecto +editorcmd +edu +eecms +eed +eeval +efforted +efile +eframe +egrep +ein +Eisentraut +ejb +ekzsh +Eley +ELGNRCIS +elidable +elif +elim +elisp +elllen +elot +emacs +emacsclient +emacsfun +emacswiki +emails +emberjs +Emelianenko +emoji +emotty +enablesnoop +enacs +endswith +ent +entrypoint +enum +envsubst +envvar +enwom +eocw +EOH +eol +eoq +eow +eoww +eoy +EPOCHREALTIME +epochseconds +eprof +eread +erl +errlog +Errored +esac +escripts +essembeh +etcd +ethanschoonover +ets +etwlogs +euc +EUID +EULAs +eunit +evals +evalstatus +evan +eventlet +eventname +Evernote +Evt +exe +executables +execv +exfxcxdxbxbxbxbxbxbxbx +exfxcxdxbxegedabagacad +existentials +exitcode +exoscale +expandvars +expaning +expireat +expl +explaintypes +explicitouter +expn +expr +exps +exs +extcmd +extdirs +extendedglob +externalid +extmethods +fabfile +facebook +factoryclass +faidx +failconnection +failfast +failurefatal +fakeroot +faqs +fargs +Faroe +fasd +FASTA +fastcgi +fastfile +fastprint +FASTQ +favlist +fbterm +fcap +Fcart +fcgi +Fcrt +fcss +fdfind +fdlimit +feditor +fedoraproject +felipe +felixr +ffls +ffp +ffrm +ffsync +fghijk +fgrep +Fiala +fieldlist +Filemode +filepath +filesize +filestore +filesystem +filetype +filevaultmaster +FILLBAR +filtername +findpeer +findprovs +finetune +firefox +firewalld +firewalls +firstline +fishshell +fitzpatrick +fixmate +fixme +fixperms +FIXTERM +fizsh +fjs +flagstat +flatlist +flattach +flc +fldoc +flget +flickr +flowgraph +flowtype +flr +fluentd +flup +flushall +flushdb +flv +fnd +fnm +fns +Fnv +Folgers +fontello +foodcritic +foqtam +forall +forceoverwrite +forceupgrade +foreach +forrest +fortunecity +forw +fosmid +fotqoh +fpath +fprof +fqn +framep +frecency +frecent +freebsd +freenode +freqs +fri +Friesel +fromaddress +frontend +frontmost +fsc +fscache +fsck +fsl +fsmonitor +FSsh +fstgpy +ftp +fts +fucnul +func +funcsourcetrace +functrace +funtoo +Futuna +futuret +fwl +fwp +fwr +fwrp +fzf +fzfdirs +gaa +gallifrey +gamc +Gamera +gamscp +gapt +gasconfig +Gatorade +gatsbyjs +gav +gba +gbd +gbda +gbk +gbl +gbnm +gbr +gbs +gbsb +gbsg +gbsr +gca +gcam +gcan +gcasm +gcb +gcc +gccd +gccgo +gccgoflags +gcf +gcflags +gch +gcl +gclean +gcloud +gcm +gcmsg +gcn +gco +gcor +gcount +gcp +gcpa +gcpc +gcplogs +gcr +gcs +gcsm +gcssm +gdc +gdca +gdct +gdcw +gdd +gdm +gdnolock +gdt +gdup +gdv +gdw +geca +gecb +gecho +geclup +gecr +geeknote +gegi +geh +gei +geiall +gelcyv +gelf +geli +gemb +gemfile +gemoji +gemp +gemset +gemspec +gemy +generatekey +generatermistubs +genomecov +genpass +genpaths +genzshcomp +geoe +geoff +geoffgarside +getattr +getbit +getcomposer +getdir +geteip +getenv +getfasta +getgb +getip +getline +getln +getopt +getrange +getset +gettext +geun +gevent +Geza +gezalore +gfa +gfg +gfl +gflf +gflff +gflfp +gflfpll +gflh +gflhf +gflhp +gfli +gflr +gflrf +gflrp +gfo +gga +ggf +ggfl +ggl +ggp +ggpnp +ggpull +ggpur +ggpush +ggsup +ggu +ghci +ghf +ghff +ghfh +ghfr +ghfu +ghh +ghostrevery +gignore +gignored +gimmeh +giobi +gistcomment +gitbranch +gitbranchsize +gitcomp +gitcompadd +gitcompappend +gitcompletion +gitdir +gitex +gitfast +gitflow +github +gitignore +gitinfo +gitk +gitmodules +gitpod +GITSS +gitstatus +gitstring +gitweb +givero +gke +gkrellmd +glfsi +glfsls +glfsmi +glfst +glg +glgg +glgga +glgm +glgp +glidenote +glo +globalias +globals +globbing +globsubst +glods +glog +gloga +glol +glola +glp +gls +gma +gmail +gmom +gmtl +gmtlvim +gmum +Gneat +Gniazdowski +gnore +gnupg +goc +godoc +Godzilla +gof +gofa +gofmt +goga +Gohr +golang +gom +GOMAXPROCS +Gomes +Gonz +goodreads +google +googlecode +gop +gopath +gopb +GOROOT +goroutine +gota +gpf +gpg +gpgconf +gplfs +GPLv +gpoat +gpr +gpristine +gpsup +gpu +gpus +gpv +gradle +gradlew +graphviz +grb +grba +grbc +grbd +grbi +grbm +grbo +grbom +grc +greenend +greer +grename +grep +grepping +grev +grh +grhh +GRIMALDI +grk +Grlm +grm +grmc +grml +grmv +groh +grok +Grosenbach +groupby +groupinstall +grouplist +groupremove +groupsmap +growlnotify +grrm +grset +grss +grst +grt +gru +gruntfile +grup +grv +gsb +gsd +gsemet +gsh +gsi +gsps +gsr +gss +gst +gsta +gstaa +gstall +gstc +gstd +gstl +gstp +gstu +gsu +gsub +gsw +gswc +gswd +gswm +gtb +gtfo +gtl +gts +gtv +gua +Guake +Guerci +gui +guidovansteen +guitool +gulpfile +gulpjs +gunignore +gunwip +gunzip +gupa +gupav +gupv +gvim +gvimdiff +gwc +gwch +gwip +gwt +Gxfxcxdxbxegedabagacad +gxvx +gyazo +Gyver +gzip +Hackage +Hacktoberfest +hackzor +hacluster +hadouken +hai +haldaemon +Halis +Hamelink +hammertest +hanami +hanamirb +har +hardcoded +hardlinks +hardstatus +harishnarayanan +hashh +Hashicorp +haskell +haskellstack +Hasklig +hawaga +hax +HBAR +hbm +Hcode +hda +hdc +hdd +hdel +hdp +hdrs +hdtp +hdv +hea +healthcheck +healthcheckerinterval +healthcheckertimeout +healthcheckerurl +heduled +heg +Helens +helpmojo +heroku +hexdocs +hexdump +hexists +hga +hgb +hgba +hgbk +hgc +hgca +hgchangeset +hgco +hgd +hged +hget +hgetall +hgi +hgic +hgl +hglg +hglgp +hglr +hgm +hgo +hgoc +hgp +hgrc +hgrep +hgs +hgsl +hgun +hhatto +hhh +hidefiles +highlighter +hincrby +HISTCMD +HISTFILE +HISTNO +historywords +histsize +histsubstrsrch +hitokoto +hkeys +hkscs +hlen +hmget +hmset +Hocevar +hocho +hoeg +Homeboy +homepage +hostip +hostname +hostpath +hotfix +hotfixes +hotlist +hotpink +howto +howtorun +hpodder +href +hrg +hscolour +hscroll +hset +hsetnx +hsi +hsp +hsqldb +htm +html +htmlsingle +htop +htslib +HTT +http +httpd +httpie +httplisteners +httpparams +httpsrouting +httpstatus +hubflow +hukkan +humza +huyy +hvals +hyperlink +hypermedia +hyperv +hypervisor +iam +ian +ianchesal +ibest +icanhas +icanhazip +icba +icbi +icc +icode +icpaa +icpai +icpra +icpri +icra +icri +icrosoft +icrsa +icrsi +idlekeytimeoutseconds +idletimeout +idmv +idx +idxstats +ietf +ifargs +ifconfig +iflist +iglob +ignoredescriptoritem +ignoreerrors +ignorenonexistent +ignorewarnings +igv +ihasbucket +iiop +iiopport +ilikenwf +ilkka +ima +imageshack +imap +imatch +imatches +img +imgur +iminurbase +imnp +imonit +impl +implicits +importpath +inbox +incrby +indexopts +inet +infocmp +ini +initsql +inkytonik +inl +inliner +inlining +inplace +inprogress +Inproper +inputenc +inr +insecureskipverify +insns +inspectdb +inspr +instagram +Installable +installationkey +installationkeybypass +installdeps +installdir +installsuffix +instancealias +instanceport +instanceurl +instaweb +instrs +integ +Intellij +interactivecomments +interdiff +interfacename +interoperability +interp +Intf +inur +invicem +iojs +iokit +ionescu +ionicframework +iops +ioreg +ipa +ipaddr +ipam +ipamdriver +ipapp +ipc +ipcidr +ipe +ipfs +ipld +ipns +IPREFIX +ipsw +iptables +ipv +ipython +irb +irc +IRTY +isconnectvalidatereq +isdefaultprovider +isdeleted +isearch +isfile +isisolationguaranteed +isodate +isodatesec +isolationlevel +isredeploy +istio +ISUFFIX +isundeploy +iterm +itertools +itunes +ivan +Ivoire +ixfuk +izakaya +ize +jacc +jaccard +jaddr +jaischeema +jakefile +jakejs +Janke +japvyz +jarfile +JARIN +jarsigner +javabootclasspath +javac +javadoc +javaextdirs +javamail +javap +javascript +javax +jbm +jboss +jcon +jdbc +jdc +jdcds +jde +jdeps +JDK +jdkinternals +jdl +jdlr +jdm +jdmds +jdwp +jeb +jecdyq +ject +Jedis +jeffmhubbard +jenv +jenvdir +jepgad +jerryling +jestjs +jex +jexec +jfrog +jgitflow +jgpagent +jid +jimhester +jimweirich +jira +jis +jisse +jkc +jkenabled +JLine +jlist +jmc +jmsdbpassword +jmsdest +jmx +jndi +jndilookupname +jnrowe +jobid +jobspec +jobstates +jobtexts +jof +johnhamelink +joly +jonas +jonmosco +jorge +journald +jpeg +jpg +jpo +jprofile +jql +jquery +jra +jraw +jrel +jreld +jrm +jrmds +jrmrel +jrmsas +jrp +jrs +jrspec +jruby +jsa +jsh +jshc +jshm +json +jsonfunc +jsonpath +jsontool +jsp +jspa +jssl +jst +jstj +jsu +jsw +jukie +junegunn +junex +junit +junkbust +JUNKFOOD +Juraj +jvenant +jvm +jvmargs +jvmoptions +jwt +jwtkeyfile +jxr +kajrod +kalsi +kapeli +kapow +kate +Kaving +kbd +kca +kcbt +kccc +kcdc +kcgc +kclean +kcn +kcp +kcsc +kcub +kcuc +kcud +kcuf +kcuu +kdch +kdcj +kdcm +kdd +kde +kdel +kdelcj +kdelcm +kdeld +kdelf +kdeli +kdelno +kdelns +kdelp +kdelpvc +kdelsa +kdelsec +kdelss +kdi +kdialog +kdiff +kdm +kdno +kdns +kdp +kdpvc +kds +kdsa +kdsec +Keanu +kecj +kecm +keds +keepfailedstubs +keepreposdir +keepstate +kei +kepvc +kerndeb +kes +keti +kevinkirkup +kexec +kextload +kextunload +keybindings +keycap +keychain +keyfile +keygen +keymap +keymetrics +keypair +keyring +keyshares +keysize +keyspace +keythreshold +KEYTIMEOUT +keytooloptions +keywordisfresh +keywordmsg +keywordquickly +kga +kgaa +kgcj +kgcm +kgd +kgdsw +kgdw +kgdwide +kgi +kgno +kgns +kgp +kgpl +kgpn +kgpvc +kgpvcw +kgpw +kgpwide +kgrs +kgs +kgsec +kgssw +kgsswide +kgsw +kgswide +Khas +khome +killall +killit +Kindergarteners +Kitts +kiwiirc +kiwish +kjx +klf +Klingberg +knative +kni +knifecmd +knifesubcmd +knp +knu +koenig +Kombat +kompare +konsole +kotlin +kotlintest +kpf +kphoen +kpkg +kpp +kres +krh +Krivitsky +krsd +krsss +kru +ksc +ksd +ksh +ksharrays +kshautoload +kshglob +kshoptionprint +ksshaskpass +ksss +kthxbai +kts +kube +kubeconfig +kubectl +kubectx +kubens +kubeoff +kubeon +kubernetes +kungfoo +Kurapati +kwargs +kypkvcw +Kyrgyzstan +Lacheze +lambdalift +lando +langinfo +laravel +lart +lastcategory +lastcmd +lastfull +lastrun +lastsave +launchctl +lazyconnectionassociation +lazyconnectionenlistment +lazyvals +lbenableallapplications +lbenableallinstances +lbenabled +lblue +lbname +lbpolicy +lbpolicymodule +lbtargets +lbuf +LBUFFER +lbweight +lcmd +ldap +ldflags +ldot +leakreclaim +leaktimeout +leavebrowseropen +lein +leiningen +lemy +len +Lengyel +leonhartx +LESSCLOSE +lesskey +LESSKEYIN +LESSOPEN +letcat +leter +lexduv +lexer +lfs +lho +lhs +libc +libedit +libexec +libnotify +libp +libreadline +libsecret +lifecycle +lighthouseapp +limegreen +lindex +linearizer +linewords +linkcheck +linkname +linsert +linux +linuxcommando +linuxcontainers +linuxmain +liquibase +listeneraddress +listenerport +livecheck +liveserver +llc +LLCORNER +llen +llr +llvm +lmnop +lname +loadconfig +loaddata +loadorder +localhost +localonly +localoptions +localtime +localtraps +lockdown +lockfile +lodash +logcat +logdriver +logentries +logfile +logid +loginurl +loglevel +logname +logreportederrors +logrotate +logtype +lol +lowerip +lpop +lpr +lpush +lpushx +lrange +lrbu +LRCORNER +lrem +lrh +lrp +lrt +lrunzip +lrz +lrzip +lrzuntar +lsa +lsb +lscolors +lset +lsof +lstheme +lstrip +lto +ltrim +lubs +lucentbeing +lvi +lways +lwc +lwd +lxc +lxd +lzcat +lzip +lzma +lzo +lzop +LZW +Maarten +macos +macports +macromates +Maeda +Magento +magerun +magicequalsubst +magick +mailhost +mailinfo +mailmap +mailnull +mailrc +mailsplit +mailuser +mainporcelain +maintail +maintainership +makecache +MAKEFLAGS +makemessages +makemigrations +makewindows +managedreleased +managepy +manni +manpage +manpath +mapcar +mapfile +mappedpassword +mappedusername +markname +markpath +maskfasta +maskray +masq +massimiliano +matchconnections +mathfunc +Mattern +Matth +matthewratzloff +matthr +maxbytes +maxchildren +maxconnectionscount +maxconnectionusagecount +maxdepth +maxleasettl +maxpoolsize +maxqueuesize +maxrank +maxrate +maxrequests +maxspare +maxtasksperchild +maxthreadpoolsize +maxwait +Mayen +Mayra +mbean +mbegin +mbologna +mbox +mboxrd +mbp +mca +mcl +mcm +mco +mcornella +mct +mdapi +mdb +mde +mdi +mdn +mds +meanlife +mediawiki +megazord +meh +Mek +mekanics +memprofile +memprofilerate +memq +menuselect +MENUSIZE +mergetool +mergewebxml +merkledag +Mery +messagebus +messagestoretype +metacpan +metadata +metricscollector +mfa +mfaerevaag +mfs +mget +miam +michelebologna +microk +microsoft +middleware +midsommar +midsommarafton +mikeh +millis +mindepth +minfds +minidisc +minikube +minlogprob +minprocs +minspare +minthreadpoolsize +mirko +mirrorlist +mixin +mkcd +mkdir +mkdirs +mktag +mktemp +mktree +mkv +mkvirtualenv +mla +mldonkey +Mleb +MLH +mli +mlo +mlog +mlp +mls +mlterm +MMA +mmap +mmin +mng +mnt +moar +modded +modifiedlastdays +modulename +Moldova +mongocli +mongodb +monit +monitorable +monokai +Morote +Mosco +mosh +mostfrequent +MOTD +mountpoint +mov +moyai +mozilla +mpa +mpeg +mpileup +mpkg +mplayer +mplex +mpr +mputniorz +mqhost +mqpassword +mqport +mquser +mre +mrp +mset +msetnx +msgnum +msgs +msh +msil +msp +mst +msvs +msw +msys +msysgit +mtime +mtu +Mudkipz +multiaddresses +multibase +multicastaddress +multicastport +multicov +multihashes +multiinter +multiline +multios +multiset +mumpub +munication +MURI +muscato +mutex +muxer +mvim +mvn +mvnag +mvnboot +mvnc +mvncd +mvnce +mvnci +mvncie +mvncini +mvncist +mvncisto +mvncom +mvncp +mvnct +mvncv +mvncvst +mvnd +mvndocs +mvndt +mvne +mvnfmt +mvnjetty +mvnp +mvnqdev +mvnsrc +mvnt +mvntc +mvnw +Mvt +Myanmar +myapp +myargs +myd +mydeb +myers +myfile +myfirstnamemylastname +mygit +myissues +mymark +myns +myprop +mypy +myrole +myserver +mysql +mysqladmin +mysqlrestart +mysqlstart +mysqlstatus +mysqlstop +mytime +myuser +myvalue +myvirtualenv +myzsh +nables +nagios +naliases +nameddirs +namespace +namesys +nanoant +nanoc +Narayanan +Naruto +nativelibrarypath +ncd +ncipe +NCOLOR +ncpu +ncs +ncv +ndjson +NDUw +NEm +nenv +neovim +netbsd +netdump +netloc +netmask +netstat +networkdriver +networklisteners +neuralsandwich +newcons +newpl +newvol +nextgenthemes +nfsnobody +nfunctions +nginx +ngnix +ngth +nhelp +nhistory +nhughes +nicoulaj +Nicoulaud +nixos +nkeywords +nkill +nle +nlinux +nlist +nmap +nmatches +Nmh +Nms +Nmw +noacl +noancestors +noargs +noautonamedirs +noautopushd +noblock +nobootcp +nobreak +nocache +nochunk +nocleanup +nocolor +nocopy +nocorrect +nodaemon +nodedir +nodefaultpolicy +nodegroup +nodehost +nodeid +nodejs +nodense +nodestatus +noexec +noexpand +noglob +noheading +nohelpers +nohup +noinput +nojline +noksh +nomadproject +nomnom +nomz +nonamespace +nondistributable +nongnu +NONINFRINGEMENT +nonomatch +NONSELECTABLE +nontransactionalconnections +nopassword +noposixbuiltins +noprofile +noprompt +nopromptsubst +noptions +nopushdminus +norc +noreload +NORMARG +NORRIS +noshortloops +noshwordsplit +nospace +nosplash +nostatic +nostatus +nostream +notactive +notailcalls +notest +nothreading +notifu +notnull +nounit +noverbose +nowai +nowarn +noword +noyes +NPAGE +npanelize +npm +npmd +npmg +npmi +npmjs +npmrc +npmst +npmt +npr +nproc +npu +npx +nroff +nscd +nsu +nthemes +ntlp +ntp +ntu +nubxa +nuc +nuget +numstat +nvcsformats +nvie +nvimdiff +nvm +nvmrc +Oakv +oanward +oathtool +OAuth +objectname +objectsize +objecttype +obsrun +obtw +octocat +octozen +oden +ofd +ogg +ogm +ohmyz +ohmyzsh +oid +oldp +oldpatmat +OLDPWD +OMITSPARSESTATE +OMMIT +omz +omztemp +onbehalfof +oneline +onlyrepos +onoz +ooanward +oom +openbsd +opendiff +openr +openshift +opensource +openssh +openstack +opensuse +openvpn +openw +OPTARG +optimisations +OPTIND +orderby +orgdir +orgs +oris +ority +orm +ornicar +orss +osascript +osname +osscan +ostype +osver +osx +oth +otp +otpcode +Ouellet +oug +outfh +outfile +outfilebase +outfilename +outlog +outputdir +outputtedto +Outputters +pacac +pacaur +pacdisowned +pacfiles +pacfileupg +pacin +pacinsd +packagecreaterequestid +packageid +packagekitd +packagename +packageobjects +packagephobia +packagetype +packageversionid +paclist +pacloc +pacls +paclsorphans +pacman +pacmanallkeys +pacmansignkeys +pacmir +pacoc +pacown +pacre +pacrem +pacrep +pacrmorphans +pacupd +pacupg +pacweb +pagage +pagename +painsd +pairtobed +pairtopair +paloc +palst +pamc +pame +pamf +pamfa +pamir +pamj +paml +pamm +pamn +pamp +pampp +pamr +pamt +panelize +paorph +paperclips +paqf +paqft +paql +paqr +paqt +paqw +paralint +params +parem +parep +PARGON +parhaat +paroc +parseable +parseopt +parwok +passivepopup +passphrase +passthrough +passthru +passwd +passwordstore +pastebin +pasu +patchformat +pathspec +patmat +patshead +paupd +paupg +pausedservices +pavic +paypal +paypalobjects +pbcopy +pbi +pbl +pbo +pbpaste +pbs +pbu +pcap +pch +pchk +pcl +pcmode +pcpu +PCR +pcre +pdf +PDoc +peb +peepcode +peerid +pem +percol +perflog +perl +perlbrew +perldoc +permset +permsetname +petere +peterhoeg +Pfenniger +pfs +pgp +pgpkeys +pgr +pgrep +pgs +phab +phing +phome +php +phx +pid +pidev +pidfile +pidof +pigz +pipenv +pipestatus +pipfile +pipir +piplist +pipreq +pipunall +pipupall +Pitcairn +pjdb +pjo +PKGBUILD +pkgfile +plaetinck +planetargon +playlists +playpause +ple +pleted +plist +Plug'n +plugin +pluginsdir +plz +pmat +pmd +pmin +pmset +png +pnp +podfile +podspec +policyconfigfactoryclass +policyproviderclass +polipo +polkitd +poo +poolname +poolresize +Poorter +popd +Popen +porcheron +portbase +portdir +Portfile +portlist +portname +posix +possen +posteo +posterasure +postgres +postinstallurl +posva +powd +powed +Powerline +poweroff +powershell +powify +powit +PPAGE +ppap +ppid +ppy +precache +precaire +precmd +precompilejsp +precompilewait +predef +preexec +prefetching +prefiltered +prefork +preload +premajor +preminor +prepatch +prepends +prepopulate +prettylist +previewer +prevword +pri +princ +principalsmap +printenv +printf +printflags +printprompt +privhist +privoxy +procfs +procs +prodlog +progfile +projectname +PROMPTCOLOR +PROMPTPREFIX +promptsize +promptsubst +promptvars +propget +proplist +protobuf +providertype +prun +pscpu +pseudoword +psgrep +psh +psmem +psprint +pstadler +pstree +psu +psubscribe +psy +psykorebase +pthree +ptot +ptree +pubgrub +publishwait +pubsub +puni +punsubscribe +puo +pushd +pushdefault +pushdf +pushdignoredups +pushdminus +pushdsilent +pushln +pushremote +pushurl +Putniorz +pvc +pvenv +pvm +pwd +PWDCASECORRECT +PWDLEN +pwdsize +pwdx +pwgen +pwh +pwned +pxd +pxy +pybundles +pyc +pycache +pyclean +pyenv +pyenvdirs +pyfind +pygmentize +pygments +pygrep +pylint +pypa +pypi +pytb +pytest +pythonhosted +pythonpath +pythonrc +PYTHONSTARTUP +PYTHONUSERBASE +pyuserpaths +Qdt +qiqmiq +qkey +qlmanage +qpwd +Qql +Qqo +qqq +qqwtzgejwgqve +Qtdq +quarkus +quicklisp +quickstart +quiltimport +qunit +qunitjs +quotationspage +quotedir +quu +quux +qwant +qwerty +qxtm +qyjti +rabin +rackspace +rackup +radvd +raek +Rakefile +raname +randomkey +rangepos +rar +ratijas +rawurldecode +rawurlencode +rbenv +rbenvdirs +rbfu +RBUFFER +rbw +rcfile +Rchive +rcs +rdargument +rdb +rdc +rdd +rdependents +rdeps +rdm +rdmd +rdmr +rdmtc +rdmu +rdoc +rdp +rdr +rds +rdsl +rdtc +rdtp +reactjs +readline +readlink +readme +readonly +readthedocs +readtimeoutmillis +Reagle +realcmd +reauthor +rebased +rebases +rebasing +receivepack +reddit +redirectport +redis +rediscli +redistrubute +redzone +reencode +reexec +refactor +refchecks +reflogs +refmap +refname +refspec +regex +regexes +regexn +regexp +reheader +reintializes +Reitsma +rej +reldates +reldist +releasenotesurl +releaseversion +relid +reloadinterval +reloadpost +reltool +remco +remoteonly +remotetestdir +removegroups +removeprincipals +removeusergroups +renamenx +rephorm +replacetokens +repow +reprovider +requestauthrecipient +requestauthsource +requestid +rerere +resetstat +resolv +resolvemsg +responseauthrecipient +responseauthsource +responsetimeout +restartpost +restype +resultformat +retcode +retlog +retrievefile +retrievetargetdir +returncode +RETVAL +revdeps +revlist +rfa +rfakeroot +rfap +rfbu +rfc +RFh +rfind +rgm +rhash +rinass +rinf +ripgrep +riseup +RIXIUS +rlc +Rli +rlib +Rlvi +rmacs +rmcup +rmd +rmdir +rmdsstore +rmdup +rmi +rmkx +rnand +rnatv +rnaw +rnios +rniosse +rniosx +rniosxr +rniosxsm +rnipad +rnipada +rnipadm +rnipadp +rnipadr +rnland +rnlink +rnlios +rns +robby +robbyrussell +ROLENAME +rollbackonerror +rootdir +rosrc +roswell +ROSWELLPATH +roundhoused +routecookie +rpath +rpc +rpcuser +rpmpackage +rpms +rpo +rpop +rpoplpush +rprompt +rpush +rpushx +rra +rrg +rsa +rsb +rsd +rset +rsh +rsp +rspec +rsrra +rst +rsto +rstrip +rsync +rtfm +rtkit +rtorrent +rts +rubocop +rubygems +rubyonrails +rubyprompt +rubypromptsize +rubyversion +Rudkin +rulz +runfcgi +runningservers +runningservices +runpy +runserver +runtests +runtfile +runtimes +RUNZSH +Ruslan +ruslanspivak +rustc +rustup +Rvi +rvm +rvmprompt +rvmpromptsize +rxvt +saas +sadd +salesforce +samtools +sandboxed +SAVEHIST +savelogin +savemasterpassword +sba +sbc +sbcc +sbcln +sbco +sbcp +sbcq +sbd +sbdc +sbdi +sbgi +sbin +sbp +sbpl +sbr +sbrake +sbrm +sbt +sbu +sbx +scalac +scaladoc +scalatest +scaleway +scandeps +scard +scd +scdalias +scdaliases +scdhistory +scdignore +scgi +sched +scheduledrundatetime +Schlatow +scm +scmpublish +scorpius +scottkidder +scp +screencast +screenshot +SCTP +scu +scutil +scw +scwsearch +sdiff +sdiffstore +sdist +sdk +sdkman +Sdl +sdurrheimer +Seagal +searchterm +seccomp +securityenabled +securitymap +securitytype +segfault +selectables +selectionkeyhandler +selectiveanf +selectivecps +selectorpolltimeoutmillis +selfupdate +selinux +semver +sendemail +sendperiod +serialfile +serialno +serverlist +servername +serverurl +serviceproperties +serviceuser +servlet +setab +setaf +setalias +setapp +setbit +setdefaultdevhubusername +setdefaulttimeout +setdefaultusername +setenv +setex +setnx +setopt +setprompt +setrange +sfcl +sfcontainer +sfcw +sfdc +sfdev +sfdx +sfdxcli +sfdxurl +sfdxurlfile +sfffe +sfgb +sfgc +sfgcom +sfge +sfn +sfprod +sfroute +SFSB +sfsr +sfsu +sftp +sfx +sgem +sgr +sgrep +sgtatham +shasum +sheerun +shellcheck +shellinit +shellperson +SHELLPROXY +shitload +SHLVL +shm +Shohei +shopt +shortlist +shortlog +shortname +shortstat +SHOWCOLORHINTS +showcurrentpatch +showdeprecated +SHOWDIRTYSTATE +showfiles +showformat +showmigrations +showpkg +SHOWSTASHSTATE +showsubclasses +SHOWUNTRACKEDFILES +showupstream +shpotify +shuf +shunit +Shyamshankar +sid +sidekiq +sideload +SIGINT +SIGKILL +sigs +SIMBL +Sindre +sindresorhus +singlechar +singlepackage +Sint +sinterstore +sirech +sismember +sitecookbooks +sitesearch +sjis +skintone +skiptraceflag +skitch +slaveof +slicehost +sln +slogin +slp +smacs +smartlist +smartsync +smcup +smembers +smerge +smkx +Smood +smove +smt +smtp +Smurf +snapshotname +snowboarder +sobject +sobjectid +sobjecttreefiles +sobjecttype +sobjecttypecategory +socio +socw +softlayer +solaris +som +soq +soql +Sorhus +sorin +sortconip +sortcons +sortnr +sortr +sourceapiversion +sourced +sourcedir +sourcefile +sourceforge +sourceorg +sourcepath +sourcetype +sourcing +soww +soyc +spacewander +spam +spd +spearce +speartail +spf +spi +Spivak +splitbrain +splitlines +splunk +spock +spop +spork +spotify +springframework +sprintf +sprunge +spu +spx +sql +sqlall +sqlc +sqlclear +sqlcustom +sqldropindexes +sqlflush +sqlindexes +sqlinitialdata +sqlq +sqlsan +sqlsequencereset +sqltracelisteners +squashmigrations +srake +srandmember +src +srem +ssh +sshd +sshkey +sshkeyfile +sshkeypassphrase +sshpassword +sshport +sshpublickeyfile +sshuser +ssl +sslproxyhost +sslproxyport +ssm +sso +sst +sstat +stackoverflow +stacktrace +stagedstr +standalone +standaloneonly +startapp +startpage +startpost +startproject +startswith +startus +statd +statedb +statefile +statefulset +statelist +statementcachesize +statementleakreclaim +statementleaktimeout +statementtimeout +STATESEPARATOR +staticlib +statuspost +stderr +stdin +stdio +stdlayout +stdlib +stdout +steadypoolsize +stedolan +steeef +sterr +stevelosh +stgit +stil +STITLE +stn +stoppedservers +stoppedservices +stoppost +stopwait +storeprotocol +storeprotocolclass +stp +strfile +strftime +stringification +stringified +stringify +stripspace +strlen +strverscmp +Strzelecki +sts +stt +stty +stu +stylesheets +subcmds +subdigital +subdir +subdomain +subfolder +Subhaditya +subl +sublimemerge +sublimetext +subm +subnut +subpage +subpath +subscriberfile +subscriberorg +subservices +subshells +subspec +substr +subsubcmds +Subsubcommands +Subsubsubcommands +sudo +sudoedit +suitenames +sunaku +sunion +sunionstore +supad +superaccessors +supervisorctl +supervisord +suppresscc +suprl +suprm +suprr +suprs +supso +supsr +supu +Suraj +surryhill +suse +svcat +svg +svm +svn +svnsync +svntrunk +swiftc +swiftpm +sxa +sxc +sxd +sxf +sxfn +sxm +sxn +sxp +sxu +sxw +sxy +sykora +symfony +symkinds +symlink +Symlinking +symref +syms +syncdb +SYNOPSYS +syns +syohex +sys +sysadmins +sysctl +syslog +sysread +sysroot +systemadmin +systemctl +systemd +systeminfo +systemproperties +Syu +Syua +Syy +Tabone +tagname +tailcalls +Tajikistan +takedir +takegit +takeurl +tanabata +tarball +tarfile +targetcut +targetdevhubusername +targetprotocol +targetted +targetusername +Tasche +Tascii +taskwarrior +Tassilo +tatooine +tavric +tbz +tcl +tcp +tcpdump +tcpip +tcpnodelay +tcsh +tdiff +tdiffstr +tempdir +tempfile +tempfilename +TEMPLATENAME +terday +termcap +termcolor +Termfile +terminalapp +terminfo +terminitor +termsupport +termux +TERMWIDTH +terraform +terremark +testflag +testfunc +testlevel +testlog +testname +testng +testrb +testrunid +testrunner +testserver +textastic +textasticapp +textconv +textfile +textmate +tformat +tfstate +tftp +tfvars +tgz +thedir +thefuck +themeisfresh +thememsg +there're +thibault +thisfcn +Thoumie +threadpool +threadpoolid +thu +tif +timeoutmsec +timeremaining +timetolive +timewait +timothybasanov +tion +titlebar +tjkirch +tkachenko +tkdiff +tkss +tksv +tldr +Tlp +tls +tlscacert +tlscert +tlsciphers +tlsenabled +tlskey +tlsrollbackenabled +tlsverify +tlz +tmp +tmpdir +tmpfile +tmpfs +tmux +tmuxinator +tne +tnn +tobed +todo +Tokenise +tokenized +tolower +tomee +tonotdo +toolchain +toolcp +toplevel +Toponce +torrez +torromeo +tortoisemerge +totp +totpkey +Touron +tput +traceroute +trackball +transactionlogdir +transactionsupport +transferencoding +transprotocol +transprotocolclass +trapd +trconf +triggerevents +triggername +trins +trinsd +trizen +trloc +trlst +trmir +Troiae +Trojanowski +trorph +trre +trrem +trrep +trsu +trunc +trupd +trupg +tsdh +tsl +ttl +ttr +ttyctl +ttys +tview +twohead +txl +txn +txo +txs +txz +tycho +typechecking +typescriptlang +typesetsilent +typespec +typoes +tzst +uapprox +uberjar +Ubfksu +ubuntu +udp +uescape +UFE +ufw +uid +ukpog +ULCORNER +ulimit +Ullrich +ultiple +umask +umd +umich +unace +unalias +uname +unarchive +Uncomment +uncommit +uncompress +uncurry +undelete +undeploy +unedit +unescape +unexport +unexpose +unfunction +unhash +unheap +unhost +unicode +unidiff +unindex +uninst +uninstall +uninstalling +unionbedg +uniq +uniqid +uniquetablenames +unittest +universalarchive +unixfs +unixstamp +unlimit +unlzma +unmark +unmatch +unmonitor +unmute +unpause +unrar +unreachability +unsetopt +unshallow +unshare +unstagedstr +unstartup +unsubscribe +untag +unversioned +unwatch +unwip +unxz +unzstd +updatedb +updateonsave +updatestartuptty +upgr +upgradable +upgradetype +uploadpack +upperip +upsert +urandom +URCORNER +uri +url +urldecode +urlencode +urllib +urlmatch +urlonly +urlparse +urlstring +urltools +urxvt +usb +usbmux +usejavacp +uselimit +usemasterpassword +usergroups +userguide +userland +username +userns +userpass +userpassword +usetoolingapi +usetty +usr +utc +utf +utils +utm +uucp +UUID +Vagrantfile +vagrantup +valentinbud +validateatmostonceperiod +validateddeployrequestid +validateschema +validationclassname +validationmethod +validationtable +Valodim +vals +varargs +vared +varkey +varname +vaultproject +vba +vbl +vbm +vbo +vbox +vbqs +vbr +vbu +vcf +vcmp +vcs +vcsa +vdf +vectorize +Venant +vendored +venv +Verhoef +Verma +VERSINFO +versioncomp +versiondescription +versioned +versioning +versionname +versionnumber +versiontagprefix +verstr +vfs +vgi +vgrepping +vgs +vguerci +vhost +vhsp +vicmd +viewtopic +viins +vimdiff +vimgrep +vimrc +violenz +viopp +virtenv +virtualbox +virtualenv +virtualenvwrapper +virtualizing +virtualservers +virumque +visitpage +visualforce +visualstudio +VMDK +VMs +vmwarefusion +vmwarevcloudair +vmwarevsphere +vnc +vncviewer +vnd +voggom +Voldemort +volumedriver +vonnegut +Vop +vopts +vpaivatorres +vpc +vpli +vpll +vplu +vplun +vpr +vrdp +vre +vrp +vsc +vsca +vscd +vscde +vscg +vscie +vscl +vscn +vscode +vscodium +vscr +vscu +vscue +vscv +vscw +vsh +vsix +vsp +vsplit +vssh +vsshc +vssp +vst +VTE +vterm +Vue +vuejs +vulns +vulscan +vundle +vup +vvsp +vvv +vwxyz +vydpig +waittime +wakeonlan +walle +wantlist +warpdir +warprc +wav +wclip +wcomp +Webchat +weblog +webm +webrick +webscr +webserver +website +webtraffic +Wegner +Weiming +Weirich +Wez +wfilter +wget +whatchanged +whatisthor +whatthecommit +whatwg +whitespacelist +whl +whoami +wiki +wikipedia +wil +willmendesneto +wincmd +windowid +windowsdomain +windowspassword +windowsuser +wip +wjst +wks +wlne +wolframalpha +womens +wordbits +WORDBREAKS +WORDCHARS +wordlist +wordpress +workaround +workdir +workflow +workon +workpass +workqueues +workspaces +worktree +would've +wrapjdbcobjects +writetimeoutmillis +WSL +wslpath +wtf +wtfpl +www +wwwrun +Wzf +xargs +xcb +xcconfig +xcdd +xchm +xclick +xclip +xcode +xcodebuild +xcodeproj +xcp +xcsel +xcselv +xcworkspace +XDCHDSBDSDG +xdg +xdvi +xfn +xfree +xfs +xit +XIVIEWER +xjnmahqewy +xkcd +Xkten +XLBUFFER +xlbuflines +xml +xnode +xontab +xor +Xout +xperl +xphp +xpi +xpm +xpowered +xprop +xpython +XRBUFFER +xrbuflines +xruby +xsel +xshell +xstrat +xterm +XTRACE +xudmec +xunit +xvf +xvjf +xxd +xxdiff +Xxjn +xzcat +yaconf +yain +yainsd +yaloc +yalst +yamir +yaml +yandex +yandsearch +Yanovich +yaorph +yarem +yarep +yarnpkg +yarnrc +yasu +yaupd +yaupg +ybalrid +ycc +yesorno +yga +ygi +ygl +ygr +ygrm +ygu +yii +yiic +yiiframework +yireo +yleo +ylep +yli +yln +ylnf +yls +ymc +yml +yolo +Yonchu +YOSHIDA +yout +youtube +yrl +yrm +yrun +yst +ytc +yuc +yui +yuil +yuyuchu +yws +yyy +yzf +zadd +zake +zal +zall +zas +zbell +ZCA +zcard +zcl +zcompcache +zcompdump +zcompile +Zconvey +zcount +zcu +zcurses +zdbc +zdbcm +zdbm +zdbmigrate +zdbr +zdbreset +ZDgw +zdharma +zdirs +zdotdir +zdup +zenerate +zenmap +zerver +zfs +zgen +zgrep +zhimingwang +zhse +zic +zif +zin +zincrby +zinit +zinr +zinterstore +zipalign +zipfile +zkat +zle +zleparameter +zlicenses +zll +zlogin +zlogout +zlp +zlr +zls +zlu +zma +zmodload +zmr +zms +znr +znt +zocmez +zonsole +zoxide +zpa +zparseopts +zpatch +zpattern +zpch +zpchk +zpd +zplg +zplug +zplugin +zproduct +zprofile +zps +zpt +zrake +zrange +zrangebyscore +zrank +zref +zregexparse +zrem +zremrangebyrank +zremrangebyscore +zrevrange +zrevrangebyscore +zrevrank +zrl +zrm +zrn +zrr +zrs +zscore +zse +zsh +zsh'ed +zshaddhistory +zshcmd +zshcommands +zshcompfunc +zshconfig +zshell +zshenv +zshexpn +zshids +zshrc +zshtheme +zshwiki +zshzle +zsi +zsocket +Zsolt +zsource +zspec +zsr +zsrc +zst +Zstandard +zstat +zstd +zstdcat +zstyle +zsw +ztart +ztos +zucumber +zunctional +zunionstore +zunits +zunner +zup +zutil +zvcmp +zve +zweep +zwip +ZWJ +zwp +zxvf +zyg +zypper +zzz diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt new file mode 100644 index 000000000..93dfa201c --- /dev/null +++ b/.github/actions/spelling/patterns.txt @@ -0,0 +1,73 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns + +# YouTube +https?://(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_]* +<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"] +\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]* +# Google Analytics +\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]* +# Google APIs +\bgoogleapis\.com/[a-z]+/v\d+/[a-z]+/[@./?=\w]+ +\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|) +# Google Calendar +\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+ +\w+\@group\.calendar\.google\.com\b +# Google DataStudio +\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|) +# The leading `/` here is as opposed to the `\b` above +# ... a short way to match `https://` or `http://` since most urls have one of those prefixes +# Google Docs +/docs\.google\.com/[a-z]+/d/(?:e/|)[0-9a-zA-Z_-]+/? +# Google Drive +\bdrive\.google\.com/file/d/[0-9a-zA-Z_?=]* +# Google Groups +\bgroups\.google\.com/(?:forum/#!|d/)(?:msg|topic)/[^/]+/[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+|) +# Google themes +themes\.googleusercontent\.com/static/fonts/[^/]+/v\d+/[^.]+. +# Google CDN +\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]* +# Goo.gl +/goo\.gl/[a-zA-Z0-9]+ +# Google Chrome Store +\bchrome\.google\.com/webstore/detail/\w*(?:/\w*|) +# Google Books +\bbooks\.google\.(?:\w{2,4})/books\?[-\w\d=&#.]* +# Google Fonts +\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]* + +# GitHub SHAs +\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b +(?:\[[0-9a-f]+\]\(https:/|)/(?:www\.|)github\.com/[^/]+/[^/]+(?:/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) +\bgithub\.com/[^/]+/[^/]+[@#][0-9a-f]+\b +# githubusercontent +/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]* +# gist github +/gist\.github\.com/[^/]+/[0-9a-f]+ +# git.io +\bgit\.io/[0-9a-zA-Z]+ +# GitHub JSON +"node_id": "[-a-zA-Z=;:/0-9+]*" +# Contributor +\[[^\]]+]\(https://github\.com/[^/]+\) +# GHSA +GHSA(?:-[0-9a-z]{4}){3} + +LS_COLORS=(["']).*?\g{-1} + +(\\?)%[a-zA-Z]+\g{-1}(?!%) + +# URL escaped characters +\%[0-9A-F]{2} +# hex digits including css/html color classes: +(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b + +# https://www.gnu.org/software/groff/manual/groff.html +# man troff content +\\f[BCIPR] + +# Compiler flags +[\t "'`=]-[LPWXY] +[\t "'`=]-D(?!ebian) + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 000000000..a5ba6f639 --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,7 @@ +^attache$ +benefitting +occurence +Sorce +^[Ss]pae +^untill +^wether diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7ab7efdd6..cdadc1434 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,6 +14,7 @@ jobs: tests: name: Run tests runs-on: ${{ matrix.os }} + if: github.repository == 'ohmyzsh/ohmyzsh' strategy: matrix: os: [ubuntu-latest, macos-latest] diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml new file mode 100644 index 000000000..800761554 --- /dev/null +++ b/.github/workflows/project.yml @@ -0,0 +1,131 @@ +name: Project tracking +on: + issues: + types: [opened] + pull_request_target: + types: [opened, synchronize] + +jobs: + add-to-project: + name: Add to project + runs-on: ubuntu-latest + if: github.repository == 'ohmyzsh/ohmyzsh' + env: + GITHUB_TOKEN: ${{ secrets.PROJECT_TOKEN }} + steps: + - name: Read project data + env: + ORGANIZATION: ohmyzsh + PROJECT_NUMBER: "1" + run: | + # Get Project data + gh api graphql -f query=' + query($org: String!, $number: Int!) { + organization(login: $org){ + projectNext(number: $number) { + id + fields(first:20) { + nodes { + id + name + } + } + } + } + } + ' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json + + # Parse project data + cat >> $GITHUB_ENV <> $GITHUB_ENV + + - name: Classify Pull Request + if: github.event_name == 'pull_request_target' + run: | + touch plugins.list themes.list + + gh pr view ${{ github.event.pull_request.number }} \ + --repo ${{ github.repository }} \ + --json files --jq '.files.[].path' | awk -F/ ' + /^plugins\// { + plugins[$2] = 1 + } + /^themes\// { + gsub(/\.zsh-theme$/, "", $2) + themes[$2] = 1 + } + END { + for (plugin in plugins) { + print plugin >> "plugins.list" + } + for (theme in themes) { + print theme >> "themes.list" + } + } + ' + # If only one plugin is modified, add it to the plugin field + if [[ $(wc -l < plugins.list) = 1 ]]; then + echo "PLUGIN=$(cat plugins.list)" >> $GITHUB_ENV + fi + # If only one theme is modified, add it to the theme field + if [[ $(wc -l < themes.list) = 1 ]]; then + echo "THEME=$(cat themes.list)" >> $GITHUB_ENV + fi + + - name: Fill Pull Request fields in project + if: github.event_name == 'pull_request_target' + run: | + gh api graphql -f query=' + mutation ( + $project: ID! + $item: ID! + $plugin_field: ID! + $plugin_value: String! + $theme_field: ID! + $theme_value: String! + ) { + set_plugin: updateProjectNextItemField(input: { + projectId: $project + itemId: $item + fieldId: $plugin_field + value: $plugin_value + }) { + projectNextItem { + id + } + } + set_theme: updateProjectNextItemField(input: { + projectId: $project + itemId: $item + fieldId: $theme_field + value: $theme_value + }) { + projectNextItem { + id + } + } + } + ' -f project=$PROJECT_ID -f item=$ITEM_ID \ + -f plugin_field=$PLUGIN_FIELD_ID -f plugin_value=$PLUGIN \ + -f theme_field=$THEME_FIELD_ID -f theme_value=$THEME \ + --silent + diff --git a/README.md b/README.md index 5712c1701..94a200850 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi [![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) +[![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) ## Getting Started @@ -36,6 +37,8 @@ Oh My Zsh is installed by running one of the following commands in your terminal | **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | | **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | +_Note that previous configuration in `.zshrc` will be placed in `.pre-oh-my-zsh`. After installation you can move configuration you want to preserve into `.zshrc`._ + #### Manual inspection It's a good idea to inspect the install script from projects you don't yet know. You can do diff --git a/SECURITY.md b/SECURITY.md index cda53379f..7e5c8eed0 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,7 +3,8 @@ ## Supported Versions At the moment Oh My Zsh only considers the very latest commit to be supported. -We combine that with our fast response to incidents, so risk is minimized. +We combine that with our fast response to incidents and the automated updates +to minimize the time between vulnerability publication and patch release. | Version | Supported | |:-------------- |:------------------ | @@ -14,9 +15,10 @@ In the near future we will introduce versioning, so expect this section to chang ## Reporting a Vulnerability -If you find a vulnerability, email all the maintainers directly at: +**Do not submit an issue or pull request**: this might reveal the vulnerability. -- Robby: robby [at] planetargon.com -- Marc: hello [at] mcornella.com +Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh). -**Do not open an issue or Pull Request directly**, because it might reveal the vulnerability. +We will deal with the vulnerability privately and submit a patch as soon as possible. + +You can also submit your vulnerability report to [huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) and see if you can get a bounty reward. diff --git a/lib/cli.zsh b/lib/cli.zsh index d90cc6469..edc10e722 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -29,6 +29,7 @@ function _omz { 'reload:Reload the current zsh session' 'theme:Manage themes' 'update:Update Oh My Zsh' + 'version:Show the version' ) if (( CURRENT == 2 )); then @@ -36,7 +37,7 @@ function _omz { elif (( CURRENT == 3 )); then case "$words[2]" in changelog) local -a refs - refs=("${(@f)$(cd "$ZSH"; command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") + refs=("${(@f)$(builtin cd -q "$ZSH"; command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") _describe 'command' refs ;; plugin) subcmds=( 'disable:Disable plugin(s)' @@ -60,17 +61,19 @@ function _omz { # if command is "disable", only offer already enabled plugins valid_plugins=($plugins) else - valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) + valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) # if command is "enable", remove already enabled plugins [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) fi _describe 'plugin' valid_plugins ;; plugin::info) - local -aU plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) + local -aU plugins + plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) _describe 'plugin' plugins ;; theme::(set|use)) - local -aU themes=("$ZSH"/themes/*.zsh-theme(.N:t:r) "$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) + local -aU themes + themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r) "$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) _describe 'theme' themes ;; esac elif (( CURRENT > 4 )); then @@ -82,7 +85,7 @@ function _omz { # if command is "disable", only offer already enabled plugins valid_plugins=($plugins) else - valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) + valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) # if command is "enable", remove already enabled plugins [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) fi @@ -164,6 +167,7 @@ Available commands: reload Reload the current zsh session theme Manage themes update Update Oh My Zsh + version Show the version EOF } @@ -172,13 +176,13 @@ function _omz::changelog { local version=${1:-HEAD} format=${3:-"--text"} if ( - cd "$ZSH" + builtin cd -q "$ZSH" ! command git show-ref --verify refs/heads/$version && \ ! command git show-ref --verify refs/tags/$version && \ ! command git rev-parse --verify "${version}^{commit}" ) &>/dev/null; then cat >&2 < must be a valid branch, tag or commit. EOF @@ -189,9 +193,9 @@ EOF } function _omz::plugin { - (( $# > 0 && $+functions[_omz::plugin::$1] )) || { + (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] +Usage: ${(j: :)${(s.::.)0#_}} [options] Available commands: @@ -208,12 +212,12 @@ EOF local command="$1" shift - _omz::plugin::$command "$@" + $0::$command "$@" } function _omz::plugin::disable { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin disable [...]" + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} [...]" return 1 fi @@ -272,9 +276,10 @@ multi == 1 && length(\$0) > 0 { { print \$0 } " - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -284,10 +289,10 @@ multi == 1 && length(\$0) > 0 { } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! command zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi @@ -302,7 +307,7 @@ multi == 1 && length(\$0) > 0 { function _omz::plugin::enable { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin enable [...]" + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} [...]" return 1 fi @@ -347,9 +352,10 @@ multi == 1 && /^[^#]*\)/ { { print \$0 } " - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -359,10 +365,10 @@ multi == 1 && /^[^#]*\)/ { } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! command zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi @@ -377,7 +383,7 @@ multi == 1 && /^[^#]*\)/ { function _omz::plugin::info { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin info " + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} " return 1 fi @@ -424,7 +430,7 @@ function _omz::plugin::list { function _omz::plugin::load { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin load [...]" + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} [...]" return 1 fi @@ -471,9 +477,9 @@ function _omz::plugin::load { } function _omz::pr { - (( $# > 0 && $+functions[_omz::pr::$1] )) || { + (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] +Usage: ${(j: :)${(s.::.)0#_}} [options] Available commands: @@ -487,7 +493,7 @@ EOF local command="$1" shift - _omz::pr::$command "$@" + $0::$command "$@" } function _omz::pr::clean { @@ -528,7 +534,7 @@ function _omz::pr::test { # Check the input if ! [[ -n "$1" && "$1" =~ ^[[:digit:]]+$ ]]; then - echo >&2 "Usage: omz pr test " + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} " return 1 fi @@ -613,9 +619,9 @@ function _omz::reload { } function _omz::theme { - (( $# > 0 && $+functions[_omz::theme::$1] )) || { + (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] +Usage: ${(j: :)${(s.::.)0#_}} [options] Available commands: @@ -630,7 +636,7 @@ EOF local command="$1" shift - _omz::theme::$command "$@" + $0::$command "$@" } function _omz::theme::list { @@ -665,7 +671,7 @@ function _omz::theme::list { function _omz::theme::set { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz theme set " + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} " return 1 fi @@ -694,17 +700,18 @@ END { } ' - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ + local zdot="${ZDOTDIR:-$HOME}" + awk "$awk_script" "$zdot/.zshrc" > "$zdot/.zshrc.new" \ || { # Prepend ZSH_THEME= line to .zshrc if it doesn't exist cat < ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc + cat "$zdot/.zshrc" + } > "$zdot/.zshrc.new" \ + && command mv -f "$zdot/.zshrc" "$zdot/.zshrc.bck" \ + && command mv -f "$zdot/.zshrc.new" "$zdot/.zshrc" # Exit if the new .zshrc file wasn't created correctly [[ $? -eq 0 ]] || { @@ -714,10 +721,10 @@ EOF } # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc + if ! command zsh -n "$zdot/.zshrc"; then + _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." + command mv -f "$zdot/.zshrc" "$zdot/.zshrc.new" + command mv -f "$zdot/.zshrc.bck" "$zdot/.zshrc" return 1 fi @@ -732,7 +739,7 @@ EOF function _omz::theme::use { if [[ -z "$1" ]]; then - echo >&2 "Usage: omz theme use " + echo >&2 "Usage: ${(j: :)${(s.::.)0#_}} " return 1 fi @@ -754,13 +761,13 @@ function _omz::theme::use { } function _omz::update { - local last_commit=$(cd "$ZSH"; git rev-parse HEAD) + local last_commit=$(builtin cd -q "$ZSH"; git rev-parse HEAD) # Run update script if [[ "$1" != --unattended ]]; then - ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" --interactive || return $? else - ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" || return $? fi # Update last updated file @@ -770,10 +777,32 @@ function _omz::update { command rm -rf "$ZSH/log/update.lock" # Restart the zsh session if there were changes - if [[ "$1" != --unattended && "$(cd "$ZSH"; git rev-parse HEAD)" != "$last_commit" ]]; then + if [[ "$1" != --unattended && "$(builtin cd -q "$ZSH"; git rev-parse HEAD)" != "$last_commit" ]]; then # Old zsh versions don't have ZSH_ARGZERO local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" # Check whether to run a login shell [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" fi } + +function _omz::version { + ( + builtin cd -q "$ZSH" + + # Get the version name: + # 1) try tag-like version + # 2) try branch name + # 3) try name-rev (tag~ or branch~) + local version + version=$(command git describe --tags HEAD 2>/dev/null) \ + || version=$(command git symbolic-ref --quiet --short HEAD 2>/dev/null) \ + || version=$(command git name-rev --no-undefined --name-only --exclude="remotes/*" HEAD 2>/dev/null) \ + || version="" + + # Get short hash for the current HEAD + local commit=$(command git rev-parse --short HEAD 2>/dev/null) + + # Show version and commit hash + printf "%s (%s)\n" "$version" "$commit" + ) +} diff --git a/lib/git.zsh b/lib/git.zsh index 8623473b0..be9fa7e67 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -29,7 +29,7 @@ function git_prompt_info() { && upstream=" -> ${upstream}" fi - echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref}${upstream}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" + echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" } # Checks if working tree is dirty @@ -82,7 +82,7 @@ function git_remote_status() { fi if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" + git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote:gs/%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" fi echo $git_remote_status diff --git a/lib/nvm.zsh b/lib/nvm.zsh index 2fe57a8f4..a8989f9fe 100644 --- a/lib/nvm.zsh +++ b/lib/nvm.zsh @@ -2,5 +2,5 @@ function nvm_prompt_info() { which nvm &>/dev/null || return local nvm_prompt=${$(nvm current)#v} - echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}" + echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt:gs/%/%%}${ZSH_THEME_NVM_PROMPT_SUFFIX}" } diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index 48f033da6..e5535848b 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -30,7 +30,7 @@ function rvm_prompt_info() { local rvm_prompt rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) [[ -z "${rvm_prompt}" ]] && return 1 - echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt}${ZSH_THEME_RUBY_PROMPT_SUFFIX}" + echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt:gs/%/%%}${ZSH_THEME_RUBY_PROMPT_SUFFIX}" } ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 49f64400b..4035d10a1 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -10,7 +10,7 @@ function title { setopt localoptions nopromptsubst # Don't set the title if inside emacs, unless using vterm - [[ -n "$INSIDE_EMACS" && "$INSIDE_EMACS" != vterm ]] && return + [[ -n "${INSIDE_EMACS:-}" && "$INSIDE_EMACS" != vterm ]] && return # if $2 is unset use $1 as default # if it is set and empty, leave it as is diff --git a/plugins/1password/1password.plugin.zsh b/plugins/1password/1password.plugin.zsh new file mode 100644 index 000000000..5af5ebb2b --- /dev/null +++ b/plugins/1password/1password.plugin.zsh @@ -0,0 +1,46 @@ +if (( ${+commands[op]} )); then + eval "$(op completion zsh)" + compdef _op op +fi + +# opswd puts the password of the named service into the clipboard. If there's a +# one time password, it will be copied into the clipboard after 5 seconds. The +# clipboard is cleared after another 10 seconds. +function opswd() { + if [[ $# -lt 1 ]]; then + echo "Usage: opswd " + return 1 + fi + + local service=$1 + + # If not logged in, print error and return + op list users > /dev/null || return + + local password + # Copy the password to the clipboard + if ! password=$(op get item "$service" --fields password 2>/dev/null); then + echo "error: could not obtain password for $service" + return 1 + fi + + echo -n "$password" | clipcopy + echo "✔ password for $service copied to clipboard" + + # If there's a one time password, copy it to the clipboard after 5 seconds + local totp + if totp=$(op get totp "$service" 2>/dev/null) && [[ -n "$totp" ]]; then + sleep 10 && echo -n "$totp" | clipcopy + echo "✔ TOTP for $service copied to clipboard" + fi + + (sleep 20 && clipcopy /dev/null) &! +} + +function _opswd() { + local -a services + services=("${(@f)$(op list items --categories Login 2>/dev/null | op get item - --fields title 2>/dev/null)}") + [[ -z "$services" ]] || compadd -a -- services +} + +compdef _opswd opswd diff --git a/plugins/1password/README.md b/plugins/1password/README.md new file mode 100644 index 000000000..f6790ca8a --- /dev/null +++ b/plugins/1password/README.md @@ -0,0 +1,35 @@ +# 1Password + +This plugin adds 1Password functionality to oh-my-zsh. + +To use, add `1password` to the list of plugins in your `.zshrc` file: + +```zsh +plugins=(... 1password) +``` + +Then, you can use the command `opswd` to copy passwords for services into your +clipboard. + +## `opswd` + +The `opswd` command is a wrapper around the `op` command. It takes a service +name as an argument and copies the password for that service to the clipboard. + +If the service also contains a TOTP, it is copied to the clipboard after 10 seconds. +Finally, after 20 seconds, the clipboard is cleared. + +The function has completion support, so you can use tab completion to select +which service you want to get. + +For example, `opswd github.com` will put your GitHub password into your clipboard, and if +a TOTP is available, it will be copied to the clipboard after 10 seconds. + +> NOTE: you need to be logged in for `opswd` to work. See: +> +> - [Sign in or out](https://support.1password.com/command-line/#sign-in-or-out) +> - [Session management](https://support.1password.com/command-line/#appendix-session-management) + +## Requirements + +- [1Password's command line utility](https://1password.com/downloads/command-line/). diff --git a/plugins/aliases/.gitignore b/plugins/aliases/.gitignore new file mode 100644 index 000000000..bee8a64b7 --- /dev/null +++ b/plugins/aliases/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 481c1bd4e..bfb6ab8c4 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -1,21 +1,22 @@ -## Aliases Cheatsheet +# Aliases cheatsheet **Maintainer:** [@hqingyi](https://github.com/hqingyi) With lots of 3rd-party amazing aliases installed, this plugin helps list the shortcuts that are currently available based on the plugins you have enabled. -Enable this plugin by adding it to your `plugins` definition in `~/.zshrc`. +To use it, add `aliases` to the plugins array in your zshrc file: - ``` - plugins=(aliases) - ``` +```zsh +plugins=(aliases) +``` Requirements: Python needs to be installed. -### Usage +## Usage -``` - acs: group all alias - acs $keywordquickly filter alias & highlight -``` +- `acs`: show all aliases by group. + +- `acs `: filter aliases by `` and highlight. + + ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) diff --git a/plugins/aliases/aliases.plugin.zsh b/plugins/aliases/aliases.plugin.zsh index 28d8fba24..b3d9340f0 100644 --- a/plugins/aliases/aliases.plugin.zsh +++ b/plugins/aliases/aliases.plugin.zsh @@ -2,9 +2,10 @@ # # - acs: alias cheatsheet # group alias by command, pass addition argv to grep. -ALIASES_PLUGIN_ROOT=$(cd `dirname $0` && pwd) function acs(){ - which python >>/dev/null - [[ $? -eq 1 ]] && echo "[error]no python executable detected!" && return - alias | python $ALIASES_PLUGIN_ROOT/cheatsheet.py $@ + (( $+commands[python] )) || { + echo "[error] No python executable detected" + return + } + alias | python ${functions_source[$0]:h}/cheatsheet.py $@ } diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index d6d507b92..694afd31c 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -26,16 +26,16 @@ def cheatsheet(lines): target_aliases.extend(group_list) return cheatsheet -def pretty_print_group(key, aliases, hightlight=None): +def pretty_print_group(key, aliases, highlight=None): if len(aliases) == 0: return group_hl_formatter = lambda g, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'red') for part in ('[%s]' % g).split(hl)]) alias_hl_formatter = lambda alias, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'green') for part in ('\t%s = %s' % alias[0:2]).split(hl)]) group_formatter = lambda g: termcolor.colored('[%s]' % g, 'red') alias_formatter = lambda alias: termcolor.colored('\t%s = %s' % alias[0:2], 'green') - if hightlight and len(hightlight)>0: - print (group_hl_formatter(key, hightlight)) - print ('\n'.join([alias_hl_formatter(alias, hightlight) for alias in aliases])) + if highlight and len(highlight)>0: + print (group_hl_formatter(key, highlight)) + print ('\n'.join([alias_hl_formatter(alias, highlight) for alias in aliases])) else: print (group_formatter(key)) print ('\n'.join([alias_formatter(alias) for alias in aliases])) diff --git a/plugins/aliases/termcolor.py b/plugins/aliases/termcolor.py index f11b824b2..bb725e905 100644 --- a/plugins/aliases/termcolor.py +++ b/plugins/aliases/termcolor.py @@ -21,7 +21,7 @@ # # Author: Konstantin Lepa -"""ANSII Color formatting for output in terminal.""" +"""ANSI Color formatting for output in terminal.""" from __future__ import print_function import os diff --git a/plugins/ant/README.md b/plugins/ant/README.md index 5f88984ac..571237223 100644 --- a/plugins/ant/README.md +++ b/plugins/ant/README.md @@ -2,9 +2,9 @@ This plugin provides completion for [Ant](https://ant.apache.org/). -To use it add ant to the plugins array in your zshrc file. +To use it, add `ant` to the plugins array in your zshrc file: -```bash +```zsh plugins=(... ant) ``` diff --git a/plugins/ant/_ant b/plugins/ant/_ant new file mode 100644 index 000000000..24a8e3667 --- /dev/null +++ b/plugins/ant/_ant @@ -0,0 +1,22 @@ +#compdef ant + +_ant_does_target_list_need_generating () { + [[ ! -f .ant_targets ]] && return 0 + [[ build.xml -nt .ant_targets ]] && return 0 + return 1 +} + +_ant () { + if [[ ! -f build.xml ]]; then + return + fi + + if ! _ant_does_target_list_need_generating; then + return + fi + + ant -p | awk -F " " 'NR > 5 { print lastTarget } { lastTarget = $1 }' >| .ant_targets + compadd -- "$(cat .ant_targets)" +} + +_ant "$@" diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 0b738c94f..5f6382521 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,16 +1,2 @@ -_ant_does_target_list_need_generating () { - [ ! -f .ant_targets ] && return 0; - [ build.xml -nt .ant_targets ] && return 0; - return 1; -} - -_ant () { - if [ -f build.xml ]; then - if _ant_does_target_list_need_generating; then - ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets - fi - compadd -- `cat .ant_targets` - fi -} - -compdef _ant ant +# Default to colored output +export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger' diff --git a/plugins/arcanist/README.md b/plugins/arcanist/README.md index f49e4344b..07e766977 100644 --- a/plugins/arcanist/README.md +++ b/plugins/arcanist/README.md @@ -14,6 +14,7 @@ plugins=(... arcanist) | ------- | ---------------------------------- | | ara | `arc amend` | | arb | `arc branch` | +| arbl | `arc bland` | | arco | `arc cover` | | arci | `arc commit` | | ard | `arc diff` | @@ -24,6 +25,7 @@ plugins=(... arcanist) | ardpc | `arc diff --plan-changes` | | are | `arc export` | | arh | `arc help` | +| arho | `arc hotfix` | | arl | `arc land` | | arli | `arc lint` | | arls | `arc list` | diff --git a/plugins/arcanist/arcanist.plugin.zsh b/plugins/arcanist/arcanist.plugin.zsh index 88e6713e4..380eede75 100644 --- a/plugins/arcanist/arcanist.plugin.zsh +++ b/plugins/arcanist/arcanist.plugin.zsh @@ -5,6 +5,7 @@ alias ara='arc amend' alias arb='arc branch' +alias arbl='arc bland' alias arco='arc cover' alias arci='arc commit' @@ -17,6 +18,7 @@ alias ardp='arc diff --preview' # creates a new diff in the phab interface alias are='arc export' alias arh='arc help' +alias arho='arc hotfix' alias arl='arc land' alias arli='arc lint' alias arls='arc list' diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md index c8ec1de1e..fd772c61a 100644 --- a/plugins/archlinux/README.md +++ b/plugins/archlinux/README.md @@ -17,8 +17,10 @@ plugins=(... archlinux) | pacin | `sudo pacman -S` | Install packages from the repositories | | pacins | `sudo pacman -U` | Install a package from a local file | | pacinsd | `sudo pacman -S --asdeps` | Install packages as dependencies of another package | +| paclean | `sudo pacman -Sc` | Clean out old and unused caches and packages | | pacloc | `pacman -Qi` | Display information about a package in the local database | | paclocs | `pacman -Qs` | Search for packages in the local database | +| paclr | `sudo pacman -Scc` | Remove all files from the cache | | paclsorphans | `sudo pacman -Qdt` | List all orphaned packages | | pacmir | `sudo pacman -Syy` | Force refresh of all package lists after updating mirrorlist | | pacre | `sudo pacman -R` | Remove packages, keeping its settings and dependencies | @@ -52,6 +54,8 @@ upgrades were available. Use `pacman -Que` instead. | Alias | Command | Description | |---------|-------------------------------------------------|-------------------------------------------------------------------------| +| auclean | `sudo aura -Sc` | Clean out old and unused caches and packages | +| auclr | `sudo aura -Scc` | Remove all files from the cache | | auin | `sudo aura -S` | Install packages from the repositories | | aurin | `sudo aura -A` | Install packages from the repositories | | auins | `sudo aura -U` | Install a package from a local file | @@ -84,6 +88,8 @@ upgrades were available. Use `pacman -Que` instead. | Alias | Command | Description | |---------|-----------------------------------|---------------------------------------------------------------------| +| pacclean| `pacaur -Sc` | Clean out old and unused caches and packages | +| pacclr | `pacaur -Scc` | Remove all files from the cache | | pain | `pacaur -S` | Install packages from the repositories | | pains | `pacaur -U` | Install a package from a local file | | painsd | `pacaur -S --asdeps` | Install packages as dependencies of another package | @@ -106,6 +112,8 @@ upgrades were available. Use `pacman -Que` instead. | Alias | Command | Description | |---------|-----------------------------------|---------------------------------------------------------------------| | trconf | `trizen -C` | Fix all configuration files with vimdiff | +| trclean | `trizen -Sc` | Clean out old and unused caches and packages | +| trclr | `trizen -Scc` | Remove all files from the cache | | trin | `trizen -S` | Install packages from the repositories | | trins | `trizen -U` | Install a package from a local file | | trinsd | `trizen -S --asdeps` | Install packages as dependencies of another package | @@ -128,6 +136,8 @@ upgrades were available. Use `pacman -Que` instead. | Alias | Command | Description | |---------|--------------------------------|-------------------------------------------------------------------| | yaconf | `yay -Pg` | Print current configuration | +| yaclean | `yay -Sc` | Clean out old and unused caches and packages | +| yaclr | `yay -Scc` | Remove all files from the cache | | yain | `yay -S` | Install packages from the repositories | | yains | `yay -U` | Install a package from a local file | | yainsd | `yay -S --asdeps` | Install packages as dependencies of another package | @@ -170,3 +180,4 @@ whether the package manager is installed, checked in the following order: - ornicar - thibault.duplessis@gmail.com - Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info - Jeff M. Hubbard - jeffmhubbard@gmail.com +- K. Harishankar(harishnkr) - hari2menon1234@gmail.com diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 0c5782d98..4f1364779 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -5,7 +5,9 @@ # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips alias pacupg='sudo pacman -Syu' alias pacin='sudo pacman -S' +alias paclean='sudo pacman -Sc' alias pacins='sudo pacman -U' +alias paclr='sudo pacman -Scc' alias pacre='sudo pacman -R' alias pacrem='sudo pacman -Rns' alias pacrep='pacman -Si' @@ -88,6 +90,8 @@ fi if (( $+commands[aura] )); then alias auin='sudo aura -S' alias aurin='sudo aura -A' + alias auclean='sudo aura -Sc' + alias auclr='sudo aura -Scc' alias auins='sudo aura -U' alias auinsd='sudo aura -S --asdeps' alias aurinsd='sudo aura -A --asdeps' @@ -115,6 +119,8 @@ if (( $+commands[aura] )); then fi if (( $+commands[pacaur] )); then + alias pacclean='pacaur -Sc' + alias pacclr='pacaur -Scc' alias paupg='pacaur -Syu' alias pasu='pacaur -Syu --noconfirm' alias pain='pacaur -S' @@ -138,6 +144,8 @@ if (( $+commands[trizen] )); then alias trupg='trizen -Syua' alias trsu='trizen -Syua --noconfirm' alias trin='trizen -S' + alias trclean='trizen -Sc' + alias trclr='trizen -Scc' alias trins='trizen -U' alias trre='trizen -R' alias trrem='trizen -Rns' @@ -155,6 +163,8 @@ fi if (( $+commands[yay] )); then alias yaconf='yay -Pg' + alias yaclean='yay -Sc' + alias yaclr='yay -Scc' alias yaupg='yay -Syu' alias yasu='yay -Syu --noconfirm' alias yain='yay -S' diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh index c386d57ed..3016282c6 100644 --- a/plugins/asdf/asdf.plugin.zsh +++ b/plugins/asdf/asdf.plugin.zsh @@ -2,18 +2,26 @@ ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" ASDF_COMPLETIONS="$ASDF_DIR/completions" +# If not found, check for archlinux/AUR package (/opt/asdf-vm/) +if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && [[ -f "/opt/asdf-vm/asdf.sh" ]]; then + ASDF_DIR="/opt/asdf-vm" + ASDF_COMPLETIONS="$ASDF_DIR" +fi + # If not found, check for Homebrew package if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - ASDF_DIR="$(brew --prefix asdf)" - ASDF_COMPLETIONS="$ASDF_DIR/etc/bash_completion.d" + brew_prefix="$(brew --prefix asdf)" + ASDF_DIR="${brew_prefix}/libexec" + ASDF_COMPLETIONS="${brew_prefix}/etc/bash_completion.d" + unset brew_prefix fi # Load command if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" + . "$ASDF_DIR/asdf.sh" - # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" - fi + # Load completions + if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then + . "$ASDF_COMPLETIONS/asdf.bash" + fi fi diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 3117c6da4..8593353b2 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -8,6 +8,7 @@ autojump_paths=( /etc/profile.d/autojump.zsh # manual installation /etc/profile.d/autojump.sh # Gentoo installation /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 011bbd8b4..d6f4f4600 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -14,11 +14,12 @@ plugins=(... aws) * `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. Run `asp` without arguments to clear the profile. +* `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. -* `acp []`: in addition to `asp` functionality, it actually changes the profile by - assuming the role specified in the `` configuration. It supports MFA and sets - `$AWS_ACCESS_KEY_ID`, `$AWS_SECRET_ACCESS_KEY` and `$AWS_SESSION_TOKEN`, if obtained. It - requires the roles to be configured as per the +* `acp [] []`: in addition to `asp` functionality, it actually changes + the profile by assuming the role specified in the `` configuration. It supports + MFA and sets `$AWS_ACCESS_KEY_ID`, `$AWS_SECRET_ACCESS_KEY` and `$AWS_SESSION_TOKEN`, if + obtained. It requires the roles to be configured as per the [official guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html). Run `acp` without arguments to clear the profile. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 2d095635b..920a7139d 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -21,6 +21,10 @@ function asp() { export AWS_DEFAULT_PROFILE=$1 export AWS_PROFILE=$1 export AWS_EB_PROFILE=$1 + + if [[ "$2" == "login" ]]; then + aws sso login + fi } # AWS profile switch @@ -41,6 +45,7 @@ function acp() { fi local profile="$1" + local mfa_token="$2" # Get fallback credentials for if the aws command fails or no command is run local aws_access_key_id="$(aws configure get aws_access_key_id --profile $profile)" @@ -54,9 +59,10 @@ function acp() { if [[ -n "$mfa_serial" ]]; then local -a mfa_opt - local mfa_token - echo -n "Please enter your MFA token for $mfa_serial: " - read -r mfa_token + if [[ -z "$mfa_token" ]]; then + echo -n "Please enter your MFA token for $mfa_serial: " + read -r mfa_token + fi if [[ -z "$sess_duration" ]]; then echo -n "Please enter the session duration in seconds (900-43200; default: 3600, which is the default maximum for a role): " read -r sess_duration @@ -151,8 +157,8 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { - [[ -z $AWS_PROFILE ]] && return - echo "${ZSH_THEME_AWS_PREFIX:=}" + [[ -n "$AWS_PROFILE" ]] || return + echo "${ZSH_THEME_AWS_PREFIX:=}" } if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then diff --git a/plugins/bazel/_bazel b/plugins/bazel/_bazel index 827ce545c..c34c572b0 100644 --- a/plugins/bazel/_bazel +++ b/plugins/bazel/_bazel @@ -164,7 +164,7 @@ _get_build_targets() { ;; esac completions=(${$(_bazel_b query "kind(\"${rule_re}\", ${pkg}:all)" 2>/dev/null)##*:}) - if ( (( ${#completions} > 0 )) && [[ $target_type != run ]] ); then + if ( (( ${#completions} > 0 )) && [[ $target_type != bin ]] ); then completions+=(all) fi echo ${completions[*]} diff --git a/plugins/bower/bower.plugin.zsh b/plugins/bower/bower.plugin.zsh index 3a40b3af0..c4f71c2ae 100644 --- a/plugins/bower/bower.plugin.zsh +++ b/plugins/bower/bower.plugin.zsh @@ -9,7 +9,7 @@ _bower_installed_packages () { } _bower () { - local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production + local -a _1st_arguments _no_color _dopts _save_dev _force_latest _production local expl typeset -A opt_args @@ -22,7 +22,7 @@ _bower () _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]') - _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]') + _force_latest=('(--force-latest)--force-latest[Force latest version on conflict]') _production=('(--production)--production[Do not install project devDependencies]') @@ -54,7 +54,7 @@ _bower () _arguments \ $_dopts \ $_save_dev \ - $_force_lastest \ + $_force_latest \ $_no_color \ $_production ;; @@ -62,7 +62,7 @@ _bower () _arguments \ $_dopts \ $_no_color \ - $_force_lastest + $_force_latest _bower_installed_packages compadd "$@" $(echo $bower_package_list) ;; diff --git a/plugins/branch/README.md b/plugins/branch/README.md index 56ab8da4b..a15dd22df 100644 --- a/plugins/branch/README.md +++ b/plugins/branch/README.md @@ -1,31 +1,47 @@ -# Branch +# Branch plugin -Displays the current Git or Mercurial branch fast. +This plugin displays the current Git or Mercurial branch, fast. If in a Mercurial repository, +also display the current bookmark, if present. + +To use it, add `branch` to the plugins array in your zshrc file: + +```zsh +plugins=(... branch) +``` ## Speed test -### Mercurial +- `hg branch`: -```shell -$ time hg branch -0.11s user 0.14s system 70% cpu 0.355 total -``` + ```console + $ time hg branch + 0.11s user 0.14s system 70% cpu 0.355 total + ``` -### Branch plugin +- branch plugin: -```shell -$ time zsh /tmp/branch_prompt_info_test.zsh -0.00s user 0.01s system 78% cpu 0.014 total -``` + ```console + $ time zsh /tmp/branch_prompt_info_test.zsh + 0.00s user 0.01s system 78% cpu 0.014 total + ``` ## Usage -Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) -adding `$(branch_prompt_info)` in your prompt like this: +Copy your theme to `$ZSH_CUSTOM/themes/` and modify it to add `$(branch_prompt_info)` in your prompt. +This example is for the `robbyrussell` theme: ```diff -- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme +index 2fd5f2cd..9d89a464 100644 +--- a/themes/robbyrussell.zsh-theme ++++ b/themes/robbyrussell.zsh-theme +@@ -1,5 +1,5 @@ + PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" +-PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)' ++PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(branch_prompt_info)' + + ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " ``` ## Maintainer diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh index 2e5659bdf..dd5871fdc 100644 --- a/plugins/branch/branch.plugin.zsh +++ b/plugins/branch/branch.plugin.zsh @@ -3,29 +3,33 @@ # Oct 2, 2015 function branch_prompt_info() { - # Defines path as current directory - local current_dir=$PWD - # While current path is not root path - while [[ $current_dir != '/' ]] - do - # Git repository - if [[ -d "${current_dir}/.git" ]] - then - echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} - return; + # Start checking in current working directory + local branch="" dir="$PWD" + while [[ "$dir" != '/' ]]; do + # Found .git directory + if [[ -d "${dir}/.git" ]]; then + branch="${"$(<"${dir}/.git/HEAD")"##*/}" + echo '±' "${branch:gs/%/%%}" + return fi - # Mercurial repository - if [[ -d "${current_dir}/.hg" ]] - then - if [[ -f "$current_dir/.hg/branch" ]] - then - echo '☿' $(<"$current_dir/.hg/branch") + + # Found .hg directory + if [[ -d "${dir}/.hg" ]]; then + if [[ -f "${dir}/.hg/branch" ]]; then + branch="$(<"${dir}/.hg/branch")" else - echo '☿ default' + branch="default" fi - return; + + if [[ -f "${dir}/.hg/bookmarks.current" ]]; then + branch="${branch}/$(<"${dir}/.hg/bookmarks.current")" + fi + + echo '☿' "${branch:gs/%/%%}" + return fi - # Defines path as parent directory and keeps looking for :) - current_dir="${current_dir:h}" + + # Check parent directory + dir="${dir:h}" done } diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 532dd9be7..070a083d0 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,5 +1,4 @@ alias brewp='brew pin' -alias brews='brew list -1' alias brewsp='brew list --pinned' alias bubo='brew update && brew outdated' alias bubc='brew upgrade && brew cleanup' @@ -7,3 +6,16 @@ alias bubu='bubo && bubc' alias buf='brew upgrade --formula' alias bcubo='brew update && brew outdated --cask' alias bcubc='brew upgrade --cask && brew cleanup' + +function brews() { + local formulae="$(brew leaves | xargs brew deps --installed --for-each)" + local casks="$(brew list --cask)" + + local blue="$(tput setaf 4)" + local bold="$(tput bold)" + local off="$(tput sgr0)" + + echo "${blue}==>${off} ${bold}Formulae${off}" + echo "${formulae}" | sed "s/^\(.*\):\(.*\)$/\1${blue}\2${off}/" + echo "\n${blue}==>${off} ${bold}Casks${off}\n${casks}" +} diff --git a/plugins/bundler/_bundler b/plugins/bundler/_bundler index ba647ab80..51678dd7c 100644 --- a/plugins/bundler/_bundler +++ b/plugins/bundler/_bundler @@ -18,6 +18,7 @@ case $state in "check[Determine whether the requirements for your application are installed]" \ "list[Show all of the gems in the current bundle]" \ "show[Show the source location of a particular gem in the bundle]" \ + "info[Show details of a particular gem in the bundle]" \ "outdated[Show all of the outdated gems in the current bundle]" \ "console[Start an IRB session in the context of the current bundle]" \ "open[Open an installed gem in the editor]" \ @@ -84,7 +85,7 @@ case $state in '(--verbose)--verbose[Enable verbose output mode]' ret=0 ;; - (open|show) + (open|show|info) _gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') ) if [[ $_gems != "" ]]; then _values 'gems' $_gems && ret=0 diff --git a/plugins/cargo/README.md b/plugins/cargo/README.md index 31bae4efe..93e69ae7f 100644 --- a/plugins/cargo/README.md +++ b/plugins/cargo/README.md @@ -1,11 +1,3 @@ # cargo -This plugin adds completion for the Rust build tool [`Cargo`](https://github.com/rust-lang/cargo). - -To use it, add `cargo` to the plugins array in your zshrc file: - -```zsh -plugins=(... cargo) -``` - -Updated on March 3rd, 2019, from [Cargo 0.34.0](https://github.com/rust-lang/cargo/releases/tag/0.34.0). +**Deprecated: use the [`rust`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/rust) plugin instead.** diff --git a/plugins/cargo/cargo.plugin.zsh b/plugins/cargo/cargo.plugin.zsh index 7082d2d55..e4b338207 100644 --- a/plugins/cargo/cargo.plugin.zsh +++ b/plugins/cargo/cargo.plugin.zsh @@ -1,23 +1,15 @@ -if (( $+commands[rustup] && $+commands[cargo] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_cargo" +print ${(%):-'%F{yellow}The `cargo` plugin is deprecated and has been moved to the `rust` plugin.'} +print ${(%):-'Please update your .zshrc to use the `%Brust%b` plugin instead.%f'} - # generate new completion file - ver="$(cargo --version)" - ver_file="$ZSH_CACHE_DIR/cargo_version" - comp_file="$ZSH_CACHE_DIR/completions/_cargo" +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated completion file +command rm -f "${0:A:h}/_cargo" "$ZSH_CACHE_DIR/cargo_version" - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - rustup completions zsh cargo >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _cargo - _comps[cargo]=_cargo - - unset ver ver_file comp_file -fi +(( ${fpath[(Ie)$ZSH/plugins/rust]} )) || { + fpath=("$ZSH/plugins/rust" $fpath) + source "$ZSH/plugins/rust/rust.plugin.zsh" +} diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh index ca46444cc..f4ff6f856 100644 --- a/plugins/catimg/catimg.plugin.zsh +++ b/plugins/catimg/catimg.plugin.zsh @@ -2,7 +2,7 @@ # catimg script by Eduardo San Martin Morote aka Posva # # https://posva.net # # # -# Ouput the content of an image to the stdout using the 256 colors of the # +# Output the content of an image to the stdout using the 256 colors of the # # terminal. # # GitHub: https://github.com/posva/catimg # ################################################################################ diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh index 713a03291..f58392428 100644 --- a/plugins/catimg/catimg.sh +++ b/plugins/catimg/catimg.sh @@ -2,7 +2,7 @@ # catimg script by Eduardo San Martin Morote aka Posva # # https://posva.net # # # -# Ouput the content of an image to the stdout using the 256 colors of the # +# Output the content of an image to the stdout using the 256 colors of the # # terminal. # # GitHub: https://github.com/posva/catimg # ################################################################################ diff --git a/plugins/chruby/README.md b/plugins/chruby/README.md index d373006a5..19eb15a8d 100644 --- a/plugins/chruby/README.md +++ b/plugins/chruby/README.md @@ -5,6 +5,7 @@ current Ruby version, and completion and a prompt function to display the Ruby v Supports brew and manual installation of chruby. To use it, add `chruby` to the plugins array in your zshrc file: + ```zsh plugins=(... chruby) ``` @@ -14,7 +15,7 @@ plugins=(... chruby) If you'd prefer to specify an explicit path to load chruby from you can set variables like so: -``` +```zsh zstyle :omz:plugins:chruby path /local/path/to/chruby.sh zstyle :omz:plugins:chruby auto /local/path/to/auto.sh ``` diff --git a/plugins/chruby/chruby.plugin.zsh b/plugins/chruby/chruby.plugin.zsh index 32f0525aa..d7a28d4e2 100644 --- a/plugins/chruby/chruby.plugin.zsh +++ b/plugins/chruby/chruby.plugin.zsh @@ -1,121 +1,94 @@ -# -# INSTRUCTIONS -# -# With either a manual or brew installed chruby things should just work. -# -# If you'd prefer to specify an explicit path to load chruby from -# you can set variables like so: -# -# zstyle :omz:plugins:chruby path /local/path/to/chruby.sh -# zstyle :omz:plugins:chruby auto /local/path/to/auto.sh -# -# TODO -# - autodetermine correct source path on non OS X systems -# - completion if ruby-install exists +## load chruby from different locations + +_source-from-omz-settings() { + local _chruby_path _chruby_auto + + zstyle -s :omz:plugins:chruby path _chruby_path || return 1 + zstyle -s :omz:plugins:chruby auto _chruby_auto || return 1 + + if [[ -r ${_chruby_path} ]]; then + source ${_chruby_path} + fi + + if [[ -r ${_chruby_auto} ]]; then + source ${_chruby_auto} + fi +} + +_source-from-homebrew() { + (( $+commands[brew] )) || return 1 + + local _brew_prefix + # check default brew prefix + if [[ -h /usr/local/opt/chruby ]];then + _brew_prefix="/usr/local/opt/chruby" + else + # ok , it is not default prefix + # this call to brew is expensive ( about 400 ms ), so at least let's make it only once + _brew_prefix=$(brew --prefix chruby) + fi + + [[ -r "$_brew_prefix" ]] || return 1 + + source $_brew_prefix/share/chruby/chruby.sh + source $_brew_prefix/share/chruby/auto.sh +} + +_load-chruby-dirs() { + local dir + for dir in "$HOME/.rubies" "$PREFIX/opt/rubies"; do + if [[ -d "$dir" ]]; then + RUBIES+=("$dir") + fi + done +} + +# Load chruby +if _source-from-omz-settings; then + _load-chruby-dirs +elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then + source /usr/local/share/chruby/chruby.sh + source /usr/local/share/chruby/auto.sh + _load-chruby-dirs +elif _source-from-homebrew; then + _load-chruby-dirs +fi + +unfunction _source-from-homebrew _source-from-omz-settings _load-chruby-dirs + + +## chruby utility functions and aliases # rvm and rbenv plugins also provide this alias alias rubies='chruby' - -_homebrew-installed() { - whence brew &> /dev/null - _xit=$? - if [ $_xit -eq 0 ];then - # ok , we have brew installed - # speculatively we check default brew prefix - if [ -h /usr/local/opt/chruby ];then - _brew_prefix="/usr/local/opt/chruby" - else - # ok , it is not default prefix - # this call to brew is expensive ( about 400 ms ), so at least let's make it only once - _brew_prefix=$(brew --prefix chruby) - fi - return 0 - else - return $_xit - fi -} - -_chruby-from-homebrew-installed() { - [ -r $_brew_prefix ] &> /dev/null -} - -_ruby-build_installed() { - whence ruby-build &> /dev/null -} - -_ruby-install-installed() { - whence ruby-install &> /dev/null -} - -# Simple definition completer for ruby-build -if _ruby-build_installed; then - _ruby-build() { compadd $(ruby-build --definitions) } - compdef _ruby-build ruby-build -fi - -_source_from_omz_settings() { - local _chruby_path - local _chruby_auto - - zstyle -s :omz:plugins:chruby path _chruby_path - zstyle -s :omz:plugins:chruby auto _chruby_auto - - if [[ -r ${_chruby_path} ]]; then - source ${_chruby_path} - fi - - if [[ -r ${_chruby_auto} ]]; then - source ${_chruby_auto} - fi -} - -_chruby_dirs() { - chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies) - for dir in chrubydirs; do - if [[ -d $dir ]]; then - RUBIES+=$dir - fi - done -} - -if _homebrew-installed && _chruby-from-homebrew-installed ; then - source $_brew_prefix/share/chruby/chruby.sh - source $_brew_prefix/share/chruby/auto.sh - _chruby_dirs -elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then - source /usr/local/share/chruby/chruby.sh - source /usr/local/share/chruby/auto.sh - _chruby_dirs -else - _source_from_omz_settings - _chruby_dirs -fi - -function ensure_chruby() { - $(whence chruby) -} - function current_ruby() { - local _ruby - _ruby="$(chruby |grep \* |tr -d '* ')" - if [[ $(chruby |grep -c \*) -eq 1 ]]; then - echo ${_ruby} - else - echo "system" - fi + local ruby + ruby="$(chruby | grep \* | tr -d '* ')" + if [[ $(chruby | grep -c \*) -eq 1 ]]; then + echo ${ruby} + else + echo "system" + fi } function chruby_prompt_info() { - echo "$(current_ruby)" + echo "${$(current_ruby):gs/%/%%}" } -# complete on installed rubies +# Complete chruby command with installed rubies _chruby() { - compadd $(chruby | tr -d '* ') - local default_path='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' - if PATH=${default_path} type ruby &> /dev/null; then - compadd system - fi + compadd $(chruby | tr -d '* ') + if PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" command ruby &>/dev/null; then + compadd system + fi } + compdef _chruby chruby + + +# Simple definition completer for ruby-build +if command ruby-build &> /dev/null; then + _ruby-build() { compadd $(ruby-build --definitions) } + compdef _ruby-build ruby-build +fi diff --git a/plugins/chucknorris/fortunes/chucknorris b/plugins/chucknorris/fortunes/chucknorris index 6ba5bb9b5..9e36ce89a 100644 --- a/plugins/chucknorris/fortunes/chucknorris +++ b/plugins/chucknorris/fortunes/chucknorris @@ -228,7 +228,7 @@ Chuck Norris once punched the ground to stop an earthquake. The resulting afters % Chuck Norris once round-house kicked a salesman. Over the phone. % -Chuck Norris once rounhouse kicked a football. The astronomical society now considers it a planet. +Chuck Norris once roundhouse kicked a football. The astronomical society now considers it a planet. % Chuck Norris once thought he was wrong. He was, however, mistaken. % @@ -342,7 +342,7 @@ Every time there's an earthquake, you know Chuck Norris is hungry. The earthquak % Evolution's driving mechanism is nature's desperate attempt to escape Chuck Norris. % -Fear of spiders is arachnaphobia. Fear of tight spaces is claustrophobia. Fear of Chuck Norris is called Logic. +Fear of spiders is arachnophobia. Fear of tight spaces is claustrophobia. Fear of Chuck Norris is called Logic. % Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face. % @@ -426,7 +426,7 @@ Some people ask for a Kleenex when they sneeze, Chuck Norris asks for a body bag % Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre. % -Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindess, and possibly foot sized brusies on the face. +Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindness, and possibly foot sized bruises on the face. % Taking Karate Lessons = $100, Buying MMA DVD's = $150, Subscribing to a UFC event = $50, Getting a Roundhouse Kick from Chuck Norris = PRICELESS. % @@ -452,7 +452,7 @@ The best part of waking up is not Folgers in your cup. it's knowing that Chuck N % The chief export of Chuck Norris is pain. % -The dictionary references Chuck Norris several times, he is metioned under Fear, Law, Order and Chucktatorship. +The dictionary references Chuck Norris several times, he is mentioned under Fear, Law, Order and Chucktatorship. % The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer. % @@ -468,7 +468,7 @@ The only way sharks will come near CN underwater is when CN is inside of a cage. % The only word that rhymes with orange is Chuck Norris. % -The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequal "The Last Skull Bender". +The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequel "The Last Skull Bender". % The quickest way to a man's heart is with Chuck Norris' fist. % diff --git a/plugins/colemak/colemak.plugin.zsh b/plugins/colemak/colemak.plugin.zsh index 8d3393c44..e6a46f296 100644 --- a/plugins/colemak/colemak.plugin.zsh +++ b/plugins/colemak/colemak.plugin.zsh @@ -19,6 +19,11 @@ bindkey -a 'N' vi-join bindkey -a 'j' vi-forward-word-end bindkey -a 'J' vi-forward-blank-word-end +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # New less versions will read this file directly export LESSKEYIN="${0:h:A}/colemak-less" diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh index 37faed672..981992d88 100644 --- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh @@ -16,8 +16,13 @@ less_termcap[se]="${reset_color}" less_termcap[us]="${fg_bold[green]}" less_termcap[ue]="${reset_color}" +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Absolute path to this file's directory. -typeset __colored_man_pages_dir="${0:A:h}" +typeset -g __colored_man_pages_dir="${0:A:h}" function colored() { local -a environment diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh index 8ea98f80a..a9da6cf83 100644 --- a/plugins/colorize/colorize.plugin.zsh +++ b/plugins/colorize/colorize.plugin.zsh @@ -82,7 +82,7 @@ colorize_less() { # This variable tells less to pipe every file through the specified command # (see the man page of less INPUT PREPROCESSOR). # 'zsh -ic "colorize_cat %s 2> /dev/null"' would not work for huge files like - # the ~/.zsh_history. For such files the tty of the preprocessor will be supended. + # the ~/.zsh_history. For such files the tty of the preprocessor will be suspended. # Therefore we must source this file to make colorize_cat available in the # preprocessor without the interactive mode. # `2>/dev/null` will suppress the error for large files 'broken pipe' of the python diff --git a/plugins/command-not-found/README.md b/plugins/command-not-found/README.md index f267f0c89..5a373c537 100644 --- a/plugins/command-not-found/README.md +++ b/plugins/command-not-found/README.md @@ -29,5 +29,6 @@ It works out of the box with the command-not-found packages for: - [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound) - [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found) - [Termux](https://github.com/termux/command-not-found) +- [SUSE](https://www.unix.com/man-page/suse/1/command-not-found/) You can add support for other platforms by submitting a Pull Request. diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index e46350604..cb8a8989c 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -60,3 +60,10 @@ if [[ -x /data/data/com.termux/files/usr/libexec/termux/command-not-found ]]; th /data/data/com.termux/files/usr/libexec/termux/command-not-found "$1" } fi + +# SUSE and derivates: https://www.unix.com/man-page/suse/1/command-not-found/ +if [[ -x /usr/bin/command-not-found ]]; then + command_not_found_handler() { + /usr/bin/command-not-found "$1" + } +fi diff --git a/plugins/common-aliases/README.md b/plugins/common-aliases/README.md index b6f34cb54..0354c7a3f 100644 --- a/plugins/common-aliases/README.md +++ b/plugins/common-aliases/README.md @@ -12,51 +12,53 @@ plugins=(... common-aliases) ### ls command -| Alias | Command | Description | -|-------|---------------|--------------------------------------------------------------------------------| -| l | `ls -lFh` | List files as a long list, show size, type, human-readable | -| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable | -| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable | -| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable | -| ll | `ls -l` | List files as a long list | -| ldot | `ls -ld .*` | List dot files as a long list | -| lS | `ls -1FSsh` | List files showing only size and name sorted by size | -| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) | -| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) | +| Alias | Command | Description | +| ----- | ------------ | --------------------------------------------------------------------------- | +| l | `ls -lFh` | List files as a long list, show size, type, human-readable | +| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable | +| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable | +| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable | +| ll | `ls -l` | List files as a long list | +| ldot | `ls -ld .*` | List dot files as a long list | +| lS | `ls -1FSsh` | List files showing only size and name sorted by size | +| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) | +| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) | +| lsr | `ls -lARFh` | List all files and directories recursively | +| lsn | `ls -1` | List files and directories in a single column | ### File handling -| Alias | Command | Description | -|-------|-----------------------|------------------------------------------------------------------------------------| -| rm | `rm -i` | Remove a file | -| cp | `cp -i` | Copy a file | -| mv | `mv -i` | Move a file | -| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file | -| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form | -| duf | `du -sh` | Display the size of files in current location in human-readable form | -| t | `tail -f` | Shorthand for tail which outputs the last part of a file | +| Alias | Command | Description | +| ----- | --------------------- | ------------------------------------------------------------------------------- | +| rm | `rm -i` | Remove a file | +| cp | `cp -i` | Copy a file | +| mv | `mv -i` | Move a file | +| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file | +| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form | +| duf | `du -sh` | Display the size of files in current location in human-readable form | +| t | `tail -f` | Shorthand for tail which outputs the last part of a file | ### find and grep -| Alias | Command | Description | -|-------|-----------------------------------------------------|-----------------------------------------| -| fd\* | `find . -type d -name` | Find a directory with the given name | -| ff | `find . -type f -name` | Find a file with the given name | -| grep | `grep --color` | Searches for a query string | -| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files | +| Alias | Command | Description | +| ----- | -------------------------------------------------- | ------------------------------------ | +| fd\* | `find . -type d -name` | Find a directory with the given name | +| ff | `find . -type f -name` | Find a file with the given name | +| grep | `grep --color` | Searches for a query string | +| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files | \* Only if the [`fd`](https://github.com/sharkdp/fd) command isn't installed. ### Other Aliases -| Alias | Command | Description | -|-----------|---------------------|-------------------------------------------------------------| -| h | `history` | Lists all recently used commands | -| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands | -| help | `man` | Opens up the man page for a command | -| p | `ps -f` | Displays currently executing processes | -| sortnr | `sort -n -r` | Used to sort the lines of a text file | -| unexport | `unset` | Used to unset an environment variable | +| Alias | Command | Description | +| -------- | ------------------ | ----------------------------------------------------------- | +| h | `history` | Lists all recently used commands | +| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands | +| help | `man` | Opens up the man page for a command | +| p | `ps -f` | Displays currently executing processes | +| sortnr | `sort -n -r` | Used to sort the lines of a text file | +| unexport | `unset` | Used to unset an environment variable | ## Global aliases @@ -77,7 +79,7 @@ $ find . -type f 2>/dev/null ``` | Alias | Command | Description | -|-------|-----------------------------|-------------------------------------------------------------| +| ----- | --------------------------- | ----------------------------------------------------------- | | H | `\| head` | Pipes output to head which outputs the first part of a file | | T | `\| tail` | Pipes output to tail which outputs the last part of a file | | G | `\| grep` | Pipes output to grep to search for some word | @@ -97,23 +99,23 @@ that file will be open with `acroread`. ### Reading Docs -| Alias | Command | Description | -|-------|-------------|-------------------------------------| -| pdf | `acroread` | Opens up a document using acroread | -| ps | `gv` | Opens up a .ps file using gv | -| dvi | `xdvi` | Opens up a .dvi file using xdvi | -| chm | `xchm` | Opens up a .chm file using xchm | -| djvu | `djview` | Opens up a .djvu file using djview | +| Alias | Command | Description | +| ----- | ---------- | ---------------------------------- | +| pdf | `acroread` | Opens up a document using acroread | +| ps | `gv` | Opens up a .ps file using gv | +| dvi | `xdvi` | Opens up a .dvi file using xdvi | +| chm | `xchm` | Opens up a .chm file using xchm | +| djvu | `djview` | Opens up a .djvu file using djview | ### Listing files inside a packed file -| Alias | Command | Description | -|---------|-------------|-------------------------------------| -| zip | `unzip -l` | Lists files inside a .zip file | -| rar | `unrar l` | Lists files inside a .rar file | -| tar | `tar tf` | Lists files inside a .tar file | -| tar.gz | `echo` | Lists files inside a .tar.gz file | -| ace | `unace l` | Lists files inside a .ace file | +| Alias | Command | Description | +| ------ | ---------- | --------------------------------- | +| zip | `unzip -l` | Lists files inside a .zip file | +| rar | `unrar l` | Lists files inside a .rar file | +| tar | `tar tf` | Lists files inside a .tar file | +| tar.gz | `echo` | Lists files inside a .tar.gz file | +| ace | `unace l` | Lists files inside a .ace file | ### Some other features diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh index 4e5ff848f..8b58b6310 100644 --- a/plugins/common-aliases/common-aliases.plugin.zsh +++ b/plugins/common-aliases/common-aliases.plugin.zsh @@ -12,6 +12,8 @@ alias ldot='ls -ld .*' alias lS='ls -1FSsh' alias lart='ls -1Fcart' alias lrt='ls -1Fcrt' +alias lsr='ls -lARFh' #Recursive list of files and directories +alias lsn='ls -1' #A column contains name of files and directories alias zshrc='${=EDITOR} ${ZDOTDIR:-$HOME}/.zshrc' # Quick access to the .zshrc file diff --git a/plugins/composer/README.md b/plugins/composer/README.md index 7a5f7256e..ad6ed24bc 100644 --- a/plugins/composer/README.md +++ b/plugins/composer/README.md @@ -10,22 +10,26 @@ To use it add `composer` to the plugins array in your zshrc file. plugins=(... composer) ``` +Original author: Daniel Gomes + ## Aliases -| Alias | Command | Description | -| ------ | ------------------------------------------- | --------------------------------------------------------------------------------------- | -| `c` | `composer` | Starts composer | -| `csu` | `composer self-update` | Updates composer to the latest version | -| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file | -| `cr` | `composer require` | Adds new packages to `composer.json` | -| `crm` | `composer remove` | Removes packages from `composer.json` | -| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` | -| `ccp` | `composer create-project` | Create new project from an existing package | -| `cdu` | `composer dump-autoload` | Updates the autoloader | -| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) | -| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory | -| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory | -| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory | -| `cget` | `curl -s https://getcomposer.org/installer` | Installs composer in the current directory | -| `co` | `composer outdated` | Shows a list of installed packages with available updates | -| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies | +| Alias | Command | Description | +| ------ | ---------------------------------- | --------------------------------------------------------------------------------------- | +| `c` | `composer` | Starts composer | +| `ccp` | `composer create-project` | Create new project from an existing package | +| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) | +| `cdu` | `composer dump-autoload` | Updates the autoloader | +| `cget` | `curl -s \| php` | Installs composer in the current directory | +| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory | +| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory | +| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory | +| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` | +| `co` | `composer outdated` | Shows a list of installed packages with available updates | +| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies | +| `cr` | `composer require` | Adds new packages to `composer.json` | +| `crm` | `composer remove` | Removes packages from `composer.json` | +| `cs` | `composer show` | Lists available packages, with optional filtering | +| `csu` | `composer self-update` | Updates composer to the latest version | +| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file | +| `cuh` | `composer update -d ` | Updates globally installed packages | diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 218a13e5f..dd0b18e27 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -1,70 +1,76 @@ -# ------------------------------------------------------------------------------ -# FILE: composer.plugin.zsh -# DESCRIPTION: oh-my-zsh composer plugin file. -# AUTHOR: Daniel Gomes (me@danielcsgomes.com) -# VERSION: 1.0.0 -# ------------------------------------------------------------------------------ - -# Composer basic command completion -_composer_get_command_list () { - $_comp_command1 --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' -} - -_composer_get_required_list () { - $_comp_command1 show -s --no-ansi 2>/dev/null | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' -} - -_composer () { +## Basic Composer command completion +# Since Zsh 5.7, an improved composer command completion is provided +if ! is-at-least 5.7; then + _composer () { local curcontext="$curcontext" state line typeset -A opt_args - _arguments \ - '*:: :->subcmds' + _arguments '*:: :->subcmds' - if (( CURRENT == 1 )) || ( ((CURRENT == 2)) && [ "$words[1]" = "global" ] ) ; then - compadd $(_composer_get_command_list) + if (( CURRENT == 1 )) || ( (( CURRENT == 2 )) && [[ "$words[1]" = "global" ]] ); then + # Command list + local -a subcmds + subcmds=("${(@f)"$($_comp_command1 --no-ansi 2>/dev/null | awk ' + /Available commands/{ r=1 } + r == 1 && /^[ \t]*[a-z]+/{ + gsub(/^[ \t]+/, "") + gsub(/ +/, ":") + print $0 + } + ')"}") + _describe -t commands 'composer command' subcmds else - compadd $(_composer_get_required_list) + # Required list + compadd $($_comp_command1 show -s --no-ansi 2>/dev/null \ + | sed '1,/requires/d' \ + | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }') fi -} + } -compdef _composer composer -compdef _composer composer.phar + compdef _composer composer + compdef _composer composer.phar +fi -# Aliases + +## Aliases alias c='composer' -alias csu='composer self-update' -alias cu='composer update' -alias cr='composer require' -alias crm='composer remove' -alias ci='composer install' alias ccp='composer create-project' -alias cdu='composer dump-autoload' alias cdo='composer dump-autoload -o' -alias cgu='composer global update' +alias cdu='composer dump-autoload' +alias cget='curl -s https://getcomposer.org/installer | php' alias cgr='composer global require' alias cgrm='composer global remove' +alias cgu='composer global update' +alias ci='composer install' alias co='composer outdated' alias cod='composer outdated --direct' +alias cr='composer require' +alias crm='composer remove' +alias cs='composer show' +alias csu='composer self-update' +alias cu='composer update' +alias cuh='composer update --working-dir=$(composer config -g home)' -# install composer in the current directory -alias cget='curl -s https://getcomposer.org/installer | php' -# Add Composer's global binaries to PATH, using Composer if available. -if (( $+commands[composer] )); then - autoload -Uz _store_cache _retrieve_cache _cache_invalid +## If Composer not found, try to add known directories to $PATH +if (( ! $+commands[composer] )); then + [[ -d "$HOME/.composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.composer/vendor/bin" + [[ -d "$HOME/.config/composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.config/composer/vendor/bin" - _retrieve_cache composer - - if [[ -z $__composer_bin_dir ]]; then - __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null) - _store_cache composer __composer_bin_dir - fi - - # Add Composer's global binaries to PATH - export PATH="$PATH:$__composer_bin_dir" - - unset __composer_bin_dir -else - [ -d $HOME/.composer/vendor/bin ] && export PATH=$PATH:$HOME/.composer/vendor/bin - [ -d $HOME/.config/composer/vendor/bin ] && export PATH=$PATH:$HOME/.config/composer/vendor/bin + # If still not found, don't do the rest of the script + (( $+commands[composer] )) || return 0 fi + + +## Add Composer's global binaries to PATH +autoload -Uz _store_cache _retrieve_cache _cache_invalid +_retrieve_cache composer + +if [[ -z $__composer_bin_dir ]]; then + __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null) + _store_cache composer __composer_bin_dir +fi + +# Add Composer's global binaries to PATH +export PATH="$PATH:$__composer_bin_dir" + +unset __composer_bin_dir diff --git a/plugins/cpanm/_cpanm b/plugins/cpanm/_cpanm index ff9ae1c15..f328dd997 100644 --- a/plugins/cpanm/_cpanm +++ b/plugins/cpanm/_cpanm @@ -36,7 +36,7 @@ arguments=( '--reinstall[Reinstall the distribution even if you already have the latest version installed]' '--interactive[Turn on interactive configure]' - '--scandeps[Scan the depencencies of given modules and output the tree in a text format]' + '--scandeps[Scan the dependencies of given modules and output the tree in a text format]' '--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)' '--save-dists[Specify the optional directory path to copy downloaded tarballs]' diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 922d68cb3..2ce206cfb 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -33,20 +33,22 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | Alias | Command | Description | | -------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | `aac` | `sudo $apt_pref autoclean` | Clears out the local repository of retrieved package files | +| `aar` | `sudo $apt_pref autoremove` | Removes packages installed automatically that are no longer needed | | `abd` | `sudo $apt_pref build-dep` | Installs all dependencies for building packages | | `ac` | `sudo $apt_pref clean` | Clears out the local repository of retrieved package files except lock files | | `ad` | `sudo $apt_pref update` | Updates the package lists for upgrades for packages | | `adg` | `sudo $apt_pref update && sudo $apt_pref $apt_upgr` | Update and upgrade packages | +| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | | `adu` | `sudo $apt_pref update && sudo $apt_pref dist-upgrade` | Smart upgrade that handles dependencies | | `afu` | `sudo apt-file update` | Update the files in packages | -| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | | `ai` | `sudo $apt_pref install` | Command-line tool to install package | | `ail` | `sed -e 's/ */ /g' -e 's/ *//' \| cut -s -d ' ' -f 1 \| xargs sudo $apt_pref install` | Install all packages given on the command line while using only the first word of each line | +| `alu` | `sudo apt update && apt list -u && sudo apt upgrade` | Update, list and upgrade packages | | `ap` | `sudo $apt_pref purge` | Removes packages along with configuration files | | `ar` | `sudo $apt_pref remove` | Removes packages, keeps the configuration files | -| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | -| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | +| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | | `di` | `sudo dpkg -i` | Install all .deb files in the current directory | +| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | | `kclean` | `sudo aptitude remove -P ?and(~i~nlinux-(ima\|hea) ?not(~n$(uname -r)))` | Remove ALL kernel images and headers EXCEPT the one in use | ## Aliases - Commands using `su` @@ -54,6 +56,7 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | Alias | Command | | ----- | --------------------------------------------------------- | | `aac` | `su -ls "$apt_pref autoclean" root` | +| `aar` | `su -ls "$apt_pref autoremove" root` | | `ac` | `su -ls "$apt_pref clean" root` | | `ad` | `su -lc "$apt_pref update" root` | | `adg` | `su -lc "$apt_pref update && aptitude $apt_upgr" root` | @@ -75,8 +78,8 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | ------------------- | --------------------------------------------------------------- | | `apt-copy` | Create a simple script that can be used to 'duplicate' a system | | `apt-history` | Displays apt history for a command | -| `kerndeb` | Builds kernel packages | | `apt-list-packages` | List packages by size | +| `kerndeb` | Builds kernel packages | ## Authors diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index bde97cd30..e4db8fe33 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -52,13 +52,18 @@ if [[ $use_sudo -eq 1 ]]; then alias ai="sudo $apt_pref install" # Install all packages given on the command line while using only the first word of each line: # acs ... | ail + alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | xargs sudo $apt_pref install" alias ap="sudo $apt_pref purge" alias ar="sudo $apt_pref remove" + alias aar="sudo $apt_pref autoremove" # apt-get only alias ads="sudo apt-get dselect-upgrade" + # apt only + alias alu="sudo apt update && apt list -u && sudo apt upgrade" + # Install all .deb files in the current directory. # Warning: you will need to put the glob in single quotes if you use: # glob_subst @@ -98,7 +103,11 @@ else print "$cmd" eval "$cmd" } - + function aar() { + cmd="su -lc '$apt_pref -P autoremove $@' root" + print "$cmd" + eval "$cmd" + } # Install all .deb files in the current directory # Assumes glob_subst is off alias dia='su -lc "dpkg -i ./*.deb" root' @@ -139,6 +148,7 @@ apt_pref_compdef ai "install" apt_pref_compdef ail "install" apt_pref_compdef ap "purge" apt_pref_compdef ar "remove" +apt_pref_compdef aar "autoremove" apt_pref_compdef ads "dselect-upgrade" # Misc. ##################################################################### diff --git a/plugins/deno/README.md b/plugins/deno/README.md index 828e6af39..691318397 100644 --- a/plugins/deno/README.md +++ b/plugins/deno/README.md @@ -13,6 +13,7 @@ This plugin sets up completion and aliases for [Deno](https://deno.land). | dh | deno help | | dli | deno lint | | drn | deno run | +| drA | deno run -A | | drw | deno run --watch | | dts | deno test | | dup | deno upgrade | diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index 34adddc37..6c12bae13 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -6,30 +6,35 @@ alias dfmt='deno fmt' alias dh='deno help' alias dli='deno lint' alias drn='deno run' +alias drA='deno run -A' alias drw='deno run --watch' alias dts='deno test' alias dup='deno upgrade' # COMPLETION FUNCTION -if (( $+commands[deno] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_deno" +if (( ! $+commands[deno] )); then + return +fi - ver="$(deno --version)" - ver_file="$ZSH_CACHE_DIR/deno_version" - comp_file="$ZSH_CACHE_DIR/completions/_deno" +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated files +command rm -f "${0:A:h}/_deno" "$ZSH_CACHE_DIR/deno_version" - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - deno completions zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `deno`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_deno" ]]; then + typeset -g -A _comps autoload -Uz _deno _comps[deno]=_deno - - unset ver ver_file comp_file fi + +deno completions zsh >| "$ZSH_CACHE_DIR/completions/_deno" &| diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 9f39264cf..7021fc03a 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30 # Returns the element if the array was not empty, # otherwise returns empty string. function pop_past() { - print -v $1 "${dirhistory_past[$#dirhistory_past]}" + typeset -g $1="${dirhistory_past[$#dirhistory_past]}" if [[ $#dirhistory_past -gt 0 ]]; then dirhistory_past[$#dirhistory_past]=() fi } function pop_future() { - print -v $1 "${dirhistory_future[$#dirhistory_future]}" + typeset -g $1="${dirhistory_future[$#dirhistory_future]}" if [[ $#dirhistory_future -gt 0 ]]; then dirhistory_future[$#dirhistory_future]=() fi @@ -121,31 +121,39 @@ function dirhistory_zle_dirhistory_future() { } zle -N dirhistory_zle_dirhistory_back -bindkey "\e[3D" dirhistory_zle_dirhistory_back # xterm in normal mode -bindkey "\e[1;3D" dirhistory_zle_dirhistory_back # xterm in normal mode -bindkey "\e\e[D" dirhistory_zle_dirhistory_back # Putty -bindkey "\eO3D" dirhistory_zle_dirhistory_back # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[D" dirhistory_zle_dirhistory_back ;; # iTerm2 -Apple_Terminal) bindkey "^[b" dirhistory_zle_dirhistory_back ;; # Terminal.app -esac -if (( ${+terminfo[kcub1]} )); then - bindkey "^[${terminfo[kcub1]}" dirhistory_zle_dirhistory_back # urxvt -fi - zle -N dirhistory_zle_dirhistory_future -bindkey "\e[3C" dirhistory_zle_dirhistory_future # xterm in normal mode -bindkey "\e[1;3C" dirhistory_zle_dirhistory_future # xterm in normal mode -bindkey "\e\e[C" dirhistory_zle_dirhistory_future # Putty -bindkey "\eO3C" dirhistory_zle_dirhistory_future # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[C" dirhistory_zle_dirhistory_future ;; # iTerm2 -Apple_Terminal) bindkey "^[f" dirhistory_zle_dirhistory_future ;; # Terminal.app -esac -if (( ${+terminfo[kcuf1]} )); then - bindkey "^[${terminfo[kcuf1]}" dirhistory_zle_dirhistory_future # urxvt -fi +for keymap in emacs vicmd viins; do + # dirhistory_back + bindkey -M $keymap "\e[3D" dirhistory_zle_dirhistory_back # xterm in normal mode + bindkey -M $keymap "\e[1;3D" dirhistory_zle_dirhistory_back # xterm in normal mode + bindkey -M $keymap "\e\e[D" dirhistory_zle_dirhistory_back # Putty + bindkey -M $keymap "\eO3D" dirhistory_zle_dirhistory_back # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[b" dirhistory_zle_dirhistory_back ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[D" dirhistory_zle_dirhistory_back ;; # iTerm2 + esac + + if (( ${+terminfo[kcub1]} )); then + bindkey -M $keymap "^[${terminfo[kcub1]}" dirhistory_zle_dirhistory_back # urxvt + fi + + # dirhistory_future + bindkey -M $keymap "\e[3C" dirhistory_zle_dirhistory_future # xterm in normal mode + bindkey -M $keymap "\e[1;3C" dirhistory_zle_dirhistory_future # xterm in normal mode + bindkey -M $keymap "\e\e[C" dirhistory_zle_dirhistory_future # Putty + bindkey -M $keymap "\eO3C" dirhistory_zle_dirhistory_future # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[f" dirhistory_zle_dirhistory_future ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[C" dirhistory_zle_dirhistory_future ;; # iTerm2 + esac + + if (( ${+terminfo[kcuf1]} )); then + bindkey -M $keymap "^[${terminfo[kcuf1]}" dirhistory_zle_dirhistory_future # urxvt + fi +done # # HIERARCHY Implemented in this section, in case someone wants to split it to another plugin if it clashes bindings @@ -176,27 +184,38 @@ function dirhistory_zle_dirhistory_down() { } zle -N dirhistory_zle_dirhistory_up -bindkey "\e[3A" dirhistory_zle_dirhistory_up # xterm in normal mode -bindkey "\e[1;3A" dirhistory_zle_dirhistory_up # xterm in normal mode -bindkey "\e\e[A" dirhistory_zle_dirhistory_up # Putty -bindkey "\eO3A" dirhistory_zle_dirhistory_up # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[A" dirhistory_zle_dirhistory_up ;; # iTerm2 -Apple_Terminal) bindkey "^[[A" dirhistory_zle_dirhistory_up ;; # Terminal.app -esac -if (( ${+terminfo[kcuu1]} )); then - bindkey "^[${terminfo[kcuu1]}" dirhistory_zle_dirhistory_up # urxvt -fi - zle -N dirhistory_zle_dirhistory_down -bindkey "\e[3B" dirhistory_zle_dirhistory_down # xterm in normal mode -bindkey "\e[1;3B" dirhistory_zle_dirhistory_down # xterm in normal mode -bindkey "\e\e[B" dirhistory_zle_dirhistory_down # Putty -bindkey "\eO3B" dirhistory_zle_dirhistory_down # GNU screen -case "$TERM_PROGRAM" in -iTerm.app) bindkey "^[^[[B" dirhistory_zle_dirhistory_down ;; # iTerm2 -Apple_Terminal) bindkey "^[[B" dirhistory_zle_dirhistory_down ;; # Terminal.app -esac -if (( ${+terminfo[kcud1]} )); then - bindkey "^[${terminfo[kcud1]}" dirhistory_zle_dirhistory_down # urxvt -fi + +for keymap in emacs vicmd viins; do + # dirhistory_up + bindkey -M $keymap "\e[3A" dirhistory_zle_dirhistory_up # xterm in normal mode + bindkey -M $keymap "\e[1;3A" dirhistory_zle_dirhistory_up # xterm in normal mode + bindkey -M $keymap "\e\e[A" dirhistory_zle_dirhistory_up # Putty + bindkey -M $keymap "\eO3A" dirhistory_zle_dirhistory_up # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[[A" dirhistory_zle_dirhistory_up ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[A" dirhistory_zle_dirhistory_up ;; # iTerm2 + esac + + if (( ${+terminfo[kcuu1]} )); then + bindkey -M $keymap "^[${terminfo[kcuu1]}" dirhistory_zle_dirhistory_up # urxvt + fi + + # dirhistory_down + bindkey -M $keymap "\e[3B" dirhistory_zle_dirhistory_down # xterm in normal mode + bindkey -M $keymap "\e[1;3B" dirhistory_zle_dirhistory_down # xterm in normal mode + bindkey -M $keymap "\e\e[B" dirhistory_zle_dirhistory_down # Putty + bindkey -M $keymap "\eO3B" dirhistory_zle_dirhistory_down # GNU screen + + case "$TERM_PROGRAM" in + Apple_Terminal) bindkey -M $keymap "^[[B" dirhistory_zle_dirhistory_down ;; # Terminal.app + iTerm.app) bindkey -M $keymap "^[^[[B" dirhistory_zle_dirhistory_down ;; # iTerm2 + esac + + if (( ${+terminfo[kcud1]} )); then + bindkey -M $keymap "^[${terminfo[kcud1]}" dirhistory_zle_dirhistory_down # urxvt + fi +done + +unset keymap diff --git a/plugins/docker-machine/_docker-machine b/plugins/docker-machine/_docker-machine index 7c19ba8e7..fbd36d7c6 100644 --- a/plugins/docker-machine/_docker-machine +++ b/plugins/docker-machine/_docker-machine @@ -90,7 +90,7 @@ __docker-machine_filters() { } __get_swarm_discovery() { - declare -a masters serivces + declare -a masters services local service services=() masters=($(docker-machine ls -f {{.Swarm}} |grep '(master)' |awk '{print $1}')) @@ -169,7 +169,7 @@ __get_create_argument() { __docker-machine_subcommand() { local -a opts_help opts_help=("(- :)--help[Print usage]") - local -a opts_only_host opts_driver opts_storage_driver opts_stragery + local -a opts_only_host opts_driver opts_storage_driver opts_state opts_only_host=( "$opts_help" "*:host:__docker-machine_hosts_all" @@ -330,7 +330,7 @@ _docker-machine() { _arguments -C \ "(- :)"{-h,--help}"[Show help]" \ "(-D --debug)"{-D,--debug}"[Enable debug mode]" \ - '(-s --stroage-path)'{-s,--storage-path}'[Configures storage path]:file:_files' \ + '(-s --storage-path)'{-s,--storage-path}'[Configures storage path]:file:_files' \ '--tls-ca-cert[CA to verify remotes against]:file:_files' \ '--tls-ca-key[Private key to generate certificates]:file:_files' \ '--tls-client-cert[Client cert to use for TLS]:file:_files' \ diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh index 40ec5c46f..394455ae1 100644 --- a/plugins/dotenv/dotenv.plugin.zsh +++ b/plugins/dotenv/dotenv.plugin.zsh @@ -23,12 +23,12 @@ source_env() { touch "$ZSH_DOTENV_DISALLOWED_LIST" # early return if disallowed - if command grep -q "$dirpath" "$ZSH_DOTENV_DISALLOWED_LIST" &>/dev/null; then + if command grep -Fx -q "$dirpath" "$ZSH_DOTENV_DISALLOWED_LIST" &>/dev/null; then return fi # check if current directory's .env file is allowed or ask for confirmation - if ! command grep -q "$dirpath" "$ZSH_DOTENV_ALLOWED_LIST" &>/dev/null; then + if ! command grep -Fx -q "$dirpath" "$ZSH_DOTENV_ALLOWED_LIST" &>/dev/null; then # get cursor column and print new line before prompt if not at line beginning local column echo -ne "\e[6n" > /dev/tty diff --git a/plugins/dotnet/README.md b/plugins/dotnet/README.md index 7554b4e3c..87dfd8f8d 100644 --- a/plugins/dotnet/README.md +++ b/plugins/dotnet/README.md @@ -21,3 +21,4 @@ plugins=(... dotnet) | da | dotnet add | Add a package or reference to a .NET project. | | dp | dotnet pack | Create a NuGet package. | | dng | dotnet nuget | Provides additional NuGet commands. | +| db | dotnet build | Build a .NET project | diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 6bd4b7af8..8ea31cdbd 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -12,7 +12,7 @@ _dotnet_zsh_complete() return fi - # This is not a variable assigment, don't remove spaces! + # This is not a variable assignment, don't remove spaces! _values = "${(ps:\n:)completions}" } @@ -30,3 +30,4 @@ alias ds='dotnet sln' alias da='dotnet add' alias dp='dotnet pack' alias dng='dotnet nuget' +alias db='dotnet build' diff --git a/plugins/drush/README.md b/plugins/drush/README.md index df7b82bdd..29b429e3b 100644 --- a/plugins/drush/README.md +++ b/plugins/drush/README.md @@ -1,83 +1,66 @@ # Drush -## Description -This plugin offers aliases and functions to make the work with drush easier and more productive. +This plugin adds aliases and functions for [Drush](https://www.drush.org), a command-line shell +and Unix scripting interface for Drupal. It also adds completion for the `drush` command. -To enable it, add the `drush` to your `plugins` array in `~/.zshrc`: +To enable it, add `drush` to the plugins array in zshrc file: -``` +```zsh plugins=(... drush) ``` ## Aliases -| Alias | Description | Command | -|-------|-----------------------------------------------------------------------|-----------------------------| -| dr | Display drush help | drush | -| drca | Clear all drupal caches. | drush cc all | -| drcb | Clear block cache. | drush cc block | -| drcg | Clear registry cache. | drush cc registry | -| drcj | Clear css-js cache. | drush cc css-js | -| drcm | Clear menu cache. | drush cc menu | -| drcml | Clear module-list cache. | drush cc module-list | -| drcr | Run all cron hooks in all active modules for specified site. | drush core-cron | -| drct | Clear theme-registry cache. | drush cc theme-registry | -| drcv | Clear views cache. (Make sure that the views module is enabled) | drush cc views | -| drdmp | Backup database in a new dump.sql file | drush drush sql-dump --ordered-dump --result-file=dump.sql| -| drf | Display features status | drush features | -| drfr | Revert a feature module on your site. | drush features-revert -y | -| drfu | Update a feature module on your site. | drush features-update -y | -| drfra | Revert all enabled feature module on your site. | drush features-revert-all | -| drif | Flush all derived images. | drush image-flush --all | -| drpm | Show a list of available modules. | drush pm-list --type=module | -| drst | Provides a birds-eye view of the current Drupal installation, if any. | drush core-status | -| drup | Apply any database updates required (as with running update.php). | drush updatedb | -| drups | List any pending database updates. | drush updatedb-status | -| drv | Show drush version. | drush version | -| drvd | Delete a variable. | drush variable-del | -| drvg | Get a list of some or all site variables and values. | drush variable-get | -| drvs | Set a variable. | drush variable-set | + +| Alias | Command | Description | +| ------- | ----------------------------------------------------------- | -------------------------------------------------------------------- | +| `dr` | `drush` | Display drush help | +| `drca` | `drush cc all` | _(Deprecated in Drush 8)_ Clear all drupal caches | +| `drcb` | `drush cc block` | _(Deprecated in Drush 8)_ Clear block cache | +| `drcex` | `drush config:export -y` | Export Drupal configuration to a directory | +| `drcg` | `drush cc registry` | _(Deprecated in Drush 8)_ Clear registry cache | +| `drcim` | `drush config:import -y` | Import config from a config directory | +| `drcj` | `drush cc css-js` | Clear css-js cache | +| `drcm` | `drush cc menu` | Clear menu cache | +| `drcml` | `drush cc module-list` | Clear module-list cache | +| `drcr` | `drush core-cron` | Run all cron hooks in all active modules for specified site | +| `drct` | `drush cc theme-registry` | Clear theme-registry cache | +| `drcv` | `drush cc views` | Clear views cache _(make sure that the views module is enabled)_ | +| `drdmp` | `drush drush sql-dump --ordered-dump --result-file=dumpsql` | Backup database in a new dump.sql file | +| `drf` | `drush features` | Display features status | +| `drfr` | `drush features-revert -y` | Revert a feature module on your site | +| `drfra` | `drush features-revert-all` | Revert all enabled feature module on your site | +| `drfu` | `drush features-update -y` | Update a feature module on your site | +| `drif` | `drush image-flush --all` | Flush all derived images | +| `drpm` | `drush pm-list --type=module` | Show a list of available modules | +| `drst` | `drush core-status` | Provides a birds-eye view of the current Drupal installation, if any | +| `druli` | `drush user:login` | Display a one time login link for user ID 1, or another user | +| `drup` | `drush updatedb` | Apply any database updates required (as with running update.php) | +| `drups` | `drush updatedb-status` | List any pending database updates | +| `drv` | `drush version` | Show drush version | +| `drvd` | `drush variable-del` | Delete a variable | +| `drvg` | `drush variable-get` | Get a list of some or all site variables and values | +| `drvs` | `drush variable-set` | Set a variable | +| `drws` | `drush watchdog:show` | Show watchdog messages | +| `drwse` | `drush watchdog:show --extended` | Show watchdog messages with extended information | +| `drwst` | `drush watchdog:tail` | Tail watchdog messages | ## Functions -### dren -Download and enable one or more extensions (modules or themes). -Must be invoked with one or more parameters. e.g.: -`dren devel` or `dren devel module_filter views` +- `dren`: download and enable one or more extensions (modules or themes). Must be + invoked with one or more parameters, e.g.: `dren devel` or `dren devel module_filter views`. -### drf -Edit drushrc, site alias, and Drupal settings.php files. -Can be invoked with one or without parameters. e.g.: -`drf 1` +- `drf`: edit drushrc, site alias, and Drupal settings.php files. + Can be invoked with one or without parameters, e.g.: `drf 1`. -### dris -Disable one or more extensions (modules or themes) -Must be invoked with one or more parameters. e.g.: -`dris devel` or `dris devel module_filter views` +- `dris`: disable one or more extensions (modules or themes). Must be invoked with + one or more parameters, e.g.: `dris devel` or `dris devel module_filter views`. -### drpu -Uninstall one or more modules. -Must be invoked with one or more parameters. e.g.: -`drpu devel` or `drpu devel module_filter views` +- `drpu`: uninstall one or more modules. Must be invoked with one or more + parameters, e.g.: `drpu devel` or `drpu devel module_filter views`. -### drnew -Creates a brand new drupal website. -Note: As soon as the installation is complete, drush will print a username and a random password into the terminal: -``` -Installation complete. User name: admin User password: cf7t8yqNEm -``` +- `drnew`: creates a brand new drupal website. Note: as soon as the installation + is complete, `drush` will print a username and a random password into the terminal: -## Additional features - -### Autocomplete -The [completion script for drush](https://github.com/drush-ops/drush/blob/8.0.1/drush.complete.sh) comes enabled with this plugin. -So, it is possible to type a command: -``` -drush sql -``` - -And as soon as the tab key is pressed, the script will display the available commands: -``` -drush sql -sqlc sql-conf sql-create sql-dump sql-query sql-sanitize -sql-cli sql-connect sql-drop sqlq sqlsan sql-sync -``` + ```text + Installation complete. User name: admin User password: cf7t8yqNEm + ``` diff --git a/plugins/drush/drush.plugin.zsh b/plugins/drush/drush.plugin.zsh index 8a20d79f2..48e8ddb1e 100644 --- a/plugins/drush/drush.plugin.zsh +++ b/plugins/drush/drush.plugin.zsh @@ -1,19 +1,18 @@ -# Drush support. - +# Functions function dren() { - drush en $@ -y + drush en "$@" -y } function dris() { - drush pm-disable $@ -y + drush pm-disable "$@" -y } function drpu() { - drush pm-uninstall $@ -y + drush pm-uninstall "$@" -y } function drf() { - if [[ $1 == "" ]] then + if [[ -z "$1" ]] then drush core-config else drush core-config --choice=$1 @@ -21,62 +20,62 @@ function drf() { } function drfi() { - if [[ $1 == "fields" ]]; then - drush field-info fields - elif [[ $1 == "types" ]]; then - drush field-info types - else - drush field-info - fi + case "$1" in + fields) drush field-info fields ;; + types) drush field-info types ;; + *) drush field-info ;; + esac } function drnew() { + ( + cd + echo "Website's name: " + read WEBSITE_NAME - cd ~ - echo "Website's name: " - read WEBSITE_NAME + HOST=http://$(hostname -i)/ - HOST=http://$(hostname -i)/ + if [[ $WEBSITE_NAME == "" ]] then + MINUTES=$(date +%M:%S) + WEBSITE_NAME="Drupal-$MINUTES" + echo "Your website will be named: $WEBSITE_NAME" + fi - if [[ $WEBSITE_NAME == "" ]] then - MINUTES=$(date +%M:%S) - WEBSITE_NAME="Drupal-$MINUTES" - echo "Your website will be named: $WEBSITE_NAME" - fi + drush dl drupal --drupal-project-rename=$WEBSITE_NAME - drush dl drupal --drupal-project-rename=$WEBSITE_NAME + echo "Type your localhost directory: (Leave empty for /var/www/html/)" + read DIRECTORY - echo "Type your localhost directory: (Leave empty for /var/www/html/)" - read DIRECTORY + if [[ $DIRECTORY == "" ]] then + DIRECTORY="/var/www/html/" + fi - if [[ $DIRECTORY == "" ]] then - DIRECTORY="/var/www/html/" - fi + echo "Moving to $DIRECTORY$WEBSITE_NAME" + sudo mv $WEBSITE_NAME $DIRECTORY + cd $DIRECTORY$WEBSITE_NAME - echo "Moving to $DIRECTORY$WEBSITE_NAME" - sudo mv $WEBSITE_NAME $DIRECTORY - cd $DIRECTORY$WEBSITE_NAME + echo "Database's user: " + read DATABASE_USR + echo "Database's password: " + read -s DATABASE_PWD + echo "Database's name for your project: " + read DATABASE - echo "Database's user: " - read DATABASE_USR - echo "Database's password: " - read -s DATABASE_PWD - echo "Database's name for your project: " - read DATABASE - - DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" - drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME - - open_command $HOST$WEBSITE_NAME - echo "Done" + DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" + drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME + open_command $HOST$WEBSITE_NAME + echo "Done" + ) } -# Aliases, sorted alphabetically. +# Aliases alias dr="drush" alias drca="drush cc all" # Deprecated for Drush 8 alias drcb="drush cc block" # Deprecated for Drush 8 +alias drcex="drush config:export -y" alias drcg="drush cc registry" # Deprecated for Drush 8 +alias drcim="drush config:import -y" alias drcj="drush cc css-js" alias drcm="drush cc menu" alias drcml="drush cc module-list" @@ -86,17 +85,21 @@ alias drcv="drush cc views" alias drdmp="drush sql-dump --ordered-dump --result-file=dump.sql" alias drf="drush features" alias drfr="drush features-revert -y" -alias drfu="drush features-update -y" alias drfra="drush features-revert-all" +alias drfu="drush features-update -y" alias drif="drush image-flush --all" alias drpm="drush pm-list --type=module" alias drst="drush core-status" +alias druli="drush user:login" alias drup="drush updatedb" alias drups="drush updatedb-status" alias drv="drush version" alias drvd="drush variable-del" alias drvg="drush variable-get" alias drvs="drush variable-set" +alias drws="drush watchdog:show" +alias drwse="drush watchdog:show --extended" +alias drwst="drush watchdog:tail" # Enable drush autocomplete support autoload bashcompinit diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 027c7550f..fede5b0c4 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -13,6 +13,11 @@ autoload -Uz is-at-least is-at-least 24 "${${(Az)"$(emacsclient --version 2>/dev/null)"}[2]}" || return 0 +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Path to custom emacsclient launcher export EMACS_PLUGIN_LAUNCHER="${0:A:h}/emacsclient.sh" diff --git a/plugins/ember-cli/README.md b/plugins/ember-cli/README.md index b46373619..419704ade 100644 --- a/plugins/ember-cli/README.md +++ b/plugins/ember-cli/README.md @@ -1,22 +1,33 @@ # Ember CLI -**Maintainers:** [BilalBudhani](https://github.com/BilalBudhani), [eubenesa](https://github.com/eubenesa), [scottkidder](https://github.com/scottkidder] +This plugin adds completion and aliases for using [`ember-cli`](https://cli.emberjs.com/). -Ember CLI (https://www.ember-cli.com/) +To use it, add `ember-cli` to the plugins array in your zshrc file: -### List of Aliases +```zsh +plugins=(... ember-cli) +``` -Alias | Ember-CLI command ------ | ----------------- -**es** | *ember serve* -**ea** | *ember addon* -**eb** | *ember build* -**ed** | *ember destroy* -**eg** | *ember generate* -**eh** | *ember help* -**ein** | *ember init* -**ei** | *ember install* -**et** | *ember test* -**ets** | *ember test --serve* -**eu** | *ember update* -**ev** | *ember version* +## Aliases + +| Alias | Command | +| ----- | -------------------- | +| `ea` | `ember addon` | +| `eb` | `ember build` | +| `ed` | `ember destroy` | +| `eg` | `ember generate` | +| `eh` | `ember help` | +| `ei` | `ember install` | +| `ein` | `ember init` | +| `es` | `ember serve` | +| `et` | `ember test` | +| `ets` | `ember test --serve` | +| `eu` | `ember update` | +| `ev` | `ember version` | + +## Maintainers + +- [BilalBudhani](https://github.com/BilalBudhani) +- [eubenesa](https://github.com/eubenesa) +- [scottkidder](https://github.com/scottkidder] +- [t-sauer](https://www.github.com/t-sauer) diff --git a/plugins/ember-cli/_ember-cli b/plugins/ember-cli/_ember-cli new file mode 100644 index 000000000..41c3c1fd4 --- /dev/null +++ b/plugins/ember-cli/_ember-cli @@ -0,0 +1,189 @@ +#compdef ember + +local curcontext="$curcontext" state line ret=1 + +_arguments -C -A "--version" -A "--help" \ + '(- 1 *)--help' \ + '(- 1 *)--version' \ + '1: :->cmds' \ + '*:: :->args' && ret=0 + +case $state in + cmds) + _values "ember command" \ + "addon[Generates a new folder structure for building an addon, complete with test harness]" \ + "asset-sizes[Shows the sizes of your asset files]" \ + "build[Builds your app and places it into the output path (dist/ by default)]" \ + "destroy[Destroys code generated by generate command]" \ + "generate[Generates new code from blueprints]" \ + "help[Outputs the usage instructions for all commands or the provided command]" \ + "init[Creates a new ember-cli project in the current folder]" \ + "install[Installs an ember-cli addon from npm]" \ + "new[Creates a new directory and runs ember init in it]" \ + "serve[Builds and serves your app, rebuilding on file changes]" \ + "test[Runs your app's test suite]" \ + "version[outputs ember-cli version]" + ret=0 + ;; + args) + case $line[1] in + help) + _values 'commands' \ + 'addon' \ + 'asset-sizes' \ + 'build' \ + 'destroy' \ + 'generate' \ + 'help' \ + 'init' \ + 'install' \ + 'new' \ + 'serve' \ + 'test' \ + 'vesion' && ret=0 + ;; + addon) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--directory)--directory=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-git)--skip-git' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + asset-sizes) + _arguments \ + '(--output-path)--output-path=-' + ;; + build) + _arguments \ + '(--environment)--environment=-' \ + '(--output-path)--output-path=-' \ + '(--output-path)--suppress-sizes' \ + '(--watch)--watch' \ + '(--watcher)--watcher=-' \ + '(-dev)-dev' \ + '(-prod)-prod' + ;; + destroy|generate) + _values 'arguments' \ + '(--classic)--classic' \ + '(--dry-run)--dry-run' \ + '(--dummy)--dummy' \ + '(--in-repo-addon)--in-repo-addon-=' \ + '(--pod)--pod' \ + '(--verbose)--verbose' && ret=0 + _values 'blueprints' \ + 'acceptance-test' \ + 'adapter' \ + 'adapter-test' \ + 'component' \ + 'component-addon' \ + 'component-test' \ + 'controller' \ + 'controller-test' \ + 'helper' \ + 'helper-addon' \ + 'helper-test' \ + 'initializer' \ + 'initializer-addon' \ + 'initializer-test' \ + 'instance-initializer' \ + 'instance-initializer-addon' \ + 'instance-initializer-test' \ + 'mixin' \ + 'mixin-test' \ + 'model' \ + 'model-test' \ + 'resource' \ + 'route' \ + 'route-addon' \ + 'route-test' \ + 'serializer' \ + 'serializer-test' \ + 'service' \ + 'service-test' \ + 'template' \ + 'test-helper' \ + 'transform' \ + 'transform-test' \ + 'util' \ + 'util-test' \ + 'view' \ + 'view-test' \ + 'addon' \ + 'addon-import' \ + 'app' \ + 'blueprint' \ + 'http-mock' \ + 'http-proxy' \ + 'in-repo-addon' \ + 'lib' \ + 'server' \ + 'vendor-shim' && ret=0 + ;; + init) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--name)--name=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + install) + _arguments \ + '(--save-dev)--save-dev' \ + '(--save)--save' + ;; + new) + _arguments \ + '(--blueprint)--blueprint=-' \ + '(--directory)--directory=-' \ + '(--dry-run)--dry-run' \ + '(--skip-bower)--skip-bower' \ + '(--skip-git)--skip-git' \ + '(--skip-npm)--skip-npm' \ + '(--verbose)--verbose' + ;; + serve) + _arguments \ + '(--port)--port=-[To use a port different than 4200. Pass 0 to automatically pick an available port.]' \ + '(--host)--host=-[Listens on all interfaces by default]' \ + '(--proxy)--proxy=-' \ + '(--secure-proxy)--secure-proxy[Set to false to proxy self-signed SSL certificates]' \ + '(--transparent-proxy)--transparent-proxy[Set to false to omit x-forwarded-* headers when proxying]' \ + '(--watcher)--watcher=-' \ + '(--live-reload)--live-reload' \ + '(--live-reload-host)--live-reload-host=-[Defaults to host]' \ + '(--live-reload-base-url)--live-reload-base-url=-[Defaults to baseURL]' \ + '(--live-reload-port)--live-reload-port=-[Defaults to port number within \[49152...65535\]]' \ + '(--environment)--environment=-' \ + '(--output-path)--output-path=-' \ + '(--ssl)--ssl' \ + '(--ssl-key)--ssl-key=-' \ + '(--ssl-cert)--ssl-cert=-' + ;; + test) + _arguments \ + '(--environment)--environment=-' \ + '(--config-file)--config-file=-' \ + '(--server)--server' \ + '(--host)--host=-' \ + '(--test-port)--test-port=-[The test port to use when running with --server.]' \ + '(--filter)--filter=-[A string to filter tests to run]' \ + '(--module)--module=-[The name of a test module to run]' \ + '(--watcher)--watcher=-' \ + '(--launch)--launch=-[A comma separated list of browsers to launch for tests.]' \ + '(--reporter)--reporter=-[Test reporter to use \[tap|dot|xunit\] (default: tap)]' \ + '(--silent)--silent[Suppress any output except for the test report]' \ + '(--test-page)--test-page=-[Test page to invoke]' \ + '(--path)--path=-[Reuse an existing build at given path.]' \ + '(--query)--query=-[A query string to append to the test page URL.]' + ;; + esac + ;; +esac + +return ret diff --git a/plugins/ember-cli/ember-cli.plugin.zsh b/plugins/ember-cli/ember-cli.plugin.zsh index 67842c120..de46b9827 100644 --- a/plugins/ember-cli/ember-cli.plugin.zsh +++ b/plugins/ember-cli/ember-cli.plugin.zsh @@ -1,17 +1,12 @@ -# Ember CLI -# Visit https://www.ember-cli.com/ to view user guide - -alias es='ember serve' alias ea='ember addon' alias eb='ember build' alias ed='ember destroy' alias eg='ember generate' alias eh='ember help' -alias ein='ember init' alias ei='ember install' +alias ein='ember init' +alias es='ember serve' alias et='ember test' alias ets='ember test --serve' alias eu='ember update' - -# version alias ev='ember version' diff --git a/plugins/emoji/README.md b/plugins/emoji/README.md index 8b8860a86..4154ea0dc 100644 --- a/plugins/emoji/README.md +++ b/plugins/emoji/README.md @@ -10,7 +10,7 @@ This plugin provides support for working with Unicode emoji characters in `zsh` Variable | Description ----------------- | -------------------------------- - $emoji | Maps emoji names to characters + $emoji | Maps emoji names to characters (except flags) $emoji_flags | Maps country names to flag characters (using region indicators) $emoji_groups | Named groups of emoji. Keys are group names; values are whitespace-separated lists of character names @@ -55,10 +55,8 @@ The defined group names can be found with `echo ${(k)emoji_groups}`. To list all available emoji with their names, use: ``` $> display_emoji -$> display_emoji fruits -$> display_emoji animals -$> display_emoji vehicles $> display_emoji faces +$> display_emoji people ``` To use emoji in a prompt: @@ -73,13 +71,13 @@ PROMPT="$surfer > " The emoji names and codes are sourced from Unicode Technical Report \#51, which provides information on emoji support in Unicode. It can be found at https://www.unicode.org/reports/tr51/index.html. -The group definitions are added by this OMZ plugin. They are not based on external definitions. (As far as I can tell. -apjanke) +The group definitions are added by this OMZ plugin. They are not based on external definitions. The values in the `$emoji*` maps are the emoji characters themselves, not escape sequences or other forms that require interpretation. They can be used in any context and do not require escape sequence support from commands like `echo` or `print`. The emoji in the main `$emoji` map are standalone character sequences which can all be output on their own, without worrying about combining characters. The values may actually be multi-code-point sequences, instead of a single code point, and may include combining characters in those sequences. But they're arranged so their effects do not extend beyond that sequence. -The exception to this is the skin tone variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.) +The exception to this is the skin tone / hair style variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.) ## Experimental Features @@ -90,7 +88,6 @@ Variables: Variable | Description ----------------- | -------------------------------- - $emoji2 | Auxiliary and combining characters $emoji_skintone | Skin tone modifiers (from Unicode 8.0) @@ -105,31 +102,26 @@ The "variation selectors" are combining characters which change the appearance o The `$emoji_skintone` associative array maps skin tone IDs to the variation selector characters. To use one, output it immediately following a smiley or other human emoji. ``` -echo "$emoji[smiling_face_with_open_mouth]$emoji_skintone[4]" +echo $emoji[waving_hand]$emoji_skintone[5] ``` Note that `$emoji_skintone` is an associative array, and its keys are the *names* of "Fitzpatrick Skin Type" groups, not linear indexes into a normal array. The names are `1_2`, `3`, `4`, `5`, and `6`. (Types 1 and 2 are combined into a single color.) See the [Diversity section in Unicode TR 51](https://www.unicode.org/reports/tr51/index.html#Diversity) for details. +#### Gemoji support + +The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. So, our list of emojis incorporates some of their aliases to make your life more convenient: + +``` +echo $emoji[grinning_face_with_smiling_eyes] +echo $emoji[smile] +``` + +These two commands yield the same emoji (😄). The first name is the official one, in the Unicode reference, and the second one is the alias that was in Gemoji's database. + ## TODO These are things that could be enhanced in future revisions of the plugin. * Incorporate CLDR data for ordering and groupings * Short :bracket: style names (from gemoji) -* Incorporate `gemoji` data -* Country codes for flags -* ZWJ combining function? - -#### Gemoji support - -The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. (I'm saying this just from looking at the google results for "emoji short names" and related searches. -apjanke) - -If this plugin is updated to provide short names, CLDR sorting data, and similar stuff, it should probably be changed to use the Gemoji project, and the `update_emoji.pl` script be rewritten in Ruby so it can use the Gemoji library directly instead of parsing its data files. - -This does *not* mean that it should use Gemoji at run time. None of the `zsh` plugin stuff should call Gemoji or Ruby code. Rather, the "build time" `update_emoji.pl` script should be rewritten to use Gemoji to generate a pure-native-`zsh` character definition file which would be checked in to the repo and can be called by OMZ users without having Gemoji installed. - -#### ZWJ combining function - -One of the newer features of Unicode emoji is the ability to use the "Zero-Width Joiner" character to compose multiple emoji characters in to a single "emoji ligature" glyph. For example, this is [how Apple supports "family" emoji with various genders and skin tones](https://www.unicode.org/reports/tr51/index.html#ZWJ_Sequences). - -These are a pain to write out (and probably worse to read), and it might be convenient to have a couple functions for concisely composing them, if wider support for them appears. +* ZWJ combining function? \ No newline at end of file diff --git a/plugins/emoji/emoji-char-definitions.zsh b/plugins/emoji/emoji-char-definitions.zsh index 04693da05..b37c142a1 100644 --- a/plugins/emoji/emoji-char-definitions.zsh +++ b/plugins/emoji/emoji-char-definitions.zsh @@ -1,11 +1,18 @@ -# emoji-char-definitions.zsh - Emoji character definitions for oh-my-zsh emoji plugin +# emoji-char-definitions.zsh - Emoji definitions for oh-my-zsh emoji plugin # -# This file is auto-generated by update_emoji.pl. Do not edit it manually. +# This file is auto-generated by update_emoji.py. Do not edit it manually. # # This contains the definition for: # $emoji - which maps character names to Unicode characters -# $emoji_flags - maps country names to Unicode flag characters using region indicators +# $emoji_flags - maps country names to Unicode flag characters using region +# indicators +# $emoji_mod - maps modifier components to Unicode characters +# $emoji_groups - a single associative array to avoid cluttering up the +# global namespace, and to allow adding additional group +# definitions at run time. The keys are the group names, and +# the values are whitespace-separated lists of emoji +# character names. # Main emoji typeset -gAH emoji @@ -13,938 +20,3102 @@ typeset -gAH emoji typeset -gAH emoji_flags # Combining modifiers typeset -gAH emoji_mod - -emoji[copyright_sign]=$'\U00A9' -emoji[registered_sign]=$'\U00AE' -emoji[double_exclamation_mark]=$'\U203C' -emoji[exclamation_question_mark]=$'\U2049' -emoji[trade_mark_sign]=$'\U2122' -emoji[information_source]=$'\U2139' -emoji[left_right_arrow]=$'\U2194' -emoji[up_down_arrow]=$'\U2195' -emoji[north_west_arrow]=$'\U2196' -emoji[north_east_arrow]=$'\U2197' -emoji[south_east_arrow]=$'\U2198' -emoji[south_west_arrow]=$'\U2199' -emoji[leftwards_arrow_with_hook]=$'\U21A9' -emoji[rightwards_arrow_with_hook]=$'\U21AA' -emoji[watch]=$'\U231A' -emoji[hourglass]=$'\U231B' -emoji[keyboard]=$'\U2328' -emoji[eject_symbol]=$'\U23CF' -emoji[black_right_pointing_double_triangle]=$'\U23E9' -emoji[black_left_pointing_double_triangle]=$'\U23EA' -emoji[black_up_pointing_double_triangle]=$'\U23EB' -emoji[black_down_pointing_double_triangle]=$'\U23EC' -emoji[black_right_pointing_double_triangle_with_vertical_bar]=$'\U23ED' -emoji[black_left_pointing_double_triangle_with_vertical_bar]=$'\U23EE' -emoji[black_right_pointing_triangle_with_double_vertical_bar]=$'\U23EF' -emoji[alarm_clock]=$'\U23F0' -emoji[stopwatch]=$'\U23F1' -emoji[timer_clock]=$'\U23F2' -emoji[hourglass_with_flowing_sand]=$'\U23F3' -emoji[double_vertical_bar]=$'\U23F8' -emoji[black_square_for_stop]=$'\U23F9' -emoji[black_circle_for_record]=$'\U23FA' -emoji[circled_latin_capital_letter_m]=$'\U24C2' -emoji[black_small_square]=$'\U25AA' -emoji[white_small_square]=$'\U25AB' -emoji[black_right_pointing_triangle]=$'\U25B6' -emoji[black_left_pointing_triangle]=$'\U25C0' -emoji[white_medium_square]=$'\U25FB' -emoji[black_medium_square]=$'\U25FC' -emoji[white_medium_small_square]=$'\U25FD' -emoji[black_medium_small_square]=$'\U25FE' -emoji[black_sun_with_rays]=$'\U2600' -emoji[cloud]=$'\U2601' -emoji[umbrella]=$'\U2602' -emoji[snowman]=$'\U2603' -emoji[comet]=$'\U2604' -emoji[black_telephone]=$'\U260E' -emoji[ballot_box_with_check]=$'\U2611' -emoji[umbrella_with_rain_drops]=$'\U2614' -emoji[hot_beverage]=$'\U2615' -emoji[shamrock]=$'\U2618' -emoji[white_up_pointing_index]=$'\U261D' -emoji[skull_and_crossbones]=$'\U2620' -emoji[radioactive_sign]=$'\U2622' -emoji[biohazard_sign]=$'\U2623' -emoji[orthodox_cross]=$'\U2626' -emoji[star_and_crescent]=$'\U262A' -emoji[peace_symbol]=$'\U262E' -emoji[yin_yang]=$'\U262F' -emoji[wheel_of_dharma]=$'\U2638' -emoji[white_frowning_face]=$'\U2639' -emoji[white_smiling_face]=$'\U263A' -emoji[aries]=$'\U2648' -emoji[taurus]=$'\U2649' -emoji[gemini]=$'\U264A' -emoji[cancer]=$'\U264B' -emoji[leo]=$'\U264C' -emoji[virgo]=$'\U264D' -emoji[libra]=$'\U264E' -emoji[scorpius]=$'\U264F' -emoji[sagittarius]=$'\U2650' -emoji[capricorn]=$'\U2651' -emoji[aquarius]=$'\U2652' -emoji[pisces]=$'\U2653' -emoji[black_spade_suit]=$'\U2660' -emoji[black_club_suit]=$'\U2663' -emoji[black_heart_suit]=$'\U2665' -emoji[black_diamond_suit]=$'\U2666' -emoji[hot_springs]=$'\U2668' -emoji[black_universal_recycling_symbol]=$'\U267B' -emoji[wheelchair_symbol]=$'\U267F' -emoji[hammer_and_pick]=$'\U2692' -emoji[anchor]=$'\U2693' -emoji[crossed_swords]=$'\U2694' -emoji[scales]=$'\U2696' -emoji[alembic]=$'\U2697' -emoji[gear]=$'\U2699' -emoji[atom_symbol]=$'\U269B' -emoji[fleur_de_lis]=$'\U269C' -emoji[warning_sign]=$'\U26A0' -emoji[high_voltage_sign]=$'\U26A1' -emoji[medium_white_circle]=$'\U26AA' -emoji[medium_black_circle]=$'\U26AB' -emoji[coffin]=$'\U26B0' -emoji[funeral_urn]=$'\U26B1' -emoji[soccer_ball]=$'\U26BD' -emoji[baseball]=$'\U26BE' -emoji[snowman_without_snow]=$'\U26C4' -emoji[sun_behind_cloud]=$'\U26C5' -emoji[thunder_cloud_and_rain]=$'\U26C8' -emoji[ophiuchus]=$'\U26CE' -emoji[pick]=$'\U26CF' -emoji[helmet_with_white_cross]=$'\U26D1' -emoji[chains]=$'\U26D3' -emoji[no_entry]=$'\U26D4' -emoji[shinto_shrine]=$'\U26E9' -emoji[church]=$'\U26EA' -emoji[mountain]=$'\U26F0' -emoji[umbrella_on_ground]=$'\U26F1' -emoji[fountain]=$'\U26F2' -emoji[flag_in_hole]=$'\U26F3' -emoji[ferry]=$'\U26F4' -emoji[sailboat]=$'\U26F5' -emoji[skier]=$'\U26F7' -emoji[ice_skate]=$'\U26F8' -emoji[person_with_ball]=$'\U26F9' -emoji[tent]=$'\U26FA' -emoji[fuel_pump]=$'\U26FD' -emoji[black_scissors]=$'\U2702' -emoji[white_heavy_check_mark]=$'\U2705' -emoji[airplane]=$'\U2708' -emoji[envelope]=$'\U2709' -emoji[raised_fist]=$'\U270A' +# Emoji groups +typeset -gAH emoji_groups +emoji[grinning_face]=$'\U1F600' +emoji[grinning]=$'\U1F600' +emoji[grinning_face_with_big_eyes]=$'\U1F603' +emoji[smiley]=$'\U1F603' +emoji[grinning_face_with_smiling_eyes]=$'\U1F604' +emoji[smile]=$'\U1F604' +emoji[beaming_face_with_smiling_eyes]=$'\U1F601' +emoji[grin]=$'\U1F601' +emoji[grinning_squinting_face]=$'\U1F606' +emoji[laughing]=$'\U1F606' +emoji[satisfied]=$'\U1F606' +emoji[grinning_face_with_sweat]=$'\U1F605' +emoji[sweat_smile]=$'\U1F605' +emoji[rolling_on_the_floor_laughing]=$'\U1F923' +emoji[rofl]=$'\U1F923' +emoji[face_with_tears_of_joy]=$'\U1F602' +emoji[joy]=$'\U1F602' +emoji[slightly_smiling_face]=$'\U1F642' +emoji[upside_down_face]=$'\U1F643' +emoji[winking_face]=$'\U1F609' +emoji[wink]=$'\U1F609' +emoji[smiling_face_with_smiling_eyes]=$'\U1F60A' +emoji[blush]=$'\U1F60A' +emoji[smiling_face_with_halo]=$'\U1F607' +emoji[innocent]=$'\U1F607' +emoji[smiling_face_with_hearts]=$'\U1F970' +emoji[smiling_face_with_three_hearts]=$'\U1F970' +emoji[smiling_face_with_heart_eyes]=$'\U1F60D' +emoji[heart_eyes]=$'\U1F60D' +emoji[star_struck]=$'\U1F929' +emoji[face_blowing_a_kiss]=$'\U1F618' +emoji[kissing_heart]=$'\U1F618' +emoji[kissing_face]=$'\U1F617' +emoji[kissing]=$'\U1F617' +emoji[smiling_face]=$'\U263A\UFE0F' +emoji[relaxed]=$'\U263A\UFE0F' +emoji[smiling_face_unqualified]=$'\U263A' +emoji[kissing_face_with_closed_eyes]=$'\U1F61A' +emoji[kissing_closed_eyes]=$'\U1F61A' +emoji[kissing_face_with_smiling_eyes]=$'\U1F619' +emoji[kissing_smiling_eyes]=$'\U1F619' +emoji[face_savoring_food]=$'\U1F60B' +emoji[yum]=$'\U1F60B' +emoji[face_with_tongue]=$'\U1F61B' +emoji[stuck_out_tongue]=$'\U1F61B' +emoji[winking_face_with_tongue]=$'\U1F61C' +emoji[stuck_out_tongue_winking_eye]=$'\U1F61C' +emoji[zany_face]=$'\U1F92A' +emoji[squinting_face_with_tongue]=$'\U1F61D' +emoji[stuck_out_tongue_closed_eyes]=$'\U1F61D' +emoji[money_mouth_face]=$'\U1F911' +emoji[hugging_face]=$'\U1F917' +emoji[hugs]=$'\U1F917' +emoji[face_with_hand_over_mouth]=$'\U1F92D' +emoji[hand_over_mouth]=$'\U1F92D' +emoji[shushing_face]=$'\U1F92B' +emoji[thinking_face]=$'\U1F914' +emoji[thinking]=$'\U1F914' +emoji[zipper_mouth_face]=$'\U1F910' +emoji[face_with_raised_eyebrow]=$'\U1F928' +emoji[raised_eyebrow]=$'\U1F928' +emoji[neutral_face]=$'\U1F610' +emoji[expressionless_face]=$'\U1F611' +emoji[expressionless]=$'\U1F611' +emoji[face_without_mouth]=$'\U1F636' +emoji[no_mouth]=$'\U1F636' +emoji[smirking_face]=$'\U1F60F' +emoji[smirk]=$'\U1F60F' +emoji[unamused_face]=$'\U1F612' +emoji[unamused]=$'\U1F612' +emoji[face_with_rolling_eyes]=$'\U1F644' +emoji[roll_eyes]=$'\U1F644' +emoji[grimacing_face]=$'\U1F62C' +emoji[grimacing]=$'\U1F62C' +emoji[lying_face]=$'\U1F925' +emoji[relieved_face]=$'\U1F60C' +emoji[relieved]=$'\U1F60C' +emoji[pensive_face]=$'\U1F614' +emoji[pensive]=$'\U1F614' +emoji[sleepy_face]=$'\U1F62A' +emoji[sleepy]=$'\U1F62A' +emoji[drooling_face]=$'\U1F924' +emoji[sleeping_face]=$'\U1F634' +emoji[sleeping]=$'\U1F634' +emoji[face_with_medical_mask]=$'\U1F637' +emoji[mask]=$'\U1F637' +emoji[face_with_thermometer]=$'\U1F912' +emoji[face_with_head_bandage]=$'\U1F915' +emoji[nauseated_face]=$'\U1F922' +emoji[face_vomiting]=$'\U1F92E' +emoji[vomiting_face]=$'\U1F92E' +emoji[sneezing_face]=$'\U1F927' +emoji[hot_face]=$'\U1F975' +emoji[cold_face]=$'\U1F976' +emoji[woozy_face]=$'\U1F974' +emoji[dizzy_face]=$'\U1F635' +emoji[exploding_head]=$'\U1F92F' +emoji[cowboy_hat_face]=$'\U1F920' +emoji[partying_face]=$'\U1F973' +emoji[smiling_face_with_sunglasses]=$'\U1F60E' +emoji[nerd_face]=$'\U1F913' +emoji[face_with_monocle]=$'\U1F9D0' +emoji[monocle_face]=$'\U1F9D0' +emoji[confused_face]=$'\U1F615' +emoji[confused]=$'\U1F615' +emoji[worried_face]=$'\U1F61F' +emoji[worried]=$'\U1F61F' +emoji[slightly_frowning_face]=$'\U1F641' +emoji[slightly_frowning_face_1]=$'\U2639\UFE0F' +emoji[frowning_face_unqualified]=$'\U2639' +emoji[frowning_face]=$'\U2639' +emoji[face_with_open_mouth]=$'\U1F62E' +emoji[open_mouth]=$'\U1F62E' +emoji[hushed_face]=$'\U1F62F' +emoji[hushed]=$'\U1F62F' +emoji[astonished_face]=$'\U1F632' +emoji[astonished]=$'\U1F632' +emoji[flushed_face]=$'\U1F633' +emoji[flushed]=$'\U1F633' +emoji[pleading_face]=$'\U1F97A' +emoji[frowning_face_with_open_mouth]=$'\U1F626' +emoji[frowning]=$'\U1F626' +emoji[anguished_face]=$'\U1F627' +emoji[anguished]=$'\U1F627' +emoji[fearful_face]=$'\U1F628' +emoji[fearful]=$'\U1F628' +emoji[anxious_face_with_sweat]=$'\U1F630' +emoji[cold_sweat]=$'\U1F630' +emoji[sad_but_relieved_face]=$'\U1F625' +emoji[disappointed_relieved]=$'\U1F625' +emoji[crying_face]=$'\U1F622' +emoji[cry]=$'\U1F622' +emoji[loudly_crying_face]=$'\U1F62D' +emoji[sob]=$'\U1F62D' +emoji[face_screaming_in_fear]=$'\U1F631' +emoji[scream]=$'\U1F631' +emoji[confounded_face]=$'\U1F616' +emoji[confounded]=$'\U1F616' +emoji[persevering_face]=$'\U1F623' +emoji[persevere]=$'\U1F623' +emoji[disappointed_face]=$'\U1F61E' +emoji[disappointed]=$'\U1F61E' +emoji[downcast_face_with_sweat]=$'\U1F613' +emoji[sweat]=$'\U1F613' +emoji[weary_face]=$'\U1F629' +emoji[weary]=$'\U1F629' +emoji[tired_face]=$'\U1F62B' +emoji[yawning_face]=$'\U1F971' +emoji[face_with_steam_from_nose]=$'\U1F624' +emoji[triumph]=$'\U1F624' +emoji[pouting_face]=$'\U1F621' +emoji[rage]=$'\U1F621' +emoji[pout]=$'\U1F621' +emoji[angry_face]=$'\U1F620' +emoji[angry]=$'\U1F620' +emoji[face_with_symbols_on_mouth]=$'\U1F92C' +emoji[cursing_face]=$'\U1F92C' +emoji[smiling_face_with_horns]=$'\U1F608' +emoji[smiling_imp]=$'\U1F608' +emoji[angry_face_with_horns]=$'\U1F47F' +emoji[imp]=$'\U1F47F' +emoji[skull]=$'\U1F480' +emoji[skull_and_crossbones]=$'\U2620\UFE0F' +emoji[skull_and_crossbones_unqualified]=$'\U2620' +emoji[pile_of_poo]=$'\U1F4A9' +emoji[hankey]=$'\U1F4A9' +emoji[poop]=$'\U1F4A9' +emoji[shit]=$'\U1F4A9' +emoji[clown_face]=$'\U1F921' +emoji[ogre]=$'\U1F479' +emoji[japanese_ogre]=$'\U1F479' +emoji[goblin]=$'\U1F47A' +emoji[japanese_goblin]=$'\U1F47A' +emoji[ghost]=$'\U1F47B' +emoji[alien]=$'\U1F47D' +emoji[alien_monster]=$'\U1F47E' +emoji[space_invader]=$'\U1F47E' +emoji[robot]=$'\U1F916' +emoji[grinning_cat]=$'\U1F63A' +emoji[smiley_cat]=$'\U1F63A' +emoji[grinning_cat_with_smiling_eyes]=$'\U1F638' +emoji[smile_cat]=$'\U1F638' +emoji[cat_with_tears_of_joy]=$'\U1F639' +emoji[joy_cat]=$'\U1F639' +emoji[smiling_cat_with_heart_eyes]=$'\U1F63B' +emoji[heart_eyes_cat]=$'\U1F63B' +emoji[cat_with_wry_smile]=$'\U1F63C' +emoji[smirk_cat]=$'\U1F63C' +emoji[kissing_cat]=$'\U1F63D' +emoji[weary_cat]=$'\U1F640' +emoji[scream_cat]=$'\U1F640' +emoji[crying_cat]=$'\U1F63F' +emoji[crying_cat_face]=$'\U1F63F' +emoji[pouting_cat]=$'\U1F63E' +emoji[see_no_evil_monkey]=$'\U1F648' +emoji[see_no_evil]=$'\U1F648' +emoji[hear_no_evil_monkey]=$'\U1F649' +emoji[hear_no_evil]=$'\U1F649' +emoji[speak_no_evil_monkey]=$'\U1F64A' +emoji[speak_no_evil]=$'\U1F64A' +emoji[kiss_mark]=$'\U1F48B' +emoji[love_letter]=$'\U1F48C' +emoji[heart_with_arrow]=$'\U1F498' +emoji[cupid]=$'\U1F498' +emoji[heart_with_ribbon]=$'\U1F49D' +emoji[gift_heart]=$'\U1F49D' +emoji[sparkling_heart]=$'\U1F496' +emoji[growing_heart]=$'\U1F497' +emoji[heartpulse]=$'\U1F497' +emoji[beating_heart]=$'\U1F493' +emoji[heartbeat]=$'\U1F493' +emoji[revolving_hearts]=$'\U1F49E' +emoji[two_hearts]=$'\U1F495' +emoji[heart_decoration]=$'\U1F49F' +emoji[heart_exclamation]=$'\U2763\UFE0F' +emoji[heavy_heart_exclamation]=$'\U2763\UFE0F' +emoji[heart_exclamation_unqualified]=$'\U2763' +emoji[broken_heart]=$'\U1F494' +emoji[red_heart]=$'\U2764\UFE0F' +emoji[heart]=$'\U2764\UFE0F' +emoji[red_heart_unqualified]=$'\U2764' +emoji[orange_heart]=$'\U1F9E1' +emoji[yellow_heart]=$'\U1F49B' +emoji[green_heart]=$'\U1F49A' +emoji[blue_heart]=$'\U1F499' +emoji[purple_heart]=$'\U1F49C' +emoji[brown_heart]=$'\U1F90E' +emoji[black_heart]=$'\U1F5A4' +emoji[white_heart]=$'\U1F90D' +emoji[hundred_points]=$'\U1F4AF' +emoji[100]=$'\U1F4AF' +emoji[anger_symbol]=$'\U1F4A2' +emoji[anger]=$'\U1F4A2' +emoji[collision]=$'\U1F4A5' +emoji[boom]=$'\U1F4A5' +emoji[dizzy]=$'\U1F4AB' +emoji[sweat_droplets]=$'\U1F4A6' +emoji[sweat_drops]=$'\U1F4A6' +emoji[dashing_away]=$'\U1F4A8' +emoji[dash]=$'\U1F4A8' +emoji[hole]=$'\U1F573\UFE0F' +emoji[hole_unqualified]=$'\U1F573' +emoji[bomb]=$'\U1F4A3' +emoji[speech_balloon]=$'\U1F4AC' +emoji[eye_in_speech_bubble]=$'\U1F441\UFE0F\U200D\U1F5E8\UFE0F' +emoji[eye_speech_bubble]=$'\U1F441\UFE0F\U200D\U1F5E8\UFE0F' +emoji[eye_in_speech_bubble_unqualified]=$'\U1F441\U200D\U1F5E8\UFE0F' +emoji[eye_in_speech_bubble_unqualified_1]=$'\U1F441\UFE0F\U200D\U1F5E8' +emoji[eye_in_speech_bubble_unqualified_2]=$'\U1F441\U200D\U1F5E8' +emoji[left_speech_bubble]=$'\U1F5E8\UFE0F' +emoji[left_speech_bubble_unqualified]=$'\U1F5E8' +emoji[right_anger_bubble]=$'\U1F5EF\UFE0F' +emoji[right_anger_bubble_unqualified]=$'\U1F5EF' +emoji[thought_balloon]=$'\U1F4AD' +emoji[zzz]=$'\U1F4A4' +emoji[waving_hand]=$'\U1F44B' +emoji[wave]=$'\U1F44B' +emoji[waving_hand_light_skin_tone]=$'\U1F44B\U1F3FB' +emoji[waving_hand_medium_light_skin_tone]=$'\U1F44B\U1F3FC' +emoji[waving_hand_medium_skin_tone]=$'\U1F44B\U1F3FD' +emoji[waving_hand_medium_dark_skin_tone]=$'\U1F44B\U1F3FE' +emoji[waving_hand_dark_skin_tone]=$'\U1F44B\U1F3FF' +emoji[raised_back_of_hand]=$'\U1F91A' +emoji[raised_back_of_hand_light_skin_tone]=$'\U1F91A\U1F3FB' +emoji[raised_back_of_hand_medium_light_skin_tone]=$'\U1F91A\U1F3FC' +emoji[raised_back_of_hand_medium_skin_tone]=$'\U1F91A\U1F3FD' +emoji[raised_back_of_hand_medium_dark_skin_tone]=$'\U1F91A\U1F3FE' +emoji[raised_back_of_hand_dark_skin_tone]=$'\U1F91A\U1F3FF' +emoji[hand_with_fingers_splayed]=$'\U1F590\UFE0F' +emoji[hand_with_fingers_splayed_unqualified]=$'\U1F590' +emoji[raised_hand_with_fingers_splayed]=$'\U1F590' +emoji[hand_with_fingers_splayed_light_skin_tone]=$'\U1F590\U1F3FB' +emoji[hand_with_fingers_splayed_medium_light_skin_tone]=$'\U1F590\U1F3FC' +emoji[hand_with_fingers_splayed_medium_skin_tone]=$'\U1F590\U1F3FD' +emoji[hand_with_fingers_splayed_medium_dark_skin_tone]=$'\U1F590\U1F3FE' +emoji[hand_with_fingers_splayed_dark_skin_tone]=$'\U1F590\U1F3FF' emoji[raised_hand]=$'\U270B' -emoji[victory_hand]=$'\U270C' -emoji[writing_hand]=$'\U270D' -emoji[pencil]=$'\U270F' -emoji[black_nib]=$'\U2712' -emoji[heavy_check_mark]=$'\U2714' -emoji[heavy_multiplication_x]=$'\U2716' -emoji[latin_cross]=$'\U271D' -emoji[star_of_david]=$'\U2721' -emoji[sparkles]=$'\U2728' -emoji[eight_spoked_asterisk]=$'\U2733' -emoji[eight_pointed_black_star]=$'\U2734' -emoji[snowflake]=$'\U2744' -emoji[sparkle]=$'\U2747' -emoji[cross_mark]=$'\U274C' -emoji[negative_squared_cross_mark]=$'\U274E' -emoji[black_question_mark_ornament]=$'\U2753' -emoji[white_question_mark_ornament]=$'\U2754' -emoji[white_exclamation_mark_ornament]=$'\U2755' -emoji[heavy_exclamation_mark_symbol]=$'\U2757' -emoji[heavy_heart_exclamation_mark_ornament]=$'\U2763' -emoji[heavy_black_heart]=$'\U2764' -emoji[heavy_plus_sign]=$'\U2795' -emoji[heavy_minus_sign]=$'\U2796' -emoji[heavy_division_sign]=$'\U2797' -emoji[black_rightwards_arrow]=$'\U27A1' -emoji[curly_loop]=$'\U27B0' -emoji[double_curly_loop]=$'\U27BF' -emoji[arrow_pointing_rightwards_then_curving_upwards]=$'\U2934' -emoji[arrow_pointing_rightwards_then_curving_downwards]=$'\U2935' -emoji[leftwards_black_arrow]=$'\U2B05' -emoji[upwards_black_arrow]=$'\U2B06' -emoji[downwards_black_arrow]=$'\U2B07' -emoji[black_large_square]=$'\U2B1B' -emoji[white_large_square]=$'\U2B1C' -emoji[white_medium_star]=$'\U2B50' -emoji[heavy_large_circle]=$'\U2B55' -emoji[wavy_dash]=$'\U3030' -emoji[part_alternation_mark]=$'\U303D' -emoji[circled_ideograph_congratulation]=$'\U3297' -emoji[circled_ideograph_secret]=$'\U3299' -emoji[mahjong_tile_red_dragon]=$'\U1F004' -emoji[playing_card_black_joker]=$'\U1F0CF' -emoji[negative_squared_latin_capital_letter_a]=$'\U1F170' -emoji[negative_squared_latin_capital_letter_b]=$'\U1F171' -emoji[negative_squared_latin_capital_letter_o]=$'\U1F17E' -emoji[negative_squared_latin_capital_letter_p]=$'\U1F17F' -emoji[negative_squared_ab]=$'\U1F18E' -emoji[squared_cl]=$'\U1F191' -emoji[squared_cool]=$'\U1F192' -emoji[squared_free]=$'\U1F193' -emoji[squared_id]=$'\U1F194' -emoji[squared_new]=$'\U1F195' -emoji[squared_ng]=$'\U1F196' -emoji[squared_ok]=$'\U1F197' -emoji[squared_sos]=$'\U1F198' -emoji[squared_up_with_exclamation_mark]=$'\U1F199' -emoji[squared_vs]=$'\U1F19A' -emoji[squared_katakana_koko]=$'\U1F201' -emoji[squared_katakana_sa]=$'\U1F202' -emoji[squared_cjk_unified_ideograph_7121]=$'\U1F21A' -emoji[squared_cjk_unified_ideograph_6307]=$'\U1F22F' -emoji[squared_cjk_unified_ideograph_7981]=$'\U1F232' -emoji[squared_cjk_unified_ideograph_7a7a]=$'\U1F233' -emoji[squared_cjk_unified_ideograph_5408]=$'\U1F234' -emoji[squared_cjk_unified_ideograph_6e80]=$'\U1F235' -emoji[squared_cjk_unified_ideograph_6709]=$'\U1F236' -emoji[squared_cjk_unified_ideograph_6708]=$'\U1F237' -emoji[squared_cjk_unified_ideograph_7533]=$'\U1F238' -emoji[squared_cjk_unified_ideograph_5272]=$'\U1F239' -emoji[squared_cjk_unified_ideograph_55b6]=$'\U1F23A' -emoji[circled_ideograph_advantage]=$'\U1F250' -emoji[circled_ideograph_accept]=$'\U1F251' -emoji[cyclone]=$'\U1F300' -emoji[foggy]=$'\U1F301' -emoji[closed_umbrella]=$'\U1F302' -emoji[night_with_stars]=$'\U1F303' -emoji[sunrise_over_mountains]=$'\U1F304' -emoji[sunrise]=$'\U1F305' -emoji[cityscape_at_dusk]=$'\U1F306' -emoji[sunset_over_buildings]=$'\U1F307' -emoji[rainbow]=$'\U1F308' -emoji[bridge_at_night]=$'\U1F309' -emoji[water_wave]=$'\U1F30A' -emoji[volcano]=$'\U1F30B' -emoji[milky_way]=$'\U1F30C' -emoji[earth_globe_europe_africa]=$'\U1F30D' -emoji[earth_globe_americas]=$'\U1F30E' -emoji[earth_globe_asia_australia]=$'\U1F30F' -emoji[globe_with_meridians]=$'\U1F310' -emoji[new_moon_symbol]=$'\U1F311' -emoji[waxing_crescent_moon_symbol]=$'\U1F312' -emoji[first_quarter_moon_symbol]=$'\U1F313' -emoji[waxing_gibbous_moon_symbol]=$'\U1F314' -emoji[full_moon_symbol]=$'\U1F315' -emoji[waning_gibbous_moon_symbol]=$'\U1F316' -emoji[last_quarter_moon_symbol]=$'\U1F317' -emoji[waning_crescent_moon_symbol]=$'\U1F318' -emoji[crescent_moon]=$'\U1F319' -emoji[new_moon_with_face]=$'\U1F31A' -emoji[first_quarter_moon_with_face]=$'\U1F31B' -emoji[last_quarter_moon_with_face]=$'\U1F31C' -emoji[full_moon_with_face]=$'\U1F31D' -emoji[sun_with_face]=$'\U1F31E' -emoji[glowing_star]=$'\U1F31F' -emoji[shooting_star]=$'\U1F320' -emoji[thermometer]=$'\U1F321' -emoji[white_sun_with_small_cloud]=$'\U1F324' -emoji[white_sun_behind_cloud]=$'\U1F325' -emoji[white_sun_behind_cloud_with_rain]=$'\U1F326' -emoji[cloud_with_rain]=$'\U1F327' -emoji[cloud_with_snow]=$'\U1F328' -emoji[cloud_with_lightning]=$'\U1F329' -emoji[cloud_with_tornado]=$'\U1F32A' -emoji[fog]=$'\U1F32B' -emoji[wind_blowing_face]=$'\U1F32C' -emoji[hot_dog]=$'\U1F32D' -emoji[taco]=$'\U1F32E' -emoji[burrito]=$'\U1F32F' -emoji[chestnut]=$'\U1F330' +emoji[hand]=$'\U270B' +emoji[raised_hand_light_skin_tone]=$'\U270B\U1F3FB' +emoji[raised_hand_medium_light_skin_tone]=$'\U270B\U1F3FC' +emoji[raised_hand_medium_skin_tone]=$'\U270B\U1F3FD' +emoji[raised_hand_medium_dark_skin_tone]=$'\U270B\U1F3FE' +emoji[raised_hand_dark_skin_tone]=$'\U270B\U1F3FF' +emoji[vulcan_salute]=$'\U1F596' +emoji[vulcan_salute_light_skin_tone]=$'\U1F596\U1F3FB' +emoji[vulcan_salute_medium_light_skin_tone]=$'\U1F596\U1F3FC' +emoji[vulcan_salute_medium_skin_tone]=$'\U1F596\U1F3FD' +emoji[vulcan_salute_medium_dark_skin_tone]=$'\U1F596\U1F3FE' +emoji[vulcan_salute_dark_skin_tone]=$'\U1F596\U1F3FF' +emoji[OK_hand]=$'\U1F44C' +emoji[ok_hand]=$'\U1F44C' +emoji[OK_hand_light_skin_tone]=$'\U1F44C\U1F3FB' +emoji[OK_hand_medium_light_skin_tone]=$'\U1F44C\U1F3FC' +emoji[OK_hand_medium_skin_tone]=$'\U1F44C\U1F3FD' +emoji[OK_hand_medium_dark_skin_tone]=$'\U1F44C\U1F3FE' +emoji[OK_hand_dark_skin_tone]=$'\U1F44C\U1F3FF' +emoji[pinching_hand]=$'\U1F90F' +emoji[pinching_hand_light_skin_tone]=$'\U1F90F\U1F3FB' +emoji[pinching_hand_medium_light_skin_tone]=$'\U1F90F\U1F3FC' +emoji[pinching_hand_medium_skin_tone]=$'\U1F90F\U1F3FD' +emoji[pinching_hand_medium_dark_skin_tone]=$'\U1F90F\U1F3FE' +emoji[pinching_hand_dark_skin_tone]=$'\U1F90F\U1F3FF' +emoji[victory_hand]=$'\U270C\UFE0F' +emoji[v]=$'\U270C\UFE0F' +emoji[victory_hand_unqualified]=$'\U270C' +emoji[victory_hand_light_skin_tone]=$'\U270C\U1F3FB' +emoji[victory_hand_medium_light_skin_tone]=$'\U270C\U1F3FC' +emoji[victory_hand_medium_skin_tone]=$'\U270C\U1F3FD' +emoji[victory_hand_medium_dark_skin_tone]=$'\U270C\U1F3FE' +emoji[victory_hand_dark_skin_tone]=$'\U270C\U1F3FF' +emoji[crossed_fingers]=$'\U1F91E' +emoji[crossed_fingers_light_skin_tone]=$'\U1F91E\U1F3FB' +emoji[crossed_fingers_medium_light_skin_tone]=$'\U1F91E\U1F3FC' +emoji[crossed_fingers_medium_skin_tone]=$'\U1F91E\U1F3FD' +emoji[crossed_fingers_medium_dark_skin_tone]=$'\U1F91E\U1F3FE' +emoji[crossed_fingers_dark_skin_tone]=$'\U1F91E\U1F3FF' +emoji[love_you_gesture]=$'\U1F91F' +emoji[love_you_gesture_light_skin_tone]=$'\U1F91F\U1F3FB' +emoji[love_you_gesture_medium_light_skin_tone]=$'\U1F91F\U1F3FC' +emoji[love_you_gesture_medium_skin_tone]=$'\U1F91F\U1F3FD' +emoji[love_you_gesture_medium_dark_skin_tone]=$'\U1F91F\U1F3FE' +emoji[love_you_gesture_dark_skin_tone]=$'\U1F91F\U1F3FF' +emoji[sign_of_the_horns]=$'\U1F918' +emoji[metal]=$'\U1F918' +emoji[sign_of_the_horns_light_skin_tone]=$'\U1F918\U1F3FB' +emoji[sign_of_the_horns_medium_light_skin_tone]=$'\U1F918\U1F3FC' +emoji[sign_of_the_horns_medium_skin_tone]=$'\U1F918\U1F3FD' +emoji[sign_of_the_horns_medium_dark_skin_tone]=$'\U1F918\U1F3FE' +emoji[sign_of_the_horns_dark_skin_tone]=$'\U1F918\U1F3FF' +emoji[call_me_hand]=$'\U1F919' +emoji[call_me_hand_light_skin_tone]=$'\U1F919\U1F3FB' +emoji[call_me_hand_medium_light_skin_tone]=$'\U1F919\U1F3FC' +emoji[call_me_hand_medium_skin_tone]=$'\U1F919\U1F3FD' +emoji[call_me_hand_medium_dark_skin_tone]=$'\U1F919\U1F3FE' +emoji[call_me_hand_dark_skin_tone]=$'\U1F919\U1F3FF' +emoji[backhand_index_pointing_left]=$'\U1F448' +emoji[point_left]=$'\U1F448' +emoji[backhand_index_pointing_left_light_skin_tone]=$'\U1F448\U1F3FB' +emoji[backhand_index_pointing_left_medium_light_skin_tone]=$'\U1F448\U1F3FC' +emoji[backhand_index_pointing_left_medium_skin_tone]=$'\U1F448\U1F3FD' +emoji[backhand_index_pointing_left_medium_dark_skin_tone]=$'\U1F448\U1F3FE' +emoji[backhand_index_pointing_left_dark_skin_tone]=$'\U1F448\U1F3FF' +emoji[backhand_index_pointing_right]=$'\U1F449' +emoji[point_right]=$'\U1F449' +emoji[backhand_index_pointing_right_light_skin_tone]=$'\U1F449\U1F3FB' +emoji[backhand_index_pointing_right_medium_light_skin_tone]=$'\U1F449\U1F3FC' +emoji[backhand_index_pointing_right_medium_skin_tone]=$'\U1F449\U1F3FD' +emoji[backhand_index_pointing_right_medium_dark_skin_tone]=$'\U1F449\U1F3FE' +emoji[backhand_index_pointing_right_dark_skin_tone]=$'\U1F449\U1F3FF' +emoji[backhand_index_pointing_up]=$'\U1F446' +emoji[point_up_2]=$'\U1F446' +emoji[backhand_index_pointing_up_light_skin_tone]=$'\U1F446\U1F3FB' +emoji[backhand_index_pointing_up_medium_light_skin_tone]=$'\U1F446\U1F3FC' +emoji[backhand_index_pointing_up_medium_skin_tone]=$'\U1F446\U1F3FD' +emoji[backhand_index_pointing_up_medium_dark_skin_tone]=$'\U1F446\U1F3FE' +emoji[backhand_index_pointing_up_dark_skin_tone]=$'\U1F446\U1F3FF' +emoji[middle_finger]=$'\U1F595' +emoji[fu]=$'\U1F595' +emoji[middle_finger_light_skin_tone]=$'\U1F595\U1F3FB' +emoji[middle_finger_medium_light_skin_tone]=$'\U1F595\U1F3FC' +emoji[middle_finger_medium_skin_tone]=$'\U1F595\U1F3FD' +emoji[middle_finger_medium_dark_skin_tone]=$'\U1F595\U1F3FE' +emoji[middle_finger_dark_skin_tone]=$'\U1F595\U1F3FF' +emoji[backhand_index_pointing_down]=$'\U1F447' +emoji[point_down]=$'\U1F447' +emoji[backhand_index_pointing_down_light_skin_tone]=$'\U1F447\U1F3FB' +emoji[backhand_index_pointing_down_medium_light_skin_tone]=$'\U1F447\U1F3FC' +emoji[backhand_index_pointing_down_medium_skin_tone]=$'\U1F447\U1F3FD' +emoji[backhand_index_pointing_down_medium_dark_skin_tone]=$'\U1F447\U1F3FE' +emoji[backhand_index_pointing_down_dark_skin_tone]=$'\U1F447\U1F3FF' +emoji[index_pointing_up]=$'\U261D\UFE0F' +emoji[point_up]=$'\U261D\UFE0F' +emoji[index_pointing_up_unqualified]=$'\U261D' +emoji[index_pointing_up_light_skin_tone]=$'\U261D\U1F3FB' +emoji[index_pointing_up_medium_light_skin_tone]=$'\U261D\U1F3FC' +emoji[index_pointing_up_medium_skin_tone]=$'\U261D\U1F3FD' +emoji[index_pointing_up_medium_dark_skin_tone]=$'\U261D\U1F3FE' +emoji[index_pointing_up_dark_skin_tone]=$'\U261D\U1F3FF' +emoji[thumbs_up]=$'\U1F44D' +emoji[+1]=$'\U1F44D' +emoji[thumbsup]=$'\U1F44D' +emoji[thumbs_up_light_skin_tone]=$'\U1F44D\U1F3FB' +emoji[thumbs_up_medium_light_skin_tone]=$'\U1F44D\U1F3FC' +emoji[thumbs_up_medium_skin_tone]=$'\U1F44D\U1F3FD' +emoji[thumbs_up_medium_dark_skin_tone]=$'\U1F44D\U1F3FE' +emoji[thumbs_up_dark_skin_tone]=$'\U1F44D\U1F3FF' +emoji[thumbs_down]=$'\U1F44E' +emoji[-1]=$'\U1F44E' +emoji[thumbsdown]=$'\U1F44E' +emoji[thumbs_down_light_skin_tone]=$'\U1F44E\U1F3FB' +emoji[thumbs_down_medium_light_skin_tone]=$'\U1F44E\U1F3FC' +emoji[thumbs_down_medium_skin_tone]=$'\U1F44E\U1F3FD' +emoji[thumbs_down_medium_dark_skin_tone]=$'\U1F44E\U1F3FE' +emoji[thumbs_down_dark_skin_tone]=$'\U1F44E\U1F3FF' +emoji[raised_fist]=$'\U270A' +emoji[fist_raised]=$'\U270A' +emoji[fist]=$'\U270A' +emoji[raised_fist_light_skin_tone]=$'\U270A\U1F3FB' +emoji[raised_fist_medium_light_skin_tone]=$'\U270A\U1F3FC' +emoji[raised_fist_medium_skin_tone]=$'\U270A\U1F3FD' +emoji[raised_fist_medium_dark_skin_tone]=$'\U270A\U1F3FE' +emoji[raised_fist_dark_skin_tone]=$'\U270A\U1F3FF' +emoji[oncoming_fist]=$'\U1F44A' +emoji[fist_oncoming]=$'\U1F44A' +emoji[facepunch]=$'\U1F44A' +emoji[punch]=$'\U1F44A' +emoji[oncoming_fist_light_skin_tone]=$'\U1F44A\U1F3FB' +emoji[oncoming_fist_medium_light_skin_tone]=$'\U1F44A\U1F3FC' +emoji[oncoming_fist_medium_skin_tone]=$'\U1F44A\U1F3FD' +emoji[oncoming_fist_medium_dark_skin_tone]=$'\U1F44A\U1F3FE' +emoji[oncoming_fist_dark_skin_tone]=$'\U1F44A\U1F3FF' +emoji[left_facing_fist]=$'\U1F91B' +emoji[fist_left]=$'\U1F91B' +emoji[left_facing_fist_light_skin_tone]=$'\U1F91B\U1F3FB' +emoji[left_facing_fist_medium_light_skin_tone]=$'\U1F91B\U1F3FC' +emoji[left_facing_fist_medium_skin_tone]=$'\U1F91B\U1F3FD' +emoji[left_facing_fist_medium_dark_skin_tone]=$'\U1F91B\U1F3FE' +emoji[left_facing_fist_dark_skin_tone]=$'\U1F91B\U1F3FF' +emoji[right_facing_fist]=$'\U1F91C' +emoji[fist_right]=$'\U1F91C' +emoji[right_facing_fist_light_skin_tone]=$'\U1F91C\U1F3FB' +emoji[right_facing_fist_medium_light_skin_tone]=$'\U1F91C\U1F3FC' +emoji[right_facing_fist_medium_skin_tone]=$'\U1F91C\U1F3FD' +emoji[right_facing_fist_medium_dark_skin_tone]=$'\U1F91C\U1F3FE' +emoji[right_facing_fist_dark_skin_tone]=$'\U1F91C\U1F3FF' +emoji[clapping_hands]=$'\U1F44F' +emoji[clap]=$'\U1F44F' +emoji[clapping_hands_light_skin_tone]=$'\U1F44F\U1F3FB' +emoji[clapping_hands_medium_light_skin_tone]=$'\U1F44F\U1F3FC' +emoji[clapping_hands_medium_skin_tone]=$'\U1F44F\U1F3FD' +emoji[clapping_hands_medium_dark_skin_tone]=$'\U1F44F\U1F3FE' +emoji[clapping_hands_dark_skin_tone]=$'\U1F44F\U1F3FF' +emoji[raising_hands]=$'\U1F64C' +emoji[raised_hands]=$'\U1F64C' +emoji[raising_hands_light_skin_tone]=$'\U1F64C\U1F3FB' +emoji[raising_hands_medium_light_skin_tone]=$'\U1F64C\U1F3FC' +emoji[raising_hands_medium_skin_tone]=$'\U1F64C\U1F3FD' +emoji[raising_hands_medium_dark_skin_tone]=$'\U1F64C\U1F3FE' +emoji[raising_hands_dark_skin_tone]=$'\U1F64C\U1F3FF' +emoji[open_hands]=$'\U1F450' +emoji[open_hands_light_skin_tone]=$'\U1F450\U1F3FB' +emoji[open_hands_medium_light_skin_tone]=$'\U1F450\U1F3FC' +emoji[open_hands_medium_skin_tone]=$'\U1F450\U1F3FD' +emoji[open_hands_medium_dark_skin_tone]=$'\U1F450\U1F3FE' +emoji[open_hands_dark_skin_tone]=$'\U1F450\U1F3FF' +emoji[palms_up_together]=$'\U1F932' +emoji[palms_up_together_light_skin_tone]=$'\U1F932\U1F3FB' +emoji[palms_up_together_medium_light_skin_tone]=$'\U1F932\U1F3FC' +emoji[palms_up_together_medium_skin_tone]=$'\U1F932\U1F3FD' +emoji[palms_up_together_medium_dark_skin_tone]=$'\U1F932\U1F3FE' +emoji[palms_up_together_dark_skin_tone]=$'\U1F932\U1F3FF' +emoji[handshake]=$'\U1F91D' +emoji[folded_hands]=$'\U1F64F' +emoji[pray]=$'\U1F64F' +emoji[folded_hands_light_skin_tone]=$'\U1F64F\U1F3FB' +emoji[folded_hands_medium_light_skin_tone]=$'\U1F64F\U1F3FC' +emoji[folded_hands_medium_skin_tone]=$'\U1F64F\U1F3FD' +emoji[folded_hands_medium_dark_skin_tone]=$'\U1F64F\U1F3FE' +emoji[folded_hands_dark_skin_tone]=$'\U1F64F\U1F3FF' +emoji[writing_hand]=$'\U270D\UFE0F' +emoji[writing_hand_unqualified]=$'\U270D' +emoji[writing_hand_light_skin_tone]=$'\U270D\U1F3FB' +emoji[writing_hand_medium_light_skin_tone]=$'\U270D\U1F3FC' +emoji[writing_hand_medium_skin_tone]=$'\U270D\U1F3FD' +emoji[writing_hand_medium_dark_skin_tone]=$'\U270D\U1F3FE' +emoji[writing_hand_dark_skin_tone]=$'\U270D\U1F3FF' +emoji[nail_polish]=$'\U1F485' +emoji[nail_care]=$'\U1F485' +emoji[nail_polish_light_skin_tone]=$'\U1F485\U1F3FB' +emoji[nail_polish_medium_light_skin_tone]=$'\U1F485\U1F3FC' +emoji[nail_polish_medium_skin_tone]=$'\U1F485\U1F3FD' +emoji[nail_polish_medium_dark_skin_tone]=$'\U1F485\U1F3FE' +emoji[nail_polish_dark_skin_tone]=$'\U1F485\U1F3FF' +emoji[selfie]=$'\U1F933' +emoji[selfie_light_skin_tone]=$'\U1F933\U1F3FB' +emoji[selfie_medium_light_skin_tone]=$'\U1F933\U1F3FC' +emoji[selfie_medium_skin_tone]=$'\U1F933\U1F3FD' +emoji[selfie_medium_dark_skin_tone]=$'\U1F933\U1F3FE' +emoji[selfie_dark_skin_tone]=$'\U1F933\U1F3FF' +emoji[flexed_biceps]=$'\U1F4AA' +emoji[muscle]=$'\U1F4AA' +emoji[flexed_biceps_light_skin_tone]=$'\U1F4AA\U1F3FB' +emoji[flexed_biceps_medium_light_skin_tone]=$'\U1F4AA\U1F3FC' +emoji[flexed_biceps_medium_skin_tone]=$'\U1F4AA\U1F3FD' +emoji[flexed_biceps_medium_dark_skin_tone]=$'\U1F4AA\U1F3FE' +emoji[flexed_biceps_dark_skin_tone]=$'\U1F4AA\U1F3FF' +emoji[mechanical_arm]=$'\U1F9BE' +emoji[mechanical_leg]=$'\U1F9BF' +emoji[mechanical_leg_1]=$'\U1F9B5' +emoji[leg]=$'\U1F9B5' +emoji[leg_light_skin_tone]=$'\U1F9B5\U1F3FB' +emoji[leg_medium_light_skin_tone]=$'\U1F9B5\U1F3FC' +emoji[leg_medium_skin_tone]=$'\U1F9B5\U1F3FD' +emoji[leg_medium_dark_skin_tone]=$'\U1F9B5\U1F3FE' +emoji[leg_dark_skin_tone]=$'\U1F9B5\U1F3FF' +emoji[foot]=$'\U1F9B6' +emoji[foot_light_skin_tone]=$'\U1F9B6\U1F3FB' +emoji[foot_medium_light_skin_tone]=$'\U1F9B6\U1F3FC' +emoji[foot_medium_skin_tone]=$'\U1F9B6\U1F3FD' +emoji[foot_medium_dark_skin_tone]=$'\U1F9B6\U1F3FE' +emoji[foot_dark_skin_tone]=$'\U1F9B6\U1F3FF' +emoji[ear]=$'\U1F442' +emoji[ear_light_skin_tone]=$'\U1F442\U1F3FB' +emoji[ear_medium_light_skin_tone]=$'\U1F442\U1F3FC' +emoji[ear_medium_skin_tone]=$'\U1F442\U1F3FD' +emoji[ear_medium_dark_skin_tone]=$'\U1F442\U1F3FE' +emoji[ear_dark_skin_tone]=$'\U1F442\U1F3FF' +emoji[ear_with_hearing_aid]=$'\U1F9BB' +emoji[ear_with_hearing_aid_light_skin_tone]=$'\U1F9BB\U1F3FB' +emoji[ear_with_hearing_aid_medium_light_skin_tone]=$'\U1F9BB\U1F3FC' +emoji[ear_with_hearing_aid_medium_skin_tone]=$'\U1F9BB\U1F3FD' +emoji[ear_with_hearing_aid_medium_dark_skin_tone]=$'\U1F9BB\U1F3FE' +emoji[ear_with_hearing_aid_dark_skin_tone]=$'\U1F9BB\U1F3FF' +emoji[nose]=$'\U1F443' +emoji[nose_light_skin_tone]=$'\U1F443\U1F3FB' +emoji[nose_medium_light_skin_tone]=$'\U1F443\U1F3FC' +emoji[nose_medium_skin_tone]=$'\U1F443\U1F3FD' +emoji[nose_medium_dark_skin_tone]=$'\U1F443\U1F3FE' +emoji[nose_dark_skin_tone]=$'\U1F443\U1F3FF' +emoji[brain]=$'\U1F9E0' +emoji[tooth]=$'\U1F9B7' +emoji[bone]=$'\U1F9B4' +emoji[eyes]=$'\U1F440' +emoji[eyes_1]=$'\U1F441\UFE0F' +emoji[eye_unqualified]=$'\U1F441' +emoji[eye]=$'\U1F441' +emoji[tongue]=$'\U1F445' +emoji[mouth]=$'\U1F444' +emoji[lips]=$'\U1F444' +emoji[baby]=$'\U1F476' +emoji[baby_light_skin_tone]=$'\U1F476\U1F3FB' +emoji[baby_medium_light_skin_tone]=$'\U1F476\U1F3FC' +emoji[baby_medium_skin_tone]=$'\U1F476\U1F3FD' +emoji[baby_medium_dark_skin_tone]=$'\U1F476\U1F3FE' +emoji[baby_dark_skin_tone]=$'\U1F476\U1F3FF' +emoji[child]=$'\U1F9D2' +emoji[child_light_skin_tone]=$'\U1F9D2\U1F3FB' +emoji[child_medium_light_skin_tone]=$'\U1F9D2\U1F3FC' +emoji[child_medium_skin_tone]=$'\U1F9D2\U1F3FD' +emoji[child_medium_dark_skin_tone]=$'\U1F9D2\U1F3FE' +emoji[child_dark_skin_tone]=$'\U1F9D2\U1F3FF' +emoji[boy]=$'\U1F466' +emoji[boy_light_skin_tone]=$'\U1F466\U1F3FB' +emoji[boy_medium_light_skin_tone]=$'\U1F466\U1F3FC' +emoji[boy_medium_skin_tone]=$'\U1F466\U1F3FD' +emoji[boy_medium_dark_skin_tone]=$'\U1F466\U1F3FE' +emoji[boy_dark_skin_tone]=$'\U1F466\U1F3FF' +emoji[girl]=$'\U1F467' +emoji[girl_light_skin_tone]=$'\U1F467\U1F3FB' +emoji[girl_medium_light_skin_tone]=$'\U1F467\U1F3FC' +emoji[girl_medium_skin_tone]=$'\U1F467\U1F3FD' +emoji[girl_medium_dark_skin_tone]=$'\U1F467\U1F3FE' +emoji[girl_dark_skin_tone]=$'\U1F467\U1F3FF' +emoji[person]=$'\U1F9D1' +emoji[adult]=$'\U1F9D1' +emoji[person_light_skin_tone]=$'\U1F9D1\U1F3FB' +emoji[person_medium_light_skin_tone]=$'\U1F9D1\U1F3FC' +emoji[person_medium_skin_tone]=$'\U1F9D1\U1F3FD' +emoji[person_medium_dark_skin_tone]=$'\U1F9D1\U1F3FE' +emoji[person_dark_skin_tone]=$'\U1F9D1\U1F3FF' +emoji[person_blond_hair]=$'\U1F471' +emoji[blond_haired_person]=$'\U1F471' +emoji[person_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB' +emoji[person_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC' +emoji[person_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD' +emoji[person_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE' +emoji[person_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF' +emoji[man]=$'\U1F468' +emoji[man_light_skin_tone]=$'\U1F468\U1F3FB' +emoji[man_medium_light_skin_tone]=$'\U1F468\U1F3FC' +emoji[man_medium_skin_tone]=$'\U1F468\U1F3FD' +emoji[man_medium_dark_skin_tone]=$'\U1F468\U1F3FE' +emoji[man_dark_skin_tone]=$'\U1F468\U1F3FF' +emoji[man_beard]=$'\U1F9D4' +emoji[bearded_person]=$'\U1F9D4' +emoji[man_light_skin_tone_beard]=$'\U1F9D4\U1F3FB' +emoji[man_medium_light_skin_tone_beard]=$'\U1F9D4\U1F3FC' +emoji[man_medium_skin_tone_beard]=$'\U1F9D4\U1F3FD' +emoji[man_medium_dark_skin_tone_beard]=$'\U1F9D4\U1F3FE' +emoji[man_dark_skin_tone_beard]=$'\U1F9D4\U1F3FF' +emoji[man_blond_hair]=$'\U1F471\U200D\U2642\UFE0F' +emoji[man_blond_hair_minimally]=$'\U1F471\U200D\U2642' +emoji[blond_haired_man]=$'\U1F471\U200D\U2642' +emoji[man_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB\U200D\U2642\UFE0F' +emoji[man_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FB\U200D\U2642' +emoji[man_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC\U200D\U2642\UFE0F' +emoji[man_medium_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FC\U200D\U2642' +emoji[man_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD\U200D\U2642\UFE0F' +emoji[man_medium_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FD\U200D\U2642' +emoji[man_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE\U200D\U2642\UFE0F' +emoji[man_medium_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FE\U200D\U2642' +emoji[man_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF\U200D\U2642\UFE0F' +emoji[man_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FF\U200D\U2642' +emoji[man_red_hair]=$'\U1F468\U200D\U1F9B0' +emoji[red_haired_man]=$'\U1F468\U200D\U1F9B0' +emoji[man_light_skin_tone_red_hair]=$'\U1F468\U1F3FB\U200D\U1F9B0' +emoji[man_medium_light_skin_tone_red_hair]=$'\U1F468\U1F3FC\U200D\U1F9B0' +emoji[man_medium_skin_tone_red_hair]=$'\U1F468\U1F3FD\U200D\U1F9B0' +emoji[man_medium_dark_skin_tone_red_hair]=$'\U1F468\U1F3FE\U200D\U1F9B0' +emoji[man_dark_skin_tone_red_hair]=$'\U1F468\U1F3FF\U200D\U1F9B0' +emoji[man_curly_hair]=$'\U1F468\U200D\U1F9B1' +emoji[curly_haired_man]=$'\U1F468\U200D\U1F9B1' +emoji[man_light_skin_tone_curly_hair]=$'\U1F468\U1F3FB\U200D\U1F9B1' +emoji[man_medium_light_skin_tone_curly_hair]=$'\U1F468\U1F3FC\U200D\U1F9B1' +emoji[man_medium_skin_tone_curly_hair]=$'\U1F468\U1F3FD\U200D\U1F9B1' +emoji[man_medium_dark_skin_tone_curly_hair]=$'\U1F468\U1F3FE\U200D\U1F9B1' +emoji[man_dark_skin_tone_curly_hair]=$'\U1F468\U1F3FF\U200D\U1F9B1' +emoji[man_white_hair]=$'\U1F468\U200D\U1F9B3' +emoji[white_haired_man]=$'\U1F468\U200D\U1F9B3' +emoji[man_light_skin_tone_white_hair]=$'\U1F468\U1F3FB\U200D\U1F9B3' +emoji[man_medium_light_skin_tone_white_hair]=$'\U1F468\U1F3FC\U200D\U1F9B3' +emoji[man_medium_skin_tone_white_hair]=$'\U1F468\U1F3FD\U200D\U1F9B3' +emoji[man_medium_dark_skin_tone_white_hair]=$'\U1F468\U1F3FE\U200D\U1F9B3' +emoji[man_dark_skin_tone_white_hair]=$'\U1F468\U1F3FF\U200D\U1F9B3' +emoji[man_bald]=$'\U1F468\U200D\U1F9B2' +emoji[bald_man]=$'\U1F468\U200D\U1F9B2' +emoji[man_light_skin_tone_bald]=$'\U1F468\U1F3FB\U200D\U1F9B2' +emoji[man_medium_light_skin_tone_bald]=$'\U1F468\U1F3FC\U200D\U1F9B2' +emoji[man_medium_skin_tone_bald]=$'\U1F468\U1F3FD\U200D\U1F9B2' +emoji[man_medium_dark_skin_tone_bald]=$'\U1F468\U1F3FE\U200D\U1F9B2' +emoji[man_dark_skin_tone_bald]=$'\U1F468\U1F3FF\U200D\U1F9B2' +emoji[woman]=$'\U1F469' +emoji[woman_light_skin_tone]=$'\U1F469\U1F3FB' +emoji[woman_medium_light_skin_tone]=$'\U1F469\U1F3FC' +emoji[woman_medium_skin_tone]=$'\U1F469\U1F3FD' +emoji[woman_medium_dark_skin_tone]=$'\U1F469\U1F3FE' +emoji[woman_dark_skin_tone]=$'\U1F469\U1F3FF' +emoji[woman_blond_hair]=$'\U1F471\U200D\U2640\UFE0F' +emoji[woman_blond_hair_minimally]=$'\U1F471\U200D\U2640' +emoji[blond_haired_woman]=$'\U1F471\U200D\U2640' +emoji[blonde_woman]=$'\U1F471\U200D\U2640' +emoji[woman_light_skin_tone_blond_hair]=$'\U1F471\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FB\U200D\U2640' +emoji[woman_medium_light_skin_tone_blond_hair]=$'\U1F471\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_medium_light_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FC\U200D\U2640' +emoji[woman_medium_skin_tone_blond_hair]=$'\U1F471\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_medium_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FD\U200D\U2640' +emoji[woman_medium_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_medium_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FE\U200D\U2640' +emoji[woman_dark_skin_tone_blond_hair]=$'\U1F471\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_dark_skin_tone_blond_hair_minimally]=$'\U1F471\U1F3FF\U200D\U2640' +emoji[woman_red_hair]=$'\U1F469\U200D\U1F9B0' +emoji[red_haired_woman]=$'\U1F469\U200D\U1F9B0' +emoji[woman_light_skin_tone_red_hair]=$'\U1F469\U1F3FB\U200D\U1F9B0' +emoji[woman_medium_light_skin_tone_red_hair]=$'\U1F469\U1F3FC\U200D\U1F9B0' +emoji[woman_medium_skin_tone_red_hair]=$'\U1F469\U1F3FD\U200D\U1F9B0' +emoji[woman_medium_dark_skin_tone_red_hair]=$'\U1F469\U1F3FE\U200D\U1F9B0' +emoji[woman_dark_skin_tone_red_hair]=$'\U1F469\U1F3FF\U200D\U1F9B0' +emoji[woman_curly_hair]=$'\U1F469\U200D\U1F9B1' +emoji[curly_haired_woman]=$'\U1F469\U200D\U1F9B1' +emoji[woman_light_skin_tone_curly_hair]=$'\U1F469\U1F3FB\U200D\U1F9B1' +emoji[woman_medium_light_skin_tone_curly_hair]=$'\U1F469\U1F3FC\U200D\U1F9B1' +emoji[woman_medium_skin_tone_curly_hair]=$'\U1F469\U1F3FD\U200D\U1F9B1' +emoji[woman_medium_dark_skin_tone_curly_hair]=$'\U1F469\U1F3FE\U200D\U1F9B1' +emoji[woman_dark_skin_tone_curly_hair]=$'\U1F469\U1F3FF\U200D\U1F9B1' +emoji[woman_white_hair]=$'\U1F469\U200D\U1F9B3' +emoji[white_haired_woman]=$'\U1F469\U200D\U1F9B3' +emoji[woman_light_skin_tone_white_hair]=$'\U1F469\U1F3FB\U200D\U1F9B3' +emoji[woman_medium_light_skin_tone_white_hair]=$'\U1F469\U1F3FC\U200D\U1F9B3' +emoji[woman_medium_skin_tone_white_hair]=$'\U1F469\U1F3FD\U200D\U1F9B3' +emoji[woman_medium_dark_skin_tone_white_hair]=$'\U1F469\U1F3FE\U200D\U1F9B3' +emoji[woman_dark_skin_tone_white_hair]=$'\U1F469\U1F3FF\U200D\U1F9B3' +emoji[woman_bald]=$'\U1F469\U200D\U1F9B2' +emoji[bald_woman]=$'\U1F469\U200D\U1F9B2' +emoji[woman_light_skin_tone_bald]=$'\U1F469\U1F3FB\U200D\U1F9B2' +emoji[woman_medium_light_skin_tone_bald]=$'\U1F469\U1F3FC\U200D\U1F9B2' +emoji[woman_medium_skin_tone_bald]=$'\U1F469\U1F3FD\U200D\U1F9B2' +emoji[woman_medium_dark_skin_tone_bald]=$'\U1F469\U1F3FE\U200D\U1F9B2' +emoji[woman_dark_skin_tone_bald]=$'\U1F469\U1F3FF\U200D\U1F9B2' +emoji[older_person]=$'\U1F9D3' +emoji[older_adult]=$'\U1F9D3' +emoji[older_person_light_skin_tone]=$'\U1F9D3\U1F3FB' +emoji[older_person_medium_light_skin_tone]=$'\U1F9D3\U1F3FC' +emoji[older_person_medium_skin_tone]=$'\U1F9D3\U1F3FD' +emoji[older_person_medium_dark_skin_tone]=$'\U1F9D3\U1F3FE' +emoji[older_person_dark_skin_tone]=$'\U1F9D3\U1F3FF' +emoji[old_man]=$'\U1F474' +emoji[older_man]=$'\U1F474' +emoji[old_man_light_skin_tone]=$'\U1F474\U1F3FB' +emoji[old_man_medium_light_skin_tone]=$'\U1F474\U1F3FC' +emoji[old_man_medium_skin_tone]=$'\U1F474\U1F3FD' +emoji[old_man_medium_dark_skin_tone]=$'\U1F474\U1F3FE' +emoji[old_man_dark_skin_tone]=$'\U1F474\U1F3FF' +emoji[old_woman]=$'\U1F475' +emoji[older_woman]=$'\U1F475' +emoji[old_woman_light_skin_tone]=$'\U1F475\U1F3FB' +emoji[old_woman_medium_light_skin_tone]=$'\U1F475\U1F3FC' +emoji[old_woman_medium_skin_tone]=$'\U1F475\U1F3FD' +emoji[old_woman_medium_dark_skin_tone]=$'\U1F475\U1F3FE' +emoji[old_woman_dark_skin_tone]=$'\U1F475\U1F3FF' +emoji[person_frowning]=$'\U1F64D' +emoji[frowning_person]=$'\U1F64D' +emoji[person_frowning_light_skin_tone]=$'\U1F64D\U1F3FB' +emoji[person_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC' +emoji[person_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD' +emoji[person_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE' +emoji[person_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF' +emoji[man_frowning]=$'\U1F64D\U200D\U2642\UFE0F' +emoji[man_frowning_minimally]=$'\U1F64D\U200D\U2642' +emoji[frowning_man]=$'\U1F64D\U200D\U2642' +emoji[man_frowning_light_skin_tone]=$'\U1F64D\U1F3FB\U200D\U2642\UFE0F' +emoji[man_frowning_light_skin_tone_minimally]=$'\U1F64D\U1F3FB\U200D\U2642' +emoji[man_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC\U200D\U2642\UFE0F' +emoji[man_frowning_medium_light_skin_tone_minimally]=$'\U1F64D\U1F3FC\U200D\U2642' +emoji[man_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD\U200D\U2642\UFE0F' +emoji[man_frowning_medium_skin_tone_minimally]=$'\U1F64D\U1F3FD\U200D\U2642' +emoji[man_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE\U200D\U2642\UFE0F' +emoji[man_frowning_medium_dark_skin_tone_minimally]=$'\U1F64D\U1F3FE\U200D\U2642' +emoji[man_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF\U200D\U2642\UFE0F' +emoji[man_frowning_dark_skin_tone_minimally]=$'\U1F64D\U1F3FF\U200D\U2642' +emoji[woman_frowning]=$'\U1F64D\U200D\U2640\UFE0F' +emoji[woman_frowning_minimally]=$'\U1F64D\U200D\U2640' +emoji[frowning_woman]=$'\U1F64D\U200D\U2640' +emoji[woman_frowning_light_skin_tone]=$'\U1F64D\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_frowning_light_skin_tone_minimally]=$'\U1F64D\U1F3FB\U200D\U2640' +emoji[woman_frowning_medium_light_skin_tone]=$'\U1F64D\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_light_skin_tone_minimally]=$'\U1F64D\U1F3FC\U200D\U2640' +emoji[woman_frowning_medium_skin_tone]=$'\U1F64D\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_skin_tone_minimally]=$'\U1F64D\U1F3FD\U200D\U2640' +emoji[woman_frowning_medium_dark_skin_tone]=$'\U1F64D\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_frowning_medium_dark_skin_tone_minimally]=$'\U1F64D\U1F3FE\U200D\U2640' +emoji[woman_frowning_dark_skin_tone]=$'\U1F64D\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_frowning_dark_skin_tone_minimally]=$'\U1F64D\U1F3FF\U200D\U2640' +emoji[person_pouting]=$'\U1F64E' +emoji[person_pouting_light_skin_tone]=$'\U1F64E\U1F3FB' +emoji[person_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC' +emoji[person_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD' +emoji[person_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE' +emoji[person_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF' +emoji[man_pouting]=$'\U1F64E\U200D\U2642\UFE0F' +emoji[man_pouting_minimally]=$'\U1F64E\U200D\U2642' +emoji[pouting_man]=$'\U1F64E\U200D\U2642' +emoji[man_pouting_light_skin_tone]=$'\U1F64E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_pouting_light_skin_tone_minimally]=$'\U1F64E\U1F3FB\U200D\U2642' +emoji[man_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_pouting_medium_light_skin_tone_minimally]=$'\U1F64E\U1F3FC\U200D\U2642' +emoji[man_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_pouting_medium_skin_tone_minimally]=$'\U1F64E\U1F3FD\U200D\U2642' +emoji[man_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_pouting_medium_dark_skin_tone_minimally]=$'\U1F64E\U1F3FE\U200D\U2642' +emoji[man_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_pouting_dark_skin_tone_minimally]=$'\U1F64E\U1F3FF\U200D\U2642' +emoji[woman_pouting]=$'\U1F64E\U200D\U2640\UFE0F' +emoji[woman_pouting_minimally]=$'\U1F64E\U200D\U2640' +emoji[pouting_woman]=$'\U1F64E\U200D\U2640' +emoji[woman_pouting_light_skin_tone]=$'\U1F64E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_pouting_light_skin_tone_minimally]=$'\U1F64E\U1F3FB\U200D\U2640' +emoji[woman_pouting_medium_light_skin_tone]=$'\U1F64E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_light_skin_tone_minimally]=$'\U1F64E\U1F3FC\U200D\U2640' +emoji[woman_pouting_medium_skin_tone]=$'\U1F64E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_skin_tone_minimally]=$'\U1F64E\U1F3FD\U200D\U2640' +emoji[woman_pouting_medium_dark_skin_tone]=$'\U1F64E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_pouting_medium_dark_skin_tone_minimally]=$'\U1F64E\U1F3FE\U200D\U2640' +emoji[woman_pouting_dark_skin_tone]=$'\U1F64E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_pouting_dark_skin_tone_minimally]=$'\U1F64E\U1F3FF\U200D\U2640' +emoji[person_gesturing_NO]=$'\U1F645' +emoji[no_good]=$'\U1F645' +emoji[person_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB' +emoji[person_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC' +emoji[person_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD' +emoji[person_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE' +emoji[person_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF' +emoji[man_gesturing_NO]=$'\U1F645\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_minimally]=$'\U1F645\U200D\U2642' +emoji[no_good_man]=$'\U1F645\U200D\U2642' +emoji[ng_man]=$'\U1F645\U200D\U2642' +emoji[man_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_light_skin_tone_minimally]=$'\U1F645\U1F3FB\U200D\U2642' +emoji[man_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_light_skin_tone_minimally]=$'\U1F645\U1F3FC\U200D\U2642' +emoji[man_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_skin_tone_minimally]=$'\U1F645\U1F3FD\U200D\U2642' +emoji[man_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_medium_dark_skin_tone_minimally]=$'\U1F645\U1F3FE\U200D\U2642' +emoji[man_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF\U200D\U2642\UFE0F' +emoji[man_gesturing_NO_dark_skin_tone_minimally]=$'\U1F645\U1F3FF\U200D\U2642' +emoji[woman_gesturing_NO]=$'\U1F645\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_minimally]=$'\U1F645\U200D\U2640' +emoji[no_good_woman]=$'\U1F645\U200D\U2640' +emoji[ng_woman]=$'\U1F645\U200D\U2640' +emoji[woman_gesturing_NO_light_skin_tone]=$'\U1F645\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_light_skin_tone_minimally]=$'\U1F645\U1F3FB\U200D\U2640' +emoji[woman_gesturing_NO_medium_light_skin_tone]=$'\U1F645\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_light_skin_tone_minimally]=$'\U1F645\U1F3FC\U200D\U2640' +emoji[woman_gesturing_NO_medium_skin_tone]=$'\U1F645\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_skin_tone_minimally]=$'\U1F645\U1F3FD\U200D\U2640' +emoji[woman_gesturing_NO_medium_dark_skin_tone]=$'\U1F645\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_medium_dark_skin_tone_minimally]=$'\U1F645\U1F3FE\U200D\U2640' +emoji[woman_gesturing_NO_dark_skin_tone]=$'\U1F645\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_gesturing_NO_dark_skin_tone_minimally]=$'\U1F645\U1F3FF\U200D\U2640' +emoji[person_gesturing_OK]=$'\U1F646' +emoji[ok_person]=$'\U1F646' +emoji[person_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB' +emoji[person_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC' +emoji[person_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD' +emoji[person_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE' +emoji[person_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF' +emoji[man_gesturing_OK]=$'\U1F646\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_minimally]=$'\U1F646\U200D\U2642' +emoji[ok_man]=$'\U1F646\U200D\U2642' +emoji[man_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_light_skin_tone_minimally]=$'\U1F646\U1F3FB\U200D\U2642' +emoji[man_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_light_skin_tone_minimally]=$'\U1F646\U1F3FC\U200D\U2642' +emoji[man_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_skin_tone_minimally]=$'\U1F646\U1F3FD\U200D\U2642' +emoji[man_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_medium_dark_skin_tone_minimally]=$'\U1F646\U1F3FE\U200D\U2642' +emoji[man_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF\U200D\U2642\UFE0F' +emoji[man_gesturing_OK_dark_skin_tone_minimally]=$'\U1F646\U1F3FF\U200D\U2642' +emoji[woman_gesturing_OK]=$'\U1F646\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_minimally]=$'\U1F646\U200D\U2640' +emoji[ok_woman]=$'\U1F646\U200D\U2640' +emoji[woman_gesturing_OK_light_skin_tone]=$'\U1F646\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_light_skin_tone_minimally]=$'\U1F646\U1F3FB\U200D\U2640' +emoji[woman_gesturing_OK_medium_light_skin_tone]=$'\U1F646\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_light_skin_tone_minimally]=$'\U1F646\U1F3FC\U200D\U2640' +emoji[woman_gesturing_OK_medium_skin_tone]=$'\U1F646\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_skin_tone_minimally]=$'\U1F646\U1F3FD\U200D\U2640' +emoji[woman_gesturing_OK_medium_dark_skin_tone]=$'\U1F646\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_medium_dark_skin_tone_minimally]=$'\U1F646\U1F3FE\U200D\U2640' +emoji[woman_gesturing_OK_dark_skin_tone]=$'\U1F646\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_gesturing_OK_dark_skin_tone_minimally]=$'\U1F646\U1F3FF\U200D\U2640' +emoji[person_tipping_hand]=$'\U1F481' +emoji[tipping_hand_person]=$'\U1F481' +emoji[information_desk_person]=$'\U1F481' +emoji[person_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB' +emoji[person_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC' +emoji[person_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD' +emoji[person_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE' +emoji[person_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF' +emoji[man_tipping_hand]=$'\U1F481\U200D\U2642\UFE0F' +emoji[man_tipping_hand_minimally]=$'\U1F481\U200D\U2642' +emoji[tipping_hand_man]=$'\U1F481\U200D\U2642' +emoji[sassy_man]=$'\U1F481\U200D\U2642' +emoji[man_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB\U200D\U2642\UFE0F' +emoji[man_tipping_hand_light_skin_tone_minimally]=$'\U1F481\U1F3FB\U200D\U2642' +emoji[man_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_light_skin_tone_minimally]=$'\U1F481\U1F3FC\U200D\U2642' +emoji[man_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_skin_tone_minimally]=$'\U1F481\U1F3FD\U200D\U2642' +emoji[man_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE\U200D\U2642\UFE0F' +emoji[man_tipping_hand_medium_dark_skin_tone_minimally]=$'\U1F481\U1F3FE\U200D\U2642' +emoji[man_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF\U200D\U2642\UFE0F' +emoji[man_tipping_hand_dark_skin_tone_minimally]=$'\U1F481\U1F3FF\U200D\U2642' +emoji[woman_tipping_hand]=$'\U1F481\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_minimally]=$'\U1F481\U200D\U2640' +emoji[tipping_hand_woman]=$'\U1F481\U200D\U2640' +emoji[sassy_woman]=$'\U1F481\U200D\U2640' +emoji[woman_tipping_hand_light_skin_tone]=$'\U1F481\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_light_skin_tone_minimally]=$'\U1F481\U1F3FB\U200D\U2640' +emoji[woman_tipping_hand_medium_light_skin_tone]=$'\U1F481\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_light_skin_tone_minimally]=$'\U1F481\U1F3FC\U200D\U2640' +emoji[woman_tipping_hand_medium_skin_tone]=$'\U1F481\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_skin_tone_minimally]=$'\U1F481\U1F3FD\U200D\U2640' +emoji[woman_tipping_hand_medium_dark_skin_tone]=$'\U1F481\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_medium_dark_skin_tone_minimally]=$'\U1F481\U1F3FE\U200D\U2640' +emoji[woman_tipping_hand_dark_skin_tone]=$'\U1F481\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_tipping_hand_dark_skin_tone_minimally]=$'\U1F481\U1F3FF\U200D\U2640' +emoji[person_raising_hand]=$'\U1F64B' +emoji[raising_hand]=$'\U1F64B' +emoji[person_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB' +emoji[person_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC' +emoji[person_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD' +emoji[person_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE' +emoji[person_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF' +emoji[man_raising_hand]=$'\U1F64B\U200D\U2642\UFE0F' +emoji[man_raising_hand_minimally]=$'\U1F64B\U200D\U2642' +emoji[raising_hand_man]=$'\U1F64B\U200D\U2642' +emoji[man_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB\U200D\U2642\UFE0F' +emoji[man_raising_hand_light_skin_tone_minimally]=$'\U1F64B\U1F3FB\U200D\U2642' +emoji[man_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_light_skin_tone_minimally]=$'\U1F64B\U1F3FC\U200D\U2642' +emoji[man_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_skin_tone_minimally]=$'\U1F64B\U1F3FD\U200D\U2642' +emoji[man_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE\U200D\U2642\UFE0F' +emoji[man_raising_hand_medium_dark_skin_tone_minimally]=$'\U1F64B\U1F3FE\U200D\U2642' +emoji[man_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF\U200D\U2642\UFE0F' +emoji[man_raising_hand_dark_skin_tone_minimally]=$'\U1F64B\U1F3FF\U200D\U2642' +emoji[woman_raising_hand]=$'\U1F64B\U200D\U2640\UFE0F' +emoji[woman_raising_hand_minimally]=$'\U1F64B\U200D\U2640' +emoji[raising_hand_woman]=$'\U1F64B\U200D\U2640' +emoji[woman_raising_hand_light_skin_tone]=$'\U1F64B\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_raising_hand_light_skin_tone_minimally]=$'\U1F64B\U1F3FB\U200D\U2640' +emoji[woman_raising_hand_medium_light_skin_tone]=$'\U1F64B\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_light_skin_tone_minimally]=$'\U1F64B\U1F3FC\U200D\U2640' +emoji[woman_raising_hand_medium_skin_tone]=$'\U1F64B\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_skin_tone_minimally]=$'\U1F64B\U1F3FD\U200D\U2640' +emoji[woman_raising_hand_medium_dark_skin_tone]=$'\U1F64B\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_raising_hand_medium_dark_skin_tone_minimally]=$'\U1F64B\U1F3FE\U200D\U2640' +emoji[woman_raising_hand_dark_skin_tone]=$'\U1F64B\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_raising_hand_dark_skin_tone_minimally]=$'\U1F64B\U1F3FF\U200D\U2640' +emoji[deaf_person]=$'\U1F9CF' +emoji[deaf_person_light_skin_tone]=$'\U1F9CF\U1F3FB' +emoji[deaf_person_medium_light_skin_tone]=$'\U1F9CF\U1F3FC' +emoji[deaf_person_medium_skin_tone]=$'\U1F9CF\U1F3FD' +emoji[deaf_person_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE' +emoji[deaf_person_dark_skin_tone]=$'\U1F9CF\U1F3FF' +emoji[deaf_man]=$'\U1F9CF\U200D\U2642\UFE0F' +emoji[deaf_man_minimally]=$'\U1F9CF\U200D\U2642' +emoji[deaf_man_light_skin_tone]=$'\U1F9CF\U1F3FB\U200D\U2642\UFE0F' +emoji[deaf_man_light_skin_tone_minimally]=$'\U1F9CF\U1F3FB\U200D\U2642' +emoji[deaf_man_medium_light_skin_tone]=$'\U1F9CF\U1F3FC\U200D\U2642\UFE0F' +emoji[deaf_man_medium_light_skin_tone_minimally]=$'\U1F9CF\U1F3FC\U200D\U2642' +emoji[deaf_man_medium_skin_tone]=$'\U1F9CF\U1F3FD\U200D\U2642\UFE0F' +emoji[deaf_man_medium_skin_tone_minimally]=$'\U1F9CF\U1F3FD\U200D\U2642' +emoji[deaf_man_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE\U200D\U2642\UFE0F' +emoji[deaf_man_medium_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FE\U200D\U2642' +emoji[deaf_man_dark_skin_tone]=$'\U1F9CF\U1F3FF\U200D\U2642\UFE0F' +emoji[deaf_man_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FF\U200D\U2642' +emoji[deaf_woman]=$'\U1F9CF\U200D\U2640\UFE0F' +emoji[deaf_woman_minimally]=$'\U1F9CF\U200D\U2640' +emoji[deaf_woman_light_skin_tone]=$'\U1F9CF\U1F3FB\U200D\U2640\UFE0F' +emoji[deaf_woman_light_skin_tone_minimally]=$'\U1F9CF\U1F3FB\U200D\U2640' +emoji[deaf_woman_medium_light_skin_tone]=$'\U1F9CF\U1F3FC\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_light_skin_tone_minimally]=$'\U1F9CF\U1F3FC\U200D\U2640' +emoji[deaf_woman_medium_skin_tone]=$'\U1F9CF\U1F3FD\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_skin_tone_minimally]=$'\U1F9CF\U1F3FD\U200D\U2640' +emoji[deaf_woman_medium_dark_skin_tone]=$'\U1F9CF\U1F3FE\U200D\U2640\UFE0F' +emoji[deaf_woman_medium_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FE\U200D\U2640' +emoji[deaf_woman_dark_skin_tone]=$'\U1F9CF\U1F3FF\U200D\U2640\UFE0F' +emoji[deaf_woman_dark_skin_tone_minimally]=$'\U1F9CF\U1F3FF\U200D\U2640' +emoji[person_bowing]=$'\U1F647' +emoji[bow]=$'\U1F647' +emoji[person_bowing_light_skin_tone]=$'\U1F647\U1F3FB' +emoji[person_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC' +emoji[person_bowing_medium_skin_tone]=$'\U1F647\U1F3FD' +emoji[person_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE' +emoji[person_bowing_dark_skin_tone]=$'\U1F647\U1F3FF' +emoji[man_bowing]=$'\U1F647\U200D\U2642\UFE0F' +emoji[man_bowing_minimally]=$'\U1F647\U200D\U2642' +emoji[bowing_man]=$'\U1F647\U200D\U2642' +emoji[man_bowing_light_skin_tone]=$'\U1F647\U1F3FB\U200D\U2642\UFE0F' +emoji[man_bowing_light_skin_tone_minimally]=$'\U1F647\U1F3FB\U200D\U2642' +emoji[man_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC\U200D\U2642\UFE0F' +emoji[man_bowing_medium_light_skin_tone_minimally]=$'\U1F647\U1F3FC\U200D\U2642' +emoji[man_bowing_medium_skin_tone]=$'\U1F647\U1F3FD\U200D\U2642\UFE0F' +emoji[man_bowing_medium_skin_tone_minimally]=$'\U1F647\U1F3FD\U200D\U2642' +emoji[man_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE\U200D\U2642\UFE0F' +emoji[man_bowing_medium_dark_skin_tone_minimally]=$'\U1F647\U1F3FE\U200D\U2642' +emoji[man_bowing_dark_skin_tone]=$'\U1F647\U1F3FF\U200D\U2642\UFE0F' +emoji[man_bowing_dark_skin_tone_minimally]=$'\U1F647\U1F3FF\U200D\U2642' +emoji[woman_bowing]=$'\U1F647\U200D\U2640\UFE0F' +emoji[woman_bowing_minimally]=$'\U1F647\U200D\U2640' +emoji[bowing_woman]=$'\U1F647\U200D\U2640' +emoji[woman_bowing_light_skin_tone]=$'\U1F647\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_bowing_light_skin_tone_minimally]=$'\U1F647\U1F3FB\U200D\U2640' +emoji[woman_bowing_medium_light_skin_tone]=$'\U1F647\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_light_skin_tone_minimally]=$'\U1F647\U1F3FC\U200D\U2640' +emoji[woman_bowing_medium_skin_tone]=$'\U1F647\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_skin_tone_minimally]=$'\U1F647\U1F3FD\U200D\U2640' +emoji[woman_bowing_medium_dark_skin_tone]=$'\U1F647\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_bowing_medium_dark_skin_tone_minimally]=$'\U1F647\U1F3FE\U200D\U2640' +emoji[woman_bowing_dark_skin_tone]=$'\U1F647\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_bowing_dark_skin_tone_minimally]=$'\U1F647\U1F3FF\U200D\U2640' +emoji[person_facepalming]=$'\U1F926' +emoji[facepalm]=$'\U1F926' +emoji[person_facepalming_light_skin_tone]=$'\U1F926\U1F3FB' +emoji[person_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC' +emoji[person_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD' +emoji[person_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE' +emoji[person_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF' +emoji[man_facepalming]=$'\U1F926\U200D\U2642\UFE0F' +emoji[man_facepalming_minimally]=$'\U1F926\U200D\U2642' +emoji[man_facepalming_light_skin_tone]=$'\U1F926\U1F3FB\U200D\U2642\UFE0F' +emoji[man_facepalming_light_skin_tone_minimally]=$'\U1F926\U1F3FB\U200D\U2642' +emoji[man_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_light_skin_tone_minimally]=$'\U1F926\U1F3FC\U200D\U2642' +emoji[man_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_skin_tone_minimally]=$'\U1F926\U1F3FD\U200D\U2642' +emoji[man_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE\U200D\U2642\UFE0F' +emoji[man_facepalming_medium_dark_skin_tone_minimally]=$'\U1F926\U1F3FE\U200D\U2642' +emoji[man_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF\U200D\U2642\UFE0F' +emoji[man_facepalming_dark_skin_tone_minimally]=$'\U1F926\U1F3FF\U200D\U2642' +emoji[woman_facepalming]=$'\U1F926\U200D\U2640\UFE0F' +emoji[woman_facepalming_minimally]=$'\U1F926\U200D\U2640' +emoji[woman_facepalming_light_skin_tone]=$'\U1F926\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_facepalming_light_skin_tone_minimally]=$'\U1F926\U1F3FB\U200D\U2640' +emoji[woman_facepalming_medium_light_skin_tone]=$'\U1F926\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_light_skin_tone_minimally]=$'\U1F926\U1F3FC\U200D\U2640' +emoji[woman_facepalming_medium_skin_tone]=$'\U1F926\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_skin_tone_minimally]=$'\U1F926\U1F3FD\U200D\U2640' +emoji[woman_facepalming_medium_dark_skin_tone]=$'\U1F926\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_facepalming_medium_dark_skin_tone_minimally]=$'\U1F926\U1F3FE\U200D\U2640' +emoji[woman_facepalming_dark_skin_tone]=$'\U1F926\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_facepalming_dark_skin_tone_minimally]=$'\U1F926\U1F3FF\U200D\U2640' +emoji[person_shrugging]=$'\U1F937' +emoji[shrug]=$'\U1F937' +emoji[person_shrugging_light_skin_tone]=$'\U1F937\U1F3FB' +emoji[person_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC' +emoji[person_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD' +emoji[person_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE' +emoji[person_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF' +emoji[man_shrugging]=$'\U1F937\U200D\U2642\UFE0F' +emoji[man_shrugging_minimally]=$'\U1F937\U200D\U2642' +emoji[man_shrugging_light_skin_tone]=$'\U1F937\U1F3FB\U200D\U2642\UFE0F' +emoji[man_shrugging_light_skin_tone_minimally]=$'\U1F937\U1F3FB\U200D\U2642' +emoji[man_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_light_skin_tone_minimally]=$'\U1F937\U1F3FC\U200D\U2642' +emoji[man_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_skin_tone_minimally]=$'\U1F937\U1F3FD\U200D\U2642' +emoji[man_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE\U200D\U2642\UFE0F' +emoji[man_shrugging_medium_dark_skin_tone_minimally]=$'\U1F937\U1F3FE\U200D\U2642' +emoji[man_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF\U200D\U2642\UFE0F' +emoji[man_shrugging_dark_skin_tone_minimally]=$'\U1F937\U1F3FF\U200D\U2642' +emoji[woman_shrugging]=$'\U1F937\U200D\U2640\UFE0F' +emoji[woman_shrugging_minimally]=$'\U1F937\U200D\U2640' +emoji[woman_shrugging_light_skin_tone]=$'\U1F937\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_shrugging_light_skin_tone_minimally]=$'\U1F937\U1F3FB\U200D\U2640' +emoji[woman_shrugging_medium_light_skin_tone]=$'\U1F937\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_light_skin_tone_minimally]=$'\U1F937\U1F3FC\U200D\U2640' +emoji[woman_shrugging_medium_skin_tone]=$'\U1F937\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_skin_tone_minimally]=$'\U1F937\U1F3FD\U200D\U2640' +emoji[woman_shrugging_medium_dark_skin_tone]=$'\U1F937\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_shrugging_medium_dark_skin_tone_minimally]=$'\U1F937\U1F3FE\U200D\U2640' +emoji[woman_shrugging_dark_skin_tone]=$'\U1F937\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_shrugging_dark_skin_tone_minimally]=$'\U1F937\U1F3FF\U200D\U2640' +emoji[man_health_worker]=$'\U1F468\U200D\U2695\UFE0F' +emoji[man_health_worker_minimally]=$'\U1F468\U200D\U2695' +emoji[man_health_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2695\UFE0F' +emoji[man_health_worker_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2695' +emoji[man_health_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2695' +emoji[man_health_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2695' +emoji[man_health_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2695\UFE0F' +emoji[man_health_worker_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2695' +emoji[man_health_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2695\UFE0F' +emoji[man_health_worker_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2695' +emoji[woman_health_worker]=$'\U1F469\U200D\U2695\UFE0F' +emoji[woman_health_worker_minimally]=$'\U1F469\U200D\U2695' +emoji[woman_health_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2695\UFE0F' +emoji[woman_health_worker_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2695' +emoji[woman_health_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2695' +emoji[woman_health_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2695' +emoji[woman_health_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2695\UFE0F' +emoji[woman_health_worker_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2695' +emoji[woman_health_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2695\UFE0F' +emoji[woman_health_worker_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2695' +emoji[man_student]=$'\U1F468\U200D\U1F393' +emoji[man_student_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F393' +emoji[man_student_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F393' +emoji[man_student_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F393' +emoji[man_student_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F393' +emoji[man_student_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F393' +emoji[woman_student]=$'\U1F469\U200D\U1F393' +emoji[woman_student_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F393' +emoji[woman_student_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F393' +emoji[woman_student_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F393' +emoji[woman_student_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F393' +emoji[woman_student_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F393' +emoji[man_teacher]=$'\U1F468\U200D\U1F3EB' +emoji[man_teacher_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3EB' +emoji[man_teacher_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3EB' +emoji[man_teacher_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3EB' +emoji[man_teacher_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3EB' +emoji[man_teacher_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3EB' +emoji[woman_teacher]=$'\U1F469\U200D\U1F3EB' +emoji[woman_teacher_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3EB' +emoji[woman_teacher_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3EB' +emoji[woman_teacher_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3EB' +emoji[woman_teacher_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3EB' +emoji[woman_teacher_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3EB' +emoji[man_judge]=$'\U1F468\U200D\U2696\UFE0F' +emoji[man_judge_minimally]=$'\U1F468\U200D\U2696' +emoji[man_judge_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2696\UFE0F' +emoji[man_judge_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2696' +emoji[man_judge_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2696\UFE0F' +emoji[man_judge_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2696' +emoji[man_judge_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2696\UFE0F' +emoji[man_judge_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2696' +emoji[man_judge_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2696\UFE0F' +emoji[man_judge_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2696' +emoji[man_judge_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2696\UFE0F' +emoji[man_judge_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2696' +emoji[woman_judge]=$'\U1F469\U200D\U2696\UFE0F' +emoji[woman_judge_minimally]=$'\U1F469\U200D\U2696' +emoji[woman_judge_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2696\UFE0F' +emoji[woman_judge_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2696' +emoji[woman_judge_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2696\UFE0F' +emoji[woman_judge_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2696' +emoji[woman_judge_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2696\UFE0F' +emoji[woman_judge_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2696' +emoji[woman_judge_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2696\UFE0F' +emoji[woman_judge_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2696' +emoji[woman_judge_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2696\UFE0F' +emoji[woman_judge_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2696' +emoji[man_farmer]=$'\U1F468\U200D\U1F33E' +emoji[man_farmer_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F33E' +emoji[man_farmer_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F33E' +emoji[man_farmer_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F33E' +emoji[man_farmer_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F33E' +emoji[man_farmer_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F33E' +emoji[woman_farmer]=$'\U1F469\U200D\U1F33E' +emoji[woman_farmer_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F33E' +emoji[woman_farmer_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F33E' +emoji[woman_farmer_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F33E' +emoji[woman_farmer_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F33E' +emoji[woman_farmer_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F33E' +emoji[man_cook]=$'\U1F468\U200D\U1F373' +emoji[man_cook_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F373' +emoji[man_cook_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F373' +emoji[man_cook_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F373' +emoji[man_cook_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F373' +emoji[man_cook_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F373' +emoji[woman_cook]=$'\U1F469\U200D\U1F373' +emoji[woman_cook_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F373' +emoji[woman_cook_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F373' +emoji[woman_cook_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F373' +emoji[woman_cook_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F373' +emoji[woman_cook_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F373' +emoji[man_mechanic]=$'\U1F468\U200D\U1F527' +emoji[man_mechanic_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F527' +emoji[man_mechanic_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F527' +emoji[man_mechanic_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F527' +emoji[man_mechanic_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F527' +emoji[man_mechanic_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F527' +emoji[woman_mechanic]=$'\U1F469\U200D\U1F527' +emoji[woman_mechanic_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F527' +emoji[woman_mechanic_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F527' +emoji[woman_mechanic_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F527' +emoji[woman_mechanic_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F527' +emoji[woman_mechanic_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F527' +emoji[man_factory_worker]=$'\U1F468\U200D\U1F3ED' +emoji[man_factory_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3ED' +emoji[man_factory_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3ED' +emoji[man_factory_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3ED' +emoji[man_factory_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3ED' +emoji[man_factory_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3ED' +emoji[woman_factory_worker]=$'\U1F469\U200D\U1F3ED' +emoji[woman_factory_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3ED' +emoji[woman_factory_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3ED' +emoji[woman_factory_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3ED' +emoji[woman_factory_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3ED' +emoji[woman_factory_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3ED' +emoji[man_office_worker]=$'\U1F468\U200D\U1F4BC' +emoji[man_office_worker_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F4BC' +emoji[man_office_worker_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F4BC' +emoji[man_office_worker_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F4BC' +emoji[man_office_worker_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F4BC' +emoji[man_office_worker_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F4BC' +emoji[woman_office_worker]=$'\U1F469\U200D\U1F4BC' +emoji[woman_office_worker_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F4BC' +emoji[woman_office_worker_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F4BC' +emoji[woman_office_worker_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F4BC' +emoji[woman_office_worker_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F4BC' +emoji[woman_office_worker_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F4BC' +emoji[man_scientist]=$'\U1F468\U200D\U1F52C' +emoji[man_scientist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F52C' +emoji[man_scientist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F52C' +emoji[man_scientist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F52C' +emoji[man_scientist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F52C' +emoji[man_scientist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F52C' +emoji[woman_scientist]=$'\U1F469\U200D\U1F52C' +emoji[woman_scientist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F52C' +emoji[woman_scientist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F52C' +emoji[woman_scientist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F52C' +emoji[woman_scientist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F52C' +emoji[woman_scientist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F52C' +emoji[man_technologist]=$'\U1F468\U200D\U1F4BB' +emoji[man_technologist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F4BB' +emoji[man_technologist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F4BB' +emoji[man_technologist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F4BB' +emoji[man_technologist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F4BB' +emoji[man_technologist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F4BB' +emoji[woman_technologist]=$'\U1F469\U200D\U1F4BB' +emoji[woman_technologist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F4BB' +emoji[woman_technologist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F4BB' +emoji[woman_technologist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F4BB' +emoji[woman_technologist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F4BB' +emoji[woman_technologist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F4BB' +emoji[man_singer]=$'\U1F468\U200D\U1F3A4' +emoji[man_singer_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3A4' +emoji[man_singer_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3A4' +emoji[man_singer_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3A4' +emoji[man_singer_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3A4' +emoji[man_singer_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3A4' +emoji[woman_singer]=$'\U1F469\U200D\U1F3A4' +emoji[woman_singer_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3A4' +emoji[woman_singer_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3A4' +emoji[woman_singer_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3A4' +emoji[woman_singer_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3A4' +emoji[woman_singer_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3A4' +emoji[man_artist]=$'\U1F468\U200D\U1F3A8' +emoji[man_artist_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F3A8' +emoji[man_artist_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F3A8' +emoji[man_artist_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F3A8' +emoji[man_artist_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F3A8' +emoji[man_artist_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F3A8' +emoji[woman_artist]=$'\U1F469\U200D\U1F3A8' +emoji[woman_artist_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F3A8' +emoji[woman_artist_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F3A8' +emoji[woman_artist_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F3A8' +emoji[woman_artist_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F3A8' +emoji[woman_artist_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F3A8' +emoji[man_pilot]=$'\U1F468\U200D\U2708\UFE0F' +emoji[man_pilot_minimally]=$'\U1F468\U200D\U2708' +emoji[man_pilot_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U2708\UFE0F' +emoji[man_pilot_light_skin_tone_minimally]=$'\U1F468\U1F3FB\U200D\U2708' +emoji[man_pilot_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U2708\UFE0F' +emoji[man_pilot_medium_light_skin_tone_minimally]=$'\U1F468\U1F3FC\U200D\U2708' +emoji[man_pilot_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U2708\UFE0F' +emoji[man_pilot_medium_skin_tone_minimally]=$'\U1F468\U1F3FD\U200D\U2708' +emoji[man_pilot_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U2708\UFE0F' +emoji[man_pilot_medium_dark_skin_tone_minimally]=$'\U1F468\U1F3FE\U200D\U2708' +emoji[man_pilot_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U2708\UFE0F' +emoji[man_pilot_dark_skin_tone_minimally]=$'\U1F468\U1F3FF\U200D\U2708' +emoji[woman_pilot]=$'\U1F469\U200D\U2708\UFE0F' +emoji[woman_pilot_minimally]=$'\U1F469\U200D\U2708' +emoji[woman_pilot_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U2708\UFE0F' +emoji[woman_pilot_light_skin_tone_minimally]=$'\U1F469\U1F3FB\U200D\U2708' +emoji[woman_pilot_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_light_skin_tone_minimally]=$'\U1F469\U1F3FC\U200D\U2708' +emoji[woman_pilot_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_skin_tone_minimally]=$'\U1F469\U1F3FD\U200D\U2708' +emoji[woman_pilot_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U2708\UFE0F' +emoji[woman_pilot_medium_dark_skin_tone_minimally]=$'\U1F469\U1F3FE\U200D\U2708' +emoji[woman_pilot_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U2708\UFE0F' +emoji[woman_pilot_dark_skin_tone_minimally]=$'\U1F469\U1F3FF\U200D\U2708' +emoji[man_astronaut]=$'\U1F468\U200D\U1F680' +emoji[man_astronaut_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F680' +emoji[man_astronaut_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F680' +emoji[man_astronaut_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F680' +emoji[man_astronaut_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F680' +emoji[man_astronaut_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F680' +emoji[woman_astronaut]=$'\U1F469\U200D\U1F680' +emoji[woman_astronaut_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F680' +emoji[woman_astronaut_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F680' +emoji[woman_astronaut_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F680' +emoji[woman_astronaut_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F680' +emoji[woman_astronaut_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F680' +emoji[man_firefighter]=$'\U1F468\U200D\U1F692' +emoji[man_firefighter_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F692' +emoji[man_firefighter_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F692' +emoji[man_firefighter_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F692' +emoji[man_firefighter_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F692' +emoji[man_firefighter_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F692' +emoji[woman_firefighter]=$'\U1F469\U200D\U1F692' +emoji[woman_firefighter_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F692' +emoji[woman_firefighter_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F692' +emoji[woman_firefighter_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F692' +emoji[woman_firefighter_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F692' +emoji[woman_firefighter_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F692' +emoji[police_officer]=$'\U1F46E' +emoji[cop]=$'\U1F46E' +emoji[police_officer_light_skin_tone]=$'\U1F46E\U1F3FB' +emoji[police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC' +emoji[police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD' +emoji[police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE' +emoji[police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF' +emoji[man_police_officer]=$'\U1F46E\U200D\U2642\UFE0F' +emoji[man_police_officer_minimally]=$'\U1F46E\U200D\U2642' +emoji[policeman]=$'\U1F46E\U200D\U2642' +emoji[man_police_officer_light_skin_tone]=$'\U1F46E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_police_officer_light_skin_tone_minimally]=$'\U1F46E\U1F3FB\U200D\U2642' +emoji[man_police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_light_skin_tone_minimally]=$'\U1F46E\U1F3FC\U200D\U2642' +emoji[man_police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_skin_tone_minimally]=$'\U1F46E\U1F3FD\U200D\U2642' +emoji[man_police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_police_officer_medium_dark_skin_tone_minimally]=$'\U1F46E\U1F3FE\U200D\U2642' +emoji[man_police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_police_officer_dark_skin_tone_minimally]=$'\U1F46E\U1F3FF\U200D\U2642' +emoji[woman_police_officer]=$'\U1F46E\U200D\U2640\UFE0F' +emoji[woman_police_officer_minimally]=$'\U1F46E\U200D\U2640' +emoji[policewoman]=$'\U1F46E\U200D\U2640' +emoji[woman_police_officer_light_skin_tone]=$'\U1F46E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_police_officer_light_skin_tone_minimally]=$'\U1F46E\U1F3FB\U200D\U2640' +emoji[woman_police_officer_medium_light_skin_tone]=$'\U1F46E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_light_skin_tone_minimally]=$'\U1F46E\U1F3FC\U200D\U2640' +emoji[woman_police_officer_medium_skin_tone]=$'\U1F46E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_skin_tone_minimally]=$'\U1F46E\U1F3FD\U200D\U2640' +emoji[woman_police_officer_medium_dark_skin_tone]=$'\U1F46E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_police_officer_medium_dark_skin_tone_minimally]=$'\U1F46E\U1F3FE\U200D\U2640' +emoji[woman_police_officer_dark_skin_tone]=$'\U1F46E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_police_officer_dark_skin_tone_minimally]=$'\U1F46E\U1F3FF\U200D\U2640' +emoji[detective]=$'\U1F575\UFE0F' +emoji[detective_unqualified]=$'\U1F575' +emoji[detective_light_skin_tone]=$'\U1F575\U1F3FB' +emoji[detective_medium_light_skin_tone]=$'\U1F575\U1F3FC' +emoji[detective_medium_skin_tone]=$'\U1F575\U1F3FD' +emoji[detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE' +emoji[detective_dark_skin_tone]=$'\U1F575\U1F3FF' +emoji[man_detective]=$'\U1F575\UFE0F\U200D\U2642\UFE0F' +emoji[male_detective]=$'\U1F575\UFE0F\U200D\U2642\UFE0F' +emoji[man_detective_unqualified]=$'\U1F575\U200D\U2642\UFE0F' +emoji[man_detective_unqualified_1]=$'\U1F575\UFE0F\U200D\U2642' +emoji[man_detective_unqualified_2]=$'\U1F575\U200D\U2642' +emoji[man_detective_light_skin_tone]=$'\U1F575\U1F3FB\U200D\U2642\UFE0F' +emoji[man_detective_light_skin_tone_minimally]=$'\U1F575\U1F3FB\U200D\U2642' +emoji[man_detective_medium_light_skin_tone]=$'\U1F575\U1F3FC\U200D\U2642\UFE0F' +emoji[man_detective_medium_light_skin_tone_minimally]=$'\U1F575\U1F3FC\U200D\U2642' +emoji[man_detective_medium_skin_tone]=$'\U1F575\U1F3FD\U200D\U2642\UFE0F' +emoji[man_detective_medium_skin_tone_minimally]=$'\U1F575\U1F3FD\U200D\U2642' +emoji[man_detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE\U200D\U2642\UFE0F' +emoji[man_detective_medium_dark_skin_tone_minimally]=$'\U1F575\U1F3FE\U200D\U2642' +emoji[man_detective_dark_skin_tone]=$'\U1F575\U1F3FF\U200D\U2642\UFE0F' +emoji[man_detective_dark_skin_tone_minimally]=$'\U1F575\U1F3FF\U200D\U2642' +emoji[woman_detective]=$'\U1F575\UFE0F\U200D\U2640\UFE0F' +emoji[female_detective]=$'\U1F575\UFE0F\U200D\U2640\UFE0F' +emoji[woman_detective_unqualified]=$'\U1F575\U200D\U2640\UFE0F' +emoji[woman_detective_unqualified_1]=$'\U1F575\UFE0F\U200D\U2640' +emoji[woman_detective_unqualified_2]=$'\U1F575\U200D\U2640' +emoji[woman_detective_light_skin_tone]=$'\U1F575\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_detective_light_skin_tone_minimally]=$'\U1F575\U1F3FB\U200D\U2640' +emoji[woman_detective_medium_light_skin_tone]=$'\U1F575\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_detective_medium_light_skin_tone_minimally]=$'\U1F575\U1F3FC\U200D\U2640' +emoji[woman_detective_medium_skin_tone]=$'\U1F575\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_detective_medium_skin_tone_minimally]=$'\U1F575\U1F3FD\U200D\U2640' +emoji[woman_detective_medium_dark_skin_tone]=$'\U1F575\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_detective_medium_dark_skin_tone_minimally]=$'\U1F575\U1F3FE\U200D\U2640' +emoji[woman_detective_dark_skin_tone]=$'\U1F575\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_detective_dark_skin_tone_minimally]=$'\U1F575\U1F3FF\U200D\U2640' +emoji[guard]=$'\U1F482' +emoji[guard_light_skin_tone]=$'\U1F482\U1F3FB' +emoji[guard_medium_light_skin_tone]=$'\U1F482\U1F3FC' +emoji[guard_medium_skin_tone]=$'\U1F482\U1F3FD' +emoji[guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE' +emoji[guard_dark_skin_tone]=$'\U1F482\U1F3FF' +emoji[man_guard]=$'\U1F482\U200D\U2642\UFE0F' +emoji[man_guard_minimally]=$'\U1F482\U200D\U2642' +emoji[guardsman]=$'\U1F482\U200D\U2642' +emoji[man_guard_light_skin_tone]=$'\U1F482\U1F3FB\U200D\U2642\UFE0F' +emoji[man_guard_light_skin_tone_minimally]=$'\U1F482\U1F3FB\U200D\U2642' +emoji[man_guard_medium_light_skin_tone]=$'\U1F482\U1F3FC\U200D\U2642\UFE0F' +emoji[man_guard_medium_light_skin_tone_minimally]=$'\U1F482\U1F3FC\U200D\U2642' +emoji[man_guard_medium_skin_tone]=$'\U1F482\U1F3FD\U200D\U2642\UFE0F' +emoji[man_guard_medium_skin_tone_minimally]=$'\U1F482\U1F3FD\U200D\U2642' +emoji[man_guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE\U200D\U2642\UFE0F' +emoji[man_guard_medium_dark_skin_tone_minimally]=$'\U1F482\U1F3FE\U200D\U2642' +emoji[man_guard_dark_skin_tone]=$'\U1F482\U1F3FF\U200D\U2642\UFE0F' +emoji[man_guard_dark_skin_tone_minimally]=$'\U1F482\U1F3FF\U200D\U2642' +emoji[woman_guard]=$'\U1F482\U200D\U2640\UFE0F' +emoji[woman_guard_minimally]=$'\U1F482\U200D\U2640' +emoji[guardswoman]=$'\U1F482\U200D\U2640' +emoji[woman_guard_light_skin_tone]=$'\U1F482\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_guard_light_skin_tone_minimally]=$'\U1F482\U1F3FB\U200D\U2640' +emoji[woman_guard_medium_light_skin_tone]=$'\U1F482\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_guard_medium_light_skin_tone_minimally]=$'\U1F482\U1F3FC\U200D\U2640' +emoji[woman_guard_medium_skin_tone]=$'\U1F482\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_guard_medium_skin_tone_minimally]=$'\U1F482\U1F3FD\U200D\U2640' +emoji[woman_guard_medium_dark_skin_tone]=$'\U1F482\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_guard_medium_dark_skin_tone_minimally]=$'\U1F482\U1F3FE\U200D\U2640' +emoji[woman_guard_dark_skin_tone]=$'\U1F482\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_guard_dark_skin_tone_minimally]=$'\U1F482\U1F3FF\U200D\U2640' +emoji[construction_worker]=$'\U1F477' +emoji[construction_worker_light_skin_tone]=$'\U1F477\U1F3FB' +emoji[construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC' +emoji[construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD' +emoji[construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE' +emoji[construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF' +emoji[man_construction_worker]=$'\U1F477\U200D\U2642\UFE0F' +emoji[man_construction_worker_minimally]=$'\U1F477\U200D\U2642' +emoji[construction_worker_man]=$'\U1F477\U200D\U2642' +emoji[man_construction_worker_light_skin_tone]=$'\U1F477\U1F3FB\U200D\U2642\UFE0F' +emoji[man_construction_worker_light_skin_tone_minimally]=$'\U1F477\U1F3FB\U200D\U2642' +emoji[man_construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_light_skin_tone_minimally]=$'\U1F477\U1F3FC\U200D\U2642' +emoji[man_construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_skin_tone_minimally]=$'\U1F477\U1F3FD\U200D\U2642' +emoji[man_construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE\U200D\U2642\UFE0F' +emoji[man_construction_worker_medium_dark_skin_tone_minimally]=$'\U1F477\U1F3FE\U200D\U2642' +emoji[man_construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF\U200D\U2642\UFE0F' +emoji[man_construction_worker_dark_skin_tone_minimally]=$'\U1F477\U1F3FF\U200D\U2642' +emoji[woman_construction_worker]=$'\U1F477\U200D\U2640\UFE0F' +emoji[woman_construction_worker_minimally]=$'\U1F477\U200D\U2640' +emoji[construction_worker_woman]=$'\U1F477\U200D\U2640' +emoji[woman_construction_worker_light_skin_tone]=$'\U1F477\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_construction_worker_light_skin_tone_minimally]=$'\U1F477\U1F3FB\U200D\U2640' +emoji[woman_construction_worker_medium_light_skin_tone]=$'\U1F477\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_light_skin_tone_minimally]=$'\U1F477\U1F3FC\U200D\U2640' +emoji[woman_construction_worker_medium_skin_tone]=$'\U1F477\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_skin_tone_minimally]=$'\U1F477\U1F3FD\U200D\U2640' +emoji[woman_construction_worker_medium_dark_skin_tone]=$'\U1F477\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_construction_worker_medium_dark_skin_tone_minimally]=$'\U1F477\U1F3FE\U200D\U2640' +emoji[woman_construction_worker_dark_skin_tone]=$'\U1F477\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_construction_worker_dark_skin_tone_minimally]=$'\U1F477\U1F3FF\U200D\U2640' +emoji[prince]=$'\U1F934' +emoji[prince_light_skin_tone]=$'\U1F934\U1F3FB' +emoji[prince_medium_light_skin_tone]=$'\U1F934\U1F3FC' +emoji[prince_medium_skin_tone]=$'\U1F934\U1F3FD' +emoji[prince_medium_dark_skin_tone]=$'\U1F934\U1F3FE' +emoji[prince_dark_skin_tone]=$'\U1F934\U1F3FF' +emoji[princess]=$'\U1F478' +emoji[princess_light_skin_tone]=$'\U1F478\U1F3FB' +emoji[princess_medium_light_skin_tone]=$'\U1F478\U1F3FC' +emoji[princess_medium_skin_tone]=$'\U1F478\U1F3FD' +emoji[princess_medium_dark_skin_tone]=$'\U1F478\U1F3FE' +emoji[princess_dark_skin_tone]=$'\U1F478\U1F3FF' +emoji[person_wearing_turban]=$'\U1F473' +emoji[person_with_turban]=$'\U1F473' +emoji[person_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB' +emoji[person_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC' +emoji[person_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD' +emoji[person_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE' +emoji[person_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF' +emoji[man_wearing_turban]=$'\U1F473\U200D\U2642\UFE0F' +emoji[man_wearing_turban_minimally]=$'\U1F473\U200D\U2642' +emoji[man_with_turban]=$'\U1F473\U200D\U2642' +emoji[man_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB\U200D\U2642\UFE0F' +emoji[man_wearing_turban_light_skin_tone_minimally]=$'\U1F473\U1F3FB\U200D\U2642' +emoji[man_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_light_skin_tone_minimally]=$'\U1F473\U1F3FC\U200D\U2642' +emoji[man_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_skin_tone_minimally]=$'\U1F473\U1F3FD\U200D\U2642' +emoji[man_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE\U200D\U2642\UFE0F' +emoji[man_wearing_turban_medium_dark_skin_tone_minimally]=$'\U1F473\U1F3FE\U200D\U2642' +emoji[man_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF\U200D\U2642\UFE0F' +emoji[man_wearing_turban_dark_skin_tone_minimally]=$'\U1F473\U1F3FF\U200D\U2642' +emoji[woman_wearing_turban]=$'\U1F473\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_minimally]=$'\U1F473\U200D\U2640' +emoji[woman_with_turban]=$'\U1F473\U200D\U2640' +emoji[woman_wearing_turban_light_skin_tone]=$'\U1F473\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_light_skin_tone_minimally]=$'\U1F473\U1F3FB\U200D\U2640' +emoji[woman_wearing_turban_medium_light_skin_tone]=$'\U1F473\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_light_skin_tone_minimally]=$'\U1F473\U1F3FC\U200D\U2640' +emoji[woman_wearing_turban_medium_skin_tone]=$'\U1F473\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_skin_tone_minimally]=$'\U1F473\U1F3FD\U200D\U2640' +emoji[woman_wearing_turban_medium_dark_skin_tone]=$'\U1F473\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_medium_dark_skin_tone_minimally]=$'\U1F473\U1F3FE\U200D\U2640' +emoji[woman_wearing_turban_dark_skin_tone]=$'\U1F473\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_wearing_turban_dark_skin_tone_minimally]=$'\U1F473\U1F3FF\U200D\U2640' +emoji[man_with_Chinese_cap]=$'\U1F472' +emoji[man_with_gua_pi_mao]=$'\U1F472' +emoji[man_with_Chinese_cap_light_skin_tone]=$'\U1F472\U1F3FB' +emoji[man_with_Chinese_cap_medium_light_skin_tone]=$'\U1F472\U1F3FC' +emoji[man_with_Chinese_cap_medium_skin_tone]=$'\U1F472\U1F3FD' +emoji[man_with_Chinese_cap_medium_dark_skin_tone]=$'\U1F472\U1F3FE' +emoji[man_with_Chinese_cap_dark_skin_tone]=$'\U1F472\U1F3FF' +emoji[woman_with_headscarf]=$'\U1F9D5' +emoji[woman_with_headscarf_light_skin_tone]=$'\U1F9D5\U1F3FB' +emoji[woman_with_headscarf_medium_light_skin_tone]=$'\U1F9D5\U1F3FC' +emoji[woman_with_headscarf_medium_skin_tone]=$'\U1F9D5\U1F3FD' +emoji[woman_with_headscarf_medium_dark_skin_tone]=$'\U1F9D5\U1F3FE' +emoji[woman_with_headscarf_dark_skin_tone]=$'\U1F9D5\U1F3FF' +emoji[man_in_tuxedo]=$'\U1F935' +emoji[man_in_tuxedo_light_skin_tone]=$'\U1F935\U1F3FB' +emoji[man_in_tuxedo_medium_light_skin_tone]=$'\U1F935\U1F3FC' +emoji[man_in_tuxedo_medium_skin_tone]=$'\U1F935\U1F3FD' +emoji[man_in_tuxedo_medium_dark_skin_tone]=$'\U1F935\U1F3FE' +emoji[man_in_tuxedo_dark_skin_tone]=$'\U1F935\U1F3FF' +emoji[bride_with_veil]=$'\U1F470' +emoji[bride_with_veil_light_skin_tone]=$'\U1F470\U1F3FB' +emoji[bride_with_veil_medium_light_skin_tone]=$'\U1F470\U1F3FC' +emoji[bride_with_veil_medium_skin_tone]=$'\U1F470\U1F3FD' +emoji[bride_with_veil_medium_dark_skin_tone]=$'\U1F470\U1F3FE' +emoji[bride_with_veil_dark_skin_tone]=$'\U1F470\U1F3FF' +emoji[pregnant_woman]=$'\U1F930' +emoji[pregnant_woman_light_skin_tone]=$'\U1F930\U1F3FB' +emoji[pregnant_woman_medium_light_skin_tone]=$'\U1F930\U1F3FC' +emoji[pregnant_woman_medium_skin_tone]=$'\U1F930\U1F3FD' +emoji[pregnant_woman_medium_dark_skin_tone]=$'\U1F930\U1F3FE' +emoji[pregnant_woman_dark_skin_tone]=$'\U1F930\U1F3FF' +emoji[breast_feeding]=$'\U1F931' +emoji[breast_feeding_light_skin_tone]=$'\U1F931\U1F3FB' +emoji[breast_feeding_medium_light_skin_tone]=$'\U1F931\U1F3FC' +emoji[breast_feeding_medium_skin_tone]=$'\U1F931\U1F3FD' +emoji[breast_feeding_medium_dark_skin_tone]=$'\U1F931\U1F3FE' +emoji[breast_feeding_dark_skin_tone]=$'\U1F931\U1F3FF' +emoji[baby_angel]=$'\U1F47C' +emoji[angel]=$'\U1F47C' +emoji[baby_angel_light_skin_tone]=$'\U1F47C\U1F3FB' +emoji[baby_angel_medium_light_skin_tone]=$'\U1F47C\U1F3FC' +emoji[baby_angel_medium_skin_tone]=$'\U1F47C\U1F3FD' +emoji[baby_angel_medium_dark_skin_tone]=$'\U1F47C\U1F3FE' +emoji[baby_angel_dark_skin_tone]=$'\U1F47C\U1F3FF' +emoji[Santa_Claus]=$'\U1F385' +emoji[santa]=$'\U1F385' +emoji[Santa_Claus_light_skin_tone]=$'\U1F385\U1F3FB' +emoji[Santa_Claus_medium_light_skin_tone]=$'\U1F385\U1F3FC' +emoji[Santa_Claus_medium_skin_tone]=$'\U1F385\U1F3FD' +emoji[Santa_Claus_medium_dark_skin_tone]=$'\U1F385\U1F3FE' +emoji[Santa_Claus_dark_skin_tone]=$'\U1F385\U1F3FF' +emoji[Mrs_Claus]=$'\U1F936' +emoji[mrs_claus]=$'\U1F936' +emoji[Mrs_Claus_light_skin_tone]=$'\U1F936\U1F3FB' +emoji[Mrs_Claus_medium_light_skin_tone]=$'\U1F936\U1F3FC' +emoji[Mrs_Claus_medium_skin_tone]=$'\U1F936\U1F3FD' +emoji[Mrs_Claus_medium_dark_skin_tone]=$'\U1F936\U1F3FE' +emoji[Mrs_Claus_dark_skin_tone]=$'\U1F936\U1F3FF' +emoji[superhero]=$'\U1F9B8' +emoji[superhero_light_skin_tone]=$'\U1F9B8\U1F3FB' +emoji[superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC' +emoji[superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD' +emoji[superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE' +emoji[superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF' +emoji[man_superhero]=$'\U1F9B8\U200D\U2642\UFE0F' +emoji[man_superhero_minimally]=$'\U1F9B8\U200D\U2642' +emoji[superhero_man]=$'\U1F9B8\U200D\U2642' +emoji[man_superhero_light_skin_tone]=$'\U1F9B8\U1F3FB\U200D\U2642\UFE0F' +emoji[man_superhero_light_skin_tone_minimally]=$'\U1F9B8\U1F3FB\U200D\U2642' +emoji[man_superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC\U200D\U2642\UFE0F' +emoji[man_superhero_medium_light_skin_tone_minimally]=$'\U1F9B8\U1F3FC\U200D\U2642' +emoji[man_superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD\U200D\U2642\UFE0F' +emoji[man_superhero_medium_skin_tone_minimally]=$'\U1F9B8\U1F3FD\U200D\U2642' +emoji[man_superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE\U200D\U2642\UFE0F' +emoji[man_superhero_medium_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FE\U200D\U2642' +emoji[man_superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF\U200D\U2642\UFE0F' +emoji[man_superhero_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FF\U200D\U2642' +emoji[woman_superhero]=$'\U1F9B8\U200D\U2640\UFE0F' +emoji[woman_superhero_minimally]=$'\U1F9B8\U200D\U2640' +emoji[superhero_woman]=$'\U1F9B8\U200D\U2640' +emoji[woman_superhero_light_skin_tone]=$'\U1F9B8\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_superhero_light_skin_tone_minimally]=$'\U1F9B8\U1F3FB\U200D\U2640' +emoji[woman_superhero_medium_light_skin_tone]=$'\U1F9B8\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_light_skin_tone_minimally]=$'\U1F9B8\U1F3FC\U200D\U2640' +emoji[woman_superhero_medium_skin_tone]=$'\U1F9B8\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_skin_tone_minimally]=$'\U1F9B8\U1F3FD\U200D\U2640' +emoji[woman_superhero_medium_dark_skin_tone]=$'\U1F9B8\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_superhero_medium_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FE\U200D\U2640' +emoji[woman_superhero_dark_skin_tone]=$'\U1F9B8\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_superhero_dark_skin_tone_minimally]=$'\U1F9B8\U1F3FF\U200D\U2640' +emoji[supervillain]=$'\U1F9B9' +emoji[supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB' +emoji[supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC' +emoji[supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD' +emoji[supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE' +emoji[supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF' +emoji[man_supervillain]=$'\U1F9B9\U200D\U2642\UFE0F' +emoji[man_supervillain_minimally]=$'\U1F9B9\U200D\U2642' +emoji[supervillain_man]=$'\U1F9B9\U200D\U2642' +emoji[man_supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_supervillain_light_skin_tone_minimally]=$'\U1F9B9\U1F3FB\U200D\U2642' +emoji[man_supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_light_skin_tone_minimally]=$'\U1F9B9\U1F3FC\U200D\U2642' +emoji[man_supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_skin_tone_minimally]=$'\U1F9B9\U1F3FD\U200D\U2642' +emoji[man_supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_supervillain_medium_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FE\U200D\U2642' +emoji[man_supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_supervillain_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FF\U200D\U2642' +emoji[woman_supervillain]=$'\U1F9B9\U200D\U2640\UFE0F' +emoji[woman_supervillain_minimally]=$'\U1F9B9\U200D\U2640' +emoji[supervillain_woman]=$'\U1F9B9\U200D\U2640' +emoji[woman_supervillain_light_skin_tone]=$'\U1F9B9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_supervillain_light_skin_tone_minimally]=$'\U1F9B9\U1F3FB\U200D\U2640' +emoji[woman_supervillain_medium_light_skin_tone]=$'\U1F9B9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_light_skin_tone_minimally]=$'\U1F9B9\U1F3FC\U200D\U2640' +emoji[woman_supervillain_medium_skin_tone]=$'\U1F9B9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_skin_tone_minimally]=$'\U1F9B9\U1F3FD\U200D\U2640' +emoji[woman_supervillain_medium_dark_skin_tone]=$'\U1F9B9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_supervillain_medium_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FE\U200D\U2640' +emoji[woman_supervillain_dark_skin_tone]=$'\U1F9B9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_supervillain_dark_skin_tone_minimally]=$'\U1F9B9\U1F3FF\U200D\U2640' +emoji[mage]=$'\U1F9D9' +emoji[mage_light_skin_tone]=$'\U1F9D9\U1F3FB' +emoji[mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC' +emoji[mage_medium_skin_tone]=$'\U1F9D9\U1F3FD' +emoji[mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE' +emoji[mage_dark_skin_tone]=$'\U1F9D9\U1F3FF' +emoji[man_mage]=$'\U1F9D9\U200D\U2642\UFE0F' +emoji[man_mage_minimally]=$'\U1F9D9\U200D\U2642' +emoji[mage_man]=$'\U1F9D9\U200D\U2642' +emoji[man_mage_light_skin_tone]=$'\U1F9D9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_mage_light_skin_tone_minimally]=$'\U1F9D9\U1F3FB\U200D\U2642' +emoji[man_mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_mage_medium_light_skin_tone_minimally]=$'\U1F9D9\U1F3FC\U200D\U2642' +emoji[man_mage_medium_skin_tone]=$'\U1F9D9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_mage_medium_skin_tone_minimally]=$'\U1F9D9\U1F3FD\U200D\U2642' +emoji[man_mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_mage_medium_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FE\U200D\U2642' +emoji[man_mage_dark_skin_tone]=$'\U1F9D9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_mage_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FF\U200D\U2642' +emoji[woman_mage]=$'\U1F9D9\U200D\U2640\UFE0F' +emoji[woman_mage_minimally]=$'\U1F9D9\U200D\U2640' +emoji[mage_woman]=$'\U1F9D9\U200D\U2640' +emoji[woman_mage_light_skin_tone]=$'\U1F9D9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_mage_light_skin_tone_minimally]=$'\U1F9D9\U1F3FB\U200D\U2640' +emoji[woman_mage_medium_light_skin_tone]=$'\U1F9D9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_mage_medium_light_skin_tone_minimally]=$'\U1F9D9\U1F3FC\U200D\U2640' +emoji[woman_mage_medium_skin_tone]=$'\U1F9D9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_mage_medium_skin_tone_minimally]=$'\U1F9D9\U1F3FD\U200D\U2640' +emoji[woman_mage_medium_dark_skin_tone]=$'\U1F9D9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_mage_medium_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FE\U200D\U2640' +emoji[woman_mage_dark_skin_tone]=$'\U1F9D9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_mage_dark_skin_tone_minimally]=$'\U1F9D9\U1F3FF\U200D\U2640' +emoji[fairy]=$'\U1F9DA' +emoji[fairy_light_skin_tone]=$'\U1F9DA\U1F3FB' +emoji[fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC' +emoji[fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD' +emoji[fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE' +emoji[fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF' +emoji[man_fairy]=$'\U1F9DA\U200D\U2642\UFE0F' +emoji[man_fairy_minimally]=$'\U1F9DA\U200D\U2642' +emoji[fairy_man]=$'\U1F9DA\U200D\U2642' +emoji[man_fairy_light_skin_tone]=$'\U1F9DA\U1F3FB\U200D\U2642\UFE0F' +emoji[man_fairy_light_skin_tone_minimally]=$'\U1F9DA\U1F3FB\U200D\U2642' +emoji[man_fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC\U200D\U2642\UFE0F' +emoji[man_fairy_medium_light_skin_tone_minimally]=$'\U1F9DA\U1F3FC\U200D\U2642' +emoji[man_fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD\U200D\U2642\UFE0F' +emoji[man_fairy_medium_skin_tone_minimally]=$'\U1F9DA\U1F3FD\U200D\U2642' +emoji[man_fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE\U200D\U2642\UFE0F' +emoji[man_fairy_medium_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FE\U200D\U2642' +emoji[man_fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF\U200D\U2642\UFE0F' +emoji[man_fairy_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FF\U200D\U2642' +emoji[woman_fairy]=$'\U1F9DA\U200D\U2640\UFE0F' +emoji[woman_fairy_minimally]=$'\U1F9DA\U200D\U2640' +emoji[fairy_woman]=$'\U1F9DA\U200D\U2640' +emoji[woman_fairy_light_skin_tone]=$'\U1F9DA\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_fairy_light_skin_tone_minimally]=$'\U1F9DA\U1F3FB\U200D\U2640' +emoji[woman_fairy_medium_light_skin_tone]=$'\U1F9DA\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_light_skin_tone_minimally]=$'\U1F9DA\U1F3FC\U200D\U2640' +emoji[woman_fairy_medium_skin_tone]=$'\U1F9DA\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_skin_tone_minimally]=$'\U1F9DA\U1F3FD\U200D\U2640' +emoji[woman_fairy_medium_dark_skin_tone]=$'\U1F9DA\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_fairy_medium_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FE\U200D\U2640' +emoji[woman_fairy_dark_skin_tone]=$'\U1F9DA\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_fairy_dark_skin_tone_minimally]=$'\U1F9DA\U1F3FF\U200D\U2640' +emoji[vampire]=$'\U1F9DB' +emoji[vampire_light_skin_tone]=$'\U1F9DB\U1F3FB' +emoji[vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC' +emoji[vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD' +emoji[vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE' +emoji[vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF' +emoji[man_vampire]=$'\U1F9DB\U200D\U2642\UFE0F' +emoji[man_vampire_minimally]=$'\U1F9DB\U200D\U2642' +emoji[vampire_man]=$'\U1F9DB\U200D\U2642' +emoji[man_vampire_light_skin_tone]=$'\U1F9DB\U1F3FB\U200D\U2642\UFE0F' +emoji[man_vampire_light_skin_tone_minimally]=$'\U1F9DB\U1F3FB\U200D\U2642' +emoji[man_vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC\U200D\U2642\UFE0F' +emoji[man_vampire_medium_light_skin_tone_minimally]=$'\U1F9DB\U1F3FC\U200D\U2642' +emoji[man_vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD\U200D\U2642\UFE0F' +emoji[man_vampire_medium_skin_tone_minimally]=$'\U1F9DB\U1F3FD\U200D\U2642' +emoji[man_vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE\U200D\U2642\UFE0F' +emoji[man_vampire_medium_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FE\U200D\U2642' +emoji[man_vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF\U200D\U2642\UFE0F' +emoji[man_vampire_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FF\U200D\U2642' +emoji[woman_vampire]=$'\U1F9DB\U200D\U2640\UFE0F' +emoji[woman_vampire_minimally]=$'\U1F9DB\U200D\U2640' +emoji[vampire_woman]=$'\U1F9DB\U200D\U2640' +emoji[woman_vampire_light_skin_tone]=$'\U1F9DB\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_vampire_light_skin_tone_minimally]=$'\U1F9DB\U1F3FB\U200D\U2640' +emoji[woman_vampire_medium_light_skin_tone]=$'\U1F9DB\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_light_skin_tone_minimally]=$'\U1F9DB\U1F3FC\U200D\U2640' +emoji[woman_vampire_medium_skin_tone]=$'\U1F9DB\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_skin_tone_minimally]=$'\U1F9DB\U1F3FD\U200D\U2640' +emoji[woman_vampire_medium_dark_skin_tone]=$'\U1F9DB\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_vampire_medium_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FE\U200D\U2640' +emoji[woman_vampire_dark_skin_tone]=$'\U1F9DB\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_vampire_dark_skin_tone_minimally]=$'\U1F9DB\U1F3FF\U200D\U2640' +emoji[merperson]=$'\U1F9DC' +emoji[merperson_light_skin_tone]=$'\U1F9DC\U1F3FB' +emoji[merperson_medium_light_skin_tone]=$'\U1F9DC\U1F3FC' +emoji[merperson_medium_skin_tone]=$'\U1F9DC\U1F3FD' +emoji[merperson_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE' +emoji[merperson_dark_skin_tone]=$'\U1F9DC\U1F3FF' +emoji[merman]=$'\U1F9DC\U200D\U2642\UFE0F' +emoji[merman_minimally]=$'\U1F9DC\U200D\U2642' +emoji[merman_light_skin_tone]=$'\U1F9DC\U1F3FB\U200D\U2642\UFE0F' +emoji[merman_light_skin_tone_minimally]=$'\U1F9DC\U1F3FB\U200D\U2642' +emoji[merman_medium_light_skin_tone]=$'\U1F9DC\U1F3FC\U200D\U2642\UFE0F' +emoji[merman_medium_light_skin_tone_minimally]=$'\U1F9DC\U1F3FC\U200D\U2642' +emoji[merman_medium_skin_tone]=$'\U1F9DC\U1F3FD\U200D\U2642\UFE0F' +emoji[merman_medium_skin_tone_minimally]=$'\U1F9DC\U1F3FD\U200D\U2642' +emoji[merman_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE\U200D\U2642\UFE0F' +emoji[merman_medium_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FE\U200D\U2642' +emoji[merman_dark_skin_tone]=$'\U1F9DC\U1F3FF\U200D\U2642\UFE0F' +emoji[merman_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FF\U200D\U2642' +emoji[mermaid]=$'\U1F9DC\U200D\U2640\UFE0F' +emoji[mermaid_minimally]=$'\U1F9DC\U200D\U2640' +emoji[mermaid_light_skin_tone]=$'\U1F9DC\U1F3FB\U200D\U2640\UFE0F' +emoji[mermaid_light_skin_tone_minimally]=$'\U1F9DC\U1F3FB\U200D\U2640' +emoji[mermaid_medium_light_skin_tone]=$'\U1F9DC\U1F3FC\U200D\U2640\UFE0F' +emoji[mermaid_medium_light_skin_tone_minimally]=$'\U1F9DC\U1F3FC\U200D\U2640' +emoji[mermaid_medium_skin_tone]=$'\U1F9DC\U1F3FD\U200D\U2640\UFE0F' +emoji[mermaid_medium_skin_tone_minimally]=$'\U1F9DC\U1F3FD\U200D\U2640' +emoji[mermaid_medium_dark_skin_tone]=$'\U1F9DC\U1F3FE\U200D\U2640\UFE0F' +emoji[mermaid_medium_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FE\U200D\U2640' +emoji[mermaid_dark_skin_tone]=$'\U1F9DC\U1F3FF\U200D\U2640\UFE0F' +emoji[mermaid_dark_skin_tone_minimally]=$'\U1F9DC\U1F3FF\U200D\U2640' +emoji[elf]=$'\U1F9DD' +emoji[elf_light_skin_tone]=$'\U1F9DD\U1F3FB' +emoji[elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC' +emoji[elf_medium_skin_tone]=$'\U1F9DD\U1F3FD' +emoji[elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE' +emoji[elf_dark_skin_tone]=$'\U1F9DD\U1F3FF' +emoji[man_elf]=$'\U1F9DD\U200D\U2642\UFE0F' +emoji[man_elf_minimally]=$'\U1F9DD\U200D\U2642' +emoji[elf_man]=$'\U1F9DD\U200D\U2642' +emoji[man_elf_light_skin_tone]=$'\U1F9DD\U1F3FB\U200D\U2642\UFE0F' +emoji[man_elf_light_skin_tone_minimally]=$'\U1F9DD\U1F3FB\U200D\U2642' +emoji[man_elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC\U200D\U2642\UFE0F' +emoji[man_elf_medium_light_skin_tone_minimally]=$'\U1F9DD\U1F3FC\U200D\U2642' +emoji[man_elf_medium_skin_tone]=$'\U1F9DD\U1F3FD\U200D\U2642\UFE0F' +emoji[man_elf_medium_skin_tone_minimally]=$'\U1F9DD\U1F3FD\U200D\U2642' +emoji[man_elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE\U200D\U2642\UFE0F' +emoji[man_elf_medium_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FE\U200D\U2642' +emoji[man_elf_dark_skin_tone]=$'\U1F9DD\U1F3FF\U200D\U2642\UFE0F' +emoji[man_elf_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FF\U200D\U2642' +emoji[woman_elf]=$'\U1F9DD\U200D\U2640\UFE0F' +emoji[woman_elf_minimally]=$'\U1F9DD\U200D\U2640' +emoji[elf_woman]=$'\U1F9DD\U200D\U2640' +emoji[woman_elf_light_skin_tone]=$'\U1F9DD\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_elf_light_skin_tone_minimally]=$'\U1F9DD\U1F3FB\U200D\U2640' +emoji[woman_elf_medium_light_skin_tone]=$'\U1F9DD\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_elf_medium_light_skin_tone_minimally]=$'\U1F9DD\U1F3FC\U200D\U2640' +emoji[woman_elf_medium_skin_tone]=$'\U1F9DD\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_elf_medium_skin_tone_minimally]=$'\U1F9DD\U1F3FD\U200D\U2640' +emoji[woman_elf_medium_dark_skin_tone]=$'\U1F9DD\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_elf_medium_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FE\U200D\U2640' +emoji[woman_elf_dark_skin_tone]=$'\U1F9DD\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_elf_dark_skin_tone_minimally]=$'\U1F9DD\U1F3FF\U200D\U2640' +emoji[genie]=$'\U1F9DE' +emoji[man_genie]=$'\U1F9DE\U200D\U2642\UFE0F' +emoji[man_genie_minimally]=$'\U1F9DE\U200D\U2642' +emoji[genie_man]=$'\U1F9DE\U200D\U2642' +emoji[woman_genie]=$'\U1F9DE\U200D\U2640\UFE0F' +emoji[woman_genie_minimally]=$'\U1F9DE\U200D\U2640' +emoji[genie_woman]=$'\U1F9DE\U200D\U2640' +emoji[zombie]=$'\U1F9DF' +emoji[man_zombie]=$'\U1F9DF\U200D\U2642\UFE0F' +emoji[man_zombie_minimally]=$'\U1F9DF\U200D\U2642' +emoji[zombie_man]=$'\U1F9DF\U200D\U2642' +emoji[woman_zombie]=$'\U1F9DF\U200D\U2640\UFE0F' +emoji[woman_zombie_minimally]=$'\U1F9DF\U200D\U2640' +emoji[zombie_woman]=$'\U1F9DF\U200D\U2640' +emoji[person_getting_massage]=$'\U1F486' +emoji[massage]=$'\U1F486' +emoji[person_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB' +emoji[person_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC' +emoji[person_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD' +emoji[person_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE' +emoji[person_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF' +emoji[man_getting_massage]=$'\U1F486\U200D\U2642\UFE0F' +emoji[man_getting_massage_minimally]=$'\U1F486\U200D\U2642' +emoji[massage_man]=$'\U1F486\U200D\U2642' +emoji[man_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB\U200D\U2642\UFE0F' +emoji[man_getting_massage_light_skin_tone_minimally]=$'\U1F486\U1F3FB\U200D\U2642' +emoji[man_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_light_skin_tone_minimally]=$'\U1F486\U1F3FC\U200D\U2642' +emoji[man_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_skin_tone_minimally]=$'\U1F486\U1F3FD\U200D\U2642' +emoji[man_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE\U200D\U2642\UFE0F' +emoji[man_getting_massage_medium_dark_skin_tone_minimally]=$'\U1F486\U1F3FE\U200D\U2642' +emoji[man_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF\U200D\U2642\UFE0F' +emoji[man_getting_massage_dark_skin_tone_minimally]=$'\U1F486\U1F3FF\U200D\U2642' +emoji[woman_getting_massage]=$'\U1F486\U200D\U2640\UFE0F' +emoji[woman_getting_massage_minimally]=$'\U1F486\U200D\U2640' +emoji[massage_woman]=$'\U1F486\U200D\U2640' +emoji[woman_getting_massage_light_skin_tone]=$'\U1F486\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_getting_massage_light_skin_tone_minimally]=$'\U1F486\U1F3FB\U200D\U2640' +emoji[woman_getting_massage_medium_light_skin_tone]=$'\U1F486\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_light_skin_tone_minimally]=$'\U1F486\U1F3FC\U200D\U2640' +emoji[woman_getting_massage_medium_skin_tone]=$'\U1F486\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_skin_tone_minimally]=$'\U1F486\U1F3FD\U200D\U2640' +emoji[woman_getting_massage_medium_dark_skin_tone]=$'\U1F486\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_getting_massage_medium_dark_skin_tone_minimally]=$'\U1F486\U1F3FE\U200D\U2640' +emoji[woman_getting_massage_dark_skin_tone]=$'\U1F486\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_getting_massage_dark_skin_tone_minimally]=$'\U1F486\U1F3FF\U200D\U2640' +emoji[person_getting_haircut]=$'\U1F487' +emoji[haircut]=$'\U1F487' +emoji[person_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB' +emoji[person_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC' +emoji[person_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD' +emoji[person_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE' +emoji[person_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF' +emoji[man_getting_haircut]=$'\U1F487\U200D\U2642\UFE0F' +emoji[man_getting_haircut_minimally]=$'\U1F487\U200D\U2642' +emoji[haircut_man]=$'\U1F487\U200D\U2642' +emoji[man_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB\U200D\U2642\UFE0F' +emoji[man_getting_haircut_light_skin_tone_minimally]=$'\U1F487\U1F3FB\U200D\U2642' +emoji[man_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_light_skin_tone_minimally]=$'\U1F487\U1F3FC\U200D\U2642' +emoji[man_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_skin_tone_minimally]=$'\U1F487\U1F3FD\U200D\U2642' +emoji[man_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE\U200D\U2642\UFE0F' +emoji[man_getting_haircut_medium_dark_skin_tone_minimally]=$'\U1F487\U1F3FE\U200D\U2642' +emoji[man_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF\U200D\U2642\UFE0F' +emoji[man_getting_haircut_dark_skin_tone_minimally]=$'\U1F487\U1F3FF\U200D\U2642' +emoji[woman_getting_haircut]=$'\U1F487\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_minimally]=$'\U1F487\U200D\U2640' +emoji[haircut_woman]=$'\U1F487\U200D\U2640' +emoji[woman_getting_haircut_light_skin_tone]=$'\U1F487\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_light_skin_tone_minimally]=$'\U1F487\U1F3FB\U200D\U2640' +emoji[woman_getting_haircut_medium_light_skin_tone]=$'\U1F487\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_light_skin_tone_minimally]=$'\U1F487\U1F3FC\U200D\U2640' +emoji[woman_getting_haircut_medium_skin_tone]=$'\U1F487\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_skin_tone_minimally]=$'\U1F487\U1F3FD\U200D\U2640' +emoji[woman_getting_haircut_medium_dark_skin_tone]=$'\U1F487\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_medium_dark_skin_tone_minimally]=$'\U1F487\U1F3FE\U200D\U2640' +emoji[woman_getting_haircut_dark_skin_tone]=$'\U1F487\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_getting_haircut_dark_skin_tone_minimally]=$'\U1F487\U1F3FF\U200D\U2640' +emoji[person_walking]=$'\U1F6B6' +emoji[walking]=$'\U1F6B6' +emoji[person_walking_light_skin_tone]=$'\U1F6B6\U1F3FB' +emoji[person_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC' +emoji[person_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD' +emoji[person_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE' +emoji[person_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF' +emoji[man_walking]=$'\U1F6B6\U200D\U2642\UFE0F' +emoji[man_walking_minimally]=$'\U1F6B6\U200D\U2642' +emoji[walking_man]=$'\U1F6B6\U200D\U2642' +emoji[man_walking_light_skin_tone]=$'\U1F6B6\U1F3FB\U200D\U2642\UFE0F' +emoji[man_walking_light_skin_tone_minimally]=$'\U1F6B6\U1F3FB\U200D\U2642' +emoji[man_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC\U200D\U2642\UFE0F' +emoji[man_walking_medium_light_skin_tone_minimally]=$'\U1F6B6\U1F3FC\U200D\U2642' +emoji[man_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD\U200D\U2642\UFE0F' +emoji[man_walking_medium_skin_tone_minimally]=$'\U1F6B6\U1F3FD\U200D\U2642' +emoji[man_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE\U200D\U2642\UFE0F' +emoji[man_walking_medium_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FE\U200D\U2642' +emoji[man_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF\U200D\U2642\UFE0F' +emoji[man_walking_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FF\U200D\U2642' +emoji[woman_walking]=$'\U1F6B6\U200D\U2640\UFE0F' +emoji[woman_walking_minimally]=$'\U1F6B6\U200D\U2640' +emoji[walking_woman]=$'\U1F6B6\U200D\U2640' +emoji[woman_walking_light_skin_tone]=$'\U1F6B6\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_walking_light_skin_tone_minimally]=$'\U1F6B6\U1F3FB\U200D\U2640' +emoji[woman_walking_medium_light_skin_tone]=$'\U1F6B6\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_walking_medium_light_skin_tone_minimally]=$'\U1F6B6\U1F3FC\U200D\U2640' +emoji[woman_walking_medium_skin_tone]=$'\U1F6B6\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_walking_medium_skin_tone_minimally]=$'\U1F6B6\U1F3FD\U200D\U2640' +emoji[woman_walking_medium_dark_skin_tone]=$'\U1F6B6\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_walking_medium_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FE\U200D\U2640' +emoji[woman_walking_dark_skin_tone]=$'\U1F6B6\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_walking_dark_skin_tone_minimally]=$'\U1F6B6\U1F3FF\U200D\U2640' +emoji[person_standing]=$'\U1F9CD' +emoji[standing_person]=$'\U1F9CD' +emoji[person_standing_light_skin_tone]=$'\U1F9CD\U1F3FB' +emoji[person_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC' +emoji[person_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD' +emoji[person_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE' +emoji[person_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF' +emoji[man_standing]=$'\U1F9CD\U200D\U2642\UFE0F' +emoji[man_standing_minimally]=$'\U1F9CD\U200D\U2642' +emoji[standing_man]=$'\U1F9CD\U200D\U2642' +emoji[man_standing_light_skin_tone]=$'\U1F9CD\U1F3FB\U200D\U2642\UFE0F' +emoji[man_standing_light_skin_tone_minimally]=$'\U1F9CD\U1F3FB\U200D\U2642' +emoji[man_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC\U200D\U2642\UFE0F' +emoji[man_standing_medium_light_skin_tone_minimally]=$'\U1F9CD\U1F3FC\U200D\U2642' +emoji[man_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD\U200D\U2642\UFE0F' +emoji[man_standing_medium_skin_tone_minimally]=$'\U1F9CD\U1F3FD\U200D\U2642' +emoji[man_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE\U200D\U2642\UFE0F' +emoji[man_standing_medium_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FE\U200D\U2642' +emoji[man_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF\U200D\U2642\UFE0F' +emoji[man_standing_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FF\U200D\U2642' +emoji[woman_standing]=$'\U1F9CD\U200D\U2640\UFE0F' +emoji[woman_standing_minimally]=$'\U1F9CD\U200D\U2640' +emoji[standing_woman]=$'\U1F9CD\U200D\U2640' +emoji[woman_standing_light_skin_tone]=$'\U1F9CD\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_standing_light_skin_tone_minimally]=$'\U1F9CD\U1F3FB\U200D\U2640' +emoji[woman_standing_medium_light_skin_tone]=$'\U1F9CD\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_standing_medium_light_skin_tone_minimally]=$'\U1F9CD\U1F3FC\U200D\U2640' +emoji[woman_standing_medium_skin_tone]=$'\U1F9CD\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_standing_medium_skin_tone_minimally]=$'\U1F9CD\U1F3FD\U200D\U2640' +emoji[woman_standing_medium_dark_skin_tone]=$'\U1F9CD\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_standing_medium_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FE\U200D\U2640' +emoji[woman_standing_dark_skin_tone]=$'\U1F9CD\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_standing_dark_skin_tone_minimally]=$'\U1F9CD\U1F3FF\U200D\U2640' +emoji[person_kneeling]=$'\U1F9CE' +emoji[kneeling_person]=$'\U1F9CE' +emoji[person_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB' +emoji[person_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC' +emoji[person_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD' +emoji[person_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE' +emoji[person_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF' +emoji[man_kneeling]=$'\U1F9CE\U200D\U2642\UFE0F' +emoji[man_kneeling_minimally]=$'\U1F9CE\U200D\U2642' +emoji[kneeling_man]=$'\U1F9CE\U200D\U2642' +emoji[man_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB\U200D\U2642\UFE0F' +emoji[man_kneeling_light_skin_tone_minimally]=$'\U1F9CE\U1F3FB\U200D\U2642' +emoji[man_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_light_skin_tone_minimally]=$'\U1F9CE\U1F3FC\U200D\U2642' +emoji[man_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_skin_tone_minimally]=$'\U1F9CE\U1F3FD\U200D\U2642' +emoji[man_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE\U200D\U2642\UFE0F' +emoji[man_kneeling_medium_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FE\U200D\U2642' +emoji[man_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF\U200D\U2642\UFE0F' +emoji[man_kneeling_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FF\U200D\U2642' +emoji[woman_kneeling]=$'\U1F9CE\U200D\U2640\UFE0F' +emoji[woman_kneeling_minimally]=$'\U1F9CE\U200D\U2640' +emoji[kneeling_woman]=$'\U1F9CE\U200D\U2640' +emoji[woman_kneeling_light_skin_tone]=$'\U1F9CE\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_kneeling_light_skin_tone_minimally]=$'\U1F9CE\U1F3FB\U200D\U2640' +emoji[woman_kneeling_medium_light_skin_tone]=$'\U1F9CE\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_light_skin_tone_minimally]=$'\U1F9CE\U1F3FC\U200D\U2640' +emoji[woman_kneeling_medium_skin_tone]=$'\U1F9CE\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_skin_tone_minimally]=$'\U1F9CE\U1F3FD\U200D\U2640' +emoji[woman_kneeling_medium_dark_skin_tone]=$'\U1F9CE\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_kneeling_medium_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FE\U200D\U2640' +emoji[woman_kneeling_dark_skin_tone]=$'\U1F9CE\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_kneeling_dark_skin_tone_minimally]=$'\U1F9CE\U1F3FF\U200D\U2640' +emoji[man_with_probing_cane]=$'\U1F468\U200D\U1F9AF' +emoji[man_with_probing_cane_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9AF' +emoji[man_with_probing_cane_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9AF' +emoji[man_with_probing_cane_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9AF' +emoji[woman_with_probing_cane]=$'\U1F469\U200D\U1F9AF' +emoji[woman_with_probing_cane_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9AF' +emoji[woman_with_probing_cane_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9AF' +emoji[woman_with_probing_cane_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9AF' +emoji[man_in_motorized_wheelchair]=$'\U1F468\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9BC' +emoji[man_in_motorized_wheelchair_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair]=$'\U1F469\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9BC' +emoji[woman_in_motorized_wheelchair_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9BC' +emoji[man_in_manual_wheelchair]=$'\U1F468\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_light_skin_tone]=$'\U1F468\U1F3FB\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_medium_dark_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F9BD' +emoji[man_in_manual_wheelchair_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair]=$'\U1F469\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_medium_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F9BD' +emoji[woman_in_manual_wheelchair_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F9BD' +emoji[person_running]=$'\U1F3C3' +emoji[runner]=$'\U1F3C3' +emoji[running]=$'\U1F3C3' +emoji[person_running_light_skin_tone]=$'\U1F3C3\U1F3FB' +emoji[person_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC' +emoji[person_running_medium_skin_tone]=$'\U1F3C3\U1F3FD' +emoji[person_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE' +emoji[person_running_dark_skin_tone]=$'\U1F3C3\U1F3FF' +emoji[man_running]=$'\U1F3C3\U200D\U2642\UFE0F' +emoji[man_running_minimally]=$'\U1F3C3\U200D\U2642' +emoji[running_man]=$'\U1F3C3\U200D\U2642' +emoji[man_running_light_skin_tone]=$'\U1F3C3\U1F3FB\U200D\U2642\UFE0F' +emoji[man_running_light_skin_tone_minimally]=$'\U1F3C3\U1F3FB\U200D\U2642' +emoji[man_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC\U200D\U2642\UFE0F' +emoji[man_running_medium_light_skin_tone_minimally]=$'\U1F3C3\U1F3FC\U200D\U2642' +emoji[man_running_medium_skin_tone]=$'\U1F3C3\U1F3FD\U200D\U2642\UFE0F' +emoji[man_running_medium_skin_tone_minimally]=$'\U1F3C3\U1F3FD\U200D\U2642' +emoji[man_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE\U200D\U2642\UFE0F' +emoji[man_running_medium_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FE\U200D\U2642' +emoji[man_running_dark_skin_tone]=$'\U1F3C3\U1F3FF\U200D\U2642\UFE0F' +emoji[man_running_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FF\U200D\U2642' +emoji[woman_running]=$'\U1F3C3\U200D\U2640\UFE0F' +emoji[woman_running_minimally]=$'\U1F3C3\U200D\U2640' +emoji[running_woman]=$'\U1F3C3\U200D\U2640' +emoji[woman_running_light_skin_tone]=$'\U1F3C3\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_running_light_skin_tone_minimally]=$'\U1F3C3\U1F3FB\U200D\U2640' +emoji[woman_running_medium_light_skin_tone]=$'\U1F3C3\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_running_medium_light_skin_tone_minimally]=$'\U1F3C3\U1F3FC\U200D\U2640' +emoji[woman_running_medium_skin_tone]=$'\U1F3C3\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_running_medium_skin_tone_minimally]=$'\U1F3C3\U1F3FD\U200D\U2640' +emoji[woman_running_medium_dark_skin_tone]=$'\U1F3C3\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_running_medium_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FE\U200D\U2640' +emoji[woman_running_dark_skin_tone]=$'\U1F3C3\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_running_dark_skin_tone_minimally]=$'\U1F3C3\U1F3FF\U200D\U2640' +emoji[woman_dancing]=$'\U1F483' +emoji[dancer]=$'\U1F483' +emoji[woman_dancing_light_skin_tone]=$'\U1F483\U1F3FB' +emoji[woman_dancing_medium_light_skin_tone]=$'\U1F483\U1F3FC' +emoji[woman_dancing_medium_skin_tone]=$'\U1F483\U1F3FD' +emoji[woman_dancing_medium_dark_skin_tone]=$'\U1F483\U1F3FE' +emoji[woman_dancing_dark_skin_tone]=$'\U1F483\U1F3FF' +emoji[woman_dancing_dark_skin_tone_1]=$'\U1F57A' +emoji[man_dancing]=$'\U1F57A' +emoji[man_dancing_light_skin_tone]=$'\U1F57A\U1F3FB' +emoji[man_dancing_medium_light_skin_tone]=$'\U1F57A\U1F3FC' +emoji[man_dancing_medium_skin_tone]=$'\U1F57A\U1F3FD' +emoji[man_dancing_medium_dark_skin_tone]=$'\U1F57A\U1F3FE' +emoji[man_dancing_dark_skin_tone]=$'\U1F57A\U1F3FF' +emoji[man_in_suit_levitating]=$'\U1F574\UFE0F' +emoji[man_in_suit_levitating_unqualified]=$'\U1F574' +emoji[business_suit_levitating]=$'\U1F574' +emoji[man_in_suit_levitating_light_skin_tone]=$'\U1F574\U1F3FB' +emoji[man_in_suit_levitating_medium_light_skin_tone]=$'\U1F574\U1F3FC' +emoji[man_in_suit_levitating_medium_skin_tone]=$'\U1F574\U1F3FD' +emoji[man_in_suit_levitating_medium_dark_skin_tone]=$'\U1F574\U1F3FE' +emoji[man_in_suit_levitating_dark_skin_tone]=$'\U1F574\U1F3FF' +emoji[people_with_bunny_ears]=$'\U1F46F' +emoji[dancers]=$'\U1F46F' +emoji[men_with_bunny_ears]=$'\U1F46F\U200D\U2642\UFE0F' +emoji[men_with_bunny_ears_minimally]=$'\U1F46F\U200D\U2642' +emoji[dancing_men]=$'\U1F46F\U200D\U2642' +emoji[women_with_bunny_ears]=$'\U1F46F\U200D\U2640\UFE0F' +emoji[women_with_bunny_ears_minimally]=$'\U1F46F\U200D\U2640' +emoji[dancing_women]=$'\U1F46F\U200D\U2640' +emoji[person_in_steamy_room]=$'\U1F9D6' +emoji[sauna_person]=$'\U1F9D6' +emoji[person_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB' +emoji[person_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC' +emoji[person_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD' +emoji[person_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE' +emoji[person_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF' +emoji[man_in_steamy_room]=$'\U1F9D6\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_minimally]=$'\U1F9D6\U200D\U2642' +emoji[sauna_man]=$'\U1F9D6\U200D\U2642' +emoji[man_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_light_skin_tone_minimally]=$'\U1F9D6\U1F3FB\U200D\U2642' +emoji[man_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_light_skin_tone_minimally]=$'\U1F9D6\U1F3FC\U200D\U2642' +emoji[man_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_skin_tone_minimally]=$'\U1F9D6\U1F3FD\U200D\U2642' +emoji[man_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_medium_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FE\U200D\U2642' +emoji[man_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF\U200D\U2642\UFE0F' +emoji[man_in_steamy_room_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FF\U200D\U2642' +emoji[woman_in_steamy_room]=$'\U1F9D6\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_minimally]=$'\U1F9D6\U200D\U2640' +emoji[sauna_woman]=$'\U1F9D6\U200D\U2640' +emoji[woman_in_steamy_room_light_skin_tone]=$'\U1F9D6\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_light_skin_tone_minimally]=$'\U1F9D6\U1F3FB\U200D\U2640' +emoji[woman_in_steamy_room_medium_light_skin_tone]=$'\U1F9D6\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_light_skin_tone_minimally]=$'\U1F9D6\U1F3FC\U200D\U2640' +emoji[woman_in_steamy_room_medium_skin_tone]=$'\U1F9D6\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_skin_tone_minimally]=$'\U1F9D6\U1F3FD\U200D\U2640' +emoji[woman_in_steamy_room_medium_dark_skin_tone]=$'\U1F9D6\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_medium_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FE\U200D\U2640' +emoji[woman_in_steamy_room_dark_skin_tone]=$'\U1F9D6\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_in_steamy_room_dark_skin_tone_minimally]=$'\U1F9D6\U1F3FF\U200D\U2640' +emoji[person_climbing]=$'\U1F9D7' +emoji[climbing]=$'\U1F9D7' +emoji[person_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB' +emoji[person_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC' +emoji[person_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD' +emoji[person_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE' +emoji[person_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF' +emoji[man_climbing]=$'\U1F9D7\U200D\U2642\UFE0F' +emoji[man_climbing_minimally]=$'\U1F9D7\U200D\U2642' +emoji[climbing_man]=$'\U1F9D7\U200D\U2642' +emoji[man_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB\U200D\U2642\UFE0F' +emoji[man_climbing_light_skin_tone_minimally]=$'\U1F9D7\U1F3FB\U200D\U2642' +emoji[man_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC\U200D\U2642\UFE0F' +emoji[man_climbing_medium_light_skin_tone_minimally]=$'\U1F9D7\U1F3FC\U200D\U2642' +emoji[man_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD\U200D\U2642\UFE0F' +emoji[man_climbing_medium_skin_tone_minimally]=$'\U1F9D7\U1F3FD\U200D\U2642' +emoji[man_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE\U200D\U2642\UFE0F' +emoji[man_climbing_medium_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FE\U200D\U2642' +emoji[man_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF\U200D\U2642\UFE0F' +emoji[man_climbing_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FF\U200D\U2642' +emoji[woman_climbing]=$'\U1F9D7\U200D\U2640\UFE0F' +emoji[woman_climbing_minimally]=$'\U1F9D7\U200D\U2640' +emoji[climbing_woman]=$'\U1F9D7\U200D\U2640' +emoji[woman_climbing_light_skin_tone]=$'\U1F9D7\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_climbing_light_skin_tone_minimally]=$'\U1F9D7\U1F3FB\U200D\U2640' +emoji[woman_climbing_medium_light_skin_tone]=$'\U1F9D7\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_light_skin_tone_minimally]=$'\U1F9D7\U1F3FC\U200D\U2640' +emoji[woman_climbing_medium_skin_tone]=$'\U1F9D7\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_skin_tone_minimally]=$'\U1F9D7\U1F3FD\U200D\U2640' +emoji[woman_climbing_medium_dark_skin_tone]=$'\U1F9D7\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_climbing_medium_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FE\U200D\U2640' +emoji[woman_climbing_dark_skin_tone]=$'\U1F9D7\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_climbing_dark_skin_tone_minimally]=$'\U1F9D7\U1F3FF\U200D\U2640' +emoji[person_fencing]=$'\U1F93A' +emoji[horse_racing]=$'\U1F3C7' +emoji[horse_racing_light_skin_tone]=$'\U1F3C7\U1F3FB' +emoji[horse_racing_medium_light_skin_tone]=$'\U1F3C7\U1F3FC' +emoji[horse_racing_medium_skin_tone]=$'\U1F3C7\U1F3FD' +emoji[horse_racing_medium_dark_skin_tone]=$'\U1F3C7\U1F3FE' +emoji[horse_racing_dark_skin_tone]=$'\U1F3C7\U1F3FF' +emoji[skier]=$'\U26F7\UFE0F' +emoji[skier_unqualified]=$'\U26F7' +emoji[snowboarder]=$'\U1F3C2' +emoji[snowboarder_light_skin_tone]=$'\U1F3C2\U1F3FB' +emoji[snowboarder_medium_light_skin_tone]=$'\U1F3C2\U1F3FC' +emoji[snowboarder_medium_skin_tone]=$'\U1F3C2\U1F3FD' +emoji[snowboarder_medium_dark_skin_tone]=$'\U1F3C2\U1F3FE' +emoji[snowboarder_dark_skin_tone]=$'\U1F3C2\U1F3FF' +emoji[person_golfing]=$'\U1F3CC\UFE0F' +emoji[person_golfing_unqualified]=$'\U1F3CC' +emoji[golfing]=$'\U1F3CC' +emoji[person_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB' +emoji[person_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC' +emoji[person_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD' +emoji[person_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE' +emoji[person_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF' +emoji[man_golfing]=$'\U1F3CC\UFE0F\U200D\U2642\UFE0F' +emoji[golfing_man]=$'\U1F3CC\UFE0F\U200D\U2642\UFE0F' +emoji[man_golfing_unqualified]=$'\U1F3CC\U200D\U2642\UFE0F' +emoji[man_golfing_unqualified_1]=$'\U1F3CC\UFE0F\U200D\U2642' +emoji[man_golfing_unqualified_2]=$'\U1F3CC\U200D\U2642' +emoji[man_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB\U200D\U2642\UFE0F' +emoji[man_golfing_light_skin_tone_minimally]=$'\U1F3CC\U1F3FB\U200D\U2642' +emoji[man_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC\U200D\U2642\UFE0F' +emoji[man_golfing_medium_light_skin_tone_minimally]=$'\U1F3CC\U1F3FC\U200D\U2642' +emoji[man_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD\U200D\U2642\UFE0F' +emoji[man_golfing_medium_skin_tone_minimally]=$'\U1F3CC\U1F3FD\U200D\U2642' +emoji[man_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE\U200D\U2642\UFE0F' +emoji[man_golfing_medium_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FE\U200D\U2642' +emoji[man_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF\U200D\U2642\UFE0F' +emoji[man_golfing_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FF\U200D\U2642' +emoji[woman_golfing]=$'\U1F3CC\UFE0F\U200D\U2640\UFE0F' +emoji[golfing_woman]=$'\U1F3CC\UFE0F\U200D\U2640\UFE0F' +emoji[woman_golfing_unqualified]=$'\U1F3CC\U200D\U2640\UFE0F' +emoji[woman_golfing_unqualified_1]=$'\U1F3CC\UFE0F\U200D\U2640' +emoji[woman_golfing_unqualified_2]=$'\U1F3CC\U200D\U2640' +emoji[woman_golfing_light_skin_tone]=$'\U1F3CC\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_golfing_light_skin_tone_minimally]=$'\U1F3CC\U1F3FB\U200D\U2640' +emoji[woman_golfing_medium_light_skin_tone]=$'\U1F3CC\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_light_skin_tone_minimally]=$'\U1F3CC\U1F3FC\U200D\U2640' +emoji[woman_golfing_medium_skin_tone]=$'\U1F3CC\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_skin_tone_minimally]=$'\U1F3CC\U1F3FD\U200D\U2640' +emoji[woman_golfing_medium_dark_skin_tone]=$'\U1F3CC\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_golfing_medium_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FE\U200D\U2640' +emoji[woman_golfing_dark_skin_tone]=$'\U1F3CC\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_golfing_dark_skin_tone_minimally]=$'\U1F3CC\U1F3FF\U200D\U2640' +emoji[person_surfing]=$'\U1F3C4' +emoji[surfer]=$'\U1F3C4' +emoji[person_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB' +emoji[person_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC' +emoji[person_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD' +emoji[person_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE' +emoji[person_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF' +emoji[man_surfing]=$'\U1F3C4\U200D\U2642\UFE0F' +emoji[man_surfing_minimally]=$'\U1F3C4\U200D\U2642' +emoji[surfing_man]=$'\U1F3C4\U200D\U2642' +emoji[man_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB\U200D\U2642\UFE0F' +emoji[man_surfing_light_skin_tone_minimally]=$'\U1F3C4\U1F3FB\U200D\U2642' +emoji[man_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC\U200D\U2642\UFE0F' +emoji[man_surfing_medium_light_skin_tone_minimally]=$'\U1F3C4\U1F3FC\U200D\U2642' +emoji[man_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD\U200D\U2642\UFE0F' +emoji[man_surfing_medium_skin_tone_minimally]=$'\U1F3C4\U1F3FD\U200D\U2642' +emoji[man_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE\U200D\U2642\UFE0F' +emoji[man_surfing_medium_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FE\U200D\U2642' +emoji[man_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF\U200D\U2642\UFE0F' +emoji[man_surfing_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FF\U200D\U2642' +emoji[woman_surfing]=$'\U1F3C4\U200D\U2640\UFE0F' +emoji[woman_surfing_minimally]=$'\U1F3C4\U200D\U2640' +emoji[surfing_woman]=$'\U1F3C4\U200D\U2640' +emoji[woman_surfing_light_skin_tone]=$'\U1F3C4\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_surfing_light_skin_tone_minimally]=$'\U1F3C4\U1F3FB\U200D\U2640' +emoji[woman_surfing_medium_light_skin_tone]=$'\U1F3C4\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_light_skin_tone_minimally]=$'\U1F3C4\U1F3FC\U200D\U2640' +emoji[woman_surfing_medium_skin_tone]=$'\U1F3C4\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_skin_tone_minimally]=$'\U1F3C4\U1F3FD\U200D\U2640' +emoji[woman_surfing_medium_dark_skin_tone]=$'\U1F3C4\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_surfing_medium_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FE\U200D\U2640' +emoji[woman_surfing_dark_skin_tone]=$'\U1F3C4\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_surfing_dark_skin_tone_minimally]=$'\U1F3C4\U1F3FF\U200D\U2640' +emoji[person_rowing_boat]=$'\U1F6A3' +emoji[rowboat]=$'\U1F6A3' +emoji[person_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB' +emoji[person_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC' +emoji[person_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD' +emoji[person_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE' +emoji[person_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF' +emoji[man_rowing_boat]=$'\U1F6A3\U200D\U2642\UFE0F' +emoji[man_rowing_boat_minimally]=$'\U1F6A3\U200D\U2642' +emoji[rowing_man]=$'\U1F6A3\U200D\U2642' +emoji[man_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB\U200D\U2642\UFE0F' +emoji[man_rowing_boat_light_skin_tone_minimally]=$'\U1F6A3\U1F3FB\U200D\U2642' +emoji[man_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_light_skin_tone_minimally]=$'\U1F6A3\U1F3FC\U200D\U2642' +emoji[man_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_skin_tone_minimally]=$'\U1F6A3\U1F3FD\U200D\U2642' +emoji[man_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE\U200D\U2642\UFE0F' +emoji[man_rowing_boat_medium_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FE\U200D\U2642' +emoji[man_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF\U200D\U2642\UFE0F' +emoji[man_rowing_boat_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FF\U200D\U2642' +emoji[woman_rowing_boat]=$'\U1F6A3\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_minimally]=$'\U1F6A3\U200D\U2640' +emoji[rowing_woman]=$'\U1F6A3\U200D\U2640' +emoji[woman_rowing_boat_light_skin_tone]=$'\U1F6A3\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_light_skin_tone_minimally]=$'\U1F6A3\U1F3FB\U200D\U2640' +emoji[woman_rowing_boat_medium_light_skin_tone]=$'\U1F6A3\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_light_skin_tone_minimally]=$'\U1F6A3\U1F3FC\U200D\U2640' +emoji[woman_rowing_boat_medium_skin_tone]=$'\U1F6A3\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_skin_tone_minimally]=$'\U1F6A3\U1F3FD\U200D\U2640' +emoji[woman_rowing_boat_medium_dark_skin_tone]=$'\U1F6A3\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_medium_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FE\U200D\U2640' +emoji[woman_rowing_boat_dark_skin_tone]=$'\U1F6A3\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_rowing_boat_dark_skin_tone_minimally]=$'\U1F6A3\U1F3FF\U200D\U2640' +emoji[person_swimming]=$'\U1F3CA' +emoji[swimmer]=$'\U1F3CA' +emoji[person_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB' +emoji[person_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC' +emoji[person_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD' +emoji[person_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE' +emoji[person_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF' +emoji[man_swimming]=$'\U1F3CA\U200D\U2642\UFE0F' +emoji[man_swimming_minimally]=$'\U1F3CA\U200D\U2642' +emoji[swimming_man]=$'\U1F3CA\U200D\U2642' +emoji[man_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB\U200D\U2642\UFE0F' +emoji[man_swimming_light_skin_tone_minimally]=$'\U1F3CA\U1F3FB\U200D\U2642' +emoji[man_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC\U200D\U2642\UFE0F' +emoji[man_swimming_medium_light_skin_tone_minimally]=$'\U1F3CA\U1F3FC\U200D\U2642' +emoji[man_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD\U200D\U2642\UFE0F' +emoji[man_swimming_medium_skin_tone_minimally]=$'\U1F3CA\U1F3FD\U200D\U2642' +emoji[man_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE\U200D\U2642\UFE0F' +emoji[man_swimming_medium_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FE\U200D\U2642' +emoji[man_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF\U200D\U2642\UFE0F' +emoji[man_swimming_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FF\U200D\U2642' +emoji[woman_swimming]=$'\U1F3CA\U200D\U2640\UFE0F' +emoji[woman_swimming_minimally]=$'\U1F3CA\U200D\U2640' +emoji[swimming_woman]=$'\U1F3CA\U200D\U2640' +emoji[woman_swimming_light_skin_tone]=$'\U1F3CA\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_swimming_light_skin_tone_minimally]=$'\U1F3CA\U1F3FB\U200D\U2640' +emoji[woman_swimming_medium_light_skin_tone]=$'\U1F3CA\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_light_skin_tone_minimally]=$'\U1F3CA\U1F3FC\U200D\U2640' +emoji[woman_swimming_medium_skin_tone]=$'\U1F3CA\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_skin_tone_minimally]=$'\U1F3CA\U1F3FD\U200D\U2640' +emoji[woman_swimming_medium_dark_skin_tone]=$'\U1F3CA\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_swimming_medium_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FE\U200D\U2640' +emoji[woman_swimming_dark_skin_tone]=$'\U1F3CA\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_swimming_dark_skin_tone_minimally]=$'\U1F3CA\U1F3FF\U200D\U2640' +emoji[person_bouncing_ball]=$'\U26F9\UFE0F' +emoji[person_bouncing_ball_unqualified]=$'\U26F9' +emoji[bouncing_ball_person]=$'\U26F9' +emoji[person_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB' +emoji[person_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC' +emoji[person_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD' +emoji[person_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE' +emoji[person_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF' +emoji[man_bouncing_ball]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[bouncing_ball_man]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[basketball_man]=$'\U26F9\UFE0F\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_unqualified]=$'\U26F9\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_unqualified_1]=$'\U26F9\UFE0F\U200D\U2642' +emoji[man_bouncing_ball_unqualified_2]=$'\U26F9\U200D\U2642' +emoji[man_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_light_skin_tone_minimally]=$'\U26F9\U1F3FB\U200D\U2642' +emoji[man_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_light_skin_tone_minimally]=$'\U26F9\U1F3FC\U200D\U2642' +emoji[man_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_skin_tone_minimally]=$'\U26F9\U1F3FD\U200D\U2642' +emoji[man_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_medium_dark_skin_tone_minimally]=$'\U26F9\U1F3FE\U200D\U2642' +emoji[man_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF\U200D\U2642\UFE0F' +emoji[man_bouncing_ball_dark_skin_tone_minimally]=$'\U26F9\U1F3FF\U200D\U2642' +emoji[woman_bouncing_ball]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[bouncing_ball_woman]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[basketball_woman]=$'\U26F9\UFE0F\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_unqualified]=$'\U26F9\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_unqualified_1]=$'\U26F9\UFE0F\U200D\U2640' +emoji[woman_bouncing_ball_unqualified_2]=$'\U26F9\U200D\U2640' +emoji[woman_bouncing_ball_light_skin_tone]=$'\U26F9\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_light_skin_tone_minimally]=$'\U26F9\U1F3FB\U200D\U2640' +emoji[woman_bouncing_ball_medium_light_skin_tone]=$'\U26F9\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_light_skin_tone_minimally]=$'\U26F9\U1F3FC\U200D\U2640' +emoji[woman_bouncing_ball_medium_skin_tone]=$'\U26F9\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_skin_tone_minimally]=$'\U26F9\U1F3FD\U200D\U2640' +emoji[woman_bouncing_ball_medium_dark_skin_tone]=$'\U26F9\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_medium_dark_skin_tone_minimally]=$'\U26F9\U1F3FE\U200D\U2640' +emoji[woman_bouncing_ball_dark_skin_tone]=$'\U26F9\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_bouncing_ball_dark_skin_tone_minimally]=$'\U26F9\U1F3FF\U200D\U2640' +emoji[person_lifting_weights]=$'\U1F3CB\UFE0F' +emoji[person_lifting_weights_unqualified]=$'\U1F3CB' +emoji[weight_lifting]=$'\U1F3CB' +emoji[person_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB' +emoji[person_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC' +emoji[person_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD' +emoji[person_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE' +emoji[person_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF' +emoji[man_lifting_weights]=$'\U1F3CB\UFE0F\U200D\U2642\UFE0F' +emoji[weight_lifting_man]=$'\U1F3CB\UFE0F\U200D\U2642\UFE0F' +emoji[man_lifting_weights_unqualified]=$'\U1F3CB\U200D\U2642\UFE0F' +emoji[man_lifting_weights_unqualified_1]=$'\U1F3CB\UFE0F\U200D\U2642' +emoji[man_lifting_weights_unqualified_2]=$'\U1F3CB\U200D\U2642' +emoji[man_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB\U200D\U2642\UFE0F' +emoji[man_lifting_weights_light_skin_tone_minimally]=$'\U1F3CB\U1F3FB\U200D\U2642' +emoji[man_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_light_skin_tone_minimally]=$'\U1F3CB\U1F3FC\U200D\U2642' +emoji[man_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_skin_tone_minimally]=$'\U1F3CB\U1F3FD\U200D\U2642' +emoji[man_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE\U200D\U2642\UFE0F' +emoji[man_lifting_weights_medium_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FE\U200D\U2642' +emoji[man_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF\U200D\U2642\UFE0F' +emoji[man_lifting_weights_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FF\U200D\U2642' +emoji[woman_lifting_weights]=$'\U1F3CB\UFE0F\U200D\U2640\UFE0F' +emoji[weight_lifting_woman]=$'\U1F3CB\UFE0F\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_unqualified]=$'\U1F3CB\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_unqualified_1]=$'\U1F3CB\UFE0F\U200D\U2640' +emoji[woman_lifting_weights_unqualified_2]=$'\U1F3CB\U200D\U2640' +emoji[woman_lifting_weights_light_skin_tone]=$'\U1F3CB\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_light_skin_tone_minimally]=$'\U1F3CB\U1F3FB\U200D\U2640' +emoji[woman_lifting_weights_medium_light_skin_tone]=$'\U1F3CB\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_light_skin_tone_minimally]=$'\U1F3CB\U1F3FC\U200D\U2640' +emoji[woman_lifting_weights_medium_skin_tone]=$'\U1F3CB\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_skin_tone_minimally]=$'\U1F3CB\U1F3FD\U200D\U2640' +emoji[woman_lifting_weights_medium_dark_skin_tone]=$'\U1F3CB\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_medium_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FE\U200D\U2640' +emoji[woman_lifting_weights_dark_skin_tone]=$'\U1F3CB\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_lifting_weights_dark_skin_tone_minimally]=$'\U1F3CB\U1F3FF\U200D\U2640' +emoji[person_biking]=$'\U1F6B4' +emoji[bicyclist]=$'\U1F6B4' +emoji[person_biking_light_skin_tone]=$'\U1F6B4\U1F3FB' +emoji[person_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC' +emoji[person_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD' +emoji[person_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE' +emoji[person_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF' +emoji[man_biking]=$'\U1F6B4\U200D\U2642\UFE0F' +emoji[man_biking_minimally]=$'\U1F6B4\U200D\U2642' +emoji[biking_man]=$'\U1F6B4\U200D\U2642' +emoji[man_biking_light_skin_tone]=$'\U1F6B4\U1F3FB\U200D\U2642\UFE0F' +emoji[man_biking_light_skin_tone_minimally]=$'\U1F6B4\U1F3FB\U200D\U2642' +emoji[man_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC\U200D\U2642\UFE0F' +emoji[man_biking_medium_light_skin_tone_minimally]=$'\U1F6B4\U1F3FC\U200D\U2642' +emoji[man_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD\U200D\U2642\UFE0F' +emoji[man_biking_medium_skin_tone_minimally]=$'\U1F6B4\U1F3FD\U200D\U2642' +emoji[man_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE\U200D\U2642\UFE0F' +emoji[man_biking_medium_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FE\U200D\U2642' +emoji[man_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF\U200D\U2642\UFE0F' +emoji[man_biking_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FF\U200D\U2642' +emoji[woman_biking]=$'\U1F6B4\U200D\U2640\UFE0F' +emoji[woman_biking_minimally]=$'\U1F6B4\U200D\U2640' +emoji[biking_woman]=$'\U1F6B4\U200D\U2640' +emoji[woman_biking_light_skin_tone]=$'\U1F6B4\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_biking_light_skin_tone_minimally]=$'\U1F6B4\U1F3FB\U200D\U2640' +emoji[woman_biking_medium_light_skin_tone]=$'\U1F6B4\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_biking_medium_light_skin_tone_minimally]=$'\U1F6B4\U1F3FC\U200D\U2640' +emoji[woman_biking_medium_skin_tone]=$'\U1F6B4\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_biking_medium_skin_tone_minimally]=$'\U1F6B4\U1F3FD\U200D\U2640' +emoji[woman_biking_medium_dark_skin_tone]=$'\U1F6B4\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_biking_medium_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FE\U200D\U2640' +emoji[woman_biking_dark_skin_tone]=$'\U1F6B4\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_biking_dark_skin_tone_minimally]=$'\U1F6B4\U1F3FF\U200D\U2640' +emoji[person_mountain_biking]=$'\U1F6B5' +emoji[mountain_bicyclist]=$'\U1F6B5' +emoji[person_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB' +emoji[person_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC' +emoji[person_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD' +emoji[person_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE' +emoji[person_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF' +emoji[man_mountain_biking]=$'\U1F6B5\U200D\U2642\UFE0F' +emoji[man_mountain_biking_minimally]=$'\U1F6B5\U200D\U2642' +emoji[mountain_biking_man]=$'\U1F6B5\U200D\U2642' +emoji[man_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB\U200D\U2642\UFE0F' +emoji[man_mountain_biking_light_skin_tone_minimally]=$'\U1F6B5\U1F3FB\U200D\U2642' +emoji[man_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_light_skin_tone_minimally]=$'\U1F6B5\U1F3FC\U200D\U2642' +emoji[man_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_skin_tone_minimally]=$'\U1F6B5\U1F3FD\U200D\U2642' +emoji[man_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE\U200D\U2642\UFE0F' +emoji[man_mountain_biking_medium_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FE\U200D\U2642' +emoji[man_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF\U200D\U2642\UFE0F' +emoji[man_mountain_biking_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FF\U200D\U2642' +emoji[woman_mountain_biking]=$'\U1F6B5\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_minimally]=$'\U1F6B5\U200D\U2640' +emoji[mountain_biking_woman]=$'\U1F6B5\U200D\U2640' +emoji[woman_mountain_biking_light_skin_tone]=$'\U1F6B5\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_light_skin_tone_minimally]=$'\U1F6B5\U1F3FB\U200D\U2640' +emoji[woman_mountain_biking_medium_light_skin_tone]=$'\U1F6B5\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_light_skin_tone_minimally]=$'\U1F6B5\U1F3FC\U200D\U2640' +emoji[woman_mountain_biking_medium_skin_tone]=$'\U1F6B5\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_skin_tone_minimally]=$'\U1F6B5\U1F3FD\U200D\U2640' +emoji[woman_mountain_biking_medium_dark_skin_tone]=$'\U1F6B5\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_medium_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FE\U200D\U2640' +emoji[woman_mountain_biking_dark_skin_tone]=$'\U1F6B5\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_mountain_biking_dark_skin_tone_minimally]=$'\U1F6B5\U1F3FF\U200D\U2640' +emoji[person_cartwheeling]=$'\U1F938' +emoji[cartwheeling]=$'\U1F938' +emoji[person_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB' +emoji[person_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC' +emoji[person_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD' +emoji[person_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE' +emoji[person_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF' +emoji[man_cartwheeling]=$'\U1F938\U200D\U2642\UFE0F' +emoji[man_cartwheeling_minimally]=$'\U1F938\U200D\U2642' +emoji[man_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB\U200D\U2642\UFE0F' +emoji[man_cartwheeling_light_skin_tone_minimally]=$'\U1F938\U1F3FB\U200D\U2642' +emoji[man_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_light_skin_tone_minimally]=$'\U1F938\U1F3FC\U200D\U2642' +emoji[man_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_skin_tone_minimally]=$'\U1F938\U1F3FD\U200D\U2642' +emoji[man_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE\U200D\U2642\UFE0F' +emoji[man_cartwheeling_medium_dark_skin_tone_minimally]=$'\U1F938\U1F3FE\U200D\U2642' +emoji[man_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF\U200D\U2642\UFE0F' +emoji[man_cartwheeling_dark_skin_tone_minimally]=$'\U1F938\U1F3FF\U200D\U2642' +emoji[woman_cartwheeling]=$'\U1F938\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_minimally]=$'\U1F938\U200D\U2640' +emoji[woman_cartwheeling_light_skin_tone]=$'\U1F938\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_light_skin_tone_minimally]=$'\U1F938\U1F3FB\U200D\U2640' +emoji[woman_cartwheeling_medium_light_skin_tone]=$'\U1F938\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_light_skin_tone_minimally]=$'\U1F938\U1F3FC\U200D\U2640' +emoji[woman_cartwheeling_medium_skin_tone]=$'\U1F938\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_skin_tone_minimally]=$'\U1F938\U1F3FD\U200D\U2640' +emoji[woman_cartwheeling_medium_dark_skin_tone]=$'\U1F938\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_medium_dark_skin_tone_minimally]=$'\U1F938\U1F3FE\U200D\U2640' +emoji[woman_cartwheeling_dark_skin_tone]=$'\U1F938\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_cartwheeling_dark_skin_tone_minimally]=$'\U1F938\U1F3FF\U200D\U2640' +emoji[people_wrestling]=$'\U1F93C' +emoji[wrestling]=$'\U1F93C' +emoji[men_wrestling]=$'\U1F93C\U200D\U2642\UFE0F' +emoji[men_wrestling_minimally]=$'\U1F93C\U200D\U2642' +emoji[women_wrestling]=$'\U1F93C\U200D\U2640\UFE0F' +emoji[women_wrestling_minimally]=$'\U1F93C\U200D\U2640' +emoji[person_playing_water_polo]=$'\U1F93D' +emoji[water_polo]=$'\U1F93D' +emoji[person_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB' +emoji[person_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC' +emoji[person_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD' +emoji[person_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE' +emoji[person_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF' +emoji[man_playing_water_polo]=$'\U1F93D\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_minimally]=$'\U1F93D\U200D\U2642' +emoji[man_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_light_skin_tone_minimally]=$'\U1F93D\U1F3FB\U200D\U2642' +emoji[man_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_light_skin_tone_minimally]=$'\U1F93D\U1F3FC\U200D\U2642' +emoji[man_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_skin_tone_minimally]=$'\U1F93D\U1F3FD\U200D\U2642' +emoji[man_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_medium_dark_skin_tone_minimally]=$'\U1F93D\U1F3FE\U200D\U2642' +emoji[man_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF\U200D\U2642\UFE0F' +emoji[man_playing_water_polo_dark_skin_tone_minimally]=$'\U1F93D\U1F3FF\U200D\U2642' +emoji[woman_playing_water_polo]=$'\U1F93D\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_minimally]=$'\U1F93D\U200D\U2640' +emoji[woman_playing_water_polo_light_skin_tone]=$'\U1F93D\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_light_skin_tone_minimally]=$'\U1F93D\U1F3FB\U200D\U2640' +emoji[woman_playing_water_polo_medium_light_skin_tone]=$'\U1F93D\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_light_skin_tone_minimally]=$'\U1F93D\U1F3FC\U200D\U2640' +emoji[woman_playing_water_polo_medium_skin_tone]=$'\U1F93D\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_skin_tone_minimally]=$'\U1F93D\U1F3FD\U200D\U2640' +emoji[woman_playing_water_polo_medium_dark_skin_tone]=$'\U1F93D\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_medium_dark_skin_tone_minimally]=$'\U1F93D\U1F3FE\U200D\U2640' +emoji[woman_playing_water_polo_dark_skin_tone]=$'\U1F93D\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_playing_water_polo_dark_skin_tone_minimally]=$'\U1F93D\U1F3FF\U200D\U2640' +emoji[person_playing_handball]=$'\U1F93E' +emoji[handball_person]=$'\U1F93E' +emoji[person_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB' +emoji[person_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC' +emoji[person_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD' +emoji[person_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE' +emoji[person_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF' +emoji[man_playing_handball]=$'\U1F93E\U200D\U2642\UFE0F' +emoji[man_playing_handball_minimally]=$'\U1F93E\U200D\U2642' +emoji[man_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB\U200D\U2642\UFE0F' +emoji[man_playing_handball_light_skin_tone_minimally]=$'\U1F93E\U1F3FB\U200D\U2642' +emoji[man_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_light_skin_tone_minimally]=$'\U1F93E\U1F3FC\U200D\U2642' +emoji[man_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_skin_tone_minimally]=$'\U1F93E\U1F3FD\U200D\U2642' +emoji[man_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE\U200D\U2642\UFE0F' +emoji[man_playing_handball_medium_dark_skin_tone_minimally]=$'\U1F93E\U1F3FE\U200D\U2642' +emoji[man_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF\U200D\U2642\UFE0F' +emoji[man_playing_handball_dark_skin_tone_minimally]=$'\U1F93E\U1F3FF\U200D\U2642' +emoji[woman_playing_handball]=$'\U1F93E\U200D\U2640\UFE0F' +emoji[woman_playing_handball_minimally]=$'\U1F93E\U200D\U2640' +emoji[woman_playing_handball_light_skin_tone]=$'\U1F93E\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_playing_handball_light_skin_tone_minimally]=$'\U1F93E\U1F3FB\U200D\U2640' +emoji[woman_playing_handball_medium_light_skin_tone]=$'\U1F93E\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_light_skin_tone_minimally]=$'\U1F93E\U1F3FC\U200D\U2640' +emoji[woman_playing_handball_medium_skin_tone]=$'\U1F93E\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_skin_tone_minimally]=$'\U1F93E\U1F3FD\U200D\U2640' +emoji[woman_playing_handball_medium_dark_skin_tone]=$'\U1F93E\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_playing_handball_medium_dark_skin_tone_minimally]=$'\U1F93E\U1F3FE\U200D\U2640' +emoji[woman_playing_handball_dark_skin_tone]=$'\U1F93E\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_playing_handball_dark_skin_tone_minimally]=$'\U1F93E\U1F3FF\U200D\U2640' +emoji[person_juggling]=$'\U1F939' +emoji[juggling_person]=$'\U1F939' +emoji[person_juggling_light_skin_tone]=$'\U1F939\U1F3FB' +emoji[person_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC' +emoji[person_juggling_medium_skin_tone]=$'\U1F939\U1F3FD' +emoji[person_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE' +emoji[person_juggling_dark_skin_tone]=$'\U1F939\U1F3FF' +emoji[man_juggling]=$'\U1F939\U200D\U2642\UFE0F' +emoji[man_juggling_minimally]=$'\U1F939\U200D\U2642' +emoji[man_juggling_light_skin_tone]=$'\U1F939\U1F3FB\U200D\U2642\UFE0F' +emoji[man_juggling_light_skin_tone_minimally]=$'\U1F939\U1F3FB\U200D\U2642' +emoji[man_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC\U200D\U2642\UFE0F' +emoji[man_juggling_medium_light_skin_tone_minimally]=$'\U1F939\U1F3FC\U200D\U2642' +emoji[man_juggling_medium_skin_tone]=$'\U1F939\U1F3FD\U200D\U2642\UFE0F' +emoji[man_juggling_medium_skin_tone_minimally]=$'\U1F939\U1F3FD\U200D\U2642' +emoji[man_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE\U200D\U2642\UFE0F' +emoji[man_juggling_medium_dark_skin_tone_minimally]=$'\U1F939\U1F3FE\U200D\U2642' +emoji[man_juggling_dark_skin_tone]=$'\U1F939\U1F3FF\U200D\U2642\UFE0F' +emoji[man_juggling_dark_skin_tone_minimally]=$'\U1F939\U1F3FF\U200D\U2642' +emoji[woman_juggling]=$'\U1F939\U200D\U2640\UFE0F' +emoji[woman_juggling_minimally]=$'\U1F939\U200D\U2640' +emoji[woman_juggling_light_skin_tone]=$'\U1F939\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_juggling_light_skin_tone_minimally]=$'\U1F939\U1F3FB\U200D\U2640' +emoji[woman_juggling_medium_light_skin_tone]=$'\U1F939\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_light_skin_tone_minimally]=$'\U1F939\U1F3FC\U200D\U2640' +emoji[woman_juggling_medium_skin_tone]=$'\U1F939\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_skin_tone_minimally]=$'\U1F939\U1F3FD\U200D\U2640' +emoji[woman_juggling_medium_dark_skin_tone]=$'\U1F939\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_juggling_medium_dark_skin_tone_minimally]=$'\U1F939\U1F3FE\U200D\U2640' +emoji[woman_juggling_dark_skin_tone]=$'\U1F939\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_juggling_dark_skin_tone_minimally]=$'\U1F939\U1F3FF\U200D\U2640' +emoji[person_in_lotus_position]=$'\U1F9D8' +emoji[lotus_position]=$'\U1F9D8' +emoji[person_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB' +emoji[person_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC' +emoji[person_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD' +emoji[person_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE' +emoji[person_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF' +emoji[man_in_lotus_position]=$'\U1F9D8\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_minimally]=$'\U1F9D8\U200D\U2642' +emoji[lotus_position_man]=$'\U1F9D8\U200D\U2642' +emoji[man_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_light_skin_tone_minimally]=$'\U1F9D8\U1F3FB\U200D\U2642' +emoji[man_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_light_skin_tone_minimally]=$'\U1F9D8\U1F3FC\U200D\U2642' +emoji[man_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_skin_tone_minimally]=$'\U1F9D8\U1F3FD\U200D\U2642' +emoji[man_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_medium_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FE\U200D\U2642' +emoji[man_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF\U200D\U2642\UFE0F' +emoji[man_in_lotus_position_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FF\U200D\U2642' +emoji[woman_in_lotus_position]=$'\U1F9D8\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_minimally]=$'\U1F9D8\U200D\U2640' +emoji[lotus_position_woman]=$'\U1F9D8\U200D\U2640' +emoji[woman_in_lotus_position_light_skin_tone]=$'\U1F9D8\U1F3FB\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_light_skin_tone_minimally]=$'\U1F9D8\U1F3FB\U200D\U2640' +emoji[woman_in_lotus_position_medium_light_skin_tone]=$'\U1F9D8\U1F3FC\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_light_skin_tone_minimally]=$'\U1F9D8\U1F3FC\U200D\U2640' +emoji[woman_in_lotus_position_medium_skin_tone]=$'\U1F9D8\U1F3FD\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_skin_tone_minimally]=$'\U1F9D8\U1F3FD\U200D\U2640' +emoji[woman_in_lotus_position_medium_dark_skin_tone]=$'\U1F9D8\U1F3FE\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_medium_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FE\U200D\U2640' +emoji[woman_in_lotus_position_dark_skin_tone]=$'\U1F9D8\U1F3FF\U200D\U2640\UFE0F' +emoji[woman_in_lotus_position_dark_skin_tone_minimally]=$'\U1F9D8\U1F3FF\U200D\U2640' +emoji[person_taking_bath]=$'\U1F6C0' +emoji[bath]=$'\U1F6C0' +emoji[person_taking_bath_light_skin_tone]=$'\U1F6C0\U1F3FB' +emoji[person_taking_bath_medium_light_skin_tone]=$'\U1F6C0\U1F3FC' +emoji[person_taking_bath_medium_skin_tone]=$'\U1F6C0\U1F3FD' +emoji[person_taking_bath_medium_dark_skin_tone]=$'\U1F6C0\U1F3FE' +emoji[person_taking_bath_dark_skin_tone]=$'\U1F6C0\U1F3FF' +emoji[person_in_bed]=$'\U1F6CC' +emoji[sleeping_bed]=$'\U1F6CC' +emoji[person_in_bed_light_skin_tone]=$'\U1F6CC\U1F3FB' +emoji[person_in_bed_medium_light_skin_tone]=$'\U1F6CC\U1F3FC' +emoji[person_in_bed_medium_skin_tone]=$'\U1F6CC\U1F3FD' +emoji[person_in_bed_medium_dark_skin_tone]=$'\U1F6CC\U1F3FE' +emoji[person_in_bed_dark_skin_tone]=$'\U1F6CC\U1F3FF' +emoji[people_holding_hands]=$'\U1F9D1\U200D\U1F91D\U200D\U1F9D1' +emoji[people_holding_hands_light_skin_tone]=$'\U1F9D1\U1F3FB\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FC\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F9D1\U1F3FC\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F9D1\U1F3FD\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F9D1\U1F3FE\U200D\U1F91D\U200D\U1F9D1\U1F3FE' +emoji[people_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FB' +emoji[people_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FC' +emoji[people_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FD' +emoji[people_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FE' +emoji[people_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F9D1\U1F3FF\U200D\U1F91D\U200D\U1F9D1\U1F3FF' +emoji[women_holding_hands]=$'\U1F46D' +emoji[two_women_holding_hands]=$'\U1F46D' +emoji[women_holding_hands_light_skin_tone]=$'\U1F46D\U1F3FB' +emoji[women_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46D\U1F3FC' +emoji[women_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46D\U1F3FD' +emoji[women_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F469\U1F3FD' +emoji[women_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46D\U1F3FE' +emoji[women_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FB' +emoji[women_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FC' +emoji[women_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FD' +emoji[women_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F469\U1F3FE' +emoji[women_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46D\U1F3FF' +emoji[woman_and_man_holding_hands]=$'\U1F46B' +emoji[couple]=$'\U1F46B' +emoji[woman_and_man_holding_hands_light_skin_tone]=$'\U1F46B\U1F3FB' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_light_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FB\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46B\U1F3FC' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46B\U1F3FD' +emoji[woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46B\U1F3FE' +emoji[woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone]=$'\U1F469\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FF' +emoji[woman_and_man_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F469\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46B\U1F3FF' +emoji[men_holding_hands]=$'\U1F46C' +emoji[two_men_holding_hands]=$'\U1F46C' +emoji[men_holding_hands_light_skin_tone]=$'\U1F46C\U1F3FB' +emoji[men_holding_hands_medium_light_skin_tone_light_skin_tone]=$'\U1F468\U1F3FC\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_light_skin_tone_light_skin_tone_1]=$'\U1F46C\U1F3FC' +emoji[men_holding_hands_medium_skin_tone_light_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FD\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_medium_skin_tone_medium_light_skin_tone_1]=$'\U1F46C\U1F3FD' +emoji[men_holding_hands_medium_dark_skin_tone_light_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_medium_dark_skin_tone_medium_skin_tone]=$'\U1F468\U1F3FE\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[men_holding_hands_medium_dark_skin_tone_medium_skin_tone_1]=$'\U1F46C\U1F3FE' +emoji[men_holding_hands_dark_skin_tone_light_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FB' +emoji[men_holding_hands_dark_skin_tone_medium_light_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FC' +emoji[men_holding_hands_dark_skin_tone_medium_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FD' +emoji[men_holding_hands_dark_skin_tone_medium_dark_skin_tone]=$'\U1F468\U1F3FF\U200D\U1F91D\U200D\U1F468\U1F3FE' +emoji[men_holding_hands_dark_skin_tone_medium_dark_skin_tone_1]=$'\U1F46C\U1F3FF' +emoji[kiss]=$'\U1F48F' +emoji[couplekiss]=$'\U1F48F' +emoji[kiss_woman_man]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[couplekiss_man_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[kiss_woman_man_minimally]=$'\U1F469\U200D\U2764\U200D\U1F48B\U200D\U1F468' +emoji[kiss_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[couplekiss_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F468' +emoji[kiss_man_man_minimally]=$'\U1F468\U200D\U2764\U200D\U1F48B\U200D\U1F468' +emoji[kiss_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F469' +emoji[couplekiss_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F48B\U200D\U1F469' +emoji[kiss_woman_woman_minimally]=$'\U1F469\U200D\U2764\U200D\U1F48B\U200D\U1F469' +emoji[couple_with_heart]=$'\U1F491' +emoji[couple_with_heart_woman_man]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F468' +emoji[couple_with_heart_woman_man_minimally]=$'\U1F469\U200D\U2764\U200D\U1F468' +emoji[couple_with_heart_man_man]=$'\U1F468\U200D\U2764\UFE0F\U200D\U1F468' +emoji[couple_with_heart_man_man_minimally]=$'\U1F468\U200D\U2764\U200D\U1F468' +emoji[couple_with_heart_woman_woman]=$'\U1F469\U200D\U2764\UFE0F\U200D\U1F469' +emoji[couple_with_heart_woman_woman_minimally]=$'\U1F469\U200D\U2764\U200D\U1F469' +emoji[family]=$'\U1F46A' +emoji[family_man_woman_boy]=$'\U1F468\U200D\U1F469\U200D\U1F466' +emoji[family_man_woman_girl]=$'\U1F468\U200D\U1F469\U200D\U1F467' +emoji[family_man_woman_girl_boy]=$'\U1F468\U200D\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_man_woman_boy_boy]=$'\U1F468\U200D\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_man_woman_girl_girl]=$'\U1F468\U200D\U1F469\U200D\U1F467\U200D\U1F467' +emoji[family_man_man_boy]=$'\U1F468\U200D\U1F468\U200D\U1F466' +emoji[family_man_man_girl]=$'\U1F468\U200D\U1F468\U200D\U1F467' +emoji[family_man_man_girl_boy]=$'\U1F468\U200D\U1F468\U200D\U1F467\U200D\U1F466' +emoji[family_man_man_boy_boy]=$'\U1F468\U200D\U1F468\U200D\U1F466\U200D\U1F466' +emoji[family_man_man_girl_girl]=$'\U1F468\U200D\U1F468\U200D\U1F467\U200D\U1F467' +emoji[family_woman_woman_boy]=$'\U1F469\U200D\U1F469\U200D\U1F466' +emoji[family_woman_woman_girl]=$'\U1F469\U200D\U1F469\U200D\U1F467' +emoji[family_woman_woman_girl_boy]=$'\U1F469\U200D\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_woman_woman_boy_boy]=$'\U1F469\U200D\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_woman_woman_girl_girl]=$'\U1F469\U200D\U1F469\U200D\U1F467\U200D\U1F467' +emoji[family_man_boy]=$'\U1F468\U200D\U1F466' +emoji[family_man_boy_boy]=$'\U1F468\U200D\U1F466\U200D\U1F466' +emoji[family_man_girl]=$'\U1F468\U200D\U1F467' +emoji[family_man_girl_boy]=$'\U1F468\U200D\U1F467\U200D\U1F466' +emoji[family_man_girl_girl]=$'\U1F468\U200D\U1F467\U200D\U1F467' +emoji[family_woman_boy]=$'\U1F469\U200D\U1F466' +emoji[family_woman_boy_boy]=$'\U1F469\U200D\U1F466\U200D\U1F466' +emoji[family_woman_girl]=$'\U1F469\U200D\U1F467' +emoji[family_woman_girl_boy]=$'\U1F469\U200D\U1F467\U200D\U1F466' +emoji[family_woman_girl_girl]=$'\U1F469\U200D\U1F467\U200D\U1F467' +emoji[speaking_head]=$'\U1F5E3\UFE0F' +emoji[speaking_head_unqualified]=$'\U1F5E3' +emoji[bust_in_silhouette]=$'\U1F464' +emoji[busts_in_silhouette]=$'\U1F465' +emoji[footprints]=$'\U1F463' +emoji_mod[light_skin_tone]=$'\U1F3FB' +emoji_mod[medium_light_skin_tone]=$'\U1F3FC' +emoji_mod[medium_skin_tone]=$'\U1F3FD' +emoji_mod[medium_dark_skin_tone]=$'\U1F3FE' +emoji_mod[medium_dark_skin_tone_1]=$'\U1F3FF' +emoji_mod[red_hair]=$'\U1F9B0' +emoji_mod[curly_hair]=$'\U1F9B1' +emoji_mod[white_hair]=$'\U1F9B3' +emoji_mod[bald]=$'\U1F9B2' +emoji[monkey_face]=$'\U1F435' +emoji[monkey_face_1]=$'\U1F412' +emoji[monkey]=$'\U1F412' +emoji[gorilla]=$'\U1F98D' +emoji[orangutan]=$'\U1F9A7' +emoji[dog_face]=$'\U1F436' +emoji[dog]=$'\U1F436' +emoji[dog_face_1]=$'\U1F415' +emoji[dog2]=$'\U1F415' +emoji[guide_dog]=$'\U1F9AE' +emoji[service_dog]=$'\U1F415\U200D\U1F9BA' +emoji[poodle]=$'\U1F429' +emoji[wolf]=$'\U1F43A' +emoji[fox]=$'\U1F98A' +emoji[fox_face]=$'\U1F98A' +emoji[raccoon]=$'\U1F99D' +emoji[cat_face]=$'\U1F431' +emoji[cat]=$'\U1F431' +emoji[cat_face_1]=$'\U1F408' +emoji[cat2]=$'\U1F408' +emoji[lion]=$'\U1F981' +emoji[tiger_face]=$'\U1F42F' +emoji[tiger]=$'\U1F42F' +emoji[tiger_face_1]=$'\U1F405' +emoji[tiger2]=$'\U1F405' +emoji[leopard]=$'\U1F406' +emoji[horse_face]=$'\U1F434' +emoji[horse]=$'\U1F434' +emoji[horse_face_1]=$'\U1F40E' +emoji[racehorse]=$'\U1F40E' +emoji[unicorn]=$'\U1F984' +emoji[zebra]=$'\U1F993' +emoji[deer]=$'\U1F98C' +emoji[cow_face]=$'\U1F42E' +emoji[ox]=$'\U1F402' +emoji[water_buffalo]=$'\U1F403' +emoji[cow]=$'\U1F404' +emoji[cow2]=$'\U1F404' +emoji[pig_face]=$'\U1F437' +emoji[pig]=$'\U1F437' +emoji[pig_face_1]=$'\U1F416' +emoji[pig2]=$'\U1F416' +emoji[boar]=$'\U1F417' +emoji[pig_nose]=$'\U1F43D' +emoji[ram]=$'\U1F40F' +emoji[ewe]=$'\U1F411' +emoji[sheep]=$'\U1F411' +emoji[goat]=$'\U1F410' +emoji[camel]=$'\U1F42A' +emoji[dromedary_camel]=$'\U1F42A' +emoji[two_hump_camel]=$'\U1F42B' +emoji[llama]=$'\U1F999' +emoji[giraffe]=$'\U1F992' +emoji[elephant]=$'\U1F418' +emoji[rhinoceros]=$'\U1F98F' +emoji[hippopotamus]=$'\U1F99B' +emoji[mouse_face]=$'\U1F42D' +emoji[mouse]=$'\U1F42D' +emoji[mouse_face_1]=$'\U1F401' +emoji[mouse2]=$'\U1F401' +emoji[rat]=$'\U1F400' +emoji[hamster]=$'\U1F439' +emoji[rabbit_face]=$'\U1F430' +emoji[rabbit]=$'\U1F430' +emoji[rabbit_face_1]=$'\U1F407' +emoji[rabbit2]=$'\U1F407' +emoji[chipmunk]=$'\U1F43F\UFE0F' +emoji[chipmunk_unqualified]=$'\U1F43F' +emoji[hedgehog]=$'\U1F994' +emoji[bat]=$'\U1F987' +emoji[bear]=$'\U1F43B' +emoji[koala]=$'\U1F428' +emoji[panda]=$'\U1F43C' +emoji[panda_face]=$'\U1F43C' +emoji[sloth]=$'\U1F9A5' +emoji[otter]=$'\U1F9A6' +emoji[skunk]=$'\U1F9A8' +emoji[kangaroo]=$'\U1F998' +emoji[badger]=$'\U1F9A1' +emoji[paw_prints]=$'\U1F43E' +emoji[feet]=$'\U1F43E' +emoji[turkey]=$'\U1F983' +emoji[chicken]=$'\U1F414' +emoji[rooster]=$'\U1F413' +emoji[hatching_chick]=$'\U1F423' +emoji[baby_chick]=$'\U1F424' +emoji[front_facing_baby_chick]=$'\U1F425' +emoji[hatched_chick]=$'\U1F425' +emoji[bird]=$'\U1F426' +emoji[penguin]=$'\U1F427' +emoji[dove]=$'\U1F54A\UFE0F' +emoji[dove_unqualified]=$'\U1F54A' +emoji[eagle]=$'\U1F985' +emoji[duck]=$'\U1F986' +emoji[swan]=$'\U1F9A2' +emoji[owl]=$'\U1F989' +emoji[flamingo]=$'\U1F9A9' +emoji[peacock]=$'\U1F99A' +emoji[parrot]=$'\U1F99C' +emoji[frog]=$'\U1F438' +emoji[crocodile]=$'\U1F40A' +emoji[turtle]=$'\U1F422' +emoji[lizard]=$'\U1F98E' +emoji[snake]=$'\U1F40D' +emoji[dragon_face]=$'\U1F432' +emoji[dragon_face_1]=$'\U1F409' +emoji[dragon]=$'\U1F409' +emoji[sauropod]=$'\U1F995' +emoji[T_Rex]=$'\U1F996' +emoji[t-rex]=$'\U1F996' +emoji[spouting_whale]=$'\U1F433' +emoji[whale]=$'\U1F433' +emoji[spouting_whale_1]=$'\U1F40B' +emoji[whale2]=$'\U1F40B' +emoji[dolphin]=$'\U1F42C' +emoji[flipper]=$'\U1F42C' +emoji[fish]=$'\U1F41F' +emoji[tropical_fish]=$'\U1F420' +emoji[blowfish]=$'\U1F421' +emoji[shark]=$'\U1F988' +emoji[octopus]=$'\U1F419' +emoji[spiral_shell]=$'\U1F41A' +emoji[shell]=$'\U1F41A' +emoji[snail]=$'\U1F40C' +emoji[butterfly]=$'\U1F98B' +emoji[bug]=$'\U1F41B' +emoji[ant]=$'\U1F41C' +emoji[honeybee]=$'\U1F41D' +emoji[bee]=$'\U1F41D' +emoji[lady_beetle]=$'\U1F41E' +emoji[beetle]=$'\U1F41E' +emoji[cricket]=$'\U1F997' +emoji[spider]=$'\U1F577\UFE0F' +emoji[spider_unqualified]=$'\U1F577' +emoji[spider_web]=$'\U1F578\UFE0F' +emoji[spider_web_unqualified]=$'\U1F578' +emoji[scorpion]=$'\U1F982' +emoji[mosquito]=$'\U1F99F' +emoji[microbe]=$'\U1F9A0' +emoji[bouquet]=$'\U1F490' +emoji[cherry_blossom]=$'\U1F338' +emoji[white_flower]=$'\U1F4AE' +emoji[rosette]=$'\U1F3F5\UFE0F' +emoji[rosette_unqualified]=$'\U1F3F5' +emoji[rosette_unqualified_1]=$'\U1F339' +emoji[rose]=$'\U1F339' +emoji[wilted_flower]=$'\U1F940' +emoji[hibiscus]=$'\U1F33A' +emoji[sunflower]=$'\U1F33B' +emoji[blossom]=$'\U1F33C' +emoji[tulip]=$'\U1F337' emoji[seedling]=$'\U1F331' emoji[evergreen_tree]=$'\U1F332' emoji[deciduous_tree]=$'\U1F333' emoji[palm_tree]=$'\U1F334' emoji[cactus]=$'\U1F335' -emoji[hot_pepper]=$'\U1F336' -emoji[tulip]=$'\U1F337' -emoji[cherry_blossom]=$'\U1F338' -emoji[rose]=$'\U1F339' -emoji[hibiscus]=$'\U1F33A' -emoji[sunflower]=$'\U1F33B' -emoji[blossom]=$'\U1F33C' -emoji[ear_of_maize]=$'\U1F33D' +emoji[sheaf_of_rice]=$'\U1F33E' emoji[ear_of_rice]=$'\U1F33E' emoji[herb]=$'\U1F33F' +emoji[shamrock]=$'\U2618\UFE0F' +emoji[shamrock_unqualified]=$'\U2618' emoji[four_leaf_clover]=$'\U1F340' emoji[maple_leaf]=$'\U1F341' emoji[fallen_leaf]=$'\U1F342' emoji[leaf_fluttering_in_wind]=$'\U1F343' -emoji[mushroom]=$'\U1F344' -emoji[tomato]=$'\U1F345' -emoji[aubergine]=$'\U1F346' +emoji[leaves]=$'\U1F343' emoji[grapes]=$'\U1F347' emoji[melon]=$'\U1F348' emoji[watermelon]=$'\U1F349' emoji[tangerine]=$'\U1F34A' +emoji[orange]=$'\U1F34A' +emoji[mandarin]=$'\U1F34A' emoji[lemon]=$'\U1F34B' emoji[banana]=$'\U1F34C' emoji[pineapple]=$'\U1F34D' +emoji[mango]=$'\U1F96D' emoji[red_apple]=$'\U1F34E' +emoji[apple]=$'\U1F34E' emoji[green_apple]=$'\U1F34F' emoji[pear]=$'\U1F350' emoji[peach]=$'\U1F351' emoji[cherries]=$'\U1F352' emoji[strawberry]=$'\U1F353' -emoji[hamburger]=$'\U1F354' -emoji[slice_of_pizza]=$'\U1F355' +emoji[kiwi_fruit]=$'\U1F95D' +emoji[tomato]=$'\U1F345' +emoji[coconut]=$'\U1F965' +emoji[avocado]=$'\U1F951' +emoji[eggplant]=$'\U1F346' +emoji[potato]=$'\U1F954' +emoji[carrot]=$'\U1F955' +emoji[ear_of_corn]=$'\U1F33D' +emoji[corn]=$'\U1F33D' +emoji[hot_pepper]=$'\U1F336\UFE0F' +emoji[hot_pepper_unqualified]=$'\U1F336' +emoji[cucumber]=$'\U1F952' +emoji[leafy_green]=$'\U1F96C' +emoji[broccoli]=$'\U1F966' +emoji[garlic]=$'\U1F9C4' +emoji[onion]=$'\U1F9C5' +emoji[mushroom]=$'\U1F344' +emoji[peanuts]=$'\U1F95C' +emoji[chestnut]=$'\U1F330' +emoji[bread]=$'\U1F35E' +emoji[croissant]=$'\U1F950' +emoji[baguette_bread]=$'\U1F956' +emoji[pretzel]=$'\U1F968' +emoji[bagel]=$'\U1F96F' +emoji[pancakes]=$'\U1F95E' +emoji[waffle]=$'\U1F9C7' +emoji[cheese_wedge]=$'\U1F9C0' +emoji[cheese]=$'\U1F9C0' emoji[meat_on_bone]=$'\U1F356' emoji[poultry_leg]=$'\U1F357' +emoji[cut_of_meat]=$'\U1F969' +emoji[bacon]=$'\U1F953' +emoji[hamburger]=$'\U1F354' +emoji[french_fries]=$'\U1F35F' +emoji[fries]=$'\U1F35F' +emoji[pizza]=$'\U1F355' +emoji[hot_dog]=$'\U1F32D' +emoji[hotdog]=$'\U1F32D' +emoji[sandwich]=$'\U1F96A' +emoji[taco]=$'\U1F32E' +emoji[burrito]=$'\U1F32F' +emoji[stuffed_flatbread]=$'\U1F959' +emoji[falafel]=$'\U1F9C6' +emoji[egg]=$'\U1F95A' +emoji[cooking]=$'\U1F373' +emoji[fried_egg]=$'\U1F373' +emoji[shallow_pan_of_food]=$'\U1F958' +emoji[pot_of_food]=$'\U1F372' +emoji[stew]=$'\U1F372' +emoji[bowl_with_spoon]=$'\U1F963' +emoji[green_salad]=$'\U1F957' +emoji[popcorn]=$'\U1F37F' +emoji[butter]=$'\U1F9C8' +emoji[salt]=$'\U1F9C2' +emoji[canned_food]=$'\U1F96B' +emoji[bento_box]=$'\U1F371' +emoji[bento]=$'\U1F371' emoji[rice_cracker]=$'\U1F358' emoji[rice_ball]=$'\U1F359' emoji[cooked_rice]=$'\U1F35A' -emoji[curry_and_rice]=$'\U1F35B' +emoji[rice]=$'\U1F35A' +emoji[curry_rice]=$'\U1F35B' +emoji[curry]=$'\U1F35B' emoji[steaming_bowl]=$'\U1F35C' +emoji[ramen]=$'\U1F35C' emoji[spaghetti]=$'\U1F35D' -emoji[bread]=$'\U1F35E' -emoji[french_fries]=$'\U1F35F' emoji[roasted_sweet_potato]=$'\U1F360' -emoji[dango]=$'\U1F361' +emoji[sweet_potato]=$'\U1F360' emoji[oden]=$'\U1F362' emoji[sushi]=$'\U1F363' emoji[fried_shrimp]=$'\U1F364' -emoji[fish_cake_with_swirl_design]=$'\U1F365' +emoji[fish_cake_with_swirl]=$'\U1F365' +emoji[fish_cake]=$'\U1F365' +emoji[moon_cake]=$'\U1F96E' +emoji[dango]=$'\U1F361' +emoji[dumpling]=$'\U1F95F' +emoji[fortune_cookie]=$'\U1F960' +emoji[takeout_box]=$'\U1F961' +emoji[crab]=$'\U1F980' +emoji[lobster]=$'\U1F99E' +emoji[shrimp]=$'\U1F990' +emoji[squid]=$'\U1F991' +emoji[oyster]=$'\U1F9AA' emoji[soft_ice_cream]=$'\U1F366' +emoji[icecream]=$'\U1F366' emoji[shaved_ice]=$'\U1F367' emoji[ice_cream]=$'\U1F368' emoji[doughnut]=$'\U1F369' emoji[cookie]=$'\U1F36A' +emoji[birthday_cake]=$'\U1F382' +emoji[birthday]=$'\U1F382' +emoji[shortcake]=$'\U1F370' +emoji[cake]=$'\U1F370' +emoji[cupcake]=$'\U1F9C1' +emoji[pie]=$'\U1F967' emoji[chocolate_bar]=$'\U1F36B' emoji[candy]=$'\U1F36C' emoji[lollipop]=$'\U1F36D' emoji[custard]=$'\U1F36E' emoji[honey_pot]=$'\U1F36F' -emoji[shortcake]=$'\U1F370' -emoji[bento_box]=$'\U1F371' -emoji[pot_of_food]=$'\U1F372' -emoji[cooking]=$'\U1F373' -emoji[fork_and_knife]=$'\U1F374' +emoji[baby_bottle]=$'\U1F37C' +emoji[glass_of_milk]=$'\U1F95B' +emoji[milk_glass]=$'\U1F95B' +emoji[hot_beverage]=$'\U2615' +emoji[coffee]=$'\U2615' emoji[teacup_without_handle]=$'\U1F375' -emoji[sake_bottle_and_cup]=$'\U1F376' +emoji[tea]=$'\U1F375' +emoji[sake]=$'\U1F376' +emoji[bottle_with_popping_cork]=$'\U1F37E' +emoji[champagne]=$'\U1F37E' emoji[wine_glass]=$'\U1F377' emoji[cocktail_glass]=$'\U1F378' +emoji[cocktail]=$'\U1F378' emoji[tropical_drink]=$'\U1F379' emoji[beer_mug]=$'\U1F37A' +emoji[beer]=$'\U1F37A' emoji[clinking_beer_mugs]=$'\U1F37B' -emoji[baby_bottle]=$'\U1F37C' -emoji[fork_and_knife_with_plate]=$'\U1F37D' -emoji[bottle_with_popping_cork]=$'\U1F37E' -emoji[popcorn]=$'\U1F37F' -emoji[ribbon]=$'\U1F380' -emoji[wrapped_present]=$'\U1F381' -emoji[birthday_cake]=$'\U1F382' -emoji[jack_o_lantern]=$'\U1F383' -emoji[christmas_tree]=$'\U1F384' -emoji[father_christmas]=$'\U1F385' -emoji[fireworks]=$'\U1F386' -emoji[firework_sparkler]=$'\U1F387' -emoji[balloon]=$'\U1F388' -emoji[party_popper]=$'\U1F389' -emoji[confetti_ball]=$'\U1F38A' -emoji[tanabata_tree]=$'\U1F38B' -emoji[crossed_flags]=$'\U1F38C' -emoji[pine_decoration]=$'\U1F38D' -emoji[japanese_dolls]=$'\U1F38E' -emoji[carp_streamer]=$'\U1F38F' -emoji[wind_chime]=$'\U1F390' -emoji[moon_viewing_ceremony]=$'\U1F391' -emoji[school_satchel]=$'\U1F392' -emoji[graduation_cap]=$'\U1F393' -emoji[military_medal]=$'\U1F396' -emoji[reminder_ribbon]=$'\U1F397' -emoji[studio_microphone]=$'\U1F399' -emoji[level_slider]=$'\U1F39A' -emoji[control_knobs]=$'\U1F39B' -emoji[film_frames]=$'\U1F39E' -emoji[admission_tickets]=$'\U1F39F' -emoji[carousel_horse]=$'\U1F3A0' -emoji[ferris_wheel]=$'\U1F3A1' -emoji[roller_coaster]=$'\U1F3A2' -emoji[fishing_pole_and_fish]=$'\U1F3A3' -emoji[microphone]=$'\U1F3A4' -emoji[movie_camera]=$'\U1F3A5' -emoji[cinema]=$'\U1F3A6' -emoji[headphone]=$'\U1F3A7' -emoji[artist_palette]=$'\U1F3A8' -emoji[top_hat]=$'\U1F3A9' -emoji[circus_tent]=$'\U1F3AA' -emoji[ticket]=$'\U1F3AB' -emoji[clapper_board]=$'\U1F3AC' -emoji[performing_arts]=$'\U1F3AD' -emoji[video_game]=$'\U1F3AE' -emoji[direct_hit]=$'\U1F3AF' -emoji[slot_machine]=$'\U1F3B0' -emoji[billiards]=$'\U1F3B1' -emoji[game_die]=$'\U1F3B2' -emoji[bowling]=$'\U1F3B3' -emoji[flower_playing_cards]=$'\U1F3B4' -emoji[musical_note]=$'\U1F3B5' -emoji[multiple_musical_notes]=$'\U1F3B6' -emoji[saxophone]=$'\U1F3B7' -emoji[guitar]=$'\U1F3B8' -emoji[musical_keyboard]=$'\U1F3B9' -emoji[trumpet]=$'\U1F3BA' -emoji[violin]=$'\U1F3BB' -emoji[musical_score]=$'\U1F3BC' -emoji[running_shirt_with_sash]=$'\U1F3BD' -emoji[tennis_racquet_and_ball]=$'\U1F3BE' -emoji[ski_and_ski_boot]=$'\U1F3BF' -emoji[basketball_and_hoop]=$'\U1F3C0' -emoji[chequered_flag]=$'\U1F3C1' -emoji[snowboarder]=$'\U1F3C2' -emoji[runner]=$'\U1F3C3' -emoji[surfer]=$'\U1F3C4' -emoji[sports_medal]=$'\U1F3C5' -emoji[trophy]=$'\U1F3C6' -emoji[horse_racing]=$'\U1F3C7' -emoji[american_football]=$'\U1F3C8' -emoji[rugby_football]=$'\U1F3C9' -emoji[swimmer]=$'\U1F3CA' -emoji[weight_lifter]=$'\U1F3CB' -emoji[golfer]=$'\U1F3CC' -emoji[racing_motorcycle]=$'\U1F3CD' -emoji[racing_car]=$'\U1F3CE' -emoji[cricket_bat_and_ball]=$'\U1F3CF' -emoji[volleyball]=$'\U1F3D0' -emoji[field_hockey_stick_and_ball]=$'\U1F3D1' -emoji[ice_hockey_stick_and_puck]=$'\U1F3D2' -emoji[table_tennis_paddle_and_ball]=$'\U1F3D3' -emoji[snow_capped_mountain]=$'\U1F3D4' -emoji[camping]=$'\U1F3D5' -emoji[beach_with_umbrella]=$'\U1F3D6' -emoji[building_construction]=$'\U1F3D7' -emoji[house_buildings]=$'\U1F3D8' -emoji[cityscape]=$'\U1F3D9' -emoji[derelict_house_building]=$'\U1F3DA' -emoji[classical_building]=$'\U1F3DB' -emoji[desert]=$'\U1F3DC' -emoji[desert_island]=$'\U1F3DD' -emoji[national_park]=$'\U1F3DE' -emoji[stadium]=$'\U1F3DF' -emoji[house_building]=$'\U1F3E0' +emoji[beers]=$'\U1F37B' +emoji[clinking_glasses]=$'\U1F942' +emoji[tumbler_glass]=$'\U1F943' +emoji[cup_with_straw]=$'\U1F964' +emoji[beverage_box]=$'\U1F9C3' +emoji[mate]=$'\U1F9C9' +emoji[ice_cube]=$'\U1F9CA' +emoji[chopsticks]=$'\U1F962' +emoji[fork_and_knife_with_plate]=$'\U1F37D\UFE0F' +emoji[fork_and_knife_with_plate_unqualified]=$'\U1F37D' +emoji[plate_with_cutlery]=$'\U1F37D' +emoji[fork_and_knife_with_plate_unqualified_1]=$'\U1F374' +emoji[fork_and_knife]=$'\U1F374' +emoji[spoon]=$'\U1F944' +emoji[kitchen_knife]=$'\U1F52A' +emoji[hocho]=$'\U1F52A' +emoji[knife]=$'\U1F52A' +emoji[amphora]=$'\U1F3FA' +emoji[globe_showing_Europe_Africa]=$'\U1F30D' +emoji[earth_africa]=$'\U1F30D' +emoji[globe_showing_Americas]=$'\U1F30E' +emoji[earth_americas]=$'\U1F30E' +emoji[globe_showing_Asia_Australia]=$'\U1F30F' +emoji[earth_asia]=$'\U1F30F' +emoji[globe_with_meridians]=$'\U1F310' +emoji[world_map]=$'\U1F5FA\UFE0F' +emoji[world_map_unqualified]=$'\U1F5FA' +emoji[map_of_Japan]=$'\U1F5FE' +emoji[japan]=$'\U1F5FE' +emoji[compass]=$'\U1F9ED' +emoji[snow_capped_mountain]=$'\U1F3D4\UFE0F' +emoji[snow_capped_mountain_unqualified]=$'\U1F3D4' +emoji[mountain_snow]=$'\U1F3D4' +emoji[snow_capped_mountain_unqualified_1]=$'\U26F0\UFE0F' +emoji[snow_capped_mountain_unqualified_2]=$'\U26F0' +emoji[mountain]=$'\U26F0' +emoji[volcano]=$'\U1F30B' +emoji[mount_fuji]=$'\U1F5FB' +emoji[camping]=$'\U1F3D5\UFE0F' +emoji[camping_unqualified]=$'\U1F3D5' +emoji[beach_with_umbrella]=$'\U1F3D6\UFE0F' +emoji[beach_with_umbrella_unqualified]=$'\U1F3D6' +emoji[beach_umbrella]=$'\U1F3D6' +emoji[desert]=$'\U1F3DC\UFE0F' +emoji[desert_unqualified]=$'\U1F3DC' +emoji[desert_island]=$'\U1F3DD\UFE0F' +emoji[desert_island_unqualified]=$'\U1F3DD' +emoji[national_park]=$'\U1F3DE\UFE0F' +emoji[national_park_unqualified]=$'\U1F3DE' +emoji[stadium]=$'\U1F3DF\UFE0F' +emoji[stadium_unqualified]=$'\U1F3DF' +emoji[classical_building]=$'\U1F3DB\UFE0F' +emoji[classical_building_unqualified]=$'\U1F3DB' +emoji[building_construction]=$'\U1F3D7\UFE0F' +emoji[building_construction_unqualified]=$'\U1F3D7' +emoji[brick]=$'\U1F9F1' +emoji[bricks]=$'\U1F9F1' +emoji[houses]=$'\U1F3D8\UFE0F' +emoji[houses_unqualified]=$'\U1F3D8' +emoji[derelict_house]=$'\U1F3DA\UFE0F' +emoji[derelict_house_unqualified]=$'\U1F3DA' +emoji[derelict_house_unqualified_1]=$'\U1F3E0' +emoji[house]=$'\U1F3E0' emoji[house_with_garden]=$'\U1F3E1' emoji[office_building]=$'\U1F3E2' -emoji[japanese_post_office]=$'\U1F3E3' +emoji[office]=$'\U1F3E2' +emoji[Japanese_post_office]=$'\U1F3E3' +emoji[post_office]=$'\U1F3E3' +emoji[Japanese_post_office_1]=$'\U1F3E4' emoji[european_post_office]=$'\U1F3E4' emoji[hospital]=$'\U1F3E5' emoji[bank]=$'\U1F3E6' -emoji[automated_teller_machine]=$'\U1F3E7' emoji[hotel]=$'\U1F3E8' emoji[love_hotel]=$'\U1F3E9' emoji[convenience_store]=$'\U1F3EA' emoji[school]=$'\U1F3EB' emoji[department_store]=$'\U1F3EC' emoji[factory]=$'\U1F3ED' -emoji[izakaya_lantern]=$'\U1F3EE' +emoji[Japanese_castle]=$'\U1F3EF' emoji[japanese_castle]=$'\U1F3EF' +emoji[Japanese_castle_1]=$'\U1F3F0' emoji[european_castle]=$'\U1F3F0' -emoji[waving_white_flag]=$'\U1F3F3' -emoji[waving_black_flag]=$'\U1F3F4' -emoji[rosette]=$'\U1F3F5' -emoji[label]=$'\U1F3F7' -emoji[badminton_racquet_and_shuttlecock]=$'\U1F3F8' -emoji[bow_and_arrow]=$'\U1F3F9' -emoji[amphora]=$'\U1F3FA' -emoji[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji_mod[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji_mod[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji_mod[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji_mod[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji_mod[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji[rat]=$'\U1F400' -emoji[mouse]=$'\U1F401' -emoji[ox]=$'\U1F402' -emoji[water_buffalo]=$'\U1F403' -emoji[cow]=$'\U1F404' -emoji[tiger]=$'\U1F405' -emoji[leopard]=$'\U1F406' -emoji[rabbit]=$'\U1F407' -emoji[cat]=$'\U1F408' -emoji[dragon]=$'\U1F409' -emoji[crocodile]=$'\U1F40A' -emoji[whale]=$'\U1F40B' -emoji[snail]=$'\U1F40C' -emoji[snake]=$'\U1F40D' -emoji[horse]=$'\U1F40E' -emoji[ram]=$'\U1F40F' -emoji[goat]=$'\U1F410' -emoji[sheep]=$'\U1F411' -emoji[monkey]=$'\U1F412' -emoji[rooster]=$'\U1F413' -emoji[chicken]=$'\U1F414' -emoji[dog]=$'\U1F415' -emoji[pig]=$'\U1F416' -emoji[boar]=$'\U1F417' -emoji[elephant]=$'\U1F418' -emoji[octopus]=$'\U1F419' -emoji[spiral_shell]=$'\U1F41A' -emoji[bug]=$'\U1F41B' -emoji[ant]=$'\U1F41C' -emoji[honeybee]=$'\U1F41D' -emoji[lady_beetle]=$'\U1F41E' -emoji[fish]=$'\U1F41F' -emoji[tropical_fish]=$'\U1F420' -emoji[blowfish]=$'\U1F421' -emoji[turtle]=$'\U1F422' -emoji[hatching_chick]=$'\U1F423' -emoji[baby_chick]=$'\U1F424' -emoji[front_facing_baby_chick]=$'\U1F425' -emoji[bird]=$'\U1F426' -emoji[penguin]=$'\U1F427' -emoji[koala]=$'\U1F428' -emoji[poodle]=$'\U1F429' -emoji[dromedary_camel]=$'\U1F42A' -emoji[bactrian_camel]=$'\U1F42B' -emoji[dolphin]=$'\U1F42C' -emoji[mouse_face]=$'\U1F42D' -emoji[cow_face]=$'\U1F42E' -emoji[tiger_face]=$'\U1F42F' -emoji[rabbit_face]=$'\U1F430' -emoji[cat_face]=$'\U1F431' -emoji[dragon_face]=$'\U1F432' -emoji[spouting_whale]=$'\U1F433' -emoji[horse_face]=$'\U1F434' -emoji[monkey_face]=$'\U1F435' -emoji[dog_face]=$'\U1F436' -emoji[pig_face]=$'\U1F437' -emoji[frog_face]=$'\U1F438' -emoji[hamster_face]=$'\U1F439' -emoji[wolf_face]=$'\U1F43A' -emoji[bear_face]=$'\U1F43B' -emoji[panda_face]=$'\U1F43C' -emoji[pig_nose]=$'\U1F43D' -emoji[paw_prints]=$'\U1F43E' -emoji[chipmunk]=$'\U1F43F' -emoji[eyes]=$'\U1F440' -emoji[eye]=$'\U1F441' -emoji[ear]=$'\U1F442' -emoji[nose]=$'\U1F443' -emoji[mouth]=$'\U1F444' -emoji[tongue]=$'\U1F445' -emoji[white_up_pointing_backhand_index]=$'\U1F446' -emoji[white_down_pointing_backhand_index]=$'\U1F447' -emoji[white_left_pointing_backhand_index]=$'\U1F448' -emoji[white_right_pointing_backhand_index]=$'\U1F449' -emoji[fisted_hand_sign]=$'\U1F44A' -emoji[waving_hand_sign]=$'\U1F44B' -emoji[ok_hand_sign]=$'\U1F44C' -emoji[thumbs_up_sign]=$'\U1F44D' -emoji[thumbs_down_sign]=$'\U1F44E' -emoji[clapping_hands_sign]=$'\U1F44F' -emoji[open_hands_sign]=$'\U1F450' -emoji[crown]=$'\U1F451' -emoji[womans_hat]=$'\U1F452' -emoji[eyeglasses]=$'\U1F453' -emoji[necktie]=$'\U1F454' -emoji[t_shirt]=$'\U1F455' -emoji[jeans]=$'\U1F456' -emoji[dress]=$'\U1F457' -emoji[kimono]=$'\U1F458' -emoji[bikini]=$'\U1F459' -emoji[womans_clothes]=$'\U1F45A' -emoji[purse]=$'\U1F45B' -emoji[handbag]=$'\U1F45C' -emoji[pouch]=$'\U1F45D' -emoji[mans_shoe]=$'\U1F45E' -emoji[athletic_shoe]=$'\U1F45F' -emoji[high_heeled_shoe]=$'\U1F460' -emoji[womans_sandal]=$'\U1F461' -emoji[womans_boots]=$'\U1F462' -emoji[footprints]=$'\U1F463' -emoji[bust_in_silhouette]=$'\U1F464' -emoji[busts_in_silhouette]=$'\U1F465' -emoji[boy]=$'\U1F466' -emoji[girl]=$'\U1F467' -emoji[man]=$'\U1F468' -emoji[woman]=$'\U1F469' -emoji[family]=$'\U1F46A' -emoji[man_and_woman_holding_hands]=$'\U1F46B' -emoji[two_men_holding_hands]=$'\U1F46C' -emoji[two_women_holding_hands]=$'\U1F46D' -emoji[police_officer]=$'\U1F46E' -emoji[woman_with_bunny_ears]=$'\U1F46F' -emoji[bride_with_veil]=$'\U1F470' -emoji[person_with_blond_hair]=$'\U1F471' -emoji[man_with_gua_pi_mao]=$'\U1F472' -emoji[man_with_turban]=$'\U1F473' -emoji[older_man]=$'\U1F474' -emoji[older_woman]=$'\U1F475' -emoji[baby]=$'\U1F476' -emoji[construction_worker]=$'\U1F477' -emoji[princess]=$'\U1F478' -emoji[japanese_ogre]=$'\U1F479' -emoji[japanese_goblin]=$'\U1F47A' -emoji[ghost]=$'\U1F47B' -emoji[baby_angel]=$'\U1F47C' -emoji[extraterrestrial_alien]=$'\U1F47D' -emoji[alien_monster]=$'\U1F47E' -emoji[imp]=$'\U1F47F' -emoji[skull]=$'\U1F480' -emoji[information_desk_person]=$'\U1F481' -emoji[guardsman]=$'\U1F482' -emoji[dancer]=$'\U1F483' -emoji[lipstick]=$'\U1F484' -emoji[nail_polish]=$'\U1F485' -emoji[face_massage]=$'\U1F486' -emoji[haircut]=$'\U1F487' -emoji[barber_pole]=$'\U1F488' -emoji[syringe]=$'\U1F489' -emoji[pill]=$'\U1F48A' -emoji[kiss_mark]=$'\U1F48B' -emoji[love_letter]=$'\U1F48C' -emoji[ring]=$'\U1F48D' -emoji[gem_stone]=$'\U1F48E' -emoji[kiss]=$'\U1F48F' -emoji[bouquet]=$'\U1F490' -emoji[couple_with_heart]=$'\U1F491' emoji[wedding]=$'\U1F492' -emoji[beating_heart]=$'\U1F493' -emoji[broken_heart]=$'\U1F494' -emoji[two_hearts]=$'\U1F495' -emoji[sparkling_heart]=$'\U1F496' -emoji[growing_heart]=$'\U1F497' -emoji[heart_with_arrow]=$'\U1F498' -emoji[blue_heart]=$'\U1F499' -emoji[green_heart]=$'\U1F49A' -emoji[yellow_heart]=$'\U1F49B' -emoji[purple_heart]=$'\U1F49C' -emoji[heart_with_ribbon]=$'\U1F49D' -emoji[revolving_hearts]=$'\U1F49E' -emoji[heart_decoration]=$'\U1F49F' -emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0' -emoji[electric_light_bulb]=$'\U1F4A1' -emoji[anger_symbol]=$'\U1F4A2' -emoji[bomb]=$'\U1F4A3' -emoji[sleeping_symbol]=$'\U1F4A4' -emoji[collision_symbol]=$'\U1F4A5' -emoji[splashing_sweat_symbol]=$'\U1F4A6' -emoji[droplet]=$'\U1F4A7' -emoji[dash_symbol]=$'\U1F4A8' -emoji[pile_of_poo]=$'\U1F4A9' -emoji[flexed_biceps]=$'\U1F4AA' -emoji[dizzy_symbol]=$'\U1F4AB' -emoji[speech_balloon]=$'\U1F4AC' -emoji[thought_balloon]=$'\U1F4AD' -emoji[white_flower]=$'\U1F4AE' -emoji[hundred_points_symbol]=$'\U1F4AF' -emoji[money_bag]=$'\U1F4B0' -emoji[currency_exchange]=$'\U1F4B1' -emoji[heavy_dollar_sign]=$'\U1F4B2' -emoji[credit_card]=$'\U1F4B3' -emoji[banknote_with_yen_sign]=$'\U1F4B4' -emoji[banknote_with_dollar_sign]=$'\U1F4B5' -emoji[banknote_with_euro_sign]=$'\U1F4B6' -emoji[banknote_with_pound_sign]=$'\U1F4B7' -emoji[money_with_wings]=$'\U1F4B8' -emoji[chart_with_upwards_trend_and_yen_sign]=$'\U1F4B9' -emoji[seat]=$'\U1F4BA' -emoji[personal_computer]=$'\U1F4BB' -emoji[briefcase]=$'\U1F4BC' -emoji[minidisc]=$'\U1F4BD' -emoji[floppy_disk]=$'\U1F4BE' -emoji[optical_disc]=$'\U1F4BF' -emoji[dvd]=$'\U1F4C0' -emoji[file_folder]=$'\U1F4C1' -emoji[open_file_folder]=$'\U1F4C2' -emoji[page_with_curl]=$'\U1F4C3' -emoji[page_facing_up]=$'\U1F4C4' -emoji[calendar]=$'\U1F4C5' -emoji[tear_off_calendar]=$'\U1F4C6' -emoji[card_index]=$'\U1F4C7' -emoji[chart_with_upwards_trend]=$'\U1F4C8' -emoji[chart_with_downwards_trend]=$'\U1F4C9' -emoji[bar_chart]=$'\U1F4CA' -emoji[clipboard]=$'\U1F4CB' -emoji[pushpin]=$'\U1F4CC' -emoji[round_pushpin]=$'\U1F4CD' -emoji[paperclip]=$'\U1F4CE' -emoji[straight_ruler]=$'\U1F4CF' -emoji[triangular_ruler]=$'\U1F4D0' -emoji[bookmark_tabs]=$'\U1F4D1' -emoji[ledger]=$'\U1F4D2' -emoji[notebook]=$'\U1F4D3' -emoji[notebook_with_decorative_cover]=$'\U1F4D4' -emoji[closed_book]=$'\U1F4D5' -emoji[open_book]=$'\U1F4D6' -emoji[green_book]=$'\U1F4D7' -emoji[blue_book]=$'\U1F4D8' -emoji[orange_book]=$'\U1F4D9' -emoji[books]=$'\U1F4DA' -emoji[name_badge]=$'\U1F4DB' -emoji[scroll]=$'\U1F4DC' -emoji[memo]=$'\U1F4DD' -emoji[telephone_receiver]=$'\U1F4DE' -emoji[pager]=$'\U1F4DF' -emoji[fax_machine]=$'\U1F4E0' -emoji[satellite_antenna]=$'\U1F4E1' -emoji[public_address_loudspeaker]=$'\U1F4E2' -emoji[cheering_megaphone]=$'\U1F4E3' -emoji[outbox_tray]=$'\U1F4E4' -emoji[inbox_tray]=$'\U1F4E5' -emoji[package]=$'\U1F4E6' -emoji[e_mail_symbol]=$'\U1F4E7' -emoji[incoming_envelope]=$'\U1F4E8' -emoji[envelope_with_downwards_arrow_above]=$'\U1F4E9' -emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA' -emoji[closed_mailbox_with_raised_flag]=$'\U1F4EB' -emoji[open_mailbox_with_raised_flag]=$'\U1F4EC' -emoji[open_mailbox_with_lowered_flag]=$'\U1F4ED' -emoji[postbox]=$'\U1F4EE' -emoji[postal_horn]=$'\U1F4EF' -emoji[newspaper]=$'\U1F4F0' -emoji[mobile_phone]=$'\U1F4F1' -emoji[mobile_phone_with_rightwards_arrow_at_left]=$'\U1F4F2' -emoji[vibration_mode]=$'\U1F4F3' -emoji[mobile_phone_off]=$'\U1F4F4' -emoji[no_mobile_phones]=$'\U1F4F5' -emoji[antenna_with_bars]=$'\U1F4F6' -emoji[camera]=$'\U1F4F7' -emoji[camera_with_flash]=$'\U1F4F8' -emoji[video_camera]=$'\U1F4F9' -emoji[television]=$'\U1F4FA' -emoji[radio]=$'\U1F4FB' -emoji[videocassette]=$'\U1F4FC' -emoji[film_projector]=$'\U1F4FD' -emoji[prayer_beads]=$'\U1F4FF' -emoji[twisted_rightwards_arrows]=$'\U1F500' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows]=$'\U1F501' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows_with_circled_one_overlay]=$'\U1F502' -emoji[clockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F503' -emoji[anticlockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F504' -emoji[low_brightness_symbol]=$'\U1F505' -emoji[high_brightness_symbol]=$'\U1F506' -emoji[speaker_with_cancellation_stroke]=$'\U1F507' -emoji[speaker]=$'\U1F508' -emoji[speaker_with_one_sound_wave]=$'\U1F509' -emoji[speaker_with_three_sound_waves]=$'\U1F50A' -emoji[battery]=$'\U1F50B' -emoji[electric_plug]=$'\U1F50C' -emoji[left_pointing_magnifying_glass]=$'\U1F50D' -emoji[right_pointing_magnifying_glass]=$'\U1F50E' -emoji[lock_with_ink_pen]=$'\U1F50F' -emoji[closed_lock_with_key]=$'\U1F510' -emoji[key]=$'\U1F511' -emoji[lock]=$'\U1F512' -emoji[open_lock]=$'\U1F513' -emoji[bell]=$'\U1F514' -emoji[bell_with_cancellation_stroke]=$'\U1F515' -emoji[bookmark]=$'\U1F516' -emoji[link_symbol]=$'\U1F517' -emoji[radio_button]=$'\U1F518' -emoji[back_with_leftwards_arrow_above]=$'\U1F519' -emoji[end_with_leftwards_arrow_above]=$'\U1F51A' -emoji[on_with_exclamation_mark_with_left_right_arrow_above]=$'\U1F51B' -emoji[soon_with_rightwards_arrow_above]=$'\U1F51C' -emoji[top_with_upwards_arrow_above]=$'\U1F51D' -emoji[no_one_under_eighteen_symbol]=$'\U1F51E' -emoji[keycap_ten]=$'\U1F51F' -emoji[input_symbol_for_latin_capital_letters]=$'\U1F520' -emoji[input_symbol_for_latin_small_letters]=$'\U1F521' -emoji[input_symbol_for_numbers]=$'\U1F522' -emoji[input_symbol_for_symbols]=$'\U1F523' -emoji[input_symbol_for_latin_letters]=$'\U1F524' -emoji[fire]=$'\U1F525' -emoji[electric_torch]=$'\U1F526' -emoji[wrench]=$'\U1F527' -emoji[hammer]=$'\U1F528' -emoji[nut_and_bolt]=$'\U1F529' -emoji[hocho]=$'\U1F52A' -emoji[pistol]=$'\U1F52B' -emoji[microscope]=$'\U1F52C' -emoji[telescope]=$'\U1F52D' -emoji[crystal_ball]=$'\U1F52E' -emoji[six_pointed_star_with_middle_dot]=$'\U1F52F' -emoji[japanese_symbol_for_beginner]=$'\U1F530' -emoji[trident_emblem]=$'\U1F531' -emoji[black_square_button]=$'\U1F532' -emoji[white_square_button]=$'\U1F533' -emoji[large_red_circle]=$'\U1F534' -emoji[large_blue_circle]=$'\U1F535' -emoji[large_orange_diamond]=$'\U1F536' -emoji[large_blue_diamond]=$'\U1F537' -emoji[small_orange_diamond]=$'\U1F538' -emoji[small_blue_diamond]=$'\U1F539' -emoji[up_pointing_red_triangle]=$'\U1F53A' -emoji[down_pointing_red_triangle]=$'\U1F53B' -emoji[up_pointing_small_red_triangle]=$'\U1F53C' -emoji[down_pointing_small_red_triangle]=$'\U1F53D' -emoji[om_symbol]=$'\U1F549' -emoji[dove_of_peace]=$'\U1F54A' -emoji[kaaba]=$'\U1F54B' -emoji[mosque]=$'\U1F54C' -emoji[synagogue]=$'\U1F54D' -emoji[menorah_with_nine_branches]=$'\U1F54E' -emoji[clock_face_one_oclock]=$'\U1F550' -emoji[clock_face_two_oclock]=$'\U1F551' -emoji[clock_face_three_oclock]=$'\U1F552' -emoji[clock_face_four_oclock]=$'\U1F553' -emoji[clock_face_five_oclock]=$'\U1F554' -emoji[clock_face_six_oclock]=$'\U1F555' -emoji[clock_face_seven_oclock]=$'\U1F556' -emoji[clock_face_eight_oclock]=$'\U1F557' -emoji[clock_face_nine_oclock]=$'\U1F558' -emoji[clock_face_ten_oclock]=$'\U1F559' -emoji[clock_face_eleven_oclock]=$'\U1F55A' -emoji[clock_face_twelve_oclock]=$'\U1F55B' -emoji[clock_face_one_thirty]=$'\U1F55C' -emoji[clock_face_two_thirty]=$'\U1F55D' -emoji[clock_face_three_thirty]=$'\U1F55E' -emoji[clock_face_four_thirty]=$'\U1F55F' -emoji[clock_face_five_thirty]=$'\U1F560' -emoji[clock_face_six_thirty]=$'\U1F561' -emoji[clock_face_seven_thirty]=$'\U1F562' -emoji[clock_face_eight_thirty]=$'\U1F563' -emoji[clock_face_nine_thirty]=$'\U1F564' -emoji[clock_face_ten_thirty]=$'\U1F565' -emoji[clock_face_eleven_thirty]=$'\U1F566' -emoji[clock_face_twelve_thirty]=$'\U1F567' -emoji[candle]=$'\U1F56F' -emoji[mantelpiece_clock]=$'\U1F570' -emoji[hole]=$'\U1F573' -emoji[man_in_business_suit_levitating]=$'\U1F574' -emoji[sleuth_or_spy]=$'\U1F575' -emoji[dark_sunglasses]=$'\U1F576' -emoji[spider]=$'\U1F577' -emoji[spider_web]=$'\U1F578' -emoji[joystick]=$'\U1F579' -emoji[linked_paperclips]=$'\U1F587' -emoji[lower_left_ballpoint_pen]=$'\U1F58A' -emoji[lower_left_fountain_pen]=$'\U1F58B' -emoji[lower_left_paintbrush]=$'\U1F58C' -emoji[lower_left_crayon]=$'\U1F58D' -emoji[raised_hand_with_fingers_splayed]=$'\U1F590' -emoji[reversed_hand_with_middle_finger_extended]=$'\U1F595' -emoji[raised_hand_with_part_between_middle_and_ring_fingers]=$'\U1F596' -emoji[desktop_computer]=$'\U1F5A5' -emoji[printer]=$'\U1F5A8' -emoji[three_button_mouse]=$'\U1F5B1' -emoji[trackball]=$'\U1F5B2' -emoji[frame_with_picture]=$'\U1F5BC' -emoji[card_index_dividers]=$'\U1F5C2' -emoji[card_file_box]=$'\U1F5C3' -emoji[file_cabinet]=$'\U1F5C4' -emoji[wastebasket]=$'\U1F5D1' -emoji[spiral_note_pad]=$'\U1F5D2' -emoji[spiral_calendar_pad]=$'\U1F5D3' -emoji[compression]=$'\U1F5DC' -emoji[old_key]=$'\U1F5DD' -emoji[rolled_up_newspaper]=$'\U1F5DE' -emoji[dagger_knife]=$'\U1F5E1' -emoji[speaking_head_in_silhouette]=$'\U1F5E3' -emoji[right_anger_bubble]=$'\U1F5EF' -emoji[ballot_box_with_ballot]=$'\U1F5F3' -emoji[world_map]=$'\U1F5FA' -emoji[mount_fuji]=$'\U1F5FB' +emoji[Tokyo_tower]=$'\U1F5FC' emoji[tokyo_tower]=$'\U1F5FC' +emoji[Statue_of_Liberty]=$'\U1F5FD' emoji[statue_of_liberty]=$'\U1F5FD' -emoji[silhouette_of_japan]=$'\U1F5FE' -emoji[moyai]=$'\U1F5FF' -emoji[grinning_face]=$'\U1F600' -emoji[grinning_face_with_smiling_eyes]=$'\U1F601' -emoji[face_with_tears_of_joy]=$'\U1F602' -emoji[smiling_face_with_open_mouth]=$'\U1F603' -emoji[smiling_face_with_open_mouth_and_smiling_eyes]=$'\U1F604' -emoji[smiling_face_with_open_mouth_and_cold_sweat]=$'\U1F605' -emoji[smiling_face_with_open_mouth_and_tightly_closed_eyes]=$'\U1F606' -emoji[smiling_face_with_halo]=$'\U1F607' -emoji[smiling_face_with_horns]=$'\U1F608' -emoji[winking_face]=$'\U1F609' -emoji[smiling_face_with_smiling_eyes]=$'\U1F60A' -emoji[face_savouring_delicious_food]=$'\U1F60B' -emoji[relieved_face]=$'\U1F60C' -emoji[smiling_face_with_heart_shaped_eyes]=$'\U1F60D' -emoji[smiling_face_with_sunglasses]=$'\U1F60E' -emoji[smirking_face]=$'\U1F60F' -emoji[neutral_face]=$'\U1F610' -emoji[expressionless_face]=$'\U1F611' -emoji[unamused_face]=$'\U1F612' -emoji[face_with_cold_sweat]=$'\U1F613' -emoji[pensive_face]=$'\U1F614' -emoji[confused_face]=$'\U1F615' -emoji[confounded_face]=$'\U1F616' -emoji[kissing_face]=$'\U1F617' -emoji[face_throwing_a_kiss]=$'\U1F618' -emoji[kissing_face_with_smiling_eyes]=$'\U1F619' -emoji[kissing_face_with_closed_eyes]=$'\U1F61A' -emoji[face_with_stuck_out_tongue]=$'\U1F61B' -emoji[face_with_stuck_out_tongue_and_winking_eye]=$'\U1F61C' -emoji[face_with_stuck_out_tongue_and_tightly_closed_eyes]=$'\U1F61D' -emoji[disappointed_face]=$'\U1F61E' -emoji[worried_face]=$'\U1F61F' -emoji[angry_face]=$'\U1F620' -emoji[pouting_face]=$'\U1F621' -emoji[crying_face]=$'\U1F622' -emoji[persevering_face]=$'\U1F623' -emoji[face_with_look_of_triumph]=$'\U1F624' -emoji[disappointed_but_relieved_face]=$'\U1F625' -emoji[frowning_face_with_open_mouth]=$'\U1F626' -emoji[anguished_face]=$'\U1F627' -emoji[fearful_face]=$'\U1F628' -emoji[weary_face]=$'\U1F629' -emoji[sleepy_face]=$'\U1F62A' -emoji[tired_face]=$'\U1F62B' -emoji[grimacing_face]=$'\U1F62C' -emoji[loudly_crying_face]=$'\U1F62D' -emoji[face_with_open_mouth]=$'\U1F62E' -emoji[hushed_face]=$'\U1F62F' -emoji[face_with_open_mouth_and_cold_sweat]=$'\U1F630' -emoji[face_screaming_in_fear]=$'\U1F631' -emoji[astonished_face]=$'\U1F632' -emoji[flushed_face]=$'\U1F633' -emoji[sleeping_face]=$'\U1F634' -emoji[dizzy_face]=$'\U1F635' -emoji[face_without_mouth]=$'\U1F636' -emoji[face_with_medical_mask]=$'\U1F637' -emoji[grinning_cat_face_with_smiling_eyes]=$'\U1F638' -emoji[cat_face_with_tears_of_joy]=$'\U1F639' -emoji[smiling_cat_face_with_open_mouth]=$'\U1F63A' -emoji[smiling_cat_face_with_heart_shaped_eyes]=$'\U1F63B' -emoji[cat_face_with_wry_smile]=$'\U1F63C' -emoji[kissing_cat_face_with_closed_eyes]=$'\U1F63D' -emoji[pouting_cat_face]=$'\U1F63E' -emoji[crying_cat_face]=$'\U1F63F' -emoji[weary_cat_face]=$'\U1F640' -emoji[slightly_frowning_face]=$'\U1F641' -emoji[slightly_smiling_face]=$'\U1F642' -emoji[upside_down_face]=$'\U1F643' -emoji[face_with_rolling_eyes]=$'\U1F644' -emoji[face_with_no_good_gesture]=$'\U1F645' -emoji[face_with_ok_gesture]=$'\U1F646' -emoji[person_bowing_deeply]=$'\U1F647' -emoji[see_no_evil_monkey]=$'\U1F648' -emoji[hear_no_evil_monkey]=$'\U1F649' -emoji[speak_no_evil_monkey]=$'\U1F64A' -emoji[happy_person_raising_one_hand]=$'\U1F64B' -emoji[person_raising_both_hands_in_celebration]=$'\U1F64C' -emoji[person_frowning]=$'\U1F64D' -emoji[person_with_pouting_face]=$'\U1F64E' -emoji[person_with_folded_hands]=$'\U1F64F' -emoji[rocket]=$'\U1F680' -emoji[helicopter]=$'\U1F681' +emoji[church]=$'\U26EA' +emoji[mosque]=$'\U1F54C' +emoji[hindu_temple]=$'\U1F6D5' +emoji[synagogue]=$'\U1F54D' +emoji[shinto_shrine]=$'\U26E9\UFE0F' +emoji[shinto_shrine_unqualified]=$'\U26E9' +emoji[kaaba]=$'\U1F54B' +emoji[fountain]=$'\U26F2' +emoji[tent]=$'\U26FA' +emoji[foggy]=$'\U1F301' +emoji[night_with_stars]=$'\U1F303' +emoji[cityscape]=$'\U1F3D9\UFE0F' +emoji[cityscape_unqualified]=$'\U1F3D9' +emoji[sunrise_over_mountains]=$'\U1F304' +emoji[sunrise_over_mountains_1]=$'\U1F305' +emoji[sunrise]=$'\U1F305' +emoji[cityscape_at_dusk]=$'\U1F306' +emoji[city_sunset]=$'\U1F306' +emoji[sunset]=$'\U1F307' +emoji[city_sunrise]=$'\U1F307' +emoji[bridge_at_night]=$'\U1F309' +emoji[hot_springs]=$'\U2668\UFE0F' +emoji[hotsprings]=$'\U2668\UFE0F' +emoji[hot_springs_unqualified]=$'\U2668' +emoji[carousel_horse]=$'\U1F3A0' +emoji[ferris_wheel]=$'\U1F3A1' +emoji[roller_coaster]=$'\U1F3A2' +emoji[barber_pole]=$'\U1F488' +emoji[barber]=$'\U1F488' +emoji[circus_tent]=$'\U1F3AA' +emoji[locomotive]=$'\U1F682' emoji[steam_locomotive]=$'\U1F682' emoji[railway_car]=$'\U1F683' emoji[high_speed_train]=$'\U1F684' -emoji[high_speed_train_with_bullet_nose]=$'\U1F685' -emoji[train]=$'\U1F686' +emoji[bullettrain_side]=$'\U1F684' +emoji[bullet_train]=$'\U1F685' +emoji[bullettrain_front]=$'\U1F685' +emoji[bullet_train_1]=$'\U1F686' +emoji[train2]=$'\U1F686' emoji[metro]=$'\U1F687' emoji[light_rail]=$'\U1F688' emoji[station]=$'\U1F689' emoji[tram]=$'\U1F68A' +emoji[monorail]=$'\U1F69D' +emoji[mountain_railway]=$'\U1F69E' emoji[tram_car]=$'\U1F68B' +emoji[train]=$'\U1F68B' emoji[bus]=$'\U1F68C' emoji[oncoming_bus]=$'\U1F68D' emoji[trolleybus]=$'\U1F68E' -emoji[bus_stop]=$'\U1F68F' emoji[minibus]=$'\U1F690' emoji[ambulance]=$'\U1F691' emoji[fire_engine]=$'\U1F692' @@ -953,351 +3124,4151 @@ emoji[oncoming_police_car]=$'\U1F694' emoji[taxi]=$'\U1F695' emoji[oncoming_taxi]=$'\U1F696' emoji[automobile]=$'\U1F697' +emoji[car]=$'\U1F697' +emoji[red_car]=$'\U1F697' emoji[oncoming_automobile]=$'\U1F698' -emoji[recreational_vehicle]=$'\U1F699' +emoji[sport_utility_vehicle]=$'\U1F699' +emoji[blue_car]=$'\U1F699' emoji[delivery_truck]=$'\U1F69A' +emoji[truck]=$'\U1F69A' emoji[articulated_lorry]=$'\U1F69B' emoji[tractor]=$'\U1F69C' -emoji[monorail]=$'\U1F69D' -emoji[mountain_railway]=$'\U1F69E' +emoji[racing_car]=$'\U1F3CE\UFE0F' +emoji[racing_car_unqualified]=$'\U1F3CE' +emoji[motorcycle]=$'\U1F3CD\UFE0F' +emoji[motorcycle_unqualified]=$'\U1F3CD' +emoji[motor_scooter]=$'\U1F6F5' +emoji[manual_wheelchair]=$'\U1F9BD' +emoji[motorized_wheelchair]=$'\U1F9BC' +emoji[auto_rickshaw]=$'\U1F6FA' +emoji[bicycle]=$'\U1F6B2' +emoji[bike]=$'\U1F6B2' +emoji[kick_scooter]=$'\U1F6F4' +emoji[skateboard]=$'\U1F6F9' +emoji[bus_stop]=$'\U1F68F' +emoji[busstop]=$'\U1F68F' +emoji[motorway]=$'\U1F6E3\UFE0F' +emoji[motorway_unqualified]=$'\U1F6E3' +emoji[railway_track]=$'\U1F6E4\UFE0F' +emoji[railway_track_unqualified]=$'\U1F6E4' +emoji[oil_drum]=$'\U1F6E2\UFE0F' +emoji[oil_drum_unqualified]=$'\U1F6E2' +emoji[fuel_pump]=$'\U26FD' +emoji[fuelpump]=$'\U26FD' +emoji[police_car_light]=$'\U1F6A8' +emoji[rotating_light]=$'\U1F6A8' +emoji[horizontal_traffic_light]=$'\U1F6A5' +emoji[traffic_light]=$'\U1F6A5' +emoji[vertical_traffic_light]=$'\U1F6A6' +emoji[stop_sign]=$'\U1F6D1' +emoji[construction]=$'\U1F6A7' +emoji[anchor]=$'\U2693' +emoji[sailboat]=$'\U26F5' +emoji[boat]=$'\U26F5' +emoji[canoe]=$'\U1F6F6' +emoji[speedboat]=$'\U1F6A4' +emoji[passenger_ship]=$'\U1F6F3\UFE0F' +emoji[passenger_ship_unqualified]=$'\U1F6F3' +emoji[ferry]=$'\U26F4\UFE0F' +emoji[ferry_unqualified]=$'\U26F4' +emoji[motor_boat]=$'\U1F6E5\UFE0F' +emoji[motor_boat_unqualified]=$'\U1F6E5' +emoji[ship]=$'\U1F6A2' +emoji[airplane]=$'\U2708\UFE0F' +emoji[airplane_unqualified]=$'\U2708' +emoji[small_airplane]=$'\U1F6E9\UFE0F' +emoji[small_airplane_unqualified]=$'\U1F6E9' +emoji[airplane_departure]=$'\U1F6EB' +emoji[flight_departure]=$'\U1F6EB' +emoji[airplane_arrival]=$'\U1F6EC' +emoji[flight_arrival]=$'\U1F6EC' +emoji[parachute]=$'\U1FA82' +emoji[seat]=$'\U1F4BA' +emoji[helicopter]=$'\U1F681' emoji[suspension_railway]=$'\U1F69F' emoji[mountain_cableway]=$'\U1F6A0' emoji[aerial_tramway]=$'\U1F6A1' -emoji[ship]=$'\U1F6A2' -emoji[rowboat]=$'\U1F6A3' -emoji[speedboat]=$'\U1F6A4' -emoji[horizontal_traffic_light]=$'\U1F6A5' -emoji[vertical_traffic_light]=$'\U1F6A6' -emoji[construction_sign]=$'\U1F6A7' -emoji[police_cars_revolving_light]=$'\U1F6A8' -emoji[triangular_flag_on_post]=$'\U1F6A9' +emoji[satellite]=$'\U1F6F0\UFE0F' +emoji[satellite_unqualified]=$'\U1F6F0' +emoji[artificial_satellite]=$'\U1F6F0' +emoji[rocket]=$'\U1F680' +emoji[flying_saucer]=$'\U1F6F8' +emoji[bellhop_bell]=$'\U1F6CE\UFE0F' +emoji[bellhop_bell_unqualified]=$'\U1F6CE' +emoji[luggage]=$'\U1F9F3' +emoji[hourglass_done]=$'\U231B' +emoji[hourglass]=$'\U231B' +emoji[hourglass_not_done]=$'\U23F3' +emoji[hourglass_flowing_sand]=$'\U23F3' +emoji[watch]=$'\U231A' +emoji[alarm_clock]=$'\U23F0' +emoji[stopwatch]=$'\U23F1\UFE0F' +emoji[stopwatch_unqualified]=$'\U23F1' +emoji[timer_clock]=$'\U23F2\UFE0F' +emoji[timer_clock_unqualified]=$'\U23F2' +emoji[mantelpiece_clock]=$'\U1F570\UFE0F' +emoji[mantelpiece_clock_unqualified]=$'\U1F570' +emoji[twelve_o_clock]=$'\U1F55B' +emoji[clock12]=$'\U1F55B' +emoji[twelve_thirty]=$'\U1F567' +emoji[clock1230]=$'\U1F567' +emoji[one_o_clock]=$'\U1F550' +emoji[clock1]=$'\U1F550' +emoji[one_thirty]=$'\U1F55C' +emoji[clock130]=$'\U1F55C' +emoji[two_o_clock]=$'\U1F551' +emoji[clock2]=$'\U1F551' +emoji[two_thirty]=$'\U1F55D' +emoji[clock230]=$'\U1F55D' +emoji[three_o_clock]=$'\U1F552' +emoji[clock3]=$'\U1F552' +emoji[three_thirty]=$'\U1F55E' +emoji[clock330]=$'\U1F55E' +emoji[four_o_clock]=$'\U1F553' +emoji[clock4]=$'\U1F553' +emoji[four_thirty]=$'\U1F55F' +emoji[clock430]=$'\U1F55F' +emoji[five_o_clock]=$'\U1F554' +emoji[clock5]=$'\U1F554' +emoji[five_thirty]=$'\U1F560' +emoji[clock530]=$'\U1F560' +emoji[six_o_clock]=$'\U1F555' +emoji[clock6]=$'\U1F555' +emoji[six_thirty]=$'\U1F561' +emoji[clock630]=$'\U1F561' +emoji[seven_o_clock]=$'\U1F556' +emoji[clock7]=$'\U1F556' +emoji[seven_thirty]=$'\U1F562' +emoji[clock730]=$'\U1F562' +emoji[eight_o_clock]=$'\U1F557' +emoji[clock8]=$'\U1F557' +emoji[eight_thirty]=$'\U1F563' +emoji[clock830]=$'\U1F563' +emoji[nine_o_clock]=$'\U1F558' +emoji[clock9]=$'\U1F558' +emoji[nine_thirty]=$'\U1F564' +emoji[clock930]=$'\U1F564' +emoji[ten_o_clock]=$'\U1F559' +emoji[clock10]=$'\U1F559' +emoji[ten_thirty]=$'\U1F565' +emoji[clock1030]=$'\U1F565' +emoji[eleven_o_clock]=$'\U1F55A' +emoji[clock11]=$'\U1F55A' +emoji[eleven_thirty]=$'\U1F566' +emoji[clock1130]=$'\U1F566' +emoji[new_moon]=$'\U1F311' +emoji[waxing_crescent_moon]=$'\U1F312' +emoji[first_quarter_moon]=$'\U1F313' +emoji[waxing_gibbous_moon]=$'\U1F314' +emoji[moon]=$'\U1F314' +emoji[full_moon]=$'\U1F315' +emoji[waning_gibbous_moon]=$'\U1F316' +emoji[last_quarter_moon]=$'\U1F317' +emoji[waning_crescent_moon]=$'\U1F318' +emoji[waning_crescent_moon_1]=$'\U1F319' +emoji[crescent_moon]=$'\U1F319' +emoji[new_moon_face]=$'\U1F31A' +emoji[new_moon_with_face]=$'\U1F31A' +emoji[first_quarter_moon_face]=$'\U1F31B' +emoji[first_quarter_moon_with_face]=$'\U1F31B' +emoji[last_quarter_moon_face]=$'\U1F31C' +emoji[last_quarter_moon_with_face]=$'\U1F31C' +emoji[thermometer]=$'\U1F321\UFE0F' +emoji[thermometer_unqualified]=$'\U1F321' +emoji[sun]=$'\U2600\UFE0F' +emoji[sunny]=$'\U2600\UFE0F' +emoji[sun_unqualified]=$'\U2600' +emoji[full_moon_face]=$'\U1F31D' +emoji[full_moon_with_face]=$'\U1F31D' +emoji[sun_with_face]=$'\U1F31E' +emoji[ringed_planet]=$'\U1FA90' +emoji[star]=$'\U2B50' +emoji[glowing_star]=$'\U1F31F' +emoji[star2]=$'\U1F31F' +emoji[shooting_star]=$'\U1F320' +emoji[stars]=$'\U1F320' +emoji[milky_way]=$'\U1F30C' +emoji[cloud]=$'\U2601\UFE0F' +emoji[cloud_unqualified]=$'\U2601' +emoji[sun_behind_cloud]=$'\U26C5' +emoji[partly_sunny]=$'\U26C5' +emoji[cloud_with_lightning_and_rain]=$'\U26C8\UFE0F' +emoji[cloud_with_lightning_and_rain_unqualified]=$'\U26C8' +emoji[sun_behind_small_cloud]=$'\U1F324\UFE0F' +emoji[sun_behind_small_cloud_unqualified]=$'\U1F324' +emoji[sun_behind_large_cloud]=$'\U1F325\UFE0F' +emoji[sun_behind_large_cloud_unqualified]=$'\U1F325' +emoji[sun_behind_rain_cloud]=$'\U1F326\UFE0F' +emoji[sun_behind_rain_cloud_unqualified]=$'\U1F326' +emoji[cloud_with_rain]=$'\U1F327\UFE0F' +emoji[cloud_with_rain_unqualified]=$'\U1F327' +emoji[cloud_with_snow]=$'\U1F328\UFE0F' +emoji[cloud_with_snow_unqualified]=$'\U1F328' +emoji[cloud_with_lightning]=$'\U1F329\UFE0F' +emoji[cloud_with_lightning_unqualified]=$'\U1F329' +emoji[tornado]=$'\U1F32A\UFE0F' +emoji[tornado_unqualified]=$'\U1F32A' +emoji[fog]=$'\U1F32B\UFE0F' +emoji[fog_unqualified]=$'\U1F32B' +emoji[wind_face]=$'\U1F32C\UFE0F' +emoji[wind_face_unqualified]=$'\U1F32C' +emoji[cyclone]=$'\U1F300' +emoji[rainbow]=$'\U1F308' +emoji[closed_umbrella]=$'\U1F302' +emoji[closed_umbrella_1]=$'\U2602\UFE0F' +emoji[open_umbrella]=$'\U2602\UFE0F' +emoji[umbrella_unqualified]=$'\U2602' +emoji[umbrella_with_rain_drops]=$'\U2614' +emoji[umbrella]=$'\U2614' +emoji[umbrella_on_ground]=$'\U26F1\UFE0F' +emoji[umbrella_on_ground_unqualified]=$'\U26F1' +emoji[parasol_on_ground]=$'\U26F1' +emoji[high_voltage]=$'\U26A1' +emoji[zap]=$'\U26A1' +emoji[snowflake]=$'\U2744\UFE0F' +emoji[snowflake_unqualified]=$'\U2744' +emoji[snowman]=$'\U2603\UFE0F' +emoji[snowman_with_snow]=$'\U2603\UFE0F' +emoji[snowman_unqualified]=$'\U2603' +emoji[snowman_without_snow]=$'\U26C4' +emoji[comet]=$'\U2604\UFE0F' +emoji[comet_unqualified]=$'\U2604' +emoji[fire]=$'\U1F525' +emoji[droplet]=$'\U1F4A7' +emoji[water_wave]=$'\U1F30A' +emoji[ocean]=$'\U1F30A' +emoji[jack_o_lantern]=$'\U1F383' +emoji[Christmas_tree]=$'\U1F384' +emoji[christmas_tree]=$'\U1F384' +emoji[fireworks]=$'\U1F386' +emoji[sparkler]=$'\U1F387' +emoji[firecracker]=$'\U1F9E8' +emoji[sparkles]=$'\U2728' +emoji[balloon]=$'\U1F388' +emoji[party_popper]=$'\U1F389' +emoji[tada]=$'\U1F389' +emoji[confetti_ball]=$'\U1F38A' +emoji[tanabata_tree]=$'\U1F38B' +emoji[pine_decoration]=$'\U1F38D' +emoji[bamboo]=$'\U1F38D' +emoji[Japanese_dolls]=$'\U1F38E' +emoji[dolls]=$'\U1F38E' +emoji[carp_streamer]=$'\U1F38F' +emoji[flags]=$'\U1F38F' +emoji[wind_chime]=$'\U1F390' +emoji[moon_viewing_ceremony]=$'\U1F391' +emoji[rice_scene]=$'\U1F391' +emoji[red_envelope]=$'\U1F9E7' +emoji[ribbon]=$'\U1F380' +emoji[wrapped_gift]=$'\U1F381' +emoji[gift]=$'\U1F381' +emoji[reminder_ribbon]=$'\U1F397\UFE0F' +emoji[reminder_ribbon_unqualified]=$'\U1F397' +emoji[admission_tickets]=$'\U1F39F\UFE0F' +emoji[admission_tickets_unqualified]=$'\U1F39F' +emoji[tickets]=$'\U1F39F' +emoji[admission_tickets_unqualified_1]=$'\U1F3AB' +emoji[ticket]=$'\U1F3AB' +emoji[military_medal]=$'\U1F396\UFE0F' +emoji[military_medal_unqualified]=$'\U1F396' +emoji[medal_military]=$'\U1F396' +emoji[trophy]=$'\U1F3C6' +emoji[sports_medal]=$'\U1F3C5' +emoji[medal_sports]=$'\U1F3C5' +emoji[1st_place_medal]=$'\U1F947' +emoji[2nd_place_medal]=$'\U1F948' +emoji[3rd_place_medal]=$'\U1F949' +emoji[soccer_ball]=$'\U26BD' +emoji[soccer]=$'\U26BD' +emoji[baseball]=$'\U26BE' +emoji[softball]=$'\U1F94E' +emoji[basketball]=$'\U1F3C0' +emoji[volleyball]=$'\U1F3D0' +emoji[american_football]=$'\U1F3C8' +emoji[football]=$'\U1F3C8' +emoji[rugby_football]=$'\U1F3C9' +emoji[tennis]=$'\U1F3BE' +emoji[flying_disc]=$'\U1F94F' +emoji[bowling]=$'\U1F3B3' +emoji[cricket_game]=$'\U1F3CF' +emoji[field_hockey]=$'\U1F3D1' +emoji[ice_hockey]=$'\U1F3D2' +emoji[lacrosse]=$'\U1F94D' +emoji[ping_pong]=$'\U1F3D3' +emoji[badminton]=$'\U1F3F8' +emoji[boxing_glove]=$'\U1F94A' +emoji[martial_arts_uniform]=$'\U1F94B' +emoji[goal_net]=$'\U1F945' +emoji[flag_in_hole]=$'\U26F3' +emoji[golf]=$'\U26F3' +emoji[ice_skate]=$'\U26F8\UFE0F' +emoji[ice_skate_unqualified]=$'\U26F8' +emoji[fishing_pole]=$'\U1F3A3' +emoji[fishing_pole_and_fish]=$'\U1F3A3' +emoji[diving_mask]=$'\U1F93F' +emoji[running_shirt]=$'\U1F3BD' +emoji[running_shirt_with_sash]=$'\U1F3BD' +emoji[skis]=$'\U1F3BF' +emoji[ski]=$'\U1F3BF' +emoji[sled]=$'\U1F6F7' +emoji[curling_stone]=$'\U1F94C' +emoji[direct_hit]=$'\U1F3AF' +emoji[dart]=$'\U1F3AF' +emoji[yo_yo]=$'\U1FA80' +emoji[kite]=$'\U1FA81' +emoji[pool_8_ball]=$'\U1F3B1' +emoji[8ball]=$'\U1F3B1' +emoji[crystal_ball]=$'\U1F52E' +emoji[nazar_amulet]=$'\U1F9FF' +emoji[video_game]=$'\U1F3AE' +emoji[joystick]=$'\U1F579\UFE0F' +emoji[joystick_unqualified]=$'\U1F579' +emoji[slot_machine]=$'\U1F3B0' +emoji[game_die]=$'\U1F3B2' +emoji[puzzle_piece]=$'\U1F9E9' +emoji[jigsaw]=$'\U1F9E9' +emoji[teddy_bear]=$'\U1F9F8' +emoji[spade_suit]=$'\U2660\UFE0F' +emoji[spades]=$'\U2660\UFE0F' +emoji[spade_suit_unqualified]=$'\U2660' +emoji[heart_suit]=$'\U2665\UFE0F' +emoji[hearts]=$'\U2665\UFE0F' +emoji[heart_suit_unqualified]=$'\U2665' +emoji[diamond_suit]=$'\U2666\UFE0F' +emoji[diamonds]=$'\U2666\UFE0F' +emoji[diamond_suit_unqualified]=$'\U2666' +emoji[club_suit]=$'\U2663\UFE0F' +emoji[clubs]=$'\U2663\UFE0F' +emoji[club_suit_unqualified]=$'\U2663' +emoji[chess_pawn]=$'\U265F\UFE0F' +emoji[chess_pawn_unqualified]=$'\U265F' +emoji[joker]=$'\U1F0CF' +emoji[black_joker]=$'\U1F0CF' +emoji[mahjong_red_dragon]=$'\U1F004' +emoji[mahjong]=$'\U1F004' +emoji[flower_playing_cards]=$'\U1F3B4' +emoji[performing_arts]=$'\U1F3AD' +emoji[framed_picture]=$'\U1F5BC\UFE0F' +emoji[framed_picture_unqualified]=$'\U1F5BC' +emoji[artist_palette]=$'\U1F3A8' +emoji[art]=$'\U1F3A8' +emoji[thread]=$'\U1F9F5' +emoji[yarn]=$'\U1F9F6' +emoji[glasses]=$'\U1F453' +emoji[eyeglasses]=$'\U1F453' +emoji[sunglasses]=$'\U1F576\UFE0F' +emoji[sunglasses_unqualified]=$'\U1F576' +emoji[dark_sunglasses]=$'\U1F576' +emoji[goggles]=$'\U1F97D' +emoji[lab_coat]=$'\U1F97C' +emoji[safety_vest]=$'\U1F9BA' +emoji[necktie]=$'\U1F454' +emoji[t_shirt]=$'\U1F455' +emoji[shirt]=$'\U1F455' +emoji[tshirt]=$'\U1F455' +emoji[jeans]=$'\U1F456' +emoji[scarf]=$'\U1F9E3' +emoji[gloves]=$'\U1F9E4' +emoji[coat]=$'\U1F9E5' +emoji[socks]=$'\U1F9E6' +emoji[dress]=$'\U1F457' +emoji[kimono]=$'\U1F458' +emoji[sari]=$'\U1F97B' +emoji[one_piece_swimsuit]=$'\U1FA71' +emoji[swim_brief]=$'\U1FA72' +emoji[shorts]=$'\U1FA73' +emoji[bikini]=$'\U1F459' +emoji[woman_s_clothes]=$'\U1F45A' +emoji[womans_clothes]=$'\U1F45A' +emoji[purse]=$'\U1F45B' +emoji[handbag]=$'\U1F45C' +emoji[clutch_bag]=$'\U1F45D' +emoji[pouch]=$'\U1F45D' +emoji[shopping_bags]=$'\U1F6CD\UFE0F' +emoji[shopping_bags_unqualified]=$'\U1F6CD' +emoji[shopping]=$'\U1F6CD' +emoji[backpack]=$'\U1F392' +emoji[school_satchel]=$'\U1F392' +emoji[man_s_shoe]=$'\U1F45E' +emoji[mans_shoe]=$'\U1F45E' +emoji[shoe]=$'\U1F45E' +emoji[running_shoe]=$'\U1F45F' +emoji[athletic_shoe]=$'\U1F45F' +emoji[hiking_boot]=$'\U1F97E' +emoji[flat_shoe]=$'\U1F97F' +emoji[high_heeled_shoe]=$'\U1F460' +emoji[high_heel]=$'\U1F460' +emoji[woman_s_sandal]=$'\U1F461' +emoji[sandal]=$'\U1F461' +emoji[ballet_shoes]=$'\U1FA70' +emoji[woman_s_boot]=$'\U1F462' +emoji[boot]=$'\U1F462' +emoji[crown]=$'\U1F451' +emoji[woman_s_hat]=$'\U1F452' +emoji[womans_hat]=$'\U1F452' +emoji[top_hat]=$'\U1F3A9' +emoji[tophat]=$'\U1F3A9' +emoji[graduation_cap]=$'\U1F393' +emoji[mortar_board]=$'\U1F393' +emoji[billed_cap]=$'\U1F9E2' +emoji[rescue_worker_s_helmet]=$'\U26D1\UFE0F' +emoji[rescue_worker_s_helmet_unqualified]=$'\U26D1' +emoji[rescue_worker_helmet]=$'\U26D1' +emoji[prayer_beads]=$'\U1F4FF' +emoji[lipstick]=$'\U1F484' +emoji[ring]=$'\U1F48D' +emoji[gem_stone]=$'\U1F48E' +emoji[gem]=$'\U1F48E' +emoji[muted_speaker]=$'\U1F507' +emoji[mute]=$'\U1F507' +emoji[speaker_low_volume]=$'\U1F508' +emoji[speaker]=$'\U1F508' +emoji[speaker_medium_volume]=$'\U1F509' +emoji[sound]=$'\U1F509' +emoji[speaker_high_volume]=$'\U1F50A' +emoji[loud_sound]=$'\U1F50A' +emoji[loudspeaker]=$'\U1F4E2' +emoji[megaphone]=$'\U1F4E3' +emoji[mega]=$'\U1F4E3' +emoji[postal_horn]=$'\U1F4EF' +emoji[bell]=$'\U1F514' +emoji[bell_with_slash]=$'\U1F515' +emoji[no_bell]=$'\U1F515' +emoji[musical_score]=$'\U1F3BC' +emoji[musical_note]=$'\U1F3B5' +emoji[musical_notes]=$'\U1F3B6' +emoji[notes]=$'\U1F3B6' +emoji[studio_microphone]=$'\U1F399\UFE0F' +emoji[studio_microphone_unqualified]=$'\U1F399' +emoji[level_slider]=$'\U1F39A\UFE0F' +emoji[level_slider_unqualified]=$'\U1F39A' +emoji[control_knobs]=$'\U1F39B\UFE0F' +emoji[control_knobs_unqualified]=$'\U1F39B' +emoji[microphone]=$'\U1F3A4' +emoji[headphone]=$'\U1F3A7' +emoji[headphones]=$'\U1F3A7' +emoji[radio]=$'\U1F4FB' +emoji[saxophone]=$'\U1F3B7' +emoji[guitar]=$'\U1F3B8' +emoji[musical_keyboard]=$'\U1F3B9' +emoji[trumpet]=$'\U1F3BA' +emoji[violin]=$'\U1F3BB' +emoji[banjo]=$'\U1FA95' +emoji[drum]=$'\U1F941' +emoji[mobile_phone]=$'\U1F4F1' +emoji[iphone]=$'\U1F4F1' +emoji[mobile_phone_with_arrow]=$'\U1F4F2' +emoji[calling]=$'\U1F4F2' +emoji[telephone]=$'\U260E\UFE0F' +emoji[phone]=$'\U260E\UFE0F' +emoji[telephone_unqualified]=$'\U260E' +emoji[telephone_receiver]=$'\U1F4DE' +emoji[pager]=$'\U1F4DF' +emoji[fax_machine]=$'\U1F4E0' +emoji[fax]=$'\U1F4E0' +emoji[battery]=$'\U1F50B' +emoji[electric_plug]=$'\U1F50C' +emoji[laptop_computer]=$'\U1F4BB' +emoji[computer]=$'\U1F4BB' +emoji[desktop_computer]=$'\U1F5A5\UFE0F' +emoji[desktop_computer_unqualified]=$'\U1F5A5' +emoji[printer]=$'\U1F5A8\UFE0F' +emoji[printer_unqualified]=$'\U1F5A8' +emoji[keyboard]=$'\U2328\UFE0F' +emoji[keyboard_unqualified]=$'\U2328' +emoji[computer_mouse]=$'\U1F5B1\UFE0F' +emoji[computer_mouse_unqualified]=$'\U1F5B1' +emoji[trackball]=$'\U1F5B2\UFE0F' +emoji[trackball_unqualified]=$'\U1F5B2' +emoji[computer_disk]=$'\U1F4BD' +emoji[minidisc]=$'\U1F4BD' +emoji[floppy_disk]=$'\U1F4BE' +emoji[optical_disk]=$'\U1F4BF' +emoji[cd]=$'\U1F4BF' +emoji[dvd]=$'\U1F4C0' +emoji[abacus]=$'\U1F9EE' +emoji[movie_camera]=$'\U1F3A5' +emoji[film_frames]=$'\U1F39E\UFE0F' +emoji[film_frames_unqualified]=$'\U1F39E' +emoji[film_strip]=$'\U1F39E' +emoji[film_projector]=$'\U1F4FD\UFE0F' +emoji[film_projector_unqualified]=$'\U1F4FD' +emoji[clapper_board]=$'\U1F3AC' +emoji[clapper]=$'\U1F3AC' +emoji[television]=$'\U1F4FA' +emoji[tv]=$'\U1F4FA' +emoji[camera]=$'\U1F4F7' +emoji[camera_with_flash]=$'\U1F4F8' +emoji[camera_flash]=$'\U1F4F8' +emoji[video_camera]=$'\U1F4F9' +emoji[videocassette]=$'\U1F4FC' +emoji[vhs]=$'\U1F4FC' +emoji[magnifying_glass_tilted_left]=$'\U1F50D' +emoji[mag]=$'\U1F50D' +emoji[magnifying_glass_tilted_right]=$'\U1F50E' +emoji[mag_right]=$'\U1F50E' +emoji[candle]=$'\U1F56F\UFE0F' +emoji[candle_unqualified]=$'\U1F56F' +emoji[light_bulb]=$'\U1F4A1' +emoji[bulb]=$'\U1F4A1' +emoji[flashlight]=$'\U1F526' +emoji[red_paper_lantern]=$'\U1F3EE' +emoji[izakaya_lantern]=$'\U1F3EE' +emoji[lantern]=$'\U1F3EE' +emoji[diya_lamp]=$'\U1FA94' +emoji[notebook_with_decorative_cover]=$'\U1F4D4' +emoji[closed_book]=$'\U1F4D5' +emoji[open_book]=$'\U1F4D6' +emoji[book]=$'\U1F4D6' +emoji[green_book]=$'\U1F4D7' +emoji[blue_book]=$'\U1F4D8' +emoji[orange_book]=$'\U1F4D9' +emoji[books]=$'\U1F4DA' +emoji[notebook]=$'\U1F4D3' +emoji[ledger]=$'\U1F4D2' +emoji[page_with_curl]=$'\U1F4C3' +emoji[scroll]=$'\U1F4DC' +emoji[page_facing_up]=$'\U1F4C4' +emoji[newspaper]=$'\U1F4F0' +emoji[rolled_up_newspaper]=$'\U1F5DE\UFE0F' +emoji[rolled_up_newspaper_unqualified]=$'\U1F5DE' +emoji[newspaper_roll]=$'\U1F5DE' +emoji[bookmark_tabs]=$'\U1F4D1' +emoji[bookmark_tabs_1]=$'\U1F516' +emoji[bookmark]=$'\U1F516' +emoji[label]=$'\U1F3F7\UFE0F' +emoji[label_unqualified]=$'\U1F3F7' +emoji[money_bag]=$'\U1F4B0' +emoji[moneybag]=$'\U1F4B0' +emoji[yen_banknote]=$'\U1F4B4' +emoji[yen]=$'\U1F4B4' +emoji[dollar_banknote]=$'\U1F4B5' +emoji[dollar]=$'\U1F4B5' +emoji[euro_banknote]=$'\U1F4B6' +emoji[euro]=$'\U1F4B6' +emoji[pound_banknote]=$'\U1F4B7' +emoji[pound]=$'\U1F4B7' +emoji[money_with_wings]=$'\U1F4B8' +emoji[credit_card]=$'\U1F4B3' +emoji[receipt]=$'\U1F9FE' +emoji[chart_increasing_with_yen]=$'\U1F4B9' +emoji[chart]=$'\U1F4B9' +emoji[currency_exchange]=$'\U1F4B1' +emoji[heavy_dollar_sign]=$'\U1F4B2' +emoji[envelope]=$'\U2709\UFE0F' +emoji[email]=$'\U2709\UFE0F' +emoji[envelope_unqualified]=$'\U2709' +emoji[e_mail]=$'\U1F4E7' +emoji[e-mail]=$'\U1F4E7' +emoji[incoming_envelope]=$'\U1F4E8' +emoji[envelope_with_arrow]=$'\U1F4E9' +emoji[outbox_tray]=$'\U1F4E4' +emoji[inbox_tray]=$'\U1F4E5' +emoji[package]=$'\U1F4E6' +emoji[closed_mailbox_with_raised_flag]=$'\U1F4EB' +emoji[mailbox]=$'\U1F4EB' +emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA' +emoji[mailbox_closed]=$'\U1F4EA' +emoji[open_mailbox_with_raised_flag]=$'\U1F4EC' +emoji[mailbox_with_mail]=$'\U1F4EC' +emoji[open_mailbox_with_lowered_flag]=$'\U1F4ED' +emoji[mailbox_with_no_mail]=$'\U1F4ED' +emoji[postbox]=$'\U1F4EE' +emoji[ballot_box_with_ballot]=$'\U1F5F3\UFE0F' +emoji[ballot_box_with_ballot_unqualified]=$'\U1F5F3' +emoji[ballot_box]=$'\U1F5F3' +emoji[pencil]=$'\U270F\UFE0F' +emoji[pencil2]=$'\U270F\UFE0F' +emoji[pencil_unqualified]=$'\U270F' +emoji[black_nib]=$'\U2712\UFE0F' +emoji[black_nib_unqualified]=$'\U2712' +emoji[fountain_pen]=$'\U1F58B\UFE0F' +emoji[fountain_pen_unqualified]=$'\U1F58B' +emoji[fountain_pen_unqualified_1]=$'\U1F58A\UFE0F' +emoji[fountain_pen_unqualified_2]=$'\U1F58A' +emoji[pen]=$'\U1F58A' +emoji[paintbrush]=$'\U1F58C\UFE0F' +emoji[paintbrush_unqualified]=$'\U1F58C' +emoji[crayon]=$'\U1F58D\UFE0F' +emoji[crayon_unqualified]=$'\U1F58D' +emoji[memo]=$'\U1F4DD' +emoji[briefcase]=$'\U1F4BC' +emoji[file_folder]=$'\U1F4C1' +emoji[open_file_folder]=$'\U1F4C2' +emoji[card_index_dividers]=$'\U1F5C2\UFE0F' +emoji[card_index_dividers_unqualified]=$'\U1F5C2' +emoji[calendar]=$'\U1F4C5' +emoji[date]=$'\U1F4C5' +emoji[tear_off_calendar]=$'\U1F4C6' +emoji[spiral_notepad]=$'\U1F5D2\UFE0F' +emoji[spiral_notepad_unqualified]=$'\U1F5D2' +emoji[spiral_calendar]=$'\U1F5D3\UFE0F' +emoji[spiral_calendar_unqualified]=$'\U1F5D3' +emoji[card_index]=$'\U1F4C7' +emoji[chart_increasing]=$'\U1F4C8' +emoji[chart_with_upwards_trend]=$'\U1F4C8' +emoji[chart_decreasing]=$'\U1F4C9' +emoji[chart_with_downwards_trend]=$'\U1F4C9' +emoji[bar_chart]=$'\U1F4CA' +emoji[clipboard]=$'\U1F4CB' +emoji[pushpin]=$'\U1F4CC' +emoji[round_pushpin]=$'\U1F4CD' +emoji[paperclip]=$'\U1F4CE' +emoji[linked_paperclips]=$'\U1F587\UFE0F' +emoji[linked_paperclips_unqualified]=$'\U1F587' +emoji[paperclips]=$'\U1F587' +emoji[straight_ruler]=$'\U1F4CF' +emoji[triangular_ruler]=$'\U1F4D0' +emoji[scissors]=$'\U2702\UFE0F' +emoji[scissors_unqualified]=$'\U2702' +emoji[card_file_box]=$'\U1F5C3\UFE0F' +emoji[card_file_box_unqualified]=$'\U1F5C3' +emoji[file_cabinet]=$'\U1F5C4\UFE0F' +emoji[file_cabinet_unqualified]=$'\U1F5C4' +emoji[wastebasket]=$'\U1F5D1\UFE0F' +emoji[wastebasket_unqualified]=$'\U1F5D1' +emoji[locked]=$'\U1F512' +emoji[lock]=$'\U1F512' +emoji[unlocked]=$'\U1F513' +emoji[unlock]=$'\U1F513' +emoji[locked_with_pen]=$'\U1F50F' +emoji[lock_with_ink_pen]=$'\U1F50F' +emoji[locked_with_key]=$'\U1F510' +emoji[closed_lock_with_key]=$'\U1F510' +emoji[locked_with_key_1]=$'\U1F511' +emoji[key]=$'\U1F511' +emoji[old_key]=$'\U1F5DD\UFE0F' +emoji[old_key_unqualified]=$'\U1F5DD' +emoji[hammer]=$'\U1F528' +emoji[axe]=$'\U1FA93' +emoji[pick]=$'\U26CF\UFE0F' +emoji[pick_unqualified]=$'\U26CF' +emoji[hammer_and_pick]=$'\U2692\UFE0F' +emoji[hammer_and_pick_unqualified]=$'\U2692' +emoji[hammer_and_wrench]=$'\U1F6E0\UFE0F' +emoji[hammer_and_wrench_unqualified]=$'\U1F6E0' +emoji[dagger]=$'\U1F5E1\UFE0F' +emoji[dagger_unqualified]=$'\U1F5E1' +emoji[crossed_swords]=$'\U2694\UFE0F' +emoji[crossed_swords_unqualified]=$'\U2694' +emoji[pistol]=$'\U1F52B' +emoji[gun]=$'\U1F52B' +emoji[bow_and_arrow]=$'\U1F3F9' +emoji[shield]=$'\U1F6E1\UFE0F' +emoji[shield_unqualified]=$'\U1F6E1' +emoji[wrench]=$'\U1F527' +emoji[nut_and_bolt]=$'\U1F529' +emoji[gear]=$'\U2699\UFE0F' +emoji[gear_unqualified]=$'\U2699' +emoji[clamp]=$'\U1F5DC\UFE0F' +emoji[clamp_unqualified]=$'\U1F5DC' +emoji[balance_scale]=$'\U2696\UFE0F' +emoji[balance_scale_unqualified]=$'\U2696' +emoji[probing_cane]=$'\U1F9AF' +emoji[link]=$'\U1F517' +emoji[chains]=$'\U26D3\UFE0F' +emoji[chains_unqualified]=$'\U26D3' +emoji[toolbox]=$'\U1F9F0' +emoji[magnet]=$'\U1F9F2' +emoji[alembic]=$'\U2697\UFE0F' +emoji[alembic_unqualified]=$'\U2697' +emoji[test_tube]=$'\U1F9EA' +emoji[petri_dish]=$'\U1F9EB' +emoji[dna]=$'\U1F9EC' +emoji[microscope]=$'\U1F52C' +emoji[telescope]=$'\U1F52D' +emoji[satellite_antenna]=$'\U1F4E1' +emoji[syringe]=$'\U1F489' +emoji[drop_of_blood]=$'\U1FA78' +emoji[pill]=$'\U1F48A' +emoji[adhesive_bandage]=$'\U1FA79' +emoji[stethoscope]=$'\U1FA7A' emoji[door]=$'\U1F6AA' -emoji[no_entry_sign]=$'\U1F6AB' -emoji[smoking_symbol]=$'\U1F6AC' -emoji[no_smoking_symbol]=$'\U1F6AD' -emoji[put_litter_in_its_place_symbol]=$'\U1F6AE' -emoji[do_not_litter_symbol]=$'\U1F6AF' -emoji[potable_water_symbol]=$'\U1F6B0' -emoji[non_potable_water_symbol]=$'\U1F6B1' -emoji[bicycle]=$'\U1F6B2' -emoji[no_bicycles]=$'\U1F6B3' -emoji[bicyclist]=$'\U1F6B4' -emoji[mountain_bicyclist]=$'\U1F6B5' -emoji[pedestrian]=$'\U1F6B6' -emoji[no_pedestrians]=$'\U1F6B7' -emoji[children_crossing]=$'\U1F6B8' -emoji[mens_symbol]=$'\U1F6B9' -emoji[womens_symbol]=$'\U1F6BA' +emoji[bed]=$'\U1F6CF\UFE0F' +emoji[bed_unqualified]=$'\U1F6CF' +emoji[couch_and_lamp]=$'\U1F6CB\UFE0F' +emoji[couch_and_lamp_unqualified]=$'\U1F6CB' +emoji[chair]=$'\U1FA91' +emoji[toilet]=$'\U1F6BD' +emoji[shower]=$'\U1F6BF' +emoji[bathtub]=$'\U1F6C1' +emoji[razor]=$'\U1FA92' +emoji[lotion_bottle]=$'\U1F9F4' +emoji[safety_pin]=$'\U1F9F7' +emoji[broom]=$'\U1F9F9' +emoji[basket]=$'\U1F9FA' +emoji[roll_of_paper]=$'\U1F9FB' +emoji[soap]=$'\U1F9FC' +emoji[sponge]=$'\U1F9FD' +emoji[fire_extinguisher]=$'\U1F9EF' +emoji[shopping_cart]=$'\U1F6D2' +emoji[cigarette]=$'\U1F6AC' +emoji[smoking]=$'\U1F6AC' +emoji[coffin]=$'\U26B0\UFE0F' +emoji[coffin_unqualified]=$'\U26B0' +emoji[funeral_urn]=$'\U26B1\UFE0F' +emoji[funeral_urn_unqualified]=$'\U26B1' +emoji[moai]=$'\U1F5FF' +emoji[moyai]=$'\U1F5FF' +emoji[ATM_sign]=$'\U1F3E7' +emoji[atm]=$'\U1F3E7' +emoji[litter_in_bin_sign]=$'\U1F6AE' +emoji[put_litter_in_its_place]=$'\U1F6AE' +emoji[potable_water]=$'\U1F6B0' +emoji[wheelchair_symbol]=$'\U267F' +emoji[wheelchair]=$'\U267F' +emoji[men_s_room]=$'\U1F6B9' +emoji[mens]=$'\U1F6B9' +emoji[women_s_room]=$'\U1F6BA' +emoji[womens]=$'\U1F6BA' emoji[restroom]=$'\U1F6BB' emoji[baby_symbol]=$'\U1F6BC' -emoji[toilet]=$'\U1F6BD' emoji[water_closet]=$'\U1F6BE' -emoji[shower]=$'\U1F6BF' -emoji[bath]=$'\U1F6C0' -emoji[bathtub]=$'\U1F6C1' +emoji[wc]=$'\U1F6BE' emoji[passport_control]=$'\U1F6C2' emoji[customs]=$'\U1F6C3' emoji[baggage_claim]=$'\U1F6C4' emoji[left_luggage]=$'\U1F6C5' -emoji[couch_and_lamp]=$'\U1F6CB' -emoji[sleeping_accommodation]=$'\U1F6CC' -emoji[shopping_bags]=$'\U1F6CD' -emoji[bellhop_bell]=$'\U1F6CE' -emoji[bed]=$'\U1F6CF' +emoji[warning]=$'\U26A0\UFE0F' +emoji[warning_unqualified]=$'\U26A0' +emoji[children_crossing]=$'\U1F6B8' +emoji[no_entry]=$'\U26D4' +emoji[prohibited]=$'\U1F6AB' +emoji[no_entry_sign]=$'\U1F6AB' +emoji[no_bicycles]=$'\U1F6B3' +emoji[no_smoking]=$'\U1F6AD' +emoji[no_littering]=$'\U1F6AF' +emoji[do_not_litter]=$'\U1F6AF' +emoji[non_potable_water]=$'\U1F6B1' +emoji[non-potable_water]=$'\U1F6B1' +emoji[no_pedestrians]=$'\U1F6B7' +emoji[no_mobile_phones]=$'\U1F4F5' +emoji[no_one_under_eighteen]=$'\U1F51E' +emoji[underage]=$'\U1F51E' +emoji[radioactive]=$'\U2622\UFE0F' +emoji[radioactive_unqualified]=$'\U2622' +emoji[biohazard]=$'\U2623\UFE0F' +emoji[biohazard_unqualified]=$'\U2623' +emoji[up_arrow]=$'\U2B06\UFE0F' +emoji[arrow_up]=$'\U2B06\UFE0F' +emoji[up_arrow_unqualified]=$'\U2B06' +emoji[up_right_arrow]=$'\U2197\UFE0F' +emoji[arrow_upper_right]=$'\U2197\UFE0F' +emoji[up_right_arrow_unqualified]=$'\U2197' +emoji[up_right_arrow_unqualified_1]=$'\U27A1\UFE0F' +emoji[arrow_right]=$'\U27A1\UFE0F' +emoji[up_right_arrow_unqualified_2]=$'\U27A1' +emoji[down_right_arrow]=$'\U2198\UFE0F' +emoji[arrow_lower_right]=$'\U2198\UFE0F' +emoji[down_right_arrow_unqualified]=$'\U2198' +emoji[down_arrow]=$'\U2B07\UFE0F' +emoji[arrow_down]=$'\U2B07\UFE0F' +emoji[down_arrow_unqualified]=$'\U2B07' +emoji[down_left_arrow]=$'\U2199\UFE0F' +emoji[arrow_lower_left]=$'\U2199\UFE0F' +emoji[down_left_arrow_unqualified]=$'\U2199' +emoji[down_left_arrow_unqualified_1]=$'\U2B05\UFE0F' +emoji[arrow_left]=$'\U2B05\UFE0F' +emoji[down_left_arrow_unqualified_2]=$'\U2B05' +emoji[up_left_arrow]=$'\U2196\UFE0F' +emoji[arrow_upper_left]=$'\U2196\UFE0F' +emoji[up_left_arrow_unqualified]=$'\U2196' +emoji[up_down_arrow]=$'\U2195\UFE0F' +emoji[arrow_up_down]=$'\U2195\UFE0F' +emoji[up_down_arrow_unqualified]=$'\U2195' +emoji[left_right_arrow]=$'\U2194\UFE0F' +emoji[left_right_arrow_unqualified]=$'\U2194' +emoji[right_arrow_curving_left]=$'\U21A9\UFE0F' +emoji[leftwards_arrow_with_hook]=$'\U21A9\UFE0F' +emoji[right_arrow_curving_left_unqualified]=$'\U21A9' +emoji[left_arrow_curving_right]=$'\U21AA\UFE0F' +emoji[arrow_right_hook]=$'\U21AA\UFE0F' +emoji[left_arrow_curving_right_unqualified]=$'\U21AA' +emoji[right_arrow_curving_up]=$'\U2934\UFE0F' +emoji[arrow_heading_up]=$'\U2934\UFE0F' +emoji[right_arrow_curving_up_unqualified]=$'\U2934' +emoji[right_arrow_curving_down]=$'\U2935\UFE0F' +emoji[arrow_heading_down]=$'\U2935\UFE0F' +emoji[right_arrow_curving_down_unqualified]=$'\U2935' +emoji[clockwise_vertical_arrows]=$'\U1F503' +emoji[arrows_clockwise]=$'\U1F503' +emoji[counterclockwise_arrows_button]=$'\U1F504' +emoji[arrows_counterclockwise]=$'\U1F504' +emoji[BACK_arrow]=$'\U1F519' +emoji[back]=$'\U1F519' +emoji[END_arrow]=$'\U1F51A' +emoji[end]=$'\U1F51A' +emoji[ON_arrow]=$'\U1F51B' +emoji[on]=$'\U1F51B' +emoji[SOON_arrow]=$'\U1F51C' +emoji[soon]=$'\U1F51C' +emoji[TOP_arrow]=$'\U1F51D' +emoji[top]=$'\U1F51D' emoji[place_of_worship]=$'\U1F6D0' -emoji[hammer_and_wrench]=$'\U1F6E0' -emoji[shield]=$'\U1F6E1' -emoji[oil_drum]=$'\U1F6E2' -emoji[motorway]=$'\U1F6E3' -emoji[railway_track]=$'\U1F6E4' -emoji[motor_boat]=$'\U1F6E5' -emoji[small_airplane]=$'\U1F6E9' -emoji[airplane_departure]=$'\U1F6EB' -emoji[airplane_arriving]=$'\U1F6EC' -emoji[satellite]=$'\U1F6F0' -emoji[passenger_ship]=$'\U1F6F3' -emoji[zipper_mouth_face]=$'\U1F910' -emoji[money_mouth_face]=$'\U1F911' -emoji[face_with_thermometer]=$'\U1F912' -emoji[nerd_face]=$'\U1F913' -emoji[thinking_face]=$'\U1F914' -emoji[face_with_head_bandage]=$'\U1F915' -emoji[robot_face]=$'\U1F916' -emoji[hugging_face]=$'\U1F917' -emoji[sign_of_the_horns]=$'\U1F918' -emoji[crab]=$'\U1F980' -emoji[lion_face]=$'\U1F981' -emoji[scorpion]=$'\U1F982' -emoji[turkey]=$'\U1F983' -emoji[unicorn_face]=$'\U1F984' -emoji[cheese_wedge]=$'\U1F9C0' -emoji[keycap_number_sign]=$'\U0023\U20E3' -emoji[keycap_asterisk]=$'\U002A\U20E3' -emoji[keycap_digit_zero]=$'\U0030\U20E3' -emoji[keycap_digit_one]=$'\U0031\U20E3' -emoji[keycap_digit_two]=$'\U0032\U20E3' -emoji[keycap_digit_three]=$'\U0033\U20E3' -emoji[keycap_digit_four]=$'\U0034\U20E3' -emoji[keycap_digit_five]=$'\U0035\U20E3' -emoji[keycap_digit_six]=$'\U0036\U20E3' -emoji[keycap_digit_seven]=$'\U0037\U20E3' -emoji[keycap_digit_eight]=$'\U0038\U20E3' -emoji[keycap_digit_nine]=$'\U0039\U20E3' +emoji[atom_symbol]=$'\U269B\UFE0F' +emoji[atom_symbol_unqualified]=$'\U269B' +emoji[atom_symbol_unqualified_1]=$'\U1F549\UFE0F' +emoji[om_unqualified]=$'\U1F549' +emoji[om]=$'\U1F549' +emoji[star_of_David]=$'\U2721\UFE0F' +emoji[star_of_david]=$'\U2721\UFE0F' +emoji[star_of_David_unqualified]=$'\U2721' +emoji[wheel_of_dharma]=$'\U2638\UFE0F' +emoji[wheel_of_dharma_unqualified]=$'\U2638' +emoji[yin_yang]=$'\U262F\UFE0F' +emoji[yin_yang_unqualified]=$'\U262F' +emoji[latin_cross]=$'\U271D\UFE0F' +emoji[latin_cross_unqualified]=$'\U271D' +emoji[orthodox_cross]=$'\U2626\UFE0F' +emoji[orthodox_cross_unqualified]=$'\U2626' +emoji[star_and_crescent]=$'\U262A\UFE0F' +emoji[star_and_crescent_unqualified]=$'\U262A' +emoji[peace_symbol]=$'\U262E\UFE0F' +emoji[peace_symbol_unqualified]=$'\U262E' +emoji[menorah]=$'\U1F54E' +emoji[dotted_six_pointed_star]=$'\U1F52F' +emoji[six_pointed_star]=$'\U1F52F' +emoji[Aries]=$'\U2648' +emoji[aries]=$'\U2648' +emoji[Taurus]=$'\U2649' +emoji[taurus]=$'\U2649' +emoji[Gemini]=$'\U264A' +emoji[gemini]=$'\U264A' +emoji[Cancer]=$'\U264B' +emoji[cancer]=$'\U264B' +emoji[Leo]=$'\U264C' +emoji[leo]=$'\U264C' +emoji[Virgo]=$'\U264D' +emoji[virgo]=$'\U264D' +emoji[Libra]=$'\U264E' +emoji[libra]=$'\U264E' +emoji[Scorpio]=$'\U264F' +emoji[scorpius]=$'\U264F' +emoji[Sagittarius]=$'\U2650' +emoji[sagittarius]=$'\U2650' +emoji[Capricorn]=$'\U2651' +emoji[capricorn]=$'\U2651' +emoji[Aquarius]=$'\U2652' +emoji[aquarius]=$'\U2652' +emoji[Pisces]=$'\U2653' +emoji[pisces]=$'\U2653' +emoji[Ophiuchus]=$'\U26CE' +emoji[ophiuchus]=$'\U26CE' +emoji[shuffle_tracks_button]=$'\U1F500' +emoji[twisted_rightwards_arrows]=$'\U1F500' +emoji[repeat_button]=$'\U1F501' +emoji[repeat]=$'\U1F501' +emoji[repeat_single_button]=$'\U1F502' +emoji[repeat_one]=$'\U1F502' +emoji[play_button]=$'\U25B6\UFE0F' +emoji[arrow_forward]=$'\U25B6\UFE0F' +emoji[play_button_unqualified]=$'\U25B6' +emoji[fast_forward_button]=$'\U23E9' +emoji[fast_forward]=$'\U23E9' +emoji[next_track_button]=$'\U23ED\UFE0F' +emoji[next_track_button_unqualified]=$'\U23ED' +emoji[play_or_pause_button]=$'\U23EF\UFE0F' +emoji[play_or_pause_button_unqualified]=$'\U23EF' +emoji[reverse_button]=$'\U25C0\UFE0F' +emoji[arrow_backward]=$'\U25C0\UFE0F' +emoji[reverse_button_unqualified]=$'\U25C0' +emoji[fast_reverse_button]=$'\U23EA' +emoji[rewind]=$'\U23EA' +emoji[last_track_button]=$'\U23EE\UFE0F' +emoji[last_track_button_unqualified]=$'\U23EE' +emoji[previous_track_button]=$'\U23EE' +emoji[upwards_button]=$'\U1F53C' +emoji[arrow_up_small]=$'\U1F53C' +emoji[fast_up_button]=$'\U23EB' +emoji[arrow_double_up]=$'\U23EB' +emoji[downwards_button]=$'\U1F53D' +emoji[arrow_down_small]=$'\U1F53D' +emoji[fast_down_button]=$'\U23EC' +emoji[arrow_double_down]=$'\U23EC' +emoji[pause_button]=$'\U23F8\UFE0F' +emoji[pause_button_unqualified]=$'\U23F8' +emoji[stop_button]=$'\U23F9\UFE0F' +emoji[stop_button_unqualified]=$'\U23F9' +emoji[record_button]=$'\U23FA\UFE0F' +emoji[record_button_unqualified]=$'\U23FA' +emoji[eject_button]=$'\U23CF\UFE0F' +emoji[eject_button_unqualified]=$'\U23CF' +emoji[cinema]=$'\U1F3A6' +emoji[dim_button]=$'\U1F505' +emoji[low_brightness]=$'\U1F505' +emoji[bright_button]=$'\U1F506' +emoji[high_brightness]=$'\U1F506' +emoji[antenna_bars]=$'\U1F4F6' +emoji[signal_strength]=$'\U1F4F6' +emoji[vibration_mode]=$'\U1F4F3' +emoji[mobile_phone_off]=$'\U1F4F4' +emoji[female_sign]=$'\U2640\UFE0F' +emoji[female_sign_unqualified]=$'\U2640' +emoji[female_sign_unqualified_1]=$'\U2642\UFE0F' +emoji[male_sign]=$'\U2642\UFE0F' +emoji[female_sign_unqualified_2]=$'\U2642' +emoji[medical_symbol]=$'\U2695\UFE0F' +emoji[medical_symbol_unqualified]=$'\U2695' +emoji[infinity]=$'\U267E\UFE0F' +emoji[infinity_unqualified]=$'\U267E' +emoji[recycling_symbol]=$'\U267B\UFE0F' +emoji[recycle]=$'\U267B\UFE0F' +emoji[recycling_symbol_unqualified]=$'\U267B' +emoji[fleur_de_lis]=$'\U269C\UFE0F' +emoji[fleur_de_lis_unqualified]=$'\U269C' +emoji[trident_emblem]=$'\U1F531' +emoji[trident]=$'\U1F531' +emoji[name_badge]=$'\U1F4DB' +emoji[Japanese_symbol_for_beginner]=$'\U1F530' +emoji[beginner]=$'\U1F530' +emoji[hollow_red_circle]=$'\U2B55' +emoji[o]=$'\U2B55' +emoji[check_mark_button]=$'\U2705' +emoji[white_check_mark]=$'\U2705' +emoji[check_box_with_check]=$'\U2611\UFE0F' +emoji[ballot_box_with_check]=$'\U2611\UFE0F' +emoji[check_box_with_check_unqualified]=$'\U2611' +emoji[check_mark]=$'\U2714\UFE0F' +emoji[heavy_check_mark]=$'\U2714\UFE0F' +emoji[check_mark_unqualified]=$'\U2714' +emoji[multiplication_sign]=$'\U2716\UFE0F' +emoji[heavy_multiplication_x]=$'\U2716\UFE0F' +emoji[multiplication_sign_unqualified]=$'\U2716' +emoji[cross_mark]=$'\U274C' +emoji[x]=$'\U274C' +emoji[cross_mark_button]=$'\U274E' +emoji[negative_squared_cross_mark]=$'\U274E' +emoji[plus_sign]=$'\U2795' +emoji[heavy_plus_sign]=$'\U2795' +emoji[minus_sign]=$'\U2796' +emoji[heavy_minus_sign]=$'\U2796' +emoji[division_sign]=$'\U2797' +emoji[heavy_division_sign]=$'\U2797' +emoji[curly_loop]=$'\U27B0' +emoji[double_curly_loop]=$'\U27BF' +emoji[loop]=$'\U27BF' +emoji[part_alternation_mark]=$'\U303D\UFE0F' +emoji[part_alternation_mark_unqualified]=$'\U303D' +emoji[eight_spoked_asterisk]=$'\U2733\UFE0F' +emoji[eight_spoked_asterisk_unqualified]=$'\U2733' +emoji[eight_pointed_star]=$'\U2734\UFE0F' +emoji[eight_pointed_black_star]=$'\U2734\UFE0F' +emoji[eight_pointed_star_unqualified]=$'\U2734' +emoji[sparkle]=$'\U2747\UFE0F' +emoji[sparkle_unqualified]=$'\U2747' +emoji[double_exclamation_mark]=$'\U203C\UFE0F' +emoji[bangbang]=$'\U203C\UFE0F' +emoji[double_exclamation_mark_unqualified]=$'\U203C' +emoji[exclamation_question_mark]=$'\U2049\UFE0F' +emoji[interrobang]=$'\U2049\UFE0F' +emoji[exclamation_question_mark_unqualified]=$'\U2049' +emoji[exclamation_question_mark_unqualified_1]=$'\U2753' +emoji[question]=$'\U2753' +emoji[white_question_mark]=$'\U2754' +emoji[grey_question]=$'\U2754' +emoji[white_exclamation_mark]=$'\U2755' +emoji[grey_exclamation]=$'\U2755' +emoji[white_exclamation_mark_1]=$'\U2757' +emoji[exclamation]=$'\U2757' +emoji[heavy_exclamation_mark]=$'\U2757' +emoji[wavy_dash]=$'\U3030\UFE0F' +emoji[wavy_dash_unqualified]=$'\U3030' +emoji[copyright]=$'\U00A9\UFE0F' +emoji[copyright_unqualified]=$'\U00A9' +emoji[registered]=$'\U00AE\UFE0F' +emoji[registered_unqualified]=$'\U00AE' +emoji[trade_mark]=$'\U2122\UFE0F' +emoji[tm]=$'\U2122\UFE0F' +emoji[trade_mark_unqualified]=$'\U2122' +emoji[keycap_#]=$'\U0023\UFE0F\U20E3' +emoji[hash]=$'\U0023\UFE0F\U20E3' +emoji[keycap_#_unqualified]=$'\U0023\U20E3' +emoji[keycap_*]=$'\U002A\UFE0F\U20E3' +emoji[asterisk]=$'\U002A\UFE0F\U20E3' +emoji[keycap_*_unqualified]=$'\U002A\U20E3' +emoji[keycap_0]=$'\U0030\UFE0F\U20E3' +emoji[zero]=$'\U0030\UFE0F\U20E3' +emoji[keycap_0_unqualified]=$'\U0030\U20E3' +emoji[keycap_1]=$'\U0031\UFE0F\U20E3' +emoji[one]=$'\U0031\UFE0F\U20E3' +emoji[keycap_1_unqualified]=$'\U0031\U20E3' +emoji[keycap_2]=$'\U0032\UFE0F\U20E3' +emoji[two]=$'\U0032\UFE0F\U20E3' +emoji[keycap_2_unqualified]=$'\U0032\U20E3' +emoji[keycap_3]=$'\U0033\UFE0F\U20E3' +emoji[three]=$'\U0033\UFE0F\U20E3' +emoji[keycap_3_unqualified]=$'\U0033\U20E3' +emoji[keycap_4]=$'\U0034\UFE0F\U20E3' +emoji[four]=$'\U0034\UFE0F\U20E3' +emoji[keycap_4_unqualified]=$'\U0034\U20E3' +emoji[keycap_5]=$'\U0035\UFE0F\U20E3' +emoji[five]=$'\U0035\UFE0F\U20E3' +emoji[keycap_5_unqualified]=$'\U0035\U20E3' +emoji[keycap_6]=$'\U0036\UFE0F\U20E3' +emoji[six]=$'\U0036\UFE0F\U20E3' +emoji[keycap_6_unqualified]=$'\U0036\U20E3' +emoji[keycap_7]=$'\U0037\UFE0F\U20E3' +emoji[seven]=$'\U0037\UFE0F\U20E3' +emoji[keycap_7_unqualified]=$'\U0037\U20E3' +emoji[keycap_8]=$'\U0038\UFE0F\U20E3' +emoji[eight]=$'\U0038\UFE0F\U20E3' +emoji[keycap_8_unqualified]=$'\U0038\U20E3' +emoji[keycap_9]=$'\U0039\UFE0F\U20E3' +emoji[nine]=$'\U0039\UFE0F\U20E3' +emoji[keycap_9_unqualified]=$'\U0039\U20E3' +emoji[keycap_10]=$'\U1F51F' +emoji[keycap_ten]=$'\U1F51F' +emoji[input_latin_uppercase]=$'\U1F520' +emoji[capital_abcd]=$'\U1F520' +emoji[input_latin_lowercase]=$'\U1F521' +emoji[abcd]=$'\U1F521' +emoji[input_numbers]=$'\U1F522' +emoji[1234]=$'\U1F522' +emoji[input_symbols]=$'\U1F523' +emoji[symbols]=$'\U1F523' +emoji[input_latin_letters]=$'\U1F524' +emoji[abc]=$'\U1F524' +emoji[A_button_blood_type_]=$'\U1F170\UFE0F' +emoji[a]=$'\U1F170\UFE0F' +emoji[A_button_blood_type__unqualified]=$'\U1F170' +emoji[AB_button_blood_type_]=$'\U1F18E' +emoji[ab]=$'\U1F18E' +emoji[AB_button_blood_type__1]=$'\U1F171\UFE0F' +emoji[b]=$'\U1F171\UFE0F' +emoji[B_button_blood_type__unqualified]=$'\U1F171' +emoji[CL_button]=$'\U1F191' +emoji[cl]=$'\U1F191' +emoji[COOL_button]=$'\U1F192' +emoji[cool]=$'\U1F192' +emoji[FREE_button]=$'\U1F193' +emoji[free]=$'\U1F193' +emoji[information]=$'\U2139\UFE0F' +emoji[information_source]=$'\U2139\UFE0F' +emoji[information_unqualified]=$'\U2139' +emoji[ID_button]=$'\U1F194' +emoji[id]=$'\U1F194' +emoji[circled_M]=$'\U24C2\UFE0F' +emoji[m]=$'\U24C2\UFE0F' +emoji[circled_M_unqualified]=$'\U24C2' +emoji[NEW_button]=$'\U1F195' +emoji[new]=$'\U1F195' +emoji[NG_button]=$'\U1F196' +emoji[ng]=$'\U1F196' +emoji[O_button_blood_type_]=$'\U1F17E\UFE0F' +emoji[o2]=$'\U1F17E\UFE0F' +emoji[O_button_blood_type__unqualified]=$'\U1F17E' +emoji[OK_button]=$'\U1F197' +emoji[ok]=$'\U1F197' +emoji[P_button]=$'\U1F17F\UFE0F' +emoji[parking]=$'\U1F17F\UFE0F' +emoji[P_button_unqualified]=$'\U1F17F' +emoji[SOS_button]=$'\U1F198' +emoji[sos]=$'\U1F198' +emoji[UP_button]=$'\U1F199' +emoji[up]=$'\U1F199' +emoji[VS_button]=$'\U1F19A' +emoji[vs]=$'\U1F19A' +emoji[Japanese_here_button]=$'\U1F201' +emoji[koko]=$'\U1F201' +emoji[Japanese_service_charge_button]=$'\U1F202\UFE0F' +emoji[sa]=$'\U1F202\UFE0F' +emoji[Japanese_service_charge_button_unqualified]=$'\U1F202' +emoji[Japanese_monthly_amount_button]=$'\U1F237\UFE0F' +emoji[u6708]=$'\U1F237\UFE0F' +emoji[Japanese_monthly_amount_button_unqualified]=$'\U1F237' +emoji[Japanese_not_free_of_charge_button]=$'\U1F236' +emoji[u6709]=$'\U1F236' +emoji[Japanese_reserved_button]=$'\U1F22F' +emoji[u6307]=$'\U1F22F' +emoji[Japanese_bargain_button]=$'\U1F250' +emoji[ideograph_advantage]=$'\U1F250' +emoji[Japanese_discount_button]=$'\U1F239' +emoji[u5272]=$'\U1F239' +emoji[Japanese_free_of_charge_button]=$'\U1F21A' +emoji[u7121]=$'\U1F21A' +emoji[Japanese_prohibited_button]=$'\U1F232' +emoji[u7981]=$'\U1F232' +emoji[Japanese_acceptable_button]=$'\U1F251' +emoji[accept]=$'\U1F251' +emoji[Japanese_application_button]=$'\U1F238' +emoji[u7533]=$'\U1F238' +emoji[Japanese_passing_grade_button]=$'\U1F234' +emoji[u5408]=$'\U1F234' +emoji[Japanese_vacancy_button]=$'\U1F233' +emoji[u7a7a]=$'\U1F233' +emoji[Japanese_congratulations_button]=$'\U3297\UFE0F' +emoji[congratulations]=$'\U3297\UFE0F' +emoji[Japanese_congratulations_button_unqualified]=$'\U3297' +emoji[Japanese_secret_button]=$'\U3299\UFE0F' +emoji[secret]=$'\U3299\UFE0F' +emoji[Japanese_secret_button_unqualified]=$'\U3299' +emoji[Japanese_open_for_business_button]=$'\U1F23A' +emoji[u55b6]=$'\U1F23A' +emoji[Japanese_no_vacancy_button]=$'\U1F235' +emoji[u6e80]=$'\U1F235' +emoji[red_circle]=$'\U1F534' +emoji[orange_circle]=$'\U1F7E0' +emoji[yellow_circle]=$'\U1F7E1' +emoji[green_circle]=$'\U1F7E2' +emoji[blue_circle]=$'\U1F535' +emoji[large_blue_circle]=$'\U1F535' +emoji[purple_circle]=$'\U1F7E3' +emoji[brown_circle]=$'\U1F7E4' +emoji[black_circle]=$'\U26AB' +emoji[white_circle]=$'\U26AA' +emoji[red_square]=$'\U1F7E5' +emoji[orange_square]=$'\U1F7E7' +emoji[yellow_square]=$'\U1F7E8' +emoji[green_square]=$'\U1F7E9' +emoji[blue_square]=$'\U1F7E6' +emoji[purple_square]=$'\U1F7EA' +emoji[brown_square]=$'\U1F7EB' +emoji[black_large_square]=$'\U2B1B' +emoji[white_large_square]=$'\U2B1C' +emoji[black_medium_square]=$'\U25FC\UFE0F' +emoji[black_medium_square_unqualified]=$'\U25FC' +emoji[white_medium_square]=$'\U25FB\UFE0F' +emoji[white_medium_square_unqualified]=$'\U25FB' +emoji[black_medium_small_square]=$'\U25FE' +emoji[white_medium_small_square]=$'\U25FD' +emoji[black_small_square]=$'\U25AA\UFE0F' +emoji[black_small_square_unqualified]=$'\U25AA' +emoji[white_small_square]=$'\U25AB\UFE0F' +emoji[white_small_square_unqualified]=$'\U25AB' +emoji[large_orange_diamond]=$'\U1F536' +emoji[large_blue_diamond]=$'\U1F537' +emoji[small_orange_diamond]=$'\U1F538' +emoji[small_blue_diamond]=$'\U1F539' +emoji[red_triangle_pointed_up]=$'\U1F53A' +emoji[small_red_triangle]=$'\U1F53A' +emoji[red_triangle_pointed_down]=$'\U1F53B' +emoji[small_red_triangle_down]=$'\U1F53B' +emoji[diamond_with_a_dot]=$'\U1F4A0' +emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0' +emoji[radio_button]=$'\U1F518' +emoji[white_square_button]=$'\U1F533' +emoji[black_square_button]=$'\U1F532' +emoji_flags[chequered_flag]=$'\U1F3C1' +emoji_flags[checkered_flag]=$'\U1F3C1' +emoji_flags[triangular_flag]=$'\U1F6A9' +emoji_flags[triangular_flag_on_post]=$'\U1F6A9' +emoji_flags[crossed_flags]=$'\U1F38C' +emoji_flags[black_flag]=$'\U1F3F4' +emoji_flags[white_flag]=$'\U1F3F3\UFE0F' +emoji_flags[white_flag_unqualified]=$'\U1F3F3' +emoji_flags[rainbow_flag]=$'\U1F3F3\UFE0F\U200D\U1F308' +emoji_flags[rainbow_flag_unqualified]=$'\U1F3F3\U200D\U1F308' +emoji_flags[pirate_flag]=$'\U1F3F4\U200D\U2620\UFE0F' +emoji_flags[pirate_flag_minimally]=$'\U1F3F4\U200D\U2620' emoji_flags[Ascension_Island]=$'\U1F1E6\U1F1E8' +emoji_flags[ascension_island]=$'\U1F1E6\U1F1E8' emoji_flags[Andorra]=$'\U1F1E6\U1F1E9' +emoji_flags[AD]=$'\U1F1E6\U1F1E9' +emoji_flags[AND]=$'\U1F1E6\U1F1E9' +emoji_flags[andorra]=$'\U1F1E6\U1F1E9' emoji_flags[United_Arab_Emirates]=$'\U1F1E6\U1F1EA' +emoji_flags[AE]=$'\U1F1E6\U1F1EA' +emoji_flags[ARE]=$'\U1F1E6\U1F1EA' +emoji_flags[united_arab_emirates]=$'\U1F1E6\U1F1EA' emoji_flags[Afghanistan]=$'\U1F1E6\U1F1EB' -emoji_flags[Antigua___Barbuda]=$'\U1F1E6\U1F1EC' +emoji_flags[AF]=$'\U1F1E6\U1F1EB' +emoji_flags[AFG]=$'\U1F1E6\U1F1EB' +emoji_flags[afghanistan]=$'\U1F1E6\U1F1EB' +emoji_flags[Antigua_and_Barbuda]=$'\U1F1E6\U1F1EC' +emoji_flags[AG]=$'\U1F1E6\U1F1EC' +emoji_flags[ATG]=$'\U1F1E6\U1F1EC' +emoji_flags[antigua_barbuda]=$'\U1F1E6\U1F1EC' emoji_flags[Anguilla]=$'\U1F1E6\U1F1EE' +emoji_flags[AI]=$'\U1F1E6\U1F1EE' +emoji_flags[AIA]=$'\U1F1E6\U1F1EE' +emoji_flags[anguilla]=$'\U1F1E6\U1F1EE' emoji_flags[Albania]=$'\U1F1E6\U1F1F1' +emoji_flags[AL]=$'\U1F1E6\U1F1F1' +emoji_flags[ALB]=$'\U1F1E6\U1F1F1' +emoji_flags[albania]=$'\U1F1E6\U1F1F1' emoji_flags[Armenia]=$'\U1F1E6\U1F1F2' +emoji_flags[AM]=$'\U1F1E6\U1F1F2' +emoji_flags[ARM]=$'\U1F1E6\U1F1F2' +emoji_flags[armenia]=$'\U1F1E6\U1F1F2' emoji_flags[Angola]=$'\U1F1E6\U1F1F4' +emoji_flags[AO]=$'\U1F1E6\U1F1F4' +emoji_flags[AGO]=$'\U1F1E6\U1F1F4' +emoji_flags[angola]=$'\U1F1E6\U1F1F4' emoji_flags[Antarctica]=$'\U1F1E6\U1F1F6' +emoji_flags[AQ]=$'\U1F1E6\U1F1F6' +emoji_flags[ATA]=$'\U1F1E6\U1F1F6' +emoji_flags[antarctica]=$'\U1F1E6\U1F1F6' emoji_flags[Argentina]=$'\U1F1E6\U1F1F7' +emoji_flags[AR]=$'\U1F1E6\U1F1F7' +emoji_flags[ARG]=$'\U1F1E6\U1F1F7' +emoji_flags[argentina]=$'\U1F1E6\U1F1F7' emoji_flags[American_Samoa]=$'\U1F1E6\U1F1F8' +emoji_flags[AS]=$'\U1F1E6\U1F1F8' +emoji_flags[ASM]=$'\U1F1E6\U1F1F8' +emoji_flags[american_samoa]=$'\U1F1E6\U1F1F8' emoji_flags[Austria]=$'\U1F1E6\U1F1F9' +emoji_flags[AT]=$'\U1F1E6\U1F1F9' +emoji_flags[AUT]=$'\U1F1E6\U1F1F9' +emoji_flags[austria]=$'\U1F1E6\U1F1F9' emoji_flags[Australia]=$'\U1F1E6\U1F1FA' +emoji_flags[AU]=$'\U1F1E6\U1F1FA' +emoji_flags[AUS]=$'\U1F1E6\U1F1FA' +emoji_flags[australia]=$'\U1F1E6\U1F1FA' emoji_flags[Aruba]=$'\U1F1E6\U1F1FC' -emoji_flags[_land_Islands]=$'\U1F1E6\U1F1FD' +emoji_flags[AW]=$'\U1F1E6\U1F1FC' +emoji_flags[ABW]=$'\U1F1E6\U1F1FC' +emoji_flags[aruba]=$'\U1F1E6\U1F1FC' +emoji_flags[Åland_Islands]=$'\U1F1E6\U1F1FD' +emoji_flags[AX]=$'\U1F1E6\U1F1FD' +emoji_flags[ALA]=$'\U1F1E6\U1F1FD' +emoji_flags[aland_islands]=$'\U1F1E6\U1F1FD' emoji_flags[Azerbaijan]=$'\U1F1E6\U1F1FF' -emoji_flags[Bosnia___Herzegovina]=$'\U1F1E7\U1F1E6' +emoji_flags[AZ]=$'\U1F1E6\U1F1FF' +emoji_flags[AZE]=$'\U1F1E6\U1F1FF' +emoji_flags[azerbaijan]=$'\U1F1E6\U1F1FF' +emoji_flags[Bosnia_and_Herzegovina]=$'\U1F1E7\U1F1E6' +emoji_flags[BA]=$'\U1F1E7\U1F1E6' +emoji_flags[BIH]=$'\U1F1E7\U1F1E6' +emoji_flags[bosnia_herzegovina]=$'\U1F1E7\U1F1E6' emoji_flags[Barbados]=$'\U1F1E7\U1F1E7' +emoji_flags[BB]=$'\U1F1E7\U1F1E7' +emoji_flags[BRB]=$'\U1F1E7\U1F1E7' +emoji_flags[barbados]=$'\U1F1E7\U1F1E7' emoji_flags[Bangladesh]=$'\U1F1E7\U1F1E9' +emoji_flags[BD]=$'\U1F1E7\U1F1E9' +emoji_flags[BGD]=$'\U1F1E7\U1F1E9' +emoji_flags[bangladesh]=$'\U1F1E7\U1F1E9' emoji_flags[Belgium]=$'\U1F1E7\U1F1EA' +emoji_flags[BE]=$'\U1F1E7\U1F1EA' +emoji_flags[BEL]=$'\U1F1E7\U1F1EA' +emoji_flags[belgium]=$'\U1F1E7\U1F1EA' emoji_flags[Burkina_Faso]=$'\U1F1E7\U1F1EB' +emoji_flags[BF]=$'\U1F1E7\U1F1EB' +emoji_flags[BFA]=$'\U1F1E7\U1F1EB' +emoji_flags[burkina_faso]=$'\U1F1E7\U1F1EB' emoji_flags[Bulgaria]=$'\U1F1E7\U1F1EC' +emoji_flags[BG]=$'\U1F1E7\U1F1EC' +emoji_flags[BGR]=$'\U1F1E7\U1F1EC' +emoji_flags[bulgaria]=$'\U1F1E7\U1F1EC' emoji_flags[Bahrain]=$'\U1F1E7\U1F1ED' +emoji_flags[BH]=$'\U1F1E7\U1F1ED' +emoji_flags[BHR]=$'\U1F1E7\U1F1ED' +emoji_flags[bahrain]=$'\U1F1E7\U1F1ED' emoji_flags[Burundi]=$'\U1F1E7\U1F1EE' +emoji_flags[BI]=$'\U1F1E7\U1F1EE' +emoji_flags[BDI]=$'\U1F1E7\U1F1EE' +emoji_flags[burundi]=$'\U1F1E7\U1F1EE' emoji_flags[Benin]=$'\U1F1E7\U1F1EF' -emoji_flags[St__Barth_lemy]=$'\U1F1E7\U1F1F1' +emoji_flags[BJ]=$'\U1F1E7\U1F1EF' +emoji_flags[BEN]=$'\U1F1E7\U1F1EF' +emoji_flags[benin]=$'\U1F1E7\U1F1EF' +emoji_flags[St_Barthélemy]=$'\U1F1E7\U1F1F1' +emoji_flags[BL]=$'\U1F1E7\U1F1F1' +emoji_flags[BLM]=$'\U1F1E7\U1F1F1' +emoji_flags[st_barthelemy]=$'\U1F1E7\U1F1F1' emoji_flags[Bermuda]=$'\U1F1E7\U1F1F2' +emoji_flags[BM]=$'\U1F1E7\U1F1F2' +emoji_flags[BMU]=$'\U1F1E7\U1F1F2' +emoji_flags[bermuda]=$'\U1F1E7\U1F1F2' emoji_flags[Brunei]=$'\U1F1E7\U1F1F3' +emoji_flags[BN]=$'\U1F1E7\U1F1F3' +emoji_flags[BRN]=$'\U1F1E7\U1F1F3' +emoji_flags[brunei]=$'\U1F1E7\U1F1F3' emoji_flags[Bolivia]=$'\U1F1E7\U1F1F4' +emoji_flags[BO]=$'\U1F1E7\U1F1F4' +emoji_flags[BOL]=$'\U1F1E7\U1F1F4' +emoji_flags[bolivia]=$'\U1F1E7\U1F1F4' emoji_flags[Caribbean_Netherlands]=$'\U1F1E7\U1F1F6' +emoji_flags[BQ]=$'\U1F1E7\U1F1F6' +emoji_flags[BES]=$'\U1F1E7\U1F1F6' +emoji_flags[caribbean_netherlands]=$'\U1F1E7\U1F1F6' emoji_flags[Brazil]=$'\U1F1E7\U1F1F7' +emoji_flags[BR]=$'\U1F1E7\U1F1F7' +emoji_flags[BRA]=$'\U1F1E7\U1F1F7' +emoji_flags[brazil]=$'\U1F1E7\U1F1F7' emoji_flags[Bahamas]=$'\U1F1E7\U1F1F8' +emoji_flags[BS]=$'\U1F1E7\U1F1F8' +emoji_flags[BHS]=$'\U1F1E7\U1F1F8' +emoji_flags[bahamas]=$'\U1F1E7\U1F1F8' emoji_flags[Bhutan]=$'\U1F1E7\U1F1F9' +emoji_flags[BT]=$'\U1F1E7\U1F1F9' +emoji_flags[BTN]=$'\U1F1E7\U1F1F9' +emoji_flags[bhutan]=$'\U1F1E7\U1F1F9' emoji_flags[Bouvet_Island]=$'\U1F1E7\U1F1FB' +emoji_flags[BV]=$'\U1F1E7\U1F1FB' +emoji_flags[BVT]=$'\U1F1E7\U1F1FB' +emoji_flags[bouvet_island]=$'\U1F1E7\U1F1FB' emoji_flags[Botswana]=$'\U1F1E7\U1F1FC' +emoji_flags[BW]=$'\U1F1E7\U1F1FC' +emoji_flags[BWA]=$'\U1F1E7\U1F1FC' +emoji_flags[botswana]=$'\U1F1E7\U1F1FC' emoji_flags[Belarus]=$'\U1F1E7\U1F1FE' +emoji_flags[BY]=$'\U1F1E7\U1F1FE' +emoji_flags[BLR]=$'\U1F1E7\U1F1FE' +emoji_flags[belarus]=$'\U1F1E7\U1F1FE' emoji_flags[Belize]=$'\U1F1E7\U1F1FF' +emoji_flags[BZ]=$'\U1F1E7\U1F1FF' +emoji_flags[BLZ]=$'\U1F1E7\U1F1FF' +emoji_flags[belize]=$'\U1F1E7\U1F1FF' emoji_flags[Canada]=$'\U1F1E8\U1F1E6' -emoji_flags[Cocos__Islands]=$'\U1F1E8\U1F1E8' -emoji_flags[Congo___Kinshasa]=$'\U1F1E8\U1F1E9' +emoji_flags[CA]=$'\U1F1E8\U1F1E6' +emoji_flags[CAN]=$'\U1F1E8\U1F1E6' +emoji_flags[canada]=$'\U1F1E8\U1F1E6' +emoji_flags[Cocos_Keeling_Islands]=$'\U1F1E8\U1F1E8' +emoji_flags[CC]=$'\U1F1E8\U1F1E8' +emoji_flags[CCK]=$'\U1F1E8\U1F1E8' +emoji_flags[cocos_islands]=$'\U1F1E8\U1F1E8' +emoji_flags[Congo__Kinshasa]=$'\U1F1E8\U1F1E9' +emoji_flags[CD]=$'\U1F1E8\U1F1E9' +emoji_flags[COD]=$'\U1F1E8\U1F1E9' +emoji_flags[congo_kinshasa]=$'\U1F1E8\U1F1E9' emoji_flags[Central_African_Republic]=$'\U1F1E8\U1F1EB' -emoji_flags[Congo___Brazzaville]=$'\U1F1E8\U1F1EC' +emoji_flags[CF]=$'\U1F1E8\U1F1EB' +emoji_flags[CAF]=$'\U1F1E8\U1F1EB' +emoji_flags[central_african_republic]=$'\U1F1E8\U1F1EB' +emoji_flags[Congo__Brazzaville]=$'\U1F1E8\U1F1EC' +emoji_flags[CG]=$'\U1F1E8\U1F1EC' +emoji_flags[COG]=$'\U1F1E8\U1F1EC' +emoji_flags[congo_brazzaville]=$'\U1F1E8\U1F1EC' emoji_flags[Switzerland]=$'\U1F1E8\U1F1ED' -emoji_flags[C_te_d__Ivoire]=$'\U1F1E8\U1F1EE' +emoji_flags[CH]=$'\U1F1E8\U1F1ED' +emoji_flags[CHE]=$'\U1F1E8\U1F1ED' +emoji_flags[switzerland]=$'\U1F1E8\U1F1ED' +emoji_flags[Côte_d_Ivoire]=$'\U1F1E8\U1F1EE' +emoji_flags[CI]=$'\U1F1E8\U1F1EE' +emoji_flags[CIV]=$'\U1F1E8\U1F1EE' +emoji_flags[cote_divoire]=$'\U1F1E8\U1F1EE' emoji_flags[Cook_Islands]=$'\U1F1E8\U1F1F0' +emoji_flags[CK]=$'\U1F1E8\U1F1F0' +emoji_flags[COK]=$'\U1F1E8\U1F1F0' +emoji_flags[cook_islands]=$'\U1F1E8\U1F1F0' emoji_flags[Chile]=$'\U1F1E8\U1F1F1' +emoji_flags[CL]=$'\U1F1E8\U1F1F1' +emoji_flags[CHL]=$'\U1F1E8\U1F1F1' +emoji_flags[chile]=$'\U1F1E8\U1F1F1' emoji_flags[Cameroon]=$'\U1F1E8\U1F1F2' +emoji_flags[CM]=$'\U1F1E8\U1F1F2' +emoji_flags[CMR]=$'\U1F1E8\U1F1F2' +emoji_flags[cameroon]=$'\U1F1E8\U1F1F2' emoji_flags[China]=$'\U1F1E8\U1F1F3' +emoji_flags[CN]=$'\U1F1E8\U1F1F3' +emoji_flags[CHN]=$'\U1F1E8\U1F1F3' +emoji_flags[cn]=$'\U1F1E8\U1F1F3' emoji_flags[Colombia]=$'\U1F1E8\U1F1F4' +emoji_flags[CO]=$'\U1F1E8\U1F1F4' +emoji_flags[COL]=$'\U1F1E8\U1F1F4' +emoji_flags[colombia]=$'\U1F1E8\U1F1F4' emoji_flags[Clipperton_Island]=$'\U1F1E8\U1F1F5' +emoji_flags[clipperton_island]=$'\U1F1E8\U1F1F5' emoji_flags[Costa_Rica]=$'\U1F1E8\U1F1F7' +emoji_flags[CR]=$'\U1F1E8\U1F1F7' +emoji_flags[CRI]=$'\U1F1E8\U1F1F7' +emoji_flags[costa_rica]=$'\U1F1E8\U1F1F7' emoji_flags[Cuba]=$'\U1F1E8\U1F1FA' +emoji_flags[CU]=$'\U1F1E8\U1F1FA' +emoji_flags[CUB]=$'\U1F1E8\U1F1FA' +emoji_flags[cuba]=$'\U1F1E8\U1F1FA' emoji_flags[Cape_Verde]=$'\U1F1E8\U1F1FB' -emoji_flags[Cura_ao]=$'\U1F1E8\U1F1FC' +emoji_flags[CV]=$'\U1F1E8\U1F1FB' +emoji_flags[CPV]=$'\U1F1E8\U1F1FB' +emoji_flags[cape_verde]=$'\U1F1E8\U1F1FB' +emoji_flags[Curaçao]=$'\U1F1E8\U1F1FC' +emoji_flags[CW]=$'\U1F1E8\U1F1FC' +emoji_flags[CUW]=$'\U1F1E8\U1F1FC' +emoji_flags[curacao]=$'\U1F1E8\U1F1FC' emoji_flags[Christmas_Island]=$'\U1F1E8\U1F1FD' +emoji_flags[CX]=$'\U1F1E8\U1F1FD' +emoji_flags[CXR]=$'\U1F1E8\U1F1FD' +emoji_flags[christmas_island]=$'\U1F1E8\U1F1FD' emoji_flags[Cyprus]=$'\U1F1E8\U1F1FE' -emoji_flags[Czech_Republic]=$'\U1F1E8\U1F1FF' +emoji_flags[CY]=$'\U1F1E8\U1F1FE' +emoji_flags[CYP]=$'\U1F1E8\U1F1FE' +emoji_flags[cyprus]=$'\U1F1E8\U1F1FE' +emoji_flags[Czechia]=$'\U1F1E8\U1F1FF' +emoji_flags[CZ]=$'\U1F1E8\U1F1FF' +emoji_flags[CZE]=$'\U1F1E8\U1F1FF' +emoji_flags[czech_republic]=$'\U1F1E8\U1F1FF' emoji_flags[Germany]=$'\U1F1E9\U1F1EA' +emoji_flags[DE]=$'\U1F1E9\U1F1EA' +emoji_flags[DEU]=$'\U1F1E9\U1F1EA' +emoji_flags[de]=$'\U1F1E9\U1F1EA' emoji_flags[Diego_Garcia]=$'\U1F1E9\U1F1EC' +emoji_flags[diego_garcia]=$'\U1F1E9\U1F1EC' emoji_flags[Djibouti]=$'\U1F1E9\U1F1EF' +emoji_flags[DJ]=$'\U1F1E9\U1F1EF' +emoji_flags[DJI]=$'\U1F1E9\U1F1EF' +emoji_flags[djibouti]=$'\U1F1E9\U1F1EF' emoji_flags[Denmark]=$'\U1F1E9\U1F1F0' +emoji_flags[DK]=$'\U1F1E9\U1F1F0' +emoji_flags[DNK]=$'\U1F1E9\U1F1F0' +emoji_flags[denmark]=$'\U1F1E9\U1F1F0' emoji_flags[Dominica]=$'\U1F1E9\U1F1F2' +emoji_flags[DM]=$'\U1F1E9\U1F1F2' +emoji_flags[DMA]=$'\U1F1E9\U1F1F2' +emoji_flags[dominica]=$'\U1F1E9\U1F1F2' emoji_flags[Dominican_Republic]=$'\U1F1E9\U1F1F4' +emoji_flags[DO]=$'\U1F1E9\U1F1F4' +emoji_flags[DOM]=$'\U1F1E9\U1F1F4' +emoji_flags[dominican_republic]=$'\U1F1E9\U1F1F4' emoji_flags[Algeria]=$'\U1F1E9\U1F1FF' -emoji_flags[Ceuta___Melilla]=$'\U1F1EA\U1F1E6' +emoji_flags[DZ]=$'\U1F1E9\U1F1FF' +emoji_flags[DZA]=$'\U1F1E9\U1F1FF' +emoji_flags[algeria]=$'\U1F1E9\U1F1FF' +emoji_flags[Ceuta_and_Melilla]=$'\U1F1EA\U1F1E6' +emoji_flags[ceuta_melilla]=$'\U1F1EA\U1F1E6' emoji_flags[Ecuador]=$'\U1F1EA\U1F1E8' +emoji_flags[EC]=$'\U1F1EA\U1F1E8' +emoji_flags[ECU]=$'\U1F1EA\U1F1E8' +emoji_flags[ecuador]=$'\U1F1EA\U1F1E8' emoji_flags[Estonia]=$'\U1F1EA\U1F1EA' +emoji_flags[EE]=$'\U1F1EA\U1F1EA' +emoji_flags[EST]=$'\U1F1EA\U1F1EA' +emoji_flags[estonia]=$'\U1F1EA\U1F1EA' emoji_flags[Egypt]=$'\U1F1EA\U1F1EC' +emoji_flags[EG]=$'\U1F1EA\U1F1EC' +emoji_flags[EGY]=$'\U1F1EA\U1F1EC' +emoji_flags[egypt]=$'\U1F1EA\U1F1EC' emoji_flags[Western_Sahara]=$'\U1F1EA\U1F1ED' +emoji_flags[EH]=$'\U1F1EA\U1F1ED' +emoji_flags[ESH]=$'\U1F1EA\U1F1ED' +emoji_flags[western_sahara]=$'\U1F1EA\U1F1ED' emoji_flags[Eritrea]=$'\U1F1EA\U1F1F7' +emoji_flags[ER]=$'\U1F1EA\U1F1F7' +emoji_flags[ERI]=$'\U1F1EA\U1F1F7' +emoji_flags[eritrea]=$'\U1F1EA\U1F1F7' emoji_flags[Spain]=$'\U1F1EA\U1F1F8' +emoji_flags[ES]=$'\U1F1EA\U1F1F8' +emoji_flags[ESP]=$'\U1F1EA\U1F1F8' +emoji_flags[es]=$'\U1F1EA\U1F1F8' emoji_flags[Ethiopia]=$'\U1F1EA\U1F1F9' +emoji_flags[ET]=$'\U1F1EA\U1F1F9' +emoji_flags[ETH]=$'\U1F1EA\U1F1F9' +emoji_flags[ethiopia]=$'\U1F1EA\U1F1F9' emoji_flags[European_Union]=$'\U1F1EA\U1F1FA' +emoji_flags[eu]=$'\U1F1EA\U1F1FA' +emoji_flags[european_union]=$'\U1F1EA\U1F1FA' emoji_flags[Finland]=$'\U1F1EB\U1F1EE' +emoji_flags[FI]=$'\U1F1EB\U1F1EE' +emoji_flags[FIN]=$'\U1F1EB\U1F1EE' +emoji_flags[finland]=$'\U1F1EB\U1F1EE' emoji_flags[Fiji]=$'\U1F1EB\U1F1EF' +emoji_flags[FJ]=$'\U1F1EB\U1F1EF' +emoji_flags[FJI]=$'\U1F1EB\U1F1EF' +emoji_flags[fiji]=$'\U1F1EB\U1F1EF' emoji_flags[Falkland_Islands]=$'\U1F1EB\U1F1F0' +emoji_flags[FK]=$'\U1F1EB\U1F1F0' +emoji_flags[FLK]=$'\U1F1EB\U1F1F0' +emoji_flags[falkland_islands]=$'\U1F1EB\U1F1F0' emoji_flags[Micronesia]=$'\U1F1EB\U1F1F2' +emoji_flags[FM]=$'\U1F1EB\U1F1F2' +emoji_flags[FSM]=$'\U1F1EB\U1F1F2' +emoji_flags[micronesia]=$'\U1F1EB\U1F1F2' emoji_flags[Faroe_Islands]=$'\U1F1EB\U1F1F4' +emoji_flags[FO]=$'\U1F1EB\U1F1F4' +emoji_flags[FRO]=$'\U1F1EB\U1F1F4' +emoji_flags[faroe_islands]=$'\U1F1EB\U1F1F4' emoji_flags[France]=$'\U1F1EB\U1F1F7' +emoji_flags[FR]=$'\U1F1EB\U1F1F7' +emoji_flags[FRA]=$'\U1F1EB\U1F1F7' +emoji_flags[fr]=$'\U1F1EB\U1F1F7' emoji_flags[Gabon]=$'\U1F1EC\U1F1E6' +emoji_flags[GA]=$'\U1F1EC\U1F1E6' +emoji_flags[GAB]=$'\U1F1EC\U1F1E6' +emoji_flags[gabon]=$'\U1F1EC\U1F1E6' emoji_flags[United_Kingdom]=$'\U1F1EC\U1F1E7' +emoji_flags[GB]=$'\U1F1EC\U1F1E7' +emoji_flags[GBR]=$'\U1F1EC\U1F1E7' +emoji_flags[gb]=$'\U1F1EC\U1F1E7' +emoji_flags[uk]=$'\U1F1EC\U1F1E7' emoji_flags[Grenada]=$'\U1F1EC\U1F1E9' +emoji_flags[GD]=$'\U1F1EC\U1F1E9' +emoji_flags[GRD]=$'\U1F1EC\U1F1E9' +emoji_flags[grenada]=$'\U1F1EC\U1F1E9' emoji_flags[Georgia]=$'\U1F1EC\U1F1EA' +emoji_flags[GE]=$'\U1F1EC\U1F1EA' +emoji_flags[GEO]=$'\U1F1EC\U1F1EA' +emoji_flags[georgia]=$'\U1F1EC\U1F1EA' emoji_flags[French_Guiana]=$'\U1F1EC\U1F1EB' +emoji_flags[GF]=$'\U1F1EC\U1F1EB' +emoji_flags[GUF]=$'\U1F1EC\U1F1EB' +emoji_flags[french_guiana]=$'\U1F1EC\U1F1EB' emoji_flags[Guernsey]=$'\U1F1EC\U1F1EC' +emoji_flags[GG]=$'\U1F1EC\U1F1EC' +emoji_flags[GGY]=$'\U1F1EC\U1F1EC' +emoji_flags[guernsey]=$'\U1F1EC\U1F1EC' emoji_flags[Ghana]=$'\U1F1EC\U1F1ED' +emoji_flags[GH]=$'\U1F1EC\U1F1ED' +emoji_flags[GHA]=$'\U1F1EC\U1F1ED' +emoji_flags[ghana]=$'\U1F1EC\U1F1ED' emoji_flags[Gibraltar]=$'\U1F1EC\U1F1EE' +emoji_flags[GI]=$'\U1F1EC\U1F1EE' +emoji_flags[GIB]=$'\U1F1EC\U1F1EE' +emoji_flags[gibraltar]=$'\U1F1EC\U1F1EE' emoji_flags[Greenland]=$'\U1F1EC\U1F1F1' +emoji_flags[GL]=$'\U1F1EC\U1F1F1' +emoji_flags[GRL]=$'\U1F1EC\U1F1F1' +emoji_flags[greenland]=$'\U1F1EC\U1F1F1' emoji_flags[Gambia]=$'\U1F1EC\U1F1F2' +emoji_flags[GM]=$'\U1F1EC\U1F1F2' +emoji_flags[GMB]=$'\U1F1EC\U1F1F2' +emoji_flags[gambia]=$'\U1F1EC\U1F1F2' emoji_flags[Guinea]=$'\U1F1EC\U1F1F3' +emoji_flags[GN]=$'\U1F1EC\U1F1F3' +emoji_flags[GIN]=$'\U1F1EC\U1F1F3' +emoji_flags[guinea]=$'\U1F1EC\U1F1F3' emoji_flags[Guadeloupe]=$'\U1F1EC\U1F1F5' +emoji_flags[GP]=$'\U1F1EC\U1F1F5' +emoji_flags[GLP]=$'\U1F1EC\U1F1F5' +emoji_flags[guadeloupe]=$'\U1F1EC\U1F1F5' emoji_flags[Equatorial_Guinea]=$'\U1F1EC\U1F1F6' +emoji_flags[GQ]=$'\U1F1EC\U1F1F6' +emoji_flags[GNQ]=$'\U1F1EC\U1F1F6' +emoji_flags[equatorial_guinea]=$'\U1F1EC\U1F1F6' emoji_flags[Greece]=$'\U1F1EC\U1F1F7' -emoji_flags[South_Georgia___South_Sandwich_Islands]=$'\U1F1EC\U1F1F8' +emoji_flags[GR]=$'\U1F1EC\U1F1F7' +emoji_flags[GRC]=$'\U1F1EC\U1F1F7' +emoji_flags[greece]=$'\U1F1EC\U1F1F7' +emoji_flags[South_Georgia_and_South_Sandwich_Islands]=$'\U1F1EC\U1F1F8' +emoji_flags[GS]=$'\U1F1EC\U1F1F8' +emoji_flags[SGS]=$'\U1F1EC\U1F1F8' +emoji_flags[south_georgia_south_sandwich_islands]=$'\U1F1EC\U1F1F8' emoji_flags[Guatemala]=$'\U1F1EC\U1F1F9' +emoji_flags[GT]=$'\U1F1EC\U1F1F9' +emoji_flags[GTM]=$'\U1F1EC\U1F1F9' +emoji_flags[guatemala]=$'\U1F1EC\U1F1F9' emoji_flags[Guam]=$'\U1F1EC\U1F1FA' +emoji_flags[GU]=$'\U1F1EC\U1F1FA' +emoji_flags[GUM]=$'\U1F1EC\U1F1FA' +emoji_flags[guam]=$'\U1F1EC\U1F1FA' emoji_flags[Guinea_Bissau]=$'\U1F1EC\U1F1FC' +emoji_flags[GW]=$'\U1F1EC\U1F1FC' +emoji_flags[GNB]=$'\U1F1EC\U1F1FC' +emoji_flags[guinea_bissau]=$'\U1F1EC\U1F1FC' emoji_flags[Guyana]=$'\U1F1EC\U1F1FE' -emoji_flags[Hong_Kong]=$'\U1F1ED\U1F1F0' -emoji_flags[Heard___McDonald_Islands]=$'\U1F1ED\U1F1F2' +emoji_flags[GY]=$'\U1F1EC\U1F1FE' +emoji_flags[GUY]=$'\U1F1EC\U1F1FE' +emoji_flags[guyana]=$'\U1F1EC\U1F1FE' +emoji_flags[Hong_Kong_SAR_China]=$'\U1F1ED\U1F1F0' +emoji_flags[HK]=$'\U1F1ED\U1F1F0' +emoji_flags[HKG]=$'\U1F1ED\U1F1F0' +emoji_flags[hong_kong]=$'\U1F1ED\U1F1F0' +emoji_flags[Heard_and_McDonald_Islands]=$'\U1F1ED\U1F1F2' +emoji_flags[HM]=$'\U1F1ED\U1F1F2' +emoji_flags[HMD]=$'\U1F1ED\U1F1F2' +emoji_flags[heard_mcdonald_islands]=$'\U1F1ED\U1F1F2' emoji_flags[Honduras]=$'\U1F1ED\U1F1F3' +emoji_flags[HN]=$'\U1F1ED\U1F1F3' +emoji_flags[HND]=$'\U1F1ED\U1F1F3' +emoji_flags[honduras]=$'\U1F1ED\U1F1F3' emoji_flags[Croatia]=$'\U1F1ED\U1F1F7' +emoji_flags[HR]=$'\U1F1ED\U1F1F7' +emoji_flags[HRV]=$'\U1F1ED\U1F1F7' +emoji_flags[croatia]=$'\U1F1ED\U1F1F7' emoji_flags[Haiti]=$'\U1F1ED\U1F1F9' +emoji_flags[HT]=$'\U1F1ED\U1F1F9' +emoji_flags[HTI]=$'\U1F1ED\U1F1F9' +emoji_flags[haiti]=$'\U1F1ED\U1F1F9' emoji_flags[Hungary]=$'\U1F1ED\U1F1FA' +emoji_flags[HU]=$'\U1F1ED\U1F1FA' +emoji_flags[HUN]=$'\U1F1ED\U1F1FA' +emoji_flags[hungary]=$'\U1F1ED\U1F1FA' emoji_flags[Canary_Islands]=$'\U1F1EE\U1F1E8' +emoji_flags[canary_islands]=$'\U1F1EE\U1F1E8' emoji_flags[Indonesia]=$'\U1F1EE\U1F1E9' +emoji_flags[ID]=$'\U1F1EE\U1F1E9' +emoji_flags[IDN]=$'\U1F1EE\U1F1E9' +emoji_flags[indonesia]=$'\U1F1EE\U1F1E9' emoji_flags[Ireland]=$'\U1F1EE\U1F1EA' +emoji_flags[IE]=$'\U1F1EE\U1F1EA' +emoji_flags[IRL]=$'\U1F1EE\U1F1EA' +emoji_flags[ireland]=$'\U1F1EE\U1F1EA' emoji_flags[Israel]=$'\U1F1EE\U1F1F1' +emoji_flags[IL]=$'\U1F1EE\U1F1F1' +emoji_flags[ISR]=$'\U1F1EE\U1F1F1' +emoji_flags[israel]=$'\U1F1EE\U1F1F1' emoji_flags[Isle_of_Man]=$'\U1F1EE\U1F1F2' +emoji_flags[IM]=$'\U1F1EE\U1F1F2' +emoji_flags[IMN]=$'\U1F1EE\U1F1F2' +emoji_flags[isle_of_man]=$'\U1F1EE\U1F1F2' emoji_flags[India]=$'\U1F1EE\U1F1F3' +emoji_flags[IN]=$'\U1F1EE\U1F1F3' +emoji_flags[IND]=$'\U1F1EE\U1F1F3' +emoji_flags[india]=$'\U1F1EE\U1F1F3' emoji_flags[British_Indian_Ocean_Territory]=$'\U1F1EE\U1F1F4' +emoji_flags[IO]=$'\U1F1EE\U1F1F4' +emoji_flags[IOT]=$'\U1F1EE\U1F1F4' +emoji_flags[british_indian_ocean_territory]=$'\U1F1EE\U1F1F4' emoji_flags[Iraq]=$'\U1F1EE\U1F1F6' +emoji_flags[IQ]=$'\U1F1EE\U1F1F6' +emoji_flags[IRQ]=$'\U1F1EE\U1F1F6' +emoji_flags[iraq]=$'\U1F1EE\U1F1F6' emoji_flags[Iran]=$'\U1F1EE\U1F1F7' +emoji_flags[IR]=$'\U1F1EE\U1F1F7' +emoji_flags[IRN]=$'\U1F1EE\U1F1F7' +emoji_flags[iran]=$'\U1F1EE\U1F1F7' emoji_flags[Iceland]=$'\U1F1EE\U1F1F8' +emoji_flags[IS]=$'\U1F1EE\U1F1F8' +emoji_flags[ISL]=$'\U1F1EE\U1F1F8' +emoji_flags[iceland]=$'\U1F1EE\U1F1F8' emoji_flags[Italy]=$'\U1F1EE\U1F1F9' +emoji_flags[IT]=$'\U1F1EE\U1F1F9' +emoji_flags[ITA]=$'\U1F1EE\U1F1F9' +emoji_flags[it]=$'\U1F1EE\U1F1F9' emoji_flags[Jersey]=$'\U1F1EF\U1F1EA' +emoji_flags[JE]=$'\U1F1EF\U1F1EA' +emoji_flags[JEY]=$'\U1F1EF\U1F1EA' +emoji_flags[jersey]=$'\U1F1EF\U1F1EA' emoji_flags[Jamaica]=$'\U1F1EF\U1F1F2' +emoji_flags[JM]=$'\U1F1EF\U1F1F2' +emoji_flags[JAM]=$'\U1F1EF\U1F1F2' +emoji_flags[jamaica]=$'\U1F1EF\U1F1F2' emoji_flags[Jordan]=$'\U1F1EF\U1F1F4' +emoji_flags[JO]=$'\U1F1EF\U1F1F4' +emoji_flags[JOR]=$'\U1F1EF\U1F1F4' +emoji_flags[jordan]=$'\U1F1EF\U1F1F4' emoji_flags[Japan]=$'\U1F1EF\U1F1F5' +emoji_flags[JP]=$'\U1F1EF\U1F1F5' +emoji_flags[JPN]=$'\U1F1EF\U1F1F5' +emoji_flags[jp]=$'\U1F1EF\U1F1F5' emoji_flags[Kenya]=$'\U1F1F0\U1F1EA' +emoji_flags[KE]=$'\U1F1F0\U1F1EA' +emoji_flags[KEN]=$'\U1F1F0\U1F1EA' +emoji_flags[kenya]=$'\U1F1F0\U1F1EA' emoji_flags[Kyrgyzstan]=$'\U1F1F0\U1F1EC' +emoji_flags[KG]=$'\U1F1F0\U1F1EC' +emoji_flags[KGZ]=$'\U1F1F0\U1F1EC' +emoji_flags[kyrgyzstan]=$'\U1F1F0\U1F1EC' emoji_flags[Cambodia]=$'\U1F1F0\U1F1ED' +emoji_flags[KH]=$'\U1F1F0\U1F1ED' +emoji_flags[KHM]=$'\U1F1F0\U1F1ED' +emoji_flags[cambodia]=$'\U1F1F0\U1F1ED' emoji_flags[Kiribati]=$'\U1F1F0\U1F1EE' +emoji_flags[KI]=$'\U1F1F0\U1F1EE' +emoji_flags[KIR]=$'\U1F1F0\U1F1EE' +emoji_flags[kiribati]=$'\U1F1F0\U1F1EE' emoji_flags[Comoros]=$'\U1F1F0\U1F1F2' -emoji_flags[St__Kitts___Nevis]=$'\U1F1F0\U1F1F3' +emoji_flags[KM]=$'\U1F1F0\U1F1F2' +emoji_flags[COM]=$'\U1F1F0\U1F1F2' +emoji_flags[comoros]=$'\U1F1F0\U1F1F2' +emoji_flags[St_Kitts_and_Nevis]=$'\U1F1F0\U1F1F3' +emoji_flags[KN]=$'\U1F1F0\U1F1F3' +emoji_flags[KNA]=$'\U1F1F0\U1F1F3' +emoji_flags[st_kitts_nevis]=$'\U1F1F0\U1F1F3' emoji_flags[North_Korea]=$'\U1F1F0\U1F1F5' +emoji_flags[KP]=$'\U1F1F0\U1F1F5' +emoji_flags[PRK]=$'\U1F1F0\U1F1F5' +emoji_flags[north_korea]=$'\U1F1F0\U1F1F5' emoji_flags[South_Korea]=$'\U1F1F0\U1F1F7' +emoji_flags[KR]=$'\U1F1F0\U1F1F7' +emoji_flags[KOR]=$'\U1F1F0\U1F1F7' +emoji_flags[kr]=$'\U1F1F0\U1F1F7' emoji_flags[Kuwait]=$'\U1F1F0\U1F1FC' +emoji_flags[KW]=$'\U1F1F0\U1F1FC' +emoji_flags[KWT]=$'\U1F1F0\U1F1FC' +emoji_flags[kuwait]=$'\U1F1F0\U1F1FC' emoji_flags[Cayman_Islands]=$'\U1F1F0\U1F1FE' +emoji_flags[KY]=$'\U1F1F0\U1F1FE' +emoji_flags[CYM]=$'\U1F1F0\U1F1FE' +emoji_flags[cayman_islands]=$'\U1F1F0\U1F1FE' emoji_flags[Kazakhstan]=$'\U1F1F0\U1F1FF' +emoji_flags[KZ]=$'\U1F1F0\U1F1FF' +emoji_flags[KAZ]=$'\U1F1F0\U1F1FF' +emoji_flags[kazakhstan]=$'\U1F1F0\U1F1FF' emoji_flags[Laos]=$'\U1F1F1\U1F1E6' +emoji_flags[LA]=$'\U1F1F1\U1F1E6' +emoji_flags[LAO]=$'\U1F1F1\U1F1E6' +emoji_flags[laos]=$'\U1F1F1\U1F1E6' emoji_flags[Lebanon]=$'\U1F1F1\U1F1E7' -emoji_flags[St__Lucia]=$'\U1F1F1\U1F1E8' +emoji_flags[LB]=$'\U1F1F1\U1F1E7' +emoji_flags[LBN]=$'\U1F1F1\U1F1E7' +emoji_flags[lebanon]=$'\U1F1F1\U1F1E7' +emoji_flags[St_Lucia]=$'\U1F1F1\U1F1E8' +emoji_flags[LC]=$'\U1F1F1\U1F1E8' +emoji_flags[LCA]=$'\U1F1F1\U1F1E8' +emoji_flags[st_lucia]=$'\U1F1F1\U1F1E8' emoji_flags[Liechtenstein]=$'\U1F1F1\U1F1EE' +emoji_flags[LI]=$'\U1F1F1\U1F1EE' +emoji_flags[LIE]=$'\U1F1F1\U1F1EE' +emoji_flags[liechtenstein]=$'\U1F1F1\U1F1EE' emoji_flags[Sri_Lanka]=$'\U1F1F1\U1F1F0' +emoji_flags[LK]=$'\U1F1F1\U1F1F0' +emoji_flags[LKA]=$'\U1F1F1\U1F1F0' +emoji_flags[sri_lanka]=$'\U1F1F1\U1F1F0' emoji_flags[Liberia]=$'\U1F1F1\U1F1F7' +emoji_flags[LR]=$'\U1F1F1\U1F1F7' +emoji_flags[LBR]=$'\U1F1F1\U1F1F7' +emoji_flags[liberia]=$'\U1F1F1\U1F1F7' emoji_flags[Lesotho]=$'\U1F1F1\U1F1F8' +emoji_flags[LS]=$'\U1F1F1\U1F1F8' +emoji_flags[LSO]=$'\U1F1F1\U1F1F8' +emoji_flags[lesotho]=$'\U1F1F1\U1F1F8' emoji_flags[Lithuania]=$'\U1F1F1\U1F1F9' +emoji_flags[LT]=$'\U1F1F1\U1F1F9' +emoji_flags[LTU]=$'\U1F1F1\U1F1F9' +emoji_flags[lithuania]=$'\U1F1F1\U1F1F9' emoji_flags[Luxembourg]=$'\U1F1F1\U1F1FA' +emoji_flags[LU]=$'\U1F1F1\U1F1FA' +emoji_flags[LUX]=$'\U1F1F1\U1F1FA' +emoji_flags[luxembourg]=$'\U1F1F1\U1F1FA' emoji_flags[Latvia]=$'\U1F1F1\U1F1FB' +emoji_flags[LV]=$'\U1F1F1\U1F1FB' +emoji_flags[LVA]=$'\U1F1F1\U1F1FB' +emoji_flags[latvia]=$'\U1F1F1\U1F1FB' emoji_flags[Libya]=$'\U1F1F1\U1F1FE' +emoji_flags[LY]=$'\U1F1F1\U1F1FE' +emoji_flags[LBY]=$'\U1F1F1\U1F1FE' +emoji_flags[libya]=$'\U1F1F1\U1F1FE' emoji_flags[Morocco]=$'\U1F1F2\U1F1E6' +emoji_flags[MA]=$'\U1F1F2\U1F1E6' +emoji_flags[MAR]=$'\U1F1F2\U1F1E6' +emoji_flags[morocco]=$'\U1F1F2\U1F1E6' emoji_flags[Monaco]=$'\U1F1F2\U1F1E8' +emoji_flags[MC]=$'\U1F1F2\U1F1E8' +emoji_flags[MCO]=$'\U1F1F2\U1F1E8' +emoji_flags[monaco]=$'\U1F1F2\U1F1E8' emoji_flags[Moldova]=$'\U1F1F2\U1F1E9' +emoji_flags[MD]=$'\U1F1F2\U1F1E9' +emoji_flags[MDA]=$'\U1F1F2\U1F1E9' +emoji_flags[moldova]=$'\U1F1F2\U1F1E9' emoji_flags[Montenegro]=$'\U1F1F2\U1F1EA' -emoji_flags[St__Martin]=$'\U1F1F2\U1F1EB' +emoji_flags[ME]=$'\U1F1F2\U1F1EA' +emoji_flags[MNE]=$'\U1F1F2\U1F1EA' +emoji_flags[montenegro]=$'\U1F1F2\U1F1EA' +emoji_flags[St_Martin]=$'\U1F1F2\U1F1EB' +emoji_flags[MF]=$'\U1F1F2\U1F1EB' +emoji_flags[MAF]=$'\U1F1F2\U1F1EB' +emoji_flags[st_martin]=$'\U1F1F2\U1F1EB' emoji_flags[Madagascar]=$'\U1F1F2\U1F1EC' +emoji_flags[MG]=$'\U1F1F2\U1F1EC' +emoji_flags[MDG]=$'\U1F1F2\U1F1EC' +emoji_flags[madagascar]=$'\U1F1F2\U1F1EC' emoji_flags[Marshall_Islands]=$'\U1F1F2\U1F1ED' +emoji_flags[MH]=$'\U1F1F2\U1F1ED' +emoji_flags[MHL]=$'\U1F1F2\U1F1ED' +emoji_flags[marshall_islands]=$'\U1F1F2\U1F1ED' emoji_flags[Macedonia]=$'\U1F1F2\U1F1F0' +emoji_flags[MK]=$'\U1F1F2\U1F1F0' +emoji_flags[MKD]=$'\U1F1F2\U1F1F0' +emoji_flags[macedonia]=$'\U1F1F2\U1F1F0' emoji_flags[Mali]=$'\U1F1F2\U1F1F1' -emoji_flags[Myanmar]=$'\U1F1F2\U1F1F2' +emoji_flags[ML]=$'\U1F1F2\U1F1F1' +emoji_flags[MLI]=$'\U1F1F2\U1F1F1' +emoji_flags[mali]=$'\U1F1F2\U1F1F1' +emoji_flags[Myanmar_Burma_]=$'\U1F1F2\U1F1F2' +emoji_flags[MM]=$'\U1F1F2\U1F1F2' +emoji_flags[MMR]=$'\U1F1F2\U1F1F2' +emoji_flags[myanmar]=$'\U1F1F2\U1F1F2' emoji_flags[Mongolia]=$'\U1F1F2\U1F1F3' -emoji_flags[Macau]=$'\U1F1F2\U1F1F4' +emoji_flags[MN]=$'\U1F1F2\U1F1F3' +emoji_flags[MNG]=$'\U1F1F2\U1F1F3' +emoji_flags[mongolia]=$'\U1F1F2\U1F1F3' +emoji_flags[Macao_SAR_China]=$'\U1F1F2\U1F1F4' +emoji_flags[MO]=$'\U1F1F2\U1F1F4' +emoji_flags[MAC]=$'\U1F1F2\U1F1F4' +emoji_flags[macau]=$'\U1F1F2\U1F1F4' emoji_flags[Northern_Mariana_Islands]=$'\U1F1F2\U1F1F5' +emoji_flags[MP]=$'\U1F1F2\U1F1F5' +emoji_flags[MNP]=$'\U1F1F2\U1F1F5' +emoji_flags[northern_mariana_islands]=$'\U1F1F2\U1F1F5' emoji_flags[Martinique]=$'\U1F1F2\U1F1F6' +emoji_flags[MQ]=$'\U1F1F2\U1F1F6' +emoji_flags[MTQ]=$'\U1F1F2\U1F1F6' +emoji_flags[martinique]=$'\U1F1F2\U1F1F6' emoji_flags[Mauritania]=$'\U1F1F2\U1F1F7' +emoji_flags[MR]=$'\U1F1F2\U1F1F7' +emoji_flags[MRT]=$'\U1F1F2\U1F1F7' +emoji_flags[mauritania]=$'\U1F1F2\U1F1F7' emoji_flags[Montserrat]=$'\U1F1F2\U1F1F8' +emoji_flags[MS]=$'\U1F1F2\U1F1F8' +emoji_flags[MSR]=$'\U1F1F2\U1F1F8' +emoji_flags[montserrat]=$'\U1F1F2\U1F1F8' emoji_flags[Malta]=$'\U1F1F2\U1F1F9' +emoji_flags[MT]=$'\U1F1F2\U1F1F9' +emoji_flags[MLT]=$'\U1F1F2\U1F1F9' +emoji_flags[malta]=$'\U1F1F2\U1F1F9' emoji_flags[Mauritius]=$'\U1F1F2\U1F1FA' +emoji_flags[MU]=$'\U1F1F2\U1F1FA' +emoji_flags[MUS]=$'\U1F1F2\U1F1FA' +emoji_flags[mauritius]=$'\U1F1F2\U1F1FA' emoji_flags[Maldives]=$'\U1F1F2\U1F1FB' +emoji_flags[MV]=$'\U1F1F2\U1F1FB' +emoji_flags[MDV]=$'\U1F1F2\U1F1FB' +emoji_flags[maldives]=$'\U1F1F2\U1F1FB' emoji_flags[Malawi]=$'\U1F1F2\U1F1FC' +emoji_flags[MW]=$'\U1F1F2\U1F1FC' +emoji_flags[MWI]=$'\U1F1F2\U1F1FC' +emoji_flags[malawi]=$'\U1F1F2\U1F1FC' emoji_flags[Mexico]=$'\U1F1F2\U1F1FD' +emoji_flags[MX]=$'\U1F1F2\U1F1FD' +emoji_flags[MEX]=$'\U1F1F2\U1F1FD' +emoji_flags[mexico]=$'\U1F1F2\U1F1FD' emoji_flags[Malaysia]=$'\U1F1F2\U1F1FE' +emoji_flags[MY]=$'\U1F1F2\U1F1FE' +emoji_flags[MYS]=$'\U1F1F2\U1F1FE' +emoji_flags[malaysia]=$'\U1F1F2\U1F1FE' emoji_flags[Mozambique]=$'\U1F1F2\U1F1FF' +emoji_flags[MZ]=$'\U1F1F2\U1F1FF' +emoji_flags[MOZ]=$'\U1F1F2\U1F1FF' +emoji_flags[mozambique]=$'\U1F1F2\U1F1FF' emoji_flags[Namibia]=$'\U1F1F3\U1F1E6' +emoji_flags[NA]=$'\U1F1F3\U1F1E6' +emoji_flags[NAM]=$'\U1F1F3\U1F1E6' +emoji_flags[namibia]=$'\U1F1F3\U1F1E6' emoji_flags[New_Caledonia]=$'\U1F1F3\U1F1E8' +emoji_flags[NC]=$'\U1F1F3\U1F1E8' +emoji_flags[NCL]=$'\U1F1F3\U1F1E8' +emoji_flags[new_caledonia]=$'\U1F1F3\U1F1E8' emoji_flags[Niger]=$'\U1F1F3\U1F1EA' +emoji_flags[NE]=$'\U1F1F3\U1F1EA' +emoji_flags[NER]=$'\U1F1F3\U1F1EA' +emoji_flags[niger]=$'\U1F1F3\U1F1EA' emoji_flags[Norfolk_Island]=$'\U1F1F3\U1F1EB' +emoji_flags[NF]=$'\U1F1F3\U1F1EB' +emoji_flags[NFK]=$'\U1F1F3\U1F1EB' +emoji_flags[norfolk_island]=$'\U1F1F3\U1F1EB' emoji_flags[Nigeria]=$'\U1F1F3\U1F1EC' +emoji_flags[NG]=$'\U1F1F3\U1F1EC' +emoji_flags[NGA]=$'\U1F1F3\U1F1EC' +emoji_flags[nigeria]=$'\U1F1F3\U1F1EC' emoji_flags[Nicaragua]=$'\U1F1F3\U1F1EE' +emoji_flags[NI]=$'\U1F1F3\U1F1EE' +emoji_flags[NIC]=$'\U1F1F3\U1F1EE' +emoji_flags[nicaragua]=$'\U1F1F3\U1F1EE' emoji_flags[Netherlands]=$'\U1F1F3\U1F1F1' +emoji_flags[NL]=$'\U1F1F3\U1F1F1' +emoji_flags[NLD]=$'\U1F1F3\U1F1F1' +emoji_flags[netherlands]=$'\U1F1F3\U1F1F1' emoji_flags[Norway]=$'\U1F1F3\U1F1F4' +emoji_flags[NO]=$'\U1F1F3\U1F1F4' +emoji_flags[NOR]=$'\U1F1F3\U1F1F4' +emoji_flags[norway]=$'\U1F1F3\U1F1F4' emoji_flags[Nepal]=$'\U1F1F3\U1F1F5' +emoji_flags[NP]=$'\U1F1F3\U1F1F5' +emoji_flags[NPL]=$'\U1F1F3\U1F1F5' +emoji_flags[nepal]=$'\U1F1F3\U1F1F5' emoji_flags[Nauru]=$'\U1F1F3\U1F1F7' +emoji_flags[NR]=$'\U1F1F3\U1F1F7' +emoji_flags[NRU]=$'\U1F1F3\U1F1F7' +emoji_flags[nauru]=$'\U1F1F3\U1F1F7' emoji_flags[Niue]=$'\U1F1F3\U1F1FA' +emoji_flags[NU]=$'\U1F1F3\U1F1FA' +emoji_flags[NIU]=$'\U1F1F3\U1F1FA' +emoji_flags[niue]=$'\U1F1F3\U1F1FA' emoji_flags[New_Zealand]=$'\U1F1F3\U1F1FF' +emoji_flags[NZ]=$'\U1F1F3\U1F1FF' +emoji_flags[NZL]=$'\U1F1F3\U1F1FF' +emoji_flags[new_zealand]=$'\U1F1F3\U1F1FF' emoji_flags[Oman]=$'\U1F1F4\U1F1F2' +emoji_flags[OM]=$'\U1F1F4\U1F1F2' +emoji_flags[OMN]=$'\U1F1F4\U1F1F2' +emoji_flags[oman]=$'\U1F1F4\U1F1F2' emoji_flags[Panama]=$'\U1F1F5\U1F1E6' +emoji_flags[PA]=$'\U1F1F5\U1F1E6' +emoji_flags[PAN]=$'\U1F1F5\U1F1E6' +emoji_flags[panama]=$'\U1F1F5\U1F1E6' emoji_flags[Peru]=$'\U1F1F5\U1F1EA' +emoji_flags[PE]=$'\U1F1F5\U1F1EA' +emoji_flags[PER]=$'\U1F1F5\U1F1EA' +emoji_flags[peru]=$'\U1F1F5\U1F1EA' emoji_flags[French_Polynesia]=$'\U1F1F5\U1F1EB' +emoji_flags[PF]=$'\U1F1F5\U1F1EB' +emoji_flags[PYF]=$'\U1F1F5\U1F1EB' +emoji_flags[french_polynesia]=$'\U1F1F5\U1F1EB' emoji_flags[Papua_New_Guinea]=$'\U1F1F5\U1F1EC' +emoji_flags[PG]=$'\U1F1F5\U1F1EC' +emoji_flags[PNG]=$'\U1F1F5\U1F1EC' +emoji_flags[papua_new_guinea]=$'\U1F1F5\U1F1EC' emoji_flags[Philippines]=$'\U1F1F5\U1F1ED' +emoji_flags[PH]=$'\U1F1F5\U1F1ED' +emoji_flags[PHL]=$'\U1F1F5\U1F1ED' +emoji_flags[philippines]=$'\U1F1F5\U1F1ED' emoji_flags[Pakistan]=$'\U1F1F5\U1F1F0' +emoji_flags[PK]=$'\U1F1F5\U1F1F0' +emoji_flags[PAK]=$'\U1F1F5\U1F1F0' +emoji_flags[pakistan]=$'\U1F1F5\U1F1F0' emoji_flags[Poland]=$'\U1F1F5\U1F1F1' -emoji_flags[St__Pierre___Miquelon]=$'\U1F1F5\U1F1F2' +emoji_flags[PL]=$'\U1F1F5\U1F1F1' +emoji_flags[POL]=$'\U1F1F5\U1F1F1' +emoji_flags[poland]=$'\U1F1F5\U1F1F1' +emoji_flags[St_Pierre_and_Miquelon]=$'\U1F1F5\U1F1F2' +emoji_flags[PM]=$'\U1F1F5\U1F1F2' +emoji_flags[SPM]=$'\U1F1F5\U1F1F2' +emoji_flags[st_pierre_miquelon]=$'\U1F1F5\U1F1F2' emoji_flags[Pitcairn_Islands]=$'\U1F1F5\U1F1F3' +emoji_flags[PN]=$'\U1F1F5\U1F1F3' +emoji_flags[PCN]=$'\U1F1F5\U1F1F3' +emoji_flags[pitcairn_islands]=$'\U1F1F5\U1F1F3' emoji_flags[Puerto_Rico]=$'\U1F1F5\U1F1F7' +emoji_flags[PR]=$'\U1F1F5\U1F1F7' +emoji_flags[PRI]=$'\U1F1F5\U1F1F7' +emoji_flags[puerto_rico]=$'\U1F1F5\U1F1F7' emoji_flags[Palestinian_Territories]=$'\U1F1F5\U1F1F8' +emoji_flags[PS]=$'\U1F1F5\U1F1F8' +emoji_flags[PSE]=$'\U1F1F5\U1F1F8' +emoji_flags[palestinian_territories]=$'\U1F1F5\U1F1F8' emoji_flags[Portugal]=$'\U1F1F5\U1F1F9' +emoji_flags[PT]=$'\U1F1F5\U1F1F9' +emoji_flags[PRT]=$'\U1F1F5\U1F1F9' +emoji_flags[portugal]=$'\U1F1F5\U1F1F9' emoji_flags[Palau]=$'\U1F1F5\U1F1FC' +emoji_flags[PW]=$'\U1F1F5\U1F1FC' +emoji_flags[PLW]=$'\U1F1F5\U1F1FC' +emoji_flags[palau]=$'\U1F1F5\U1F1FC' emoji_flags[Paraguay]=$'\U1F1F5\U1F1FE' +emoji_flags[PY]=$'\U1F1F5\U1F1FE' +emoji_flags[PRY]=$'\U1F1F5\U1F1FE' +emoji_flags[paraguay]=$'\U1F1F5\U1F1FE' emoji_flags[Qatar]=$'\U1F1F6\U1F1E6' -emoji_flags[R_union]=$'\U1F1F7\U1F1EA' +emoji_flags[QA]=$'\U1F1F6\U1F1E6' +emoji_flags[QAT]=$'\U1F1F6\U1F1E6' +emoji_flags[qatar]=$'\U1F1F6\U1F1E6' +emoji_flags[Réunion]=$'\U1F1F7\U1F1EA' +emoji_flags[RE]=$'\U1F1F7\U1F1EA' +emoji_flags[REU]=$'\U1F1F7\U1F1EA' +emoji_flags[reunion]=$'\U1F1F7\U1F1EA' emoji_flags[Romania]=$'\U1F1F7\U1F1F4' +emoji_flags[RO]=$'\U1F1F7\U1F1F4' +emoji_flags[ROU]=$'\U1F1F7\U1F1F4' +emoji_flags[romania]=$'\U1F1F7\U1F1F4' emoji_flags[Serbia]=$'\U1F1F7\U1F1F8' +emoji_flags[RS]=$'\U1F1F7\U1F1F8' +emoji_flags[SRB]=$'\U1F1F7\U1F1F8' +emoji_flags[serbia]=$'\U1F1F7\U1F1F8' emoji_flags[Russia]=$'\U1F1F7\U1F1FA' +emoji_flags[RU]=$'\U1F1F7\U1F1FA' +emoji_flags[RUS]=$'\U1F1F7\U1F1FA' +emoji_flags[ru]=$'\U1F1F7\U1F1FA' emoji_flags[Rwanda]=$'\U1F1F7\U1F1FC' +emoji_flags[RW]=$'\U1F1F7\U1F1FC' +emoji_flags[RWA]=$'\U1F1F7\U1F1FC' +emoji_flags[rwanda]=$'\U1F1F7\U1F1FC' emoji_flags[Saudi_Arabia]=$'\U1F1F8\U1F1E6' +emoji_flags[SA]=$'\U1F1F8\U1F1E6' +emoji_flags[SAU]=$'\U1F1F8\U1F1E6' +emoji_flags[saudi_arabia]=$'\U1F1F8\U1F1E6' emoji_flags[Solomon_Islands]=$'\U1F1F8\U1F1E7' +emoji_flags[SB]=$'\U1F1F8\U1F1E7' +emoji_flags[SLB]=$'\U1F1F8\U1F1E7' +emoji_flags[solomon_islands]=$'\U1F1F8\U1F1E7' emoji_flags[Seychelles]=$'\U1F1F8\U1F1E8' +emoji_flags[SC]=$'\U1F1F8\U1F1E8' +emoji_flags[SYC]=$'\U1F1F8\U1F1E8' +emoji_flags[seychelles]=$'\U1F1F8\U1F1E8' emoji_flags[Sudan]=$'\U1F1F8\U1F1E9' +emoji_flags[SD]=$'\U1F1F8\U1F1E9' +emoji_flags[SDN]=$'\U1F1F8\U1F1E9' +emoji_flags[sudan]=$'\U1F1F8\U1F1E9' emoji_flags[Sweden]=$'\U1F1F8\U1F1EA' +emoji_flags[SE]=$'\U1F1F8\U1F1EA' +emoji_flags[SWE]=$'\U1F1F8\U1F1EA' +emoji_flags[sweden]=$'\U1F1F8\U1F1EA' emoji_flags[Singapore]=$'\U1F1F8\U1F1EC' -emoji_flags[St__Helena]=$'\U1F1F8\U1F1ED' +emoji_flags[SG]=$'\U1F1F8\U1F1EC' +emoji_flags[SGP]=$'\U1F1F8\U1F1EC' +emoji_flags[singapore]=$'\U1F1F8\U1F1EC' +emoji_flags[St_Helena]=$'\U1F1F8\U1F1ED' +emoji_flags[SH]=$'\U1F1F8\U1F1ED' +emoji_flags[SHN]=$'\U1F1F8\U1F1ED' +emoji_flags[st_helena]=$'\U1F1F8\U1F1ED' emoji_flags[Slovenia]=$'\U1F1F8\U1F1EE' -emoji_flags[Svalbard___Jan_Mayen]=$'\U1F1F8\U1F1EF' +emoji_flags[SI]=$'\U1F1F8\U1F1EE' +emoji_flags[SVN]=$'\U1F1F8\U1F1EE' +emoji_flags[slovenia]=$'\U1F1F8\U1F1EE' +emoji_flags[Svalbard_and_Jan_Mayen]=$'\U1F1F8\U1F1EF' +emoji_flags[SJ]=$'\U1F1F8\U1F1EF' +emoji_flags[SJM]=$'\U1F1F8\U1F1EF' +emoji_flags[svalbard_jan_mayen]=$'\U1F1F8\U1F1EF' emoji_flags[Slovakia]=$'\U1F1F8\U1F1F0' +emoji_flags[SK]=$'\U1F1F8\U1F1F0' +emoji_flags[SVK]=$'\U1F1F8\U1F1F0' +emoji_flags[slovakia]=$'\U1F1F8\U1F1F0' emoji_flags[Sierra_Leone]=$'\U1F1F8\U1F1F1' +emoji_flags[SL]=$'\U1F1F8\U1F1F1' +emoji_flags[SLE]=$'\U1F1F8\U1F1F1' +emoji_flags[sierra_leone]=$'\U1F1F8\U1F1F1' emoji_flags[San_Marino]=$'\U1F1F8\U1F1F2' +emoji_flags[SM]=$'\U1F1F8\U1F1F2' +emoji_flags[SMR]=$'\U1F1F8\U1F1F2' +emoji_flags[san_marino]=$'\U1F1F8\U1F1F2' emoji_flags[Senegal]=$'\U1F1F8\U1F1F3' +emoji_flags[SN]=$'\U1F1F8\U1F1F3' +emoji_flags[SEN]=$'\U1F1F8\U1F1F3' +emoji_flags[senegal]=$'\U1F1F8\U1F1F3' emoji_flags[Somalia]=$'\U1F1F8\U1F1F4' +emoji_flags[SO]=$'\U1F1F8\U1F1F4' +emoji_flags[SOM]=$'\U1F1F8\U1F1F4' +emoji_flags[somalia]=$'\U1F1F8\U1F1F4' emoji_flags[Suriname]=$'\U1F1F8\U1F1F7' +emoji_flags[SR]=$'\U1F1F8\U1F1F7' +emoji_flags[SUR]=$'\U1F1F8\U1F1F7' +emoji_flags[suriname]=$'\U1F1F8\U1F1F7' emoji_flags[South_Sudan]=$'\U1F1F8\U1F1F8' -emoji_flags[S_o_Tom____Pr_ncipe]=$'\U1F1F8\U1F1F9' +emoji_flags[SS]=$'\U1F1F8\U1F1F8' +emoji_flags[SSD]=$'\U1F1F8\U1F1F8' +emoji_flags[south_sudan]=$'\U1F1F8\U1F1F8' +emoji_flags[São_Tomé_and_Príncipe]=$'\U1F1F8\U1F1F9' +emoji_flags[sao_tome_principe]=$'\U1F1F8\U1F1F9' emoji_flags[El_Salvador]=$'\U1F1F8\U1F1FB' +emoji_flags[SV]=$'\U1F1F8\U1F1FB' +emoji_flags[SLV]=$'\U1F1F8\U1F1FB' +emoji_flags[el_salvador]=$'\U1F1F8\U1F1FB' emoji_flags[Sint_Maarten]=$'\U1F1F8\U1F1FD' +emoji_flags[SX]=$'\U1F1F8\U1F1FD' +emoji_flags[SXM]=$'\U1F1F8\U1F1FD' +emoji_flags[sint_maarten]=$'\U1F1F8\U1F1FD' emoji_flags[Syria]=$'\U1F1F8\U1F1FE' -emoji_flags[Swaziland]=$'\U1F1F8\U1F1FF' +emoji_flags[SY]=$'\U1F1F8\U1F1FE' +emoji_flags[SYR]=$'\U1F1F8\U1F1FE' +emoji_flags[syria]=$'\U1F1F8\U1F1FE' +emoji_flags[Eswatini]=$'\U1F1F8\U1F1FF' +emoji_flags[SZ]=$'\U1F1F8\U1F1FF' +emoji_flags[SWZ]=$'\U1F1F8\U1F1FF' +emoji_flags[swaziland]=$'\U1F1F8\U1F1FF' emoji_flags[Tristan_da_Cunha]=$'\U1F1F9\U1F1E6' -emoji_flags[Turks___Caicos_Islands]=$'\U1F1F9\U1F1E8' +emoji_flags[tristan_da_cunha]=$'\U1F1F9\U1F1E6' +emoji_flags[Turks_and_Caicos_Islands]=$'\U1F1F9\U1F1E8' +emoji_flags[TC]=$'\U1F1F9\U1F1E8' +emoji_flags[TCA]=$'\U1F1F9\U1F1E8' +emoji_flags[turks_caicos_islands]=$'\U1F1F9\U1F1E8' emoji_flags[Chad]=$'\U1F1F9\U1F1E9' +emoji_flags[TD]=$'\U1F1F9\U1F1E9' +emoji_flags[TCD]=$'\U1F1F9\U1F1E9' +emoji_flags[chad]=$'\U1F1F9\U1F1E9' emoji_flags[French_Southern_Territories]=$'\U1F1F9\U1F1EB' +emoji_flags[TF]=$'\U1F1F9\U1F1EB' +emoji_flags[ATF]=$'\U1F1F9\U1F1EB' +emoji_flags[french_southern_territories]=$'\U1F1F9\U1F1EB' emoji_flags[Togo]=$'\U1F1F9\U1F1EC' +emoji_flags[TG]=$'\U1F1F9\U1F1EC' +emoji_flags[TGO]=$'\U1F1F9\U1F1EC' +emoji_flags[togo]=$'\U1F1F9\U1F1EC' emoji_flags[Thailand]=$'\U1F1F9\U1F1ED' +emoji_flags[TH]=$'\U1F1F9\U1F1ED' +emoji_flags[THA]=$'\U1F1F9\U1F1ED' +emoji_flags[thailand]=$'\U1F1F9\U1F1ED' emoji_flags[Tajikistan]=$'\U1F1F9\U1F1EF' +emoji_flags[TJ]=$'\U1F1F9\U1F1EF' +emoji_flags[TJK]=$'\U1F1F9\U1F1EF' +emoji_flags[tajikistan]=$'\U1F1F9\U1F1EF' emoji_flags[Tokelau]=$'\U1F1F9\U1F1F0' +emoji_flags[TK]=$'\U1F1F9\U1F1F0' +emoji_flags[TKL]=$'\U1F1F9\U1F1F0' +emoji_flags[tokelau]=$'\U1F1F9\U1F1F0' emoji_flags[Timor_Leste]=$'\U1F1F9\U1F1F1' +emoji_flags[TL]=$'\U1F1F9\U1F1F1' +emoji_flags[TLS]=$'\U1F1F9\U1F1F1' +emoji_flags[timor_leste]=$'\U1F1F9\U1F1F1' emoji_flags[Turkmenistan]=$'\U1F1F9\U1F1F2' +emoji_flags[TM]=$'\U1F1F9\U1F1F2' +emoji_flags[TKM]=$'\U1F1F9\U1F1F2' +emoji_flags[turkmenistan]=$'\U1F1F9\U1F1F2' emoji_flags[Tunisia]=$'\U1F1F9\U1F1F3' +emoji_flags[TN]=$'\U1F1F9\U1F1F3' +emoji_flags[TUN]=$'\U1F1F9\U1F1F3' +emoji_flags[tunisia]=$'\U1F1F9\U1F1F3' emoji_flags[Tonga]=$'\U1F1F9\U1F1F4' +emoji_flags[TO]=$'\U1F1F9\U1F1F4' +emoji_flags[TON]=$'\U1F1F9\U1F1F4' +emoji_flags[tonga]=$'\U1F1F9\U1F1F4' emoji_flags[Turkey]=$'\U1F1F9\U1F1F7' -emoji_flags[Trinidad___Tobago]=$'\U1F1F9\U1F1F9' +emoji_flags[TR]=$'\U1F1F9\U1F1F7' +emoji_flags[TUR]=$'\U1F1F9\U1F1F7' +emoji_flags[tr]=$'\U1F1F9\U1F1F7' +emoji_flags[Trinidad_and_Tobago]=$'\U1F1F9\U1F1F9' +emoji_flags[TT]=$'\U1F1F9\U1F1F9' +emoji_flags[TTO]=$'\U1F1F9\U1F1F9' +emoji_flags[trinidad_tobago]=$'\U1F1F9\U1F1F9' emoji_flags[Tuvalu]=$'\U1F1F9\U1F1FB' +emoji_flags[TV]=$'\U1F1F9\U1F1FB' +emoji_flags[TUV]=$'\U1F1F9\U1F1FB' +emoji_flags[tuvalu]=$'\U1F1F9\U1F1FB' emoji_flags[Taiwan]=$'\U1F1F9\U1F1FC' +emoji_flags[TW]=$'\U1F1F9\U1F1FC' +emoji_flags[TWN]=$'\U1F1F9\U1F1FC' +emoji_flags[taiwan]=$'\U1F1F9\U1F1FC' emoji_flags[Tanzania]=$'\U1F1F9\U1F1FF' +emoji_flags[TZ]=$'\U1F1F9\U1F1FF' +emoji_flags[TZA]=$'\U1F1F9\U1F1FF' +emoji_flags[tanzania]=$'\U1F1F9\U1F1FF' emoji_flags[Ukraine]=$'\U1F1FA\U1F1E6' +emoji_flags[UA]=$'\U1F1FA\U1F1E6' +emoji_flags[UKR]=$'\U1F1FA\U1F1E6' +emoji_flags[ukraine]=$'\U1F1FA\U1F1E6' emoji_flags[Uganda]=$'\U1F1FA\U1F1EC' -emoji_flags[U_S__Outlying_Islands]=$'\U1F1FA\U1F1F2' +emoji_flags[UG]=$'\U1F1FA\U1F1EC' +emoji_flags[UGA]=$'\U1F1FA\U1F1EC' +emoji_flags[uganda]=$'\U1F1FA\U1F1EC' +emoji_flags[U_S_Outlying_Islands]=$'\U1F1FA\U1F1F2' +emoji_flags[us_outlying_islands]=$'\U1F1FA\U1F1F2' +emoji_flags[United_Nations]=$'\U1F1FA\U1F1F3' +emoji_flags[united_nations]=$'\U1F1FA\U1F1F3' emoji_flags[United_States]=$'\U1F1FA\U1F1F8' +emoji_flags[US]=$'\U1F1FA\U1F1F8' +emoji_flags[USA]=$'\U1F1FA\U1F1F8' +emoji_flags[us]=$'\U1F1FA\U1F1F8' emoji_flags[Uruguay]=$'\U1F1FA\U1F1FE' +emoji_flags[UY]=$'\U1F1FA\U1F1FE' +emoji_flags[URY]=$'\U1F1FA\U1F1FE' +emoji_flags[uruguay]=$'\U1F1FA\U1F1FE' emoji_flags[Uzbekistan]=$'\U1F1FA\U1F1FF' +emoji_flags[UZ]=$'\U1F1FA\U1F1FF' +emoji_flags[UZB]=$'\U1F1FA\U1F1FF' +emoji_flags[uzbekistan]=$'\U1F1FA\U1F1FF' emoji_flags[Vatican_City]=$'\U1F1FB\U1F1E6' -emoji_flags[St__Vincent___Grenadines]=$'\U1F1FB\U1F1E8' +emoji_flags[VA]=$'\U1F1FB\U1F1E6' +emoji_flags[VAT]=$'\U1F1FB\U1F1E6' +emoji_flags[vatican_city]=$'\U1F1FB\U1F1E6' +emoji_flags[St_Vincent_and_Grenadines]=$'\U1F1FB\U1F1E8' +emoji_flags[VC]=$'\U1F1FB\U1F1E8' +emoji_flags[VCT]=$'\U1F1FB\U1F1E8' +emoji_flags[st_vincent_grenadines]=$'\U1F1FB\U1F1E8' emoji_flags[Venezuela]=$'\U1F1FB\U1F1EA' +emoji_flags[VE]=$'\U1F1FB\U1F1EA' +emoji_flags[VEN]=$'\U1F1FB\U1F1EA' +emoji_flags[venezuela]=$'\U1F1FB\U1F1EA' emoji_flags[British_Virgin_Islands]=$'\U1F1FB\U1F1EC' -emoji_flags[U_S__Virgin_Islands]=$'\U1F1FB\U1F1EE' +emoji_flags[VG]=$'\U1F1FB\U1F1EC' +emoji_flags[VGB]=$'\U1F1FB\U1F1EC' +emoji_flags[british_virgin_islands]=$'\U1F1FB\U1F1EC' +emoji_flags[U_S_Virgin_Islands]=$'\U1F1FB\U1F1EE' +emoji_flags[VI]=$'\U1F1FB\U1F1EE' +emoji_flags[VIR]=$'\U1F1FB\U1F1EE' +emoji_flags[us_virgin_islands]=$'\U1F1FB\U1F1EE' emoji_flags[Vietnam]=$'\U1F1FB\U1F1F3' +emoji_flags[VN]=$'\U1F1FB\U1F1F3' +emoji_flags[VNM]=$'\U1F1FB\U1F1F3' +emoji_flags[vietnam]=$'\U1F1FB\U1F1F3' emoji_flags[Vanuatu]=$'\U1F1FB\U1F1FA' -emoji_flags[Wallis___Futuna]=$'\U1F1FC\U1F1EB' +emoji_flags[VU]=$'\U1F1FB\U1F1FA' +emoji_flags[VUT]=$'\U1F1FB\U1F1FA' +emoji_flags[vanuatu]=$'\U1F1FB\U1F1FA' +emoji_flags[Wallis_and_Futuna]=$'\U1F1FC\U1F1EB' +emoji_flags[WF]=$'\U1F1FC\U1F1EB' +emoji_flags[WLF]=$'\U1F1FC\U1F1EB' +emoji_flags[wallis_futuna]=$'\U1F1FC\U1F1EB' emoji_flags[Samoa]=$'\U1F1FC\U1F1F8' +emoji_flags[WS]=$'\U1F1FC\U1F1F8' +emoji_flags[WSM]=$'\U1F1FC\U1F1F8' +emoji_flags[samoa]=$'\U1F1FC\U1F1F8' emoji_flags[Kosovo]=$'\U1F1FD\U1F1F0' +emoji_flags[XK]=$'\U1F1FD\U1F1F0' +emoji_flags[XKX]=$'\U1F1FD\U1F1F0' +emoji_flags[kosovo]=$'\U1F1FD\U1F1F0' emoji_flags[Yemen]=$'\U1F1FE\U1F1EA' +emoji_flags[YE]=$'\U1F1FE\U1F1EA' +emoji_flags[YEM]=$'\U1F1FE\U1F1EA' +emoji_flags[yemen]=$'\U1F1FE\U1F1EA' emoji_flags[Mayotte]=$'\U1F1FE\U1F1F9' +emoji_flags[YT]=$'\U1F1FE\U1F1F9' +emoji_flags[MYT]=$'\U1F1FE\U1F1F9' +emoji_flags[mayotte]=$'\U1F1FE\U1F1F9' emoji_flags[South_Africa]=$'\U1F1FF\U1F1E6' +emoji_flags[ZA]=$'\U1F1FF\U1F1E6' +emoji_flags[ZAF]=$'\U1F1FF\U1F1E6' +emoji_flags[south_africa]=$'\U1F1FF\U1F1E6' emoji_flags[Zambia]=$'\U1F1FF\U1F1F2' +emoji_flags[ZM]=$'\U1F1FF\U1F1F2' +emoji_flags[ZMB]=$'\U1F1FF\U1F1F2' +emoji_flags[zambia]=$'\U1F1FF\U1F1F2' emoji_flags[Zimbabwe]=$'\U1F1FF\U1F1FC' +emoji_flags[ZW]=$'\U1F1FF\U1F1FC' +emoji_flags[ZWE]=$'\U1F1FF\U1F1FC' +emoji_flags[zimbabwe]=$'\U1F1FF\U1F1FC' +emoji_flags[England]=$'\U1F3F4\UE0067\UE0062\UE0065\UE006E\UE0067\UE007F' +emoji_flags[england]=$'\U1F3F4\UE0067\UE0062\UE0065\UE006E\UE0067\UE007F' +emoji_flags[Scotland]=$'\U1F3F4\UE0067\UE0062\UE0073\UE0063\UE0074\UE007F' +emoji_flags[scotland]=$'\U1F3F4\UE0067\UE0062\UE0073\UE0063\UE0074\UE007F' +emoji_flags[Wales]=$'\U1F3F4\UE0067\UE0062\UE0077\UE006C\UE0073\UE007F' +emoji_flags[wales]=$'\U1F3F4\UE0067\UE0062\UE0077\UE006C\UE0073\UE007F' +emoji_groups[fruits]=" + grapes + melon + watermelon + tangerine + lemon + banana + pineapple + mango + red_apple + green_apple + pear + peach + cherries + strawberry + kiwi_fruit + tomato + coconut +" + +emoji_groups[vehicles]=" + locomotive + railway_car + high_speed_train + bullet_train + bullet_train_1 + metro + light_rail + station + tram + monorail + mountain_railway + tram_car + bus + oncoming_bus + trolleybus + minibus + ambulance + fire_engine + police_car + oncoming_police_car + taxi + oncoming_taxi + automobile + oncoming_automobile + sport_utility_vehicle + delivery_truck + articulated_lorry + tractor + racing_car + motorcycle + motor_scooter + manual_wheelchair + motorized_wheelchair + auto_rickshaw + bicycle + kick_scooter + skateboard + bus_stop + motorway + railway_track + oil_drum + fuel_pump + police_car_light + horizontal_traffic_light + vertical_traffic_light + stop_sign + construction + anchor + sailboat + canoe + speedboat + passenger_ship + ferry + motor_boat + ship + airplane + small_airplane + airplane_departure + airplane_arrival + parachute + seat + helicopter + suspension_railway + mountain_cableway + aerial_tramway + satellite + rocket + flying_saucer + ATM_sign + litter_in_bin_sign + potable_water + wheelchair_symbol + men_s_room + women_s_room + restroom + baby_symbol + water_closet + passport_control + customs + baggage_claim + left_luggage +" + +emoji_groups[hands]=" + waving_hand + waving_hand_light_skin_tone + waving_hand_medium_light_skin_tone + waving_hand_medium_skin_tone + waving_hand_medium_dark_skin_tone + waving_hand_dark_skin_tone + raised_back_of_hand + raised_back_of_hand_light_skin_tone + raised_back_of_hand_medium_light_skin_tone + raised_back_of_hand_medium_skin_tone + raised_back_of_hand_medium_dark_skin_tone + raised_back_of_hand_dark_skin_tone + hand_with_fingers_splayed + hand_with_fingers_splayed_light_skin_tone + hand_with_fingers_splayed_medium_light_skin_tone + hand_with_fingers_splayed_medium_skin_tone + hand_with_fingers_splayed_medium_dark_skin_tone + hand_with_fingers_splayed_dark_skin_tone + raised_hand + raised_hand_light_skin_tone + raised_hand_medium_light_skin_tone + raised_hand_medium_skin_tone + raised_hand_medium_dark_skin_tone + raised_hand_dark_skin_tone + vulcan_salute + vulcan_salute_light_skin_tone + vulcan_salute_medium_light_skin_tone + vulcan_salute_medium_skin_tone + vulcan_salute_medium_dark_skin_tone + vulcan_salute_dark_skin_tone + OK_hand + OK_hand_light_skin_tone + OK_hand_medium_light_skin_tone + OK_hand_medium_skin_tone + OK_hand_medium_dark_skin_tone + OK_hand_dark_skin_tone + pinching_hand + pinching_hand_light_skin_tone + pinching_hand_medium_light_skin_tone + pinching_hand_medium_skin_tone + pinching_hand_medium_dark_skin_tone + pinching_hand_dark_skin_tone + victory_hand + victory_hand_light_skin_tone + victory_hand_medium_light_skin_tone + victory_hand_medium_skin_tone + victory_hand_medium_dark_skin_tone + victory_hand_dark_skin_tone + crossed_fingers + crossed_fingers_light_skin_tone + crossed_fingers_medium_light_skin_tone + crossed_fingers_medium_skin_tone + crossed_fingers_medium_dark_skin_tone + crossed_fingers_dark_skin_tone + love_you_gesture + love_you_gesture_light_skin_tone + love_you_gesture_medium_light_skin_tone + love_you_gesture_medium_skin_tone + love_you_gesture_medium_dark_skin_tone + love_you_gesture_dark_skin_tone + sign_of_the_horns + sign_of_the_horns_light_skin_tone + sign_of_the_horns_medium_light_skin_tone + sign_of_the_horns_medium_skin_tone + sign_of_the_horns_medium_dark_skin_tone + sign_of_the_horns_dark_skin_tone + call_me_hand + call_me_hand_light_skin_tone + call_me_hand_medium_light_skin_tone + call_me_hand_medium_skin_tone + call_me_hand_medium_dark_skin_tone + call_me_hand_dark_skin_tone + backhand_index_pointing_left + backhand_index_pointing_left_light_skin_tone + backhand_index_pointing_left_medium_light_skin_tone + backhand_index_pointing_left_medium_skin_tone + backhand_index_pointing_left_medium_dark_skin_tone + backhand_index_pointing_left_dark_skin_tone + backhand_index_pointing_right + backhand_index_pointing_right_light_skin_tone + backhand_index_pointing_right_medium_light_skin_tone + backhand_index_pointing_right_medium_skin_tone + backhand_index_pointing_right_medium_dark_skin_tone + backhand_index_pointing_right_dark_skin_tone + backhand_index_pointing_up + backhand_index_pointing_up_light_skin_tone + backhand_index_pointing_up_medium_light_skin_tone + backhand_index_pointing_up_medium_skin_tone + backhand_index_pointing_up_medium_dark_skin_tone + backhand_index_pointing_up_dark_skin_tone + middle_finger + middle_finger_light_skin_tone + middle_finger_medium_light_skin_tone + middle_finger_medium_skin_tone + middle_finger_medium_dark_skin_tone + middle_finger_dark_skin_tone + backhand_index_pointing_down + backhand_index_pointing_down_light_skin_tone + backhand_index_pointing_down_medium_light_skin_tone + backhand_index_pointing_down_medium_skin_tone + backhand_index_pointing_down_medium_dark_skin_tone + backhand_index_pointing_down_dark_skin_tone + index_pointing_up + index_pointing_up_light_skin_tone + index_pointing_up_medium_light_skin_tone + index_pointing_up_medium_skin_tone + index_pointing_up_medium_dark_skin_tone + index_pointing_up_dark_skin_tone + thumbs_up + thumbs_up_light_skin_tone + thumbs_up_medium_light_skin_tone + thumbs_up_medium_skin_tone + thumbs_up_medium_dark_skin_tone + thumbs_up_dark_skin_tone + thumbs_down + thumbs_down_light_skin_tone + thumbs_down_medium_light_skin_tone + thumbs_down_medium_skin_tone + thumbs_down_medium_dark_skin_tone + thumbs_down_dark_skin_tone + raised_fist + raised_fist_light_skin_tone + raised_fist_medium_light_skin_tone + raised_fist_medium_skin_tone + raised_fist_medium_dark_skin_tone + raised_fist_dark_skin_tone + oncoming_fist + oncoming_fist_light_skin_tone + oncoming_fist_medium_light_skin_tone + oncoming_fist_medium_skin_tone + oncoming_fist_medium_dark_skin_tone + oncoming_fist_dark_skin_tone + left_facing_fist + left_facing_fist_light_skin_tone + left_facing_fist_medium_light_skin_tone + left_facing_fist_medium_skin_tone + left_facing_fist_medium_dark_skin_tone + left_facing_fist_dark_skin_tone + right_facing_fist + right_facing_fist_light_skin_tone + right_facing_fist_medium_light_skin_tone + right_facing_fist_medium_skin_tone + right_facing_fist_medium_dark_skin_tone + right_facing_fist_dark_skin_tone + writing_hand + writing_hand_light_skin_tone + writing_hand_medium_light_skin_tone + writing_hand_medium_skin_tone + writing_hand_medium_dark_skin_tone + writing_hand_dark_skin_tone + nail_polish + nail_polish_light_skin_tone + nail_polish_medium_light_skin_tone + nail_polish_medium_skin_tone + nail_polish_medium_dark_skin_tone + nail_polish_dark_skin_tone + selfie + selfie_light_skin_tone + selfie_medium_light_skin_tone + selfie_medium_skin_tone + selfie_medium_dark_skin_tone + selfie_dark_skin_tone +" + +emoji_groups[people]=" + person_frowning + person_frowning_light_skin_tone + person_frowning_medium_light_skin_tone + person_frowning_medium_skin_tone + person_frowning_medium_dark_skin_tone + person_frowning_dark_skin_tone + man_frowning + man_frowning_light_skin_tone + man_frowning_medium_light_skin_tone + man_frowning_medium_skin_tone + man_frowning_medium_dark_skin_tone + man_frowning_dark_skin_tone + woman_frowning + woman_frowning_light_skin_tone + woman_frowning_medium_light_skin_tone + woman_frowning_medium_skin_tone + woman_frowning_medium_dark_skin_tone + woman_frowning_dark_skin_tone + person_pouting + person_pouting_light_skin_tone + person_pouting_medium_light_skin_tone + person_pouting_medium_skin_tone + person_pouting_medium_dark_skin_tone + person_pouting_dark_skin_tone + man_pouting + man_pouting_light_skin_tone + man_pouting_medium_light_skin_tone + man_pouting_medium_skin_tone + man_pouting_medium_dark_skin_tone + man_pouting_dark_skin_tone + woman_pouting + woman_pouting_light_skin_tone + woman_pouting_medium_light_skin_tone + woman_pouting_medium_skin_tone + woman_pouting_medium_dark_skin_tone + woman_pouting_dark_skin_tone + person_gesturing_NO + person_gesturing_NO_light_skin_tone + person_gesturing_NO_medium_light_skin_tone + person_gesturing_NO_medium_skin_tone + person_gesturing_NO_medium_dark_skin_tone + person_gesturing_NO_dark_skin_tone + man_gesturing_NO + man_gesturing_NO_light_skin_tone + man_gesturing_NO_medium_light_skin_tone + man_gesturing_NO_medium_skin_tone + man_gesturing_NO_medium_dark_skin_tone + man_gesturing_NO_dark_skin_tone + woman_gesturing_NO + woman_gesturing_NO_light_skin_tone + woman_gesturing_NO_medium_light_skin_tone + woman_gesturing_NO_medium_skin_tone + woman_gesturing_NO_medium_dark_skin_tone + woman_gesturing_NO_dark_skin_tone + person_gesturing_OK + person_gesturing_OK_light_skin_tone + person_gesturing_OK_medium_light_skin_tone + person_gesturing_OK_medium_skin_tone + person_gesturing_OK_medium_dark_skin_tone + person_gesturing_OK_dark_skin_tone + man_gesturing_OK + man_gesturing_OK_light_skin_tone + man_gesturing_OK_medium_light_skin_tone + man_gesturing_OK_medium_skin_tone + man_gesturing_OK_medium_dark_skin_tone + man_gesturing_OK_dark_skin_tone + woman_gesturing_OK + woman_gesturing_OK_light_skin_tone + woman_gesturing_OK_medium_light_skin_tone + woman_gesturing_OK_medium_skin_tone + woman_gesturing_OK_medium_dark_skin_tone + woman_gesturing_OK_dark_skin_tone + person_tipping_hand + person_tipping_hand_light_skin_tone + person_tipping_hand_medium_light_skin_tone + person_tipping_hand_medium_skin_tone + person_tipping_hand_medium_dark_skin_tone + person_tipping_hand_dark_skin_tone + man_tipping_hand + man_tipping_hand_light_skin_tone + man_tipping_hand_medium_light_skin_tone + man_tipping_hand_medium_skin_tone + man_tipping_hand_medium_dark_skin_tone + man_tipping_hand_dark_skin_tone + woman_tipping_hand + woman_tipping_hand_light_skin_tone + woman_tipping_hand_medium_light_skin_tone + woman_tipping_hand_medium_skin_tone + woman_tipping_hand_medium_dark_skin_tone + woman_tipping_hand_dark_skin_tone + person_raising_hand + person_raising_hand_light_skin_tone + person_raising_hand_medium_light_skin_tone + person_raising_hand_medium_skin_tone + person_raising_hand_medium_dark_skin_tone + person_raising_hand_dark_skin_tone + man_raising_hand + man_raising_hand_light_skin_tone + man_raising_hand_medium_light_skin_tone + man_raising_hand_medium_skin_tone + man_raising_hand_medium_dark_skin_tone + man_raising_hand_dark_skin_tone + woman_raising_hand + woman_raising_hand_light_skin_tone + woman_raising_hand_medium_light_skin_tone + woman_raising_hand_medium_skin_tone + woman_raising_hand_medium_dark_skin_tone + woman_raising_hand_dark_skin_tone + deaf_person + deaf_person_light_skin_tone + deaf_person_medium_light_skin_tone + deaf_person_medium_skin_tone + deaf_person_medium_dark_skin_tone + deaf_person_dark_skin_tone + deaf_man + deaf_man_light_skin_tone + deaf_man_medium_light_skin_tone + deaf_man_medium_skin_tone + deaf_man_medium_dark_skin_tone + deaf_man_dark_skin_tone + deaf_woman + deaf_woman_light_skin_tone + deaf_woman_medium_light_skin_tone + deaf_woman_medium_skin_tone + deaf_woman_medium_dark_skin_tone + deaf_woman_dark_skin_tone + person_bowing + person_bowing_light_skin_tone + person_bowing_medium_light_skin_tone + person_bowing_medium_skin_tone + person_bowing_medium_dark_skin_tone + person_bowing_dark_skin_tone + man_bowing + man_bowing_light_skin_tone + man_bowing_medium_light_skin_tone + man_bowing_medium_skin_tone + man_bowing_medium_dark_skin_tone + man_bowing_dark_skin_tone + woman_bowing + woman_bowing_light_skin_tone + woman_bowing_medium_light_skin_tone + woman_bowing_medium_skin_tone + woman_bowing_medium_dark_skin_tone + woman_bowing_dark_skin_tone + person_facepalming + person_facepalming_light_skin_tone + person_facepalming_medium_light_skin_tone + person_facepalming_medium_skin_tone + person_facepalming_medium_dark_skin_tone + person_facepalming_dark_skin_tone + man_facepalming + man_facepalming_light_skin_tone + man_facepalming_medium_light_skin_tone + man_facepalming_medium_skin_tone + man_facepalming_medium_dark_skin_tone + man_facepalming_dark_skin_tone + woman_facepalming + woman_facepalming_light_skin_tone + woman_facepalming_medium_light_skin_tone + woman_facepalming_medium_skin_tone + woman_facepalming_medium_dark_skin_tone + woman_facepalming_dark_skin_tone + person_shrugging + person_shrugging_light_skin_tone + person_shrugging_medium_light_skin_tone + person_shrugging_medium_skin_tone + person_shrugging_medium_dark_skin_tone + person_shrugging_dark_skin_tone + man_shrugging + man_shrugging_light_skin_tone + man_shrugging_medium_light_skin_tone + man_shrugging_medium_skin_tone + man_shrugging_medium_dark_skin_tone + man_shrugging_dark_skin_tone + woman_shrugging + woman_shrugging_light_skin_tone + woman_shrugging_medium_light_skin_tone + woman_shrugging_medium_skin_tone + woman_shrugging_medium_dark_skin_tone + woman_shrugging_dark_skin_tone + man_health_worker + man_health_worker_light_skin_tone + man_health_worker_medium_light_skin_tone + man_health_worker_medium_skin_tone + man_health_worker_medium_dark_skin_tone + man_health_worker_dark_skin_tone + woman_health_worker + woman_health_worker_light_skin_tone + woman_health_worker_medium_light_skin_tone + woman_health_worker_medium_skin_tone + woman_health_worker_medium_dark_skin_tone + woman_health_worker_dark_skin_tone + man_student + man_student_light_skin_tone + man_student_medium_light_skin_tone + man_student_medium_skin_tone + man_student_medium_dark_skin_tone + man_student_dark_skin_tone + woman_student + woman_student_light_skin_tone + woman_student_medium_light_skin_tone + woman_student_medium_skin_tone + woman_student_medium_dark_skin_tone + woman_student_dark_skin_tone + man_teacher + man_teacher_light_skin_tone + man_teacher_medium_light_skin_tone + man_teacher_medium_skin_tone + man_teacher_medium_dark_skin_tone + man_teacher_dark_skin_tone + woman_teacher + woman_teacher_light_skin_tone + woman_teacher_medium_light_skin_tone + woman_teacher_medium_skin_tone + woman_teacher_medium_dark_skin_tone + woman_teacher_dark_skin_tone + man_judge + man_judge_light_skin_tone + man_judge_medium_light_skin_tone + man_judge_medium_skin_tone + man_judge_medium_dark_skin_tone + man_judge_dark_skin_tone + woman_judge + woman_judge_light_skin_tone + woman_judge_medium_light_skin_tone + woman_judge_medium_skin_tone + woman_judge_medium_dark_skin_tone + woman_judge_dark_skin_tone + man_farmer + man_farmer_light_skin_tone + man_farmer_medium_light_skin_tone + man_farmer_medium_skin_tone + man_farmer_medium_dark_skin_tone + man_farmer_dark_skin_tone + woman_farmer + woman_farmer_light_skin_tone + woman_farmer_medium_light_skin_tone + woman_farmer_medium_skin_tone + woman_farmer_medium_dark_skin_tone + woman_farmer_dark_skin_tone + man_cook + man_cook_light_skin_tone + man_cook_medium_light_skin_tone + man_cook_medium_skin_tone + man_cook_medium_dark_skin_tone + man_cook_dark_skin_tone + woman_cook + woman_cook_light_skin_tone + woman_cook_medium_light_skin_tone + woman_cook_medium_skin_tone + woman_cook_medium_dark_skin_tone + woman_cook_dark_skin_tone + man_mechanic + man_mechanic_light_skin_tone + man_mechanic_medium_light_skin_tone + man_mechanic_medium_skin_tone + man_mechanic_medium_dark_skin_tone + man_mechanic_dark_skin_tone + woman_mechanic + woman_mechanic_light_skin_tone + woman_mechanic_medium_light_skin_tone + woman_mechanic_medium_skin_tone + woman_mechanic_medium_dark_skin_tone + woman_mechanic_dark_skin_tone + man_factory_worker + man_factory_worker_light_skin_tone + man_factory_worker_medium_light_skin_tone + man_factory_worker_medium_skin_tone + man_factory_worker_medium_dark_skin_tone + man_factory_worker_dark_skin_tone + woman_factory_worker + woman_factory_worker_light_skin_tone + woman_factory_worker_medium_light_skin_tone + woman_factory_worker_medium_skin_tone + woman_factory_worker_medium_dark_skin_tone + woman_factory_worker_dark_skin_tone + man_office_worker + man_office_worker_light_skin_tone + man_office_worker_medium_light_skin_tone + man_office_worker_medium_skin_tone + man_office_worker_medium_dark_skin_tone + man_office_worker_dark_skin_tone + woman_office_worker + woman_office_worker_light_skin_tone + woman_office_worker_medium_light_skin_tone + woman_office_worker_medium_skin_tone + woman_office_worker_medium_dark_skin_tone + woman_office_worker_dark_skin_tone + man_scientist + man_scientist_light_skin_tone + man_scientist_medium_light_skin_tone + man_scientist_medium_skin_tone + man_scientist_medium_dark_skin_tone + man_scientist_dark_skin_tone + woman_scientist + woman_scientist_light_skin_tone + woman_scientist_medium_light_skin_tone + woman_scientist_medium_skin_tone + woman_scientist_medium_dark_skin_tone + woman_scientist_dark_skin_tone + man_technologist + man_technologist_light_skin_tone + man_technologist_medium_light_skin_tone + man_technologist_medium_skin_tone + man_technologist_medium_dark_skin_tone + man_technologist_dark_skin_tone + woman_technologist + woman_technologist_light_skin_tone + woman_technologist_medium_light_skin_tone + woman_technologist_medium_skin_tone + woman_technologist_medium_dark_skin_tone + woman_technologist_dark_skin_tone + man_singer + man_singer_light_skin_tone + man_singer_medium_light_skin_tone + man_singer_medium_skin_tone + man_singer_medium_dark_skin_tone + man_singer_dark_skin_tone + woman_singer + woman_singer_light_skin_tone + woman_singer_medium_light_skin_tone + woman_singer_medium_skin_tone + woman_singer_medium_dark_skin_tone + woman_singer_dark_skin_tone + man_artist + man_artist_light_skin_tone + man_artist_medium_light_skin_tone + man_artist_medium_skin_tone + man_artist_medium_dark_skin_tone + man_artist_dark_skin_tone + woman_artist + woman_artist_light_skin_tone + woman_artist_medium_light_skin_tone + woman_artist_medium_skin_tone + woman_artist_medium_dark_skin_tone + woman_artist_dark_skin_tone + man_pilot + man_pilot_light_skin_tone + man_pilot_medium_light_skin_tone + man_pilot_medium_skin_tone + man_pilot_medium_dark_skin_tone + man_pilot_dark_skin_tone + woman_pilot + woman_pilot_light_skin_tone + woman_pilot_medium_light_skin_tone + woman_pilot_medium_skin_tone + woman_pilot_medium_dark_skin_tone + woman_pilot_dark_skin_tone + man_astronaut + man_astronaut_light_skin_tone + man_astronaut_medium_light_skin_tone + man_astronaut_medium_skin_tone + man_astronaut_medium_dark_skin_tone + man_astronaut_dark_skin_tone + woman_astronaut + woman_astronaut_light_skin_tone + woman_astronaut_medium_light_skin_tone + woman_astronaut_medium_skin_tone + woman_astronaut_medium_dark_skin_tone + woman_astronaut_dark_skin_tone + man_firefighter + man_firefighter_light_skin_tone + man_firefighter_medium_light_skin_tone + man_firefighter_medium_skin_tone + man_firefighter_medium_dark_skin_tone + man_firefighter_dark_skin_tone + woman_firefighter + woman_firefighter_light_skin_tone + woman_firefighter_medium_light_skin_tone + woman_firefighter_medium_skin_tone + woman_firefighter_medium_dark_skin_tone + woman_firefighter_dark_skin_tone + police_officer + police_officer_light_skin_tone + police_officer_medium_light_skin_tone + police_officer_medium_skin_tone + police_officer_medium_dark_skin_tone + police_officer_dark_skin_tone + man_police_officer + man_police_officer_light_skin_tone + man_police_officer_medium_light_skin_tone + man_police_officer_medium_skin_tone + man_police_officer_medium_dark_skin_tone + man_police_officer_dark_skin_tone + woman_police_officer + woman_police_officer_light_skin_tone + woman_police_officer_medium_light_skin_tone + woman_police_officer_medium_skin_tone + woman_police_officer_medium_dark_skin_tone + woman_police_officer_dark_skin_tone + detective + detective_light_skin_tone + detective_medium_light_skin_tone + detective_medium_skin_tone + detective_medium_dark_skin_tone + detective_dark_skin_tone + man_detective + man_detective_light_skin_tone + man_detective_medium_light_skin_tone + man_detective_medium_skin_tone + man_detective_medium_dark_skin_tone + man_detective_dark_skin_tone + woman_detective + woman_detective_light_skin_tone + woman_detective_medium_light_skin_tone + woman_detective_medium_skin_tone + woman_detective_medium_dark_skin_tone + woman_detective_dark_skin_tone + guard + guard_light_skin_tone + guard_medium_light_skin_tone + guard_medium_skin_tone + guard_medium_dark_skin_tone + guard_dark_skin_tone + man_guard + man_guard_light_skin_tone + man_guard_medium_light_skin_tone + man_guard_medium_skin_tone + man_guard_medium_dark_skin_tone + man_guard_dark_skin_tone + woman_guard + woman_guard_light_skin_tone + woman_guard_medium_light_skin_tone + woman_guard_medium_skin_tone + woman_guard_medium_dark_skin_tone + woman_guard_dark_skin_tone + construction_worker + construction_worker_light_skin_tone + construction_worker_medium_light_skin_tone + construction_worker_medium_skin_tone + construction_worker_medium_dark_skin_tone + construction_worker_dark_skin_tone + man_construction_worker + man_construction_worker_light_skin_tone + man_construction_worker_medium_light_skin_tone + man_construction_worker_medium_skin_tone + man_construction_worker_medium_dark_skin_tone + man_construction_worker_dark_skin_tone + woman_construction_worker + woman_construction_worker_light_skin_tone + woman_construction_worker_medium_light_skin_tone + woman_construction_worker_medium_skin_tone + woman_construction_worker_medium_dark_skin_tone + woman_construction_worker_dark_skin_tone + prince + prince_light_skin_tone + prince_medium_light_skin_tone + prince_medium_skin_tone + prince_medium_dark_skin_tone + prince_dark_skin_tone + princess + princess_light_skin_tone + princess_medium_light_skin_tone + princess_medium_skin_tone + princess_medium_dark_skin_tone + princess_dark_skin_tone + person_wearing_turban + person_wearing_turban_light_skin_tone + person_wearing_turban_medium_light_skin_tone + person_wearing_turban_medium_skin_tone + person_wearing_turban_medium_dark_skin_tone + person_wearing_turban_dark_skin_tone + man_wearing_turban + man_wearing_turban_light_skin_tone + man_wearing_turban_medium_light_skin_tone + man_wearing_turban_medium_skin_tone + man_wearing_turban_medium_dark_skin_tone + man_wearing_turban_dark_skin_tone + woman_wearing_turban + woman_wearing_turban_light_skin_tone + woman_wearing_turban_medium_light_skin_tone + woman_wearing_turban_medium_skin_tone + woman_wearing_turban_medium_dark_skin_tone + woman_wearing_turban_dark_skin_tone + man_with_Chinese_cap + man_with_Chinese_cap_light_skin_tone + man_with_Chinese_cap_medium_light_skin_tone + man_with_Chinese_cap_medium_skin_tone + man_with_Chinese_cap_medium_dark_skin_tone + man_with_Chinese_cap_dark_skin_tone + woman_with_headscarf + woman_with_headscarf_light_skin_tone + woman_with_headscarf_medium_light_skin_tone + woman_with_headscarf_medium_skin_tone + woman_with_headscarf_medium_dark_skin_tone + woman_with_headscarf_dark_skin_tone + man_in_tuxedo + man_in_tuxedo_light_skin_tone + man_in_tuxedo_medium_light_skin_tone + man_in_tuxedo_medium_skin_tone + man_in_tuxedo_medium_dark_skin_tone + man_in_tuxedo_dark_skin_tone + bride_with_veil + bride_with_veil_light_skin_tone + bride_with_veil_medium_light_skin_tone + bride_with_veil_medium_skin_tone + bride_with_veil_medium_dark_skin_tone + bride_with_veil_dark_skin_tone + pregnant_woman + pregnant_woman_light_skin_tone + pregnant_woman_medium_light_skin_tone + pregnant_woman_medium_skin_tone + pregnant_woman_medium_dark_skin_tone + pregnant_woman_dark_skin_tone + breast_feeding + breast_feeding_light_skin_tone + breast_feeding_medium_light_skin_tone + breast_feeding_medium_skin_tone + breast_feeding_medium_dark_skin_tone + breast_feeding_dark_skin_tone + baby_angel + baby_angel_light_skin_tone + baby_angel_medium_light_skin_tone + baby_angel_medium_skin_tone + baby_angel_medium_dark_skin_tone + baby_angel_dark_skin_tone + Santa_Claus + Santa_Claus_light_skin_tone + Santa_Claus_medium_light_skin_tone + Santa_Claus_medium_skin_tone + Santa_Claus_medium_dark_skin_tone + Santa_Claus_dark_skin_tone + Mrs_Claus + Mrs_Claus_light_skin_tone + Mrs_Claus_medium_light_skin_tone + Mrs_Claus_medium_skin_tone + Mrs_Claus_medium_dark_skin_tone + Mrs_Claus_dark_skin_tone + superhero + superhero_light_skin_tone + superhero_medium_light_skin_tone + superhero_medium_skin_tone + superhero_medium_dark_skin_tone + superhero_dark_skin_tone + man_superhero + man_superhero_light_skin_tone + man_superhero_medium_light_skin_tone + man_superhero_medium_skin_tone + man_superhero_medium_dark_skin_tone + man_superhero_dark_skin_tone + woman_superhero + woman_superhero_light_skin_tone + woman_superhero_medium_light_skin_tone + woman_superhero_medium_skin_tone + woman_superhero_medium_dark_skin_tone + woman_superhero_dark_skin_tone + supervillain + supervillain_light_skin_tone + supervillain_medium_light_skin_tone + supervillain_medium_skin_tone + supervillain_medium_dark_skin_tone + supervillain_dark_skin_tone + man_supervillain + man_supervillain_light_skin_tone + man_supervillain_medium_light_skin_tone + man_supervillain_medium_skin_tone + man_supervillain_medium_dark_skin_tone + man_supervillain_dark_skin_tone + woman_supervillain + woman_supervillain_light_skin_tone + woman_supervillain_medium_light_skin_tone + woman_supervillain_medium_skin_tone + woman_supervillain_medium_dark_skin_tone + woman_supervillain_dark_skin_tone + mage + mage_light_skin_tone + mage_medium_light_skin_tone + mage_medium_skin_tone + mage_medium_dark_skin_tone + mage_dark_skin_tone + man_mage + man_mage_light_skin_tone + man_mage_medium_light_skin_tone + man_mage_medium_skin_tone + man_mage_medium_dark_skin_tone + man_mage_dark_skin_tone + woman_mage + woman_mage_light_skin_tone + woman_mage_medium_light_skin_tone + woman_mage_medium_skin_tone + woman_mage_medium_dark_skin_tone + woman_mage_dark_skin_tone + fairy + fairy_light_skin_tone + fairy_medium_light_skin_tone + fairy_medium_skin_tone + fairy_medium_dark_skin_tone + fairy_dark_skin_tone + man_fairy + man_fairy_light_skin_tone + man_fairy_medium_light_skin_tone + man_fairy_medium_skin_tone + man_fairy_medium_dark_skin_tone + man_fairy_dark_skin_tone + woman_fairy + woman_fairy_light_skin_tone + woman_fairy_medium_light_skin_tone + woman_fairy_medium_skin_tone + woman_fairy_medium_dark_skin_tone + woman_fairy_dark_skin_tone + vampire + vampire_light_skin_tone + vampire_medium_light_skin_tone + vampire_medium_skin_tone + vampire_medium_dark_skin_tone + vampire_dark_skin_tone + man_vampire + man_vampire_light_skin_tone + man_vampire_medium_light_skin_tone + man_vampire_medium_skin_tone + man_vampire_medium_dark_skin_tone + man_vampire_dark_skin_tone + woman_vampire + woman_vampire_light_skin_tone + woman_vampire_medium_light_skin_tone + woman_vampire_medium_skin_tone + woman_vampire_medium_dark_skin_tone + woman_vampire_dark_skin_tone + merperson + merperson_light_skin_tone + merperson_medium_light_skin_tone + merperson_medium_skin_tone + merperson_medium_dark_skin_tone + merperson_dark_skin_tone + merman + merman_light_skin_tone + merman_medium_light_skin_tone + merman_medium_skin_tone + merman_medium_dark_skin_tone + merman_dark_skin_tone + mermaid + mermaid_light_skin_tone + mermaid_medium_light_skin_tone + mermaid_medium_skin_tone + mermaid_medium_dark_skin_tone + mermaid_dark_skin_tone + elf + elf_light_skin_tone + elf_medium_light_skin_tone + elf_medium_skin_tone + elf_medium_dark_skin_tone + elf_dark_skin_tone + man_elf + man_elf_light_skin_tone + man_elf_medium_light_skin_tone + man_elf_medium_skin_tone + man_elf_medium_dark_skin_tone + man_elf_dark_skin_tone + woman_elf + woman_elf_light_skin_tone + woman_elf_medium_light_skin_tone + woman_elf_medium_skin_tone + woman_elf_medium_dark_skin_tone + woman_elf_dark_skin_tone + genie + man_genie + woman_genie + zombie + man_zombie + woman_zombie + person_getting_massage + person_getting_massage_light_skin_tone + person_getting_massage_medium_light_skin_tone + person_getting_massage_medium_skin_tone + person_getting_massage_medium_dark_skin_tone + person_getting_massage_dark_skin_tone + man_getting_massage + man_getting_massage_light_skin_tone + man_getting_massage_medium_light_skin_tone + man_getting_massage_medium_skin_tone + man_getting_massage_medium_dark_skin_tone + man_getting_massage_dark_skin_tone + woman_getting_massage + woman_getting_massage_light_skin_tone + woman_getting_massage_medium_light_skin_tone + woman_getting_massage_medium_skin_tone + woman_getting_massage_medium_dark_skin_tone + woman_getting_massage_dark_skin_tone + person_getting_haircut + person_getting_haircut_light_skin_tone + person_getting_haircut_medium_light_skin_tone + person_getting_haircut_medium_skin_tone + person_getting_haircut_medium_dark_skin_tone + person_getting_haircut_dark_skin_tone + man_getting_haircut + man_getting_haircut_light_skin_tone + man_getting_haircut_medium_light_skin_tone + man_getting_haircut_medium_skin_tone + man_getting_haircut_medium_dark_skin_tone + man_getting_haircut_dark_skin_tone + woman_getting_haircut + woman_getting_haircut_light_skin_tone + woman_getting_haircut_medium_light_skin_tone + woman_getting_haircut_medium_skin_tone + woman_getting_haircut_medium_dark_skin_tone + woman_getting_haircut_dark_skin_tone + person_walking + person_walking_light_skin_tone + person_walking_medium_light_skin_tone + person_walking_medium_skin_tone + person_walking_medium_dark_skin_tone + person_walking_dark_skin_tone + man_walking + man_walking_light_skin_tone + man_walking_medium_light_skin_tone + man_walking_medium_skin_tone + man_walking_medium_dark_skin_tone + man_walking_dark_skin_tone + woman_walking + woman_walking_light_skin_tone + woman_walking_medium_light_skin_tone + woman_walking_medium_skin_tone + woman_walking_medium_dark_skin_tone + woman_walking_dark_skin_tone + person_standing + person_standing_light_skin_tone + person_standing_medium_light_skin_tone + person_standing_medium_skin_tone + person_standing_medium_dark_skin_tone + person_standing_dark_skin_tone + man_standing + man_standing_light_skin_tone + man_standing_medium_light_skin_tone + man_standing_medium_skin_tone + man_standing_medium_dark_skin_tone + man_standing_dark_skin_tone + woman_standing + woman_standing_light_skin_tone + woman_standing_medium_light_skin_tone + woman_standing_medium_skin_tone + woman_standing_medium_dark_skin_tone + woman_standing_dark_skin_tone + person_kneeling + person_kneeling_light_skin_tone + person_kneeling_medium_light_skin_tone + person_kneeling_medium_skin_tone + person_kneeling_medium_dark_skin_tone + person_kneeling_dark_skin_tone + man_kneeling + man_kneeling_light_skin_tone + man_kneeling_medium_light_skin_tone + man_kneeling_medium_skin_tone + man_kneeling_medium_dark_skin_tone + man_kneeling_dark_skin_tone + woman_kneeling + woman_kneeling_light_skin_tone + woman_kneeling_medium_light_skin_tone + woman_kneeling_medium_skin_tone + woman_kneeling_medium_dark_skin_tone + woman_kneeling_dark_skin_tone + man_with_probing_cane + man_with_probing_cane_light_skin_tone + man_with_probing_cane_medium_light_skin_tone + man_with_probing_cane_medium_skin_tone + man_with_probing_cane_medium_dark_skin_tone + man_with_probing_cane_dark_skin_tone + woman_with_probing_cane + woman_with_probing_cane_light_skin_tone + woman_with_probing_cane_medium_light_skin_tone + woman_with_probing_cane_medium_skin_tone + woman_with_probing_cane_medium_dark_skin_tone + woman_with_probing_cane_dark_skin_tone + man_in_motorized_wheelchair + man_in_motorized_wheelchair_light_skin_tone + man_in_motorized_wheelchair_medium_light_skin_tone + man_in_motorized_wheelchair_medium_skin_tone + man_in_motorized_wheelchair_medium_dark_skin_tone + man_in_motorized_wheelchair_dark_skin_tone + woman_in_motorized_wheelchair + woman_in_motorized_wheelchair_light_skin_tone + woman_in_motorized_wheelchair_medium_light_skin_tone + woman_in_motorized_wheelchair_medium_skin_tone + woman_in_motorized_wheelchair_medium_dark_skin_tone + woman_in_motorized_wheelchair_dark_skin_tone + man_in_manual_wheelchair + man_in_manual_wheelchair_light_skin_tone + man_in_manual_wheelchair_medium_light_skin_tone + man_in_manual_wheelchair_medium_skin_tone + man_in_manual_wheelchair_medium_dark_skin_tone + man_in_manual_wheelchair_dark_skin_tone + woman_in_manual_wheelchair + woman_in_manual_wheelchair_light_skin_tone + woman_in_manual_wheelchair_medium_light_skin_tone + woman_in_manual_wheelchair_medium_skin_tone + woman_in_manual_wheelchair_medium_dark_skin_tone + woman_in_manual_wheelchair_dark_skin_tone + person_running + person_running_light_skin_tone + person_running_medium_light_skin_tone + person_running_medium_skin_tone + person_running_medium_dark_skin_tone + person_running_dark_skin_tone + man_running + man_running_light_skin_tone + man_running_medium_light_skin_tone + man_running_medium_skin_tone + man_running_medium_dark_skin_tone + man_running_dark_skin_tone + woman_running + woman_running_light_skin_tone + woman_running_medium_light_skin_tone + woman_running_medium_skin_tone + woman_running_medium_dark_skin_tone + woman_running_dark_skin_tone + woman_dancing + woman_dancing_light_skin_tone + woman_dancing_medium_light_skin_tone + woman_dancing_medium_skin_tone + woman_dancing_medium_dark_skin_tone + woman_dancing_dark_skin_tone + woman_dancing_dark_skin_tone_1 + man_dancing_light_skin_tone + man_dancing_medium_light_skin_tone + man_dancing_medium_skin_tone + man_dancing_medium_dark_skin_tone + man_dancing_dark_skin_tone + man_in_suit_levitating + man_in_suit_levitating_light_skin_tone + man_in_suit_levitating_medium_light_skin_tone + man_in_suit_levitating_medium_skin_tone + man_in_suit_levitating_medium_dark_skin_tone + man_in_suit_levitating_dark_skin_tone + people_with_bunny_ears + men_with_bunny_ears + women_with_bunny_ears + person_in_steamy_room + person_in_steamy_room_light_skin_tone + person_in_steamy_room_medium_light_skin_tone + person_in_steamy_room_medium_skin_tone + person_in_steamy_room_medium_dark_skin_tone + person_in_steamy_room_dark_skin_tone + man_in_steamy_room + man_in_steamy_room_light_skin_tone + man_in_steamy_room_medium_light_skin_tone + man_in_steamy_room_medium_skin_tone + man_in_steamy_room_medium_dark_skin_tone + man_in_steamy_room_dark_skin_tone + woman_in_steamy_room + woman_in_steamy_room_light_skin_tone + woman_in_steamy_room_medium_light_skin_tone + woman_in_steamy_room_medium_skin_tone + woman_in_steamy_room_medium_dark_skin_tone + woman_in_steamy_room_dark_skin_tone + person_climbing + person_climbing_light_skin_tone + person_climbing_medium_light_skin_tone + person_climbing_medium_skin_tone + person_climbing_medium_dark_skin_tone + person_climbing_dark_skin_tone + man_climbing + man_climbing_light_skin_tone + man_climbing_medium_light_skin_tone + man_climbing_medium_skin_tone + man_climbing_medium_dark_skin_tone + man_climbing_dark_skin_tone + woman_climbing + woman_climbing_light_skin_tone + woman_climbing_medium_light_skin_tone + woman_climbing_medium_skin_tone + woman_climbing_medium_dark_skin_tone + woman_climbing_dark_skin_tone + person_fencing + horse_racing + horse_racing_light_skin_tone + horse_racing_medium_light_skin_tone + horse_racing_medium_skin_tone + horse_racing_medium_dark_skin_tone + horse_racing_dark_skin_tone + skier + snowboarder + snowboarder_light_skin_tone + snowboarder_medium_light_skin_tone + snowboarder_medium_skin_tone + snowboarder_medium_dark_skin_tone + snowboarder_dark_skin_tone + person_golfing + person_golfing_light_skin_tone + person_golfing_medium_light_skin_tone + person_golfing_medium_skin_tone + person_golfing_medium_dark_skin_tone + person_golfing_dark_skin_tone + man_golfing + man_golfing_light_skin_tone + man_golfing_medium_light_skin_tone + man_golfing_medium_skin_tone + man_golfing_medium_dark_skin_tone + man_golfing_dark_skin_tone + woman_golfing + woman_golfing_light_skin_tone + woman_golfing_medium_light_skin_tone + woman_golfing_medium_skin_tone + woman_golfing_medium_dark_skin_tone + woman_golfing_dark_skin_tone + person_surfing + person_surfing_light_skin_tone + person_surfing_medium_light_skin_tone + person_surfing_medium_skin_tone + person_surfing_medium_dark_skin_tone + person_surfing_dark_skin_tone + man_surfing + man_surfing_light_skin_tone + man_surfing_medium_light_skin_tone + man_surfing_medium_skin_tone + man_surfing_medium_dark_skin_tone + man_surfing_dark_skin_tone + woman_surfing + woman_surfing_light_skin_tone + woman_surfing_medium_light_skin_tone + woman_surfing_medium_skin_tone + woman_surfing_medium_dark_skin_tone + woman_surfing_dark_skin_tone + person_rowing_boat + person_rowing_boat_light_skin_tone + person_rowing_boat_medium_light_skin_tone + person_rowing_boat_medium_skin_tone + person_rowing_boat_medium_dark_skin_tone + person_rowing_boat_dark_skin_tone + man_rowing_boat + man_rowing_boat_light_skin_tone + man_rowing_boat_medium_light_skin_tone + man_rowing_boat_medium_skin_tone + man_rowing_boat_medium_dark_skin_tone + man_rowing_boat_dark_skin_tone + woman_rowing_boat + woman_rowing_boat_light_skin_tone + woman_rowing_boat_medium_light_skin_tone + woman_rowing_boat_medium_skin_tone + woman_rowing_boat_medium_dark_skin_tone + woman_rowing_boat_dark_skin_tone + person_swimming + person_swimming_light_skin_tone + person_swimming_medium_light_skin_tone + person_swimming_medium_skin_tone + person_swimming_medium_dark_skin_tone + person_swimming_dark_skin_tone + man_swimming + man_swimming_light_skin_tone + man_swimming_medium_light_skin_tone + man_swimming_medium_skin_tone + man_swimming_medium_dark_skin_tone + man_swimming_dark_skin_tone + woman_swimming + woman_swimming_light_skin_tone + woman_swimming_medium_light_skin_tone + woman_swimming_medium_skin_tone + woman_swimming_medium_dark_skin_tone + woman_swimming_dark_skin_tone + person_bouncing_ball + person_bouncing_ball_light_skin_tone + person_bouncing_ball_medium_light_skin_tone + person_bouncing_ball_medium_skin_tone + person_bouncing_ball_medium_dark_skin_tone + person_bouncing_ball_dark_skin_tone + man_bouncing_ball + man_bouncing_ball_light_skin_tone + man_bouncing_ball_medium_light_skin_tone + man_bouncing_ball_medium_skin_tone + man_bouncing_ball_medium_dark_skin_tone + man_bouncing_ball_dark_skin_tone + woman_bouncing_ball + woman_bouncing_ball_light_skin_tone + woman_bouncing_ball_medium_light_skin_tone + woman_bouncing_ball_medium_skin_tone + woman_bouncing_ball_medium_dark_skin_tone + woman_bouncing_ball_dark_skin_tone + person_lifting_weights + person_lifting_weights_light_skin_tone + person_lifting_weights_medium_light_skin_tone + person_lifting_weights_medium_skin_tone + person_lifting_weights_medium_dark_skin_tone + person_lifting_weights_dark_skin_tone + man_lifting_weights + man_lifting_weights_light_skin_tone + man_lifting_weights_medium_light_skin_tone + man_lifting_weights_medium_skin_tone + man_lifting_weights_medium_dark_skin_tone + man_lifting_weights_dark_skin_tone + woman_lifting_weights + woman_lifting_weights_light_skin_tone + woman_lifting_weights_medium_light_skin_tone + woman_lifting_weights_medium_skin_tone + woman_lifting_weights_medium_dark_skin_tone + woman_lifting_weights_dark_skin_tone + person_biking + person_biking_light_skin_tone + person_biking_medium_light_skin_tone + person_biking_medium_skin_tone + person_biking_medium_dark_skin_tone + person_biking_dark_skin_tone + man_biking + man_biking_light_skin_tone + man_biking_medium_light_skin_tone + man_biking_medium_skin_tone + man_biking_medium_dark_skin_tone + man_biking_dark_skin_tone + woman_biking + woman_biking_light_skin_tone + woman_biking_medium_light_skin_tone + woman_biking_medium_skin_tone + woman_biking_medium_dark_skin_tone + woman_biking_dark_skin_tone + person_mountain_biking + person_mountain_biking_light_skin_tone + person_mountain_biking_medium_light_skin_tone + person_mountain_biking_medium_skin_tone + person_mountain_biking_medium_dark_skin_tone + person_mountain_biking_dark_skin_tone + man_mountain_biking + man_mountain_biking_light_skin_tone + man_mountain_biking_medium_light_skin_tone + man_mountain_biking_medium_skin_tone + man_mountain_biking_medium_dark_skin_tone + man_mountain_biking_dark_skin_tone + woman_mountain_biking + woman_mountain_biking_light_skin_tone + woman_mountain_biking_medium_light_skin_tone + woman_mountain_biking_medium_skin_tone + woman_mountain_biking_medium_dark_skin_tone + woman_mountain_biking_dark_skin_tone + person_cartwheeling + person_cartwheeling_light_skin_tone + person_cartwheeling_medium_light_skin_tone + person_cartwheeling_medium_skin_tone + person_cartwheeling_medium_dark_skin_tone + person_cartwheeling_dark_skin_tone + man_cartwheeling + man_cartwheeling_light_skin_tone + man_cartwheeling_medium_light_skin_tone + man_cartwheeling_medium_skin_tone + man_cartwheeling_medium_dark_skin_tone + man_cartwheeling_dark_skin_tone + woman_cartwheeling + woman_cartwheeling_light_skin_tone + woman_cartwheeling_medium_light_skin_tone + woman_cartwheeling_medium_skin_tone + woman_cartwheeling_medium_dark_skin_tone + woman_cartwheeling_dark_skin_tone + people_wrestling + men_wrestling + women_wrestling + person_playing_water_polo + person_playing_water_polo_light_skin_tone + person_playing_water_polo_medium_light_skin_tone + person_playing_water_polo_medium_skin_tone + person_playing_water_polo_medium_dark_skin_tone + person_playing_water_polo_dark_skin_tone + man_playing_water_polo + man_playing_water_polo_light_skin_tone + man_playing_water_polo_medium_light_skin_tone + man_playing_water_polo_medium_skin_tone + man_playing_water_polo_medium_dark_skin_tone + man_playing_water_polo_dark_skin_tone + woman_playing_water_polo + woman_playing_water_polo_light_skin_tone + woman_playing_water_polo_medium_light_skin_tone + woman_playing_water_polo_medium_skin_tone + woman_playing_water_polo_medium_dark_skin_tone + woman_playing_water_polo_dark_skin_tone + person_playing_handball + person_playing_handball_light_skin_tone + person_playing_handball_medium_light_skin_tone + person_playing_handball_medium_skin_tone + person_playing_handball_medium_dark_skin_tone + person_playing_handball_dark_skin_tone + man_playing_handball + man_playing_handball_light_skin_tone + man_playing_handball_medium_light_skin_tone + man_playing_handball_medium_skin_tone + man_playing_handball_medium_dark_skin_tone + man_playing_handball_dark_skin_tone + woman_playing_handball + woman_playing_handball_light_skin_tone + woman_playing_handball_medium_light_skin_tone + woman_playing_handball_medium_skin_tone + woman_playing_handball_medium_dark_skin_tone + woman_playing_handball_dark_skin_tone + person_juggling + person_juggling_light_skin_tone + person_juggling_medium_light_skin_tone + person_juggling_medium_skin_tone + person_juggling_medium_dark_skin_tone + person_juggling_dark_skin_tone + man_juggling + man_juggling_light_skin_tone + man_juggling_medium_light_skin_tone + man_juggling_medium_skin_tone + man_juggling_medium_dark_skin_tone + man_juggling_dark_skin_tone + woman_juggling + woman_juggling_light_skin_tone + woman_juggling_medium_light_skin_tone + woman_juggling_medium_skin_tone + woman_juggling_medium_dark_skin_tone + woman_juggling_dark_skin_tone + person_in_lotus_position + person_in_lotus_position_light_skin_tone + person_in_lotus_position_medium_light_skin_tone + person_in_lotus_position_medium_skin_tone + person_in_lotus_position_medium_dark_skin_tone + person_in_lotus_position_dark_skin_tone + man_in_lotus_position + man_in_lotus_position_light_skin_tone + man_in_lotus_position_medium_light_skin_tone + man_in_lotus_position_medium_skin_tone + man_in_lotus_position_medium_dark_skin_tone + man_in_lotus_position_dark_skin_tone + woman_in_lotus_position + woman_in_lotus_position_light_skin_tone + woman_in_lotus_position_medium_light_skin_tone + woman_in_lotus_position_medium_skin_tone + woman_in_lotus_position_medium_dark_skin_tone + woman_in_lotus_position_dark_skin_tone + person_taking_bath + person_taking_bath_light_skin_tone + person_taking_bath_medium_light_skin_tone + person_taking_bath_medium_skin_tone + person_taking_bath_medium_dark_skin_tone + person_taking_bath_dark_skin_tone + person_in_bed + person_in_bed_light_skin_tone + person_in_bed_medium_light_skin_tone + person_in_bed_medium_skin_tone + person_in_bed_medium_dark_skin_tone + person_in_bed_dark_skin_tone + people_holding_hands + people_holding_hands_light_skin_tone + people_holding_hands_medium_light_skin_tone_light_skin_tone + people_holding_hands_medium_light_skin_tone_light_skin_tone_1 + people_holding_hands_medium_skin_tone_light_skin_tone + people_holding_hands_medium_skin_tone_medium_light_skin_tone + people_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + people_holding_hands_medium_dark_skin_tone_light_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_skin_tone + people_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + people_holding_hands_dark_skin_tone_light_skin_tone + people_holding_hands_dark_skin_tone_medium_light_skin_tone + people_holding_hands_dark_skin_tone_medium_skin_tone + people_holding_hands_dark_skin_tone_medium_dark_skin_tone + people_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + women_holding_hands + women_holding_hands_light_skin_tone + women_holding_hands_medium_light_skin_tone_light_skin_tone + women_holding_hands_medium_light_skin_tone_light_skin_tone_1 + women_holding_hands_medium_skin_tone_light_skin_tone + women_holding_hands_medium_skin_tone_medium_light_skin_tone + women_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + women_holding_hands_medium_dark_skin_tone_light_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_skin_tone + women_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + women_holding_hands_dark_skin_tone_light_skin_tone + women_holding_hands_dark_skin_tone_medium_light_skin_tone + women_holding_hands_dark_skin_tone_medium_skin_tone + women_holding_hands_dark_skin_tone_medium_dark_skin_tone + women_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + woman_and_man_holding_hands + woman_and_man_holding_hands_light_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_skin_tone + woman_and_man_holding_hands_light_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_light_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_light_skin_tone_1 + woman_and_man_holding_hands_medium_light_skin_tone_medium_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_medium_light_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + woman_and_man_holding_hands_medium_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_light_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone + woman_and_man_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + woman_and_man_holding_hands_medium_dark_skin_tone_dark_skin_tone + woman_and_man_holding_hands_dark_skin_tone_light_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_light_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone + woman_and_man_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + men_holding_hands + men_holding_hands_light_skin_tone + men_holding_hands_medium_light_skin_tone_light_skin_tone + men_holding_hands_medium_light_skin_tone_light_skin_tone_1 + men_holding_hands_medium_skin_tone_light_skin_tone + men_holding_hands_medium_skin_tone_medium_light_skin_tone + men_holding_hands_medium_skin_tone_medium_light_skin_tone_1 + men_holding_hands_medium_dark_skin_tone_light_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_light_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_skin_tone + men_holding_hands_medium_dark_skin_tone_medium_skin_tone_1 + men_holding_hands_dark_skin_tone_light_skin_tone + men_holding_hands_dark_skin_tone_medium_light_skin_tone + men_holding_hands_dark_skin_tone_medium_skin_tone + men_holding_hands_dark_skin_tone_medium_dark_skin_tone + men_holding_hands_dark_skin_tone_medium_dark_skin_tone_1 + kiss + kiss_woman_man + kiss_man_man + kiss_woman_woman + couple_with_heart + couple_with_heart_woman_man + couple_with_heart_man_man + couple_with_heart_woman_woman + family + family_man_woman_boy + family_man_woman_girl + family_man_woman_girl_boy + family_man_woman_boy_boy + family_man_woman_girl_girl + family_man_man_boy + family_man_man_girl + family_man_man_girl_boy + family_man_man_boy_boy + family_man_man_girl_girl + family_woman_woman_boy + family_woman_woman_girl + family_woman_woman_girl_boy + family_woman_woman_boy_boy + family_woman_woman_girl_girl + family_man_boy + family_man_boy_boy + family_man_girl + family_man_girl_boy + family_man_girl_girl + family_woman_boy + family_woman_boy_boy + family_woman_girl + family_woman_girl_boy + family_woman_girl_girl + speaking_head + bust_in_silhouette + busts_in_silhouette + footprints +" + +emoji_groups[animals]=" + monkey_face + monkey_face_1 + gorilla + orangutan + dog_face + dog_face_1 + guide_dog + service_dog + poodle + wolf + fox + raccoon + cat_face + cat_face_1 + lion + tiger_face + tiger_face_1 + leopard + horse_face + horse_face_1 + unicorn + zebra + deer + cow_face + ox + water_buffalo + cow + pig_face + pig_face_1 + boar + pig_nose + ram + ewe + goat + camel + two_hump_camel + llama + giraffe + elephant + rhinoceros + hippopotamus + mouse_face + mouse_face_1 + rat + hamster + rabbit_face + rabbit_face_1 + chipmunk + hedgehog + bat + bear + koala + panda + sloth + otter + skunk + kangaroo + badger + paw_prints + turkey + chicken + rooster + hatching_chick + baby_chick + front_facing_baby_chick + bird + penguin + dove + eagle + duck + swan + owl + flamingo + peacock + parrot + frog + crocodile + turtle + lizard + snake + dragon_face + dragon_face_1 + sauropod + T_Rex + spouting_whale + spouting_whale_1 + dolphin + fish + tropical_fish + blowfish + shark + octopus + spiral_shell + snail + butterfly + bug + ant + honeybee + lady_beetle + cricket + spider + spider_web + scorpion + mosquito + microbe +" + +emoji_groups[faces]=" + grinning_face + grinning_face_with_big_eyes + grinning_face_with_smiling_eyes + beaming_face_with_smiling_eyes + grinning_squinting_face + grinning_face_with_sweat + rolling_on_the_floor_laughing + face_with_tears_of_joy + slightly_smiling_face + upside_down_face + winking_face + smiling_face_with_smiling_eyes + smiling_face_with_halo + smiling_face_with_hearts + smiling_face_with_heart_eyes + star_struck + face_blowing_a_kiss + kissing_face + smiling_face + kissing_face_with_closed_eyes + kissing_face_with_smiling_eyes + face_savoring_food + face_with_tongue + winking_face_with_tongue + zany_face + squinting_face_with_tongue + money_mouth_face + hugging_face + face_with_hand_over_mouth + shushing_face + thinking_face + zipper_mouth_face + face_with_raised_eyebrow + neutral_face + expressionless_face + face_without_mouth + smirking_face + unamused_face + face_with_rolling_eyes + grimacing_face + lying_face + relieved_face + pensive_face + sleepy_face + drooling_face + sleeping_face + face_with_medical_mask + face_with_thermometer + face_with_head_bandage + nauseated_face + face_vomiting + sneezing_face + hot_face + cold_face + woozy_face + dizzy_face + exploding_head + cowboy_hat_face + partying_face + smiling_face_with_sunglasses + nerd_face + face_with_monocle + confused_face + worried_face + slightly_frowning_face + slightly_frowning_face_1 + face_with_open_mouth + hushed_face + astonished_face + flushed_face + pleading_face + frowning_face_with_open_mouth + anguished_face + fearful_face + anxious_face_with_sweat + sad_but_relieved_face + crying_face + loudly_crying_face + face_screaming_in_fear + confounded_face + persevering_face + disappointed_face + downcast_face_with_sweat + weary_face + tired_face + yawning_face + face_with_steam_from_nose + pouting_face + angry_face + face_with_symbols_on_mouth + smiling_face_with_horns + angry_face_with_horns + skull + skull_and_crossbones + pile_of_poo + clown_face + ogre + goblin + ghost + alien + alien_monster + robot +" + +emoji_groups[flags]=" + chequered_flag + triangular_flag + crossed_flags + black_flag + white_flag + rainbow_flag + pirate_flag + Ascension_Island + Andorra + United_Arab_Emirates + Afghanistan + Antigua_and_Barbuda + Anguilla + Albania + Armenia + Angola + Antarctica + Argentina + American_Samoa + Austria + Australia + Aruba + Åland_Islands + Azerbaijan + Bosnia_and_Herzegovina + Barbados + Bangladesh + Belgium + Burkina_Faso + Bulgaria + Bahrain + Burundi + Benin + St_Barthélemy + Bermuda + Brunei + Bolivia + Caribbean_Netherlands + Brazil + Bahamas + Bhutan + Bouvet_Island + Botswana + Belarus + Belize + Canada + Cocos_Keeling_Islands + Congo__Kinshasa + Central_African_Republic + Congo__Brazzaville + Switzerland + Côte_d_Ivoire + Cook_Islands + Chile + Cameroon + China + Colombia + Clipperton_Island + Costa_Rica + Cuba + Cape_Verde + Curaçao + Christmas_Island + Cyprus + Czechia + Germany + Diego_Garcia + Djibouti + Denmark + Dominica + Dominican_Republic + Algeria + Ceuta_and_Melilla + Ecuador + Estonia + Egypt + Western_Sahara + Eritrea + Spain + Ethiopia + European_Union + Finland + Fiji + Falkland_Islands + Micronesia + Faroe_Islands + France + Gabon + United_Kingdom + Grenada + Georgia + French_Guiana + Guernsey + Ghana + Gibraltar + Greenland + Gambia + Guinea + Guadeloupe + Equatorial_Guinea + Greece + South_Georgia_and_South_Sandwich_Islands + Guatemala + Guam + Guinea_Bissau + Guyana + Hong_Kong_SAR_China + Heard_and_McDonald_Islands + Honduras + Croatia + Haiti + Hungary + Canary_Islands + Indonesia + Ireland + Israel + Isle_of_Man + India + British_Indian_Ocean_Territory + Iraq + Iran + Iceland + Italy + Jersey + Jamaica + Jordan + Japan + Kenya + Kyrgyzstan + Cambodia + Kiribati + Comoros + St_Kitts_and_Nevis + North_Korea + South_Korea + Kuwait + Cayman_Islands + Kazakhstan + Laos + Lebanon + St_Lucia + Liechtenstein + Sri_Lanka + Liberia + Lesotho + Lithuania + Luxembourg + Latvia + Libya + Morocco + Monaco + Moldova + Montenegro + St_Martin + Madagascar + Marshall_Islands + Macedonia + Mali + Myanmar_Burma_ + Mongolia + Macao_SAR_China + Northern_Mariana_Islands + Martinique + Mauritania + Montserrat + Malta + Mauritius + Maldives + Malawi + Mexico + Malaysia + Mozambique + Namibia + New_Caledonia + Niger + Norfolk_Island + Nigeria + Nicaragua + Netherlands + Norway + Nepal + Nauru + Niue + New_Zealand + Oman + Panama + Peru + French_Polynesia + Papua_New_Guinea + Philippines + Pakistan + Poland + St_Pierre_and_Miquelon + Pitcairn_Islands + Puerto_Rico + Palestinian_Territories + Portugal + Palau + Paraguay + Qatar + Réunion + Romania + Serbia + Russia + Rwanda + Saudi_Arabia + Solomon_Islands + Seychelles + Sudan + Sweden + Singapore + St_Helena + Slovenia + Svalbard_and_Jan_Mayen + Slovakia + Sierra_Leone + San_Marino + Senegal + Somalia + Suriname + South_Sudan + São_Tomé_and_Príncipe + El_Salvador + Sint_Maarten + Syria + Eswatini + Tristan_da_Cunha + Turks_and_Caicos_Islands + Chad + French_Southern_Territories + Togo + Thailand + Tajikistan + Tokelau + Timor_Leste + Turkmenistan + Tunisia + Tonga + Turkey + Trinidad_and_Tobago + Tuvalu + Taiwan + Tanzania + Ukraine + Uganda + U_S_Outlying_Islands + United_Nations + United_States + Uruguay + Uzbekistan + Vatican_City + St_Vincent_and_Grenadines + Venezuela + British_Virgin_Islands + U_S_Virgin_Islands + Vietnam + Vanuatu + Wallis_and_Futuna + Samoa + Kosovo + Yemen + Mayotte + South_Africa + Zambia + Zimbabwe + England + Scotland + Wales +" diff --git a/plugins/emoji/emoji-data.txt b/plugins/emoji/emoji-data.txt index 2d6d64e2b..59b7e92d7 100644 --- a/plugins/emoji/emoji-data.txt +++ b/plugins/emoji/emoji-data.txt @@ -1,1308 +1,4122 @@ -# DRAFT emoji-data.txt -# For details about the format and other information, see /../../../reports/tr51/index.html#Data_Files. +# emoji-data.txt +# (Originally emoji-test.txt) +# (Retrieved from https://unicode.org/Public/emoji/12.0/emoji-test.txt) + +# Date: 2019-01-27, 15:43:01 GMT +# © 2019 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html # -# Format: Code ; Default_Emoji_Style ; Emoji_Level ; Emoji_Modifier_Status ; Emoji_Sources # Comment +# Emoji Keyboard/Display Test Data for UTS #51 +# Version: 12.0 # -# Field 1 — Default_Emoji_Style: -# text: default text presentation -# emoji: default emoji presentation -# Field 2 — Emoji_Level: -# L1: level 1 emoji -# L2: level 2 emoji -# NA: not applicable -# Field 3 — Emoji_Modifier_Status: -# modifier: an emoji modifier -# primary: a primary emoji modifier base -# secondary: a secondary emoji modifier base -# none: not applicable -# Field 4 — Emoji_Sources: -# one or more values from {z, a, j, w, x} -# see the key in https://www.unicode.org/draft/reports/tr51/tr51.html#Major_Sources -# NA: not applicable -# Comment — currently contains the version where the character was first encoded, -# followed by: -# - a character name in uppercase (for a single character), -# - a keycap name, -# - an associated flag, where is associated with value unicode region code +# For documentation and usage, see http://www.unicode.org/reports/tr51 # -00A9 ; text ; L1 ; none ; j # V1.1 (©) COPYRIGHT SIGN -00AE ; text ; L1 ; none ; j # V1.1 (®) REGISTERED SIGN -203C ; text ; L1 ; none ; a j # V1.1 (‼) DOUBLE EXCLAMATION MARK -2049 ; text ; L1 ; none ; a j # V3.0 (⁉) EXCLAMATION QUESTION MARK -2122 ; text ; L1 ; none ; j # V1.1 (™) TRADE MARK SIGN -2139 ; text ; L1 ; none ; j # V3.0 (ℹ) INFORMATION SOURCE -2194 ; text ; L1 ; none ; z j # V1.1 (↔) LEFT RIGHT ARROW -2195 ; text ; L1 ; none ; z j # V1.1 (↕) UP DOWN ARROW -2196 ; text ; L1 ; none ; j # V1.1 (↖) NORTH WEST ARROW -2197 ; text ; L1 ; none ; j # V1.1 (↗) NORTH EAST ARROW -2198 ; text ; L1 ; none ; j # V1.1 (↘) SOUTH EAST ARROW -2199 ; text ; L1 ; none ; j # V1.1 (↙) SOUTH WEST ARROW -21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK -21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK -231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH -231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS -2328 ; text ; L2 ; none ; x # V1.1 (⌨) KEYBOARD -23CF ; text ; L2 ; none ; x # V4.0 (⏏) EJECT SYMBOL -23E9 ; emoji ; L1 ; none ; j w # V6.0 (⏩) BLACK RIGHT-POINTING DOUBLE TRIANGLE -23EA ; emoji ; L1 ; none ; j w # V6.0 (⏪) BLACK LEFT-POINTING DOUBLE TRIANGLE -23EB ; emoji ; L1 ; none ; j # V6.0 (⏫) BLACK UP-POINTING DOUBLE TRIANGLE -23EC ; emoji ; L1 ; none ; j # V6.0 (⏬) BLACK DOWN-POINTING DOUBLE TRIANGLE -23ED ; text ; L2 ; none ; w # V6.0 (⏭) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EE ; text ; L2 ; none ; w # V6.0 (⏮) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EF ; text ; L2 ; none ; x # V6.0 (⏯) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR -23F0 ; emoji ; L1 ; none ; j # V6.0 (⏰) ALARM CLOCK -23F1 ; text ; L2 ; none ; x # V6.0 (⏱) STOPWATCH -23F2 ; text ; L2 ; none ; x # V6.0 (⏲) TIMER CLOCK -23F3 ; emoji ; L1 ; none ; j w # V6.0 (⏳) HOURGLASS WITH FLOWING SAND -23F8 ; text ; L2 ; none ; w # V7.0 (⏸) DOUBLE VERTICAL BAR -23F9 ; text ; L2 ; none ; w # V7.0 (⏹) BLACK SQUARE FOR STOP -23FA ; text ; L2 ; none ; w # V7.0 (⏺) BLACK CIRCLE FOR RECORD -24C2 ; text ; L1 ; none ; j # V1.1 (Ⓜ) CIRCLED LATIN CAPITAL LETTER M -25AA ; text ; L1 ; none ; j w # V1.1 (▪) BLACK SMALL SQUARE -25AB ; text ; L1 ; none ; j # V1.1 (▫) WHITE SMALL SQUARE -25B6 ; text ; L1 ; none ; a j w # V1.1 (▶) BLACK RIGHT-POINTING TRIANGLE -25C0 ; text ; L1 ; none ; a j w # V1.1 (◀) BLACK LEFT-POINTING TRIANGLE -25FB ; text ; L1 ; none ; j # V3.2 (◻) WHITE MEDIUM SQUARE -25FC ; text ; L1 ; none ; j w # V3.2 (◼) BLACK MEDIUM SQUARE -25FD ; emoji ; L1 ; none ; j # V3.2 (◽) WHITE MEDIUM SMALL SQUARE -25FE ; emoji ; L1 ; none ; j w # V3.2 (◾) BLACK MEDIUM SMALL SQUARE -2600 ; text ; L1 ; none ; a j # V1.1 (☀) BLACK SUN WITH RAYS -2601 ; text ; L1 ; none ; a j w # V1.1 (☁) CLOUD -2602 ; text ; L2 ; none ; a # V1.1 (☂) UMBRELLA -2603 ; text ; L2 ; none ; a # V1.1 (☃) SNOWMAN -2604 ; text ; L2 ; none ; x # V1.1 (☄) COMET -260E ; text ; L1 ; none ; z a j # V1.1 (☎) BLACK TELEPHONE -2611 ; text ; L1 ; none ; j w # V1.1 (☑) BALLOT BOX WITH CHECK -2614 ; emoji ; L1 ; none ; a j # V4.0 (☔) UMBRELLA WITH RAIN DROPS -2615 ; emoji ; L1 ; none ; j # V4.0 (☕) HOT BEVERAGE -2618 ; text ; L2 ; none ; x # V4.1 (☘) SHAMROCK -261D ; text ; L1 ; secondary ; j w # V1.1 (☝) WHITE UP POINTING INDEX -2620 ; text ; L2 ; none ; x # V1.1 (☠) SKULL AND CROSSBONES -2622 ; text ; L2 ; none ; x # V1.1 (☢) RADIOACTIVE SIGN -2623 ; text ; L2 ; none ; x # V1.1 (☣) BIOHAZARD SIGN -2626 ; text ; L2 ; none ; x # V1.1 (☦) ORTHODOX CROSS -262A ; text ; L2 ; none ; w # V1.1 (☪) STAR AND CRESCENT -262E ; text ; L2 ; none ; x # V1.1 (☮) PEACE SYMBOL -262F ; text ; L2 ; none ; w # V1.1 (☯) YIN YANG -2638 ; text ; L2 ; none ; w # V1.1 (☸) WHEEL OF DHARMA -2639 ; text ; L2 ; secondary ; w # V1.1 (☹) WHITE FROWNING FACE -263A ; text ; L1 ; secondary ; j w # V1.1 (☺) WHITE SMILING FACE -2648 ; emoji ; L1 ; none ; j w # V1.1 (♈) ARIES -2649 ; emoji ; L1 ; none ; j w # V1.1 (♉) TAURUS -264A ; emoji ; L1 ; none ; j w # V1.1 (♊) GEMINI -264B ; emoji ; L1 ; none ; j w # V1.1 (♋) CANCER -264C ; emoji ; L1 ; none ; j w # V1.1 (♌) LEO -264D ; emoji ; L1 ; none ; j w # V1.1 (♍) VIRGO -264E ; emoji ; L1 ; none ; j w # V1.1 (♎) LIBRA -264F ; emoji ; L1 ; none ; j w # V1.1 (♏) SCORPIUS -2650 ; emoji ; L1 ; none ; j w # V1.1 (♐) SAGITTARIUS -2651 ; emoji ; L1 ; none ; j w # V1.1 (♑) CAPRICORN -2652 ; emoji ; L1 ; none ; j w # V1.1 (♒) AQUARIUS -2653 ; emoji ; L1 ; none ; j w # V1.1 (♓) PISCES -2660 ; text ; L1 ; none ; z a j # V1.1 (♠) BLACK SPADE SUIT -2663 ; text ; L1 ; none ; z a j # V1.1 (♣) BLACK CLUB SUIT -2665 ; text ; L1 ; none ; z a j # V1.1 (♥) BLACK HEART SUIT -2666 ; text ; L1 ; none ; z a j # V1.1 (♦) BLACK DIAMOND SUIT -2668 ; text ; L1 ; none ; a j # V1.1 (♨) HOT SPRINGS -267B ; text ; L1 ; none ; j # V3.2 (♻) BLACK UNIVERSAL RECYCLING SYMBOL -267F ; emoji ; L1 ; none ; j w # V4.1 (♿) WHEELCHAIR SYMBOL -2692 ; text ; L2 ; none ; x # V4.1 (⚒) HAMMER AND PICK -2693 ; emoji ; L1 ; none ; a j # V4.1 (⚓) ANCHOR -2694 ; text ; L2 ; none ; x # V4.1 (⚔) CROSSED SWORDS -2696 ; text ; L2 ; none ; x # V4.1 (⚖) SCALES -2697 ; text ; L2 ; none ; x # V4.1 (⚗) ALEMBIC -2699 ; text ; L2 ; none ; x # V4.1 (⚙) GEAR -269B ; text ; L2 ; none ; x # V4.1 (⚛) ATOM SYMBOL -269C ; text ; L2 ; none ; x # V4.1 (⚜) FLEUR-DE-LIS -26A0 ; text ; L1 ; none ; j # V4.0 (⚠) WARNING SIGN -26A1 ; emoji ; L1 ; none ; a j # V4.0 (⚡) HIGH VOLTAGE SIGN -26AA ; emoji ; L1 ; none ; j # V4.1 (⚪) MEDIUM WHITE CIRCLE -26AB ; emoji ; L1 ; none ; j w # V4.1 (⚫) MEDIUM BLACK CIRCLE -26B0 ; text ; L2 ; none ; x # V4.1 (⚰) COFFIN -26B1 ; text ; L2 ; none ; x # V4.1 (⚱) FUNERAL URN -26BD ; emoji ; L1 ; none ; j # V5.2 (⚽) SOCCER BALL -26BE ; emoji ; L1 ; none ; a j # V5.2 (⚾) BASEBALL -26C4 ; emoji ; L1 ; none ; a j # V5.2 (⛄) SNOWMAN WITHOUT SNOW -26C5 ; emoji ; L1 ; none ; a j # V5.2 (⛅) SUN BEHIND CLOUD -26C8 ; text ; L2 ; none ; a # V5.2 (⛈) THUNDER CLOUD AND RAIN -26CE ; emoji ; L1 ; none ; a j # V6.0 (⛎) OPHIUCHUS -26CF ; text ; L2 ; none ; a # V5.2 (⛏) PICK -26D1 ; text ; L2 ; none ; a # V5.2 (⛑) HELMET WITH WHITE CROSS -26D3 ; text ; L2 ; none ; a # V5.2 (⛓) CHAINS -26D4 ; emoji ; L1 ; none ; a j # V5.2 (⛔) NO ENTRY -26E9 ; text ; L2 ; none ; a # V5.2 (⛩) SHINTO SHRINE -26EA ; emoji ; L1 ; none ; a j # V5.2 (⛪) CHURCH -26F0 ; text ; L2 ; none ; a # V5.2 (⛰) MOUNTAIN -26F1 ; text ; L2 ; none ; a # V5.2 (⛱) UMBRELLA ON GROUND -26F2 ; emoji ; L1 ; none ; a j # V5.2 (⛲) FOUNTAIN -26F3 ; emoji ; L1 ; none ; a j w # V5.2 (⛳) FLAG IN HOLE -26F4 ; text ; L2 ; none ; a # V5.2 (⛴) FERRY -26F5 ; emoji ; L1 ; none ; a j # V5.2 (⛵) SAILBOAT -26F7 ; text ; L2 ; none ; a w # V5.2 (⛷) SKIER -26F8 ; text ; L2 ; none ; a # V5.2 (⛸) ICE SKATE -26F9 ; text ; L2 ; none ; a # V5.2 (⛹) PERSON WITH BALL -26FA ; emoji ; L1 ; none ; a j # V5.2 (⛺) TENT -26FD ; emoji ; L1 ; none ; a j # V5.2 (⛽) FUEL PUMP -2702 ; text ; L1 ; none ; z j w # V1.1 (✂) BLACK SCISSORS -2705 ; emoji ; L1 ; none ; j # V6.0 (✅) WHITE HEAVY CHECK MARK -2708 ; text ; L1 ; none ; z a j w # V1.1 (✈) AIRPLANE -2709 ; text ; L1 ; none ; z j # V1.1 (✉) ENVELOPE -270A ; emoji ; L1 ; secondary ; j # V6.0 (✊) RAISED FIST -270B ; emoji ; L1 ; secondary ; j # V6.0 (✋) RAISED HAND -270C ; text ; L1 ; secondary ; z j w # V1.1 (✌) VICTORY HAND -270D ; text ; L2 ; secondary ; z w # V1.1 (✍) WRITING HAND -270F ; text ; L1 ; none ; z j # V1.1 (✏) PENCIL -2712 ; text ; L1 ; none ; z j # V1.1 (✒) BLACK NIB -2714 ; text ; L1 ; none ; z j w # V1.1 (✔) HEAVY CHECK MARK -2716 ; text ; L1 ; none ; z j # V1.1 (✖) HEAVY MULTIPLICATION X -271D ; text ; L2 ; none ; w # V1.1 (✝) LATIN CROSS -2721 ; text ; L2 ; none ; w # V1.1 (✡) STAR OF DAVID -2728 ; emoji ; L1 ; none ; j # V6.0 (✨) SPARKLES -2733 ; text ; L1 ; none ; z j # V1.1 (✳) EIGHT SPOKED ASTERISK -2734 ; text ; L1 ; none ; z j # V1.1 (✴) EIGHT POINTED BLACK STAR -2744 ; text ; L1 ; none ; z j w # V1.1 (❄) SNOWFLAKE -2747 ; text ; L1 ; none ; z j # V1.1 (❇) SPARKLE -274C ; emoji ; L1 ; none ; j # V6.0 (❌) CROSS MARK -274E ; emoji ; L1 ; none ; j # V6.0 (❎) NEGATIVE SQUARED CROSS MARK -2753 ; emoji ; L1 ; none ; j w # V6.0 (❓) BLACK QUESTION MARK ORNAMENT -2754 ; emoji ; L1 ; none ; j # V6.0 (❔) WHITE QUESTION MARK ORNAMENT -2755 ; emoji ; L1 ; none ; j # V6.0 (❕) WHITE EXCLAMATION MARK ORNAMENT -2757 ; emoji ; L1 ; none ; j # V5.2 (❗) HEAVY EXCLAMATION MARK SYMBOL -2763 ; text ; L2 ; none ; z # V1.1 (❣) HEAVY HEART EXCLAMATION MARK ORNAMENT -2764 ; text ; L1 ; none ; z j # V1.1 (❤) HEAVY BLACK HEART -2795 ; emoji ; L1 ; none ; j # V6.0 (➕) HEAVY PLUS SIGN -2796 ; emoji ; L1 ; none ; j # V6.0 (➖) HEAVY MINUS SIGN -2797 ; emoji ; L1 ; none ; j # V6.0 (➗) HEAVY DIVISION SIGN -27A1 ; text ; L1 ; none ; z a j # V1.1 (➡) BLACK RIGHTWARDS ARROW -27B0 ; emoji ; L1 ; none ; j # V6.0 (➰) CURLY LOOP -27BF ; emoji ; L1 ; none ; x # V6.0 (➿) DOUBLE CURLY LOOP -2934 ; text ; L1 ; none ; j # V3.2 (⤴) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS -2935 ; text ; L1 ; none ; j # V3.2 (⤵) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -2B05 ; text ; L1 ; none ; a j # V4.0 (⬅) LEFTWARDS BLACK ARROW -2B06 ; text ; L1 ; none ; a j # V4.0 (⬆) UPWARDS BLACK ARROW -2B07 ; text ; L1 ; none ; a j # V4.0 (⬇) DOWNWARDS BLACK ARROW -2B1B ; emoji ; L1 ; none ; a j w # V5.1 (⬛) BLACK LARGE SQUARE -2B1C ; emoji ; L1 ; none ; j w # V5.1 (⬜) WHITE LARGE SQUARE -2B50 ; emoji ; L1 ; none ; j # V5.1 (⭐) WHITE MEDIUM STAR -2B55 ; emoji ; L1 ; none ; j # V5.2 (⭕) HEAVY LARGE CIRCLE -3030 ; text ; L1 ; none ; j # V1.1 (〰) WAVY DASH -303D ; text ; L1 ; none ; j # V3.2 (〽) PART ALTERNATION MARK -3297 ; text ; L1 ; none ; j # V1.1 (㊗) CIRCLED IDEOGRAPH CONGRATULATION -3299 ; text ; L1 ; none ; a j # V1.1 (㊙) CIRCLED IDEOGRAPH SECRET -1F004 ; emoji ; L1 ; none ; j # V5.1 (🀄) MAHJONG TILE RED DRAGON -1F0CF ; emoji ; L1 ; none ; j # V6.0 (🃏) PLAYING CARD BLACK JOKER -1F170 ; text ; L1 ; none ; j # V6.0 (🅰) NEGATIVE SQUARED LATIN CAPITAL LETTER A -1F171 ; text ; L1 ; none ; j # V6.0 (🅱) NEGATIVE SQUARED LATIN CAPITAL LETTER B -1F17E ; text ; L1 ; none ; j # V6.0 (🅾) NEGATIVE SQUARED LATIN CAPITAL LETTER O -1F17F ; text ; L1 ; none ; a j # V5.2 (🅿) NEGATIVE SQUARED LATIN CAPITAL LETTER P -1F18E ; emoji ; L1 ; none ; j # V6.0 (🆎) NEGATIVE SQUARED AB -1F191 ; emoji ; L1 ; none ; j # V6.0 (🆑) SQUARED CL -1F192 ; emoji ; L1 ; none ; j # V6.0 (🆒) SQUARED COOL -1F193 ; emoji ; L1 ; none ; j # V6.0 (🆓) SQUARED FREE -1F194 ; emoji ; L1 ; none ; j # V6.0 (🆔) SQUARED ID -1F195 ; emoji ; L1 ; none ; j # V6.0 (🆕) SQUARED NEW -1F196 ; emoji ; L1 ; none ; j # V6.0 (🆖) SQUARED NG -1F197 ; emoji ; L1 ; none ; j # V6.0 (🆗) SQUARED OK -1F198 ; emoji ; L1 ; none ; j # V6.0 (🆘) SQUARED SOS -1F199 ; emoji ; L1 ; none ; j # V6.0 (🆙) SQUARED UP WITH EXCLAMATION MARK -1F19A ; emoji ; L1 ; none ; j # V6.0 (🆚) SQUARED VS -1F201 ; emoji ; L1 ; none ; j # V6.0 (🈁) SQUARED KATAKANA KOKO -1F202 ; text ; L1 ; none ; j # V6.0 (🈂) SQUARED KATAKANA SA -1F21A ; emoji ; L1 ; none ; a j # V5.2 (🈚) SQUARED CJK UNIFIED IDEOGRAPH-7121 -1F22F ; emoji ; L1 ; none ; a j # V5.2 (🈯) SQUARED CJK UNIFIED IDEOGRAPH-6307 -1F232 ; emoji ; L1 ; none ; j # V6.0 (🈲) SQUARED CJK UNIFIED IDEOGRAPH-7981 -1F233 ; emoji ; L1 ; none ; j # V6.0 (🈳) SQUARED CJK UNIFIED IDEOGRAPH-7A7A -1F234 ; emoji ; L1 ; none ; j # V6.0 (🈴) SQUARED CJK UNIFIED IDEOGRAPH-5408 -1F235 ; emoji ; L1 ; none ; j # V6.0 (🈵) SQUARED CJK UNIFIED IDEOGRAPH-6E80 -1F236 ; emoji ; L1 ; none ; j # V6.0 (🈶) SQUARED CJK UNIFIED IDEOGRAPH-6709 -1F237 ; text ; L1 ; none ; j # V6.0 (🈷) SQUARED CJK UNIFIED IDEOGRAPH-6708 -1F238 ; emoji ; L1 ; none ; j # V6.0 (🈸) SQUARED CJK UNIFIED IDEOGRAPH-7533 -1F239 ; emoji ; L1 ; none ; j # V6.0 (🈹) SQUARED CJK UNIFIED IDEOGRAPH-5272 -1F23A ; emoji ; L1 ; none ; j # V6.0 (🈺) SQUARED CJK UNIFIED IDEOGRAPH-55B6 -1F250 ; emoji ; L1 ; none ; j # V6.0 (🉐) CIRCLED IDEOGRAPH ADVANTAGE -1F251 ; emoji ; L1 ; none ; j # V6.0 (🉑) CIRCLED IDEOGRAPH ACCEPT -1F300 ; emoji ; L1 ; none ; j # V6.0 (🌀) CYCLONE -1F301 ; emoji ; L1 ; none ; j # V6.0 (🌁) FOGGY -1F302 ; emoji ; L1 ; none ; j # V6.0 (🌂) CLOSED UMBRELLA -1F303 ; emoji ; L1 ; none ; j # V6.0 (🌃) NIGHT WITH STARS -1F304 ; emoji ; L1 ; none ; j # V6.0 (🌄) SUNRISE OVER MOUNTAINS -1F305 ; emoji ; L1 ; none ; j # V6.0 (🌅) SUNRISE -1F306 ; emoji ; L1 ; none ; j # V6.0 (🌆) CITYSCAPE AT DUSK -1F307 ; emoji ; L1 ; none ; j # V6.0 (🌇) SUNSET OVER BUILDINGS -1F308 ; emoji ; L1 ; none ; j # V6.0 (🌈) RAINBOW -1F309 ; emoji ; L1 ; none ; j # V6.0 (🌉) BRIDGE AT NIGHT -1F30A ; emoji ; L1 ; none ; j # V6.0 (🌊) WATER WAVE -1F30B ; emoji ; L1 ; none ; j # V6.0 (🌋) VOLCANO -1F30C ; emoji ; L1 ; none ; j # V6.0 (🌌) MILKY WAY -1F30D ; emoji ; L1 ; none ; w # V6.0 (🌍) EARTH GLOBE EUROPE-AFRICA -1F30E ; emoji ; L1 ; none ; w # V6.0 (🌎) EARTH GLOBE AMERICAS -1F30F ; emoji ; L1 ; none ; j w # V6.0 (🌏) EARTH GLOBE ASIA-AUSTRALIA -1F310 ; emoji ; L1 ; none ; x # V6.0 (🌐) GLOBE WITH MERIDIANS -1F311 ; emoji ; L1 ; none ; j # V6.0 (🌑) NEW MOON SYMBOL -1F312 ; emoji ; L1 ; none ; x # V6.0 (🌒) WAXING CRESCENT MOON SYMBOL -1F313 ; emoji ; L1 ; none ; j # V6.0 (🌓) FIRST QUARTER MOON SYMBOL -1F314 ; emoji ; L1 ; none ; j # V6.0 (🌔) WAXING GIBBOUS MOON SYMBOL -1F315 ; emoji ; L1 ; none ; j w # V6.0 (🌕) FULL MOON SYMBOL -1F316 ; emoji ; L1 ; none ; x # V6.0 (🌖) WANING GIBBOUS MOON SYMBOL -1F317 ; emoji ; L1 ; none ; x # V6.0 (🌗) LAST QUARTER MOON SYMBOL -1F318 ; emoji ; L1 ; none ; x # V6.0 (🌘) WANING CRESCENT MOON SYMBOL -1F319 ; emoji ; L1 ; none ; j # V6.0 (🌙) CRESCENT MOON -1F31A ; emoji ; L1 ; none ; x # V6.0 (🌚) NEW MOON WITH FACE -1F31B ; emoji ; L1 ; none ; j # V6.0 (🌛) FIRST QUARTER MOON WITH FACE -1F31C ; emoji ; L1 ; none ; w # V6.0 (🌜) LAST QUARTER MOON WITH FACE -1F31D ; emoji ; L1 ; none ; x # V6.0 (🌝) FULL MOON WITH FACE -1F31E ; emoji ; L1 ; none ; x # V6.0 (🌞) SUN WITH FACE -1F31F ; emoji ; L1 ; none ; j # V6.0 (🌟) GLOWING STAR -1F320 ; emoji ; L1 ; none ; j # V6.0 (🌠) SHOOTING STAR -1F321 ; text ; L2 ; none ; w # V7.0 (🌡) THERMOMETER -1F324 ; text ; L2 ; none ; w # V7.0 (🌤) WHITE SUN WITH SMALL CLOUD -1F325 ; text ; L2 ; none ; w # V7.0 (🌥) WHITE SUN BEHIND CLOUD -1F326 ; text ; L2 ; none ; w # V7.0 (🌦) WHITE SUN BEHIND CLOUD WITH RAIN -1F327 ; text ; L2 ; none ; w # V7.0 (🌧) CLOUD WITH RAIN -1F328 ; text ; L2 ; none ; w # V7.0 (🌨) CLOUD WITH SNOW -1F329 ; text ; L2 ; none ; w # V7.0 (🌩) CLOUD WITH LIGHTNING -1F32A ; text ; L2 ; none ; w # V7.0 (🌪) CLOUD WITH TORNADO -1F32B ; text ; L2 ; none ; w # V7.0 (🌫) FOG -1F32C ; text ; L2 ; none ; w # V7.0 (🌬) WIND BLOWING FACE -1F32D ; emoji ; L2 ; none ; x # V8.0 (🌭) HOT DOG -1F32E ; emoji ; L2 ; none ; x # V8.0 (🌮) TACO -1F32F ; emoji ; L2 ; none ; x # V8.0 (🌯) BURRITO -1F330 ; emoji ; L1 ; none ; j # V6.0 (🌰) CHESTNUT -1F331 ; emoji ; L1 ; none ; j # V6.0 (🌱) SEEDLING -1F332 ; emoji ; L1 ; none ; x # V6.0 (🌲) EVERGREEN TREE -1F333 ; emoji ; L1 ; none ; x # V6.0 (🌳) DECIDUOUS TREE -1F334 ; emoji ; L1 ; none ; j # V6.0 (🌴) PALM TREE -1F335 ; emoji ; L1 ; none ; j # V6.0 (🌵) CACTUS -1F336 ; text ; L2 ; none ; w # V7.0 (🌶) HOT PEPPER -1F337 ; emoji ; L1 ; none ; j # V6.0 (🌷) TULIP -1F338 ; emoji ; L1 ; none ; j # V6.0 (🌸) CHERRY BLOSSOM -1F339 ; emoji ; L1 ; none ; j # V6.0 (🌹) ROSE -1F33A ; emoji ; L1 ; none ; j # V6.0 (🌺) HIBISCUS -1F33B ; emoji ; L1 ; none ; j # V6.0 (🌻) SUNFLOWER -1F33C ; emoji ; L1 ; none ; j # V6.0 (🌼) BLOSSOM -1F33D ; emoji ; L1 ; none ; j # V6.0 (🌽) EAR OF MAIZE -1F33E ; emoji ; L1 ; none ; j # V6.0 (🌾) EAR OF RICE -1F33F ; emoji ; L1 ; none ; j # V6.0 (🌿) HERB -1F340 ; emoji ; L1 ; none ; j # V6.0 (🍀) FOUR LEAF CLOVER -1F341 ; emoji ; L1 ; none ; j # V6.0 (🍁) MAPLE LEAF -1F342 ; emoji ; L1 ; none ; j # V6.0 (🍂) FALLEN LEAF -1F343 ; emoji ; L1 ; none ; j # V6.0 (🍃) LEAF FLUTTERING IN WIND -1F344 ; emoji ; L1 ; none ; j # V6.0 (🍄) MUSHROOM -1F345 ; emoji ; L1 ; none ; j # V6.0 (🍅) TOMATO -1F346 ; emoji ; L1 ; none ; j # V6.0 (🍆) AUBERGINE -1F347 ; emoji ; L1 ; none ; j # V6.0 (🍇) GRAPES -1F348 ; emoji ; L1 ; none ; j # V6.0 (🍈) MELON -1F349 ; emoji ; L1 ; none ; j # V6.0 (🍉) WATERMELON -1F34A ; emoji ; L1 ; none ; j # V6.0 (🍊) TANGERINE -1F34B ; emoji ; L1 ; none ; x # V6.0 (🍋) LEMON -1F34C ; emoji ; L1 ; none ; j # V6.0 (🍌) BANANA -1F34D ; emoji ; L1 ; none ; j # V6.0 (🍍) PINEAPPLE -1F34E ; emoji ; L1 ; none ; j # V6.0 (🍎) RED APPLE -1F34F ; emoji ; L1 ; none ; j # V6.0 (🍏) GREEN APPLE -1F350 ; emoji ; L1 ; none ; x # V6.0 (🍐) PEAR -1F351 ; emoji ; L1 ; none ; j # V6.0 (🍑) PEACH -1F352 ; emoji ; L1 ; none ; j # V6.0 (🍒) CHERRIES -1F353 ; emoji ; L1 ; none ; j # V6.0 (🍓) STRAWBERRY -1F354 ; emoji ; L1 ; none ; j # V6.0 (🍔) HAMBURGER -1F355 ; emoji ; L1 ; none ; j # V6.0 (🍕) SLICE OF PIZZA -1F356 ; emoji ; L1 ; none ; j # V6.0 (🍖) MEAT ON BONE -1F357 ; emoji ; L1 ; none ; j # V6.0 (🍗) POULTRY LEG -1F358 ; emoji ; L1 ; none ; j # V6.0 (🍘) RICE CRACKER -1F359 ; emoji ; L1 ; none ; j # V6.0 (🍙) RICE BALL -1F35A ; emoji ; L1 ; none ; j # V6.0 (🍚) COOKED RICE -1F35B ; emoji ; L1 ; none ; j # V6.0 (🍛) CURRY AND RICE -1F35C ; emoji ; L1 ; none ; j # V6.0 (🍜) STEAMING BOWL -1F35D ; emoji ; L1 ; none ; j # V6.0 (🍝) SPAGHETTI -1F35E ; emoji ; L1 ; none ; j # V6.0 (🍞) BREAD -1F35F ; emoji ; L1 ; none ; j # V6.0 (🍟) FRENCH FRIES -1F360 ; emoji ; L1 ; none ; j # V6.0 (🍠) ROASTED SWEET POTATO -1F361 ; emoji ; L1 ; none ; j # V6.0 (🍡) DANGO -1F362 ; emoji ; L1 ; none ; j # V6.0 (🍢) ODEN -1F363 ; emoji ; L1 ; none ; j # V6.0 (🍣) SUSHI -1F364 ; emoji ; L1 ; none ; j # V6.0 (🍤) FRIED SHRIMP -1F365 ; emoji ; L1 ; none ; j # V6.0 (🍥) FISH CAKE WITH SWIRL DESIGN -1F366 ; emoji ; L1 ; none ; j # V6.0 (🍦) SOFT ICE CREAM -1F367 ; emoji ; L1 ; none ; j # V6.0 (🍧) SHAVED ICE -1F368 ; emoji ; L1 ; none ; j # V6.0 (🍨) ICE CREAM -1F369 ; emoji ; L1 ; none ; j # V6.0 (🍩) DOUGHNUT -1F36A ; emoji ; L1 ; none ; j # V6.0 (🍪) COOKIE -1F36B ; emoji ; L1 ; none ; j # V6.0 (🍫) CHOCOLATE BAR -1F36C ; emoji ; L1 ; none ; j # V6.0 (🍬) CANDY -1F36D ; emoji ; L1 ; none ; j # V6.0 (🍭) LOLLIPOP -1F36E ; emoji ; L1 ; none ; j # V6.0 (🍮) CUSTARD -1F36F ; emoji ; L1 ; none ; j # V6.0 (🍯) HONEY POT -1F370 ; emoji ; L1 ; none ; j # V6.0 (🍰) SHORTCAKE -1F371 ; emoji ; L1 ; none ; j # V6.0 (🍱) BENTO BOX -1F372 ; emoji ; L1 ; none ; j # V6.0 (🍲) POT OF FOOD -1F373 ; emoji ; L1 ; none ; j # V6.0 (🍳) COOKING -1F374 ; emoji ; L1 ; none ; j # V6.0 (🍴) FORK AND KNIFE -1F375 ; emoji ; L1 ; none ; j # V6.0 (🍵) TEACUP WITHOUT HANDLE -1F376 ; emoji ; L1 ; none ; j # V6.0 (🍶) SAKE BOTTLE AND CUP -1F377 ; emoji ; L1 ; none ; j # V6.0 (🍷) WINE GLASS -1F378 ; emoji ; L1 ; none ; j w # V6.0 (🍸) COCKTAIL GLASS -1F379 ; emoji ; L1 ; none ; j # V6.0 (🍹) TROPICAL DRINK -1F37A ; emoji ; L1 ; none ; j # V6.0 (🍺) BEER MUG -1F37B ; emoji ; L1 ; none ; j # V6.0 (🍻) CLINKING BEER MUGS -1F37C ; emoji ; L1 ; none ; x # V6.0 (🍼) BABY BOTTLE -1F37D ; text ; L2 ; none ; w # V7.0 (🍽) FORK AND KNIFE WITH PLATE -1F37E ; emoji ; L2 ; none ; x # V8.0 (🍾) BOTTLE WITH POPPING CORK -1F37F ; emoji ; L2 ; none ; x # V8.0 (🍿) POPCORN -1F380 ; emoji ; L1 ; none ; j # V6.0 (🎀) RIBBON -1F381 ; emoji ; L1 ; none ; j # V6.0 (🎁) WRAPPED PRESENT -1F382 ; emoji ; L1 ; none ; j # V6.0 (🎂) BIRTHDAY CAKE -1F383 ; emoji ; L1 ; none ; j # V6.0 (🎃) JACK-O-LANTERN -1F384 ; emoji ; L1 ; none ; j # V6.0 (🎄) CHRISTMAS TREE -1F385 ; emoji ; L1 ; primary ; j # V6.0 (🎅) FATHER CHRISTMAS -1F386 ; emoji ; L1 ; none ; j # V6.0 (🎆) FIREWORKS -1F387 ; emoji ; L1 ; none ; j # V6.0 (🎇) FIREWORK SPARKLER -1F388 ; emoji ; L1 ; none ; j # V6.0 (🎈) BALLOON -1F389 ; emoji ; L1 ; none ; j # V6.0 (🎉) PARTY POPPER -1F38A ; emoji ; L1 ; none ; j # V6.0 (🎊) CONFETTI BALL -1F38B ; emoji ; L1 ; none ; j # V6.0 (🎋) TANABATA TREE -1F38C ; emoji ; L1 ; none ; j # V6.0 (🎌) CROSSED FLAGS -1F38D ; emoji ; L1 ; none ; j # V6.0 (🎍) PINE DECORATION -1F38E ; emoji ; L1 ; none ; j # V6.0 (🎎) JAPANESE DOLLS -1F38F ; emoji ; L1 ; none ; j # V6.0 (🎏) CARP STREAMER -1F390 ; emoji ; L1 ; none ; j # V6.0 (🎐) WIND CHIME -1F391 ; emoji ; L1 ; none ; j # V6.0 (🎑) MOON VIEWING CEREMONY -1F392 ; emoji ; L1 ; none ; j # V6.0 (🎒) SCHOOL SATCHEL -1F393 ; emoji ; L1 ; none ; j w # V6.0 (🎓) GRADUATION CAP -1F396 ; text ; L2 ; none ; w # V7.0 (🎖) MILITARY MEDAL -1F397 ; text ; L2 ; none ; w # V7.0 (🎗) REMINDER RIBBON -1F399 ; text ; L2 ; none ; w # V7.0 (🎙) STUDIO MICROPHONE -1F39A ; text ; L2 ; none ; w # V7.0 (🎚) LEVEL SLIDER -1F39B ; text ; L2 ; none ; w # V7.0 (🎛) CONTROL KNOBS -1F39E ; text ; L2 ; none ; w # V7.0 (🎞) FILM FRAMES -1F39F ; text ; L2 ; none ; w # V7.0 (🎟) ADMISSION TICKETS -1F3A0 ; emoji ; L1 ; none ; j # V6.0 (🎠) CAROUSEL HORSE -1F3A1 ; emoji ; L1 ; none ; j # V6.0 (🎡) FERRIS WHEEL -1F3A2 ; emoji ; L1 ; none ; j # V6.0 (🎢) ROLLER COASTER -1F3A3 ; emoji ; L1 ; none ; j # V6.0 (🎣) FISHING POLE AND FISH -1F3A4 ; emoji ; L1 ; none ; j # V6.0 (🎤) MICROPHONE -1F3A5 ; emoji ; L1 ; none ; j # V6.0 (🎥) MOVIE CAMERA -1F3A6 ; emoji ; L1 ; none ; j # V6.0 (🎦) CINEMA -1F3A7 ; emoji ; L1 ; none ; j w # V6.0 (🎧) HEADPHONE -1F3A8 ; emoji ; L1 ; none ; j # V6.0 (🎨) ARTIST PALETTE -1F3A9 ; emoji ; L1 ; none ; j # V6.0 (🎩) TOP HAT -1F3AA ; emoji ; L1 ; none ; j # V6.0 (🎪) CIRCUS TENT -1F3AB ; emoji ; L1 ; none ; j # V6.0 (🎫) TICKET -1F3AC ; emoji ; L1 ; none ; j w # V6.0 (🎬) CLAPPER BOARD -1F3AD ; emoji ; L1 ; none ; j w # V6.0 (🎭) PERFORMING ARTS -1F3AE ; emoji ; L1 ; none ; j w # V6.0 (🎮) VIDEO GAME -1F3AF ; emoji ; L1 ; none ; j # V6.0 (🎯) DIRECT HIT -1F3B0 ; emoji ; L1 ; none ; j # V6.0 (🎰) SLOT MACHINE -1F3B1 ; emoji ; L1 ; none ; j # V6.0 (🎱) BILLIARDS -1F3B2 ; emoji ; L1 ; none ; j # V6.0 (🎲) GAME DIE -1F3B3 ; emoji ; L1 ; none ; j # V6.0 (🎳) BOWLING -1F3B4 ; emoji ; L1 ; none ; j # V6.0 (🎴) FLOWER PLAYING CARDS -1F3B5 ; emoji ; L1 ; none ; j # V6.0 (🎵) MUSICAL NOTE -1F3B6 ; emoji ; L1 ; none ; j # V6.0 (🎶) MULTIPLE MUSICAL NOTES -1F3B7 ; emoji ; L1 ; none ; j # V6.0 (🎷) SAXOPHONE -1F3B8 ; emoji ; L1 ; none ; j # V6.0 (🎸) GUITAR -1F3B9 ; emoji ; L1 ; none ; j # V6.0 (🎹) MUSICAL KEYBOARD -1F3BA ; emoji ; L1 ; none ; j # V6.0 (🎺) TRUMPET -1F3BB ; emoji ; L1 ; none ; j # V6.0 (🎻) VIOLIN -1F3BC ; emoji ; L1 ; none ; j # V6.0 (🎼) MUSICAL SCORE -1F3BD ; emoji ; L1 ; none ; j # V6.0 (🎽) RUNNING SHIRT WITH SASH -1F3BE ; emoji ; L1 ; none ; j # V6.0 (🎾) TENNIS RACQUET AND BALL -1F3BF ; emoji ; L1 ; none ; j # V6.0 (🎿) SKI AND SKI BOOT -1F3C0 ; emoji ; L1 ; none ; j # V6.0 (🏀) BASKETBALL AND HOOP -1F3C1 ; emoji ; L1 ; none ; j # V6.0 (🏁) CHEQUERED FLAG -1F3C2 ; emoji ; L1 ; secondary ; j w # V6.0 (🏂) SNOWBOARDER -1F3C3 ; emoji ; L1 ; secondary ; j # V6.0 (🏃) RUNNER -1F3C4 ; emoji ; L1 ; secondary ; j w # V6.0 (🏄) SURFER -1F3C5 ; emoji ; L2 ; none ; x # V7.0 (🏅) SPORTS MEDAL -1F3C6 ; emoji ; L1 ; none ; j w # V6.0 (🏆) TROPHY -1F3C7 ; emoji ; L1 ; secondary ; x # V6.0 (🏇) HORSE RACING -1F3C8 ; emoji ; L1 ; none ; j # V6.0 (🏈) AMERICAN FOOTBALL -1F3C9 ; emoji ; L1 ; none ; x # V6.0 (🏉) RUGBY FOOTBALL -1F3CA ; emoji ; L1 ; secondary ; j w # V6.0 (🏊) SWIMMER -1F3CB ; text ; L2 ; none ; w # V7.0 (🏋) WEIGHT LIFTER -1F3CC ; text ; L2 ; none ; w # V7.0 (🏌) GOLFER -1F3CD ; text ; L2 ; none ; w # V7.0 (🏍) RACING MOTORCYCLE -1F3CE ; text ; L2 ; none ; w # V7.0 (🏎) RACING CAR -1F3CF ; emoji ; L2 ; none ; x # V8.0 (🏏) CRICKET BAT AND BALL -1F3D0 ; emoji ; L2 ; none ; x # V8.0 (🏐) VOLLEYBALL -1F3D1 ; emoji ; L2 ; none ; x # V8.0 (🏑) FIELD HOCKEY STICK AND BALL -1F3D2 ; emoji ; L2 ; none ; x # V8.0 (🏒) ICE HOCKEY STICK AND PUCK -1F3D3 ; emoji ; L2 ; none ; x # V8.0 (🏓) TABLE TENNIS PADDLE AND BALL -1F3D4 ; text ; L2 ; none ; w # V7.0 (🏔) SNOW CAPPED MOUNTAIN -1F3D5 ; text ; L2 ; none ; w # V7.0 (🏕) CAMPING -1F3D6 ; text ; L2 ; none ; w # V7.0 (🏖) BEACH WITH UMBRELLA -1F3D7 ; text ; L2 ; none ; w # V7.0 (🏗) BUILDING CONSTRUCTION -1F3D8 ; text ; L2 ; none ; w # V7.0 (🏘) HOUSE BUILDINGS -1F3D9 ; text ; L2 ; none ; w # V7.0 (🏙) CITYSCAPE -1F3DA ; text ; L2 ; none ; w # V7.0 (🏚) DERELICT HOUSE BUILDING -1F3DB ; text ; L2 ; none ; w # V7.0 (🏛) CLASSICAL BUILDING -1F3DC ; text ; L2 ; none ; w # V7.0 (🏜) DESERT -1F3DD ; text ; L2 ; none ; w # V7.0 (🏝) DESERT ISLAND -1F3DE ; text ; L2 ; none ; w # V7.0 (🏞) NATIONAL PARK -1F3DF ; text ; L2 ; none ; w # V7.0 (🏟) STADIUM -1F3E0 ; emoji ; L1 ; none ; j w # V6.0 (🏠) HOUSE BUILDING -1F3E1 ; emoji ; L1 ; none ; j # V6.0 (🏡) HOUSE WITH GARDEN -1F3E2 ; emoji ; L1 ; none ; j # V6.0 (🏢) OFFICE BUILDING -1F3E3 ; emoji ; L1 ; none ; j # V6.0 (🏣) JAPANESE POST OFFICE -1F3E4 ; emoji ; L1 ; none ; x # V6.0 (🏤) EUROPEAN POST OFFICE -1F3E5 ; emoji ; L1 ; none ; j # V6.0 (🏥) HOSPITAL -1F3E6 ; emoji ; L1 ; none ; j # V6.0 (🏦) BANK -1F3E7 ; emoji ; L1 ; none ; j # V6.0 (🏧) AUTOMATED TELLER MACHINE -1F3E8 ; emoji ; L1 ; none ; j # V6.0 (🏨) HOTEL -1F3E9 ; emoji ; L1 ; none ; j # V6.0 (🏩) LOVE HOTEL -1F3EA ; emoji ; L1 ; none ; j # V6.0 (🏪) CONVENIENCE STORE -1F3EB ; emoji ; L1 ; none ; j # V6.0 (🏫) SCHOOL -1F3EC ; emoji ; L1 ; none ; j # V6.0 (🏬) DEPARTMENT STORE -1F3ED ; emoji ; L1 ; none ; j w # V6.0 (🏭) FACTORY -1F3EE ; emoji ; L1 ; none ; j # V6.0 (🏮) IZAKAYA LANTERN -1F3EF ; emoji ; L1 ; none ; j # V6.0 (🏯) JAPANESE CASTLE -1F3F0 ; emoji ; L1 ; none ; j # V6.0 (🏰) EUROPEAN CASTLE -1F3F3 ; text ; L2 ; none ; w # V7.0 (🏳) WAVING WHITE FLAG -1F3F4 ; emoji ; L2 ; none ; x # V7.0 (🏴) WAVING BLACK FLAG -1F3F5 ; text ; L2 ; none ; w # V7.0 (🏵) ROSETTE -1F3F7 ; text ; L2 ; none ; w # V7.0 (🏷) LABEL -1F3F8 ; emoji ; L2 ; none ; x # V8.0 (🏸) BADMINTON RACQUET AND SHUTTLECOCK -1F3F9 ; emoji ; L2 ; none ; x # V8.0 (🏹) BOW AND ARROW -1F3FA ; emoji ; L2 ; none ; x # V8.0 (🏺) AMPHORA -1F3FB ; emoji ; L2 ; modifier ; x # V8.0 (🏻) EMOJI MODIFIER FITZPATRICK TYPE-1-2 -1F3FC ; emoji ; L2 ; modifier ; x # V8.0 (🏼) EMOJI MODIFIER FITZPATRICK TYPE-3 -1F3FD ; emoji ; L2 ; modifier ; x # V8.0 (🏽) EMOJI MODIFIER FITZPATRICK TYPE-4 -1F3FE ; emoji ; L2 ; modifier ; x # V8.0 (🏾) EMOJI MODIFIER FITZPATRICK TYPE-5 -1F3FF ; emoji ; L2 ; modifier ; x # V8.0 (🏿) EMOJI MODIFIER FITZPATRICK TYPE-6 -1F400 ; emoji ; L1 ; none ; x # V6.0 (🐀) RAT -1F401 ; emoji ; L1 ; none ; x # V6.0 (🐁) MOUSE -1F402 ; emoji ; L1 ; none ; x # V6.0 (🐂) OX -1F403 ; emoji ; L1 ; none ; x # V6.0 (🐃) WATER BUFFALO -1F404 ; emoji ; L1 ; none ; x # V6.0 (🐄) COW -1F405 ; emoji ; L1 ; none ; x # V6.0 (🐅) TIGER -1F406 ; emoji ; L1 ; none ; x # V6.0 (🐆) LEOPARD -1F407 ; emoji ; L1 ; none ; x # V6.0 (🐇) RABBIT -1F408 ; emoji ; L1 ; none ; w # V6.0 (🐈) CAT -1F409 ; emoji ; L1 ; none ; x # V6.0 (🐉) DRAGON -1F40A ; emoji ; L1 ; none ; x # V6.0 (🐊) CROCODILE -1F40B ; emoji ; L1 ; none ; x # V6.0 (🐋) WHALE -1F40C ; emoji ; L1 ; none ; j # V6.0 (🐌) SNAIL -1F40D ; emoji ; L1 ; none ; j # V6.0 (🐍) SNAKE -1F40E ; emoji ; L1 ; none ; j # V6.0 (🐎) HORSE -1F40F ; emoji ; L1 ; none ; x # V6.0 (🐏) RAM -1F410 ; emoji ; L1 ; none ; x # V6.0 (🐐) GOAT -1F411 ; emoji ; L1 ; none ; j # V6.0 (🐑) SHEEP -1F412 ; emoji ; L1 ; none ; j # V6.0 (🐒) MONKEY -1F413 ; emoji ; L1 ; none ; x # V6.0 (🐓) ROOSTER -1F414 ; emoji ; L1 ; none ; j # V6.0 (🐔) CHICKEN -1F415 ; emoji ; L1 ; none ; w # V6.0 (🐕) DOG -1F416 ; emoji ; L1 ; none ; x # V6.0 (🐖) PIG -1F417 ; emoji ; L1 ; none ; j # V6.0 (🐗) BOAR -1F418 ; emoji ; L1 ; none ; j # V6.0 (🐘) ELEPHANT -1F419 ; emoji ; L1 ; none ; j # V6.0 (🐙) OCTOPUS -1F41A ; emoji ; L1 ; none ; j # V6.0 (🐚) SPIRAL SHELL -1F41B ; emoji ; L1 ; none ; j # V6.0 (🐛) BUG -1F41C ; emoji ; L1 ; none ; j # V6.0 (🐜) ANT -1F41D ; emoji ; L1 ; none ; j # V6.0 (🐝) HONEYBEE -1F41E ; emoji ; L1 ; none ; j # V6.0 (🐞) LADY BEETLE -1F41F ; emoji ; L1 ; none ; j w # V6.0 (🐟) FISH -1F420 ; emoji ; L1 ; none ; j # V6.0 (🐠) TROPICAL FISH -1F421 ; emoji ; L1 ; none ; j # V6.0 (🐡) BLOWFISH -1F422 ; emoji ; L1 ; none ; j # V6.0 (🐢) TURTLE -1F423 ; emoji ; L1 ; none ; j # V6.0 (🐣) HATCHING CHICK -1F424 ; emoji ; L1 ; none ; j # V6.0 (🐤) BABY CHICK -1F425 ; emoji ; L1 ; none ; j # V6.0 (🐥) FRONT-FACING BABY CHICK -1F426 ; emoji ; L1 ; none ; j w # V6.0 (🐦) BIRD -1F427 ; emoji ; L1 ; none ; j # V6.0 (🐧) PENGUIN -1F428 ; emoji ; L1 ; none ; j # V6.0 (🐨) KOALA -1F429 ; emoji ; L1 ; none ; j # V6.0 (🐩) POODLE -1F42A ; emoji ; L1 ; none ; x # V6.0 (🐪) DROMEDARY CAMEL -1F42B ; emoji ; L1 ; none ; j # V6.0 (🐫) BACTRIAN CAMEL -1F42C ; emoji ; L1 ; none ; j # V6.0 (🐬) DOLPHIN -1F42D ; emoji ; L1 ; none ; j # V6.0 (🐭) MOUSE FACE -1F42E ; emoji ; L1 ; none ; j # V6.0 (🐮) COW FACE -1F42F ; emoji ; L1 ; none ; j # V6.0 (🐯) TIGER FACE -1F430 ; emoji ; L1 ; none ; j # V6.0 (🐰) RABBIT FACE -1F431 ; emoji ; L1 ; none ; j # V6.0 (🐱) CAT FACE -1F432 ; emoji ; L1 ; none ; j # V6.0 (🐲) DRAGON FACE -1F433 ; emoji ; L1 ; none ; j # V6.0 (🐳) SPOUTING WHALE -1F434 ; emoji ; L1 ; none ; j # V6.0 (🐴) HORSE FACE -1F435 ; emoji ; L1 ; none ; j # V6.0 (🐵) MONKEY FACE -1F436 ; emoji ; L1 ; none ; j # V6.0 (🐶) DOG FACE -1F437 ; emoji ; L1 ; none ; j # V6.0 (🐷) PIG FACE -1F438 ; emoji ; L1 ; none ; j # V6.0 (🐸) FROG FACE -1F439 ; emoji ; L1 ; none ; j # V6.0 (🐹) HAMSTER FACE -1F43A ; emoji ; L1 ; none ; j # V6.0 (🐺) WOLF FACE -1F43B ; emoji ; L1 ; none ; j # V6.0 (🐻) BEAR FACE -1F43C ; emoji ; L1 ; none ; j # V6.0 (🐼) PANDA FACE -1F43D ; emoji ; L1 ; none ; j # V6.0 (🐽) PIG NOSE -1F43E ; emoji ; L1 ; none ; j # V6.0 (🐾) PAW PRINTS -1F43F ; text ; L2 ; none ; w # V7.0 (🐿) CHIPMUNK -1F440 ; emoji ; L1 ; none ; j # V6.0 (👀) EYES -1F441 ; text ; L2 ; none ; w # V7.0 (👁) EYE -1F442 ; emoji ; L1 ; secondary ; j w # V6.0 (👂) EAR -1F443 ; emoji ; L1 ; secondary ; j # V6.0 (👃) NOSE -1F444 ; emoji ; L1 ; none ; j # V6.0 (👄) MOUTH -1F445 ; emoji ; L1 ; none ; j # V6.0 (👅) TONGUE -1F446 ; emoji ; L1 ; secondary ; j w # V6.0 (👆) WHITE UP POINTING BACKHAND INDEX -1F447 ; emoji ; L1 ; secondary ; j w # V6.0 (👇) WHITE DOWN POINTING BACKHAND INDEX -1F448 ; emoji ; L1 ; secondary ; j w # V6.0 (👈) WHITE LEFT POINTING BACKHAND INDEX -1F449 ; emoji ; L1 ; secondary ; j w # V6.0 (👉) WHITE RIGHT POINTING BACKHAND INDEX -1F44A ; emoji ; L1 ; secondary ; j # V6.0 (👊) FISTED HAND SIGN -1F44B ; emoji ; L1 ; secondary ; j # V6.0 (👋) WAVING HAND SIGN -1F44C ; emoji ; L1 ; secondary ; j # V6.0 (👌) OK HAND SIGN -1F44D ; emoji ; L1 ; secondary ; j w # V6.0 (👍) THUMBS UP SIGN -1F44E ; emoji ; L1 ; secondary ; j w # V6.0 (👎) THUMBS DOWN SIGN -1F44F ; emoji ; L1 ; secondary ; j # V6.0 (👏) CLAPPING HANDS SIGN -1F450 ; emoji ; L1 ; secondary ; j # V6.0 (👐) OPEN HANDS SIGN -1F451 ; emoji ; L1 ; none ; j # V6.0 (👑) CROWN -1F452 ; emoji ; L1 ; none ; j # V6.0 (👒) WOMANS HAT -1F453 ; emoji ; L1 ; none ; j w # V6.0 (👓) EYEGLASSES -1F454 ; emoji ; L1 ; none ; j # V6.0 (👔) NECKTIE -1F455 ; emoji ; L1 ; none ; j # V6.0 (👕) T-SHIRT -1F456 ; emoji ; L1 ; none ; j # V6.0 (👖) JEANS -1F457 ; emoji ; L1 ; none ; j # V6.0 (👗) DRESS -1F458 ; emoji ; L1 ; none ; j # V6.0 (👘) KIMONO -1F459 ; emoji ; L1 ; none ; j # V6.0 (👙) BIKINI -1F45A ; emoji ; L1 ; none ; j # V6.0 (👚) WOMANS CLOTHES -1F45B ; emoji ; L1 ; none ; j # V6.0 (👛) PURSE -1F45C ; emoji ; L1 ; none ; j # V6.0 (👜) HANDBAG -1F45D ; emoji ; L1 ; none ; j # V6.0 (👝) POUCH -1F45E ; emoji ; L1 ; none ; j # V6.0 (👞) MANS SHOE -1F45F ; emoji ; L1 ; none ; j # V6.0 (👟) ATHLETIC SHOE -1F460 ; emoji ; L1 ; none ; j # V6.0 (👠) HIGH-HEELED SHOE -1F461 ; emoji ; L1 ; none ; j # V6.0 (👡) WOMANS SANDAL -1F462 ; emoji ; L1 ; none ; j # V6.0 (👢) WOMANS BOOTS -1F463 ; emoji ; L1 ; none ; j # V6.0 (👣) FOOTPRINTS -1F464 ; emoji ; L1 ; none ; j # V6.0 (👤) BUST IN SILHOUETTE -1F465 ; emoji ; L1 ; none ; x # V6.0 (👥) BUSTS IN SILHOUETTE -1F466 ; emoji ; L1 ; primary ; j # V6.0 (👦) BOY -1F467 ; emoji ; L1 ; primary ; j # V6.0 (👧) GIRL -1F468 ; emoji ; L1 ; primary ; j # V6.0 (👨) MAN -1F469 ; emoji ; L1 ; primary ; j # V6.0 (👩) WOMAN -1F46A ; emoji ; L1 ; none ; j w # V6.0 (👪) FAMILY -1F46B ; emoji ; L1 ; none ; j # V6.0 (👫) MAN AND WOMAN HOLDING HANDS -1F46C ; emoji ; L1 ; none ; x # V6.0 (👬) TWO MEN HOLDING HANDS -1F46D ; emoji ; L1 ; none ; x # V6.0 (👭) TWO WOMEN HOLDING HANDS -1F46E ; emoji ; L1 ; primary ; j # V6.0 (👮) POLICE OFFICER -1F46F ; emoji ; L1 ; none ; j # V6.0 (👯) WOMAN WITH BUNNY EARS -1F470 ; emoji ; L1 ; primary ; j # V6.0 (👰) BRIDE WITH VEIL -1F471 ; emoji ; L1 ; primary ; j # V6.0 (👱) PERSON WITH BLOND HAIR -1F472 ; emoji ; L1 ; primary ; j # V6.0 (👲) MAN WITH GUA PI MAO -1F473 ; emoji ; L1 ; primary ; j # V6.0 (👳) MAN WITH TURBAN -1F474 ; emoji ; L1 ; primary ; j # V6.0 (👴) OLDER MAN -1F475 ; emoji ; L1 ; primary ; j # V6.0 (👵) OLDER WOMAN -1F476 ; emoji ; L1 ; primary ; j # V6.0 (👶) BABY -1F477 ; emoji ; L1 ; primary ; j # V6.0 (👷) CONSTRUCTION WORKER -1F478 ; emoji ; L1 ; primary ; j # V6.0 (👸) PRINCESS -1F479 ; emoji ; L1 ; none ; j # V6.0 (👹) JAPANESE OGRE -1F47A ; emoji ; L1 ; none ; j # V6.0 (👺) JAPANESE GOBLIN -1F47B ; emoji ; L1 ; none ; j # V6.0 (👻) GHOST -1F47C ; emoji ; L1 ; primary ; j # V6.0 (👼) BABY ANGEL -1F47D ; emoji ; L1 ; none ; j w # V6.0 (👽) EXTRATERRESTRIAL ALIEN -1F47E ; emoji ; L1 ; none ; j # V6.0 (👾) ALIEN MONSTER -1F47F ; emoji ; L1 ; secondary ; j # V6.0 (👿) IMP -1F480 ; emoji ; L1 ; none ; j # V6.0 (💀) SKULL -1F481 ; emoji ; L1 ; primary ; j # V6.0 (💁) INFORMATION DESK PERSON -1F482 ; emoji ; L1 ; primary ; j # V6.0 (💂) GUARDSMAN -1F483 ; emoji ; L1 ; secondary ; j # V6.0 (💃) DANCER -1F484 ; emoji ; L1 ; none ; j # V6.0 (💄) LIPSTICK -1F485 ; emoji ; L1 ; secondary ; j # V6.0 (💅) NAIL POLISH -1F486 ; emoji ; L1 ; primary ; j # V6.0 (💆) FACE MASSAGE -1F487 ; emoji ; L1 ; primary ; j # V6.0 (💇) HAIRCUT -1F488 ; emoji ; L1 ; none ; j # V6.0 (💈) BARBER POLE -1F489 ; emoji ; L1 ; none ; j # V6.0 (💉) SYRINGE -1F48A ; emoji ; L1 ; none ; j # V6.0 (💊) PILL -1F48B ; emoji ; L1 ; none ; j # V6.0 (💋) KISS MARK -1F48C ; emoji ; L1 ; none ; j # V6.0 (💌) LOVE LETTER -1F48D ; emoji ; L1 ; none ; j # V6.0 (💍) RING -1F48E ; emoji ; L1 ; none ; j # V6.0 (💎) GEM STONE -1F48F ; emoji ; L1 ; none ; j # V6.0 (💏) KISS -1F490 ; emoji ; L1 ; none ; j # V6.0 (💐) BOUQUET -1F491 ; emoji ; L1 ; none ; j # V6.0 (💑) COUPLE WITH HEART -1F492 ; emoji ; L1 ; none ; j # V6.0 (💒) WEDDING -1F493 ; emoji ; L1 ; none ; j # V6.0 (💓) BEATING HEART -1F494 ; emoji ; L1 ; none ; j # V6.0 (💔) BROKEN HEART -1F495 ; emoji ; L1 ; none ; j # V6.0 (💕) TWO HEARTS -1F496 ; emoji ; L1 ; none ; j # V6.0 (💖) SPARKLING HEART -1F497 ; emoji ; L1 ; none ; j # V6.0 (💗) GROWING HEART -1F498 ; emoji ; L1 ; none ; j # V6.0 (💘) HEART WITH ARROW -1F499 ; emoji ; L1 ; none ; j # V6.0 (💙) BLUE HEART -1F49A ; emoji ; L1 ; none ; j # V6.0 (💚) GREEN HEART -1F49B ; emoji ; L1 ; none ; j # V6.0 (💛) YELLOW HEART -1F49C ; emoji ; L1 ; none ; j # V6.0 (💜) PURPLE HEART -1F49D ; emoji ; L1 ; none ; j # V6.0 (💝) HEART WITH RIBBON -1F49E ; emoji ; L1 ; none ; j # V6.0 (💞) REVOLVING HEARTS -1F49F ; emoji ; L1 ; none ; j # V6.0 (💟) HEART DECORATION -1F4A0 ; emoji ; L1 ; none ; j # V6.0 (💠) DIAMOND SHAPE WITH A DOT INSIDE -1F4A1 ; emoji ; L1 ; none ; j # V6.0 (💡) ELECTRIC LIGHT BULB -1F4A2 ; emoji ; L1 ; none ; j # V6.0 (💢) ANGER SYMBOL -1F4A3 ; emoji ; L1 ; none ; j w # V6.0 (💣) BOMB -1F4A4 ; emoji ; L1 ; none ; j # V6.0 (💤) SLEEPING SYMBOL -1F4A5 ; emoji ; L1 ; none ; j # V6.0 (💥) COLLISION SYMBOL -1F4A6 ; emoji ; L1 ; none ; j # V6.0 (💦) SPLASHING SWEAT SYMBOL -1F4A7 ; emoji ; L1 ; none ; j # V6.0 (💧) DROPLET -1F4A8 ; emoji ; L1 ; none ; j # V6.0 (💨) DASH SYMBOL -1F4A9 ; emoji ; L1 ; none ; j # V6.0 (💩) PILE OF POO -1F4AA ; emoji ; L1 ; secondary ; j # V6.0 (💪) FLEXED BICEPS -1F4AB ; emoji ; L1 ; none ; j # V6.0 (💫) DIZZY SYMBOL -1F4AC ; emoji ; L1 ; none ; j # V6.0 (💬) SPEECH BALLOON -1F4AD ; emoji ; L1 ; none ; x # V6.0 (💭) THOUGHT BALLOON -1F4AE ; emoji ; L1 ; none ; j # V6.0 (💮) WHITE FLOWER -1F4AF ; emoji ; L1 ; none ; j # V6.0 (💯) HUNDRED POINTS SYMBOL -1F4B0 ; emoji ; L1 ; none ; j w # V6.0 (💰) MONEY BAG -1F4B1 ; emoji ; L1 ; none ; j # V6.0 (💱) CURRENCY EXCHANGE -1F4B2 ; emoji ; L1 ; none ; j # V6.0 (💲) HEAVY DOLLAR SIGN -1F4B3 ; emoji ; L1 ; none ; j w # V6.0 (💳) CREDIT CARD -1F4B4 ; emoji ; L1 ; none ; j # V6.0 (💴) BANKNOTE WITH YEN SIGN -1F4B5 ; emoji ; L1 ; none ; j # V6.0 (💵) BANKNOTE WITH DOLLAR SIGN -1F4B6 ; emoji ; L1 ; none ; x # V6.0 (💶) BANKNOTE WITH EURO SIGN -1F4B7 ; emoji ; L1 ; none ; x # V6.0 (💷) BANKNOTE WITH POUND SIGN -1F4B8 ; emoji ; L1 ; none ; j # V6.0 (💸) MONEY WITH WINGS -1F4B9 ; emoji ; L1 ; none ; j # V6.0 (💹) CHART WITH UPWARDS TREND AND YEN SIGN -1F4BA ; emoji ; L1 ; none ; j # V6.0 (💺) SEAT -1F4BB ; emoji ; L1 ; none ; j w # V6.0 (💻) PERSONAL COMPUTER -1F4BC ; emoji ; L1 ; none ; j # V6.0 (💼) BRIEFCASE -1F4BD ; emoji ; L1 ; none ; j # V6.0 (💽) MINIDISC -1F4BE ; emoji ; L1 ; none ; j # V6.0 (💾) FLOPPY DISK -1F4BF ; emoji ; L1 ; none ; j w # V6.0 (💿) OPTICAL DISC -1F4C0 ; emoji ; L1 ; none ; j # V6.0 (📀) DVD -1F4C1 ; emoji ; L1 ; none ; j # V6.0 (📁) FILE FOLDER -1F4C2 ; emoji ; L1 ; none ; j # V6.0 (📂) OPEN FILE FOLDER -1F4C3 ; emoji ; L1 ; none ; j # V6.0 (📃) PAGE WITH CURL -1F4C4 ; emoji ; L1 ; none ; j # V6.0 (📄) PAGE FACING UP -1F4C5 ; emoji ; L1 ; none ; j # V6.0 (📅) CALENDAR -1F4C6 ; emoji ; L1 ; none ; j # V6.0 (📆) TEAR-OFF CALENDAR -1F4C7 ; emoji ; L1 ; none ; j # V6.0 (📇) CARD INDEX -1F4C8 ; emoji ; L1 ; none ; j # V6.0 (📈) CHART WITH UPWARDS TREND -1F4C9 ; emoji ; L1 ; none ; j # V6.0 (📉) CHART WITH DOWNWARDS TREND -1F4CA ; emoji ; L1 ; none ; j # V6.0 (📊) BAR CHART -1F4CB ; emoji ; L1 ; none ; j w # V6.0 (📋) CLIPBOARD -1F4CC ; emoji ; L1 ; none ; j # V6.0 (📌) PUSHPIN -1F4CD ; emoji ; L1 ; none ; j # V6.0 (📍) ROUND PUSHPIN -1F4CE ; emoji ; L1 ; none ; j # V6.0 (📎) PAPERCLIP -1F4CF ; emoji ; L1 ; none ; j # V6.0 (📏) STRAIGHT RULER -1F4D0 ; emoji ; L1 ; none ; j # V6.0 (📐) TRIANGULAR RULER -1F4D1 ; emoji ; L1 ; none ; j # V6.0 (📑) BOOKMARK TABS -1F4D2 ; emoji ; L1 ; none ; j # V6.0 (📒) LEDGER -1F4D3 ; emoji ; L1 ; none ; j # V6.0 (📓) NOTEBOOK -1F4D4 ; emoji ; L1 ; none ; j # V6.0 (📔) NOTEBOOK WITH DECORATIVE COVER -1F4D5 ; emoji ; L1 ; none ; j # V6.0 (📕) CLOSED BOOK -1F4D6 ; emoji ; L1 ; none ; j # V6.0 (📖) OPEN BOOK -1F4D7 ; emoji ; L1 ; none ; j # V6.0 (📗) GREEN BOOK -1F4D8 ; emoji ; L1 ; none ; j # V6.0 (📘) BLUE BOOK -1F4D9 ; emoji ; L1 ; none ; j # V6.0 (📙) ORANGE BOOK -1F4DA ; emoji ; L1 ; none ; j w # V6.0 (📚) BOOKS -1F4DB ; emoji ; L1 ; none ; j # V6.0 (📛) NAME BADGE -1F4DC ; emoji ; L1 ; none ; j # V6.0 (📜) SCROLL -1F4DD ; emoji ; L1 ; none ; j # V6.0 (📝) MEMO -1F4DE ; emoji ; L1 ; none ; j # V6.0 (📞) TELEPHONE RECEIVER -1F4DF ; emoji ; L1 ; none ; j w # V6.0 (📟) PAGER -1F4E0 ; emoji ; L1 ; none ; j # V6.0 (📠) FAX MACHINE -1F4E1 ; emoji ; L1 ; none ; j # V6.0 (📡) SATELLITE ANTENNA -1F4E2 ; emoji ; L1 ; none ; j # V6.0 (📢) PUBLIC ADDRESS LOUDSPEAKER -1F4E3 ; emoji ; L1 ; none ; j # V6.0 (📣) CHEERING MEGAPHONE -1F4E4 ; emoji ; L1 ; none ; j w # V6.0 (📤) OUTBOX TRAY -1F4E5 ; emoji ; L1 ; none ; j w # V6.0 (📥) INBOX TRAY -1F4E6 ; emoji ; L1 ; none ; j w # V6.0 (📦) PACKAGE -1F4E7 ; emoji ; L1 ; none ; j # V6.0 (📧) E-MAIL SYMBOL -1F4E8 ; emoji ; L1 ; none ; j # V6.0 (📨) INCOMING ENVELOPE -1F4E9 ; emoji ; L1 ; none ; j # V6.0 (📩) ENVELOPE WITH DOWNWARDS ARROW ABOVE -1F4EA ; emoji ; L1 ; none ; j w # V6.0 (📪) CLOSED MAILBOX WITH LOWERED FLAG -1F4EB ; emoji ; L1 ; none ; j w # V6.0 (📫) CLOSED MAILBOX WITH RAISED FLAG -1F4EC ; emoji ; L1 ; none ; w # V6.0 (📬) OPEN MAILBOX WITH RAISED FLAG -1F4ED ; emoji ; L1 ; none ; w # V6.0 (📭) OPEN MAILBOX WITH LOWERED FLAG -1F4EE ; emoji ; L1 ; none ; j # V6.0 (📮) POSTBOX -1F4EF ; emoji ; L1 ; none ; x # V6.0 (📯) POSTAL HORN -1F4F0 ; emoji ; L1 ; none ; j # V6.0 (📰) NEWSPAPER -1F4F1 ; emoji ; L1 ; none ; j # V6.0 (📱) MOBILE PHONE -1F4F2 ; emoji ; L1 ; none ; j # V6.0 (📲) MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT -1F4F3 ; emoji ; L1 ; none ; j # V6.0 (📳) VIBRATION MODE -1F4F4 ; emoji ; L1 ; none ; j # V6.0 (📴) MOBILE PHONE OFF -1F4F5 ; emoji ; L1 ; none ; x # V6.0 (📵) NO MOBILE PHONES -1F4F6 ; emoji ; L1 ; none ; j # V6.0 (📶) ANTENNA WITH BARS -1F4F7 ; emoji ; L1 ; none ; j w # V6.0 (📷) CAMERA -1F4F8 ; emoji ; L2 ; none ; x # V7.0 (📸) CAMERA WITH FLASH -1F4F9 ; emoji ; L1 ; none ; j w # V6.0 (📹) VIDEO CAMERA -1F4FA ; emoji ; L1 ; none ; j w # V6.0 (📺) TELEVISION -1F4FB ; emoji ; L1 ; none ; j w # V6.0 (📻) RADIO -1F4FC ; emoji ; L1 ; none ; j # V6.0 (📼) VIDEOCASSETTE -1F4FD ; text ; L2 ; none ; w # V7.0 (📽) FILM PROJECTOR -1F4FF ; emoji ; L2 ; none ; x # V8.0 (📿) PRAYER BEADS -1F500 ; emoji ; L1 ; none ; x # V6.0 (🔀) TWISTED RIGHTWARDS ARROWS -1F501 ; emoji ; L1 ; none ; x # V6.0 (🔁) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS -1F502 ; emoji ; L1 ; none ; x # V6.0 (🔂) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY -1F503 ; emoji ; L1 ; none ; j # V6.0 (🔃) CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F504 ; emoji ; L1 ; none ; x # V6.0 (🔄) ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F505 ; emoji ; L1 ; none ; x # V6.0 (🔅) LOW BRIGHTNESS SYMBOL -1F506 ; emoji ; L1 ; none ; x # V6.0 (🔆) HIGH BRIGHTNESS SYMBOL -1F507 ; emoji ; L1 ; none ; x # V6.0 (🔇) SPEAKER WITH CANCELLATION STROKE -1F508 ; emoji ; L1 ; none ; w # V6.0 (🔈) SPEAKER -1F509 ; emoji ; L1 ; none ; x # V6.0 (🔉) SPEAKER WITH ONE SOUND WAVE -1F50A ; emoji ; L1 ; none ; j # V6.0 (🔊) SPEAKER WITH THREE SOUND WAVES -1F50B ; emoji ; L1 ; none ; j # V6.0 (🔋) BATTERY -1F50C ; emoji ; L1 ; none ; j # V6.0 (🔌) ELECTRIC PLUG -1F50D ; emoji ; L1 ; none ; j w # V6.0 (🔍) LEFT-POINTING MAGNIFYING GLASS -1F50E ; emoji ; L1 ; none ; j # V6.0 (🔎) RIGHT-POINTING MAGNIFYING GLASS -1F50F ; emoji ; L1 ; none ; j # V6.0 (🔏) LOCK WITH INK PEN -1F510 ; emoji ; L1 ; none ; j # V6.0 (🔐) CLOSED LOCK WITH KEY -1F511 ; emoji ; L1 ; none ; j # V6.0 (🔑) KEY -1F512 ; emoji ; L1 ; none ; j w # V6.0 (🔒) LOCK -1F513 ; emoji ; L1 ; none ; j w # V6.0 (🔓) OPEN LOCK -1F514 ; emoji ; L1 ; none ; j # V6.0 (🔔) BELL -1F515 ; emoji ; L1 ; none ; x # V6.0 (🔕) BELL WITH CANCELLATION STROKE -1F516 ; emoji ; L1 ; none ; j # V6.0 (🔖) BOOKMARK -1F517 ; emoji ; L1 ; none ; j # V6.0 (🔗) LINK SYMBOL -1F518 ; emoji ; L1 ; none ; j # V6.0 (🔘) RADIO BUTTON -1F519 ; emoji ; L1 ; none ; j # V6.0 (🔙) BACK WITH LEFTWARDS ARROW ABOVE -1F51A ; emoji ; L1 ; none ; j # V6.0 (🔚) END WITH LEFTWARDS ARROW ABOVE -1F51B ; emoji ; L1 ; none ; j # V6.0 (🔛) ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE -1F51C ; emoji ; L1 ; none ; j # V6.0 (🔜) SOON WITH RIGHTWARDS ARROW ABOVE -1F51D ; emoji ; L1 ; none ; j # V6.0 (🔝) TOP WITH UPWARDS ARROW ABOVE -1F51E ; emoji ; L1 ; none ; j # V6.0 (🔞) NO ONE UNDER EIGHTEEN SYMBOL -1F51F ; emoji ; L1 ; none ; j # V6.0 (🔟) KEYCAP TEN -1F520 ; emoji ; L1 ; none ; j # V6.0 (🔠) INPUT SYMBOL FOR LATIN CAPITAL LETTERS -1F521 ; emoji ; L1 ; none ; j # V6.0 (🔡) INPUT SYMBOL FOR LATIN SMALL LETTERS -1F522 ; emoji ; L1 ; none ; j # V6.0 (🔢) INPUT SYMBOL FOR NUMBERS -1F523 ; emoji ; L1 ; none ; j # V6.0 (🔣) INPUT SYMBOL FOR SYMBOLS -1F524 ; emoji ; L1 ; none ; j # V6.0 (🔤) INPUT SYMBOL FOR LATIN LETTERS -1F525 ; emoji ; L1 ; none ; j # V6.0 (🔥) FIRE -1F526 ; emoji ; L1 ; none ; j # V6.0 (🔦) ELECTRIC TORCH -1F527 ; emoji ; L1 ; none ; j # V6.0 (🔧) WRENCH -1F528 ; emoji ; L1 ; none ; j # V6.0 (🔨) HAMMER -1F529 ; emoji ; L1 ; none ; j # V6.0 (🔩) NUT AND BOLT -1F52A ; emoji ; L1 ; none ; j # V6.0 (🔪) HOCHO -1F52B ; emoji ; L1 ; none ; j # V6.0 (🔫) PISTOL -1F52C ; emoji ; L1 ; none ; x # V6.0 (🔬) MICROSCOPE -1F52D ; emoji ; L1 ; none ; x # V6.0 (🔭) TELESCOPE -1F52E ; emoji ; L1 ; none ; j # V6.0 (🔮) CRYSTAL BALL -1F52F ; emoji ; L1 ; none ; j # V6.0 (🔯) SIX POINTED STAR WITH MIDDLE DOT -1F530 ; emoji ; L1 ; none ; j # V6.0 (🔰) JAPANESE SYMBOL FOR BEGINNER -1F531 ; emoji ; L1 ; none ; j # V6.0 (🔱) TRIDENT EMBLEM -1F532 ; emoji ; L1 ; none ; j # V6.0 (🔲) BLACK SQUARE BUTTON -1F533 ; emoji ; L1 ; none ; j # V6.0 (🔳) WHITE SQUARE BUTTON -1F534 ; emoji ; L1 ; none ; j # V6.0 (🔴) LARGE RED CIRCLE -1F535 ; emoji ; L1 ; none ; j # V6.0 (🔵) LARGE BLUE CIRCLE -1F536 ; emoji ; L1 ; none ; j # V6.0 (🔶) LARGE ORANGE DIAMOND -1F537 ; emoji ; L1 ; none ; j # V6.0 (🔷) LARGE BLUE DIAMOND -1F538 ; emoji ; L1 ; none ; j # V6.0 (🔸) SMALL ORANGE DIAMOND -1F539 ; emoji ; L1 ; none ; j # V6.0 (🔹) SMALL BLUE DIAMOND -1F53A ; emoji ; L1 ; none ; j # V6.0 (🔺) UP-POINTING RED TRIANGLE -1F53B ; emoji ; L1 ; none ; j # V6.0 (🔻) DOWN-POINTING RED TRIANGLE -1F53C ; emoji ; L1 ; none ; j # V6.0 (🔼) UP-POINTING SMALL RED TRIANGLE -1F53D ; emoji ; L1 ; none ; j # V6.0 (🔽) DOWN-POINTING SMALL RED TRIANGLE -1F549 ; text ; L2 ; none ; w # V7.0 (🕉) OM SYMBOL -1F54A ; text ; L2 ; none ; w # V7.0 (🕊) DOVE OF PEACE -1F54B ; emoji ; L2 ; none ; x # V8.0 (🕋) KAABA -1F54C ; emoji ; L2 ; none ; x # V8.0 (🕌) MOSQUE -1F54D ; emoji ; L2 ; none ; x # V8.0 (🕍) SYNAGOGUE -1F54E ; emoji ; L2 ; none ; x # V8.0 (🕎) MENORAH WITH NINE BRANCHES -1F550 ; emoji ; L1 ; none ; j w # V6.0 (🕐) CLOCK FACE ONE OCLOCK -1F551 ; emoji ; L1 ; none ; j w # V6.0 (🕑) CLOCK FACE TWO OCLOCK -1F552 ; emoji ; L1 ; none ; j w # V6.0 (🕒) CLOCK FACE THREE OCLOCK -1F553 ; emoji ; L1 ; none ; j w # V6.0 (🕓) CLOCK FACE FOUR OCLOCK -1F554 ; emoji ; L1 ; none ; j w # V6.0 (🕔) CLOCK FACE FIVE OCLOCK -1F555 ; emoji ; L1 ; none ; j w # V6.0 (🕕) CLOCK FACE SIX OCLOCK -1F556 ; emoji ; L1 ; none ; j w # V6.0 (🕖) CLOCK FACE SEVEN OCLOCK -1F557 ; emoji ; L1 ; none ; j w # V6.0 (🕗) CLOCK FACE EIGHT OCLOCK -1F558 ; emoji ; L1 ; none ; j w # V6.0 (🕘) CLOCK FACE NINE OCLOCK -1F559 ; emoji ; L1 ; none ; j w # V6.0 (🕙) CLOCK FACE TEN OCLOCK -1F55A ; emoji ; L1 ; none ; j w # V6.0 (🕚) CLOCK FACE ELEVEN OCLOCK -1F55B ; emoji ; L1 ; none ; j w # V6.0 (🕛) CLOCK FACE TWELVE OCLOCK -1F55C ; emoji ; L1 ; none ; w # V6.0 (🕜) CLOCK FACE ONE-THIRTY -1F55D ; emoji ; L1 ; none ; w # V6.0 (🕝) CLOCK FACE TWO-THIRTY -1F55E ; emoji ; L1 ; none ; w # V6.0 (🕞) CLOCK FACE THREE-THIRTY -1F55F ; emoji ; L1 ; none ; w # V6.0 (🕟) CLOCK FACE FOUR-THIRTY -1F560 ; emoji ; L1 ; none ; w # V6.0 (🕠) CLOCK FACE FIVE-THIRTY -1F561 ; emoji ; L1 ; none ; w # V6.0 (🕡) CLOCK FACE SIX-THIRTY -1F562 ; emoji ; L1 ; none ; w # V6.0 (🕢) CLOCK FACE SEVEN-THIRTY -1F563 ; emoji ; L1 ; none ; w # V6.0 (🕣) CLOCK FACE EIGHT-THIRTY -1F564 ; emoji ; L1 ; none ; w # V6.0 (🕤) CLOCK FACE NINE-THIRTY -1F565 ; emoji ; L1 ; none ; w # V6.0 (🕥) CLOCK FACE TEN-THIRTY -1F566 ; emoji ; L1 ; none ; w # V6.0 (🕦) CLOCK FACE ELEVEN-THIRTY -1F567 ; emoji ; L1 ; none ; w # V6.0 (🕧) CLOCK FACE TWELVE-THIRTY -1F56F ; text ; L2 ; none ; w # V7.0 (🕯) CANDLE -1F570 ; text ; L2 ; none ; w # V7.0 (🕰) MANTELPIECE CLOCK -1F573 ; text ; L2 ; none ; w # V7.0 (🕳) HOLE -1F574 ; text ; L2 ; none ; w # V7.0 (🕴) MAN IN BUSINESS SUIT LEVITATING -1F575 ; text ; L2 ; none ; w # V7.0 (🕵) SLEUTH OR SPY -1F576 ; text ; L2 ; none ; w # V7.0 (🕶) DARK SUNGLASSES -1F577 ; text ; L2 ; none ; w # V7.0 (🕷) SPIDER -1F578 ; text ; L2 ; none ; w # V7.0 (🕸) SPIDER WEB -1F579 ; text ; L2 ; none ; w # V7.0 (🕹) JOYSTICK -1F587 ; text ; L2 ; none ; w # V7.0 (🖇) LINKED PAPERCLIPS -1F58A ; text ; L2 ; none ; w # V7.0 (🖊) LOWER LEFT BALLPOINT PEN -1F58B ; text ; L2 ; none ; w # V7.0 (🖋) LOWER LEFT FOUNTAIN PEN -1F58C ; text ; L2 ; none ; w # V7.0 (🖌) LOWER LEFT PAINTBRUSH -1F58D ; text ; L2 ; none ; w # V7.0 (🖍) LOWER LEFT CRAYON -1F590 ; text ; L2 ; secondary ; w # V7.0 (🖐) RAISED HAND WITH FINGERS SPLAYED -1F595 ; emoji ; L2 ; secondary ; x # V7.0 (🖕) REVERSED HAND WITH MIDDLE FINGER EXTENDED -1F596 ; emoji ; L2 ; secondary ; x # V7.0 (🖖) RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS -1F5A5 ; text ; L2 ; none ; w # V7.0 (🖥) DESKTOP COMPUTER -1F5A8 ; text ; L2 ; none ; w # V7.0 (🖨) PRINTER -1F5B1 ; text ; L2 ; none ; w # V7.0 (🖱) THREE BUTTON MOUSE -1F5B2 ; text ; L2 ; none ; w # V7.0 (🖲) TRACKBALL -1F5BC ; text ; L2 ; none ; w # V7.0 (🖼) FRAME WITH PICTURE -1F5C2 ; text ; L2 ; none ; w # V7.0 (🗂) CARD INDEX DIVIDERS -1F5C3 ; text ; L2 ; none ; w # V7.0 (🗃) CARD FILE BOX -1F5C4 ; text ; L2 ; none ; w # V7.0 (🗄) FILE CABINET -1F5D1 ; text ; L2 ; none ; w # V7.0 (🗑) WASTEBASKET -1F5D2 ; text ; L2 ; none ; w # V7.0 (🗒) SPIRAL NOTE PAD -1F5D3 ; text ; L2 ; none ; w # V7.0 (🗓) SPIRAL CALENDAR PAD -1F5DC ; text ; L2 ; none ; w # V7.0 (🗜) COMPRESSION -1F5DD ; text ; L2 ; none ; w # V7.0 (🗝) OLD KEY -1F5DE ; text ; L2 ; none ; w # V7.0 (🗞) ROLLED-UP NEWSPAPER -1F5E1 ; text ; L2 ; none ; w # V7.0 (🗡) DAGGER KNIFE -1F5E3 ; text ; L2 ; none ; w # V7.0 (🗣) SPEAKING HEAD IN SILHOUETTE -1F5EF ; text ; L2 ; none ; w # V7.0 (🗯) RIGHT ANGER BUBBLE -1F5F3 ; text ; L2 ; none ; w # V7.0 (🗳) BALLOT BOX WITH BALLOT -1F5FA ; text ; L2 ; none ; w # V7.0 (🗺) WORLD MAP -1F5FB ; emoji ; L1 ; none ; j # V6.0 (🗻) MOUNT FUJI -1F5FC ; emoji ; L1 ; none ; j # V6.0 (🗼) TOKYO TOWER -1F5FD ; emoji ; L1 ; none ; j # V6.0 (🗽) STATUE OF LIBERTY -1F5FE ; emoji ; L1 ; none ; j # V6.0 (🗾) SILHOUETTE OF JAPAN -1F5FF ; emoji ; L1 ; none ; j # V6.0 (🗿) MOYAI -1F600 ; emoji ; L1 ; secondary ; x # V6.1 (😀) GRINNING FACE -1F601 ; emoji ; L1 ; secondary ; j # V6.0 (😁) GRINNING FACE WITH SMILING EYES -1F602 ; emoji ; L1 ; secondary ; j # V6.0 (😂) FACE WITH TEARS OF JOY -1F603 ; emoji ; L1 ; secondary ; j # V6.0 (😃) SMILING FACE WITH OPEN MOUTH -1F604 ; emoji ; L1 ; secondary ; j # V6.0 (😄) SMILING FACE WITH OPEN MOUTH AND SMILING EYES -1F605 ; emoji ; L1 ; secondary ; j # V6.0 (😅) SMILING FACE WITH OPEN MOUTH AND COLD SWEAT -1F606 ; emoji ; L1 ; secondary ; j # V6.0 (😆) SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES -1F607 ; emoji ; L1 ; secondary ; x # V6.0 (😇) SMILING FACE WITH HALO -1F608 ; emoji ; L1 ; secondary ; x # V6.0 (😈) SMILING FACE WITH HORNS -1F609 ; emoji ; L1 ; secondary ; j # V6.0 (😉) WINKING FACE -1F60A ; emoji ; L1 ; secondary ; j # V6.0 (😊) SMILING FACE WITH SMILING EYES -1F60B ; emoji ; L1 ; secondary ; j # V6.0 (😋) FACE SAVOURING DELICIOUS FOOD -1F60C ; emoji ; L1 ; secondary ; j # V6.0 (😌) RELIEVED FACE -1F60D ; emoji ; L1 ; secondary ; j # V6.0 (😍) SMILING FACE WITH HEART-SHAPED EYES -1F60E ; emoji ; L1 ; secondary ; x # V6.0 (😎) SMILING FACE WITH SUNGLASSES -1F60F ; emoji ; L1 ; secondary ; j # V6.0 (😏) SMIRKING FACE -1F610 ; emoji ; L1 ; secondary ; w # V6.0 (😐) NEUTRAL FACE -1F611 ; emoji ; L1 ; secondary ; x # V6.1 (😑) EXPRESSIONLESS FACE -1F612 ; emoji ; L1 ; secondary ; j # V6.0 (😒) UNAMUSED FACE -1F613 ; emoji ; L1 ; secondary ; j # V6.0 (😓) FACE WITH COLD SWEAT -1F614 ; emoji ; L1 ; secondary ; j # V6.0 (😔) PENSIVE FACE -1F615 ; emoji ; L1 ; secondary ; x # V6.1 (😕) CONFUSED FACE -1F616 ; emoji ; L1 ; secondary ; j # V6.0 (😖) CONFOUNDED FACE -1F617 ; emoji ; L1 ; secondary ; x # V6.1 (😗) KISSING FACE -1F618 ; emoji ; L1 ; secondary ; j # V6.0 (😘) FACE THROWING A KISS -1F619 ; emoji ; L1 ; secondary ; x # V6.1 (😙) KISSING FACE WITH SMILING EYES -1F61A ; emoji ; L1 ; secondary ; j # V6.0 (😚) KISSING FACE WITH CLOSED EYES -1F61B ; emoji ; L1 ; secondary ; x # V6.1 (😛) FACE WITH STUCK-OUT TONGUE -1F61C ; emoji ; L1 ; secondary ; j # V6.0 (😜) FACE WITH STUCK-OUT TONGUE AND WINKING EYE -1F61D ; emoji ; L1 ; secondary ; j # V6.0 (😝) FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES -1F61E ; emoji ; L1 ; secondary ; j # V6.0 (😞) DISAPPOINTED FACE -1F61F ; emoji ; L1 ; secondary ; x # V6.1 (😟) WORRIED FACE -1F620 ; emoji ; L1 ; secondary ; j # V6.0 (😠) ANGRY FACE -1F621 ; emoji ; L1 ; secondary ; j # V6.0 (😡) POUTING FACE -1F622 ; emoji ; L1 ; secondary ; j # V6.0 (😢) CRYING FACE -1F623 ; emoji ; L1 ; secondary ; j # V6.0 (😣) PERSEVERING FACE -1F624 ; emoji ; L1 ; secondary ; j # V6.0 (😤) FACE WITH LOOK OF TRIUMPH -1F625 ; emoji ; L1 ; secondary ; j # V6.0 (😥) DISAPPOINTED BUT RELIEVED FACE -1F626 ; emoji ; L1 ; secondary ; x # V6.1 (😦) FROWNING FACE WITH OPEN MOUTH -1F627 ; emoji ; L1 ; secondary ; x # V6.1 (😧) ANGUISHED FACE -1F628 ; emoji ; L1 ; secondary ; j # V6.0 (😨) FEARFUL FACE -1F629 ; emoji ; L1 ; secondary ; j # V6.0 (😩) WEARY FACE -1F62A ; emoji ; L1 ; secondary ; j # V6.0 (😪) SLEEPY FACE -1F62B ; emoji ; L1 ; secondary ; j # V6.0 (😫) TIRED FACE -1F62C ; emoji ; L1 ; secondary ; x # V6.1 (😬) GRIMACING FACE -1F62D ; emoji ; L1 ; secondary ; j # V6.0 (😭) LOUDLY CRYING FACE -1F62E ; emoji ; L1 ; secondary ; x # V6.1 (😮) FACE WITH OPEN MOUTH -1F62F ; emoji ; L1 ; secondary ; x # V6.1 (😯) HUSHED FACE -1F630 ; emoji ; L1 ; secondary ; j # V6.0 (😰) FACE WITH OPEN MOUTH AND COLD SWEAT -1F631 ; emoji ; L1 ; secondary ; j # V6.0 (😱) FACE SCREAMING IN FEAR -1F632 ; emoji ; L1 ; secondary ; j # V6.0 (😲) ASTONISHED FACE -1F633 ; emoji ; L1 ; secondary ; j # V6.0 (😳) FLUSHED FACE -1F634 ; emoji ; L1 ; secondary ; x # V6.1 (😴) SLEEPING FACE -1F635 ; emoji ; L1 ; secondary ; j # V6.0 (😵) DIZZY FACE -1F636 ; emoji ; L1 ; secondary ; x # V6.0 (😶) FACE WITHOUT MOUTH -1F637 ; emoji ; L1 ; secondary ; j # V6.0 (😷) FACE WITH MEDICAL MASK -1F638 ; emoji ; L1 ; none ; j # V6.0 (😸) GRINNING CAT FACE WITH SMILING EYES -1F639 ; emoji ; L1 ; none ; j # V6.0 (😹) CAT FACE WITH TEARS OF JOY -1F63A ; emoji ; L1 ; none ; j # V6.0 (😺) SMILING CAT FACE WITH OPEN MOUTH -1F63B ; emoji ; L1 ; none ; j # V6.0 (😻) SMILING CAT FACE WITH HEART-SHAPED EYES -1F63C ; emoji ; L1 ; none ; j # V6.0 (😼) CAT FACE WITH WRY SMILE -1F63D ; emoji ; L1 ; none ; j # V6.0 (😽) KISSING CAT FACE WITH CLOSED EYES -1F63E ; emoji ; L1 ; none ; j # V6.0 (😾) POUTING CAT FACE -1F63F ; emoji ; L1 ; none ; j # V6.0 (😿) CRYING CAT FACE -1F640 ; emoji ; L1 ; none ; j # V6.0 (🙀) WEARY CAT FACE -1F641 ; emoji ; L2 ; secondary ; x # V7.0 (🙁) SLIGHTLY FROWNING FACE -1F642 ; emoji ; L2 ; secondary ; x # V7.0 (🙂) SLIGHTLY SMILING FACE -1F643 ; emoji ; L2 ; secondary ; x # V8.0 (🙃) UPSIDE-DOWN FACE -1F644 ; emoji ; L2 ; secondary ; x # V8.0 (🙄) FACE WITH ROLLING EYES -1F645 ; emoji ; L1 ; primary ; j # V6.0 (🙅) FACE WITH NO GOOD GESTURE -1F646 ; emoji ; L1 ; primary ; j # V6.0 (🙆) FACE WITH OK GESTURE -1F647 ; emoji ; L1 ; primary ; j # V6.0 (🙇) PERSON BOWING DEEPLY -1F648 ; emoji ; L1 ; none ; j # V6.0 (🙈) SEE-NO-EVIL MONKEY -1F649 ; emoji ; L1 ; none ; j # V6.0 (🙉) HEAR-NO-EVIL MONKEY -1F64A ; emoji ; L1 ; none ; j # V6.0 (🙊) SPEAK-NO-EVIL MONKEY -1F64B ; emoji ; L1 ; primary ; j # V6.0 (🙋) HAPPY PERSON RAISING ONE HAND -1F64C ; emoji ; L1 ; secondary ; j # V6.0 (🙌) PERSON RAISING BOTH HANDS IN CELEBRATION -1F64D ; emoji ; L1 ; primary ; j # V6.0 (🙍) PERSON FROWNING -1F64E ; emoji ; L1 ; primary ; j # V6.0 (🙎) PERSON WITH POUTING FACE -1F64F ; emoji ; L1 ; secondary ; j # V6.0 (🙏) PERSON WITH FOLDED HANDS -1F680 ; emoji ; L1 ; none ; j # V6.0 (🚀) ROCKET -1F681 ; emoji ; L1 ; none ; x # V6.0 (🚁) HELICOPTER -1F682 ; emoji ; L1 ; none ; x # V6.0 (🚂) STEAM LOCOMOTIVE -1F683 ; emoji ; L1 ; none ; j # V6.0 (🚃) RAILWAY CAR -1F684 ; emoji ; L1 ; none ; j # V6.0 (🚄) HIGH-SPEED TRAIN -1F685 ; emoji ; L1 ; none ; j # V6.0 (🚅) HIGH-SPEED TRAIN WITH BULLET NOSE -1F686 ; emoji ; L1 ; none ; x # V6.0 (🚆) TRAIN -1F687 ; emoji ; L1 ; none ; j w # V6.0 (🚇) METRO -1F688 ; emoji ; L1 ; none ; x # V6.0 (🚈) LIGHT RAIL -1F689 ; emoji ; L1 ; none ; j # V6.0 (🚉) STATION -1F68A ; emoji ; L1 ; none ; x # V6.0 (🚊) TRAM -1F68B ; emoji ; L1 ; none ; x # V6.0 (🚋) TRAM CAR -1F68C ; emoji ; L1 ; none ; j # V6.0 (🚌) BUS -1F68D ; emoji ; L1 ; none ; w # V6.0 (🚍) ONCOMING BUS -1F68E ; emoji ; L1 ; none ; x # V6.0 (🚎) TROLLEYBUS -1F68F ; emoji ; L1 ; none ; j # V6.0 (🚏) BUS STOP -1F690 ; emoji ; L1 ; none ; x # V6.0 (🚐) MINIBUS -1F691 ; emoji ; L1 ; none ; j w # V6.0 (🚑) AMBULANCE -1F692 ; emoji ; L1 ; none ; j # V6.0 (🚒) FIRE ENGINE -1F693 ; emoji ; L1 ; none ; j # V6.0 (🚓) POLICE CAR -1F694 ; emoji ; L1 ; none ; w # V6.0 (🚔) ONCOMING POLICE CAR -1F695 ; emoji ; L1 ; none ; j # V6.0 (🚕) TAXI -1F696 ; emoji ; L1 ; none ; x # V6.0 (🚖) ONCOMING TAXI -1F697 ; emoji ; L1 ; none ; j # V6.0 (🚗) AUTOMOBILE -1F698 ; emoji ; L1 ; none ; w # V6.0 (🚘) ONCOMING AUTOMOBILE -1F699 ; emoji ; L1 ; none ; j # V6.0 (🚙) RECREATIONAL VEHICLE -1F69A ; emoji ; L1 ; none ; j # V6.0 (🚚) DELIVERY TRUCK -1F69B ; emoji ; L1 ; none ; x # V6.0 (🚛) ARTICULATED LORRY -1F69C ; emoji ; L1 ; none ; x # V6.0 (🚜) TRACTOR -1F69D ; emoji ; L1 ; none ; x # V6.0 (🚝) MONORAIL -1F69E ; emoji ; L1 ; none ; x # V6.0 (🚞) MOUNTAIN RAILWAY -1F69F ; emoji ; L1 ; none ; x # V6.0 (🚟) SUSPENSION RAILWAY -1F6A0 ; emoji ; L1 ; none ; x # V6.0 (🚠) MOUNTAIN CABLEWAY -1F6A1 ; emoji ; L1 ; none ; x # V6.0 (🚡) AERIAL TRAMWAY -1F6A2 ; emoji ; L1 ; none ; j # V6.0 (🚢) SHIP -1F6A3 ; emoji ; L1 ; secondary ; x # V6.0 (🚣) ROWBOAT -1F6A4 ; emoji ; L1 ; none ; j # V6.0 (🚤) SPEEDBOAT -1F6A5 ; emoji ; L1 ; none ; j # V6.0 (🚥) HORIZONTAL TRAFFIC LIGHT -1F6A6 ; emoji ; L1 ; none ; x # V6.0 (🚦) VERTICAL TRAFFIC LIGHT -1F6A7 ; emoji ; L1 ; none ; j # V6.0 (🚧) CONSTRUCTION SIGN -1F6A8 ; emoji ; L1 ; none ; j # V6.0 (🚨) POLICE CARS REVOLVING LIGHT -1F6A9 ; emoji ; L1 ; none ; j # V6.0 (🚩) TRIANGULAR FLAG ON POST -1F6AA ; emoji ; L1 ; none ; j # V6.0 (🚪) DOOR -1F6AB ; emoji ; L1 ; none ; j # V6.0 (🚫) NO ENTRY SIGN -1F6AC ; emoji ; L1 ; none ; j # V6.0 (🚬) SMOKING SYMBOL -1F6AD ; emoji ; L1 ; none ; j w # V6.0 (🚭) NO SMOKING SYMBOL -1F6AE ; emoji ; L1 ; none ; x # V6.0 (🚮) PUT LITTER IN ITS PLACE SYMBOL -1F6AF ; emoji ; L1 ; none ; x # V6.0 (🚯) DO NOT LITTER SYMBOL -1F6B0 ; emoji ; L1 ; none ; x # V6.0 (🚰) POTABLE WATER SYMBOL -1F6B1 ; emoji ; L1 ; none ; x # V6.0 (🚱) NON-POTABLE WATER SYMBOL -1F6B2 ; emoji ; L1 ; none ; j w # V6.0 (🚲) BICYCLE -1F6B3 ; emoji ; L1 ; none ; x # V6.0 (🚳) NO BICYCLES -1F6B4 ; emoji ; L1 ; secondary ; x # V6.0 (🚴) BICYCLIST -1F6B5 ; emoji ; L1 ; secondary ; x # V6.0 (🚵) MOUNTAIN BICYCLIST -1F6B6 ; emoji ; L1 ; secondary ; j # V6.0 (🚶) PEDESTRIAN -1F6B7 ; emoji ; L1 ; none ; x # V6.0 (🚷) NO PEDESTRIANS -1F6B8 ; emoji ; L1 ; none ; x # V6.0 (🚸) CHILDREN CROSSING -1F6B9 ; emoji ; L1 ; none ; j w # V6.0 (🚹) MENS SYMBOL -1F6BA ; emoji ; L1 ; none ; j w # V6.0 (🚺) WOMENS SYMBOL -1F6BB ; emoji ; L1 ; none ; j # V6.0 (🚻) RESTROOM -1F6BC ; emoji ; L1 ; none ; j w # V6.0 (🚼) BABY SYMBOL -1F6BD ; emoji ; L1 ; none ; j # V6.0 (🚽) TOILET -1F6BE ; emoji ; L1 ; none ; j # V6.0 (🚾) WATER CLOSET -1F6BF ; emoji ; L1 ; none ; x # V6.0 (🚿) SHOWER -1F6C0 ; emoji ; L1 ; secondary ; j # V6.0 (🛀) BATH -1F6C1 ; emoji ; L1 ; none ; x # V6.0 (🛁) BATHTUB -1F6C2 ; emoji ; L1 ; none ; x # V6.0 (🛂) PASSPORT CONTROL -1F6C3 ; emoji ; L1 ; none ; x # V6.0 (🛃) CUSTOMS -1F6C4 ; emoji ; L1 ; none ; x # V6.0 (🛄) BAGGAGE CLAIM -1F6C5 ; emoji ; L1 ; none ; x # V6.0 (🛅) LEFT LUGGAGE -1F6CB ; text ; L2 ; none ; w # V7.0 (🛋) COUCH AND LAMP -1F6CC ; emoji ; L2 ; none ; x # V7.0 (🛌) SLEEPING ACCOMMODATION -1F6CD ; text ; L2 ; none ; w # V7.0 (🛍) SHOPPING BAGS -1F6CE ; text ; L2 ; none ; w # V7.0 (🛎) BELLHOP BELL -1F6CF ; text ; L2 ; none ; w # V7.0 (🛏) BED -1F6D0 ; emoji ; L2 ; none ; x # V8.0 (🛐) PLACE OF WORSHIP -1F6E0 ; text ; L2 ; none ; w # V7.0 (🛠) HAMMER AND WRENCH -1F6E1 ; text ; L2 ; none ; w # V7.0 (🛡) SHIELD -1F6E2 ; text ; L2 ; none ; w # V7.0 (🛢) OIL DRUM -1F6E3 ; text ; L2 ; none ; w # V7.0 (🛣) MOTORWAY -1F6E4 ; text ; L2 ; none ; w # V7.0 (🛤) RAILWAY TRACK -1F6E5 ; text ; L2 ; none ; w # V7.0 (🛥) MOTOR BOAT -1F6E9 ; text ; L2 ; none ; w # V7.0 (🛩) SMALL AIRPLANE -1F6EB ; emoji ; L2 ; none ; x # V7.0 (🛫) AIRPLANE DEPARTURE -1F6EC ; emoji ; L2 ; none ; x # V7.0 (🛬) AIRPLANE ARRIVING -1F6F0 ; text ; L2 ; none ; w # V7.0 (🛰) SATELLITE -1F6F3 ; text ; L2 ; none ; w # V7.0 (🛳) PASSENGER SHIP -1F910 ; emoji ; L2 ; secondary ; x # V8.0 (🤐) ZIPPER-MOUTH FACE -1F911 ; emoji ; L2 ; secondary ; x # V8.0 (🤑) MONEY-MOUTH FACE -1F912 ; emoji ; L2 ; secondary ; x # V8.0 (🤒) FACE WITH THERMOMETER -1F913 ; emoji ; L2 ; secondary ; x # V8.0 (🤓) NERD FACE -1F914 ; emoji ; L2 ; secondary ; x # V8.0 (🤔) THINKING FACE -1F915 ; emoji ; L2 ; secondary ; x # V8.0 (🤕) FACE WITH HEAD-BANDAGE -1F916 ; emoji ; L2 ; none ; x # V8.0 (🤖) ROBOT FACE -1F917 ; emoji ; L2 ; secondary ; x # V8.0 (🤗) HUGGING FACE -1F918 ; emoji ; L2 ; secondary ; x # V8.0 (🤘) SIGN OF THE HORNS -1F980 ; emoji ; L2 ; none ; x # V8.0 (🦀) CRAB -1F981 ; emoji ; L2 ; none ; x # V8.0 (🦁) LION FACE -1F982 ; emoji ; L2 ; none ; x # V8.0 (🦂) SCORPION -1F983 ; emoji ; L2 ; none ; x # V8.0 (🦃) TURKEY -1F984 ; emoji ; L2 ; none ; x # V8.0 (🦄) UNICORN FACE -1F9C0 ; emoji ; L2 ; none ; x # V8.0 (🧀) CHEESE WEDGE -0023 20E3 ; text ; L1 ; none ; j # V3.0 (#⃣) keycap NUMBER SIGN -002A 20E3 ; text ; L2 ; none ; x # V3.0 (*⃣) keycap ASTERISK -0030 20E3 ; text ; L1 ; none ; j # V3.0 (0⃣) keycap DIGIT ZERO -0031 20E3 ; text ; L1 ; none ; j # V3.0 (1⃣) keycap DIGIT ONE -0032 20E3 ; text ; L1 ; none ; j # V3.0 (2⃣) keycap DIGIT TWO -0033 20E3 ; text ; L1 ; none ; j # V3.0 (3⃣) keycap DIGIT THREE -0034 20E3 ; text ; L1 ; none ; j # V3.0 (4⃣) keycap DIGIT FOUR -0035 20E3 ; text ; L1 ; none ; j # V3.0 (5⃣) keycap DIGIT FIVE -0036 20E3 ; text ; L1 ; none ; j # V3.0 (6⃣) keycap DIGIT SIX -0037 20E3 ; text ; L1 ; none ; j # V3.0 (7⃣) keycap DIGIT SEVEN -0038 20E3 ; text ; L1 ; none ; j # V3.0 (8⃣) keycap DIGIT EIGHT -0039 20E3 ; text ; L1 ; none ; j # V3.0 (9⃣) keycap DIGIT NINE -1F1E6 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇨) flag for Ascension Island -1F1E6 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇩) flag for Andorra -1F1E6 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇦🇪) flag for United Arab Emirates -1F1E6 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇦🇫) flag for Afghanistan -1F1E6 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇦🇬) flag for Antigua & Barbuda -1F1E6 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇦🇮) flag for Anguilla -1F1E6 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇦🇱) flag for Albania -1F1E6 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇦🇲) flag for Armenia -1F1E6 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇦🇴) flag for Angola -1F1E6 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇦🇶) flag for Antarctica -1F1E6 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇦🇷) flag for Argentina -1F1E6 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇸) flag for American Samoa -1F1E6 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇹) flag for Austria -1F1E6 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇦🇺) flag for Australia -1F1E6 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇦🇼) flag for Aruba -1F1E6 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇦🇽) flag for Åland Islands -1F1E6 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇦🇿) flag for Azerbaijan -1F1E7 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇦) flag for Bosnia & Herzegovina -1F1E7 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇧) flag for Barbados -1F1E7 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇩) flag for Bangladesh -1F1E7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇧🇪) flag for Belgium -1F1E7 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇧🇫) flag for Burkina Faso -1F1E7 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇧🇬) flag for Bulgaria -1F1E7 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇧🇭) flag for Bahrain -1F1E7 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇧🇮) flag for Burundi -1F1E7 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇧🇯) flag for Benin -1F1E7 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇧🇱) flag for St. Barthélemy -1F1E7 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇧🇲) flag for Bermuda -1F1E7 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇧🇳) flag for Brunei -1F1E7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇧🇴) flag for Bolivia -1F1E7 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇶) flag for Caribbean Netherlands -1F1E7 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇷) flag for Brazil -1F1E7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇧🇸) flag for Bahamas -1F1E7 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇹) flag for Bhutan -1F1E7 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇧🇻) flag for Bouvet Island -1F1E7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇧🇼) flag for Botswana -1F1E7 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇧🇾) flag for Belarus -1F1E7 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇧🇿) flag for Belize -1F1E8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇨🇦) flag for Canada -1F1E8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇨🇨) flag for Cocos Islands -1F1E8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇨🇩) flag for Congo - Kinshasa -1F1E8 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇨🇫) flag for Central African Republic -1F1E8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇨🇬) flag for Congo - Brazzaville -1F1E8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇨🇭) flag for Switzerland -1F1E8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇨🇮) flag for Côte d’Ivoire -1F1E8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇨🇰) flag for Cook Islands -1F1E8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇨🇱) flag for Chile -1F1E8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇨🇲) flag for Cameroon -1F1E8 1F1F3 ; emoji ; L1 ; none ; j # V6.0 (🇨🇳) flag for China -1F1E8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇨🇴) flag for Colombia -1F1E8 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇨🇵) flag for Clipperton Island -1F1E8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇨🇷) flag for Costa Rica -1F1E8 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇨🇺) flag for Cuba -1F1E8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇨🇻) flag for Cape Verde -1F1E8 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇨🇼) flag for Curaçao -1F1E8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇨🇽) flag for Christmas Island -1F1E8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇨🇾) flag for Cyprus -1F1E8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇨🇿) flag for Czech Republic -1F1E9 1F1EA ; emoji ; L1 ; none ; j # V6.0 (🇩🇪) flag for Germany -1F1E9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇩🇬) flag for Diego Garcia -1F1E9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇩🇯) flag for Djibouti -1F1E9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇩🇰) flag for Denmark -1F1E9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇩🇲) flag for Dominica -1F1E9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇩🇴) flag for Dominican Republic -1F1E9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇩🇿) flag for Algeria -1F1EA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇪🇦) flag for Ceuta & Melilla -1F1EA 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇪🇨) flag for Ecuador -1F1EA 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇪🇪) flag for Estonia -1F1EA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇪🇬) flag for Egypt -1F1EA 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇪🇭) flag for Western Sahara -1F1EA 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇪🇷) flag for Eritrea -1F1EA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇪🇸) flag for Spain -1F1EA 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇪🇹) flag for Ethiopia -1F1EA 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇪🇺) flag for European Union -1F1EB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇫🇮) flag for Finland -1F1EB 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇫🇯) flag for Fiji -1F1EB 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇫🇰) flag for Falkland Islands -1F1EB 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇫🇲) flag for Micronesia -1F1EB 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇫🇴) flag for Faroe Islands -1F1EB 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇫🇷) flag for France -1F1EC 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇦) flag for Gabon -1F1EC 1F1E7 ; emoji ; L1 ; none ; j # V6.0 (🇬🇧) flag for United Kingdom -1F1EC 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇩) flag for Grenada -1F1EC 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇬🇪) flag for Georgia -1F1EC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇬🇫) flag for French Guiana -1F1EC 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇬🇬) flag for Guernsey -1F1EC 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇬🇭) flag for Ghana -1F1EC 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇬🇮) flag for Gibraltar -1F1EC 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇬🇱) flag for Greenland -1F1EC 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇬🇲) flag for Gambia -1F1EC 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇬🇳) flag for Guinea -1F1EC 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇬🇵) flag for Guadeloupe -1F1EC 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇶) flag for Equatorial Guinea -1F1EC 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇬🇷) flag for Greece -1F1EC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇬🇸) flag for South Georgia & South Sandwich Islands -1F1EC 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇹) flag for Guatemala -1F1EC 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇬🇺) flag for Guam -1F1EC 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇬🇼) flag for Guinea-Bissau -1F1EC 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇬🇾) flag for Guyana -1F1ED 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇭🇰) flag for Hong Kong -1F1ED 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇭🇲) flag for Heard & McDonald Islands -1F1ED 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇭🇳) flag for Honduras -1F1ED 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇭🇷) flag for Croatia -1F1ED 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇭🇹) flag for Haiti -1F1ED 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇭🇺) flag for Hungary -1F1EE 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇨) flag for Canary Islands -1F1EE 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇮🇩) flag for Indonesia -1F1EE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇮🇪) flag for Ireland -1F1EE 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇮🇱) flag for Israel -1F1EE 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇮🇲) flag for Isle of Man -1F1EE 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇮🇳) flag for India -1F1EE 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇮🇴) flag for British Indian Ocean Territory -1F1EE 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇮🇶) flag for Iraq -1F1EE 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇮🇷) flag for Iran -1F1EE 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇸) flag for Iceland -1F1EE 1F1F9 ; emoji ; L1 ; none ; j # V6.0 (🇮🇹) flag for Italy -1F1EF 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇯🇪) flag for Jersey -1F1EF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇯🇲) flag for Jamaica -1F1EF 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇯🇴) flag for Jordan -1F1EF 1F1F5 ; emoji ; L1 ; none ; j # V6.0 (🇯🇵) flag for Japan -1F1F0 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇰🇪) flag for Kenya -1F1F0 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇰🇬) flag for Kyrgyzstan -1F1F0 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇰🇭) flag for Cambodia -1F1F0 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇰🇮) flag for Kiribati -1F1F0 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇰🇲) flag for Comoros -1F1F0 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇰🇳) flag for St. Kitts & Nevis -1F1F0 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇰🇵) flag for North Korea -1F1F0 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇰🇷) flag for South Korea -1F1F0 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇰🇼) flag for Kuwait -1F1F0 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇰🇾) flag for Cayman Islands -1F1F0 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇰🇿) flag for Kazakhstan -1F1F1 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇱🇦) flag for Laos -1F1F1 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇧) flag for Lebanon -1F1F1 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇨) flag for St. Lucia -1F1F1 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇱🇮) flag for Liechtenstein -1F1F1 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇱🇰) flag for Sri Lanka -1F1F1 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇷) flag for Liberia -1F1F1 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇸) flag for Lesotho -1F1F1 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇱🇹) flag for Lithuania -1F1F1 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇱🇺) flag for Luxembourg -1F1F1 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇱🇻) flag for Latvia -1F1F1 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇱🇾) flag for Libya -1F1F2 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇦) flag for Morocco -1F1F2 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇨) flag for Monaco -1F1F2 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇩) flag for Moldova -1F1F2 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇲🇪) flag for Montenegro -1F1F2 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇲🇫) flag for St. Martin -1F1F2 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇲🇬) flag for Madagascar -1F1F2 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇲🇭) flag for Marshall Islands -1F1F2 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇲🇰) flag for Macedonia -1F1F2 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇲🇱) flag for Mali -1F1F2 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇲🇲) flag for Myanmar -1F1F2 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇲🇳) flag for Mongolia -1F1F2 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇲🇴) flag for Macau -1F1F2 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇲🇵) flag for Northern Mariana Islands -1F1F2 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇶) flag for Martinique -1F1F2 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇲🇷) flag for Mauritania -1F1F2 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇸) flag for Montserrat -1F1F2 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇹) flag for Malta -1F1F2 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇲🇺) flag for Mauritius -1F1F2 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇲🇻) flag for Maldives -1F1F2 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇲🇼) flag for Malawi -1F1F2 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇲🇽) flag for Mexico -1F1F2 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇲🇾) flag for Malaysia -1F1F2 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇲🇿) flag for Mozambique -1F1F3 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇳🇦) flag for Namibia -1F1F3 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇳🇨) flag for New Caledonia -1F1F3 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇳🇪) flag for Niger -1F1F3 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇳🇫) flag for Norfolk Island -1F1F3 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇳🇬) flag for Nigeria -1F1F3 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇳🇮) flag for Nicaragua -1F1F3 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇳🇱) flag for Netherlands -1F1F3 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇳🇴) flag for Norway -1F1F3 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇳🇵) flag for Nepal -1F1F3 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇳🇷) flag for Nauru -1F1F3 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇳🇺) flag for Niue -1F1F3 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇳🇿) flag for New Zealand -1F1F4 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇴🇲) flag for Oman -1F1F5 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇵🇦) flag for Panama -1F1F5 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇵🇪) flag for Peru -1F1F5 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇵🇫) flag for French Polynesia -1F1F5 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇵🇬) flag for Papua New Guinea -1F1F5 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇵🇭) flag for Philippines -1F1F5 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇵🇰) flag for Pakistan -1F1F5 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇵🇱) flag for Poland -1F1F5 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇵🇲) flag for St. Pierre & Miquelon -1F1F5 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇵🇳) flag for Pitcairn Islands -1F1F5 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇵🇷) flag for Puerto Rico -1F1F5 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇵🇸) flag for Palestinian Territories -1F1F5 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇵🇹) flag for Portugal -1F1F5 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇵🇼) flag for Palau -1F1F5 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇵🇾) flag for Paraguay -1F1F6 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇶🇦) flag for Qatar -1F1F7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇷🇪) flag for Réunion -1F1F7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇷🇴) flag for Romania -1F1F7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇷🇸) flag for Serbia -1F1F7 1F1FA ; emoji ; L1 ; none ; j # V6.0 (🇷🇺) flag for Russia -1F1F7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇷🇼) flag for Rwanda -1F1F8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇸🇦) flag for Saudi Arabia -1F1F8 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇧) flag for Solomon Islands -1F1F8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇨) flag for Seychelles -1F1F8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇩) flag for Sudan -1F1F8 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇸🇪) flag for Sweden -1F1F8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇸🇬) flag for Singapore -1F1F8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇸🇭) flag for St. Helena -1F1F8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇸🇮) flag for Slovenia -1F1F8 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇸🇯) flag for Svalbard & Jan Mayen -1F1F8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇸🇰) flag for Slovakia -1F1F8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇸🇱) flag for Sierra Leone -1F1F8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇸🇲) flag for San Marino -1F1F8 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇸🇳) flag for Senegal -1F1F8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇸🇴) flag for Somalia -1F1F8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇷) flag for Suriname -1F1F8 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇸) flag for South Sudan -1F1F8 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇹) flag for São Tomé & Príncipe -1F1F8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇸🇻) flag for El Salvador -1F1F8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇸🇽) flag for Sint Maarten -1F1F8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇸🇾) flag for Syria -1F1F8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇸🇿) flag for Swaziland -1F1F9 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇹🇦) flag for Tristan da Cunha -1F1F9 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇹🇨) flag for Turks & Caicos Islands -1F1F9 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇩) flag for Chad -1F1F9 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇹🇫) flag for French Southern Territories -1F1F9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇹🇬) flag for Togo -1F1F9 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇹🇭) flag for Thailand -1F1F9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇹🇯) flag for Tajikistan -1F1F9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇹🇰) flag for Tokelau -1F1F9 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇹🇱) flag for Timor-Leste -1F1F9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇹🇲) flag for Turkmenistan -1F1F9 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇹🇳) flag for Tunisia -1F1F9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇹🇴) flag for Tonga -1F1F9 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇹🇷) flag for Turkey -1F1F9 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇹) flag for Trinidad & Tobago -1F1F9 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇹🇻) flag for Tuvalu -1F1F9 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇹🇼) flag for Taiwan -1F1F9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇹🇿) flag for Tanzania -1F1FA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇺🇦) flag for Ukraine -1F1FA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇺🇬) flag for Uganda -1F1FA 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇺🇲) flag for U.S. Outlying Islands -1F1FA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇺🇸) flag for United States -1F1FA 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇺🇾) flag for Uruguay -1F1FA 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇺🇿) flag for Uzbekistan -1F1FB 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇻🇦) flag for Vatican City -1F1FB 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇻🇨) flag for St. Vincent & Grenadines -1F1FB 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇻🇪) flag for Venezuela -1F1FB 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇻🇬) flag for British Virgin Islands -1F1FB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇻🇮) flag for U.S. Virgin Islands -1F1FB 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇻🇳) flag for Vietnam -1F1FB 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇻🇺) flag for Vanuatu -1F1FC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇼🇫) flag for Wallis & Futuna -1F1FC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇼🇸) flag for Samoa -1F1FD 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇽🇰) flag for Kosovo -1F1FE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇾🇪) flag for Yemen -1F1FE 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇾🇹) flag for Mayotte -1F1FF 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇿🇦) flag for South Africa -1F1FF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇿🇲) flag for Zambia -1F1FF 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇿🇼) flag for Zimbabwe +# This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed. +# Format: code points; status # emoji name +# Code points — list of one or more hex code points, separated by spaces +# Status +# component — an Emoji_Component, +# excluding Regional_Indicators, ASCII, and non-Emoji. +# fully-qualified — a fully-qualified emoji (see ED-18 in UTS #51), +# excluding Emoji_Component +# minimally-qualified — a minimally-qualified emoji (see ED-18a in UTS #51) +# unqualified — a unqualified emoji (See ED-19 in UTS #51) +# Notes: +# • This includes the emoji components that need emoji presentation (skin tone and hair) +# when isolated, but omits the components that need not have an emoji +# presentation when isolated. +# • The RGI set is covered by the listed fully-qualified emoji. +# • The listed minimally-qualified and unqualified cover all cases where an +# element of the RGI set is missing one or more emoji presentation selectors. +# • The file is in CLDR order, not codepoint order. This is recommended (but not required!) for keyboard palettes. +# • The groups and subgroups are illustrative. See the Emoji Order chart for more information. + + +# group: Smileys & Emotion + +# subgroup: face-smiling +1F600 ; fully-qualified # 😀 grinning face +1F603 ; fully-qualified # 😃 grinning face with big eyes +1F604 ; fully-qualified # 😄 grinning face with smiling eyes +1F601 ; fully-qualified # 😁 beaming face with smiling eyes +1F606 ; fully-qualified # 😆 grinning squinting face +1F605 ; fully-qualified # 😅 grinning face with sweat +1F923 ; fully-qualified # 🤣 rolling on the floor laughing +1F602 ; fully-qualified # 😂 face with tears of joy +1F642 ; fully-qualified # 🙂 slightly smiling face +1F643 ; fully-qualified # 🙃 upside-down face +1F609 ; fully-qualified # 😉 winking face +1F60A ; fully-qualified # 😊 smiling face with smiling eyes +1F607 ; fully-qualified # 😇 smiling face with halo + +# subgroup: face-affection +1F970 ; fully-qualified # 🥰 smiling face with hearts +1F60D ; fully-qualified # 😍 smiling face with heart-eyes +1F929 ; fully-qualified # 🤩 star-struck +1F618 ; fully-qualified # 😘 face blowing a kiss +1F617 ; fully-qualified # 😗 kissing face +263A FE0F ; fully-qualified # ☺️ smiling face +263A ; unqualified # ☺ smiling face +1F61A ; fully-qualified # 😚 kissing face with closed eyes +1F619 ; fully-qualified # 😙 kissing face with smiling eyes + +# subgroup: face-tongue +1F60B ; fully-qualified # 😋 face savoring food +1F61B ; fully-qualified # 😛 face with tongue +1F61C ; fully-qualified # 😜 winking face with tongue +1F92A ; fully-qualified # 🤪 zany face +1F61D ; fully-qualified # 😝 squinting face with tongue +1F911 ; fully-qualified # 🤑 money-mouth face + +# subgroup: face-hand +1F917 ; fully-qualified # 🤗 hugging face +1F92D ; fully-qualified # 🤭 face with hand over mouth +1F92B ; fully-qualified # 🤫 shushing face +1F914 ; fully-qualified # 🤔 thinking face + +# subgroup: face-neutral-skeptical +1F910 ; fully-qualified # 🤐 zipper-mouth face +1F928 ; fully-qualified # 🤨 face with raised eyebrow +1F610 ; fully-qualified # 😐 neutral face +1F611 ; fully-qualified # 😑 expressionless face +1F636 ; fully-qualified # 😶 face without mouth +1F60F ; fully-qualified # 😏 smirking face +1F612 ; fully-qualified # 😒 unamused face +1F644 ; fully-qualified # 🙄 face with rolling eyes +1F62C ; fully-qualified # 😬 grimacing face +1F925 ; fully-qualified # 🤥 lying face + +# subgroup: face-sleepy +1F60C ; fully-qualified # 😌 relieved face +1F614 ; fully-qualified # 😔 pensive face +1F62A ; fully-qualified # 😪 sleepy face +1F924 ; fully-qualified # 🤤 drooling face +1F634 ; fully-qualified # 😴 sleeping face + +# subgroup: face-unwell +1F637 ; fully-qualified # 😷 face with medical mask +1F912 ; fully-qualified # 🤒 face with thermometer +1F915 ; fully-qualified # 🤕 face with head-bandage +1F922 ; fully-qualified # 🤢 nauseated face +1F92E ; fully-qualified # 🤮 face vomiting +1F927 ; fully-qualified # 🤧 sneezing face +1F975 ; fully-qualified # 🥵 hot face +1F976 ; fully-qualified # 🥶 cold face +1F974 ; fully-qualified # 🥴 woozy face +1F635 ; fully-qualified # 😵 dizzy face +1F92F ; fully-qualified # 🤯 exploding head + +# subgroup: face-hat +1F920 ; fully-qualified # 🤠 cowboy hat face +1F973 ; fully-qualified # 🥳 partying face + +# subgroup: face-glasses +1F60E ; fully-qualified # 😎 smiling face with sunglasses +1F913 ; fully-qualified # 🤓 nerd face +1F9D0 ; fully-qualified # 🧐 face with monocle + +# subgroup: face-concerned +1F615 ; fully-qualified # 😕 confused face +1F61F ; fully-qualified # 😟 worried face +1F641 ; fully-qualified # 🙁 slightly frowning face +2639 FE0F ; fully-qualified # ☹️ frowning face +2639 ; unqualified # ☹ frowning face +1F62E ; fully-qualified # 😮 face with open mouth +1F62F ; fully-qualified # 😯 hushed face +1F632 ; fully-qualified # 😲 astonished face +1F633 ; fully-qualified # 😳 flushed face +1F97A ; fully-qualified # 🥺 pleading face +1F626 ; fully-qualified # 😦 frowning face with open mouth +1F627 ; fully-qualified # 😧 anguished face +1F628 ; fully-qualified # 😨 fearful face +1F630 ; fully-qualified # 😰 anxious face with sweat +1F625 ; fully-qualified # 😥 sad but relieved face +1F622 ; fully-qualified # 😢 crying face +1F62D ; fully-qualified # 😭 loudly crying face +1F631 ; fully-qualified # 😱 face screaming in fear +1F616 ; fully-qualified # 😖 confounded face +1F623 ; fully-qualified # 😣 persevering face +1F61E ; fully-qualified # 😞 disappointed face +1F613 ; fully-qualified # 😓 downcast face with sweat +1F629 ; fully-qualified # 😩 weary face +1F62B ; fully-qualified # 😫 tired face +1F971 ; fully-qualified # 🥱 yawning face + +# subgroup: face-negative +1F624 ; fully-qualified # 😤 face with steam from nose +1F621 ; fully-qualified # 😡 pouting face +1F620 ; fully-qualified # 😠 angry face +1F92C ; fully-qualified # 🤬 face with symbols on mouth +1F608 ; fully-qualified # 😈 smiling face with horns +1F47F ; fully-qualified # 👿 angry face with horns +1F480 ; fully-qualified # 💀 skull +2620 FE0F ; fully-qualified # ☠️ skull and crossbones +2620 ; unqualified # ☠ skull and crossbones + +# subgroup: face-costume +1F4A9 ; fully-qualified # 💩 pile of poo +1F921 ; fully-qualified # 🤡 clown face +1F479 ; fully-qualified # 👹 ogre +1F47A ; fully-qualified # 👺 goblin +1F47B ; fully-qualified # 👻 ghost +1F47D ; fully-qualified # 👽 alien +1F47E ; fully-qualified # 👾 alien monster +1F916 ; fully-qualified # 🤖 robot + +# subgroup: cat-face +1F63A ; fully-qualified # 😺 grinning cat +1F638 ; fully-qualified # 😸 grinning cat with smiling eyes +1F639 ; fully-qualified # 😹 cat with tears of joy +1F63B ; fully-qualified # 😻 smiling cat with heart-eyes +1F63C ; fully-qualified # 😼 cat with wry smile +1F63D ; fully-qualified # 😽 kissing cat +1F640 ; fully-qualified # 🙀 weary cat +1F63F ; fully-qualified # 😿 crying cat +1F63E ; fully-qualified # 😾 pouting cat + +# subgroup: monkey-face +1F648 ; fully-qualified # 🙈 see-no-evil monkey +1F649 ; fully-qualified # 🙉 hear-no-evil monkey +1F64A ; fully-qualified # 🙊 speak-no-evil monkey + +# subgroup: emotion +1F48B ; fully-qualified # 💋 kiss mark +1F48C ; fully-qualified # 💌 love letter +1F498 ; fully-qualified # 💘 heart with arrow +1F49D ; fully-qualified # 💝 heart with ribbon +1F496 ; fully-qualified # 💖 sparkling heart +1F497 ; fully-qualified # 💗 growing heart +1F493 ; fully-qualified # 💓 beating heart +1F49E ; fully-qualified # 💞 revolving hearts +1F495 ; fully-qualified # 💕 two hearts +1F49F ; fully-qualified # 💟 heart decoration +2763 FE0F ; fully-qualified # ❣️ heart exclamation +2763 ; unqualified # ❣ heart exclamation +1F494 ; fully-qualified # 💔 broken heart +2764 FE0F ; fully-qualified # ❤️ red heart +2764 ; unqualified # ❤ red heart +1F9E1 ; fully-qualified # 🧡 orange heart +1F49B ; fully-qualified # 💛 yellow heart +1F49A ; fully-qualified # 💚 green heart +1F499 ; fully-qualified # 💙 blue heart +1F49C ; fully-qualified # 💜 purple heart +1F90E ; fully-qualified # 🤎 brown heart +1F5A4 ; fully-qualified # 🖤 black heart +1F90D ; fully-qualified # 🤍 white heart +1F4AF ; fully-qualified # 💯 hundred points +1F4A2 ; fully-qualified # 💢 anger symbol +1F4A5 ; fully-qualified # 💥 collision +1F4AB ; fully-qualified # 💫 dizzy +1F4A6 ; fully-qualified # 💦 sweat droplets +1F4A8 ; fully-qualified # 💨 dashing away +1F573 FE0F ; fully-qualified # 🕳️ hole +1F573 ; unqualified # 🕳 hole +1F4A3 ; fully-qualified # 💣 bomb +1F4AC ; fully-qualified # 💬 speech balloon +1F441 FE0F 200D 1F5E8 FE0F ; fully-qualified # 👁️‍🗨️ eye in speech bubble +1F441 200D 1F5E8 FE0F ; unqualified # 👁‍🗨️ eye in speech bubble +1F441 FE0F 200D 1F5E8 ; unqualified # 👁️‍🗨 eye in speech bubble +1F441 200D 1F5E8 ; unqualified # 👁‍🗨 eye in speech bubble +1F5E8 FE0F ; fully-qualified # 🗨️ left speech bubble +1F5E8 ; unqualified # 🗨 left speech bubble +1F5EF FE0F ; fully-qualified # 🗯️ right anger bubble +1F5EF ; unqualified # 🗯 right anger bubble +1F4AD ; fully-qualified # 💭 thought balloon +1F4A4 ; fully-qualified # 💤 zzz + +# Smileys & Emotion subtotal: 160 +# Smileys & Emotion subtotal: 160 w/o modifiers + +# group: People & Body + +# subgroup: hand-fingers-open +1F44B ; fully-qualified # 👋 waving hand +1F44B 1F3FB ; fully-qualified # 👋🏻 waving hand: light skin tone +1F44B 1F3FC ; fully-qualified # 👋🏼 waving hand: medium-light skin tone +1F44B 1F3FD ; fully-qualified # 👋🏽 waving hand: medium skin tone +1F44B 1F3FE ; fully-qualified # 👋🏾 waving hand: medium-dark skin tone +1F44B 1F3FF ; fully-qualified # 👋🏿 waving hand: dark skin tone +1F91A ; fully-qualified # 🤚 raised back of hand +1F91A 1F3FB ; fully-qualified # 🤚🏻 raised back of hand: light skin tone +1F91A 1F3FC ; fully-qualified # 🤚🏼 raised back of hand: medium-light skin tone +1F91A 1F3FD ; fully-qualified # 🤚🏽 raised back of hand: medium skin tone +1F91A 1F3FE ; fully-qualified # 🤚🏾 raised back of hand: medium-dark skin tone +1F91A 1F3FF ; fully-qualified # 🤚🏿 raised back of hand: dark skin tone +1F590 FE0F ; fully-qualified # 🖐️ hand with fingers splayed +1F590 ; unqualified # 🖐 hand with fingers splayed +1F590 1F3FB ; fully-qualified # 🖐🏻 hand with fingers splayed: light skin tone +1F590 1F3FC ; fully-qualified # 🖐🏼 hand with fingers splayed: medium-light skin tone +1F590 1F3FD ; fully-qualified # 🖐🏽 hand with fingers splayed: medium skin tone +1F590 1F3FE ; fully-qualified # 🖐🏾 hand with fingers splayed: medium-dark skin tone +1F590 1F3FF ; fully-qualified # 🖐🏿 hand with fingers splayed: dark skin tone +270B ; fully-qualified # ✋ raised hand +270B 1F3FB ; fully-qualified # ✋🏻 raised hand: light skin tone +270B 1F3FC ; fully-qualified # ✋🏼 raised hand: medium-light skin tone +270B 1F3FD ; fully-qualified # ✋🏽 raised hand: medium skin tone +270B 1F3FE ; fully-qualified # ✋🏾 raised hand: medium-dark skin tone +270B 1F3FF ; fully-qualified # ✋🏿 raised hand: dark skin tone +1F596 ; fully-qualified # 🖖 vulcan salute +1F596 1F3FB ; fully-qualified # 🖖🏻 vulcan salute: light skin tone +1F596 1F3FC ; fully-qualified # 🖖🏼 vulcan salute: medium-light skin tone +1F596 1F3FD ; fully-qualified # 🖖🏽 vulcan salute: medium skin tone +1F596 1F3FE ; fully-qualified # 🖖🏾 vulcan salute: medium-dark skin tone +1F596 1F3FF ; fully-qualified # 🖖🏿 vulcan salute: dark skin tone + +# subgroup: hand-fingers-partial +1F44C ; fully-qualified # 👌 OK hand +1F44C 1F3FB ; fully-qualified # 👌🏻 OK hand: light skin tone +1F44C 1F3FC ; fully-qualified # 👌🏼 OK hand: medium-light skin tone +1F44C 1F3FD ; fully-qualified # 👌🏽 OK hand: medium skin tone +1F44C 1F3FE ; fully-qualified # 👌🏾 OK hand: medium-dark skin tone +1F44C 1F3FF ; fully-qualified # 👌🏿 OK hand: dark skin tone +1F90F ; fully-qualified # 🤏 pinching hand +1F90F 1F3FB ; fully-qualified # 🤏🏻 pinching hand: light skin tone +1F90F 1F3FC ; fully-qualified # 🤏🏼 pinching hand: medium-light skin tone +1F90F 1F3FD ; fully-qualified # 🤏🏽 pinching hand: medium skin tone +1F90F 1F3FE ; fully-qualified # 🤏🏾 pinching hand: medium-dark skin tone +1F90F 1F3FF ; fully-qualified # 🤏🏿 pinching hand: dark skin tone +270C FE0F ; fully-qualified # ✌️ victory hand +270C ; unqualified # ✌ victory hand +270C 1F3FB ; fully-qualified # ✌🏻 victory hand: light skin tone +270C 1F3FC ; fully-qualified # ✌🏼 victory hand: medium-light skin tone +270C 1F3FD ; fully-qualified # ✌🏽 victory hand: medium skin tone +270C 1F3FE ; fully-qualified # ✌🏾 victory hand: medium-dark skin tone +270C 1F3FF ; fully-qualified # ✌🏿 victory hand: dark skin tone +1F91E ; fully-qualified # 🤞 crossed fingers +1F91E 1F3FB ; fully-qualified # 🤞🏻 crossed fingers: light skin tone +1F91E 1F3FC ; fully-qualified # 🤞🏼 crossed fingers: medium-light skin tone +1F91E 1F3FD ; fully-qualified # 🤞🏽 crossed fingers: medium skin tone +1F91E 1F3FE ; fully-qualified # 🤞🏾 crossed fingers: medium-dark skin tone +1F91E 1F3FF ; fully-qualified # 🤞🏿 crossed fingers: dark skin tone +1F91F ; fully-qualified # 🤟 love-you gesture +1F91F 1F3FB ; fully-qualified # 🤟🏻 love-you gesture: light skin tone +1F91F 1F3FC ; fully-qualified # 🤟🏼 love-you gesture: medium-light skin tone +1F91F 1F3FD ; fully-qualified # 🤟🏽 love-you gesture: medium skin tone +1F91F 1F3FE ; fully-qualified # 🤟🏾 love-you gesture: medium-dark skin tone +1F91F 1F3FF ; fully-qualified # 🤟🏿 love-you gesture: dark skin tone +1F918 ; fully-qualified # 🤘 sign of the horns +1F918 1F3FB ; fully-qualified # 🤘🏻 sign of the horns: light skin tone +1F918 1F3FC ; fully-qualified # 🤘🏼 sign of the horns: medium-light skin tone +1F918 1F3FD ; fully-qualified # 🤘🏽 sign of the horns: medium skin tone +1F918 1F3FE ; fully-qualified # 🤘🏾 sign of the horns: medium-dark skin tone +1F918 1F3FF ; fully-qualified # 🤘🏿 sign of the horns: dark skin tone +1F919 ; fully-qualified # 🤙 call me hand +1F919 1F3FB ; fully-qualified # 🤙🏻 call me hand: light skin tone +1F919 1F3FC ; fully-qualified # 🤙🏼 call me hand: medium-light skin tone +1F919 1F3FD ; fully-qualified # 🤙🏽 call me hand: medium skin tone +1F919 1F3FE ; fully-qualified # 🤙🏾 call me hand: medium-dark skin tone +1F919 1F3FF ; fully-qualified # 🤙🏿 call me hand: dark skin tone + +# subgroup: hand-single-finger +1F448 ; fully-qualified # 👈 backhand index pointing left +1F448 1F3FB ; fully-qualified # 👈🏻 backhand index pointing left: light skin tone +1F448 1F3FC ; fully-qualified # 👈🏼 backhand index pointing left: medium-light skin tone +1F448 1F3FD ; fully-qualified # 👈🏽 backhand index pointing left: medium skin tone +1F448 1F3FE ; fully-qualified # 👈🏾 backhand index pointing left: medium-dark skin tone +1F448 1F3FF ; fully-qualified # 👈🏿 backhand index pointing left: dark skin tone +1F449 ; fully-qualified # 👉 backhand index pointing right +1F449 1F3FB ; fully-qualified # 👉🏻 backhand index pointing right: light skin tone +1F449 1F3FC ; fully-qualified # 👉🏼 backhand index pointing right: medium-light skin tone +1F449 1F3FD ; fully-qualified # 👉🏽 backhand index pointing right: medium skin tone +1F449 1F3FE ; fully-qualified # 👉🏾 backhand index pointing right: medium-dark skin tone +1F449 1F3FF ; fully-qualified # 👉🏿 backhand index pointing right: dark skin tone +1F446 ; fully-qualified # 👆 backhand index pointing up +1F446 1F3FB ; fully-qualified # 👆🏻 backhand index pointing up: light skin tone +1F446 1F3FC ; fully-qualified # 👆🏼 backhand index pointing up: medium-light skin tone +1F446 1F3FD ; fully-qualified # 👆🏽 backhand index pointing up: medium skin tone +1F446 1F3FE ; fully-qualified # 👆🏾 backhand index pointing up: medium-dark skin tone +1F446 1F3FF ; fully-qualified # 👆🏿 backhand index pointing up: dark skin tone +1F595 ; fully-qualified # 🖕 middle finger +1F595 1F3FB ; fully-qualified # 🖕🏻 middle finger: light skin tone +1F595 1F3FC ; fully-qualified # 🖕🏼 middle finger: medium-light skin tone +1F595 1F3FD ; fully-qualified # 🖕🏽 middle finger: medium skin tone +1F595 1F3FE ; fully-qualified # 🖕🏾 middle finger: medium-dark skin tone +1F595 1F3FF ; fully-qualified # 🖕🏿 middle finger: dark skin tone +1F447 ; fully-qualified # 👇 backhand index pointing down +1F447 1F3FB ; fully-qualified # 👇🏻 backhand index pointing down: light skin tone +1F447 1F3FC ; fully-qualified # 👇🏼 backhand index pointing down: medium-light skin tone +1F447 1F3FD ; fully-qualified # 👇🏽 backhand index pointing down: medium skin tone +1F447 1F3FE ; fully-qualified # 👇🏾 backhand index pointing down: medium-dark skin tone +1F447 1F3FF ; fully-qualified # 👇🏿 backhand index pointing down: dark skin tone +261D FE0F ; fully-qualified # ☝️ index pointing up +261D ; unqualified # ☝ index pointing up +261D 1F3FB ; fully-qualified # ☝🏻 index pointing up: light skin tone +261D 1F3FC ; fully-qualified # ☝🏼 index pointing up: medium-light skin tone +261D 1F3FD ; fully-qualified # ☝🏽 index pointing up: medium skin tone +261D 1F3FE ; fully-qualified # ☝🏾 index pointing up: medium-dark skin tone +261D 1F3FF ; fully-qualified # ☝🏿 index pointing up: dark skin tone + +# subgroup: hand-fingers-closed +1F44D ; fully-qualified # 👍 thumbs up +1F44D 1F3FB ; fully-qualified # 👍🏻 thumbs up: light skin tone +1F44D 1F3FC ; fully-qualified # 👍🏼 thumbs up: medium-light skin tone +1F44D 1F3FD ; fully-qualified # 👍🏽 thumbs up: medium skin tone +1F44D 1F3FE ; fully-qualified # 👍🏾 thumbs up: medium-dark skin tone +1F44D 1F3FF ; fully-qualified # 👍🏿 thumbs up: dark skin tone +1F44E ; fully-qualified # 👎 thumbs down +1F44E 1F3FB ; fully-qualified # 👎🏻 thumbs down: light skin tone +1F44E 1F3FC ; fully-qualified # 👎🏼 thumbs down: medium-light skin tone +1F44E 1F3FD ; fully-qualified # 👎🏽 thumbs down: medium skin tone +1F44E 1F3FE ; fully-qualified # 👎🏾 thumbs down: medium-dark skin tone +1F44E 1F3FF ; fully-qualified # 👎🏿 thumbs down: dark skin tone +270A ; fully-qualified # ✊ raised fist +270A 1F3FB ; fully-qualified # ✊🏻 raised fist: light skin tone +270A 1F3FC ; fully-qualified # ✊🏼 raised fist: medium-light skin tone +270A 1F3FD ; fully-qualified # ✊🏽 raised fist: medium skin tone +270A 1F3FE ; fully-qualified # ✊🏾 raised fist: medium-dark skin tone +270A 1F3FF ; fully-qualified # ✊🏿 raised fist: dark skin tone +1F44A ; fully-qualified # 👊 oncoming fist +1F44A 1F3FB ; fully-qualified # 👊🏻 oncoming fist: light skin tone +1F44A 1F3FC ; fully-qualified # 👊🏼 oncoming fist: medium-light skin tone +1F44A 1F3FD ; fully-qualified # 👊🏽 oncoming fist: medium skin tone +1F44A 1F3FE ; fully-qualified # 👊🏾 oncoming fist: medium-dark skin tone +1F44A 1F3FF ; fully-qualified # 👊🏿 oncoming fist: dark skin tone +1F91B ; fully-qualified # 🤛 left-facing fist +1F91B 1F3FB ; fully-qualified # 🤛🏻 left-facing fist: light skin tone +1F91B 1F3FC ; fully-qualified # 🤛🏼 left-facing fist: medium-light skin tone +1F91B 1F3FD ; fully-qualified # 🤛🏽 left-facing fist: medium skin tone +1F91B 1F3FE ; fully-qualified # 🤛🏾 left-facing fist: medium-dark skin tone +1F91B 1F3FF ; fully-qualified # 🤛🏿 left-facing fist: dark skin tone +1F91C ; fully-qualified # 🤜 right-facing fist +1F91C 1F3FB ; fully-qualified # 🤜🏻 right-facing fist: light skin tone +1F91C 1F3FC ; fully-qualified # 🤜🏼 right-facing fist: medium-light skin tone +1F91C 1F3FD ; fully-qualified # 🤜🏽 right-facing fist: medium skin tone +1F91C 1F3FE ; fully-qualified # 🤜🏾 right-facing fist: medium-dark skin tone +1F91C 1F3FF ; fully-qualified # 🤜🏿 right-facing fist: dark skin tone + +# subgroup: hands +1F44F ; fully-qualified # 👏 clapping hands +1F44F 1F3FB ; fully-qualified # 👏🏻 clapping hands: light skin tone +1F44F 1F3FC ; fully-qualified # 👏🏼 clapping hands: medium-light skin tone +1F44F 1F3FD ; fully-qualified # 👏🏽 clapping hands: medium skin tone +1F44F 1F3FE ; fully-qualified # 👏🏾 clapping hands: medium-dark skin tone +1F44F 1F3FF ; fully-qualified # 👏🏿 clapping hands: dark skin tone +1F64C ; fully-qualified # 🙌 raising hands +1F64C 1F3FB ; fully-qualified # 🙌🏻 raising hands: light skin tone +1F64C 1F3FC ; fully-qualified # 🙌🏼 raising hands: medium-light skin tone +1F64C 1F3FD ; fully-qualified # 🙌🏽 raising hands: medium skin tone +1F64C 1F3FE ; fully-qualified # 🙌🏾 raising hands: medium-dark skin tone +1F64C 1F3FF ; fully-qualified # 🙌🏿 raising hands: dark skin tone +1F450 ; fully-qualified # 👐 open hands +1F450 1F3FB ; fully-qualified # 👐🏻 open hands: light skin tone +1F450 1F3FC ; fully-qualified # 👐🏼 open hands: medium-light skin tone +1F450 1F3FD ; fully-qualified # 👐🏽 open hands: medium skin tone +1F450 1F3FE ; fully-qualified # 👐🏾 open hands: medium-dark skin tone +1F450 1F3FF ; fully-qualified # 👐🏿 open hands: dark skin tone +1F932 ; fully-qualified # 🤲 palms up together +1F932 1F3FB ; fully-qualified # 🤲🏻 palms up together: light skin tone +1F932 1F3FC ; fully-qualified # 🤲🏼 palms up together: medium-light skin tone +1F932 1F3FD ; fully-qualified # 🤲🏽 palms up together: medium skin tone +1F932 1F3FE ; fully-qualified # 🤲🏾 palms up together: medium-dark skin tone +1F932 1F3FF ; fully-qualified # 🤲🏿 palms up together: dark skin tone +1F91D ; fully-qualified # 🤝 handshake +1F64F ; fully-qualified # 🙏 folded hands +1F64F 1F3FB ; fully-qualified # 🙏🏻 folded hands: light skin tone +1F64F 1F3FC ; fully-qualified # 🙏🏼 folded hands: medium-light skin tone +1F64F 1F3FD ; fully-qualified # 🙏🏽 folded hands: medium skin tone +1F64F 1F3FE ; fully-qualified # 🙏🏾 folded hands: medium-dark skin tone +1F64F 1F3FF ; fully-qualified # 🙏🏿 folded hands: dark skin tone + +# subgroup: hand-prop +270D FE0F ; fully-qualified # ✍️ writing hand +270D ; unqualified # ✍ writing hand +270D 1F3FB ; fully-qualified # ✍🏻 writing hand: light skin tone +270D 1F3FC ; fully-qualified # ✍🏼 writing hand: medium-light skin tone +270D 1F3FD ; fully-qualified # ✍🏽 writing hand: medium skin tone +270D 1F3FE ; fully-qualified # ✍🏾 writing hand: medium-dark skin tone +270D 1F3FF ; fully-qualified # ✍🏿 writing hand: dark skin tone +1F485 ; fully-qualified # 💅 nail polish +1F485 1F3FB ; fully-qualified # 💅🏻 nail polish: light skin tone +1F485 1F3FC ; fully-qualified # 💅🏼 nail polish: medium-light skin tone +1F485 1F3FD ; fully-qualified # 💅🏽 nail polish: medium skin tone +1F485 1F3FE ; fully-qualified # 💅🏾 nail polish: medium-dark skin tone +1F485 1F3FF ; fully-qualified # 💅🏿 nail polish: dark skin tone +1F933 ; fully-qualified # 🤳 selfie +1F933 1F3FB ; fully-qualified # 🤳🏻 selfie: light skin tone +1F933 1F3FC ; fully-qualified # 🤳🏼 selfie: medium-light skin tone +1F933 1F3FD ; fully-qualified # 🤳🏽 selfie: medium skin tone +1F933 1F3FE ; fully-qualified # 🤳🏾 selfie: medium-dark skin tone +1F933 1F3FF ; fully-qualified # 🤳🏿 selfie: dark skin tone + +# subgroup: body-parts +1F4AA ; fully-qualified # 💪 flexed biceps +1F4AA 1F3FB ; fully-qualified # 💪🏻 flexed biceps: light skin tone +1F4AA 1F3FC ; fully-qualified # 💪🏼 flexed biceps: medium-light skin tone +1F4AA 1F3FD ; fully-qualified # 💪🏽 flexed biceps: medium skin tone +1F4AA 1F3FE ; fully-qualified # 💪🏾 flexed biceps: medium-dark skin tone +1F4AA 1F3FF ; fully-qualified # 💪🏿 flexed biceps: dark skin tone +1F9BE ; fully-qualified # 🦾 mechanical arm +1F9BF ; fully-qualified # 🦿 mechanical leg +1F9B5 ; fully-qualified # 🦵 leg +1F9B5 1F3FB ; fully-qualified # 🦵🏻 leg: light skin tone +1F9B5 1F3FC ; fully-qualified # 🦵🏼 leg: medium-light skin tone +1F9B5 1F3FD ; fully-qualified # 🦵🏽 leg: medium skin tone +1F9B5 1F3FE ; fully-qualified # 🦵🏾 leg: medium-dark skin tone +1F9B5 1F3FF ; fully-qualified # 🦵🏿 leg: dark skin tone +1F9B6 ; fully-qualified # 🦶 foot +1F9B6 1F3FB ; fully-qualified # 🦶🏻 foot: light skin tone +1F9B6 1F3FC ; fully-qualified # 🦶🏼 foot: medium-light skin tone +1F9B6 1F3FD ; fully-qualified # 🦶🏽 foot: medium skin tone +1F9B6 1F3FE ; fully-qualified # 🦶🏾 foot: medium-dark skin tone +1F9B6 1F3FF ; fully-qualified # 🦶🏿 foot: dark skin tone +1F442 ; fully-qualified # 👂 ear +1F442 1F3FB ; fully-qualified # 👂🏻 ear: light skin tone +1F442 1F3FC ; fully-qualified # 👂🏼 ear: medium-light skin tone +1F442 1F3FD ; fully-qualified # 👂🏽 ear: medium skin tone +1F442 1F3FE ; fully-qualified # 👂🏾 ear: medium-dark skin tone +1F442 1F3FF ; fully-qualified # 👂🏿 ear: dark skin tone +1F9BB ; fully-qualified # 🦻 ear with hearing aid +1F9BB 1F3FB ; fully-qualified # 🦻🏻 ear with hearing aid: light skin tone +1F9BB 1F3FC ; fully-qualified # 🦻🏼 ear with hearing aid: medium-light skin tone +1F9BB 1F3FD ; fully-qualified # 🦻🏽 ear with hearing aid: medium skin tone +1F9BB 1F3FE ; fully-qualified # 🦻🏾 ear with hearing aid: medium-dark skin tone +1F9BB 1F3FF ; fully-qualified # 🦻🏿 ear with hearing aid: dark skin tone +1F443 ; fully-qualified # 👃 nose +1F443 1F3FB ; fully-qualified # 👃🏻 nose: light skin tone +1F443 1F3FC ; fully-qualified # 👃🏼 nose: medium-light skin tone +1F443 1F3FD ; fully-qualified # 👃🏽 nose: medium skin tone +1F443 1F3FE ; fully-qualified # 👃🏾 nose: medium-dark skin tone +1F443 1F3FF ; fully-qualified # 👃🏿 nose: dark skin tone +1F9E0 ; fully-qualified # 🧠 brain +1F9B7 ; fully-qualified # 🦷 tooth +1F9B4 ; fully-qualified # 🦴 bone +1F440 ; fully-qualified # 👀 eyes +1F441 FE0F ; fully-qualified # 👁️ eye +1F441 ; unqualified # 👁 eye +1F445 ; fully-qualified # 👅 tongue +1F444 ; fully-qualified # 👄 mouth + +# subgroup: person +1F476 ; fully-qualified # 👶 baby +1F476 1F3FB ; fully-qualified # 👶🏻 baby: light skin tone +1F476 1F3FC ; fully-qualified # 👶🏼 baby: medium-light skin tone +1F476 1F3FD ; fully-qualified # 👶🏽 baby: medium skin tone +1F476 1F3FE ; fully-qualified # 👶🏾 baby: medium-dark skin tone +1F476 1F3FF ; fully-qualified # 👶🏿 baby: dark skin tone +1F9D2 ; fully-qualified # 🧒 child +1F9D2 1F3FB ; fully-qualified # 🧒🏻 child: light skin tone +1F9D2 1F3FC ; fully-qualified # 🧒🏼 child: medium-light skin tone +1F9D2 1F3FD ; fully-qualified # 🧒🏽 child: medium skin tone +1F9D2 1F3FE ; fully-qualified # 🧒🏾 child: medium-dark skin tone +1F9D2 1F3FF ; fully-qualified # 🧒🏿 child: dark skin tone +1F466 ; fully-qualified # 👦 boy +1F466 1F3FB ; fully-qualified # 👦🏻 boy: light skin tone +1F466 1F3FC ; fully-qualified # 👦🏼 boy: medium-light skin tone +1F466 1F3FD ; fully-qualified # 👦🏽 boy: medium skin tone +1F466 1F3FE ; fully-qualified # 👦🏾 boy: medium-dark skin tone +1F466 1F3FF ; fully-qualified # 👦🏿 boy: dark skin tone +1F467 ; fully-qualified # 👧 girl +1F467 1F3FB ; fully-qualified # 👧🏻 girl: light skin tone +1F467 1F3FC ; fully-qualified # 👧🏼 girl: medium-light skin tone +1F467 1F3FD ; fully-qualified # 👧🏽 girl: medium skin tone +1F467 1F3FE ; fully-qualified # 👧🏾 girl: medium-dark skin tone +1F467 1F3FF ; fully-qualified # 👧🏿 girl: dark skin tone +1F9D1 ; fully-qualified # 🧑 person +1F9D1 1F3FB ; fully-qualified # 🧑🏻 person: light skin tone +1F9D1 1F3FC ; fully-qualified # 🧑🏼 person: medium-light skin tone +1F9D1 1F3FD ; fully-qualified # 🧑🏽 person: medium skin tone +1F9D1 1F3FE ; fully-qualified # 🧑🏾 person: medium-dark skin tone +1F9D1 1F3FF ; fully-qualified # 🧑🏿 person: dark skin tone +1F471 ; fully-qualified # 👱 person: blond hair +1F471 1F3FB ; fully-qualified # 👱🏻 person: light skin tone, blond hair +1F471 1F3FC ; fully-qualified # 👱🏼 person: medium-light skin tone, blond hair +1F471 1F3FD ; fully-qualified # 👱🏽 person: medium skin tone, blond hair +1F471 1F3FE ; fully-qualified # 👱🏾 person: medium-dark skin tone, blond hair +1F471 1F3FF ; fully-qualified # 👱🏿 person: dark skin tone, blond hair +1F468 ; fully-qualified # 👨 man +1F468 1F3FB ; fully-qualified # 👨🏻 man: light skin tone +1F468 1F3FC ; fully-qualified # 👨🏼 man: medium-light skin tone +1F468 1F3FD ; fully-qualified # 👨🏽 man: medium skin tone +1F468 1F3FE ; fully-qualified # 👨🏾 man: medium-dark skin tone +1F468 1F3FF ; fully-qualified # 👨🏿 man: dark skin tone +1F9D4 ; fully-qualified # 🧔 man: beard +1F9D4 1F3FB ; fully-qualified # 🧔🏻 man: light skin tone, beard +1F9D4 1F3FC ; fully-qualified # 🧔🏼 man: medium-light skin tone, beard +1F9D4 1F3FD ; fully-qualified # 🧔🏽 man: medium skin tone, beard +1F9D4 1F3FE ; fully-qualified # 🧔🏾 man: medium-dark skin tone, beard +1F9D4 1F3FF ; fully-qualified # 🧔🏿 man: dark skin tone, beard +1F471 200D 2642 FE0F ; fully-qualified # 👱‍♂️ man: blond hair +1F471 200D 2642 ; minimally-qualified # 👱‍♂ man: blond hair +1F471 1F3FB 200D 2642 FE0F ; fully-qualified # 👱🏻‍♂️ man: light skin tone, blond hair +1F471 1F3FB 200D 2642 ; minimally-qualified # 👱🏻‍♂ man: light skin tone, blond hair +1F471 1F3FC 200D 2642 FE0F ; fully-qualified # 👱🏼‍♂️ man: medium-light skin tone, blond hair +1F471 1F3FC 200D 2642 ; minimally-qualified # 👱🏼‍♂ man: medium-light skin tone, blond hair +1F471 1F3FD 200D 2642 FE0F ; fully-qualified # 👱🏽‍♂️ man: medium skin tone, blond hair +1F471 1F3FD 200D 2642 ; minimally-qualified # 👱🏽‍♂ man: medium skin tone, blond hair +1F471 1F3FE 200D 2642 FE0F ; fully-qualified # 👱🏾‍♂️ man: medium-dark skin tone, blond hair +1F471 1F3FE 200D 2642 ; minimally-qualified # 👱🏾‍♂ man: medium-dark skin tone, blond hair +1F471 1F3FF 200D 2642 FE0F ; fully-qualified # 👱🏿‍♂️ man: dark skin tone, blond hair +1F471 1F3FF 200D 2642 ; minimally-qualified # 👱🏿‍♂ man: dark skin tone, blond hair +1F468 200D 1F9B0 ; fully-qualified # 👨‍🦰 man: red hair +1F468 1F3FB 200D 1F9B0 ; fully-qualified # 👨🏻‍🦰 man: light skin tone, red hair +1F468 1F3FC 200D 1F9B0 ; fully-qualified # 👨🏼‍🦰 man: medium-light skin tone, red hair +1F468 1F3FD 200D 1F9B0 ; fully-qualified # 👨🏽‍🦰 man: medium skin tone, red hair +1F468 1F3FE 200D 1F9B0 ; fully-qualified # 👨🏾‍🦰 man: medium-dark skin tone, red hair +1F468 1F3FF 200D 1F9B0 ; fully-qualified # 👨🏿‍🦰 man: dark skin tone, red hair +1F468 200D 1F9B1 ; fully-qualified # 👨‍🦱 man: curly hair +1F468 1F3FB 200D 1F9B1 ; fully-qualified # 👨🏻‍🦱 man: light skin tone, curly hair +1F468 1F3FC 200D 1F9B1 ; fully-qualified # 👨🏼‍🦱 man: medium-light skin tone, curly hair +1F468 1F3FD 200D 1F9B1 ; fully-qualified # 👨🏽‍🦱 man: medium skin tone, curly hair +1F468 1F3FE 200D 1F9B1 ; fully-qualified # 👨🏾‍🦱 man: medium-dark skin tone, curly hair +1F468 1F3FF 200D 1F9B1 ; fully-qualified # 👨🏿‍🦱 man: dark skin tone, curly hair +1F468 200D 1F9B3 ; fully-qualified # 👨‍🦳 man: white hair +1F468 1F3FB 200D 1F9B3 ; fully-qualified # 👨🏻‍🦳 man: light skin tone, white hair +1F468 1F3FC 200D 1F9B3 ; fully-qualified # 👨🏼‍🦳 man: medium-light skin tone, white hair +1F468 1F3FD 200D 1F9B3 ; fully-qualified # 👨🏽‍🦳 man: medium skin tone, white hair +1F468 1F3FE 200D 1F9B3 ; fully-qualified # 👨🏾‍🦳 man: medium-dark skin tone, white hair +1F468 1F3FF 200D 1F9B3 ; fully-qualified # 👨🏿‍🦳 man: dark skin tone, white hair +1F468 200D 1F9B2 ; fully-qualified # 👨‍🦲 man: bald +1F468 1F3FB 200D 1F9B2 ; fully-qualified # 👨🏻‍🦲 man: light skin tone, bald +1F468 1F3FC 200D 1F9B2 ; fully-qualified # 👨🏼‍🦲 man: medium-light skin tone, bald +1F468 1F3FD 200D 1F9B2 ; fully-qualified # 👨🏽‍🦲 man: medium skin tone, bald +1F468 1F3FE 200D 1F9B2 ; fully-qualified # 👨🏾‍🦲 man: medium-dark skin tone, bald +1F468 1F3FF 200D 1F9B2 ; fully-qualified # 👨🏿‍🦲 man: dark skin tone, bald +1F469 ; fully-qualified # 👩 woman +1F469 1F3FB ; fully-qualified # 👩🏻 woman: light skin tone +1F469 1F3FC ; fully-qualified # 👩🏼 woman: medium-light skin tone +1F469 1F3FD ; fully-qualified # 👩🏽 woman: medium skin tone +1F469 1F3FE ; fully-qualified # 👩🏾 woman: medium-dark skin tone +1F469 1F3FF ; fully-qualified # 👩🏿 woman: dark skin tone +1F471 200D 2640 FE0F ; fully-qualified # 👱‍♀️ woman: blond hair +1F471 200D 2640 ; minimally-qualified # 👱‍♀ woman: blond hair +1F471 1F3FB 200D 2640 FE0F ; fully-qualified # 👱🏻‍♀️ woman: light skin tone, blond hair +1F471 1F3FB 200D 2640 ; minimally-qualified # 👱🏻‍♀ woman: light skin tone, blond hair +1F471 1F3FC 200D 2640 FE0F ; fully-qualified # 👱🏼‍♀️ woman: medium-light skin tone, blond hair +1F471 1F3FC 200D 2640 ; minimally-qualified # 👱🏼‍♀ woman: medium-light skin tone, blond hair +1F471 1F3FD 200D 2640 FE0F ; fully-qualified # 👱🏽‍♀️ woman: medium skin tone, blond hair +1F471 1F3FD 200D 2640 ; minimally-qualified # 👱🏽‍♀ woman: medium skin tone, blond hair +1F471 1F3FE 200D 2640 FE0F ; fully-qualified # 👱🏾‍♀️ woman: medium-dark skin tone, blond hair +1F471 1F3FE 200D 2640 ; minimally-qualified # 👱🏾‍♀ woman: medium-dark skin tone, blond hair +1F471 1F3FF 200D 2640 FE0F ; fully-qualified # 👱🏿‍♀️ woman: dark skin tone, blond hair +1F471 1F3FF 200D 2640 ; minimally-qualified # 👱🏿‍♀ woman: dark skin tone, blond hair +1F469 200D 1F9B0 ; fully-qualified # 👩‍🦰 woman: red hair +1F469 1F3FB 200D 1F9B0 ; fully-qualified # 👩🏻‍🦰 woman: light skin tone, red hair +1F469 1F3FC 200D 1F9B0 ; fully-qualified # 👩🏼‍🦰 woman: medium-light skin tone, red hair +1F469 1F3FD 200D 1F9B0 ; fully-qualified # 👩🏽‍🦰 woman: medium skin tone, red hair +1F469 1F3FE 200D 1F9B0 ; fully-qualified # 👩🏾‍🦰 woman: medium-dark skin tone, red hair +1F469 1F3FF 200D 1F9B0 ; fully-qualified # 👩🏿‍🦰 woman: dark skin tone, red hair +1F469 200D 1F9B1 ; fully-qualified # 👩‍🦱 woman: curly hair +1F469 1F3FB 200D 1F9B1 ; fully-qualified # 👩🏻‍🦱 woman: light skin tone, curly hair +1F469 1F3FC 200D 1F9B1 ; fully-qualified # 👩🏼‍🦱 woman: medium-light skin tone, curly hair +1F469 1F3FD 200D 1F9B1 ; fully-qualified # 👩🏽‍🦱 woman: medium skin tone, curly hair +1F469 1F3FE 200D 1F9B1 ; fully-qualified # 👩🏾‍🦱 woman: medium-dark skin tone, curly hair +1F469 1F3FF 200D 1F9B1 ; fully-qualified # 👩🏿‍🦱 woman: dark skin tone, curly hair +1F469 200D 1F9B3 ; fully-qualified # 👩‍🦳 woman: white hair +1F469 1F3FB 200D 1F9B3 ; fully-qualified # 👩🏻‍🦳 woman: light skin tone, white hair +1F469 1F3FC 200D 1F9B3 ; fully-qualified # 👩🏼‍🦳 woman: medium-light skin tone, white hair +1F469 1F3FD 200D 1F9B3 ; fully-qualified # 👩🏽‍🦳 woman: medium skin tone, white hair +1F469 1F3FE 200D 1F9B3 ; fully-qualified # 👩🏾‍🦳 woman: medium-dark skin tone, white hair +1F469 1F3FF 200D 1F9B3 ; fully-qualified # 👩🏿‍🦳 woman: dark skin tone, white hair +1F469 200D 1F9B2 ; fully-qualified # 👩‍🦲 woman: bald +1F469 1F3FB 200D 1F9B2 ; fully-qualified # 👩🏻‍🦲 woman: light skin tone, bald +1F469 1F3FC 200D 1F9B2 ; fully-qualified # 👩🏼‍🦲 woman: medium-light skin tone, bald +1F469 1F3FD 200D 1F9B2 ; fully-qualified # 👩🏽‍🦲 woman: medium skin tone, bald +1F469 1F3FE 200D 1F9B2 ; fully-qualified # 👩🏾‍🦲 woman: medium-dark skin tone, bald +1F469 1F3FF 200D 1F9B2 ; fully-qualified # 👩🏿‍🦲 woman: dark skin tone, bald +1F9D3 ; fully-qualified # 🧓 older person +1F9D3 1F3FB ; fully-qualified # 🧓🏻 older person: light skin tone +1F9D3 1F3FC ; fully-qualified # 🧓🏼 older person: medium-light skin tone +1F9D3 1F3FD ; fully-qualified # 🧓🏽 older person: medium skin tone +1F9D3 1F3FE ; fully-qualified # 🧓🏾 older person: medium-dark skin tone +1F9D3 1F3FF ; fully-qualified # 🧓🏿 older person: dark skin tone +1F474 ; fully-qualified # 👴 old man +1F474 1F3FB ; fully-qualified # 👴🏻 old man: light skin tone +1F474 1F3FC ; fully-qualified # 👴🏼 old man: medium-light skin tone +1F474 1F3FD ; fully-qualified # 👴🏽 old man: medium skin tone +1F474 1F3FE ; fully-qualified # 👴🏾 old man: medium-dark skin tone +1F474 1F3FF ; fully-qualified # 👴🏿 old man: dark skin tone +1F475 ; fully-qualified # 👵 old woman +1F475 1F3FB ; fully-qualified # 👵🏻 old woman: light skin tone +1F475 1F3FC ; fully-qualified # 👵🏼 old woman: medium-light skin tone +1F475 1F3FD ; fully-qualified # 👵🏽 old woman: medium skin tone +1F475 1F3FE ; fully-qualified # 👵🏾 old woman: medium-dark skin tone +1F475 1F3FF ; fully-qualified # 👵🏿 old woman: dark skin tone + +# subgroup: person-gesture +1F64D ; fully-qualified # 🙍 person frowning +1F64D 1F3FB ; fully-qualified # 🙍🏻 person frowning: light skin tone +1F64D 1F3FC ; fully-qualified # 🙍🏼 person frowning: medium-light skin tone +1F64D 1F3FD ; fully-qualified # 🙍🏽 person frowning: medium skin tone +1F64D 1F3FE ; fully-qualified # 🙍🏾 person frowning: medium-dark skin tone +1F64D 1F3FF ; fully-qualified # 🙍🏿 person frowning: dark skin tone +1F64D 200D 2642 FE0F ; fully-qualified # 🙍‍♂️ man frowning +1F64D 200D 2642 ; minimally-qualified # 🙍‍♂ man frowning +1F64D 1F3FB 200D 2642 FE0F ; fully-qualified # 🙍🏻‍♂️ man frowning: light skin tone +1F64D 1F3FB 200D 2642 ; minimally-qualified # 🙍🏻‍♂ man frowning: light skin tone +1F64D 1F3FC 200D 2642 FE0F ; fully-qualified # 🙍🏼‍♂️ man frowning: medium-light skin tone +1F64D 1F3FC 200D 2642 ; minimally-qualified # 🙍🏼‍♂ man frowning: medium-light skin tone +1F64D 1F3FD 200D 2642 FE0F ; fully-qualified # 🙍🏽‍♂️ man frowning: medium skin tone +1F64D 1F3FD 200D 2642 ; minimally-qualified # 🙍🏽‍♂ man frowning: medium skin tone +1F64D 1F3FE 200D 2642 FE0F ; fully-qualified # 🙍🏾‍♂️ man frowning: medium-dark skin tone +1F64D 1F3FE 200D 2642 ; minimally-qualified # 🙍🏾‍♂ man frowning: medium-dark skin tone +1F64D 1F3FF 200D 2642 FE0F ; fully-qualified # 🙍🏿‍♂️ man frowning: dark skin tone +1F64D 1F3FF 200D 2642 ; minimally-qualified # 🙍🏿‍♂ man frowning: dark skin tone +1F64D 200D 2640 FE0F ; fully-qualified # 🙍‍♀️ woman frowning +1F64D 200D 2640 ; minimally-qualified # 🙍‍♀ woman frowning +1F64D 1F3FB 200D 2640 FE0F ; fully-qualified # 🙍🏻‍♀️ woman frowning: light skin tone +1F64D 1F3FB 200D 2640 ; minimally-qualified # 🙍🏻‍♀ woman frowning: light skin tone +1F64D 1F3FC 200D 2640 FE0F ; fully-qualified # 🙍🏼‍♀️ woman frowning: medium-light skin tone +1F64D 1F3FC 200D 2640 ; minimally-qualified # 🙍🏼‍♀ woman frowning: medium-light skin tone +1F64D 1F3FD 200D 2640 FE0F ; fully-qualified # 🙍🏽‍♀️ woman frowning: medium skin tone +1F64D 1F3FD 200D 2640 ; minimally-qualified # 🙍🏽‍♀ woman frowning: medium skin tone +1F64D 1F3FE 200D 2640 FE0F ; fully-qualified # 🙍🏾‍♀️ woman frowning: medium-dark skin tone +1F64D 1F3FE 200D 2640 ; minimally-qualified # 🙍🏾‍♀ woman frowning: medium-dark skin tone +1F64D 1F3FF 200D 2640 FE0F ; fully-qualified # 🙍🏿‍♀️ woman frowning: dark skin tone +1F64D 1F3FF 200D 2640 ; minimally-qualified # 🙍🏿‍♀ woman frowning: dark skin tone +1F64E ; fully-qualified # 🙎 person pouting +1F64E 1F3FB ; fully-qualified # 🙎🏻 person pouting: light skin tone +1F64E 1F3FC ; fully-qualified # 🙎🏼 person pouting: medium-light skin tone +1F64E 1F3FD ; fully-qualified # 🙎🏽 person pouting: medium skin tone +1F64E 1F3FE ; fully-qualified # 🙎🏾 person pouting: medium-dark skin tone +1F64E 1F3FF ; fully-qualified # 🙎🏿 person pouting: dark skin tone +1F64E 200D 2642 FE0F ; fully-qualified # 🙎‍♂️ man pouting +1F64E 200D 2642 ; minimally-qualified # 🙎‍♂ man pouting +1F64E 1F3FB 200D 2642 FE0F ; fully-qualified # 🙎🏻‍♂️ man pouting: light skin tone +1F64E 1F3FB 200D 2642 ; minimally-qualified # 🙎🏻‍♂ man pouting: light skin tone +1F64E 1F3FC 200D 2642 FE0F ; fully-qualified # 🙎🏼‍♂️ man pouting: medium-light skin tone +1F64E 1F3FC 200D 2642 ; minimally-qualified # 🙎🏼‍♂ man pouting: medium-light skin tone +1F64E 1F3FD 200D 2642 FE0F ; fully-qualified # 🙎🏽‍♂️ man pouting: medium skin tone +1F64E 1F3FD 200D 2642 ; minimally-qualified # 🙎🏽‍♂ man pouting: medium skin tone +1F64E 1F3FE 200D 2642 FE0F ; fully-qualified # 🙎🏾‍♂️ man pouting: medium-dark skin tone +1F64E 1F3FE 200D 2642 ; minimally-qualified # 🙎🏾‍♂ man pouting: medium-dark skin tone +1F64E 1F3FF 200D 2642 FE0F ; fully-qualified # 🙎🏿‍♂️ man pouting: dark skin tone +1F64E 1F3FF 200D 2642 ; minimally-qualified # 🙎🏿‍♂ man pouting: dark skin tone +1F64E 200D 2640 FE0F ; fully-qualified # 🙎‍♀️ woman pouting +1F64E 200D 2640 ; minimally-qualified # 🙎‍♀ woman pouting +1F64E 1F3FB 200D 2640 FE0F ; fully-qualified # 🙎🏻‍♀️ woman pouting: light skin tone +1F64E 1F3FB 200D 2640 ; minimally-qualified # 🙎🏻‍♀ woman pouting: light skin tone +1F64E 1F3FC 200D 2640 FE0F ; fully-qualified # 🙎🏼‍♀️ woman pouting: medium-light skin tone +1F64E 1F3FC 200D 2640 ; minimally-qualified # 🙎🏼‍♀ woman pouting: medium-light skin tone +1F64E 1F3FD 200D 2640 FE0F ; fully-qualified # 🙎🏽‍♀️ woman pouting: medium skin tone +1F64E 1F3FD 200D 2640 ; minimally-qualified # 🙎🏽‍♀ woman pouting: medium skin tone +1F64E 1F3FE 200D 2640 FE0F ; fully-qualified # 🙎🏾‍♀️ woman pouting: medium-dark skin tone +1F64E 1F3FE 200D 2640 ; minimally-qualified # 🙎🏾‍♀ woman pouting: medium-dark skin tone +1F64E 1F3FF 200D 2640 FE0F ; fully-qualified # 🙎🏿‍♀️ woman pouting: dark skin tone +1F64E 1F3FF 200D 2640 ; minimally-qualified # 🙎🏿‍♀ woman pouting: dark skin tone +1F645 ; fully-qualified # 🙅 person gesturing NO +1F645 1F3FB ; fully-qualified # 🙅🏻 person gesturing NO: light skin tone +1F645 1F3FC ; fully-qualified # 🙅🏼 person gesturing NO: medium-light skin tone +1F645 1F3FD ; fully-qualified # 🙅🏽 person gesturing NO: medium skin tone +1F645 1F3FE ; fully-qualified # 🙅🏾 person gesturing NO: medium-dark skin tone +1F645 1F3FF ; fully-qualified # 🙅🏿 person gesturing NO: dark skin tone +1F645 200D 2642 FE0F ; fully-qualified # 🙅‍♂️ man gesturing NO +1F645 200D 2642 ; minimally-qualified # 🙅‍♂ man gesturing NO +1F645 1F3FB 200D 2642 FE0F ; fully-qualified # 🙅🏻‍♂️ man gesturing NO: light skin tone +1F645 1F3FB 200D 2642 ; minimally-qualified # 🙅🏻‍♂ man gesturing NO: light skin tone +1F645 1F3FC 200D 2642 FE0F ; fully-qualified # 🙅🏼‍♂️ man gesturing NO: medium-light skin tone +1F645 1F3FC 200D 2642 ; minimally-qualified # 🙅🏼‍♂ man gesturing NO: medium-light skin tone +1F645 1F3FD 200D 2642 FE0F ; fully-qualified # 🙅🏽‍♂️ man gesturing NO: medium skin tone +1F645 1F3FD 200D 2642 ; minimally-qualified # 🙅🏽‍♂ man gesturing NO: medium skin tone +1F645 1F3FE 200D 2642 FE0F ; fully-qualified # 🙅🏾‍♂️ man gesturing NO: medium-dark skin tone +1F645 1F3FE 200D 2642 ; minimally-qualified # 🙅🏾‍♂ man gesturing NO: medium-dark skin tone +1F645 1F3FF 200D 2642 FE0F ; fully-qualified # 🙅🏿‍♂️ man gesturing NO: dark skin tone +1F645 1F3FF 200D 2642 ; minimally-qualified # 🙅🏿‍♂ man gesturing NO: dark skin tone +1F645 200D 2640 FE0F ; fully-qualified # 🙅‍♀️ woman gesturing NO +1F645 200D 2640 ; minimally-qualified # 🙅‍♀ woman gesturing NO +1F645 1F3FB 200D 2640 FE0F ; fully-qualified # 🙅🏻‍♀️ woman gesturing NO: light skin tone +1F645 1F3FB 200D 2640 ; minimally-qualified # 🙅🏻‍♀ woman gesturing NO: light skin tone +1F645 1F3FC 200D 2640 FE0F ; fully-qualified # 🙅🏼‍♀️ woman gesturing NO: medium-light skin tone +1F645 1F3FC 200D 2640 ; minimally-qualified # 🙅🏼‍♀ woman gesturing NO: medium-light skin tone +1F645 1F3FD 200D 2640 FE0F ; fully-qualified # 🙅🏽‍♀️ woman gesturing NO: medium skin tone +1F645 1F3FD 200D 2640 ; minimally-qualified # 🙅🏽‍♀ woman gesturing NO: medium skin tone +1F645 1F3FE 200D 2640 FE0F ; fully-qualified # 🙅🏾‍♀️ woman gesturing NO: medium-dark skin tone +1F645 1F3FE 200D 2640 ; minimally-qualified # 🙅🏾‍♀ woman gesturing NO: medium-dark skin tone +1F645 1F3FF 200D 2640 FE0F ; fully-qualified # 🙅🏿‍♀️ woman gesturing NO: dark skin tone +1F645 1F3FF 200D 2640 ; minimally-qualified # 🙅🏿‍♀ woman gesturing NO: dark skin tone +1F646 ; fully-qualified # 🙆 person gesturing OK +1F646 1F3FB ; fully-qualified # 🙆🏻 person gesturing OK: light skin tone +1F646 1F3FC ; fully-qualified # 🙆🏼 person gesturing OK: medium-light skin tone +1F646 1F3FD ; fully-qualified # 🙆🏽 person gesturing OK: medium skin tone +1F646 1F3FE ; fully-qualified # 🙆🏾 person gesturing OK: medium-dark skin tone +1F646 1F3FF ; fully-qualified # 🙆🏿 person gesturing OK: dark skin tone +1F646 200D 2642 FE0F ; fully-qualified # 🙆‍♂️ man gesturing OK +1F646 200D 2642 ; minimally-qualified # 🙆‍♂ man gesturing OK +1F646 1F3FB 200D 2642 FE0F ; fully-qualified # 🙆🏻‍♂️ man gesturing OK: light skin tone +1F646 1F3FB 200D 2642 ; minimally-qualified # 🙆🏻‍♂ man gesturing OK: light skin tone +1F646 1F3FC 200D 2642 FE0F ; fully-qualified # 🙆🏼‍♂️ man gesturing OK: medium-light skin tone +1F646 1F3FC 200D 2642 ; minimally-qualified # 🙆🏼‍♂ man gesturing OK: medium-light skin tone +1F646 1F3FD 200D 2642 FE0F ; fully-qualified # 🙆🏽‍♂️ man gesturing OK: medium skin tone +1F646 1F3FD 200D 2642 ; minimally-qualified # 🙆🏽‍♂ man gesturing OK: medium skin tone +1F646 1F3FE 200D 2642 FE0F ; fully-qualified # 🙆🏾‍♂️ man gesturing OK: medium-dark skin tone +1F646 1F3FE 200D 2642 ; minimally-qualified # 🙆🏾‍♂ man gesturing OK: medium-dark skin tone +1F646 1F3FF 200D 2642 FE0F ; fully-qualified # 🙆🏿‍♂️ man gesturing OK: dark skin tone +1F646 1F3FF 200D 2642 ; minimally-qualified # 🙆🏿‍♂ man gesturing OK: dark skin tone +1F646 200D 2640 FE0F ; fully-qualified # 🙆‍♀️ woman gesturing OK +1F646 200D 2640 ; minimally-qualified # 🙆‍♀ woman gesturing OK +1F646 1F3FB 200D 2640 FE0F ; fully-qualified # 🙆🏻‍♀️ woman gesturing OK: light skin tone +1F646 1F3FB 200D 2640 ; minimally-qualified # 🙆🏻‍♀ woman gesturing OK: light skin tone +1F646 1F3FC 200D 2640 FE0F ; fully-qualified # 🙆🏼‍♀️ woman gesturing OK: medium-light skin tone +1F646 1F3FC 200D 2640 ; minimally-qualified # 🙆🏼‍♀ woman gesturing OK: medium-light skin tone +1F646 1F3FD 200D 2640 FE0F ; fully-qualified # 🙆🏽‍♀️ woman gesturing OK: medium skin tone +1F646 1F3FD 200D 2640 ; minimally-qualified # 🙆🏽‍♀ woman gesturing OK: medium skin tone +1F646 1F3FE 200D 2640 FE0F ; fully-qualified # 🙆🏾‍♀️ woman gesturing OK: medium-dark skin tone +1F646 1F3FE 200D 2640 ; minimally-qualified # 🙆🏾‍♀ woman gesturing OK: medium-dark skin tone +1F646 1F3FF 200D 2640 FE0F ; fully-qualified # 🙆🏿‍♀️ woman gesturing OK: dark skin tone +1F646 1F3FF 200D 2640 ; minimally-qualified # 🙆🏿‍♀ woman gesturing OK: dark skin tone +1F481 ; fully-qualified # 💁 person tipping hand +1F481 1F3FB ; fully-qualified # 💁🏻 person tipping hand: light skin tone +1F481 1F3FC ; fully-qualified # 💁🏼 person tipping hand: medium-light skin tone +1F481 1F3FD ; fully-qualified # 💁🏽 person tipping hand: medium skin tone +1F481 1F3FE ; fully-qualified # 💁🏾 person tipping hand: medium-dark skin tone +1F481 1F3FF ; fully-qualified # 💁🏿 person tipping hand: dark skin tone +1F481 200D 2642 FE0F ; fully-qualified # 💁‍♂️ man tipping hand +1F481 200D 2642 ; minimally-qualified # 💁‍♂ man tipping hand +1F481 1F3FB 200D 2642 FE0F ; fully-qualified # 💁🏻‍♂️ man tipping hand: light skin tone +1F481 1F3FB 200D 2642 ; minimally-qualified # 💁🏻‍♂ man tipping hand: light skin tone +1F481 1F3FC 200D 2642 FE0F ; fully-qualified # 💁🏼‍♂️ man tipping hand: medium-light skin tone +1F481 1F3FC 200D 2642 ; minimally-qualified # 💁🏼‍♂ man tipping hand: medium-light skin tone +1F481 1F3FD 200D 2642 FE0F ; fully-qualified # 💁🏽‍♂️ man tipping hand: medium skin tone +1F481 1F3FD 200D 2642 ; minimally-qualified # 💁🏽‍♂ man tipping hand: medium skin tone +1F481 1F3FE 200D 2642 FE0F ; fully-qualified # 💁🏾‍♂️ man tipping hand: medium-dark skin tone +1F481 1F3FE 200D 2642 ; minimally-qualified # 💁🏾‍♂ man tipping hand: medium-dark skin tone +1F481 1F3FF 200D 2642 FE0F ; fully-qualified # 💁🏿‍♂️ man tipping hand: dark skin tone +1F481 1F3FF 200D 2642 ; minimally-qualified # 💁🏿‍♂ man tipping hand: dark skin tone +1F481 200D 2640 FE0F ; fully-qualified # 💁‍♀️ woman tipping hand +1F481 200D 2640 ; minimally-qualified # 💁‍♀ woman tipping hand +1F481 1F3FB 200D 2640 FE0F ; fully-qualified # 💁🏻‍♀️ woman tipping hand: light skin tone +1F481 1F3FB 200D 2640 ; minimally-qualified # 💁🏻‍♀ woman tipping hand: light skin tone +1F481 1F3FC 200D 2640 FE0F ; fully-qualified # 💁🏼‍♀️ woman tipping hand: medium-light skin tone +1F481 1F3FC 200D 2640 ; minimally-qualified # 💁🏼‍♀ woman tipping hand: medium-light skin tone +1F481 1F3FD 200D 2640 FE0F ; fully-qualified # 💁🏽‍♀️ woman tipping hand: medium skin tone +1F481 1F3FD 200D 2640 ; minimally-qualified # 💁🏽‍♀ woman tipping hand: medium skin tone +1F481 1F3FE 200D 2640 FE0F ; fully-qualified # 💁🏾‍♀️ woman tipping hand: medium-dark skin tone +1F481 1F3FE 200D 2640 ; minimally-qualified # 💁🏾‍♀ woman tipping hand: medium-dark skin tone +1F481 1F3FF 200D 2640 FE0F ; fully-qualified # 💁🏿‍♀️ woman tipping hand: dark skin tone +1F481 1F3FF 200D 2640 ; minimally-qualified # 💁🏿‍♀ woman tipping hand: dark skin tone +1F64B ; fully-qualified # 🙋 person raising hand +1F64B 1F3FB ; fully-qualified # 🙋🏻 person raising hand: light skin tone +1F64B 1F3FC ; fully-qualified # 🙋🏼 person raising hand: medium-light skin tone +1F64B 1F3FD ; fully-qualified # 🙋🏽 person raising hand: medium skin tone +1F64B 1F3FE ; fully-qualified # 🙋🏾 person raising hand: medium-dark skin tone +1F64B 1F3FF ; fully-qualified # 🙋🏿 person raising hand: dark skin tone +1F64B 200D 2642 FE0F ; fully-qualified # 🙋‍♂️ man raising hand +1F64B 200D 2642 ; minimally-qualified # 🙋‍♂ man raising hand +1F64B 1F3FB 200D 2642 FE0F ; fully-qualified # 🙋🏻‍♂️ man raising hand: light skin tone +1F64B 1F3FB 200D 2642 ; minimally-qualified # 🙋🏻‍♂ man raising hand: light skin tone +1F64B 1F3FC 200D 2642 FE0F ; fully-qualified # 🙋🏼‍♂️ man raising hand: medium-light skin tone +1F64B 1F3FC 200D 2642 ; minimally-qualified # 🙋🏼‍♂ man raising hand: medium-light skin tone +1F64B 1F3FD 200D 2642 FE0F ; fully-qualified # 🙋🏽‍♂️ man raising hand: medium skin tone +1F64B 1F3FD 200D 2642 ; minimally-qualified # 🙋🏽‍♂ man raising hand: medium skin tone +1F64B 1F3FE 200D 2642 FE0F ; fully-qualified # 🙋🏾‍♂️ man raising hand: medium-dark skin tone +1F64B 1F3FE 200D 2642 ; minimally-qualified # 🙋🏾‍♂ man raising hand: medium-dark skin tone +1F64B 1F3FF 200D 2642 FE0F ; fully-qualified # 🙋🏿‍♂️ man raising hand: dark skin tone +1F64B 1F3FF 200D 2642 ; minimally-qualified # 🙋🏿‍♂ man raising hand: dark skin tone +1F64B 200D 2640 FE0F ; fully-qualified # 🙋‍♀️ woman raising hand +1F64B 200D 2640 ; minimally-qualified # 🙋‍♀ woman raising hand +1F64B 1F3FB 200D 2640 FE0F ; fully-qualified # 🙋🏻‍♀️ woman raising hand: light skin tone +1F64B 1F3FB 200D 2640 ; minimally-qualified # 🙋🏻‍♀ woman raising hand: light skin tone +1F64B 1F3FC 200D 2640 FE0F ; fully-qualified # 🙋🏼‍♀️ woman raising hand: medium-light skin tone +1F64B 1F3FC 200D 2640 ; minimally-qualified # 🙋🏼‍♀ woman raising hand: medium-light skin tone +1F64B 1F3FD 200D 2640 FE0F ; fully-qualified # 🙋🏽‍♀️ woman raising hand: medium skin tone +1F64B 1F3FD 200D 2640 ; minimally-qualified # 🙋🏽‍♀ woman raising hand: medium skin tone +1F64B 1F3FE 200D 2640 FE0F ; fully-qualified # 🙋🏾‍♀️ woman raising hand: medium-dark skin tone +1F64B 1F3FE 200D 2640 ; minimally-qualified # 🙋🏾‍♀ woman raising hand: medium-dark skin tone +1F64B 1F3FF 200D 2640 FE0F ; fully-qualified # 🙋🏿‍♀️ woman raising hand: dark skin tone +1F64B 1F3FF 200D 2640 ; minimally-qualified # 🙋🏿‍♀ woman raising hand: dark skin tone +1F9CF ; fully-qualified # 🧏 deaf person +1F9CF 1F3FB ; fully-qualified # 🧏🏻 deaf person: light skin tone +1F9CF 1F3FC ; fully-qualified # 🧏🏼 deaf person: medium-light skin tone +1F9CF 1F3FD ; fully-qualified # 🧏🏽 deaf person: medium skin tone +1F9CF 1F3FE ; fully-qualified # 🧏🏾 deaf person: medium-dark skin tone +1F9CF 1F3FF ; fully-qualified # 🧏🏿 deaf person: dark skin tone +1F9CF 200D 2642 FE0F ; fully-qualified # 🧏‍♂️ deaf man +1F9CF 200D 2642 ; minimally-qualified # 🧏‍♂ deaf man +1F9CF 1F3FB 200D 2642 FE0F ; fully-qualified # 🧏🏻‍♂️ deaf man: light skin tone +1F9CF 1F3FB 200D 2642 ; minimally-qualified # 🧏🏻‍♂ deaf man: light skin tone +1F9CF 1F3FC 200D 2642 FE0F ; fully-qualified # 🧏🏼‍♂️ deaf man: medium-light skin tone +1F9CF 1F3FC 200D 2642 ; minimally-qualified # 🧏🏼‍♂ deaf man: medium-light skin tone +1F9CF 1F3FD 200D 2642 FE0F ; fully-qualified # 🧏🏽‍♂️ deaf man: medium skin tone +1F9CF 1F3FD 200D 2642 ; minimally-qualified # 🧏🏽‍♂ deaf man: medium skin tone +1F9CF 1F3FE 200D 2642 FE0F ; fully-qualified # 🧏🏾‍♂️ deaf man: medium-dark skin tone +1F9CF 1F3FE 200D 2642 ; minimally-qualified # 🧏🏾‍♂ deaf man: medium-dark skin tone +1F9CF 1F3FF 200D 2642 FE0F ; fully-qualified # 🧏🏿‍♂️ deaf man: dark skin tone +1F9CF 1F3FF 200D 2642 ; minimally-qualified # 🧏🏿‍♂ deaf man: dark skin tone +1F9CF 200D 2640 FE0F ; fully-qualified # 🧏‍♀️ deaf woman +1F9CF 200D 2640 ; minimally-qualified # 🧏‍♀ deaf woman +1F9CF 1F3FB 200D 2640 FE0F ; fully-qualified # 🧏🏻‍♀️ deaf woman: light skin tone +1F9CF 1F3FB 200D 2640 ; minimally-qualified # 🧏🏻‍♀ deaf woman: light skin tone +1F9CF 1F3FC 200D 2640 FE0F ; fully-qualified # 🧏🏼‍♀️ deaf woman: medium-light skin tone +1F9CF 1F3FC 200D 2640 ; minimally-qualified # 🧏🏼‍♀ deaf woman: medium-light skin tone +1F9CF 1F3FD 200D 2640 FE0F ; fully-qualified # 🧏🏽‍♀️ deaf woman: medium skin tone +1F9CF 1F3FD 200D 2640 ; minimally-qualified # 🧏🏽‍♀ deaf woman: medium skin tone +1F9CF 1F3FE 200D 2640 FE0F ; fully-qualified # 🧏🏾‍♀️ deaf woman: medium-dark skin tone +1F9CF 1F3FE 200D 2640 ; minimally-qualified # 🧏🏾‍♀ deaf woman: medium-dark skin tone +1F9CF 1F3FF 200D 2640 FE0F ; fully-qualified # 🧏🏿‍♀️ deaf woman: dark skin tone +1F9CF 1F3FF 200D 2640 ; minimally-qualified # 🧏🏿‍♀ deaf woman: dark skin tone +1F647 ; fully-qualified # 🙇 person bowing +1F647 1F3FB ; fully-qualified # 🙇🏻 person bowing: light skin tone +1F647 1F3FC ; fully-qualified # 🙇🏼 person bowing: medium-light skin tone +1F647 1F3FD ; fully-qualified # 🙇🏽 person bowing: medium skin tone +1F647 1F3FE ; fully-qualified # 🙇🏾 person bowing: medium-dark skin tone +1F647 1F3FF ; fully-qualified # 🙇🏿 person bowing: dark skin tone +1F647 200D 2642 FE0F ; fully-qualified # 🙇‍♂️ man bowing +1F647 200D 2642 ; minimally-qualified # 🙇‍♂ man bowing +1F647 1F3FB 200D 2642 FE0F ; fully-qualified # 🙇🏻‍♂️ man bowing: light skin tone +1F647 1F3FB 200D 2642 ; minimally-qualified # 🙇🏻‍♂ man bowing: light skin tone +1F647 1F3FC 200D 2642 FE0F ; fully-qualified # 🙇🏼‍♂️ man bowing: medium-light skin tone +1F647 1F3FC 200D 2642 ; minimally-qualified # 🙇🏼‍♂ man bowing: medium-light skin tone +1F647 1F3FD 200D 2642 FE0F ; fully-qualified # 🙇🏽‍♂️ man bowing: medium skin tone +1F647 1F3FD 200D 2642 ; minimally-qualified # 🙇🏽‍♂ man bowing: medium skin tone +1F647 1F3FE 200D 2642 FE0F ; fully-qualified # 🙇🏾‍♂️ man bowing: medium-dark skin tone +1F647 1F3FE 200D 2642 ; minimally-qualified # 🙇🏾‍♂ man bowing: medium-dark skin tone +1F647 1F3FF 200D 2642 FE0F ; fully-qualified # 🙇🏿‍♂️ man bowing: dark skin tone +1F647 1F3FF 200D 2642 ; minimally-qualified # 🙇🏿‍♂ man bowing: dark skin tone +1F647 200D 2640 FE0F ; fully-qualified # 🙇‍♀️ woman bowing +1F647 200D 2640 ; minimally-qualified # 🙇‍♀ woman bowing +1F647 1F3FB 200D 2640 FE0F ; fully-qualified # 🙇🏻‍♀️ woman bowing: light skin tone +1F647 1F3FB 200D 2640 ; minimally-qualified # 🙇🏻‍♀ woman bowing: light skin tone +1F647 1F3FC 200D 2640 FE0F ; fully-qualified # 🙇🏼‍♀️ woman bowing: medium-light skin tone +1F647 1F3FC 200D 2640 ; minimally-qualified # 🙇🏼‍♀ woman bowing: medium-light skin tone +1F647 1F3FD 200D 2640 FE0F ; fully-qualified # 🙇🏽‍♀️ woman bowing: medium skin tone +1F647 1F3FD 200D 2640 ; minimally-qualified # 🙇🏽‍♀ woman bowing: medium skin tone +1F647 1F3FE 200D 2640 FE0F ; fully-qualified # 🙇🏾‍♀️ woman bowing: medium-dark skin tone +1F647 1F3FE 200D 2640 ; minimally-qualified # 🙇🏾‍♀ woman bowing: medium-dark skin tone +1F647 1F3FF 200D 2640 FE0F ; fully-qualified # 🙇🏿‍♀️ woman bowing: dark skin tone +1F647 1F3FF 200D 2640 ; minimally-qualified # 🙇🏿‍♀ woman bowing: dark skin tone +1F926 ; fully-qualified # 🤦 person facepalming +1F926 1F3FB ; fully-qualified # 🤦🏻 person facepalming: light skin tone +1F926 1F3FC ; fully-qualified # 🤦🏼 person facepalming: medium-light skin tone +1F926 1F3FD ; fully-qualified # 🤦🏽 person facepalming: medium skin tone +1F926 1F3FE ; fully-qualified # 🤦🏾 person facepalming: medium-dark skin tone +1F926 1F3FF ; fully-qualified # 🤦🏿 person facepalming: dark skin tone +1F926 200D 2642 FE0F ; fully-qualified # 🤦‍♂️ man facepalming +1F926 200D 2642 ; minimally-qualified # 🤦‍♂ man facepalming +1F926 1F3FB 200D 2642 FE0F ; fully-qualified # 🤦🏻‍♂️ man facepalming: light skin tone +1F926 1F3FB 200D 2642 ; minimally-qualified # 🤦🏻‍♂ man facepalming: light skin tone +1F926 1F3FC 200D 2642 FE0F ; fully-qualified # 🤦🏼‍♂️ man facepalming: medium-light skin tone +1F926 1F3FC 200D 2642 ; minimally-qualified # 🤦🏼‍♂ man facepalming: medium-light skin tone +1F926 1F3FD 200D 2642 FE0F ; fully-qualified # 🤦🏽‍♂️ man facepalming: medium skin tone +1F926 1F3FD 200D 2642 ; minimally-qualified # 🤦🏽‍♂ man facepalming: medium skin tone +1F926 1F3FE 200D 2642 FE0F ; fully-qualified # 🤦🏾‍♂️ man facepalming: medium-dark skin tone +1F926 1F3FE 200D 2642 ; minimally-qualified # 🤦🏾‍♂ man facepalming: medium-dark skin tone +1F926 1F3FF 200D 2642 FE0F ; fully-qualified # 🤦🏿‍♂️ man facepalming: dark skin tone +1F926 1F3FF 200D 2642 ; minimally-qualified # 🤦🏿‍♂ man facepalming: dark skin tone +1F926 200D 2640 FE0F ; fully-qualified # 🤦‍♀️ woman facepalming +1F926 200D 2640 ; minimally-qualified # 🤦‍♀ woman facepalming +1F926 1F3FB 200D 2640 FE0F ; fully-qualified # 🤦🏻‍♀️ woman facepalming: light skin tone +1F926 1F3FB 200D 2640 ; minimally-qualified # 🤦🏻‍♀ woman facepalming: light skin tone +1F926 1F3FC 200D 2640 FE0F ; fully-qualified # 🤦🏼‍♀️ woman facepalming: medium-light skin tone +1F926 1F3FC 200D 2640 ; minimally-qualified # 🤦🏼‍♀ woman facepalming: medium-light skin tone +1F926 1F3FD 200D 2640 FE0F ; fully-qualified # 🤦🏽‍♀️ woman facepalming: medium skin tone +1F926 1F3FD 200D 2640 ; minimally-qualified # 🤦🏽‍♀ woman facepalming: medium skin tone +1F926 1F3FE 200D 2640 FE0F ; fully-qualified # 🤦🏾‍♀️ woman facepalming: medium-dark skin tone +1F926 1F3FE 200D 2640 ; minimally-qualified # 🤦🏾‍♀ woman facepalming: medium-dark skin tone +1F926 1F3FF 200D 2640 FE0F ; fully-qualified # 🤦🏿‍♀️ woman facepalming: dark skin tone +1F926 1F3FF 200D 2640 ; minimally-qualified # 🤦🏿‍♀ woman facepalming: dark skin tone +1F937 ; fully-qualified # 🤷 person shrugging +1F937 1F3FB ; fully-qualified # 🤷🏻 person shrugging: light skin tone +1F937 1F3FC ; fully-qualified # 🤷🏼 person shrugging: medium-light skin tone +1F937 1F3FD ; fully-qualified # 🤷🏽 person shrugging: medium skin tone +1F937 1F3FE ; fully-qualified # 🤷🏾 person shrugging: medium-dark skin tone +1F937 1F3FF ; fully-qualified # 🤷🏿 person shrugging: dark skin tone +1F937 200D 2642 FE0F ; fully-qualified # 🤷‍♂️ man shrugging +1F937 200D 2642 ; minimally-qualified # 🤷‍♂ man shrugging +1F937 1F3FB 200D 2642 FE0F ; fully-qualified # 🤷🏻‍♂️ man shrugging: light skin tone +1F937 1F3FB 200D 2642 ; minimally-qualified # 🤷🏻‍♂ man shrugging: light skin tone +1F937 1F3FC 200D 2642 FE0F ; fully-qualified # 🤷🏼‍♂️ man shrugging: medium-light skin tone +1F937 1F3FC 200D 2642 ; minimally-qualified # 🤷🏼‍♂ man shrugging: medium-light skin tone +1F937 1F3FD 200D 2642 FE0F ; fully-qualified # 🤷🏽‍♂️ man shrugging: medium skin tone +1F937 1F3FD 200D 2642 ; minimally-qualified # 🤷🏽‍♂ man shrugging: medium skin tone +1F937 1F3FE 200D 2642 FE0F ; fully-qualified # 🤷🏾‍♂️ man shrugging: medium-dark skin tone +1F937 1F3FE 200D 2642 ; minimally-qualified # 🤷🏾‍♂ man shrugging: medium-dark skin tone +1F937 1F3FF 200D 2642 FE0F ; fully-qualified # 🤷🏿‍♂️ man shrugging: dark skin tone +1F937 1F3FF 200D 2642 ; minimally-qualified # 🤷🏿‍♂ man shrugging: dark skin tone +1F937 200D 2640 FE0F ; fully-qualified # 🤷‍♀️ woman shrugging +1F937 200D 2640 ; minimally-qualified # 🤷‍♀ woman shrugging +1F937 1F3FB 200D 2640 FE0F ; fully-qualified # 🤷🏻‍♀️ woman shrugging: light skin tone +1F937 1F3FB 200D 2640 ; minimally-qualified # 🤷🏻‍♀ woman shrugging: light skin tone +1F937 1F3FC 200D 2640 FE0F ; fully-qualified # 🤷🏼‍♀️ woman shrugging: medium-light skin tone +1F937 1F3FC 200D 2640 ; minimally-qualified # 🤷🏼‍♀ woman shrugging: medium-light skin tone +1F937 1F3FD 200D 2640 FE0F ; fully-qualified # 🤷🏽‍♀️ woman shrugging: medium skin tone +1F937 1F3FD 200D 2640 ; minimally-qualified # 🤷🏽‍♀ woman shrugging: medium skin tone +1F937 1F3FE 200D 2640 FE0F ; fully-qualified # 🤷🏾‍♀️ woman shrugging: medium-dark skin tone +1F937 1F3FE 200D 2640 ; minimally-qualified # 🤷🏾‍♀ woman shrugging: medium-dark skin tone +1F937 1F3FF 200D 2640 FE0F ; fully-qualified # 🤷🏿‍♀️ woman shrugging: dark skin tone +1F937 1F3FF 200D 2640 ; minimally-qualified # 🤷🏿‍♀ woman shrugging: dark skin tone + +# subgroup: person-role +1F468 200D 2695 FE0F ; fully-qualified # 👨‍⚕️ man health worker +1F468 200D 2695 ; minimally-qualified # 👨‍⚕ man health worker +1F468 1F3FB 200D 2695 FE0F ; fully-qualified # 👨🏻‍⚕️ man health worker: light skin tone +1F468 1F3FB 200D 2695 ; minimally-qualified # 👨🏻‍⚕ man health worker: light skin tone +1F468 1F3FC 200D 2695 FE0F ; fully-qualified # 👨🏼‍⚕️ man health worker: medium-light skin tone +1F468 1F3FC 200D 2695 ; minimally-qualified # 👨🏼‍⚕ man health worker: medium-light skin tone +1F468 1F3FD 200D 2695 FE0F ; fully-qualified # 👨🏽‍⚕️ man health worker: medium skin tone +1F468 1F3FD 200D 2695 ; minimally-qualified # 👨🏽‍⚕ man health worker: medium skin tone +1F468 1F3FE 200D 2695 FE0F ; fully-qualified # 👨🏾‍⚕️ man health worker: medium-dark skin tone +1F468 1F3FE 200D 2695 ; minimally-qualified # 👨🏾‍⚕ man health worker: medium-dark skin tone +1F468 1F3FF 200D 2695 FE0F ; fully-qualified # 👨🏿‍⚕️ man health worker: dark skin tone +1F468 1F3FF 200D 2695 ; minimally-qualified # 👨🏿‍⚕ man health worker: dark skin tone +1F469 200D 2695 FE0F ; fully-qualified # 👩‍⚕️ woman health worker +1F469 200D 2695 ; minimally-qualified # 👩‍⚕ woman health worker +1F469 1F3FB 200D 2695 FE0F ; fully-qualified # 👩🏻‍⚕️ woman health worker: light skin tone +1F469 1F3FB 200D 2695 ; minimally-qualified # 👩🏻‍⚕ woman health worker: light skin tone +1F469 1F3FC 200D 2695 FE0F ; fully-qualified # 👩🏼‍⚕️ woman health worker: medium-light skin tone +1F469 1F3FC 200D 2695 ; minimally-qualified # 👩🏼‍⚕ woman health worker: medium-light skin tone +1F469 1F3FD 200D 2695 FE0F ; fully-qualified # 👩🏽‍⚕️ woman health worker: medium skin tone +1F469 1F3FD 200D 2695 ; minimally-qualified # 👩🏽‍⚕ woman health worker: medium skin tone +1F469 1F3FE 200D 2695 FE0F ; fully-qualified # 👩🏾‍⚕️ woman health worker: medium-dark skin tone +1F469 1F3FE 200D 2695 ; minimally-qualified # 👩🏾‍⚕ woman health worker: medium-dark skin tone +1F469 1F3FF 200D 2695 FE0F ; fully-qualified # 👩🏿‍⚕️ woman health worker: dark skin tone +1F469 1F3FF 200D 2695 ; minimally-qualified # 👩🏿‍⚕ woman health worker: dark skin tone +1F468 200D 1F393 ; fully-qualified # 👨‍🎓 man student +1F468 1F3FB 200D 1F393 ; fully-qualified # 👨🏻‍🎓 man student: light skin tone +1F468 1F3FC 200D 1F393 ; fully-qualified # 👨🏼‍🎓 man student: medium-light skin tone +1F468 1F3FD 200D 1F393 ; fully-qualified # 👨🏽‍🎓 man student: medium skin tone +1F468 1F3FE 200D 1F393 ; fully-qualified # 👨🏾‍🎓 man student: medium-dark skin tone +1F468 1F3FF 200D 1F393 ; fully-qualified # 👨🏿‍🎓 man student: dark skin tone +1F469 200D 1F393 ; fully-qualified # 👩‍🎓 woman student +1F469 1F3FB 200D 1F393 ; fully-qualified # 👩🏻‍🎓 woman student: light skin tone +1F469 1F3FC 200D 1F393 ; fully-qualified # 👩🏼‍🎓 woman student: medium-light skin tone +1F469 1F3FD 200D 1F393 ; fully-qualified # 👩🏽‍🎓 woman student: medium skin tone +1F469 1F3FE 200D 1F393 ; fully-qualified # 👩🏾‍🎓 woman student: medium-dark skin tone +1F469 1F3FF 200D 1F393 ; fully-qualified # 👩🏿‍🎓 woman student: dark skin tone +1F468 200D 1F3EB ; fully-qualified # 👨‍🏫 man teacher +1F468 1F3FB 200D 1F3EB ; fully-qualified # 👨🏻‍🏫 man teacher: light skin tone +1F468 1F3FC 200D 1F3EB ; fully-qualified # 👨🏼‍🏫 man teacher: medium-light skin tone +1F468 1F3FD 200D 1F3EB ; fully-qualified # 👨🏽‍🏫 man teacher: medium skin tone +1F468 1F3FE 200D 1F3EB ; fully-qualified # 👨🏾‍🏫 man teacher: medium-dark skin tone +1F468 1F3FF 200D 1F3EB ; fully-qualified # 👨🏿‍🏫 man teacher: dark skin tone +1F469 200D 1F3EB ; fully-qualified # 👩‍🏫 woman teacher +1F469 1F3FB 200D 1F3EB ; fully-qualified # 👩🏻‍🏫 woman teacher: light skin tone +1F469 1F3FC 200D 1F3EB ; fully-qualified # 👩🏼‍🏫 woman teacher: medium-light skin tone +1F469 1F3FD 200D 1F3EB ; fully-qualified # 👩🏽‍🏫 woman teacher: medium skin tone +1F469 1F3FE 200D 1F3EB ; fully-qualified # 👩🏾‍🏫 woman teacher: medium-dark skin tone +1F469 1F3FF 200D 1F3EB ; fully-qualified # 👩🏿‍🏫 woman teacher: dark skin tone +1F468 200D 2696 FE0F ; fully-qualified # 👨‍⚖️ man judge +1F468 200D 2696 ; minimally-qualified # 👨‍⚖ man judge +1F468 1F3FB 200D 2696 FE0F ; fully-qualified # 👨🏻‍⚖️ man judge: light skin tone +1F468 1F3FB 200D 2696 ; minimally-qualified # 👨🏻‍⚖ man judge: light skin tone +1F468 1F3FC 200D 2696 FE0F ; fully-qualified # 👨🏼‍⚖️ man judge: medium-light skin tone +1F468 1F3FC 200D 2696 ; minimally-qualified # 👨🏼‍⚖ man judge: medium-light skin tone +1F468 1F3FD 200D 2696 FE0F ; fully-qualified # 👨🏽‍⚖️ man judge: medium skin tone +1F468 1F3FD 200D 2696 ; minimally-qualified # 👨🏽‍⚖ man judge: medium skin tone +1F468 1F3FE 200D 2696 FE0F ; fully-qualified # 👨🏾‍⚖️ man judge: medium-dark skin tone +1F468 1F3FE 200D 2696 ; minimally-qualified # 👨🏾‍⚖ man judge: medium-dark skin tone +1F468 1F3FF 200D 2696 FE0F ; fully-qualified # 👨🏿‍⚖️ man judge: dark skin tone +1F468 1F3FF 200D 2696 ; minimally-qualified # 👨🏿‍⚖ man judge: dark skin tone +1F469 200D 2696 FE0F ; fully-qualified # 👩‍⚖️ woman judge +1F469 200D 2696 ; minimally-qualified # 👩‍⚖ woman judge +1F469 1F3FB 200D 2696 FE0F ; fully-qualified # 👩🏻‍⚖️ woman judge: light skin tone +1F469 1F3FB 200D 2696 ; minimally-qualified # 👩🏻‍⚖ woman judge: light skin tone +1F469 1F3FC 200D 2696 FE0F ; fully-qualified # 👩🏼‍⚖️ woman judge: medium-light skin tone +1F469 1F3FC 200D 2696 ; minimally-qualified # 👩🏼‍⚖ woman judge: medium-light skin tone +1F469 1F3FD 200D 2696 FE0F ; fully-qualified # 👩🏽‍⚖️ woman judge: medium skin tone +1F469 1F3FD 200D 2696 ; minimally-qualified # 👩🏽‍⚖ woman judge: medium skin tone +1F469 1F3FE 200D 2696 FE0F ; fully-qualified # 👩🏾‍⚖️ woman judge: medium-dark skin tone +1F469 1F3FE 200D 2696 ; minimally-qualified # 👩🏾‍⚖ woman judge: medium-dark skin tone +1F469 1F3FF 200D 2696 FE0F ; fully-qualified # 👩🏿‍⚖️ woman judge: dark skin tone +1F469 1F3FF 200D 2696 ; minimally-qualified # 👩🏿‍⚖ woman judge: dark skin tone +1F468 200D 1F33E ; fully-qualified # 👨‍🌾 man farmer +1F468 1F3FB 200D 1F33E ; fully-qualified # 👨🏻‍🌾 man farmer: light skin tone +1F468 1F3FC 200D 1F33E ; fully-qualified # 👨🏼‍🌾 man farmer: medium-light skin tone +1F468 1F3FD 200D 1F33E ; fully-qualified # 👨🏽‍🌾 man farmer: medium skin tone +1F468 1F3FE 200D 1F33E ; fully-qualified # 👨🏾‍🌾 man farmer: medium-dark skin tone +1F468 1F3FF 200D 1F33E ; fully-qualified # 👨🏿‍🌾 man farmer: dark skin tone +1F469 200D 1F33E ; fully-qualified # 👩‍🌾 woman farmer +1F469 1F3FB 200D 1F33E ; fully-qualified # 👩🏻‍🌾 woman farmer: light skin tone +1F469 1F3FC 200D 1F33E ; fully-qualified # 👩🏼‍🌾 woman farmer: medium-light skin tone +1F469 1F3FD 200D 1F33E ; fully-qualified # 👩🏽‍🌾 woman farmer: medium skin tone +1F469 1F3FE 200D 1F33E ; fully-qualified # 👩🏾‍🌾 woman farmer: medium-dark skin tone +1F469 1F3FF 200D 1F33E ; fully-qualified # 👩🏿‍🌾 woman farmer: dark skin tone +1F468 200D 1F373 ; fully-qualified # 👨‍🍳 man cook +1F468 1F3FB 200D 1F373 ; fully-qualified # 👨🏻‍🍳 man cook: light skin tone +1F468 1F3FC 200D 1F373 ; fully-qualified # 👨🏼‍🍳 man cook: medium-light skin tone +1F468 1F3FD 200D 1F373 ; fully-qualified # 👨🏽‍🍳 man cook: medium skin tone +1F468 1F3FE 200D 1F373 ; fully-qualified # 👨🏾‍🍳 man cook: medium-dark skin tone +1F468 1F3FF 200D 1F373 ; fully-qualified # 👨🏿‍🍳 man cook: dark skin tone +1F469 200D 1F373 ; fully-qualified # 👩‍🍳 woman cook +1F469 1F3FB 200D 1F373 ; fully-qualified # 👩🏻‍🍳 woman cook: light skin tone +1F469 1F3FC 200D 1F373 ; fully-qualified # 👩🏼‍🍳 woman cook: medium-light skin tone +1F469 1F3FD 200D 1F373 ; fully-qualified # 👩🏽‍🍳 woman cook: medium skin tone +1F469 1F3FE 200D 1F373 ; fully-qualified # 👩🏾‍🍳 woman cook: medium-dark skin tone +1F469 1F3FF 200D 1F373 ; fully-qualified # 👩🏿‍🍳 woman cook: dark skin tone +1F468 200D 1F527 ; fully-qualified # 👨‍🔧 man mechanic +1F468 1F3FB 200D 1F527 ; fully-qualified # 👨🏻‍🔧 man mechanic: light skin tone +1F468 1F3FC 200D 1F527 ; fully-qualified # 👨🏼‍🔧 man mechanic: medium-light skin tone +1F468 1F3FD 200D 1F527 ; fully-qualified # 👨🏽‍🔧 man mechanic: medium skin tone +1F468 1F3FE 200D 1F527 ; fully-qualified # 👨🏾‍🔧 man mechanic: medium-dark skin tone +1F468 1F3FF 200D 1F527 ; fully-qualified # 👨🏿‍🔧 man mechanic: dark skin tone +1F469 200D 1F527 ; fully-qualified # 👩‍🔧 woman mechanic +1F469 1F3FB 200D 1F527 ; fully-qualified # 👩🏻‍🔧 woman mechanic: light skin tone +1F469 1F3FC 200D 1F527 ; fully-qualified # 👩🏼‍🔧 woman mechanic: medium-light skin tone +1F469 1F3FD 200D 1F527 ; fully-qualified # 👩🏽‍🔧 woman mechanic: medium skin tone +1F469 1F3FE 200D 1F527 ; fully-qualified # 👩🏾‍🔧 woman mechanic: medium-dark skin tone +1F469 1F3FF 200D 1F527 ; fully-qualified # 👩🏿‍🔧 woman mechanic: dark skin tone +1F468 200D 1F3ED ; fully-qualified # 👨‍🏭 man factory worker +1F468 1F3FB 200D 1F3ED ; fully-qualified # 👨🏻‍🏭 man factory worker: light skin tone +1F468 1F3FC 200D 1F3ED ; fully-qualified # 👨🏼‍🏭 man factory worker: medium-light skin tone +1F468 1F3FD 200D 1F3ED ; fully-qualified # 👨🏽‍🏭 man factory worker: medium skin tone +1F468 1F3FE 200D 1F3ED ; fully-qualified # 👨🏾‍🏭 man factory worker: medium-dark skin tone +1F468 1F3FF 200D 1F3ED ; fully-qualified # 👨🏿‍🏭 man factory worker: dark skin tone +1F469 200D 1F3ED ; fully-qualified # 👩‍🏭 woman factory worker +1F469 1F3FB 200D 1F3ED ; fully-qualified # 👩🏻‍🏭 woman factory worker: light skin tone +1F469 1F3FC 200D 1F3ED ; fully-qualified # 👩🏼‍🏭 woman factory worker: medium-light skin tone +1F469 1F3FD 200D 1F3ED ; fully-qualified # 👩🏽‍🏭 woman factory worker: medium skin tone +1F469 1F3FE 200D 1F3ED ; fully-qualified # 👩🏾‍🏭 woman factory worker: medium-dark skin tone +1F469 1F3FF 200D 1F3ED ; fully-qualified # 👩🏿‍🏭 woman factory worker: dark skin tone +1F468 200D 1F4BC ; fully-qualified # 👨‍💼 man office worker +1F468 1F3FB 200D 1F4BC ; fully-qualified # 👨🏻‍💼 man office worker: light skin tone +1F468 1F3FC 200D 1F4BC ; fully-qualified # 👨🏼‍💼 man office worker: medium-light skin tone +1F468 1F3FD 200D 1F4BC ; fully-qualified # 👨🏽‍💼 man office worker: medium skin tone +1F468 1F3FE 200D 1F4BC ; fully-qualified # 👨🏾‍💼 man office worker: medium-dark skin tone +1F468 1F3FF 200D 1F4BC ; fully-qualified # 👨🏿‍💼 man office worker: dark skin tone +1F469 200D 1F4BC ; fully-qualified # 👩‍💼 woman office worker +1F469 1F3FB 200D 1F4BC ; fully-qualified # 👩🏻‍💼 woman office worker: light skin tone +1F469 1F3FC 200D 1F4BC ; fully-qualified # 👩🏼‍💼 woman office worker: medium-light skin tone +1F469 1F3FD 200D 1F4BC ; fully-qualified # 👩🏽‍💼 woman office worker: medium skin tone +1F469 1F3FE 200D 1F4BC ; fully-qualified # 👩🏾‍💼 woman office worker: medium-dark skin tone +1F469 1F3FF 200D 1F4BC ; fully-qualified # 👩🏿‍💼 woman office worker: dark skin tone +1F468 200D 1F52C ; fully-qualified # 👨‍🔬 man scientist +1F468 1F3FB 200D 1F52C ; fully-qualified # 👨🏻‍🔬 man scientist: light skin tone +1F468 1F3FC 200D 1F52C ; fully-qualified # 👨🏼‍🔬 man scientist: medium-light skin tone +1F468 1F3FD 200D 1F52C ; fully-qualified # 👨🏽‍🔬 man scientist: medium skin tone +1F468 1F3FE 200D 1F52C ; fully-qualified # 👨🏾‍🔬 man scientist: medium-dark skin tone +1F468 1F3FF 200D 1F52C ; fully-qualified # 👨🏿‍🔬 man scientist: dark skin tone +1F469 200D 1F52C ; fully-qualified # 👩‍🔬 woman scientist +1F469 1F3FB 200D 1F52C ; fully-qualified # 👩🏻‍🔬 woman scientist: light skin tone +1F469 1F3FC 200D 1F52C ; fully-qualified # 👩🏼‍🔬 woman scientist: medium-light skin tone +1F469 1F3FD 200D 1F52C ; fully-qualified # 👩🏽‍🔬 woman scientist: medium skin tone +1F469 1F3FE 200D 1F52C ; fully-qualified # 👩🏾‍🔬 woman scientist: medium-dark skin tone +1F469 1F3FF 200D 1F52C ; fully-qualified # 👩🏿‍🔬 woman scientist: dark skin tone +1F468 200D 1F4BB ; fully-qualified # 👨‍💻 man technologist +1F468 1F3FB 200D 1F4BB ; fully-qualified # 👨🏻‍💻 man technologist: light skin tone +1F468 1F3FC 200D 1F4BB ; fully-qualified # 👨🏼‍💻 man technologist: medium-light skin tone +1F468 1F3FD 200D 1F4BB ; fully-qualified # 👨🏽‍💻 man technologist: medium skin tone +1F468 1F3FE 200D 1F4BB ; fully-qualified # 👨🏾‍💻 man technologist: medium-dark skin tone +1F468 1F3FF 200D 1F4BB ; fully-qualified # 👨🏿‍💻 man technologist: dark skin tone +1F469 200D 1F4BB ; fully-qualified # 👩‍💻 woman technologist +1F469 1F3FB 200D 1F4BB ; fully-qualified # 👩🏻‍💻 woman technologist: light skin tone +1F469 1F3FC 200D 1F4BB ; fully-qualified # 👩🏼‍💻 woman technologist: medium-light skin tone +1F469 1F3FD 200D 1F4BB ; fully-qualified # 👩🏽‍💻 woman technologist: medium skin tone +1F469 1F3FE 200D 1F4BB ; fully-qualified # 👩🏾‍💻 woman technologist: medium-dark skin tone +1F469 1F3FF 200D 1F4BB ; fully-qualified # 👩🏿‍💻 woman technologist: dark skin tone +1F468 200D 1F3A4 ; fully-qualified # 👨‍🎤 man singer +1F468 1F3FB 200D 1F3A4 ; fully-qualified # 👨🏻‍🎤 man singer: light skin tone +1F468 1F3FC 200D 1F3A4 ; fully-qualified # 👨🏼‍🎤 man singer: medium-light skin tone +1F468 1F3FD 200D 1F3A4 ; fully-qualified # 👨🏽‍🎤 man singer: medium skin tone +1F468 1F3FE 200D 1F3A4 ; fully-qualified # 👨🏾‍🎤 man singer: medium-dark skin tone +1F468 1F3FF 200D 1F3A4 ; fully-qualified # 👨🏿‍🎤 man singer: dark skin tone +1F469 200D 1F3A4 ; fully-qualified # 👩‍🎤 woman singer +1F469 1F3FB 200D 1F3A4 ; fully-qualified # 👩🏻‍🎤 woman singer: light skin tone +1F469 1F3FC 200D 1F3A4 ; fully-qualified # 👩🏼‍🎤 woman singer: medium-light skin tone +1F469 1F3FD 200D 1F3A4 ; fully-qualified # 👩🏽‍🎤 woman singer: medium skin tone +1F469 1F3FE 200D 1F3A4 ; fully-qualified # 👩🏾‍🎤 woman singer: medium-dark skin tone +1F469 1F3FF 200D 1F3A4 ; fully-qualified # 👩🏿‍🎤 woman singer: dark skin tone +1F468 200D 1F3A8 ; fully-qualified # 👨‍🎨 man artist +1F468 1F3FB 200D 1F3A8 ; fully-qualified # 👨🏻‍🎨 man artist: light skin tone +1F468 1F3FC 200D 1F3A8 ; fully-qualified # 👨🏼‍🎨 man artist: medium-light skin tone +1F468 1F3FD 200D 1F3A8 ; fully-qualified # 👨🏽‍🎨 man artist: medium skin tone +1F468 1F3FE 200D 1F3A8 ; fully-qualified # 👨🏾‍🎨 man artist: medium-dark skin tone +1F468 1F3FF 200D 1F3A8 ; fully-qualified # 👨🏿‍🎨 man artist: dark skin tone +1F469 200D 1F3A8 ; fully-qualified # 👩‍🎨 woman artist +1F469 1F3FB 200D 1F3A8 ; fully-qualified # 👩🏻‍🎨 woman artist: light skin tone +1F469 1F3FC 200D 1F3A8 ; fully-qualified # 👩🏼‍🎨 woman artist: medium-light skin tone +1F469 1F3FD 200D 1F3A8 ; fully-qualified # 👩🏽‍🎨 woman artist: medium skin tone +1F469 1F3FE 200D 1F3A8 ; fully-qualified # 👩🏾‍🎨 woman artist: medium-dark skin tone +1F469 1F3FF 200D 1F3A8 ; fully-qualified # 👩🏿‍🎨 woman artist: dark skin tone +1F468 200D 2708 FE0F ; fully-qualified # 👨‍✈️ man pilot +1F468 200D 2708 ; minimally-qualified # 👨‍✈ man pilot +1F468 1F3FB 200D 2708 FE0F ; fully-qualified # 👨🏻‍✈️ man pilot: light skin tone +1F468 1F3FB 200D 2708 ; minimally-qualified # 👨🏻‍✈ man pilot: light skin tone +1F468 1F3FC 200D 2708 FE0F ; fully-qualified # 👨🏼‍✈️ man pilot: medium-light skin tone +1F468 1F3FC 200D 2708 ; minimally-qualified # 👨🏼‍✈ man pilot: medium-light skin tone +1F468 1F3FD 200D 2708 FE0F ; fully-qualified # 👨🏽‍✈️ man pilot: medium skin tone +1F468 1F3FD 200D 2708 ; minimally-qualified # 👨🏽‍✈ man pilot: medium skin tone +1F468 1F3FE 200D 2708 FE0F ; fully-qualified # 👨🏾‍✈️ man pilot: medium-dark skin tone +1F468 1F3FE 200D 2708 ; minimally-qualified # 👨🏾‍✈ man pilot: medium-dark skin tone +1F468 1F3FF 200D 2708 FE0F ; fully-qualified # 👨🏿‍✈️ man pilot: dark skin tone +1F468 1F3FF 200D 2708 ; minimally-qualified # 👨🏿‍✈ man pilot: dark skin tone +1F469 200D 2708 FE0F ; fully-qualified # 👩‍✈️ woman pilot +1F469 200D 2708 ; minimally-qualified # 👩‍✈ woman pilot +1F469 1F3FB 200D 2708 FE0F ; fully-qualified # 👩🏻‍✈️ woman pilot: light skin tone +1F469 1F3FB 200D 2708 ; minimally-qualified # 👩🏻‍✈ woman pilot: light skin tone +1F469 1F3FC 200D 2708 FE0F ; fully-qualified # 👩🏼‍✈️ woman pilot: medium-light skin tone +1F469 1F3FC 200D 2708 ; minimally-qualified # 👩🏼‍✈ woman pilot: medium-light skin tone +1F469 1F3FD 200D 2708 FE0F ; fully-qualified # 👩🏽‍✈️ woman pilot: medium skin tone +1F469 1F3FD 200D 2708 ; minimally-qualified # 👩🏽‍✈ woman pilot: medium skin tone +1F469 1F3FE 200D 2708 FE0F ; fully-qualified # 👩🏾‍✈️ woman pilot: medium-dark skin tone +1F469 1F3FE 200D 2708 ; minimally-qualified # 👩🏾‍✈ woman pilot: medium-dark skin tone +1F469 1F3FF 200D 2708 FE0F ; fully-qualified # 👩🏿‍✈️ woman pilot: dark skin tone +1F469 1F3FF 200D 2708 ; minimally-qualified # 👩🏿‍✈ woman pilot: dark skin tone +1F468 200D 1F680 ; fully-qualified # 👨‍🚀 man astronaut +1F468 1F3FB 200D 1F680 ; fully-qualified # 👨🏻‍🚀 man astronaut: light skin tone +1F468 1F3FC 200D 1F680 ; fully-qualified # 👨🏼‍🚀 man astronaut: medium-light skin tone +1F468 1F3FD 200D 1F680 ; fully-qualified # 👨🏽‍🚀 man astronaut: medium skin tone +1F468 1F3FE 200D 1F680 ; fully-qualified # 👨🏾‍🚀 man astronaut: medium-dark skin tone +1F468 1F3FF 200D 1F680 ; fully-qualified # 👨🏿‍🚀 man astronaut: dark skin tone +1F469 200D 1F680 ; fully-qualified # 👩‍🚀 woman astronaut +1F469 1F3FB 200D 1F680 ; fully-qualified # 👩🏻‍🚀 woman astronaut: light skin tone +1F469 1F3FC 200D 1F680 ; fully-qualified # 👩🏼‍🚀 woman astronaut: medium-light skin tone +1F469 1F3FD 200D 1F680 ; fully-qualified # 👩🏽‍🚀 woman astronaut: medium skin tone +1F469 1F3FE 200D 1F680 ; fully-qualified # 👩🏾‍🚀 woman astronaut: medium-dark skin tone +1F469 1F3FF 200D 1F680 ; fully-qualified # 👩🏿‍🚀 woman astronaut: dark skin tone +1F468 200D 1F692 ; fully-qualified # 👨‍🚒 man firefighter +1F468 1F3FB 200D 1F692 ; fully-qualified # 👨🏻‍🚒 man firefighter: light skin tone +1F468 1F3FC 200D 1F692 ; fully-qualified # 👨🏼‍🚒 man firefighter: medium-light skin tone +1F468 1F3FD 200D 1F692 ; fully-qualified # 👨🏽‍🚒 man firefighter: medium skin tone +1F468 1F3FE 200D 1F692 ; fully-qualified # 👨🏾‍🚒 man firefighter: medium-dark skin tone +1F468 1F3FF 200D 1F692 ; fully-qualified # 👨🏿‍🚒 man firefighter: dark skin tone +1F469 200D 1F692 ; fully-qualified # 👩‍🚒 woman firefighter +1F469 1F3FB 200D 1F692 ; fully-qualified # 👩🏻‍🚒 woman firefighter: light skin tone +1F469 1F3FC 200D 1F692 ; fully-qualified # 👩🏼‍🚒 woman firefighter: medium-light skin tone +1F469 1F3FD 200D 1F692 ; fully-qualified # 👩🏽‍🚒 woman firefighter: medium skin tone +1F469 1F3FE 200D 1F692 ; fully-qualified # 👩🏾‍🚒 woman firefighter: medium-dark skin tone +1F469 1F3FF 200D 1F692 ; fully-qualified # 👩🏿‍🚒 woman firefighter: dark skin tone +1F46E ; fully-qualified # 👮 police officer +1F46E 1F3FB ; fully-qualified # 👮🏻 police officer: light skin tone +1F46E 1F3FC ; fully-qualified # 👮🏼 police officer: medium-light skin tone +1F46E 1F3FD ; fully-qualified # 👮🏽 police officer: medium skin tone +1F46E 1F3FE ; fully-qualified # 👮🏾 police officer: medium-dark skin tone +1F46E 1F3FF ; fully-qualified # 👮🏿 police officer: dark skin tone +1F46E 200D 2642 FE0F ; fully-qualified # 👮‍♂️ man police officer +1F46E 200D 2642 ; minimally-qualified # 👮‍♂ man police officer +1F46E 1F3FB 200D 2642 FE0F ; fully-qualified # 👮🏻‍♂️ man police officer: light skin tone +1F46E 1F3FB 200D 2642 ; minimally-qualified # 👮🏻‍♂ man police officer: light skin tone +1F46E 1F3FC 200D 2642 FE0F ; fully-qualified # 👮🏼‍♂️ man police officer: medium-light skin tone +1F46E 1F3FC 200D 2642 ; minimally-qualified # 👮🏼‍♂ man police officer: medium-light skin tone +1F46E 1F3FD 200D 2642 FE0F ; fully-qualified # 👮🏽‍♂️ man police officer: medium skin tone +1F46E 1F3FD 200D 2642 ; minimally-qualified # 👮🏽‍♂ man police officer: medium skin tone +1F46E 1F3FE 200D 2642 FE0F ; fully-qualified # 👮🏾‍♂️ man police officer: medium-dark skin tone +1F46E 1F3FE 200D 2642 ; minimally-qualified # 👮🏾‍♂ man police officer: medium-dark skin tone +1F46E 1F3FF 200D 2642 FE0F ; fully-qualified # 👮🏿‍♂️ man police officer: dark skin tone +1F46E 1F3FF 200D 2642 ; minimally-qualified # 👮🏿‍♂ man police officer: dark skin tone +1F46E 200D 2640 FE0F ; fully-qualified # 👮‍♀️ woman police officer +1F46E 200D 2640 ; minimally-qualified # 👮‍♀ woman police officer +1F46E 1F3FB 200D 2640 FE0F ; fully-qualified # 👮🏻‍♀️ woman police officer: light skin tone +1F46E 1F3FB 200D 2640 ; minimally-qualified # 👮🏻‍♀ woman police officer: light skin tone +1F46E 1F3FC 200D 2640 FE0F ; fully-qualified # 👮🏼‍♀️ woman police officer: medium-light skin tone +1F46E 1F3FC 200D 2640 ; minimally-qualified # 👮🏼‍♀ woman police officer: medium-light skin tone +1F46E 1F3FD 200D 2640 FE0F ; fully-qualified # 👮🏽‍♀️ woman police officer: medium skin tone +1F46E 1F3FD 200D 2640 ; minimally-qualified # 👮🏽‍♀ woman police officer: medium skin tone +1F46E 1F3FE 200D 2640 FE0F ; fully-qualified # 👮🏾‍♀️ woman police officer: medium-dark skin tone +1F46E 1F3FE 200D 2640 ; minimally-qualified # 👮🏾‍♀ woman police officer: medium-dark skin tone +1F46E 1F3FF 200D 2640 FE0F ; fully-qualified # 👮🏿‍♀️ woman police officer: dark skin tone +1F46E 1F3FF 200D 2640 ; minimally-qualified # 👮🏿‍♀ woman police officer: dark skin tone +1F575 FE0F ; fully-qualified # 🕵️ detective +1F575 ; unqualified # 🕵 detective +1F575 1F3FB ; fully-qualified # 🕵🏻 detective: light skin tone +1F575 1F3FC ; fully-qualified # 🕵🏼 detective: medium-light skin tone +1F575 1F3FD ; fully-qualified # 🕵🏽 detective: medium skin tone +1F575 1F3FE ; fully-qualified # 🕵🏾 detective: medium-dark skin tone +1F575 1F3FF ; fully-qualified # 🕵🏿 detective: dark skin tone +1F575 FE0F 200D 2642 FE0F ; fully-qualified # 🕵️‍♂️ man detective +1F575 200D 2642 FE0F ; unqualified # 🕵‍♂️ man detective +1F575 FE0F 200D 2642 ; unqualified # 🕵️‍♂ man detective +1F575 200D 2642 ; unqualified # 🕵‍♂ man detective +1F575 1F3FB 200D 2642 FE0F ; fully-qualified # 🕵🏻‍♂️ man detective: light skin tone +1F575 1F3FB 200D 2642 ; minimally-qualified # 🕵🏻‍♂ man detective: light skin tone +1F575 1F3FC 200D 2642 FE0F ; fully-qualified # 🕵🏼‍♂️ man detective: medium-light skin tone +1F575 1F3FC 200D 2642 ; minimally-qualified # 🕵🏼‍♂ man detective: medium-light skin tone +1F575 1F3FD 200D 2642 FE0F ; fully-qualified # 🕵🏽‍♂️ man detective: medium skin tone +1F575 1F3FD 200D 2642 ; minimally-qualified # 🕵🏽‍♂ man detective: medium skin tone +1F575 1F3FE 200D 2642 FE0F ; fully-qualified # 🕵🏾‍♂️ man detective: medium-dark skin tone +1F575 1F3FE 200D 2642 ; minimally-qualified # 🕵🏾‍♂ man detective: medium-dark skin tone +1F575 1F3FF 200D 2642 FE0F ; fully-qualified # 🕵🏿‍♂️ man detective: dark skin tone +1F575 1F3FF 200D 2642 ; minimally-qualified # 🕵🏿‍♂ man detective: dark skin tone +1F575 FE0F 200D 2640 FE0F ; fully-qualified # 🕵️‍♀️ woman detective +1F575 200D 2640 FE0F ; unqualified # 🕵‍♀️ woman detective +1F575 FE0F 200D 2640 ; unqualified # 🕵️‍♀ woman detective +1F575 200D 2640 ; unqualified # 🕵‍♀ woman detective +1F575 1F3FB 200D 2640 FE0F ; fully-qualified # 🕵🏻‍♀️ woman detective: light skin tone +1F575 1F3FB 200D 2640 ; minimally-qualified # 🕵🏻‍♀ woman detective: light skin tone +1F575 1F3FC 200D 2640 FE0F ; fully-qualified # 🕵🏼‍♀️ woman detective: medium-light skin tone +1F575 1F3FC 200D 2640 ; minimally-qualified # 🕵🏼‍♀ woman detective: medium-light skin tone +1F575 1F3FD 200D 2640 FE0F ; fully-qualified # 🕵🏽‍♀️ woman detective: medium skin tone +1F575 1F3FD 200D 2640 ; minimally-qualified # 🕵🏽‍♀ woman detective: medium skin tone +1F575 1F3FE 200D 2640 FE0F ; fully-qualified # 🕵🏾‍♀️ woman detective: medium-dark skin tone +1F575 1F3FE 200D 2640 ; minimally-qualified # 🕵🏾‍♀ woman detective: medium-dark skin tone +1F575 1F3FF 200D 2640 FE0F ; fully-qualified # 🕵🏿‍♀️ woman detective: dark skin tone +1F575 1F3FF 200D 2640 ; minimally-qualified # 🕵🏿‍♀ woman detective: dark skin tone +1F482 ; fully-qualified # 💂 guard +1F482 1F3FB ; fully-qualified # 💂🏻 guard: light skin tone +1F482 1F3FC ; fully-qualified # 💂🏼 guard: medium-light skin tone +1F482 1F3FD ; fully-qualified # 💂🏽 guard: medium skin tone +1F482 1F3FE ; fully-qualified # 💂🏾 guard: medium-dark skin tone +1F482 1F3FF ; fully-qualified # 💂🏿 guard: dark skin tone +1F482 200D 2642 FE0F ; fully-qualified # 💂‍♂️ man guard +1F482 200D 2642 ; minimally-qualified # 💂‍♂ man guard +1F482 1F3FB 200D 2642 FE0F ; fully-qualified # 💂🏻‍♂️ man guard: light skin tone +1F482 1F3FB 200D 2642 ; minimally-qualified # 💂🏻‍♂ man guard: light skin tone +1F482 1F3FC 200D 2642 FE0F ; fully-qualified # 💂🏼‍♂️ man guard: medium-light skin tone +1F482 1F3FC 200D 2642 ; minimally-qualified # 💂🏼‍♂ man guard: medium-light skin tone +1F482 1F3FD 200D 2642 FE0F ; fully-qualified # 💂🏽‍♂️ man guard: medium skin tone +1F482 1F3FD 200D 2642 ; minimally-qualified # 💂🏽‍♂ man guard: medium skin tone +1F482 1F3FE 200D 2642 FE0F ; fully-qualified # 💂🏾‍♂️ man guard: medium-dark skin tone +1F482 1F3FE 200D 2642 ; minimally-qualified # 💂🏾‍♂ man guard: medium-dark skin tone +1F482 1F3FF 200D 2642 FE0F ; fully-qualified # 💂🏿‍♂️ man guard: dark skin tone +1F482 1F3FF 200D 2642 ; minimally-qualified # 💂🏿‍♂ man guard: dark skin tone +1F482 200D 2640 FE0F ; fully-qualified # 💂‍♀️ woman guard +1F482 200D 2640 ; minimally-qualified # 💂‍♀ woman guard +1F482 1F3FB 200D 2640 FE0F ; fully-qualified # 💂🏻‍♀️ woman guard: light skin tone +1F482 1F3FB 200D 2640 ; minimally-qualified # 💂🏻‍♀ woman guard: light skin tone +1F482 1F3FC 200D 2640 FE0F ; fully-qualified # 💂🏼‍♀️ woman guard: medium-light skin tone +1F482 1F3FC 200D 2640 ; minimally-qualified # 💂🏼‍♀ woman guard: medium-light skin tone +1F482 1F3FD 200D 2640 FE0F ; fully-qualified # 💂🏽‍♀️ woman guard: medium skin tone +1F482 1F3FD 200D 2640 ; minimally-qualified # 💂🏽‍♀ woman guard: medium skin tone +1F482 1F3FE 200D 2640 FE0F ; fully-qualified # 💂🏾‍♀️ woman guard: medium-dark skin tone +1F482 1F3FE 200D 2640 ; minimally-qualified # 💂🏾‍♀ woman guard: medium-dark skin tone +1F482 1F3FF 200D 2640 FE0F ; fully-qualified # 💂🏿‍♀️ woman guard: dark skin tone +1F482 1F3FF 200D 2640 ; minimally-qualified # 💂🏿‍♀ woman guard: dark skin tone +1F477 ; fully-qualified # 👷 construction worker +1F477 1F3FB ; fully-qualified # 👷🏻 construction worker: light skin tone +1F477 1F3FC ; fully-qualified # 👷🏼 construction worker: medium-light skin tone +1F477 1F3FD ; fully-qualified # 👷🏽 construction worker: medium skin tone +1F477 1F3FE ; fully-qualified # 👷🏾 construction worker: medium-dark skin tone +1F477 1F3FF ; fully-qualified # 👷🏿 construction worker: dark skin tone +1F477 200D 2642 FE0F ; fully-qualified # 👷‍♂️ man construction worker +1F477 200D 2642 ; minimally-qualified # 👷‍♂ man construction worker +1F477 1F3FB 200D 2642 FE0F ; fully-qualified # 👷🏻‍♂️ man construction worker: light skin tone +1F477 1F3FB 200D 2642 ; minimally-qualified # 👷🏻‍♂ man construction worker: light skin tone +1F477 1F3FC 200D 2642 FE0F ; fully-qualified # 👷🏼‍♂️ man construction worker: medium-light skin tone +1F477 1F3FC 200D 2642 ; minimally-qualified # 👷🏼‍♂ man construction worker: medium-light skin tone +1F477 1F3FD 200D 2642 FE0F ; fully-qualified # 👷🏽‍♂️ man construction worker: medium skin tone +1F477 1F3FD 200D 2642 ; minimally-qualified # 👷🏽‍♂ man construction worker: medium skin tone +1F477 1F3FE 200D 2642 FE0F ; fully-qualified # 👷🏾‍♂️ man construction worker: medium-dark skin tone +1F477 1F3FE 200D 2642 ; minimally-qualified # 👷🏾‍♂ man construction worker: medium-dark skin tone +1F477 1F3FF 200D 2642 FE0F ; fully-qualified # 👷🏿‍♂️ man construction worker: dark skin tone +1F477 1F3FF 200D 2642 ; minimally-qualified # 👷🏿‍♂ man construction worker: dark skin tone +1F477 200D 2640 FE0F ; fully-qualified # 👷‍♀️ woman construction worker +1F477 200D 2640 ; minimally-qualified # 👷‍♀ woman construction worker +1F477 1F3FB 200D 2640 FE0F ; fully-qualified # 👷🏻‍♀️ woman construction worker: light skin tone +1F477 1F3FB 200D 2640 ; minimally-qualified # 👷🏻‍♀ woman construction worker: light skin tone +1F477 1F3FC 200D 2640 FE0F ; fully-qualified # 👷🏼‍♀️ woman construction worker: medium-light skin tone +1F477 1F3FC 200D 2640 ; minimally-qualified # 👷🏼‍♀ woman construction worker: medium-light skin tone +1F477 1F3FD 200D 2640 FE0F ; fully-qualified # 👷🏽‍♀️ woman construction worker: medium skin tone +1F477 1F3FD 200D 2640 ; minimally-qualified # 👷🏽‍♀ woman construction worker: medium skin tone +1F477 1F3FE 200D 2640 FE0F ; fully-qualified # 👷🏾‍♀️ woman construction worker: medium-dark skin tone +1F477 1F3FE 200D 2640 ; minimally-qualified # 👷🏾‍♀ woman construction worker: medium-dark skin tone +1F477 1F3FF 200D 2640 FE0F ; fully-qualified # 👷🏿‍♀️ woman construction worker: dark skin tone +1F477 1F3FF 200D 2640 ; minimally-qualified # 👷🏿‍♀ woman construction worker: dark skin tone +1F934 ; fully-qualified # 🤴 prince +1F934 1F3FB ; fully-qualified # 🤴🏻 prince: light skin tone +1F934 1F3FC ; fully-qualified # 🤴🏼 prince: medium-light skin tone +1F934 1F3FD ; fully-qualified # 🤴🏽 prince: medium skin tone +1F934 1F3FE ; fully-qualified # 🤴🏾 prince: medium-dark skin tone +1F934 1F3FF ; fully-qualified # 🤴🏿 prince: dark skin tone +1F478 ; fully-qualified # 👸 princess +1F478 1F3FB ; fully-qualified # 👸🏻 princess: light skin tone +1F478 1F3FC ; fully-qualified # 👸🏼 princess: medium-light skin tone +1F478 1F3FD ; fully-qualified # 👸🏽 princess: medium skin tone +1F478 1F3FE ; fully-qualified # 👸🏾 princess: medium-dark skin tone +1F478 1F3FF ; fully-qualified # 👸🏿 princess: dark skin tone +1F473 ; fully-qualified # 👳 person wearing turban +1F473 1F3FB ; fully-qualified # 👳🏻 person wearing turban: light skin tone +1F473 1F3FC ; fully-qualified # 👳🏼 person wearing turban: medium-light skin tone +1F473 1F3FD ; fully-qualified # 👳🏽 person wearing turban: medium skin tone +1F473 1F3FE ; fully-qualified # 👳🏾 person wearing turban: medium-dark skin tone +1F473 1F3FF ; fully-qualified # 👳🏿 person wearing turban: dark skin tone +1F473 200D 2642 FE0F ; fully-qualified # 👳‍♂️ man wearing turban +1F473 200D 2642 ; minimally-qualified # 👳‍♂ man wearing turban +1F473 1F3FB 200D 2642 FE0F ; fully-qualified # 👳🏻‍♂️ man wearing turban: light skin tone +1F473 1F3FB 200D 2642 ; minimally-qualified # 👳🏻‍♂ man wearing turban: light skin tone +1F473 1F3FC 200D 2642 FE0F ; fully-qualified # 👳🏼‍♂️ man wearing turban: medium-light skin tone +1F473 1F3FC 200D 2642 ; minimally-qualified # 👳🏼‍♂ man wearing turban: medium-light skin tone +1F473 1F3FD 200D 2642 FE0F ; fully-qualified # 👳🏽‍♂️ man wearing turban: medium skin tone +1F473 1F3FD 200D 2642 ; minimally-qualified # 👳🏽‍♂ man wearing turban: medium skin tone +1F473 1F3FE 200D 2642 FE0F ; fully-qualified # 👳🏾‍♂️ man wearing turban: medium-dark skin tone +1F473 1F3FE 200D 2642 ; minimally-qualified # 👳🏾‍♂ man wearing turban: medium-dark skin tone +1F473 1F3FF 200D 2642 FE0F ; fully-qualified # 👳🏿‍♂️ man wearing turban: dark skin tone +1F473 1F3FF 200D 2642 ; minimally-qualified # 👳🏿‍♂ man wearing turban: dark skin tone +1F473 200D 2640 FE0F ; fully-qualified # 👳‍♀️ woman wearing turban +1F473 200D 2640 ; minimally-qualified # 👳‍♀ woman wearing turban +1F473 1F3FB 200D 2640 FE0F ; fully-qualified # 👳🏻‍♀️ woman wearing turban: light skin tone +1F473 1F3FB 200D 2640 ; minimally-qualified # 👳🏻‍♀ woman wearing turban: light skin tone +1F473 1F3FC 200D 2640 FE0F ; fully-qualified # 👳🏼‍♀️ woman wearing turban: medium-light skin tone +1F473 1F3FC 200D 2640 ; minimally-qualified # 👳🏼‍♀ woman wearing turban: medium-light skin tone +1F473 1F3FD 200D 2640 FE0F ; fully-qualified # 👳🏽‍♀️ woman wearing turban: medium skin tone +1F473 1F3FD 200D 2640 ; minimally-qualified # 👳🏽‍♀ woman wearing turban: medium skin tone +1F473 1F3FE 200D 2640 FE0F ; fully-qualified # 👳🏾‍♀️ woman wearing turban: medium-dark skin tone +1F473 1F3FE 200D 2640 ; minimally-qualified # 👳🏾‍♀ woman wearing turban: medium-dark skin tone +1F473 1F3FF 200D 2640 FE0F ; fully-qualified # 👳🏿‍♀️ woman wearing turban: dark skin tone +1F473 1F3FF 200D 2640 ; minimally-qualified # 👳🏿‍♀ woman wearing turban: dark skin tone +1F472 ; fully-qualified # 👲 man with Chinese cap +1F472 1F3FB ; fully-qualified # 👲🏻 man with Chinese cap: light skin tone +1F472 1F3FC ; fully-qualified # 👲🏼 man with Chinese cap: medium-light skin tone +1F472 1F3FD ; fully-qualified # 👲🏽 man with Chinese cap: medium skin tone +1F472 1F3FE ; fully-qualified # 👲🏾 man with Chinese cap: medium-dark skin tone +1F472 1F3FF ; fully-qualified # 👲🏿 man with Chinese cap: dark skin tone +1F9D5 ; fully-qualified # 🧕 woman with headscarf +1F9D5 1F3FB ; fully-qualified # 🧕🏻 woman with headscarf: light skin tone +1F9D5 1F3FC ; fully-qualified # 🧕🏼 woman with headscarf: medium-light skin tone +1F9D5 1F3FD ; fully-qualified # 🧕🏽 woman with headscarf: medium skin tone +1F9D5 1F3FE ; fully-qualified # 🧕🏾 woman with headscarf: medium-dark skin tone +1F9D5 1F3FF ; fully-qualified # 🧕🏿 woman with headscarf: dark skin tone +1F935 ; fully-qualified # 🤵 man in tuxedo +1F935 1F3FB ; fully-qualified # 🤵🏻 man in tuxedo: light skin tone +1F935 1F3FC ; fully-qualified # 🤵🏼 man in tuxedo: medium-light skin tone +1F935 1F3FD ; fully-qualified # 🤵🏽 man in tuxedo: medium skin tone +1F935 1F3FE ; fully-qualified # 🤵🏾 man in tuxedo: medium-dark skin tone +1F935 1F3FF ; fully-qualified # 🤵🏿 man in tuxedo: dark skin tone +1F470 ; fully-qualified # 👰 bride with veil +1F470 1F3FB ; fully-qualified # 👰🏻 bride with veil: light skin tone +1F470 1F3FC ; fully-qualified # 👰🏼 bride with veil: medium-light skin tone +1F470 1F3FD ; fully-qualified # 👰🏽 bride with veil: medium skin tone +1F470 1F3FE ; fully-qualified # 👰🏾 bride with veil: medium-dark skin tone +1F470 1F3FF ; fully-qualified # 👰🏿 bride with veil: dark skin tone +1F930 ; fully-qualified # 🤰 pregnant woman +1F930 1F3FB ; fully-qualified # 🤰🏻 pregnant woman: light skin tone +1F930 1F3FC ; fully-qualified # 🤰🏼 pregnant woman: medium-light skin tone +1F930 1F3FD ; fully-qualified # 🤰🏽 pregnant woman: medium skin tone +1F930 1F3FE ; fully-qualified # 🤰🏾 pregnant woman: medium-dark skin tone +1F930 1F3FF ; fully-qualified # 🤰🏿 pregnant woman: dark skin tone +1F931 ; fully-qualified # 🤱 breast-feeding +1F931 1F3FB ; fully-qualified # 🤱🏻 breast-feeding: light skin tone +1F931 1F3FC ; fully-qualified # 🤱🏼 breast-feeding: medium-light skin tone +1F931 1F3FD ; fully-qualified # 🤱🏽 breast-feeding: medium skin tone +1F931 1F3FE ; fully-qualified # 🤱🏾 breast-feeding: medium-dark skin tone +1F931 1F3FF ; fully-qualified # 🤱🏿 breast-feeding: dark skin tone + +# subgroup: person-fantasy +1F47C ; fully-qualified # 👼 baby angel +1F47C 1F3FB ; fully-qualified # 👼🏻 baby angel: light skin tone +1F47C 1F3FC ; fully-qualified # 👼🏼 baby angel: medium-light skin tone +1F47C 1F3FD ; fully-qualified # 👼🏽 baby angel: medium skin tone +1F47C 1F3FE ; fully-qualified # 👼🏾 baby angel: medium-dark skin tone +1F47C 1F3FF ; fully-qualified # 👼🏿 baby angel: dark skin tone +1F385 ; fully-qualified # 🎅 Santa Claus +1F385 1F3FB ; fully-qualified # 🎅🏻 Santa Claus: light skin tone +1F385 1F3FC ; fully-qualified # 🎅🏼 Santa Claus: medium-light skin tone +1F385 1F3FD ; fully-qualified # 🎅🏽 Santa Claus: medium skin tone +1F385 1F3FE ; fully-qualified # 🎅🏾 Santa Claus: medium-dark skin tone +1F385 1F3FF ; fully-qualified # 🎅🏿 Santa Claus: dark skin tone +1F936 ; fully-qualified # 🤶 Mrs. Claus +1F936 1F3FB ; fully-qualified # 🤶🏻 Mrs. Claus: light skin tone +1F936 1F3FC ; fully-qualified # 🤶🏼 Mrs. Claus: medium-light skin tone +1F936 1F3FD ; fully-qualified # 🤶🏽 Mrs. Claus: medium skin tone +1F936 1F3FE ; fully-qualified # 🤶🏾 Mrs. Claus: medium-dark skin tone +1F936 1F3FF ; fully-qualified # 🤶🏿 Mrs. Claus: dark skin tone +1F9B8 ; fully-qualified # 🦸 superhero +1F9B8 1F3FB ; fully-qualified # 🦸🏻 superhero: light skin tone +1F9B8 1F3FC ; fully-qualified # 🦸🏼 superhero: medium-light skin tone +1F9B8 1F3FD ; fully-qualified # 🦸🏽 superhero: medium skin tone +1F9B8 1F3FE ; fully-qualified # 🦸🏾 superhero: medium-dark skin tone +1F9B8 1F3FF ; fully-qualified # 🦸🏿 superhero: dark skin tone +1F9B8 200D 2642 FE0F ; fully-qualified # 🦸‍♂️ man superhero +1F9B8 200D 2642 ; minimally-qualified # 🦸‍♂ man superhero +1F9B8 1F3FB 200D 2642 FE0F ; fully-qualified # 🦸🏻‍♂️ man superhero: light skin tone +1F9B8 1F3FB 200D 2642 ; minimally-qualified # 🦸🏻‍♂ man superhero: light skin tone +1F9B8 1F3FC 200D 2642 FE0F ; fully-qualified # 🦸🏼‍♂️ man superhero: medium-light skin tone +1F9B8 1F3FC 200D 2642 ; minimally-qualified # 🦸🏼‍♂ man superhero: medium-light skin tone +1F9B8 1F3FD 200D 2642 FE0F ; fully-qualified # 🦸🏽‍♂️ man superhero: medium skin tone +1F9B8 1F3FD 200D 2642 ; minimally-qualified # 🦸🏽‍♂ man superhero: medium skin tone +1F9B8 1F3FE 200D 2642 FE0F ; fully-qualified # 🦸🏾‍♂️ man superhero: medium-dark skin tone +1F9B8 1F3FE 200D 2642 ; minimally-qualified # 🦸🏾‍♂ man superhero: medium-dark skin tone +1F9B8 1F3FF 200D 2642 FE0F ; fully-qualified # 🦸🏿‍♂️ man superhero: dark skin tone +1F9B8 1F3FF 200D 2642 ; minimally-qualified # 🦸🏿‍♂ man superhero: dark skin tone +1F9B8 200D 2640 FE0F ; fully-qualified # 🦸‍♀️ woman superhero +1F9B8 200D 2640 ; minimally-qualified # 🦸‍♀ woman superhero +1F9B8 1F3FB 200D 2640 FE0F ; fully-qualified # 🦸🏻‍♀️ woman superhero: light skin tone +1F9B8 1F3FB 200D 2640 ; minimally-qualified # 🦸🏻‍♀ woman superhero: light skin tone +1F9B8 1F3FC 200D 2640 FE0F ; fully-qualified # 🦸🏼‍♀️ woman superhero: medium-light skin tone +1F9B8 1F3FC 200D 2640 ; minimally-qualified # 🦸🏼‍♀ woman superhero: medium-light skin tone +1F9B8 1F3FD 200D 2640 FE0F ; fully-qualified # 🦸🏽‍♀️ woman superhero: medium skin tone +1F9B8 1F3FD 200D 2640 ; minimally-qualified # 🦸🏽‍♀ woman superhero: medium skin tone +1F9B8 1F3FE 200D 2640 FE0F ; fully-qualified # 🦸🏾‍♀️ woman superhero: medium-dark skin tone +1F9B8 1F3FE 200D 2640 ; minimally-qualified # 🦸🏾‍♀ woman superhero: medium-dark skin tone +1F9B8 1F3FF 200D 2640 FE0F ; fully-qualified # 🦸🏿‍♀️ woman superhero: dark skin tone +1F9B8 1F3FF 200D 2640 ; minimally-qualified # 🦸🏿‍♀ woman superhero: dark skin tone +1F9B9 ; fully-qualified # 🦹 supervillain +1F9B9 1F3FB ; fully-qualified # 🦹🏻 supervillain: light skin tone +1F9B9 1F3FC ; fully-qualified # 🦹🏼 supervillain: medium-light skin tone +1F9B9 1F3FD ; fully-qualified # 🦹🏽 supervillain: medium skin tone +1F9B9 1F3FE ; fully-qualified # 🦹🏾 supervillain: medium-dark skin tone +1F9B9 1F3FF ; fully-qualified # 🦹🏿 supervillain: dark skin tone +1F9B9 200D 2642 FE0F ; fully-qualified # 🦹‍♂️ man supervillain +1F9B9 200D 2642 ; minimally-qualified # 🦹‍♂ man supervillain +1F9B9 1F3FB 200D 2642 FE0F ; fully-qualified # 🦹🏻‍♂️ man supervillain: light skin tone +1F9B9 1F3FB 200D 2642 ; minimally-qualified # 🦹🏻‍♂ man supervillain: light skin tone +1F9B9 1F3FC 200D 2642 FE0F ; fully-qualified # 🦹🏼‍♂️ man supervillain: medium-light skin tone +1F9B9 1F3FC 200D 2642 ; minimally-qualified # 🦹🏼‍♂ man supervillain: medium-light skin tone +1F9B9 1F3FD 200D 2642 FE0F ; fully-qualified # 🦹🏽‍♂️ man supervillain: medium skin tone +1F9B9 1F3FD 200D 2642 ; minimally-qualified # 🦹🏽‍♂ man supervillain: medium skin tone +1F9B9 1F3FE 200D 2642 FE0F ; fully-qualified # 🦹🏾‍♂️ man supervillain: medium-dark skin tone +1F9B9 1F3FE 200D 2642 ; minimally-qualified # 🦹🏾‍♂ man supervillain: medium-dark skin tone +1F9B9 1F3FF 200D 2642 FE0F ; fully-qualified # 🦹🏿‍♂️ man supervillain: dark skin tone +1F9B9 1F3FF 200D 2642 ; minimally-qualified # 🦹🏿‍♂ man supervillain: dark skin tone +1F9B9 200D 2640 FE0F ; fully-qualified # 🦹‍♀️ woman supervillain +1F9B9 200D 2640 ; minimally-qualified # 🦹‍♀ woman supervillain +1F9B9 1F3FB 200D 2640 FE0F ; fully-qualified # 🦹🏻‍♀️ woman supervillain: light skin tone +1F9B9 1F3FB 200D 2640 ; minimally-qualified # 🦹🏻‍♀ woman supervillain: light skin tone +1F9B9 1F3FC 200D 2640 FE0F ; fully-qualified # 🦹🏼‍♀️ woman supervillain: medium-light skin tone +1F9B9 1F3FC 200D 2640 ; minimally-qualified # 🦹🏼‍♀ woman supervillain: medium-light skin tone +1F9B9 1F3FD 200D 2640 FE0F ; fully-qualified # 🦹🏽‍♀️ woman supervillain: medium skin tone +1F9B9 1F3FD 200D 2640 ; minimally-qualified # 🦹🏽‍♀ woman supervillain: medium skin tone +1F9B9 1F3FE 200D 2640 FE0F ; fully-qualified # 🦹🏾‍♀️ woman supervillain: medium-dark skin tone +1F9B9 1F3FE 200D 2640 ; minimally-qualified # 🦹🏾‍♀ woman supervillain: medium-dark skin tone +1F9B9 1F3FF 200D 2640 FE0F ; fully-qualified # 🦹🏿‍♀️ woman supervillain: dark skin tone +1F9B9 1F3FF 200D 2640 ; minimally-qualified # 🦹🏿‍♀ woman supervillain: dark skin tone +1F9D9 ; fully-qualified # 🧙 mage +1F9D9 1F3FB ; fully-qualified # 🧙🏻 mage: light skin tone +1F9D9 1F3FC ; fully-qualified # 🧙🏼 mage: medium-light skin tone +1F9D9 1F3FD ; fully-qualified # 🧙🏽 mage: medium skin tone +1F9D9 1F3FE ; fully-qualified # 🧙🏾 mage: medium-dark skin tone +1F9D9 1F3FF ; fully-qualified # 🧙🏿 mage: dark skin tone +1F9D9 200D 2642 FE0F ; fully-qualified # 🧙‍♂️ man mage +1F9D9 200D 2642 ; minimally-qualified # 🧙‍♂ man mage +1F9D9 1F3FB 200D 2642 FE0F ; fully-qualified # 🧙🏻‍♂️ man mage: light skin tone +1F9D9 1F3FB 200D 2642 ; minimally-qualified # 🧙🏻‍♂ man mage: light skin tone +1F9D9 1F3FC 200D 2642 FE0F ; fully-qualified # 🧙🏼‍♂️ man mage: medium-light skin tone +1F9D9 1F3FC 200D 2642 ; minimally-qualified # 🧙🏼‍♂ man mage: medium-light skin tone +1F9D9 1F3FD 200D 2642 FE0F ; fully-qualified # 🧙🏽‍♂️ man mage: medium skin tone +1F9D9 1F3FD 200D 2642 ; minimally-qualified # 🧙🏽‍♂ man mage: medium skin tone +1F9D9 1F3FE 200D 2642 FE0F ; fully-qualified # 🧙🏾‍♂️ man mage: medium-dark skin tone +1F9D9 1F3FE 200D 2642 ; minimally-qualified # 🧙🏾‍♂ man mage: medium-dark skin tone +1F9D9 1F3FF 200D 2642 FE0F ; fully-qualified # 🧙🏿‍♂️ man mage: dark skin tone +1F9D9 1F3FF 200D 2642 ; minimally-qualified # 🧙🏿‍♂ man mage: dark skin tone +1F9D9 200D 2640 FE0F ; fully-qualified # 🧙‍♀️ woman mage +1F9D9 200D 2640 ; minimally-qualified # 🧙‍♀ woman mage +1F9D9 1F3FB 200D 2640 FE0F ; fully-qualified # 🧙🏻‍♀️ woman mage: light skin tone +1F9D9 1F3FB 200D 2640 ; minimally-qualified # 🧙🏻‍♀ woman mage: light skin tone +1F9D9 1F3FC 200D 2640 FE0F ; fully-qualified # 🧙🏼‍♀️ woman mage: medium-light skin tone +1F9D9 1F3FC 200D 2640 ; minimally-qualified # 🧙🏼‍♀ woman mage: medium-light skin tone +1F9D9 1F3FD 200D 2640 FE0F ; fully-qualified # 🧙🏽‍♀️ woman mage: medium skin tone +1F9D9 1F3FD 200D 2640 ; minimally-qualified # 🧙🏽‍♀ woman mage: medium skin tone +1F9D9 1F3FE 200D 2640 FE0F ; fully-qualified # 🧙🏾‍♀️ woman mage: medium-dark skin tone +1F9D9 1F3FE 200D 2640 ; minimally-qualified # 🧙🏾‍♀ woman mage: medium-dark skin tone +1F9D9 1F3FF 200D 2640 FE0F ; fully-qualified # 🧙🏿‍♀️ woman mage: dark skin tone +1F9D9 1F3FF 200D 2640 ; minimally-qualified # 🧙🏿‍♀ woman mage: dark skin tone +1F9DA ; fully-qualified # 🧚 fairy +1F9DA 1F3FB ; fully-qualified # 🧚🏻 fairy: light skin tone +1F9DA 1F3FC ; fully-qualified # 🧚🏼 fairy: medium-light skin tone +1F9DA 1F3FD ; fully-qualified # 🧚🏽 fairy: medium skin tone +1F9DA 1F3FE ; fully-qualified # 🧚🏾 fairy: medium-dark skin tone +1F9DA 1F3FF ; fully-qualified # 🧚🏿 fairy: dark skin tone +1F9DA 200D 2642 FE0F ; fully-qualified # 🧚‍♂️ man fairy +1F9DA 200D 2642 ; minimally-qualified # 🧚‍♂ man fairy +1F9DA 1F3FB 200D 2642 FE0F ; fully-qualified # 🧚🏻‍♂️ man fairy: light skin tone +1F9DA 1F3FB 200D 2642 ; minimally-qualified # 🧚🏻‍♂ man fairy: light skin tone +1F9DA 1F3FC 200D 2642 FE0F ; fully-qualified # 🧚🏼‍♂️ man fairy: medium-light skin tone +1F9DA 1F3FC 200D 2642 ; minimally-qualified # 🧚🏼‍♂ man fairy: medium-light skin tone +1F9DA 1F3FD 200D 2642 FE0F ; fully-qualified # 🧚🏽‍♂️ man fairy: medium skin tone +1F9DA 1F3FD 200D 2642 ; minimally-qualified # 🧚🏽‍♂ man fairy: medium skin tone +1F9DA 1F3FE 200D 2642 FE0F ; fully-qualified # 🧚🏾‍♂️ man fairy: medium-dark skin tone +1F9DA 1F3FE 200D 2642 ; minimally-qualified # 🧚🏾‍♂ man fairy: medium-dark skin tone +1F9DA 1F3FF 200D 2642 FE0F ; fully-qualified # 🧚🏿‍♂️ man fairy: dark skin tone +1F9DA 1F3FF 200D 2642 ; minimally-qualified # 🧚🏿‍♂ man fairy: dark skin tone +1F9DA 200D 2640 FE0F ; fully-qualified # 🧚‍♀️ woman fairy +1F9DA 200D 2640 ; minimally-qualified # 🧚‍♀ woman fairy +1F9DA 1F3FB 200D 2640 FE0F ; fully-qualified # 🧚🏻‍♀️ woman fairy: light skin tone +1F9DA 1F3FB 200D 2640 ; minimally-qualified # 🧚🏻‍♀ woman fairy: light skin tone +1F9DA 1F3FC 200D 2640 FE0F ; fully-qualified # 🧚🏼‍♀️ woman fairy: medium-light skin tone +1F9DA 1F3FC 200D 2640 ; minimally-qualified # 🧚🏼‍♀ woman fairy: medium-light skin tone +1F9DA 1F3FD 200D 2640 FE0F ; fully-qualified # 🧚🏽‍♀️ woman fairy: medium skin tone +1F9DA 1F3FD 200D 2640 ; minimally-qualified # 🧚🏽‍♀ woman fairy: medium skin tone +1F9DA 1F3FE 200D 2640 FE0F ; fully-qualified # 🧚🏾‍♀️ woman fairy: medium-dark skin tone +1F9DA 1F3FE 200D 2640 ; minimally-qualified # 🧚🏾‍♀ woman fairy: medium-dark skin tone +1F9DA 1F3FF 200D 2640 FE0F ; fully-qualified # 🧚🏿‍♀️ woman fairy: dark skin tone +1F9DA 1F3FF 200D 2640 ; minimally-qualified # 🧚🏿‍♀ woman fairy: dark skin tone +1F9DB ; fully-qualified # 🧛 vampire +1F9DB 1F3FB ; fully-qualified # 🧛🏻 vampire: light skin tone +1F9DB 1F3FC ; fully-qualified # 🧛🏼 vampire: medium-light skin tone +1F9DB 1F3FD ; fully-qualified # 🧛🏽 vampire: medium skin tone +1F9DB 1F3FE ; fully-qualified # 🧛🏾 vampire: medium-dark skin tone +1F9DB 1F3FF ; fully-qualified # 🧛🏿 vampire: dark skin tone +1F9DB 200D 2642 FE0F ; fully-qualified # 🧛‍♂️ man vampire +1F9DB 200D 2642 ; minimally-qualified # 🧛‍♂ man vampire +1F9DB 1F3FB 200D 2642 FE0F ; fully-qualified # 🧛🏻‍♂️ man vampire: light skin tone +1F9DB 1F3FB 200D 2642 ; minimally-qualified # 🧛🏻‍♂ man vampire: light skin tone +1F9DB 1F3FC 200D 2642 FE0F ; fully-qualified # 🧛🏼‍♂️ man vampire: medium-light skin tone +1F9DB 1F3FC 200D 2642 ; minimally-qualified # 🧛🏼‍♂ man vampire: medium-light skin tone +1F9DB 1F3FD 200D 2642 FE0F ; fully-qualified # 🧛🏽‍♂️ man vampire: medium skin tone +1F9DB 1F3FD 200D 2642 ; minimally-qualified # 🧛🏽‍♂ man vampire: medium skin tone +1F9DB 1F3FE 200D 2642 FE0F ; fully-qualified # 🧛🏾‍♂️ man vampire: medium-dark skin tone +1F9DB 1F3FE 200D 2642 ; minimally-qualified # 🧛🏾‍♂ man vampire: medium-dark skin tone +1F9DB 1F3FF 200D 2642 FE0F ; fully-qualified # 🧛🏿‍♂️ man vampire: dark skin tone +1F9DB 1F3FF 200D 2642 ; minimally-qualified # 🧛🏿‍♂ man vampire: dark skin tone +1F9DB 200D 2640 FE0F ; fully-qualified # 🧛‍♀️ woman vampire +1F9DB 200D 2640 ; minimally-qualified # 🧛‍♀ woman vampire +1F9DB 1F3FB 200D 2640 FE0F ; fully-qualified # 🧛🏻‍♀️ woman vampire: light skin tone +1F9DB 1F3FB 200D 2640 ; minimally-qualified # 🧛🏻‍♀ woman vampire: light skin tone +1F9DB 1F3FC 200D 2640 FE0F ; fully-qualified # 🧛🏼‍♀️ woman vampire: medium-light skin tone +1F9DB 1F3FC 200D 2640 ; minimally-qualified # 🧛🏼‍♀ woman vampire: medium-light skin tone +1F9DB 1F3FD 200D 2640 FE0F ; fully-qualified # 🧛🏽‍♀️ woman vampire: medium skin tone +1F9DB 1F3FD 200D 2640 ; minimally-qualified # 🧛🏽‍♀ woman vampire: medium skin tone +1F9DB 1F3FE 200D 2640 FE0F ; fully-qualified # 🧛🏾‍♀️ woman vampire: medium-dark skin tone +1F9DB 1F3FE 200D 2640 ; minimally-qualified # 🧛🏾‍♀ woman vampire: medium-dark skin tone +1F9DB 1F3FF 200D 2640 FE0F ; fully-qualified # 🧛🏿‍♀️ woman vampire: dark skin tone +1F9DB 1F3FF 200D 2640 ; minimally-qualified # 🧛🏿‍♀ woman vampire: dark skin tone +1F9DC ; fully-qualified # 🧜 merperson +1F9DC 1F3FB ; fully-qualified # 🧜🏻 merperson: light skin tone +1F9DC 1F3FC ; fully-qualified # 🧜🏼 merperson: medium-light skin tone +1F9DC 1F3FD ; fully-qualified # 🧜🏽 merperson: medium skin tone +1F9DC 1F3FE ; fully-qualified # 🧜🏾 merperson: medium-dark skin tone +1F9DC 1F3FF ; fully-qualified # 🧜🏿 merperson: dark skin tone +1F9DC 200D 2642 FE0F ; fully-qualified # 🧜‍♂️ merman +1F9DC 200D 2642 ; minimally-qualified # 🧜‍♂ merman +1F9DC 1F3FB 200D 2642 FE0F ; fully-qualified # 🧜🏻‍♂️ merman: light skin tone +1F9DC 1F3FB 200D 2642 ; minimally-qualified # 🧜🏻‍♂ merman: light skin tone +1F9DC 1F3FC 200D 2642 FE0F ; fully-qualified # 🧜🏼‍♂️ merman: medium-light skin tone +1F9DC 1F3FC 200D 2642 ; minimally-qualified # 🧜🏼‍♂ merman: medium-light skin tone +1F9DC 1F3FD 200D 2642 FE0F ; fully-qualified # 🧜🏽‍♂️ merman: medium skin tone +1F9DC 1F3FD 200D 2642 ; minimally-qualified # 🧜🏽‍♂ merman: medium skin tone +1F9DC 1F3FE 200D 2642 FE0F ; fully-qualified # 🧜🏾‍♂️ merman: medium-dark skin tone +1F9DC 1F3FE 200D 2642 ; minimally-qualified # 🧜🏾‍♂ merman: medium-dark skin tone +1F9DC 1F3FF 200D 2642 FE0F ; fully-qualified # 🧜🏿‍♂️ merman: dark skin tone +1F9DC 1F3FF 200D 2642 ; minimally-qualified # 🧜🏿‍♂ merman: dark skin tone +1F9DC 200D 2640 FE0F ; fully-qualified # 🧜‍♀️ mermaid +1F9DC 200D 2640 ; minimally-qualified # 🧜‍♀ mermaid +1F9DC 1F3FB 200D 2640 FE0F ; fully-qualified # 🧜🏻‍♀️ mermaid: light skin tone +1F9DC 1F3FB 200D 2640 ; minimally-qualified # 🧜🏻‍♀ mermaid: light skin tone +1F9DC 1F3FC 200D 2640 FE0F ; fully-qualified # 🧜🏼‍♀️ mermaid: medium-light skin tone +1F9DC 1F3FC 200D 2640 ; minimally-qualified # 🧜🏼‍♀ mermaid: medium-light skin tone +1F9DC 1F3FD 200D 2640 FE0F ; fully-qualified # 🧜🏽‍♀️ mermaid: medium skin tone +1F9DC 1F3FD 200D 2640 ; minimally-qualified # 🧜🏽‍♀ mermaid: medium skin tone +1F9DC 1F3FE 200D 2640 FE0F ; fully-qualified # 🧜🏾‍♀️ mermaid: medium-dark skin tone +1F9DC 1F3FE 200D 2640 ; minimally-qualified # 🧜🏾‍♀ mermaid: medium-dark skin tone +1F9DC 1F3FF 200D 2640 FE0F ; fully-qualified # 🧜🏿‍♀️ mermaid: dark skin tone +1F9DC 1F3FF 200D 2640 ; minimally-qualified # 🧜🏿‍♀ mermaid: dark skin tone +1F9DD ; fully-qualified # 🧝 elf +1F9DD 1F3FB ; fully-qualified # 🧝🏻 elf: light skin tone +1F9DD 1F3FC ; fully-qualified # 🧝🏼 elf: medium-light skin tone +1F9DD 1F3FD ; fully-qualified # 🧝🏽 elf: medium skin tone +1F9DD 1F3FE ; fully-qualified # 🧝🏾 elf: medium-dark skin tone +1F9DD 1F3FF ; fully-qualified # 🧝🏿 elf: dark skin tone +1F9DD 200D 2642 FE0F ; fully-qualified # 🧝‍♂️ man elf +1F9DD 200D 2642 ; minimally-qualified # 🧝‍♂ man elf +1F9DD 1F3FB 200D 2642 FE0F ; fully-qualified # 🧝🏻‍♂️ man elf: light skin tone +1F9DD 1F3FB 200D 2642 ; minimally-qualified # 🧝🏻‍♂ man elf: light skin tone +1F9DD 1F3FC 200D 2642 FE0F ; fully-qualified # 🧝🏼‍♂️ man elf: medium-light skin tone +1F9DD 1F3FC 200D 2642 ; minimally-qualified # 🧝🏼‍♂ man elf: medium-light skin tone +1F9DD 1F3FD 200D 2642 FE0F ; fully-qualified # 🧝🏽‍♂️ man elf: medium skin tone +1F9DD 1F3FD 200D 2642 ; minimally-qualified # 🧝🏽‍♂ man elf: medium skin tone +1F9DD 1F3FE 200D 2642 FE0F ; fully-qualified # 🧝🏾‍♂️ man elf: medium-dark skin tone +1F9DD 1F3FE 200D 2642 ; minimally-qualified # 🧝🏾‍♂ man elf: medium-dark skin tone +1F9DD 1F3FF 200D 2642 FE0F ; fully-qualified # 🧝🏿‍♂️ man elf: dark skin tone +1F9DD 1F3FF 200D 2642 ; minimally-qualified # 🧝🏿‍♂ man elf: dark skin tone +1F9DD 200D 2640 FE0F ; fully-qualified # 🧝‍♀️ woman elf +1F9DD 200D 2640 ; minimally-qualified # 🧝‍♀ woman elf +1F9DD 1F3FB 200D 2640 FE0F ; fully-qualified # 🧝🏻‍♀️ woman elf: light skin tone +1F9DD 1F3FB 200D 2640 ; minimally-qualified # 🧝🏻‍♀ woman elf: light skin tone +1F9DD 1F3FC 200D 2640 FE0F ; fully-qualified # 🧝🏼‍♀️ woman elf: medium-light skin tone +1F9DD 1F3FC 200D 2640 ; minimally-qualified # 🧝🏼‍♀ woman elf: medium-light skin tone +1F9DD 1F3FD 200D 2640 FE0F ; fully-qualified # 🧝🏽‍♀️ woman elf: medium skin tone +1F9DD 1F3FD 200D 2640 ; minimally-qualified # 🧝🏽‍♀ woman elf: medium skin tone +1F9DD 1F3FE 200D 2640 FE0F ; fully-qualified # 🧝🏾‍♀️ woman elf: medium-dark skin tone +1F9DD 1F3FE 200D 2640 ; minimally-qualified # 🧝🏾‍♀ woman elf: medium-dark skin tone +1F9DD 1F3FF 200D 2640 FE0F ; fully-qualified # 🧝🏿‍♀️ woman elf: dark skin tone +1F9DD 1F3FF 200D 2640 ; minimally-qualified # 🧝🏿‍♀ woman elf: dark skin tone +1F9DE ; fully-qualified # 🧞 genie +1F9DE 200D 2642 FE0F ; fully-qualified # 🧞‍♂️ man genie +1F9DE 200D 2642 ; minimally-qualified # 🧞‍♂ man genie +1F9DE 200D 2640 FE0F ; fully-qualified # 🧞‍♀️ woman genie +1F9DE 200D 2640 ; minimally-qualified # 🧞‍♀ woman genie +1F9DF ; fully-qualified # 🧟 zombie +1F9DF 200D 2642 FE0F ; fully-qualified # 🧟‍♂️ man zombie +1F9DF 200D 2642 ; minimally-qualified # 🧟‍♂ man zombie +1F9DF 200D 2640 FE0F ; fully-qualified # 🧟‍♀️ woman zombie +1F9DF 200D 2640 ; minimally-qualified # 🧟‍♀ woman zombie + +# subgroup: person-activity +1F486 ; fully-qualified # 💆 person getting massage +1F486 1F3FB ; fully-qualified # 💆🏻 person getting massage: light skin tone +1F486 1F3FC ; fully-qualified # 💆🏼 person getting massage: medium-light skin tone +1F486 1F3FD ; fully-qualified # 💆🏽 person getting massage: medium skin tone +1F486 1F3FE ; fully-qualified # 💆🏾 person getting massage: medium-dark skin tone +1F486 1F3FF ; fully-qualified # 💆🏿 person getting massage: dark skin tone +1F486 200D 2642 FE0F ; fully-qualified # 💆‍♂️ man getting massage +1F486 200D 2642 ; minimally-qualified # 💆‍♂ man getting massage +1F486 1F3FB 200D 2642 FE0F ; fully-qualified # 💆🏻‍♂️ man getting massage: light skin tone +1F486 1F3FB 200D 2642 ; minimally-qualified # 💆🏻‍♂ man getting massage: light skin tone +1F486 1F3FC 200D 2642 FE0F ; fully-qualified # 💆🏼‍♂️ man getting massage: medium-light skin tone +1F486 1F3FC 200D 2642 ; minimally-qualified # 💆🏼‍♂ man getting massage: medium-light skin tone +1F486 1F3FD 200D 2642 FE0F ; fully-qualified # 💆🏽‍♂️ man getting massage: medium skin tone +1F486 1F3FD 200D 2642 ; minimally-qualified # 💆🏽‍♂ man getting massage: medium skin tone +1F486 1F3FE 200D 2642 FE0F ; fully-qualified # 💆🏾‍♂️ man getting massage: medium-dark skin tone +1F486 1F3FE 200D 2642 ; minimally-qualified # 💆🏾‍♂ man getting massage: medium-dark skin tone +1F486 1F3FF 200D 2642 FE0F ; fully-qualified # 💆🏿‍♂️ man getting massage: dark skin tone +1F486 1F3FF 200D 2642 ; minimally-qualified # 💆🏿‍♂ man getting massage: dark skin tone +1F486 200D 2640 FE0F ; fully-qualified # 💆‍♀️ woman getting massage +1F486 200D 2640 ; minimally-qualified # 💆‍♀ woman getting massage +1F486 1F3FB 200D 2640 FE0F ; fully-qualified # 💆🏻‍♀️ woman getting massage: light skin tone +1F486 1F3FB 200D 2640 ; minimally-qualified # 💆🏻‍♀ woman getting massage: light skin tone +1F486 1F3FC 200D 2640 FE0F ; fully-qualified # 💆🏼‍♀️ woman getting massage: medium-light skin tone +1F486 1F3FC 200D 2640 ; minimally-qualified # 💆🏼‍♀ woman getting massage: medium-light skin tone +1F486 1F3FD 200D 2640 FE0F ; fully-qualified # 💆🏽‍♀️ woman getting massage: medium skin tone +1F486 1F3FD 200D 2640 ; minimally-qualified # 💆🏽‍♀ woman getting massage: medium skin tone +1F486 1F3FE 200D 2640 FE0F ; fully-qualified # 💆🏾‍♀️ woman getting massage: medium-dark skin tone +1F486 1F3FE 200D 2640 ; minimally-qualified # 💆🏾‍♀ woman getting massage: medium-dark skin tone +1F486 1F3FF 200D 2640 FE0F ; fully-qualified # 💆🏿‍♀️ woman getting massage: dark skin tone +1F486 1F3FF 200D 2640 ; minimally-qualified # 💆🏿‍♀ woman getting massage: dark skin tone +1F487 ; fully-qualified # 💇 person getting haircut +1F487 1F3FB ; fully-qualified # 💇🏻 person getting haircut: light skin tone +1F487 1F3FC ; fully-qualified # 💇🏼 person getting haircut: medium-light skin tone +1F487 1F3FD ; fully-qualified # 💇🏽 person getting haircut: medium skin tone +1F487 1F3FE ; fully-qualified # 💇🏾 person getting haircut: medium-dark skin tone +1F487 1F3FF ; fully-qualified # 💇🏿 person getting haircut: dark skin tone +1F487 200D 2642 FE0F ; fully-qualified # 💇‍♂️ man getting haircut +1F487 200D 2642 ; minimally-qualified # 💇‍♂ man getting haircut +1F487 1F3FB 200D 2642 FE0F ; fully-qualified # 💇🏻‍♂️ man getting haircut: light skin tone +1F487 1F3FB 200D 2642 ; minimally-qualified # 💇🏻‍♂ man getting haircut: light skin tone +1F487 1F3FC 200D 2642 FE0F ; fully-qualified # 💇🏼‍♂️ man getting haircut: medium-light skin tone +1F487 1F3FC 200D 2642 ; minimally-qualified # 💇🏼‍♂ man getting haircut: medium-light skin tone +1F487 1F3FD 200D 2642 FE0F ; fully-qualified # 💇🏽‍♂️ man getting haircut: medium skin tone +1F487 1F3FD 200D 2642 ; minimally-qualified # 💇🏽‍♂ man getting haircut: medium skin tone +1F487 1F3FE 200D 2642 FE0F ; fully-qualified # 💇🏾‍♂️ man getting haircut: medium-dark skin tone +1F487 1F3FE 200D 2642 ; minimally-qualified # 💇🏾‍♂ man getting haircut: medium-dark skin tone +1F487 1F3FF 200D 2642 FE0F ; fully-qualified # 💇🏿‍♂️ man getting haircut: dark skin tone +1F487 1F3FF 200D 2642 ; minimally-qualified # 💇🏿‍♂ man getting haircut: dark skin tone +1F487 200D 2640 FE0F ; fully-qualified # 💇‍♀️ woman getting haircut +1F487 200D 2640 ; minimally-qualified # 💇‍♀ woman getting haircut +1F487 1F3FB 200D 2640 FE0F ; fully-qualified # 💇🏻‍♀️ woman getting haircut: light skin tone +1F487 1F3FB 200D 2640 ; minimally-qualified # 💇🏻‍♀ woman getting haircut: light skin tone +1F487 1F3FC 200D 2640 FE0F ; fully-qualified # 💇🏼‍♀️ woman getting haircut: medium-light skin tone +1F487 1F3FC 200D 2640 ; minimally-qualified # 💇🏼‍♀ woman getting haircut: medium-light skin tone +1F487 1F3FD 200D 2640 FE0F ; fully-qualified # 💇🏽‍♀️ woman getting haircut: medium skin tone +1F487 1F3FD 200D 2640 ; minimally-qualified # 💇🏽‍♀ woman getting haircut: medium skin tone +1F487 1F3FE 200D 2640 FE0F ; fully-qualified # 💇🏾‍♀️ woman getting haircut: medium-dark skin tone +1F487 1F3FE 200D 2640 ; minimally-qualified # 💇🏾‍♀ woman getting haircut: medium-dark skin tone +1F487 1F3FF 200D 2640 FE0F ; fully-qualified # 💇🏿‍♀️ woman getting haircut: dark skin tone +1F487 1F3FF 200D 2640 ; minimally-qualified # 💇🏿‍♀ woman getting haircut: dark skin tone +1F6B6 ; fully-qualified # 🚶 person walking +1F6B6 1F3FB ; fully-qualified # 🚶🏻 person walking: light skin tone +1F6B6 1F3FC ; fully-qualified # 🚶🏼 person walking: medium-light skin tone +1F6B6 1F3FD ; fully-qualified # 🚶🏽 person walking: medium skin tone +1F6B6 1F3FE ; fully-qualified # 🚶🏾 person walking: medium-dark skin tone +1F6B6 1F3FF ; fully-qualified # 🚶🏿 person walking: dark skin tone +1F6B6 200D 2642 FE0F ; fully-qualified # 🚶‍♂️ man walking +1F6B6 200D 2642 ; minimally-qualified # 🚶‍♂ man walking +1F6B6 1F3FB 200D 2642 FE0F ; fully-qualified # 🚶🏻‍♂️ man walking: light skin tone +1F6B6 1F3FB 200D 2642 ; minimally-qualified # 🚶🏻‍♂ man walking: light skin tone +1F6B6 1F3FC 200D 2642 FE0F ; fully-qualified # 🚶🏼‍♂️ man walking: medium-light skin tone +1F6B6 1F3FC 200D 2642 ; minimally-qualified # 🚶🏼‍♂ man walking: medium-light skin tone +1F6B6 1F3FD 200D 2642 FE0F ; fully-qualified # 🚶🏽‍♂️ man walking: medium skin tone +1F6B6 1F3FD 200D 2642 ; minimally-qualified # 🚶🏽‍♂ man walking: medium skin tone +1F6B6 1F3FE 200D 2642 FE0F ; fully-qualified # 🚶🏾‍♂️ man walking: medium-dark skin tone +1F6B6 1F3FE 200D 2642 ; minimally-qualified # 🚶🏾‍♂ man walking: medium-dark skin tone +1F6B6 1F3FF 200D 2642 FE0F ; fully-qualified # 🚶🏿‍♂️ man walking: dark skin tone +1F6B6 1F3FF 200D 2642 ; minimally-qualified # 🚶🏿‍♂ man walking: dark skin tone +1F6B6 200D 2640 FE0F ; fully-qualified # 🚶‍♀️ woman walking +1F6B6 200D 2640 ; minimally-qualified # 🚶‍♀ woman walking +1F6B6 1F3FB 200D 2640 FE0F ; fully-qualified # 🚶🏻‍♀️ woman walking: light skin tone +1F6B6 1F3FB 200D 2640 ; minimally-qualified # 🚶🏻‍♀ woman walking: light skin tone +1F6B6 1F3FC 200D 2640 FE0F ; fully-qualified # 🚶🏼‍♀️ woman walking: medium-light skin tone +1F6B6 1F3FC 200D 2640 ; minimally-qualified # 🚶🏼‍♀ woman walking: medium-light skin tone +1F6B6 1F3FD 200D 2640 FE0F ; fully-qualified # 🚶🏽‍♀️ woman walking: medium skin tone +1F6B6 1F3FD 200D 2640 ; minimally-qualified # 🚶🏽‍♀ woman walking: medium skin tone +1F6B6 1F3FE 200D 2640 FE0F ; fully-qualified # 🚶🏾‍♀️ woman walking: medium-dark skin tone +1F6B6 1F3FE 200D 2640 ; minimally-qualified # 🚶🏾‍♀ woman walking: medium-dark skin tone +1F6B6 1F3FF 200D 2640 FE0F ; fully-qualified # 🚶🏿‍♀️ woman walking: dark skin tone +1F6B6 1F3FF 200D 2640 ; minimally-qualified # 🚶🏿‍♀ woman walking: dark skin tone +1F9CD ; fully-qualified # 🧍 person standing +1F9CD 1F3FB ; fully-qualified # 🧍🏻 person standing: light skin tone +1F9CD 1F3FC ; fully-qualified # 🧍🏼 person standing: medium-light skin tone +1F9CD 1F3FD ; fully-qualified # 🧍🏽 person standing: medium skin tone +1F9CD 1F3FE ; fully-qualified # 🧍🏾 person standing: medium-dark skin tone +1F9CD 1F3FF ; fully-qualified # 🧍🏿 person standing: dark skin tone +1F9CD 200D 2642 FE0F ; fully-qualified # 🧍‍♂️ man standing +1F9CD 200D 2642 ; minimally-qualified # 🧍‍♂ man standing +1F9CD 1F3FB 200D 2642 FE0F ; fully-qualified # 🧍🏻‍♂️ man standing: light skin tone +1F9CD 1F3FB 200D 2642 ; minimally-qualified # 🧍🏻‍♂ man standing: light skin tone +1F9CD 1F3FC 200D 2642 FE0F ; fully-qualified # 🧍🏼‍♂️ man standing: medium-light skin tone +1F9CD 1F3FC 200D 2642 ; minimally-qualified # 🧍🏼‍♂ man standing: medium-light skin tone +1F9CD 1F3FD 200D 2642 FE0F ; fully-qualified # 🧍🏽‍♂️ man standing: medium skin tone +1F9CD 1F3FD 200D 2642 ; minimally-qualified # 🧍🏽‍♂ man standing: medium skin tone +1F9CD 1F3FE 200D 2642 FE0F ; fully-qualified # 🧍🏾‍♂️ man standing: medium-dark skin tone +1F9CD 1F3FE 200D 2642 ; minimally-qualified # 🧍🏾‍♂ man standing: medium-dark skin tone +1F9CD 1F3FF 200D 2642 FE0F ; fully-qualified # 🧍🏿‍♂️ man standing: dark skin tone +1F9CD 1F3FF 200D 2642 ; minimally-qualified # 🧍🏿‍♂ man standing: dark skin tone +1F9CD 200D 2640 FE0F ; fully-qualified # 🧍‍♀️ woman standing +1F9CD 200D 2640 ; minimally-qualified # 🧍‍♀ woman standing +1F9CD 1F3FB 200D 2640 FE0F ; fully-qualified # 🧍🏻‍♀️ woman standing: light skin tone +1F9CD 1F3FB 200D 2640 ; minimally-qualified # 🧍🏻‍♀ woman standing: light skin tone +1F9CD 1F3FC 200D 2640 FE0F ; fully-qualified # 🧍🏼‍♀️ woman standing: medium-light skin tone +1F9CD 1F3FC 200D 2640 ; minimally-qualified # 🧍🏼‍♀ woman standing: medium-light skin tone +1F9CD 1F3FD 200D 2640 FE0F ; fully-qualified # 🧍🏽‍♀️ woman standing: medium skin tone +1F9CD 1F3FD 200D 2640 ; minimally-qualified # 🧍🏽‍♀ woman standing: medium skin tone +1F9CD 1F3FE 200D 2640 FE0F ; fully-qualified # 🧍🏾‍♀️ woman standing: medium-dark skin tone +1F9CD 1F3FE 200D 2640 ; minimally-qualified # 🧍🏾‍♀ woman standing: medium-dark skin tone +1F9CD 1F3FF 200D 2640 FE0F ; fully-qualified # 🧍🏿‍♀️ woman standing: dark skin tone +1F9CD 1F3FF 200D 2640 ; minimally-qualified # 🧍🏿‍♀ woman standing: dark skin tone +1F9CE ; fully-qualified # 🧎 person kneeling +1F9CE 1F3FB ; fully-qualified # 🧎🏻 person kneeling: light skin tone +1F9CE 1F3FC ; fully-qualified # 🧎🏼 person kneeling: medium-light skin tone +1F9CE 1F3FD ; fully-qualified # 🧎🏽 person kneeling: medium skin tone +1F9CE 1F3FE ; fully-qualified # 🧎🏾 person kneeling: medium-dark skin tone +1F9CE 1F3FF ; fully-qualified # 🧎🏿 person kneeling: dark skin tone +1F9CE 200D 2642 FE0F ; fully-qualified # 🧎‍♂️ man kneeling +1F9CE 200D 2642 ; minimally-qualified # 🧎‍♂ man kneeling +1F9CE 1F3FB 200D 2642 FE0F ; fully-qualified # 🧎🏻‍♂️ man kneeling: light skin tone +1F9CE 1F3FB 200D 2642 ; minimally-qualified # 🧎🏻‍♂ man kneeling: light skin tone +1F9CE 1F3FC 200D 2642 FE0F ; fully-qualified # 🧎🏼‍♂️ man kneeling: medium-light skin tone +1F9CE 1F3FC 200D 2642 ; minimally-qualified # 🧎🏼‍♂ man kneeling: medium-light skin tone +1F9CE 1F3FD 200D 2642 FE0F ; fully-qualified # 🧎🏽‍♂️ man kneeling: medium skin tone +1F9CE 1F3FD 200D 2642 ; minimally-qualified # 🧎🏽‍♂ man kneeling: medium skin tone +1F9CE 1F3FE 200D 2642 FE0F ; fully-qualified # 🧎🏾‍♂️ man kneeling: medium-dark skin tone +1F9CE 1F3FE 200D 2642 ; minimally-qualified # 🧎🏾‍♂ man kneeling: medium-dark skin tone +1F9CE 1F3FF 200D 2642 FE0F ; fully-qualified # 🧎🏿‍♂️ man kneeling: dark skin tone +1F9CE 1F3FF 200D 2642 ; minimally-qualified # 🧎🏿‍♂ man kneeling: dark skin tone +1F9CE 200D 2640 FE0F ; fully-qualified # 🧎‍♀️ woman kneeling +1F9CE 200D 2640 ; minimally-qualified # 🧎‍♀ woman kneeling +1F9CE 1F3FB 200D 2640 FE0F ; fully-qualified # 🧎🏻‍♀️ woman kneeling: light skin tone +1F9CE 1F3FB 200D 2640 ; minimally-qualified # 🧎🏻‍♀ woman kneeling: light skin tone +1F9CE 1F3FC 200D 2640 FE0F ; fully-qualified # 🧎🏼‍♀️ woman kneeling: medium-light skin tone +1F9CE 1F3FC 200D 2640 ; minimally-qualified # 🧎🏼‍♀ woman kneeling: medium-light skin tone +1F9CE 1F3FD 200D 2640 FE0F ; fully-qualified # 🧎🏽‍♀️ woman kneeling: medium skin tone +1F9CE 1F3FD 200D 2640 ; minimally-qualified # 🧎🏽‍♀ woman kneeling: medium skin tone +1F9CE 1F3FE 200D 2640 FE0F ; fully-qualified # 🧎🏾‍♀️ woman kneeling: medium-dark skin tone +1F9CE 1F3FE 200D 2640 ; minimally-qualified # 🧎🏾‍♀ woman kneeling: medium-dark skin tone +1F9CE 1F3FF 200D 2640 FE0F ; fully-qualified # 🧎🏿‍♀️ woman kneeling: dark skin tone +1F9CE 1F3FF 200D 2640 ; minimally-qualified # 🧎🏿‍♀ woman kneeling: dark skin tone +1F468 200D 1F9AF ; fully-qualified # 👨‍🦯 man with probing cane +1F468 1F3FB 200D 1F9AF ; fully-qualified # 👨🏻‍🦯 man with probing cane: light skin tone +1F468 1F3FC 200D 1F9AF ; fully-qualified # 👨🏼‍🦯 man with probing cane: medium-light skin tone +1F468 1F3FD 200D 1F9AF ; fully-qualified # 👨🏽‍🦯 man with probing cane: medium skin tone +1F468 1F3FE 200D 1F9AF ; fully-qualified # 👨🏾‍🦯 man with probing cane: medium-dark skin tone +1F468 1F3FF 200D 1F9AF ; fully-qualified # 👨🏿‍🦯 man with probing cane: dark skin tone +1F469 200D 1F9AF ; fully-qualified # 👩‍🦯 woman with probing cane +1F469 1F3FB 200D 1F9AF ; fully-qualified # 👩🏻‍🦯 woman with probing cane: light skin tone +1F469 1F3FC 200D 1F9AF ; fully-qualified # 👩🏼‍🦯 woman with probing cane: medium-light skin tone +1F469 1F3FD 200D 1F9AF ; fully-qualified # 👩🏽‍🦯 woman with probing cane: medium skin tone +1F469 1F3FE 200D 1F9AF ; fully-qualified # 👩🏾‍🦯 woman with probing cane: medium-dark skin tone +1F469 1F3FF 200D 1F9AF ; fully-qualified # 👩🏿‍🦯 woman with probing cane: dark skin tone +1F468 200D 1F9BC ; fully-qualified # 👨‍🦼 man in motorized wheelchair +1F468 1F3FB 200D 1F9BC ; fully-qualified # 👨🏻‍🦼 man in motorized wheelchair: light skin tone +1F468 1F3FC 200D 1F9BC ; fully-qualified # 👨🏼‍🦼 man in motorized wheelchair: medium-light skin tone +1F468 1F3FD 200D 1F9BC ; fully-qualified # 👨🏽‍🦼 man in motorized wheelchair: medium skin tone +1F468 1F3FE 200D 1F9BC ; fully-qualified # 👨🏾‍🦼 man in motorized wheelchair: medium-dark skin tone +1F468 1F3FF 200D 1F9BC ; fully-qualified # 👨🏿‍🦼 man in motorized wheelchair: dark skin tone +1F469 200D 1F9BC ; fully-qualified # 👩‍🦼 woman in motorized wheelchair +1F469 1F3FB 200D 1F9BC ; fully-qualified # 👩🏻‍🦼 woman in motorized wheelchair: light skin tone +1F469 1F3FC 200D 1F9BC ; fully-qualified # 👩🏼‍🦼 woman in motorized wheelchair: medium-light skin tone +1F469 1F3FD 200D 1F9BC ; fully-qualified # 👩🏽‍🦼 woman in motorized wheelchair: medium skin tone +1F469 1F3FE 200D 1F9BC ; fully-qualified # 👩🏾‍🦼 woman in motorized wheelchair: medium-dark skin tone +1F469 1F3FF 200D 1F9BC ; fully-qualified # 👩🏿‍🦼 woman in motorized wheelchair: dark skin tone +1F468 200D 1F9BD ; fully-qualified # 👨‍🦽 man in manual wheelchair +1F468 1F3FB 200D 1F9BD ; fully-qualified # 👨🏻‍🦽 man in manual wheelchair: light skin tone +1F468 1F3FC 200D 1F9BD ; fully-qualified # 👨🏼‍🦽 man in manual wheelchair: medium-light skin tone +1F468 1F3FD 200D 1F9BD ; fully-qualified # 👨🏽‍🦽 man in manual wheelchair: medium skin tone +1F468 1F3FE 200D 1F9BD ; fully-qualified # 👨🏾‍🦽 man in manual wheelchair: medium-dark skin tone +1F468 1F3FF 200D 1F9BD ; fully-qualified # 👨🏿‍🦽 man in manual wheelchair: dark skin tone +1F469 200D 1F9BD ; fully-qualified # 👩‍🦽 woman in manual wheelchair +1F469 1F3FB 200D 1F9BD ; fully-qualified # 👩🏻‍🦽 woman in manual wheelchair: light skin tone +1F469 1F3FC 200D 1F9BD ; fully-qualified # 👩🏼‍🦽 woman in manual wheelchair: medium-light skin tone +1F469 1F3FD 200D 1F9BD ; fully-qualified # 👩🏽‍🦽 woman in manual wheelchair: medium skin tone +1F469 1F3FE 200D 1F9BD ; fully-qualified # 👩🏾‍🦽 woman in manual wheelchair: medium-dark skin tone +1F469 1F3FF 200D 1F9BD ; fully-qualified # 👩🏿‍🦽 woman in manual wheelchair: dark skin tone +1F3C3 ; fully-qualified # 🏃 person running +1F3C3 1F3FB ; fully-qualified # 🏃🏻 person running: light skin tone +1F3C3 1F3FC ; fully-qualified # 🏃🏼 person running: medium-light skin tone +1F3C3 1F3FD ; fully-qualified # 🏃🏽 person running: medium skin tone +1F3C3 1F3FE ; fully-qualified # 🏃🏾 person running: medium-dark skin tone +1F3C3 1F3FF ; fully-qualified # 🏃🏿 person running: dark skin tone +1F3C3 200D 2642 FE0F ; fully-qualified # 🏃‍♂️ man running +1F3C3 200D 2642 ; minimally-qualified # 🏃‍♂ man running +1F3C3 1F3FB 200D 2642 FE0F ; fully-qualified # 🏃🏻‍♂️ man running: light skin tone +1F3C3 1F3FB 200D 2642 ; minimally-qualified # 🏃🏻‍♂ man running: light skin tone +1F3C3 1F3FC 200D 2642 FE0F ; fully-qualified # 🏃🏼‍♂️ man running: medium-light skin tone +1F3C3 1F3FC 200D 2642 ; minimally-qualified # 🏃🏼‍♂ man running: medium-light skin tone +1F3C3 1F3FD 200D 2642 FE0F ; fully-qualified # 🏃🏽‍♂️ man running: medium skin tone +1F3C3 1F3FD 200D 2642 ; minimally-qualified # 🏃🏽‍♂ man running: medium skin tone +1F3C3 1F3FE 200D 2642 FE0F ; fully-qualified # 🏃🏾‍♂️ man running: medium-dark skin tone +1F3C3 1F3FE 200D 2642 ; minimally-qualified # 🏃🏾‍♂ man running: medium-dark skin tone +1F3C3 1F3FF 200D 2642 FE0F ; fully-qualified # 🏃🏿‍♂️ man running: dark skin tone +1F3C3 1F3FF 200D 2642 ; minimally-qualified # 🏃🏿‍♂ man running: dark skin tone +1F3C3 200D 2640 FE0F ; fully-qualified # 🏃‍♀️ woman running +1F3C3 200D 2640 ; minimally-qualified # 🏃‍♀ woman running +1F3C3 1F3FB 200D 2640 FE0F ; fully-qualified # 🏃🏻‍♀️ woman running: light skin tone +1F3C3 1F3FB 200D 2640 ; minimally-qualified # 🏃🏻‍♀ woman running: light skin tone +1F3C3 1F3FC 200D 2640 FE0F ; fully-qualified # 🏃🏼‍♀️ woman running: medium-light skin tone +1F3C3 1F3FC 200D 2640 ; minimally-qualified # 🏃🏼‍♀ woman running: medium-light skin tone +1F3C3 1F3FD 200D 2640 FE0F ; fully-qualified # 🏃🏽‍♀️ woman running: medium skin tone +1F3C3 1F3FD 200D 2640 ; minimally-qualified # 🏃🏽‍♀ woman running: medium skin tone +1F3C3 1F3FE 200D 2640 FE0F ; fully-qualified # 🏃🏾‍♀️ woman running: medium-dark skin tone +1F3C3 1F3FE 200D 2640 ; minimally-qualified # 🏃🏾‍♀ woman running: medium-dark skin tone +1F3C3 1F3FF 200D 2640 FE0F ; fully-qualified # 🏃🏿‍♀️ woman running: dark skin tone +1F3C3 1F3FF 200D 2640 ; minimally-qualified # 🏃🏿‍♀ woman running: dark skin tone +1F483 ; fully-qualified # 💃 woman dancing +1F483 1F3FB ; fully-qualified # 💃🏻 woman dancing: light skin tone +1F483 1F3FC ; fully-qualified # 💃🏼 woman dancing: medium-light skin tone +1F483 1F3FD ; fully-qualified # 💃🏽 woman dancing: medium skin tone +1F483 1F3FE ; fully-qualified # 💃🏾 woman dancing: medium-dark skin tone +1F483 1F3FF ; fully-qualified # 💃🏿 woman dancing: dark skin tone +1F57A ; fully-qualified # 🕺 man dancing +1F57A 1F3FB ; fully-qualified # 🕺🏻 man dancing: light skin tone +1F57A 1F3FC ; fully-qualified # 🕺🏼 man dancing: medium-light skin tone +1F57A 1F3FD ; fully-qualified # 🕺🏽 man dancing: medium skin tone +1F57A 1F3FE ; fully-qualified # 🕺🏾 man dancing: medium-dark skin tone +1F57A 1F3FF ; fully-qualified # 🕺🏿 man dancing: dark skin tone +1F574 FE0F ; fully-qualified # 🕴️ man in suit levitating +1F574 ; unqualified # 🕴 man in suit levitating +1F574 1F3FB ; fully-qualified # 🕴🏻 man in suit levitating: light skin tone +1F574 1F3FC ; fully-qualified # 🕴🏼 man in suit levitating: medium-light skin tone +1F574 1F3FD ; fully-qualified # 🕴🏽 man in suit levitating: medium skin tone +1F574 1F3FE ; fully-qualified # 🕴🏾 man in suit levitating: medium-dark skin tone +1F574 1F3FF ; fully-qualified # 🕴🏿 man in suit levitating: dark skin tone +1F46F ; fully-qualified # 👯 people with bunny ears +1F46F 200D 2642 FE0F ; fully-qualified # 👯‍♂️ men with bunny ears +1F46F 200D 2642 ; minimally-qualified # 👯‍♂ men with bunny ears +1F46F 200D 2640 FE0F ; fully-qualified # 👯‍♀️ women with bunny ears +1F46F 200D 2640 ; minimally-qualified # 👯‍♀ women with bunny ears +1F9D6 ; fully-qualified # 🧖 person in steamy room +1F9D6 1F3FB ; fully-qualified # 🧖🏻 person in steamy room: light skin tone +1F9D6 1F3FC ; fully-qualified # 🧖🏼 person in steamy room: medium-light skin tone +1F9D6 1F3FD ; fully-qualified # 🧖🏽 person in steamy room: medium skin tone +1F9D6 1F3FE ; fully-qualified # 🧖🏾 person in steamy room: medium-dark skin tone +1F9D6 1F3FF ; fully-qualified # 🧖🏿 person in steamy room: dark skin tone +1F9D6 200D 2642 FE0F ; fully-qualified # 🧖‍♂️ man in steamy room +1F9D6 200D 2642 ; minimally-qualified # 🧖‍♂ man in steamy room +1F9D6 1F3FB 200D 2642 FE0F ; fully-qualified # 🧖🏻‍♂️ man in steamy room: light skin tone +1F9D6 1F3FB 200D 2642 ; minimally-qualified # 🧖🏻‍♂ man in steamy room: light skin tone +1F9D6 1F3FC 200D 2642 FE0F ; fully-qualified # 🧖🏼‍♂️ man in steamy room: medium-light skin tone +1F9D6 1F3FC 200D 2642 ; minimally-qualified # 🧖🏼‍♂ man in steamy room: medium-light skin tone +1F9D6 1F3FD 200D 2642 FE0F ; fully-qualified # 🧖🏽‍♂️ man in steamy room: medium skin tone +1F9D6 1F3FD 200D 2642 ; minimally-qualified # 🧖🏽‍♂ man in steamy room: medium skin tone +1F9D6 1F3FE 200D 2642 FE0F ; fully-qualified # 🧖🏾‍♂️ man in steamy room: medium-dark skin tone +1F9D6 1F3FE 200D 2642 ; minimally-qualified # 🧖🏾‍♂ man in steamy room: medium-dark skin tone +1F9D6 1F3FF 200D 2642 FE0F ; fully-qualified # 🧖🏿‍♂️ man in steamy room: dark skin tone +1F9D6 1F3FF 200D 2642 ; minimally-qualified # 🧖🏿‍♂ man in steamy room: dark skin tone +1F9D6 200D 2640 FE0F ; fully-qualified # 🧖‍♀️ woman in steamy room +1F9D6 200D 2640 ; minimally-qualified # 🧖‍♀ woman in steamy room +1F9D6 1F3FB 200D 2640 FE0F ; fully-qualified # 🧖🏻‍♀️ woman in steamy room: light skin tone +1F9D6 1F3FB 200D 2640 ; minimally-qualified # 🧖🏻‍♀ woman in steamy room: light skin tone +1F9D6 1F3FC 200D 2640 FE0F ; fully-qualified # 🧖🏼‍♀️ woman in steamy room: medium-light skin tone +1F9D6 1F3FC 200D 2640 ; minimally-qualified # 🧖🏼‍♀ woman in steamy room: medium-light skin tone +1F9D6 1F3FD 200D 2640 FE0F ; fully-qualified # 🧖🏽‍♀️ woman in steamy room: medium skin tone +1F9D6 1F3FD 200D 2640 ; minimally-qualified # 🧖🏽‍♀ woman in steamy room: medium skin tone +1F9D6 1F3FE 200D 2640 FE0F ; fully-qualified # 🧖🏾‍♀️ woman in steamy room: medium-dark skin tone +1F9D6 1F3FE 200D 2640 ; minimally-qualified # 🧖🏾‍♀ woman in steamy room: medium-dark skin tone +1F9D6 1F3FF 200D 2640 FE0F ; fully-qualified # 🧖🏿‍♀️ woman in steamy room: dark skin tone +1F9D6 1F3FF 200D 2640 ; minimally-qualified # 🧖🏿‍♀ woman in steamy room: dark skin tone +1F9D7 ; fully-qualified # 🧗 person climbing +1F9D7 1F3FB ; fully-qualified # 🧗🏻 person climbing: light skin tone +1F9D7 1F3FC ; fully-qualified # 🧗🏼 person climbing: medium-light skin tone +1F9D7 1F3FD ; fully-qualified # 🧗🏽 person climbing: medium skin tone +1F9D7 1F3FE ; fully-qualified # 🧗🏾 person climbing: medium-dark skin tone +1F9D7 1F3FF ; fully-qualified # 🧗🏿 person climbing: dark skin tone +1F9D7 200D 2642 FE0F ; fully-qualified # 🧗‍♂️ man climbing +1F9D7 200D 2642 ; minimally-qualified # 🧗‍♂ man climbing +1F9D7 1F3FB 200D 2642 FE0F ; fully-qualified # 🧗🏻‍♂️ man climbing: light skin tone +1F9D7 1F3FB 200D 2642 ; minimally-qualified # 🧗🏻‍♂ man climbing: light skin tone +1F9D7 1F3FC 200D 2642 FE0F ; fully-qualified # 🧗🏼‍♂️ man climbing: medium-light skin tone +1F9D7 1F3FC 200D 2642 ; minimally-qualified # 🧗🏼‍♂ man climbing: medium-light skin tone +1F9D7 1F3FD 200D 2642 FE0F ; fully-qualified # 🧗🏽‍♂️ man climbing: medium skin tone +1F9D7 1F3FD 200D 2642 ; minimally-qualified # 🧗🏽‍♂ man climbing: medium skin tone +1F9D7 1F3FE 200D 2642 FE0F ; fully-qualified # 🧗🏾‍♂️ man climbing: medium-dark skin tone +1F9D7 1F3FE 200D 2642 ; minimally-qualified # 🧗🏾‍♂ man climbing: medium-dark skin tone +1F9D7 1F3FF 200D 2642 FE0F ; fully-qualified # 🧗🏿‍♂️ man climbing: dark skin tone +1F9D7 1F3FF 200D 2642 ; minimally-qualified # 🧗🏿‍♂ man climbing: dark skin tone +1F9D7 200D 2640 FE0F ; fully-qualified # 🧗‍♀️ woman climbing +1F9D7 200D 2640 ; minimally-qualified # 🧗‍♀ woman climbing +1F9D7 1F3FB 200D 2640 FE0F ; fully-qualified # 🧗🏻‍♀️ woman climbing: light skin tone +1F9D7 1F3FB 200D 2640 ; minimally-qualified # 🧗🏻‍♀ woman climbing: light skin tone +1F9D7 1F3FC 200D 2640 FE0F ; fully-qualified # 🧗🏼‍♀️ woman climbing: medium-light skin tone +1F9D7 1F3FC 200D 2640 ; minimally-qualified # 🧗🏼‍♀ woman climbing: medium-light skin tone +1F9D7 1F3FD 200D 2640 FE0F ; fully-qualified # 🧗🏽‍♀️ woman climbing: medium skin tone +1F9D7 1F3FD 200D 2640 ; minimally-qualified # 🧗🏽‍♀ woman climbing: medium skin tone +1F9D7 1F3FE 200D 2640 FE0F ; fully-qualified # 🧗🏾‍♀️ woman climbing: medium-dark skin tone +1F9D7 1F3FE 200D 2640 ; minimally-qualified # 🧗🏾‍♀ woman climbing: medium-dark skin tone +1F9D7 1F3FF 200D 2640 FE0F ; fully-qualified # 🧗🏿‍♀️ woman climbing: dark skin tone +1F9D7 1F3FF 200D 2640 ; minimally-qualified # 🧗🏿‍♀ woman climbing: dark skin tone + +# subgroup: person-sport +1F93A ; fully-qualified # 🤺 person fencing +1F3C7 ; fully-qualified # 🏇 horse racing +1F3C7 1F3FB ; fully-qualified # 🏇🏻 horse racing: light skin tone +1F3C7 1F3FC ; fully-qualified # 🏇🏼 horse racing: medium-light skin tone +1F3C7 1F3FD ; fully-qualified # 🏇🏽 horse racing: medium skin tone +1F3C7 1F3FE ; fully-qualified # 🏇🏾 horse racing: medium-dark skin tone +1F3C7 1F3FF ; fully-qualified # 🏇🏿 horse racing: dark skin tone +26F7 FE0F ; fully-qualified # ⛷️ skier +26F7 ; unqualified # ⛷ skier +1F3C2 ; fully-qualified # 🏂 snowboarder +1F3C2 1F3FB ; fully-qualified # 🏂🏻 snowboarder: light skin tone +1F3C2 1F3FC ; fully-qualified # 🏂🏼 snowboarder: medium-light skin tone +1F3C2 1F3FD ; fully-qualified # 🏂🏽 snowboarder: medium skin tone +1F3C2 1F3FE ; fully-qualified # 🏂🏾 snowboarder: medium-dark skin tone +1F3C2 1F3FF ; fully-qualified # 🏂🏿 snowboarder: dark skin tone +1F3CC FE0F ; fully-qualified # 🏌️ person golfing +1F3CC ; unqualified # 🏌 person golfing +1F3CC 1F3FB ; fully-qualified # 🏌🏻 person golfing: light skin tone +1F3CC 1F3FC ; fully-qualified # 🏌🏼 person golfing: medium-light skin tone +1F3CC 1F3FD ; fully-qualified # 🏌🏽 person golfing: medium skin tone +1F3CC 1F3FE ; fully-qualified # 🏌🏾 person golfing: medium-dark skin tone +1F3CC 1F3FF ; fully-qualified # 🏌🏿 person golfing: dark skin tone +1F3CC FE0F 200D 2642 FE0F ; fully-qualified # 🏌️‍♂️ man golfing +1F3CC 200D 2642 FE0F ; unqualified # 🏌‍♂️ man golfing +1F3CC FE0F 200D 2642 ; unqualified # 🏌️‍♂ man golfing +1F3CC 200D 2642 ; unqualified # 🏌‍♂ man golfing +1F3CC 1F3FB 200D 2642 FE0F ; fully-qualified # 🏌🏻‍♂️ man golfing: light skin tone +1F3CC 1F3FB 200D 2642 ; minimally-qualified # 🏌🏻‍♂ man golfing: light skin tone +1F3CC 1F3FC 200D 2642 FE0F ; fully-qualified # 🏌🏼‍♂️ man golfing: medium-light skin tone +1F3CC 1F3FC 200D 2642 ; minimally-qualified # 🏌🏼‍♂ man golfing: medium-light skin tone +1F3CC 1F3FD 200D 2642 FE0F ; fully-qualified # 🏌🏽‍♂️ man golfing: medium skin tone +1F3CC 1F3FD 200D 2642 ; minimally-qualified # 🏌🏽‍♂ man golfing: medium skin tone +1F3CC 1F3FE 200D 2642 FE0F ; fully-qualified # 🏌🏾‍♂️ man golfing: medium-dark skin tone +1F3CC 1F3FE 200D 2642 ; minimally-qualified # 🏌🏾‍♂ man golfing: medium-dark skin tone +1F3CC 1F3FF 200D 2642 FE0F ; fully-qualified # 🏌🏿‍♂️ man golfing: dark skin tone +1F3CC 1F3FF 200D 2642 ; minimally-qualified # 🏌🏿‍♂ man golfing: dark skin tone +1F3CC FE0F 200D 2640 FE0F ; fully-qualified # 🏌️‍♀️ woman golfing +1F3CC 200D 2640 FE0F ; unqualified # 🏌‍♀️ woman golfing +1F3CC FE0F 200D 2640 ; unqualified # 🏌️‍♀ woman golfing +1F3CC 200D 2640 ; unqualified # 🏌‍♀ woman golfing +1F3CC 1F3FB 200D 2640 FE0F ; fully-qualified # 🏌🏻‍♀️ woman golfing: light skin tone +1F3CC 1F3FB 200D 2640 ; minimally-qualified # 🏌🏻‍♀ woman golfing: light skin tone +1F3CC 1F3FC 200D 2640 FE0F ; fully-qualified # 🏌🏼‍♀️ woman golfing: medium-light skin tone +1F3CC 1F3FC 200D 2640 ; minimally-qualified # 🏌🏼‍♀ woman golfing: medium-light skin tone +1F3CC 1F3FD 200D 2640 FE0F ; fully-qualified # 🏌🏽‍♀️ woman golfing: medium skin tone +1F3CC 1F3FD 200D 2640 ; minimally-qualified # 🏌🏽‍♀ woman golfing: medium skin tone +1F3CC 1F3FE 200D 2640 FE0F ; fully-qualified # 🏌🏾‍♀️ woman golfing: medium-dark skin tone +1F3CC 1F3FE 200D 2640 ; minimally-qualified # 🏌🏾‍♀ woman golfing: medium-dark skin tone +1F3CC 1F3FF 200D 2640 FE0F ; fully-qualified # 🏌🏿‍♀️ woman golfing: dark skin tone +1F3CC 1F3FF 200D 2640 ; minimally-qualified # 🏌🏿‍♀ woman golfing: dark skin tone +1F3C4 ; fully-qualified # 🏄 person surfing +1F3C4 1F3FB ; fully-qualified # 🏄🏻 person surfing: light skin tone +1F3C4 1F3FC ; fully-qualified # 🏄🏼 person surfing: medium-light skin tone +1F3C4 1F3FD ; fully-qualified # 🏄🏽 person surfing: medium skin tone +1F3C4 1F3FE ; fully-qualified # 🏄🏾 person surfing: medium-dark skin tone +1F3C4 1F3FF ; fully-qualified # 🏄🏿 person surfing: dark skin tone +1F3C4 200D 2642 FE0F ; fully-qualified # 🏄‍♂️ man surfing +1F3C4 200D 2642 ; minimally-qualified # 🏄‍♂ man surfing +1F3C4 1F3FB 200D 2642 FE0F ; fully-qualified # 🏄🏻‍♂️ man surfing: light skin tone +1F3C4 1F3FB 200D 2642 ; minimally-qualified # 🏄🏻‍♂ man surfing: light skin tone +1F3C4 1F3FC 200D 2642 FE0F ; fully-qualified # 🏄🏼‍♂️ man surfing: medium-light skin tone +1F3C4 1F3FC 200D 2642 ; minimally-qualified # 🏄🏼‍♂ man surfing: medium-light skin tone +1F3C4 1F3FD 200D 2642 FE0F ; fully-qualified # 🏄🏽‍♂️ man surfing: medium skin tone +1F3C4 1F3FD 200D 2642 ; minimally-qualified # 🏄🏽‍♂ man surfing: medium skin tone +1F3C4 1F3FE 200D 2642 FE0F ; fully-qualified # 🏄🏾‍♂️ man surfing: medium-dark skin tone +1F3C4 1F3FE 200D 2642 ; minimally-qualified # 🏄🏾‍♂ man surfing: medium-dark skin tone +1F3C4 1F3FF 200D 2642 FE0F ; fully-qualified # 🏄🏿‍♂️ man surfing: dark skin tone +1F3C4 1F3FF 200D 2642 ; minimally-qualified # 🏄🏿‍♂ man surfing: dark skin tone +1F3C4 200D 2640 FE0F ; fully-qualified # 🏄‍♀️ woman surfing +1F3C4 200D 2640 ; minimally-qualified # 🏄‍♀ woman surfing +1F3C4 1F3FB 200D 2640 FE0F ; fully-qualified # 🏄🏻‍♀️ woman surfing: light skin tone +1F3C4 1F3FB 200D 2640 ; minimally-qualified # 🏄🏻‍♀ woman surfing: light skin tone +1F3C4 1F3FC 200D 2640 FE0F ; fully-qualified # 🏄🏼‍♀️ woman surfing: medium-light skin tone +1F3C4 1F3FC 200D 2640 ; minimally-qualified # 🏄🏼‍♀ woman surfing: medium-light skin tone +1F3C4 1F3FD 200D 2640 FE0F ; fully-qualified # 🏄🏽‍♀️ woman surfing: medium skin tone +1F3C4 1F3FD 200D 2640 ; minimally-qualified # 🏄🏽‍♀ woman surfing: medium skin tone +1F3C4 1F3FE 200D 2640 FE0F ; fully-qualified # 🏄🏾‍♀️ woman surfing: medium-dark skin tone +1F3C4 1F3FE 200D 2640 ; minimally-qualified # 🏄🏾‍♀ woman surfing: medium-dark skin tone +1F3C4 1F3FF 200D 2640 FE0F ; fully-qualified # 🏄🏿‍♀️ woman surfing: dark skin tone +1F3C4 1F3FF 200D 2640 ; minimally-qualified # 🏄🏿‍♀ woman surfing: dark skin tone +1F6A3 ; fully-qualified # 🚣 person rowing boat +1F6A3 1F3FB ; fully-qualified # 🚣🏻 person rowing boat: light skin tone +1F6A3 1F3FC ; fully-qualified # 🚣🏼 person rowing boat: medium-light skin tone +1F6A3 1F3FD ; fully-qualified # 🚣🏽 person rowing boat: medium skin tone +1F6A3 1F3FE ; fully-qualified # 🚣🏾 person rowing boat: medium-dark skin tone +1F6A3 1F3FF ; fully-qualified # 🚣🏿 person rowing boat: dark skin tone +1F6A3 200D 2642 FE0F ; fully-qualified # 🚣‍♂️ man rowing boat +1F6A3 200D 2642 ; minimally-qualified # 🚣‍♂ man rowing boat +1F6A3 1F3FB 200D 2642 FE0F ; fully-qualified # 🚣🏻‍♂️ man rowing boat: light skin tone +1F6A3 1F3FB 200D 2642 ; minimally-qualified # 🚣🏻‍♂ man rowing boat: light skin tone +1F6A3 1F3FC 200D 2642 FE0F ; fully-qualified # 🚣🏼‍♂️ man rowing boat: medium-light skin tone +1F6A3 1F3FC 200D 2642 ; minimally-qualified # 🚣🏼‍♂ man rowing boat: medium-light skin tone +1F6A3 1F3FD 200D 2642 FE0F ; fully-qualified # 🚣🏽‍♂️ man rowing boat: medium skin tone +1F6A3 1F3FD 200D 2642 ; minimally-qualified # 🚣🏽‍♂ man rowing boat: medium skin tone +1F6A3 1F3FE 200D 2642 FE0F ; fully-qualified # 🚣🏾‍♂️ man rowing boat: medium-dark skin tone +1F6A3 1F3FE 200D 2642 ; minimally-qualified # 🚣🏾‍♂ man rowing boat: medium-dark skin tone +1F6A3 1F3FF 200D 2642 FE0F ; fully-qualified # 🚣🏿‍♂️ man rowing boat: dark skin tone +1F6A3 1F3FF 200D 2642 ; minimally-qualified # 🚣🏿‍♂ man rowing boat: dark skin tone +1F6A3 200D 2640 FE0F ; fully-qualified # 🚣‍♀️ woman rowing boat +1F6A3 200D 2640 ; minimally-qualified # 🚣‍♀ woman rowing boat +1F6A3 1F3FB 200D 2640 FE0F ; fully-qualified # 🚣🏻‍♀️ woman rowing boat: light skin tone +1F6A3 1F3FB 200D 2640 ; minimally-qualified # 🚣🏻‍♀ woman rowing boat: light skin tone +1F6A3 1F3FC 200D 2640 FE0F ; fully-qualified # 🚣🏼‍♀️ woman rowing boat: medium-light skin tone +1F6A3 1F3FC 200D 2640 ; minimally-qualified # 🚣🏼‍♀ woman rowing boat: medium-light skin tone +1F6A3 1F3FD 200D 2640 FE0F ; fully-qualified # 🚣🏽‍♀️ woman rowing boat: medium skin tone +1F6A3 1F3FD 200D 2640 ; minimally-qualified # 🚣🏽‍♀ woman rowing boat: medium skin tone +1F6A3 1F3FE 200D 2640 FE0F ; fully-qualified # 🚣🏾‍♀️ woman rowing boat: medium-dark skin tone +1F6A3 1F3FE 200D 2640 ; minimally-qualified # 🚣🏾‍♀ woman rowing boat: medium-dark skin tone +1F6A3 1F3FF 200D 2640 FE0F ; fully-qualified # 🚣🏿‍♀️ woman rowing boat: dark skin tone +1F6A3 1F3FF 200D 2640 ; minimally-qualified # 🚣🏿‍♀ woman rowing boat: dark skin tone +1F3CA ; fully-qualified # 🏊 person swimming +1F3CA 1F3FB ; fully-qualified # 🏊🏻 person swimming: light skin tone +1F3CA 1F3FC ; fully-qualified # 🏊🏼 person swimming: medium-light skin tone +1F3CA 1F3FD ; fully-qualified # 🏊🏽 person swimming: medium skin tone +1F3CA 1F3FE ; fully-qualified # 🏊🏾 person swimming: medium-dark skin tone +1F3CA 1F3FF ; fully-qualified # 🏊🏿 person swimming: dark skin tone +1F3CA 200D 2642 FE0F ; fully-qualified # 🏊‍♂️ man swimming +1F3CA 200D 2642 ; minimally-qualified # 🏊‍♂ man swimming +1F3CA 1F3FB 200D 2642 FE0F ; fully-qualified # 🏊🏻‍♂️ man swimming: light skin tone +1F3CA 1F3FB 200D 2642 ; minimally-qualified # 🏊🏻‍♂ man swimming: light skin tone +1F3CA 1F3FC 200D 2642 FE0F ; fully-qualified # 🏊🏼‍♂️ man swimming: medium-light skin tone +1F3CA 1F3FC 200D 2642 ; minimally-qualified # 🏊🏼‍♂ man swimming: medium-light skin tone +1F3CA 1F3FD 200D 2642 FE0F ; fully-qualified # 🏊🏽‍♂️ man swimming: medium skin tone +1F3CA 1F3FD 200D 2642 ; minimally-qualified # 🏊🏽‍♂ man swimming: medium skin tone +1F3CA 1F3FE 200D 2642 FE0F ; fully-qualified # 🏊🏾‍♂️ man swimming: medium-dark skin tone +1F3CA 1F3FE 200D 2642 ; minimally-qualified # 🏊🏾‍♂ man swimming: medium-dark skin tone +1F3CA 1F3FF 200D 2642 FE0F ; fully-qualified # 🏊🏿‍♂️ man swimming: dark skin tone +1F3CA 1F3FF 200D 2642 ; minimally-qualified # 🏊🏿‍♂ man swimming: dark skin tone +1F3CA 200D 2640 FE0F ; fully-qualified # 🏊‍♀️ woman swimming +1F3CA 200D 2640 ; minimally-qualified # 🏊‍♀ woman swimming +1F3CA 1F3FB 200D 2640 FE0F ; fully-qualified # 🏊🏻‍♀️ woman swimming: light skin tone +1F3CA 1F3FB 200D 2640 ; minimally-qualified # 🏊🏻‍♀ woman swimming: light skin tone +1F3CA 1F3FC 200D 2640 FE0F ; fully-qualified # 🏊🏼‍♀️ woman swimming: medium-light skin tone +1F3CA 1F3FC 200D 2640 ; minimally-qualified # 🏊🏼‍♀ woman swimming: medium-light skin tone +1F3CA 1F3FD 200D 2640 FE0F ; fully-qualified # 🏊🏽‍♀️ woman swimming: medium skin tone +1F3CA 1F3FD 200D 2640 ; minimally-qualified # 🏊🏽‍♀ woman swimming: medium skin tone +1F3CA 1F3FE 200D 2640 FE0F ; fully-qualified # 🏊🏾‍♀️ woman swimming: medium-dark skin tone +1F3CA 1F3FE 200D 2640 ; minimally-qualified # 🏊🏾‍♀ woman swimming: medium-dark skin tone +1F3CA 1F3FF 200D 2640 FE0F ; fully-qualified # 🏊🏿‍♀️ woman swimming: dark skin tone +1F3CA 1F3FF 200D 2640 ; minimally-qualified # 🏊🏿‍♀ woman swimming: dark skin tone +26F9 FE0F ; fully-qualified # ⛹️ person bouncing ball +26F9 ; unqualified # ⛹ person bouncing ball +26F9 1F3FB ; fully-qualified # ⛹🏻 person bouncing ball: light skin tone +26F9 1F3FC ; fully-qualified # ⛹🏼 person bouncing ball: medium-light skin tone +26F9 1F3FD ; fully-qualified # ⛹🏽 person bouncing ball: medium skin tone +26F9 1F3FE ; fully-qualified # ⛹🏾 person bouncing ball: medium-dark skin tone +26F9 1F3FF ; fully-qualified # ⛹🏿 person bouncing ball: dark skin tone +26F9 FE0F 200D 2642 FE0F ; fully-qualified # ⛹️‍♂️ man bouncing ball +26F9 200D 2642 FE0F ; unqualified # ⛹‍♂️ man bouncing ball +26F9 FE0F 200D 2642 ; unqualified # ⛹️‍♂ man bouncing ball +26F9 200D 2642 ; unqualified # ⛹‍♂ man bouncing ball +26F9 1F3FB 200D 2642 FE0F ; fully-qualified # ⛹🏻‍♂️ man bouncing ball: light skin tone +26F9 1F3FB 200D 2642 ; minimally-qualified # ⛹🏻‍♂ man bouncing ball: light skin tone +26F9 1F3FC 200D 2642 FE0F ; fully-qualified # ⛹🏼‍♂️ man bouncing ball: medium-light skin tone +26F9 1F3FC 200D 2642 ; minimally-qualified # ⛹🏼‍♂ man bouncing ball: medium-light skin tone +26F9 1F3FD 200D 2642 FE0F ; fully-qualified # ⛹🏽‍♂️ man bouncing ball: medium skin tone +26F9 1F3FD 200D 2642 ; minimally-qualified # ⛹🏽‍♂ man bouncing ball: medium skin tone +26F9 1F3FE 200D 2642 FE0F ; fully-qualified # ⛹🏾‍♂️ man bouncing ball: medium-dark skin tone +26F9 1F3FE 200D 2642 ; minimally-qualified # ⛹🏾‍♂ man bouncing ball: medium-dark skin tone +26F9 1F3FF 200D 2642 FE0F ; fully-qualified # ⛹🏿‍♂️ man bouncing ball: dark skin tone +26F9 1F3FF 200D 2642 ; minimally-qualified # ⛹🏿‍♂ man bouncing ball: dark skin tone +26F9 FE0F 200D 2640 FE0F ; fully-qualified # ⛹️‍♀️ woman bouncing ball +26F9 200D 2640 FE0F ; unqualified # ⛹‍♀️ woman bouncing ball +26F9 FE0F 200D 2640 ; unqualified # ⛹️‍♀ woman bouncing ball +26F9 200D 2640 ; unqualified # ⛹‍♀ woman bouncing ball +26F9 1F3FB 200D 2640 FE0F ; fully-qualified # ⛹🏻‍♀️ woman bouncing ball: light skin tone +26F9 1F3FB 200D 2640 ; minimally-qualified # ⛹🏻‍♀ woman bouncing ball: light skin tone +26F9 1F3FC 200D 2640 FE0F ; fully-qualified # ⛹🏼‍♀️ woman bouncing ball: medium-light skin tone +26F9 1F3FC 200D 2640 ; minimally-qualified # ⛹🏼‍♀ woman bouncing ball: medium-light skin tone +26F9 1F3FD 200D 2640 FE0F ; fully-qualified # ⛹🏽‍♀️ woman bouncing ball: medium skin tone +26F9 1F3FD 200D 2640 ; minimally-qualified # ⛹🏽‍♀ woman bouncing ball: medium skin tone +26F9 1F3FE 200D 2640 FE0F ; fully-qualified # ⛹🏾‍♀️ woman bouncing ball: medium-dark skin tone +26F9 1F3FE 200D 2640 ; minimally-qualified # ⛹🏾‍♀ woman bouncing ball: medium-dark skin tone +26F9 1F3FF 200D 2640 FE0F ; fully-qualified # ⛹🏿‍♀️ woman bouncing ball: dark skin tone +26F9 1F3FF 200D 2640 ; minimally-qualified # ⛹🏿‍♀ woman bouncing ball: dark skin tone +1F3CB FE0F ; fully-qualified # 🏋️ person lifting weights +1F3CB ; unqualified # 🏋 person lifting weights +1F3CB 1F3FB ; fully-qualified # 🏋🏻 person lifting weights: light skin tone +1F3CB 1F3FC ; fully-qualified # 🏋🏼 person lifting weights: medium-light skin tone +1F3CB 1F3FD ; fully-qualified # 🏋🏽 person lifting weights: medium skin tone +1F3CB 1F3FE ; fully-qualified # 🏋🏾 person lifting weights: medium-dark skin tone +1F3CB 1F3FF ; fully-qualified # 🏋🏿 person lifting weights: dark skin tone +1F3CB FE0F 200D 2642 FE0F ; fully-qualified # 🏋️‍♂️ man lifting weights +1F3CB 200D 2642 FE0F ; unqualified # 🏋‍♂️ man lifting weights +1F3CB FE0F 200D 2642 ; unqualified # 🏋️‍♂ man lifting weights +1F3CB 200D 2642 ; unqualified # 🏋‍♂ man lifting weights +1F3CB 1F3FB 200D 2642 FE0F ; fully-qualified # 🏋🏻‍♂️ man lifting weights: light skin tone +1F3CB 1F3FB 200D 2642 ; minimally-qualified # 🏋🏻‍♂ man lifting weights: light skin tone +1F3CB 1F3FC 200D 2642 FE0F ; fully-qualified # 🏋🏼‍♂️ man lifting weights: medium-light skin tone +1F3CB 1F3FC 200D 2642 ; minimally-qualified # 🏋🏼‍♂ man lifting weights: medium-light skin tone +1F3CB 1F3FD 200D 2642 FE0F ; fully-qualified # 🏋🏽‍♂️ man lifting weights: medium skin tone +1F3CB 1F3FD 200D 2642 ; minimally-qualified # 🏋🏽‍♂ man lifting weights: medium skin tone +1F3CB 1F3FE 200D 2642 FE0F ; fully-qualified # 🏋🏾‍♂️ man lifting weights: medium-dark skin tone +1F3CB 1F3FE 200D 2642 ; minimally-qualified # 🏋🏾‍♂ man lifting weights: medium-dark skin tone +1F3CB 1F3FF 200D 2642 FE0F ; fully-qualified # 🏋🏿‍♂️ man lifting weights: dark skin tone +1F3CB 1F3FF 200D 2642 ; minimally-qualified # 🏋🏿‍♂ man lifting weights: dark skin tone +1F3CB FE0F 200D 2640 FE0F ; fully-qualified # 🏋️‍♀️ woman lifting weights +1F3CB 200D 2640 FE0F ; unqualified # 🏋‍♀️ woman lifting weights +1F3CB FE0F 200D 2640 ; unqualified # 🏋️‍♀ woman lifting weights +1F3CB 200D 2640 ; unqualified # 🏋‍♀ woman lifting weights +1F3CB 1F3FB 200D 2640 FE0F ; fully-qualified # 🏋🏻‍♀️ woman lifting weights: light skin tone +1F3CB 1F3FB 200D 2640 ; minimally-qualified # 🏋🏻‍♀ woman lifting weights: light skin tone +1F3CB 1F3FC 200D 2640 FE0F ; fully-qualified # 🏋🏼‍♀️ woman lifting weights: medium-light skin tone +1F3CB 1F3FC 200D 2640 ; minimally-qualified # 🏋🏼‍♀ woman lifting weights: medium-light skin tone +1F3CB 1F3FD 200D 2640 FE0F ; fully-qualified # 🏋🏽‍♀️ woman lifting weights: medium skin tone +1F3CB 1F3FD 200D 2640 ; minimally-qualified # 🏋🏽‍♀ woman lifting weights: medium skin tone +1F3CB 1F3FE 200D 2640 FE0F ; fully-qualified # 🏋🏾‍♀️ woman lifting weights: medium-dark skin tone +1F3CB 1F3FE 200D 2640 ; minimally-qualified # 🏋🏾‍♀ woman lifting weights: medium-dark skin tone +1F3CB 1F3FF 200D 2640 FE0F ; fully-qualified # 🏋🏿‍♀️ woman lifting weights: dark skin tone +1F3CB 1F3FF 200D 2640 ; minimally-qualified # 🏋🏿‍♀ woman lifting weights: dark skin tone +1F6B4 ; fully-qualified # 🚴 person biking +1F6B4 1F3FB ; fully-qualified # 🚴🏻 person biking: light skin tone +1F6B4 1F3FC ; fully-qualified # 🚴🏼 person biking: medium-light skin tone +1F6B4 1F3FD ; fully-qualified # 🚴🏽 person biking: medium skin tone +1F6B4 1F3FE ; fully-qualified # 🚴🏾 person biking: medium-dark skin tone +1F6B4 1F3FF ; fully-qualified # 🚴🏿 person biking: dark skin tone +1F6B4 200D 2642 FE0F ; fully-qualified # 🚴‍♂️ man biking +1F6B4 200D 2642 ; minimally-qualified # 🚴‍♂ man biking +1F6B4 1F3FB 200D 2642 FE0F ; fully-qualified # 🚴🏻‍♂️ man biking: light skin tone +1F6B4 1F3FB 200D 2642 ; minimally-qualified # 🚴🏻‍♂ man biking: light skin tone +1F6B4 1F3FC 200D 2642 FE0F ; fully-qualified # 🚴🏼‍♂️ man biking: medium-light skin tone +1F6B4 1F3FC 200D 2642 ; minimally-qualified # 🚴🏼‍♂ man biking: medium-light skin tone +1F6B4 1F3FD 200D 2642 FE0F ; fully-qualified # 🚴🏽‍♂️ man biking: medium skin tone +1F6B4 1F3FD 200D 2642 ; minimally-qualified # 🚴🏽‍♂ man biking: medium skin tone +1F6B4 1F3FE 200D 2642 FE0F ; fully-qualified # 🚴🏾‍♂️ man biking: medium-dark skin tone +1F6B4 1F3FE 200D 2642 ; minimally-qualified # 🚴🏾‍♂ man biking: medium-dark skin tone +1F6B4 1F3FF 200D 2642 FE0F ; fully-qualified # 🚴🏿‍♂️ man biking: dark skin tone +1F6B4 1F3FF 200D 2642 ; minimally-qualified # 🚴🏿‍♂ man biking: dark skin tone +1F6B4 200D 2640 FE0F ; fully-qualified # 🚴‍♀️ woman biking +1F6B4 200D 2640 ; minimally-qualified # 🚴‍♀ woman biking +1F6B4 1F3FB 200D 2640 FE0F ; fully-qualified # 🚴🏻‍♀️ woman biking: light skin tone +1F6B4 1F3FB 200D 2640 ; minimally-qualified # 🚴🏻‍♀ woman biking: light skin tone +1F6B4 1F3FC 200D 2640 FE0F ; fully-qualified # 🚴🏼‍♀️ woman biking: medium-light skin tone +1F6B4 1F3FC 200D 2640 ; minimally-qualified # 🚴🏼‍♀ woman biking: medium-light skin tone +1F6B4 1F3FD 200D 2640 FE0F ; fully-qualified # 🚴🏽‍♀️ woman biking: medium skin tone +1F6B4 1F3FD 200D 2640 ; minimally-qualified # 🚴🏽‍♀ woman biking: medium skin tone +1F6B4 1F3FE 200D 2640 FE0F ; fully-qualified # 🚴🏾‍♀️ woman biking: medium-dark skin tone +1F6B4 1F3FE 200D 2640 ; minimally-qualified # 🚴🏾‍♀ woman biking: medium-dark skin tone +1F6B4 1F3FF 200D 2640 FE0F ; fully-qualified # 🚴🏿‍♀️ woman biking: dark skin tone +1F6B4 1F3FF 200D 2640 ; minimally-qualified # 🚴🏿‍♀ woman biking: dark skin tone +1F6B5 ; fully-qualified # 🚵 person mountain biking +1F6B5 1F3FB ; fully-qualified # 🚵🏻 person mountain biking: light skin tone +1F6B5 1F3FC ; fully-qualified # 🚵🏼 person mountain biking: medium-light skin tone +1F6B5 1F3FD ; fully-qualified # 🚵🏽 person mountain biking: medium skin tone +1F6B5 1F3FE ; fully-qualified # 🚵🏾 person mountain biking: medium-dark skin tone +1F6B5 1F3FF ; fully-qualified # 🚵🏿 person mountain biking: dark skin tone +1F6B5 200D 2642 FE0F ; fully-qualified # 🚵‍♂️ man mountain biking +1F6B5 200D 2642 ; minimally-qualified # 🚵‍♂ man mountain biking +1F6B5 1F3FB 200D 2642 FE0F ; fully-qualified # 🚵🏻‍♂️ man mountain biking: light skin tone +1F6B5 1F3FB 200D 2642 ; minimally-qualified # 🚵🏻‍♂ man mountain biking: light skin tone +1F6B5 1F3FC 200D 2642 FE0F ; fully-qualified # 🚵🏼‍♂️ man mountain biking: medium-light skin tone +1F6B5 1F3FC 200D 2642 ; minimally-qualified # 🚵🏼‍♂ man mountain biking: medium-light skin tone +1F6B5 1F3FD 200D 2642 FE0F ; fully-qualified # 🚵🏽‍♂️ man mountain biking: medium skin tone +1F6B5 1F3FD 200D 2642 ; minimally-qualified # 🚵🏽‍♂ man mountain biking: medium skin tone +1F6B5 1F3FE 200D 2642 FE0F ; fully-qualified # 🚵🏾‍♂️ man mountain biking: medium-dark skin tone +1F6B5 1F3FE 200D 2642 ; minimally-qualified # 🚵🏾‍♂ man mountain biking: medium-dark skin tone +1F6B5 1F3FF 200D 2642 FE0F ; fully-qualified # 🚵🏿‍♂️ man mountain biking: dark skin tone +1F6B5 1F3FF 200D 2642 ; minimally-qualified # 🚵🏿‍♂ man mountain biking: dark skin tone +1F6B5 200D 2640 FE0F ; fully-qualified # 🚵‍♀️ woman mountain biking +1F6B5 200D 2640 ; minimally-qualified # 🚵‍♀ woman mountain biking +1F6B5 1F3FB 200D 2640 FE0F ; fully-qualified # 🚵🏻‍♀️ woman mountain biking: light skin tone +1F6B5 1F3FB 200D 2640 ; minimally-qualified # 🚵🏻‍♀ woman mountain biking: light skin tone +1F6B5 1F3FC 200D 2640 FE0F ; fully-qualified # 🚵🏼‍♀️ woman mountain biking: medium-light skin tone +1F6B5 1F3FC 200D 2640 ; minimally-qualified # 🚵🏼‍♀ woman mountain biking: medium-light skin tone +1F6B5 1F3FD 200D 2640 FE0F ; fully-qualified # 🚵🏽‍♀️ woman mountain biking: medium skin tone +1F6B5 1F3FD 200D 2640 ; minimally-qualified # 🚵🏽‍♀ woman mountain biking: medium skin tone +1F6B5 1F3FE 200D 2640 FE0F ; fully-qualified # 🚵🏾‍♀️ woman mountain biking: medium-dark skin tone +1F6B5 1F3FE 200D 2640 ; minimally-qualified # 🚵🏾‍♀ woman mountain biking: medium-dark skin tone +1F6B5 1F3FF 200D 2640 FE0F ; fully-qualified # 🚵🏿‍♀️ woman mountain biking: dark skin tone +1F6B5 1F3FF 200D 2640 ; minimally-qualified # 🚵🏿‍♀ woman mountain biking: dark skin tone +1F938 ; fully-qualified # 🤸 person cartwheeling +1F938 1F3FB ; fully-qualified # 🤸🏻 person cartwheeling: light skin tone +1F938 1F3FC ; fully-qualified # 🤸🏼 person cartwheeling: medium-light skin tone +1F938 1F3FD ; fully-qualified # 🤸🏽 person cartwheeling: medium skin tone +1F938 1F3FE ; fully-qualified # 🤸🏾 person cartwheeling: medium-dark skin tone +1F938 1F3FF ; fully-qualified # 🤸🏿 person cartwheeling: dark skin tone +1F938 200D 2642 FE0F ; fully-qualified # 🤸‍♂️ man cartwheeling +1F938 200D 2642 ; minimally-qualified # 🤸‍♂ man cartwheeling +1F938 1F3FB 200D 2642 FE0F ; fully-qualified # 🤸🏻‍♂️ man cartwheeling: light skin tone +1F938 1F3FB 200D 2642 ; minimally-qualified # 🤸🏻‍♂ man cartwheeling: light skin tone +1F938 1F3FC 200D 2642 FE0F ; fully-qualified # 🤸🏼‍♂️ man cartwheeling: medium-light skin tone +1F938 1F3FC 200D 2642 ; minimally-qualified # 🤸🏼‍♂ man cartwheeling: medium-light skin tone +1F938 1F3FD 200D 2642 FE0F ; fully-qualified # 🤸🏽‍♂️ man cartwheeling: medium skin tone +1F938 1F3FD 200D 2642 ; minimally-qualified # 🤸🏽‍♂ man cartwheeling: medium skin tone +1F938 1F3FE 200D 2642 FE0F ; fully-qualified # 🤸🏾‍♂️ man cartwheeling: medium-dark skin tone +1F938 1F3FE 200D 2642 ; minimally-qualified # 🤸🏾‍♂ man cartwheeling: medium-dark skin tone +1F938 1F3FF 200D 2642 FE0F ; fully-qualified # 🤸🏿‍♂️ man cartwheeling: dark skin tone +1F938 1F3FF 200D 2642 ; minimally-qualified # 🤸🏿‍♂ man cartwheeling: dark skin tone +1F938 200D 2640 FE0F ; fully-qualified # 🤸‍♀️ woman cartwheeling +1F938 200D 2640 ; minimally-qualified # 🤸‍♀ woman cartwheeling +1F938 1F3FB 200D 2640 FE0F ; fully-qualified # 🤸🏻‍♀️ woman cartwheeling: light skin tone +1F938 1F3FB 200D 2640 ; minimally-qualified # 🤸🏻‍♀ woman cartwheeling: light skin tone +1F938 1F3FC 200D 2640 FE0F ; fully-qualified # 🤸🏼‍♀️ woman cartwheeling: medium-light skin tone +1F938 1F3FC 200D 2640 ; minimally-qualified # 🤸🏼‍♀ woman cartwheeling: medium-light skin tone +1F938 1F3FD 200D 2640 FE0F ; fully-qualified # 🤸🏽‍♀️ woman cartwheeling: medium skin tone +1F938 1F3FD 200D 2640 ; minimally-qualified # 🤸🏽‍♀ woman cartwheeling: medium skin tone +1F938 1F3FE 200D 2640 FE0F ; fully-qualified # 🤸🏾‍♀️ woman cartwheeling: medium-dark skin tone +1F938 1F3FE 200D 2640 ; minimally-qualified # 🤸🏾‍♀ woman cartwheeling: medium-dark skin tone +1F938 1F3FF 200D 2640 FE0F ; fully-qualified # 🤸🏿‍♀️ woman cartwheeling: dark skin tone +1F938 1F3FF 200D 2640 ; minimally-qualified # 🤸🏿‍♀ woman cartwheeling: dark skin tone +1F93C ; fully-qualified # 🤼 people wrestling +1F93C 200D 2642 FE0F ; fully-qualified # 🤼‍♂️ men wrestling +1F93C 200D 2642 ; minimally-qualified # 🤼‍♂ men wrestling +1F93C 200D 2640 FE0F ; fully-qualified # 🤼‍♀️ women wrestling +1F93C 200D 2640 ; minimally-qualified # 🤼‍♀ women wrestling +1F93D ; fully-qualified # 🤽 person playing water polo +1F93D 1F3FB ; fully-qualified # 🤽🏻 person playing water polo: light skin tone +1F93D 1F3FC ; fully-qualified # 🤽🏼 person playing water polo: medium-light skin tone +1F93D 1F3FD ; fully-qualified # 🤽🏽 person playing water polo: medium skin tone +1F93D 1F3FE ; fully-qualified # 🤽🏾 person playing water polo: medium-dark skin tone +1F93D 1F3FF ; fully-qualified # 🤽🏿 person playing water polo: dark skin tone +1F93D 200D 2642 FE0F ; fully-qualified # 🤽‍♂️ man playing water polo +1F93D 200D 2642 ; minimally-qualified # 🤽‍♂ man playing water polo +1F93D 1F3FB 200D 2642 FE0F ; fully-qualified # 🤽🏻‍♂️ man playing water polo: light skin tone +1F93D 1F3FB 200D 2642 ; minimally-qualified # 🤽🏻‍♂ man playing water polo: light skin tone +1F93D 1F3FC 200D 2642 FE0F ; fully-qualified # 🤽🏼‍♂️ man playing water polo: medium-light skin tone +1F93D 1F3FC 200D 2642 ; minimally-qualified # 🤽🏼‍♂ man playing water polo: medium-light skin tone +1F93D 1F3FD 200D 2642 FE0F ; fully-qualified # 🤽🏽‍♂️ man playing water polo: medium skin tone +1F93D 1F3FD 200D 2642 ; minimally-qualified # 🤽🏽‍♂ man playing water polo: medium skin tone +1F93D 1F3FE 200D 2642 FE0F ; fully-qualified # 🤽🏾‍♂️ man playing water polo: medium-dark skin tone +1F93D 1F3FE 200D 2642 ; minimally-qualified # 🤽🏾‍♂ man playing water polo: medium-dark skin tone +1F93D 1F3FF 200D 2642 FE0F ; fully-qualified # 🤽🏿‍♂️ man playing water polo: dark skin tone +1F93D 1F3FF 200D 2642 ; minimally-qualified # 🤽🏿‍♂ man playing water polo: dark skin tone +1F93D 200D 2640 FE0F ; fully-qualified # 🤽‍♀️ woman playing water polo +1F93D 200D 2640 ; minimally-qualified # 🤽‍♀ woman playing water polo +1F93D 1F3FB 200D 2640 FE0F ; fully-qualified # 🤽🏻‍♀️ woman playing water polo: light skin tone +1F93D 1F3FB 200D 2640 ; minimally-qualified # 🤽🏻‍♀ woman playing water polo: light skin tone +1F93D 1F3FC 200D 2640 FE0F ; fully-qualified # 🤽🏼‍♀️ woman playing water polo: medium-light skin tone +1F93D 1F3FC 200D 2640 ; minimally-qualified # 🤽🏼‍♀ woman playing water polo: medium-light skin tone +1F93D 1F3FD 200D 2640 FE0F ; fully-qualified # 🤽🏽‍♀️ woman playing water polo: medium skin tone +1F93D 1F3FD 200D 2640 ; minimally-qualified # 🤽🏽‍♀ woman playing water polo: medium skin tone +1F93D 1F3FE 200D 2640 FE0F ; fully-qualified # 🤽🏾‍♀️ woman playing water polo: medium-dark skin tone +1F93D 1F3FE 200D 2640 ; minimally-qualified # 🤽🏾‍♀ woman playing water polo: medium-dark skin tone +1F93D 1F3FF 200D 2640 FE0F ; fully-qualified # 🤽🏿‍♀️ woman playing water polo: dark skin tone +1F93D 1F3FF 200D 2640 ; minimally-qualified # 🤽🏿‍♀ woman playing water polo: dark skin tone +1F93E ; fully-qualified # 🤾 person playing handball +1F93E 1F3FB ; fully-qualified # 🤾🏻 person playing handball: light skin tone +1F93E 1F3FC ; fully-qualified # 🤾🏼 person playing handball: medium-light skin tone +1F93E 1F3FD ; fully-qualified # 🤾🏽 person playing handball: medium skin tone +1F93E 1F3FE ; fully-qualified # 🤾🏾 person playing handball: medium-dark skin tone +1F93E 1F3FF ; fully-qualified # 🤾🏿 person playing handball: dark skin tone +1F93E 200D 2642 FE0F ; fully-qualified # 🤾‍♂️ man playing handball +1F93E 200D 2642 ; minimally-qualified # 🤾‍♂ man playing handball +1F93E 1F3FB 200D 2642 FE0F ; fully-qualified # 🤾🏻‍♂️ man playing handball: light skin tone +1F93E 1F3FB 200D 2642 ; minimally-qualified # 🤾🏻‍♂ man playing handball: light skin tone +1F93E 1F3FC 200D 2642 FE0F ; fully-qualified # 🤾🏼‍♂️ man playing handball: medium-light skin tone +1F93E 1F3FC 200D 2642 ; minimally-qualified # 🤾🏼‍♂ man playing handball: medium-light skin tone +1F93E 1F3FD 200D 2642 FE0F ; fully-qualified # 🤾🏽‍♂️ man playing handball: medium skin tone +1F93E 1F3FD 200D 2642 ; minimally-qualified # 🤾🏽‍♂ man playing handball: medium skin tone +1F93E 1F3FE 200D 2642 FE0F ; fully-qualified # 🤾🏾‍♂️ man playing handball: medium-dark skin tone +1F93E 1F3FE 200D 2642 ; minimally-qualified # 🤾🏾‍♂ man playing handball: medium-dark skin tone +1F93E 1F3FF 200D 2642 FE0F ; fully-qualified # 🤾🏿‍♂️ man playing handball: dark skin tone +1F93E 1F3FF 200D 2642 ; minimally-qualified # 🤾🏿‍♂ man playing handball: dark skin tone +1F93E 200D 2640 FE0F ; fully-qualified # 🤾‍♀️ woman playing handball +1F93E 200D 2640 ; minimally-qualified # 🤾‍♀ woman playing handball +1F93E 1F3FB 200D 2640 FE0F ; fully-qualified # 🤾🏻‍♀️ woman playing handball: light skin tone +1F93E 1F3FB 200D 2640 ; minimally-qualified # 🤾🏻‍♀ woman playing handball: light skin tone +1F93E 1F3FC 200D 2640 FE0F ; fully-qualified # 🤾🏼‍♀️ woman playing handball: medium-light skin tone +1F93E 1F3FC 200D 2640 ; minimally-qualified # 🤾🏼‍♀ woman playing handball: medium-light skin tone +1F93E 1F3FD 200D 2640 FE0F ; fully-qualified # 🤾🏽‍♀️ woman playing handball: medium skin tone +1F93E 1F3FD 200D 2640 ; minimally-qualified # 🤾🏽‍♀ woman playing handball: medium skin tone +1F93E 1F3FE 200D 2640 FE0F ; fully-qualified # 🤾🏾‍♀️ woman playing handball: medium-dark skin tone +1F93E 1F3FE 200D 2640 ; minimally-qualified # 🤾🏾‍♀ woman playing handball: medium-dark skin tone +1F93E 1F3FF 200D 2640 FE0F ; fully-qualified # 🤾🏿‍♀️ woman playing handball: dark skin tone +1F93E 1F3FF 200D 2640 ; minimally-qualified # 🤾🏿‍♀ woman playing handball: dark skin tone +1F939 ; fully-qualified # 🤹 person juggling +1F939 1F3FB ; fully-qualified # 🤹🏻 person juggling: light skin tone +1F939 1F3FC ; fully-qualified # 🤹🏼 person juggling: medium-light skin tone +1F939 1F3FD ; fully-qualified # 🤹🏽 person juggling: medium skin tone +1F939 1F3FE ; fully-qualified # 🤹🏾 person juggling: medium-dark skin tone +1F939 1F3FF ; fully-qualified # 🤹🏿 person juggling: dark skin tone +1F939 200D 2642 FE0F ; fully-qualified # 🤹‍♂️ man juggling +1F939 200D 2642 ; minimally-qualified # 🤹‍♂ man juggling +1F939 1F3FB 200D 2642 FE0F ; fully-qualified # 🤹🏻‍♂️ man juggling: light skin tone +1F939 1F3FB 200D 2642 ; minimally-qualified # 🤹🏻‍♂ man juggling: light skin tone +1F939 1F3FC 200D 2642 FE0F ; fully-qualified # 🤹🏼‍♂️ man juggling: medium-light skin tone +1F939 1F3FC 200D 2642 ; minimally-qualified # 🤹🏼‍♂ man juggling: medium-light skin tone +1F939 1F3FD 200D 2642 FE0F ; fully-qualified # 🤹🏽‍♂️ man juggling: medium skin tone +1F939 1F3FD 200D 2642 ; minimally-qualified # 🤹🏽‍♂ man juggling: medium skin tone +1F939 1F3FE 200D 2642 FE0F ; fully-qualified # 🤹🏾‍♂️ man juggling: medium-dark skin tone +1F939 1F3FE 200D 2642 ; minimally-qualified # 🤹🏾‍♂ man juggling: medium-dark skin tone +1F939 1F3FF 200D 2642 FE0F ; fully-qualified # 🤹🏿‍♂️ man juggling: dark skin tone +1F939 1F3FF 200D 2642 ; minimally-qualified # 🤹🏿‍♂ man juggling: dark skin tone +1F939 200D 2640 FE0F ; fully-qualified # 🤹‍♀️ woman juggling +1F939 200D 2640 ; minimally-qualified # 🤹‍♀ woman juggling +1F939 1F3FB 200D 2640 FE0F ; fully-qualified # 🤹🏻‍♀️ woman juggling: light skin tone +1F939 1F3FB 200D 2640 ; minimally-qualified # 🤹🏻‍♀ woman juggling: light skin tone +1F939 1F3FC 200D 2640 FE0F ; fully-qualified # 🤹🏼‍♀️ woman juggling: medium-light skin tone +1F939 1F3FC 200D 2640 ; minimally-qualified # 🤹🏼‍♀ woman juggling: medium-light skin tone +1F939 1F3FD 200D 2640 FE0F ; fully-qualified # 🤹🏽‍♀️ woman juggling: medium skin tone +1F939 1F3FD 200D 2640 ; minimally-qualified # 🤹🏽‍♀ woman juggling: medium skin tone +1F939 1F3FE 200D 2640 FE0F ; fully-qualified # 🤹🏾‍♀️ woman juggling: medium-dark skin tone +1F939 1F3FE 200D 2640 ; minimally-qualified # 🤹🏾‍♀ woman juggling: medium-dark skin tone +1F939 1F3FF 200D 2640 FE0F ; fully-qualified # 🤹🏿‍♀️ woman juggling: dark skin tone +1F939 1F3FF 200D 2640 ; minimally-qualified # 🤹🏿‍♀ woman juggling: dark skin tone + +# subgroup: person-resting +1F9D8 ; fully-qualified # 🧘 person in lotus position +1F9D8 1F3FB ; fully-qualified # 🧘🏻 person in lotus position: light skin tone +1F9D8 1F3FC ; fully-qualified # 🧘🏼 person in lotus position: medium-light skin tone +1F9D8 1F3FD ; fully-qualified # 🧘🏽 person in lotus position: medium skin tone +1F9D8 1F3FE ; fully-qualified # 🧘🏾 person in lotus position: medium-dark skin tone +1F9D8 1F3FF ; fully-qualified # 🧘🏿 person in lotus position: dark skin tone +1F9D8 200D 2642 FE0F ; fully-qualified # 🧘‍♂️ man in lotus position +1F9D8 200D 2642 ; minimally-qualified # 🧘‍♂ man in lotus position +1F9D8 1F3FB 200D 2642 FE0F ; fully-qualified # 🧘🏻‍♂️ man in lotus position: light skin tone +1F9D8 1F3FB 200D 2642 ; minimally-qualified # 🧘🏻‍♂ man in lotus position: light skin tone +1F9D8 1F3FC 200D 2642 FE0F ; fully-qualified # 🧘🏼‍♂️ man in lotus position: medium-light skin tone +1F9D8 1F3FC 200D 2642 ; minimally-qualified # 🧘🏼‍♂ man in lotus position: medium-light skin tone +1F9D8 1F3FD 200D 2642 FE0F ; fully-qualified # 🧘🏽‍♂️ man in lotus position: medium skin tone +1F9D8 1F3FD 200D 2642 ; minimally-qualified # 🧘🏽‍♂ man in lotus position: medium skin tone +1F9D8 1F3FE 200D 2642 FE0F ; fully-qualified # 🧘🏾‍♂️ man in lotus position: medium-dark skin tone +1F9D8 1F3FE 200D 2642 ; minimally-qualified # 🧘🏾‍♂ man in lotus position: medium-dark skin tone +1F9D8 1F3FF 200D 2642 FE0F ; fully-qualified # 🧘🏿‍♂️ man in lotus position: dark skin tone +1F9D8 1F3FF 200D 2642 ; minimally-qualified # 🧘🏿‍♂ man in lotus position: dark skin tone +1F9D8 200D 2640 FE0F ; fully-qualified # 🧘‍♀️ woman in lotus position +1F9D8 200D 2640 ; minimally-qualified # 🧘‍♀ woman in lotus position +1F9D8 1F3FB 200D 2640 FE0F ; fully-qualified # 🧘🏻‍♀️ woman in lotus position: light skin tone +1F9D8 1F3FB 200D 2640 ; minimally-qualified # 🧘🏻‍♀ woman in lotus position: light skin tone +1F9D8 1F3FC 200D 2640 FE0F ; fully-qualified # 🧘🏼‍♀️ woman in lotus position: medium-light skin tone +1F9D8 1F3FC 200D 2640 ; minimally-qualified # 🧘🏼‍♀ woman in lotus position: medium-light skin tone +1F9D8 1F3FD 200D 2640 FE0F ; fully-qualified # 🧘🏽‍♀️ woman in lotus position: medium skin tone +1F9D8 1F3FD 200D 2640 ; minimally-qualified # 🧘🏽‍♀ woman in lotus position: medium skin tone +1F9D8 1F3FE 200D 2640 FE0F ; fully-qualified # 🧘🏾‍♀️ woman in lotus position: medium-dark skin tone +1F9D8 1F3FE 200D 2640 ; minimally-qualified # 🧘🏾‍♀ woman in lotus position: medium-dark skin tone +1F9D8 1F3FF 200D 2640 FE0F ; fully-qualified # 🧘🏿‍♀️ woman in lotus position: dark skin tone +1F9D8 1F3FF 200D 2640 ; minimally-qualified # 🧘🏿‍♀ woman in lotus position: dark skin tone +1F6C0 ; fully-qualified # 🛀 person taking bath +1F6C0 1F3FB ; fully-qualified # 🛀🏻 person taking bath: light skin tone +1F6C0 1F3FC ; fully-qualified # 🛀🏼 person taking bath: medium-light skin tone +1F6C0 1F3FD ; fully-qualified # 🛀🏽 person taking bath: medium skin tone +1F6C0 1F3FE ; fully-qualified # 🛀🏾 person taking bath: medium-dark skin tone +1F6C0 1F3FF ; fully-qualified # 🛀🏿 person taking bath: dark skin tone +1F6CC ; fully-qualified # 🛌 person in bed +1F6CC 1F3FB ; fully-qualified # 🛌🏻 person in bed: light skin tone +1F6CC 1F3FC ; fully-qualified # 🛌🏼 person in bed: medium-light skin tone +1F6CC 1F3FD ; fully-qualified # 🛌🏽 person in bed: medium skin tone +1F6CC 1F3FE ; fully-qualified # 🛌🏾 person in bed: medium-dark skin tone +1F6CC 1F3FF ; fully-qualified # 🛌🏿 person in bed: dark skin tone + +# subgroup: family +1F9D1 200D 1F91D 200D 1F9D1 ; fully-qualified # 🧑‍🤝‍🧑 people holding hands +1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏻‍🤝‍🧑🏻 people holding hands: light skin tone +1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏼‍🤝‍🧑🏻 people holding hands: medium-light skin tone, light skin tone +1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏼‍🤝‍🧑🏼 people holding hands: medium-light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏽‍🤝‍🧑🏻 people holding hands: medium skin tone, light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏽‍🤝‍🧑🏼 people holding hands: medium skin tone, medium-light skin tone +1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏽‍🤝‍🧑🏽 people holding hands: medium skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏾‍🤝‍🧑🏻 people holding hands: medium-dark skin tone, light skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏾‍🤝‍🧑🏼 people holding hands: medium-dark skin tone, medium-light skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏾‍🤝‍🧑🏽 people holding hands: medium-dark skin tone, medium skin tone +1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FE ; fully-qualified # 🧑🏾‍🤝‍🧑🏾 people holding hands: medium-dark skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FB ; fully-qualified # 🧑🏿‍🤝‍🧑🏻 people holding hands: dark skin tone, light skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FC ; fully-qualified # 🧑🏿‍🤝‍🧑🏼 people holding hands: dark skin tone, medium-light skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FD ; fully-qualified # 🧑🏿‍🤝‍🧑🏽 people holding hands: dark skin tone, medium skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FE ; fully-qualified # 🧑🏿‍🤝‍🧑🏾 people holding hands: dark skin tone, medium-dark skin tone +1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FF ; fully-qualified # 🧑🏿‍🤝‍🧑🏿 people holding hands: dark skin tone +1F46D ; fully-qualified # 👭 women holding hands +1F46D 1F3FB ; fully-qualified # 👭🏻 women holding hands: light skin tone +1F469 1F3FC 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏼‍🤝‍👩🏻 women holding hands: medium-light skin tone, light skin tone +1F46D 1F3FC ; fully-qualified # 👭🏼 women holding hands: medium-light skin tone +1F469 1F3FD 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏽‍🤝‍👩🏻 women holding hands: medium skin tone, light skin tone +1F469 1F3FD 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏽‍🤝‍👩🏼 women holding hands: medium skin tone, medium-light skin tone +1F46D 1F3FD ; fully-qualified # 👭🏽 women holding hands: medium skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏾‍🤝‍👩🏻 women holding hands: medium-dark skin tone, light skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏾‍🤝‍👩🏼 women holding hands: medium-dark skin tone, medium-light skin tone +1F469 1F3FE 200D 1F91D 200D 1F469 1F3FD ; fully-qualified # 👩🏾‍🤝‍👩🏽 women holding hands: medium-dark skin tone, medium skin tone +1F46D 1F3FE ; fully-qualified # 👭🏾 women holding hands: medium-dark skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FB ; fully-qualified # 👩🏿‍🤝‍👩🏻 women holding hands: dark skin tone, light skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FC ; fully-qualified # 👩🏿‍🤝‍👩🏼 women holding hands: dark skin tone, medium-light skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FD ; fully-qualified # 👩🏿‍🤝‍👩🏽 women holding hands: dark skin tone, medium skin tone +1F469 1F3FF 200D 1F91D 200D 1F469 1F3FE ; fully-qualified # 👩🏿‍🤝‍👩🏾 women holding hands: dark skin tone, medium-dark skin tone +1F46D 1F3FF ; fully-qualified # 👭🏿 women holding hands: dark skin tone +1F46B ; fully-qualified # 👫 woman and man holding hands +1F46B 1F3FB ; fully-qualified # 👫🏻 woman and man holding hands: light skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏻‍🤝‍👨🏼 woman and man holding hands: light skin tone, medium-light skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏻‍🤝‍👨🏽 woman and man holding hands: light skin tone, medium skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏻‍🤝‍👨🏾 woman and man holding hands: light skin tone, medium-dark skin tone +1F469 1F3FB 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏻‍🤝‍👨🏿 woman and man holding hands: light skin tone, dark skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏼‍🤝‍👨🏻 woman and man holding hands: medium-light skin tone, light skin tone +1F46B 1F3FC ; fully-qualified # 👫🏼 woman and man holding hands: medium-light skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏼‍🤝‍👨🏽 woman and man holding hands: medium-light skin tone, medium skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏼‍🤝‍👨🏾 woman and man holding hands: medium-light skin tone, medium-dark skin tone +1F469 1F3FC 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏼‍🤝‍👨🏿 woman and man holding hands: medium-light skin tone, dark skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏽‍🤝‍👨🏻 woman and man holding hands: medium skin tone, light skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏽‍🤝‍👨🏼 woman and man holding hands: medium skin tone, medium-light skin tone +1F46B 1F3FD ; fully-qualified # 👫🏽 woman and man holding hands: medium skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏽‍🤝‍👨🏾 woman and man holding hands: medium skin tone, medium-dark skin tone +1F469 1F3FD 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏽‍🤝‍👨🏿 woman and man holding hands: medium skin tone, dark skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏾‍🤝‍👨🏻 woman and man holding hands: medium-dark skin tone, light skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏾‍🤝‍👨🏼 woman and man holding hands: medium-dark skin tone, medium-light skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏾‍🤝‍👨🏽 woman and man holding hands: medium-dark skin tone, medium skin tone +1F46B 1F3FE ; fully-qualified # 👫🏾 woman and man holding hands: medium-dark skin tone +1F469 1F3FE 200D 1F91D 200D 1F468 1F3FF ; fully-qualified # 👩🏾‍🤝‍👨🏿 woman and man holding hands: medium-dark skin tone, dark skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👩🏿‍🤝‍👨🏻 woman and man holding hands: dark skin tone, light skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👩🏿‍🤝‍👨🏼 woman and man holding hands: dark skin tone, medium-light skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👩🏿‍🤝‍👨🏽 woman and man holding hands: dark skin tone, medium skin tone +1F469 1F3FF 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👩🏿‍🤝‍👨🏾 woman and man holding hands: dark skin tone, medium-dark skin tone +1F46B 1F3FF ; fully-qualified # 👫🏿 woman and man holding hands: dark skin tone +1F46C ; fully-qualified # 👬 men holding hands +1F46C 1F3FB ; fully-qualified # 👬🏻 men holding hands: light skin tone +1F468 1F3FC 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏼‍🤝‍👨🏻 men holding hands: medium-light skin tone, light skin tone +1F46C 1F3FC ; fully-qualified # 👬🏼 men holding hands: medium-light skin tone +1F468 1F3FD 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏽‍🤝‍👨🏻 men holding hands: medium skin tone, light skin tone +1F468 1F3FD 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏽‍🤝‍👨🏼 men holding hands: medium skin tone, medium-light skin tone +1F46C 1F3FD ; fully-qualified # 👬🏽 men holding hands: medium skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏾‍🤝‍👨🏻 men holding hands: medium-dark skin tone, light skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏾‍🤝‍👨🏼 men holding hands: medium-dark skin tone, medium-light skin tone +1F468 1F3FE 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👨🏾‍🤝‍👨🏽 men holding hands: medium-dark skin tone, medium skin tone +1F46C 1F3FE ; fully-qualified # 👬🏾 men holding hands: medium-dark skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FB ; fully-qualified # 👨🏿‍🤝‍👨🏻 men holding hands: dark skin tone, light skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FC ; fully-qualified # 👨🏿‍🤝‍👨🏼 men holding hands: dark skin tone, medium-light skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FD ; fully-qualified # 👨🏿‍🤝‍👨🏽 men holding hands: dark skin tone, medium skin tone +1F468 1F3FF 200D 1F91D 200D 1F468 1F3FE ; fully-qualified # 👨🏿‍🤝‍👨🏾 men holding hands: dark skin tone, medium-dark skin tone +1F46C 1F3FF ; fully-qualified # 👬🏿 men holding hands: dark skin tone +1F48F ; fully-qualified # 💏 kiss +1F469 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified # 👩‍❤️‍💋‍👨 kiss: woman, man +1F469 200D 2764 200D 1F48B 200D 1F468 ; minimally-qualified # 👩‍❤‍💋‍👨 kiss: woman, man +1F468 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified # 👨‍❤️‍💋‍👨 kiss: man, man +1F468 200D 2764 200D 1F48B 200D 1F468 ; minimally-qualified # 👨‍❤‍💋‍👨 kiss: man, man +1F469 200D 2764 FE0F 200D 1F48B 200D 1F469 ; fully-qualified # 👩‍❤️‍💋‍👩 kiss: woman, woman +1F469 200D 2764 200D 1F48B 200D 1F469 ; minimally-qualified # 👩‍❤‍💋‍👩 kiss: woman, woman +1F491 ; fully-qualified # 💑 couple with heart +1F469 200D 2764 FE0F 200D 1F468 ; fully-qualified # 👩‍❤️‍👨 couple with heart: woman, man +1F469 200D 2764 200D 1F468 ; minimally-qualified # 👩‍❤‍👨 couple with heart: woman, man +1F468 200D 2764 FE0F 200D 1F468 ; fully-qualified # 👨‍❤️‍👨 couple with heart: man, man +1F468 200D 2764 200D 1F468 ; minimally-qualified # 👨‍❤‍👨 couple with heart: man, man +1F469 200D 2764 FE0F 200D 1F469 ; fully-qualified # 👩‍❤️‍👩 couple with heart: woman, woman +1F469 200D 2764 200D 1F469 ; minimally-qualified # 👩‍❤‍👩 couple with heart: woman, woman +1F46A ; fully-qualified # 👪 family +1F468 200D 1F469 200D 1F466 ; fully-qualified # 👨‍👩‍👦 family: man, woman, boy +1F468 200D 1F469 200D 1F467 ; fully-qualified # 👨‍👩‍👧 family: man, woman, girl +1F468 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👨‍👩‍👧‍👦 family: man, woman, girl, boy +1F468 200D 1F469 200D 1F466 200D 1F466 ; fully-qualified # 👨‍👩‍👦‍👦 family: man, woman, boy, boy +1F468 200D 1F469 200D 1F467 200D 1F467 ; fully-qualified # 👨‍👩‍👧‍👧 family: man, woman, girl, girl +1F468 200D 1F468 200D 1F466 ; fully-qualified # 👨‍👨‍👦 family: man, man, boy +1F468 200D 1F468 200D 1F467 ; fully-qualified # 👨‍👨‍👧 family: man, man, girl +1F468 200D 1F468 200D 1F467 200D 1F466 ; fully-qualified # 👨‍👨‍👧‍👦 family: man, man, girl, boy +1F468 200D 1F468 200D 1F466 200D 1F466 ; fully-qualified # 👨‍👨‍👦‍👦 family: man, man, boy, boy +1F468 200D 1F468 200D 1F467 200D 1F467 ; fully-qualified # 👨‍👨‍👧‍👧 family: man, man, girl, girl +1F469 200D 1F469 200D 1F466 ; fully-qualified # 👩‍👩‍👦 family: woman, woman, boy +1F469 200D 1F469 200D 1F467 ; fully-qualified # 👩‍👩‍👧 family: woman, woman, girl +1F469 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👩‍👩‍👧‍👦 family: woman, woman, girl, boy +1F469 200D 1F469 200D 1F466 200D 1F466 ; fully-qualified # 👩‍👩‍👦‍👦 family: woman, woman, boy, boy +1F469 200D 1F469 200D 1F467 200D 1F467 ; fully-qualified # 👩‍👩‍👧‍👧 family: woman, woman, girl, girl +1F468 200D 1F466 ; fully-qualified # 👨‍👦 family: man, boy +1F468 200D 1F466 200D 1F466 ; fully-qualified # 👨‍👦‍👦 family: man, boy, boy +1F468 200D 1F467 ; fully-qualified # 👨‍👧 family: man, girl +1F468 200D 1F467 200D 1F466 ; fully-qualified # 👨‍👧‍👦 family: man, girl, boy +1F468 200D 1F467 200D 1F467 ; fully-qualified # 👨‍👧‍👧 family: man, girl, girl +1F469 200D 1F466 ; fully-qualified # 👩‍👦 family: woman, boy +1F469 200D 1F466 200D 1F466 ; fully-qualified # 👩‍👦‍👦 family: woman, boy, boy +1F469 200D 1F467 ; fully-qualified # 👩‍👧 family: woman, girl +1F469 200D 1F467 200D 1F466 ; fully-qualified # 👩‍👧‍👦 family: woman, girl, boy +1F469 200D 1F467 200D 1F467 ; fully-qualified # 👩‍👧‍👧 family: woman, girl, girl + +# subgroup: person-symbol +1F5E3 FE0F ; fully-qualified # 🗣️ speaking head +1F5E3 ; unqualified # 🗣 speaking head +1F464 ; fully-qualified # 👤 bust in silhouette +1F465 ; fully-qualified # 👥 busts in silhouette +1F463 ; fully-qualified # 👣 footprints + +# People & Body subtotal: 2212 +# People & Body subtotal: 447 w/o modifiers + +# group: Component + +# subgroup: skin-tone +1F3FB ; component # 🏻 light skin tone +1F3FC ; component # 🏼 medium-light skin tone +1F3FD ; component # 🏽 medium skin tone +1F3FE ; component # 🏾 medium-dark skin tone +1F3FF ; component # 🏿 dark skin tone + +# subgroup: hair-style +1F9B0 ; component # 🦰 red hair +1F9B1 ; component # 🦱 curly hair +1F9B3 ; component # 🦳 white hair +1F9B2 ; component # 🦲 bald + +# Component subtotal: 9 +# Component subtotal: 4 w/o modifiers + +# group: Animals & Nature + +# subgroup: animal-mammal +1F435 ; fully-qualified # 🐵 monkey face +1F412 ; fully-qualified # 🐒 monkey +1F98D ; fully-qualified # 🦍 gorilla +1F9A7 ; fully-qualified # 🦧 orangutan +1F436 ; fully-qualified # 🐶 dog face +1F415 ; fully-qualified # 🐕 dog +1F9AE ; fully-qualified # 🦮 guide dog +1F415 200D 1F9BA ; fully-qualified # 🐕‍🦺 service dog +1F429 ; fully-qualified # 🐩 poodle +1F43A ; fully-qualified # 🐺 wolf +1F98A ; fully-qualified # 🦊 fox +1F99D ; fully-qualified # 🦝 raccoon +1F431 ; fully-qualified # 🐱 cat face +1F408 ; fully-qualified # 🐈 cat +1F981 ; fully-qualified # 🦁 lion +1F42F ; fully-qualified # 🐯 tiger face +1F405 ; fully-qualified # 🐅 tiger +1F406 ; fully-qualified # 🐆 leopard +1F434 ; fully-qualified # 🐴 horse face +1F40E ; fully-qualified # 🐎 horse +1F984 ; fully-qualified # 🦄 unicorn +1F993 ; fully-qualified # 🦓 zebra +1F98C ; fully-qualified # 🦌 deer +1F42E ; fully-qualified # 🐮 cow face +1F402 ; fully-qualified # 🐂 ox +1F403 ; fully-qualified # 🐃 water buffalo +1F404 ; fully-qualified # 🐄 cow +1F437 ; fully-qualified # 🐷 pig face +1F416 ; fully-qualified # 🐖 pig +1F417 ; fully-qualified # 🐗 boar +1F43D ; fully-qualified # 🐽 pig nose +1F40F ; fully-qualified # 🐏 ram +1F411 ; fully-qualified # 🐑 ewe +1F410 ; fully-qualified # 🐐 goat +1F42A ; fully-qualified # 🐪 camel +1F42B ; fully-qualified # 🐫 two-hump camel +1F999 ; fully-qualified # 🦙 llama +1F992 ; fully-qualified # 🦒 giraffe +1F418 ; fully-qualified # 🐘 elephant +1F98F ; fully-qualified # 🦏 rhinoceros +1F99B ; fully-qualified # 🦛 hippopotamus +1F42D ; fully-qualified # 🐭 mouse face +1F401 ; fully-qualified # 🐁 mouse +1F400 ; fully-qualified # 🐀 rat +1F439 ; fully-qualified # 🐹 hamster +1F430 ; fully-qualified # 🐰 rabbit face +1F407 ; fully-qualified # 🐇 rabbit +1F43F FE0F ; fully-qualified # 🐿️ chipmunk +1F43F ; unqualified # 🐿 chipmunk +1F994 ; fully-qualified # 🦔 hedgehog +1F987 ; fully-qualified # 🦇 bat +1F43B ; fully-qualified # 🐻 bear +1F428 ; fully-qualified # 🐨 koala +1F43C ; fully-qualified # 🐼 panda +1F9A5 ; fully-qualified # 🦥 sloth +1F9A6 ; fully-qualified # 🦦 otter +1F9A8 ; fully-qualified # 🦨 skunk +1F998 ; fully-qualified # 🦘 kangaroo +1F9A1 ; fully-qualified # 🦡 badger +1F43E ; fully-qualified # 🐾 paw prints + +# subgroup: animal-bird +1F983 ; fully-qualified # 🦃 turkey +1F414 ; fully-qualified # 🐔 chicken +1F413 ; fully-qualified # 🐓 rooster +1F423 ; fully-qualified # 🐣 hatching chick +1F424 ; fully-qualified # 🐤 baby chick +1F425 ; fully-qualified # 🐥 front-facing baby chick +1F426 ; fully-qualified # 🐦 bird +1F427 ; fully-qualified # 🐧 penguin +1F54A FE0F ; fully-qualified # 🕊️ dove +1F54A ; unqualified # 🕊 dove +1F985 ; fully-qualified # 🦅 eagle +1F986 ; fully-qualified # 🦆 duck +1F9A2 ; fully-qualified # 🦢 swan +1F989 ; fully-qualified # 🦉 owl +1F9A9 ; fully-qualified # 🦩 flamingo +1F99A ; fully-qualified # 🦚 peacock +1F99C ; fully-qualified # 🦜 parrot + +# subgroup: animal-amphibian +1F438 ; fully-qualified # 🐸 frog + +# subgroup: animal-reptile +1F40A ; fully-qualified # 🐊 crocodile +1F422 ; fully-qualified # 🐢 turtle +1F98E ; fully-qualified # 🦎 lizard +1F40D ; fully-qualified # 🐍 snake +1F432 ; fully-qualified # 🐲 dragon face +1F409 ; fully-qualified # 🐉 dragon +1F995 ; fully-qualified # 🦕 sauropod +1F996 ; fully-qualified # 🦖 T-Rex + +# subgroup: animal-marine +1F433 ; fully-qualified # 🐳 spouting whale +1F40B ; fully-qualified # 🐋 whale +1F42C ; fully-qualified # 🐬 dolphin +1F41F ; fully-qualified # 🐟 fish +1F420 ; fully-qualified # 🐠 tropical fish +1F421 ; fully-qualified # 🐡 blowfish +1F988 ; fully-qualified # 🦈 shark +1F419 ; fully-qualified # 🐙 octopus +1F41A ; fully-qualified # 🐚 spiral shell + +# subgroup: animal-bug +1F40C ; fully-qualified # 🐌 snail +1F98B ; fully-qualified # 🦋 butterfly +1F41B ; fully-qualified # 🐛 bug +1F41C ; fully-qualified # 🐜 ant +1F41D ; fully-qualified # 🐝 honeybee +1F41E ; fully-qualified # 🐞 lady beetle +1F997 ; fully-qualified # 🦗 cricket +1F577 FE0F ; fully-qualified # 🕷️ spider +1F577 ; unqualified # 🕷 spider +1F578 FE0F ; fully-qualified # 🕸️ spider web +1F578 ; unqualified # 🕸 spider web +1F982 ; fully-qualified # 🦂 scorpion +1F99F ; fully-qualified # 🦟 mosquito +1F9A0 ; fully-qualified # 🦠 microbe + +# subgroup: plant-flower +1F490 ; fully-qualified # 💐 bouquet +1F338 ; fully-qualified # 🌸 cherry blossom +1F4AE ; fully-qualified # 💮 white flower +1F3F5 FE0F ; fully-qualified # 🏵️ rosette +1F3F5 ; unqualified # 🏵 rosette +1F339 ; fully-qualified # 🌹 rose +1F940 ; fully-qualified # 🥀 wilted flower +1F33A ; fully-qualified # 🌺 hibiscus +1F33B ; fully-qualified # 🌻 sunflower +1F33C ; fully-qualified # 🌼 blossom +1F337 ; fully-qualified # 🌷 tulip + +# subgroup: plant-other +1F331 ; fully-qualified # 🌱 seedling +1F332 ; fully-qualified # 🌲 evergreen tree +1F333 ; fully-qualified # 🌳 deciduous tree +1F334 ; fully-qualified # 🌴 palm tree +1F335 ; fully-qualified # 🌵 cactus +1F33E ; fully-qualified # 🌾 sheaf of rice +1F33F ; fully-qualified # 🌿 herb +2618 FE0F ; fully-qualified # ☘️ shamrock +2618 ; unqualified # ☘ shamrock +1F340 ; fully-qualified # 🍀 four leaf clover +1F341 ; fully-qualified # 🍁 maple leaf +1F342 ; fully-qualified # 🍂 fallen leaf +1F343 ; fully-qualified # 🍃 leaf fluttering in wind + +# Animals & Nature subtotal: 133 +# Animals & Nature subtotal: 133 w/o modifiers + +# group: Food & Drink + +# subgroup: food-fruit +1F347 ; fully-qualified # 🍇 grapes +1F348 ; fully-qualified # 🍈 melon +1F349 ; fully-qualified # 🍉 watermelon +1F34A ; fully-qualified # 🍊 tangerine +1F34B ; fully-qualified # 🍋 lemon +1F34C ; fully-qualified # 🍌 banana +1F34D ; fully-qualified # 🍍 pineapple +1F96D ; fully-qualified # 🥭 mango +1F34E ; fully-qualified # 🍎 red apple +1F34F ; fully-qualified # 🍏 green apple +1F350 ; fully-qualified # 🍐 pear +1F351 ; fully-qualified # 🍑 peach +1F352 ; fully-qualified # 🍒 cherries +1F353 ; fully-qualified # 🍓 strawberry +1F95D ; fully-qualified # 🥝 kiwi fruit +1F345 ; fully-qualified # 🍅 tomato +1F965 ; fully-qualified # 🥥 coconut + +# subgroup: food-vegetable +1F951 ; fully-qualified # 🥑 avocado +1F346 ; fully-qualified # 🍆 eggplant +1F954 ; fully-qualified # 🥔 potato +1F955 ; fully-qualified # 🥕 carrot +1F33D ; fully-qualified # 🌽 ear of corn +1F336 FE0F ; fully-qualified # 🌶️ hot pepper +1F336 ; unqualified # 🌶 hot pepper +1F952 ; fully-qualified # 🥒 cucumber +1F96C ; fully-qualified # 🥬 leafy green +1F966 ; fully-qualified # 🥦 broccoli +1F9C4 ; fully-qualified # 🧄 garlic +1F9C5 ; fully-qualified # 🧅 onion +1F344 ; fully-qualified # 🍄 mushroom +1F95C ; fully-qualified # 🥜 peanuts +1F330 ; fully-qualified # 🌰 chestnut + +# subgroup: food-prepared +1F35E ; fully-qualified # 🍞 bread +1F950 ; fully-qualified # 🥐 croissant +1F956 ; fully-qualified # 🥖 baguette bread +1F968 ; fully-qualified # 🥨 pretzel +1F96F ; fully-qualified # 🥯 bagel +1F95E ; fully-qualified # 🥞 pancakes +1F9C7 ; fully-qualified # 🧇 waffle +1F9C0 ; fully-qualified # 🧀 cheese wedge +1F356 ; fully-qualified # 🍖 meat on bone +1F357 ; fully-qualified # 🍗 poultry leg +1F969 ; fully-qualified # 🥩 cut of meat +1F953 ; fully-qualified # 🥓 bacon +1F354 ; fully-qualified # 🍔 hamburger +1F35F ; fully-qualified # 🍟 french fries +1F355 ; fully-qualified # 🍕 pizza +1F32D ; fully-qualified # 🌭 hot dog +1F96A ; fully-qualified # 🥪 sandwich +1F32E ; fully-qualified # 🌮 taco +1F32F ; fully-qualified # 🌯 burrito +1F959 ; fully-qualified # 🥙 stuffed flatbread +1F9C6 ; fully-qualified # 🧆 falafel +1F95A ; fully-qualified # 🥚 egg +1F373 ; fully-qualified # 🍳 cooking +1F958 ; fully-qualified # 🥘 shallow pan of food +1F372 ; fully-qualified # 🍲 pot of food +1F963 ; fully-qualified # 🥣 bowl with spoon +1F957 ; fully-qualified # 🥗 green salad +1F37F ; fully-qualified # 🍿 popcorn +1F9C8 ; fully-qualified # 🧈 butter +1F9C2 ; fully-qualified # 🧂 salt +1F96B ; fully-qualified # 🥫 canned food + +# subgroup: food-asian +1F371 ; fully-qualified # 🍱 bento box +1F358 ; fully-qualified # 🍘 rice cracker +1F359 ; fully-qualified # 🍙 rice ball +1F35A ; fully-qualified # 🍚 cooked rice +1F35B ; fully-qualified # 🍛 curry rice +1F35C ; fully-qualified # 🍜 steaming bowl +1F35D ; fully-qualified # 🍝 spaghetti +1F360 ; fully-qualified # 🍠 roasted sweet potato +1F362 ; fully-qualified # 🍢 oden +1F363 ; fully-qualified # 🍣 sushi +1F364 ; fully-qualified # 🍤 fried shrimp +1F365 ; fully-qualified # 🍥 fish cake with swirl +1F96E ; fully-qualified # 🥮 moon cake +1F361 ; fully-qualified # 🍡 dango +1F95F ; fully-qualified # 🥟 dumpling +1F960 ; fully-qualified # 🥠 fortune cookie +1F961 ; fully-qualified # 🥡 takeout box + +# subgroup: food-marine +1F980 ; fully-qualified # 🦀 crab +1F99E ; fully-qualified # 🦞 lobster +1F990 ; fully-qualified # 🦐 shrimp +1F991 ; fully-qualified # 🦑 squid +1F9AA ; fully-qualified # 🦪 oyster + +# subgroup: food-sweet +1F366 ; fully-qualified # 🍦 soft ice cream +1F367 ; fully-qualified # 🍧 shaved ice +1F368 ; fully-qualified # 🍨 ice cream +1F369 ; fully-qualified # 🍩 doughnut +1F36A ; fully-qualified # 🍪 cookie +1F382 ; fully-qualified # 🎂 birthday cake +1F370 ; fully-qualified # 🍰 shortcake +1F9C1 ; fully-qualified # 🧁 cupcake +1F967 ; fully-qualified # 🥧 pie +1F36B ; fully-qualified # 🍫 chocolate bar +1F36C ; fully-qualified # 🍬 candy +1F36D ; fully-qualified # 🍭 lollipop +1F36E ; fully-qualified # 🍮 custard +1F36F ; fully-qualified # 🍯 honey pot + +# subgroup: drink +1F37C ; fully-qualified # 🍼 baby bottle +1F95B ; fully-qualified # 🥛 glass of milk +2615 ; fully-qualified # ☕ hot beverage +1F375 ; fully-qualified # 🍵 teacup without handle +1F376 ; fully-qualified # 🍶 sake +1F37E ; fully-qualified # 🍾 bottle with popping cork +1F377 ; fully-qualified # 🍷 wine glass +1F378 ; fully-qualified # 🍸 cocktail glass +1F379 ; fully-qualified # 🍹 tropical drink +1F37A ; fully-qualified # 🍺 beer mug +1F37B ; fully-qualified # 🍻 clinking beer mugs +1F942 ; fully-qualified # 🥂 clinking glasses +1F943 ; fully-qualified # 🥃 tumbler glass +1F964 ; fully-qualified # 🥤 cup with straw +1F9C3 ; fully-qualified # 🧃 beverage box +1F9C9 ; fully-qualified # 🧉 mate +1F9CA ; fully-qualified # 🧊 ice cube + +# subgroup: dishware +1F962 ; fully-qualified # 🥢 chopsticks +1F37D FE0F ; fully-qualified # 🍽️ fork and knife with plate +1F37D ; unqualified # 🍽 fork and knife with plate +1F374 ; fully-qualified # 🍴 fork and knife +1F944 ; fully-qualified # 🥄 spoon +1F52A ; fully-qualified # 🔪 kitchen knife +1F3FA ; fully-qualified # 🏺 amphora + +# Food & Drink subtotal: 123 +# Food & Drink subtotal: 123 w/o modifiers + +# group: Travel & Places + +# subgroup: place-map +1F30D ; fully-qualified # 🌍 globe showing Europe-Africa +1F30E ; fully-qualified # 🌎 globe showing Americas +1F30F ; fully-qualified # 🌏 globe showing Asia-Australia +1F310 ; fully-qualified # 🌐 globe with meridians +1F5FA FE0F ; fully-qualified # 🗺️ world map +1F5FA ; unqualified # 🗺 world map +1F5FE ; fully-qualified # 🗾 map of Japan +1F9ED ; fully-qualified # 🧭 compass + +# subgroup: place-geographic +1F3D4 FE0F ; fully-qualified # 🏔️ snow-capped mountain +1F3D4 ; unqualified # 🏔 snow-capped mountain +26F0 FE0F ; fully-qualified # ⛰️ mountain +26F0 ; unqualified # ⛰ mountain +1F30B ; fully-qualified # 🌋 volcano +1F5FB ; fully-qualified # 🗻 mount fuji +1F3D5 FE0F ; fully-qualified # 🏕️ camping +1F3D5 ; unqualified # 🏕 camping +1F3D6 FE0F ; fully-qualified # 🏖️ beach with umbrella +1F3D6 ; unqualified # 🏖 beach with umbrella +1F3DC FE0F ; fully-qualified # 🏜️ desert +1F3DC ; unqualified # 🏜 desert +1F3DD FE0F ; fully-qualified # 🏝️ desert island +1F3DD ; unqualified # 🏝 desert island +1F3DE FE0F ; fully-qualified # 🏞️ national park +1F3DE ; unqualified # 🏞 national park + +# subgroup: place-building +1F3DF FE0F ; fully-qualified # 🏟️ stadium +1F3DF ; unqualified # 🏟 stadium +1F3DB FE0F ; fully-qualified # 🏛️ classical building +1F3DB ; unqualified # 🏛 classical building +1F3D7 FE0F ; fully-qualified # 🏗️ building construction +1F3D7 ; unqualified # 🏗 building construction +1F9F1 ; fully-qualified # 🧱 brick +1F3D8 FE0F ; fully-qualified # 🏘️ houses +1F3D8 ; unqualified # 🏘 houses +1F3DA FE0F ; fully-qualified # 🏚️ derelict house +1F3DA ; unqualified # 🏚 derelict house +1F3E0 ; fully-qualified # 🏠 house +1F3E1 ; fully-qualified # 🏡 house with garden +1F3E2 ; fully-qualified # 🏢 office building +1F3E3 ; fully-qualified # 🏣 Japanese post office +1F3E4 ; fully-qualified # 🏤 post office +1F3E5 ; fully-qualified # 🏥 hospital +1F3E6 ; fully-qualified # 🏦 bank +1F3E8 ; fully-qualified # 🏨 hotel +1F3E9 ; fully-qualified # 🏩 love hotel +1F3EA ; fully-qualified # 🏪 convenience store +1F3EB ; fully-qualified # 🏫 school +1F3EC ; fully-qualified # 🏬 department store +1F3ED ; fully-qualified # 🏭 factory +1F3EF ; fully-qualified # 🏯 Japanese castle +1F3F0 ; fully-qualified # 🏰 castle +1F492 ; fully-qualified # 💒 wedding +1F5FC ; fully-qualified # 🗼 Tokyo tower +1F5FD ; fully-qualified # 🗽 Statue of Liberty + +# subgroup: place-religious +26EA ; fully-qualified # ⛪ church +1F54C ; fully-qualified # 🕌 mosque +1F6D5 ; fully-qualified # 🛕 hindu temple +1F54D ; fully-qualified # 🕍 synagogue +26E9 FE0F ; fully-qualified # ⛩️ shinto shrine +26E9 ; unqualified # ⛩ shinto shrine +1F54B ; fully-qualified # 🕋 kaaba + +# subgroup: place-other +26F2 ; fully-qualified # ⛲ fountain +26FA ; fully-qualified # ⛺ tent +1F301 ; fully-qualified # 🌁 foggy +1F303 ; fully-qualified # 🌃 night with stars +1F3D9 FE0F ; fully-qualified # 🏙️ cityscape +1F3D9 ; unqualified # 🏙 cityscape +1F304 ; fully-qualified # 🌄 sunrise over mountains +1F305 ; fully-qualified # 🌅 sunrise +1F306 ; fully-qualified # 🌆 cityscape at dusk +1F307 ; fully-qualified # 🌇 sunset +1F309 ; fully-qualified # 🌉 bridge at night +2668 FE0F ; fully-qualified # ♨️ hot springs +2668 ; unqualified # ♨ hot springs +1F3A0 ; fully-qualified # 🎠 carousel horse +1F3A1 ; fully-qualified # 🎡 ferris wheel +1F3A2 ; fully-qualified # 🎢 roller coaster +1F488 ; fully-qualified # 💈 barber pole +1F3AA ; fully-qualified # 🎪 circus tent + +# subgroup: transport-ground +1F682 ; fully-qualified # 🚂 locomotive +1F683 ; fully-qualified # 🚃 railway car +1F684 ; fully-qualified # 🚄 high-speed train +1F685 ; fully-qualified # 🚅 bullet train +1F686 ; fully-qualified # 🚆 train +1F687 ; fully-qualified # 🚇 metro +1F688 ; fully-qualified # 🚈 light rail +1F689 ; fully-qualified # 🚉 station +1F68A ; fully-qualified # 🚊 tram +1F69D ; fully-qualified # 🚝 monorail +1F69E ; fully-qualified # 🚞 mountain railway +1F68B ; fully-qualified # 🚋 tram car +1F68C ; fully-qualified # 🚌 bus +1F68D ; fully-qualified # 🚍 oncoming bus +1F68E ; fully-qualified # 🚎 trolleybus +1F690 ; fully-qualified # 🚐 minibus +1F691 ; fully-qualified # 🚑 ambulance +1F692 ; fully-qualified # 🚒 fire engine +1F693 ; fully-qualified # 🚓 police car +1F694 ; fully-qualified # 🚔 oncoming police car +1F695 ; fully-qualified # 🚕 taxi +1F696 ; fully-qualified # 🚖 oncoming taxi +1F697 ; fully-qualified # 🚗 automobile +1F698 ; fully-qualified # 🚘 oncoming automobile +1F699 ; fully-qualified # 🚙 sport utility vehicle +1F69A ; fully-qualified # 🚚 delivery truck +1F69B ; fully-qualified # 🚛 articulated lorry +1F69C ; fully-qualified # 🚜 tractor +1F3CE FE0F ; fully-qualified # 🏎️ racing car +1F3CE ; unqualified # 🏎 racing car +1F3CD FE0F ; fully-qualified # 🏍️ motorcycle +1F3CD ; unqualified # 🏍 motorcycle +1F6F5 ; fully-qualified # 🛵 motor scooter +1F9BD ; fully-qualified # 🦽 manual wheelchair +1F9BC ; fully-qualified # 🦼 motorized wheelchair +1F6FA ; fully-qualified # 🛺 auto rickshaw +1F6B2 ; fully-qualified # 🚲 bicycle +1F6F4 ; fully-qualified # 🛴 kick scooter +1F6F9 ; fully-qualified # 🛹 skateboard +1F68F ; fully-qualified # 🚏 bus stop +1F6E3 FE0F ; fully-qualified # 🛣️ motorway +1F6E3 ; unqualified # 🛣 motorway +1F6E4 FE0F ; fully-qualified # 🛤️ railway track +1F6E4 ; unqualified # 🛤 railway track +1F6E2 FE0F ; fully-qualified # 🛢️ oil drum +1F6E2 ; unqualified # 🛢 oil drum +26FD ; fully-qualified # ⛽ fuel pump +1F6A8 ; fully-qualified # 🚨 police car light +1F6A5 ; fully-qualified # 🚥 horizontal traffic light +1F6A6 ; fully-qualified # 🚦 vertical traffic light +1F6D1 ; fully-qualified # 🛑 stop sign +1F6A7 ; fully-qualified # 🚧 construction + +# subgroup: transport-water +2693 ; fully-qualified # ⚓ anchor +26F5 ; fully-qualified # ⛵ sailboat +1F6F6 ; fully-qualified # 🛶 canoe +1F6A4 ; fully-qualified # 🚤 speedboat +1F6F3 FE0F ; fully-qualified # 🛳️ passenger ship +1F6F3 ; unqualified # 🛳 passenger ship +26F4 FE0F ; fully-qualified # ⛴️ ferry +26F4 ; unqualified # ⛴ ferry +1F6E5 FE0F ; fully-qualified # 🛥️ motor boat +1F6E5 ; unqualified # 🛥 motor boat +1F6A2 ; fully-qualified # 🚢 ship + +# subgroup: transport-air +2708 FE0F ; fully-qualified # ✈️ airplane +2708 ; unqualified # ✈ airplane +1F6E9 FE0F ; fully-qualified # 🛩️ small airplane +1F6E9 ; unqualified # 🛩 small airplane +1F6EB ; fully-qualified # 🛫 airplane departure +1F6EC ; fully-qualified # 🛬 airplane arrival +1FA82 ; fully-qualified # 🪂 parachute +1F4BA ; fully-qualified # 💺 seat +1F681 ; fully-qualified # 🚁 helicopter +1F69F ; fully-qualified # 🚟 suspension railway +1F6A0 ; fully-qualified # 🚠 mountain cableway +1F6A1 ; fully-qualified # 🚡 aerial tramway +1F6F0 FE0F ; fully-qualified # 🛰️ satellite +1F6F0 ; unqualified # 🛰 satellite +1F680 ; fully-qualified # 🚀 rocket +1F6F8 ; fully-qualified # 🛸 flying saucer + +# subgroup: hotel +1F6CE FE0F ; fully-qualified # 🛎️ bellhop bell +1F6CE ; unqualified # 🛎 bellhop bell +1F9F3 ; fully-qualified # 🧳 luggage + +# subgroup: time +231B ; fully-qualified # ⌛ hourglass done +23F3 ; fully-qualified # ⏳ hourglass not done +231A ; fully-qualified # ⌚ watch +23F0 ; fully-qualified # ⏰ alarm clock +23F1 FE0F ; fully-qualified # ⏱️ stopwatch +23F1 ; unqualified # ⏱ stopwatch +23F2 FE0F ; fully-qualified # ⏲️ timer clock +23F2 ; unqualified # ⏲ timer clock +1F570 FE0F ; fully-qualified # 🕰️ mantelpiece clock +1F570 ; unqualified # 🕰 mantelpiece clock +1F55B ; fully-qualified # 🕛 twelve o’clock +1F567 ; fully-qualified # 🕧 twelve-thirty +1F550 ; fully-qualified # 🕐 one o’clock +1F55C ; fully-qualified # 🕜 one-thirty +1F551 ; fully-qualified # 🕑 two o’clock +1F55D ; fully-qualified # 🕝 two-thirty +1F552 ; fully-qualified # 🕒 three o’clock +1F55E ; fully-qualified # 🕞 three-thirty +1F553 ; fully-qualified # 🕓 four o’clock +1F55F ; fully-qualified # 🕟 four-thirty +1F554 ; fully-qualified # 🕔 five o’clock +1F560 ; fully-qualified # 🕠 five-thirty +1F555 ; fully-qualified # 🕕 six o’clock +1F561 ; fully-qualified # 🕡 six-thirty +1F556 ; fully-qualified # 🕖 seven o’clock +1F562 ; fully-qualified # 🕢 seven-thirty +1F557 ; fully-qualified # 🕗 eight o’clock +1F563 ; fully-qualified # 🕣 eight-thirty +1F558 ; fully-qualified # 🕘 nine o’clock +1F564 ; fully-qualified # 🕤 nine-thirty +1F559 ; fully-qualified # 🕙 ten o’clock +1F565 ; fully-qualified # 🕥 ten-thirty +1F55A ; fully-qualified # 🕚 eleven o’clock +1F566 ; fully-qualified # 🕦 eleven-thirty + +# subgroup: sky & weather +1F311 ; fully-qualified # 🌑 new moon +1F312 ; fully-qualified # 🌒 waxing crescent moon +1F313 ; fully-qualified # 🌓 first quarter moon +1F314 ; fully-qualified # 🌔 waxing gibbous moon +1F315 ; fully-qualified # 🌕 full moon +1F316 ; fully-qualified # 🌖 waning gibbous moon +1F317 ; fully-qualified # 🌗 last quarter moon +1F318 ; fully-qualified # 🌘 waning crescent moon +1F319 ; fully-qualified # 🌙 crescent moon +1F31A ; fully-qualified # 🌚 new moon face +1F31B ; fully-qualified # 🌛 first quarter moon face +1F31C ; fully-qualified # 🌜 last quarter moon face +1F321 FE0F ; fully-qualified # 🌡️ thermometer +1F321 ; unqualified # 🌡 thermometer +2600 FE0F ; fully-qualified # ☀️ sun +2600 ; unqualified # ☀ sun +1F31D ; fully-qualified # 🌝 full moon face +1F31E ; fully-qualified # 🌞 sun with face +1FA90 ; fully-qualified # 🪐 ringed planet +2B50 ; fully-qualified # ⭐ star +1F31F ; fully-qualified # 🌟 glowing star +1F320 ; fully-qualified # 🌠 shooting star +1F30C ; fully-qualified # 🌌 milky way +2601 FE0F ; fully-qualified # ☁️ cloud +2601 ; unqualified # ☁ cloud +26C5 ; fully-qualified # ⛅ sun behind cloud +26C8 FE0F ; fully-qualified # ⛈️ cloud with lightning and rain +26C8 ; unqualified # ⛈ cloud with lightning and rain +1F324 FE0F ; fully-qualified # 🌤️ sun behind small cloud +1F324 ; unqualified # 🌤 sun behind small cloud +1F325 FE0F ; fully-qualified # 🌥️ sun behind large cloud +1F325 ; unqualified # 🌥 sun behind large cloud +1F326 FE0F ; fully-qualified # 🌦️ sun behind rain cloud +1F326 ; unqualified # 🌦 sun behind rain cloud +1F327 FE0F ; fully-qualified # 🌧️ cloud with rain +1F327 ; unqualified # 🌧 cloud with rain +1F328 FE0F ; fully-qualified # 🌨️ cloud with snow +1F328 ; unqualified # 🌨 cloud with snow +1F329 FE0F ; fully-qualified # 🌩️ cloud with lightning +1F329 ; unqualified # 🌩 cloud with lightning +1F32A FE0F ; fully-qualified # 🌪️ tornado +1F32A ; unqualified # 🌪 tornado +1F32B FE0F ; fully-qualified # 🌫️ fog +1F32B ; unqualified # 🌫 fog +1F32C FE0F ; fully-qualified # 🌬️ wind face +1F32C ; unqualified # 🌬 wind face +1F300 ; fully-qualified # 🌀 cyclone +1F308 ; fully-qualified # 🌈 rainbow +1F302 ; fully-qualified # 🌂 closed umbrella +2602 FE0F ; fully-qualified # ☂️ umbrella +2602 ; unqualified # ☂ umbrella +2614 ; fully-qualified # ☔ umbrella with rain drops +26F1 FE0F ; fully-qualified # ⛱️ umbrella on ground +26F1 ; unqualified # ⛱ umbrella on ground +26A1 ; fully-qualified # ⚡ high voltage +2744 FE0F ; fully-qualified # ❄️ snowflake +2744 ; unqualified # ❄ snowflake +2603 FE0F ; fully-qualified # ☃️ snowman +2603 ; unqualified # ☃ snowman +26C4 ; fully-qualified # ⛄ snowman without snow +2604 FE0F ; fully-qualified # ☄️ comet +2604 ; unqualified # ☄ comet +1F525 ; fully-qualified # 🔥 fire +1F4A7 ; fully-qualified # 💧 droplet +1F30A ; fully-qualified # 🌊 water wave + +# Travel & Places subtotal: 259 +# Travel & Places subtotal: 259 w/o modifiers + +# group: Activities + +# subgroup: event +1F383 ; fully-qualified # 🎃 jack-o-lantern +1F384 ; fully-qualified # 🎄 Christmas tree +1F386 ; fully-qualified # 🎆 fireworks +1F387 ; fully-qualified # 🎇 sparkler +1F9E8 ; fully-qualified # 🧨 firecracker +2728 ; fully-qualified # ✨ sparkles +1F388 ; fully-qualified # 🎈 balloon +1F389 ; fully-qualified # 🎉 party popper +1F38A ; fully-qualified # 🎊 confetti ball +1F38B ; fully-qualified # 🎋 tanabata tree +1F38D ; fully-qualified # 🎍 pine decoration +1F38E ; fully-qualified # 🎎 Japanese dolls +1F38F ; fully-qualified # 🎏 carp streamer +1F390 ; fully-qualified # 🎐 wind chime +1F391 ; fully-qualified # 🎑 moon viewing ceremony +1F9E7 ; fully-qualified # 🧧 red envelope +1F380 ; fully-qualified # 🎀 ribbon +1F381 ; fully-qualified # 🎁 wrapped gift +1F397 FE0F ; fully-qualified # 🎗️ reminder ribbon +1F397 ; unqualified # 🎗 reminder ribbon +1F39F FE0F ; fully-qualified # 🎟️ admission tickets +1F39F ; unqualified # 🎟 admission tickets +1F3AB ; fully-qualified # 🎫 ticket + +# subgroup: award-medal +1F396 FE0F ; fully-qualified # 🎖️ military medal +1F396 ; unqualified # 🎖 military medal +1F3C6 ; fully-qualified # 🏆 trophy +1F3C5 ; fully-qualified # 🏅 sports medal +1F947 ; fully-qualified # 🥇 1st place medal +1F948 ; fully-qualified # 🥈 2nd place medal +1F949 ; fully-qualified # 🥉 3rd place medal + +# subgroup: sport +26BD ; fully-qualified # ⚽ soccer ball +26BE ; fully-qualified # ⚾ baseball +1F94E ; fully-qualified # 🥎 softball +1F3C0 ; fully-qualified # 🏀 basketball +1F3D0 ; fully-qualified # 🏐 volleyball +1F3C8 ; fully-qualified # 🏈 american football +1F3C9 ; fully-qualified # 🏉 rugby football +1F3BE ; fully-qualified # 🎾 tennis +1F94F ; fully-qualified # 🥏 flying disc +1F3B3 ; fully-qualified # 🎳 bowling +1F3CF ; fully-qualified # 🏏 cricket game +1F3D1 ; fully-qualified # 🏑 field hockey +1F3D2 ; fully-qualified # 🏒 ice hockey +1F94D ; fully-qualified # 🥍 lacrosse +1F3D3 ; fully-qualified # 🏓 ping pong +1F3F8 ; fully-qualified # 🏸 badminton +1F94A ; fully-qualified # 🥊 boxing glove +1F94B ; fully-qualified # 🥋 martial arts uniform +1F945 ; fully-qualified # 🥅 goal net +26F3 ; fully-qualified # ⛳ flag in hole +26F8 FE0F ; fully-qualified # ⛸️ ice skate +26F8 ; unqualified # ⛸ ice skate +1F3A3 ; fully-qualified # 🎣 fishing pole +1F93F ; fully-qualified # 🤿 diving mask +1F3BD ; fully-qualified # 🎽 running shirt +1F3BF ; fully-qualified # 🎿 skis +1F6F7 ; fully-qualified # 🛷 sled +1F94C ; fully-qualified # 🥌 curling stone + +# subgroup: game +1F3AF ; fully-qualified # 🎯 direct hit +1FA80 ; fully-qualified # 🪀 yo-yo +1FA81 ; fully-qualified # 🪁 kite +1F3B1 ; fully-qualified # 🎱 pool 8 ball +1F52E ; fully-qualified # 🔮 crystal ball +1F9FF ; fully-qualified # 🧿 nazar amulet +1F3AE ; fully-qualified # 🎮 video game +1F579 FE0F ; fully-qualified # 🕹️ joystick +1F579 ; unqualified # 🕹 joystick +1F3B0 ; fully-qualified # 🎰 slot machine +1F3B2 ; fully-qualified # 🎲 game die +1F9E9 ; fully-qualified # 🧩 puzzle piece +1F9F8 ; fully-qualified # 🧸 teddy bear +2660 FE0F ; fully-qualified # ♠️ spade suit +2660 ; unqualified # ♠ spade suit +2665 FE0F ; fully-qualified # ♥️ heart suit +2665 ; unqualified # ♥ heart suit +2666 FE0F ; fully-qualified # ♦️ diamond suit +2666 ; unqualified # ♦ diamond suit +2663 FE0F ; fully-qualified # ♣️ club suit +2663 ; unqualified # ♣ club suit +265F FE0F ; fully-qualified # ♟️ chess pawn +265F ; unqualified # ♟ chess pawn +1F0CF ; fully-qualified # 🃏 joker +1F004 ; fully-qualified # 🀄 mahjong red dragon +1F3B4 ; fully-qualified # 🎴 flower playing cards + +# subgroup: arts & crafts +1F3AD ; fully-qualified # 🎭 performing arts +1F5BC FE0F ; fully-qualified # 🖼️ framed picture +1F5BC ; unqualified # 🖼 framed picture +1F3A8 ; fully-qualified # 🎨 artist palette +1F9F5 ; fully-qualified # 🧵 thread +1F9F6 ; fully-qualified # 🧶 yarn + +# Activities subtotal: 90 +# Activities subtotal: 90 w/o modifiers + +# group: Objects + +# subgroup: clothing +1F453 ; fully-qualified # 👓 glasses +1F576 FE0F ; fully-qualified # 🕶️ sunglasses +1F576 ; unqualified # 🕶 sunglasses +1F97D ; fully-qualified # 🥽 goggles +1F97C ; fully-qualified # 🥼 lab coat +1F9BA ; fully-qualified # 🦺 safety vest +1F454 ; fully-qualified # 👔 necktie +1F455 ; fully-qualified # 👕 t-shirt +1F456 ; fully-qualified # 👖 jeans +1F9E3 ; fully-qualified # 🧣 scarf +1F9E4 ; fully-qualified # 🧤 gloves +1F9E5 ; fully-qualified # 🧥 coat +1F9E6 ; fully-qualified # 🧦 socks +1F457 ; fully-qualified # 👗 dress +1F458 ; fully-qualified # 👘 kimono +1F97B ; fully-qualified # 🥻 sari +1FA71 ; fully-qualified # 🩱 one-piece swimsuit +1FA72 ; fully-qualified # 🩲 swim brief +1FA73 ; fully-qualified # 🩳 shorts +1F459 ; fully-qualified # 👙 bikini +1F45A ; fully-qualified # 👚 woman’s clothes +1F45B ; fully-qualified # 👛 purse +1F45C ; fully-qualified # 👜 handbag +1F45D ; fully-qualified # 👝 clutch bag +1F6CD FE0F ; fully-qualified # 🛍️ shopping bags +1F6CD ; unqualified # 🛍 shopping bags +1F392 ; fully-qualified # 🎒 backpack +1F45E ; fully-qualified # 👞 man’s shoe +1F45F ; fully-qualified # 👟 running shoe +1F97E ; fully-qualified # 🥾 hiking boot +1F97F ; fully-qualified # 🥿 flat shoe +1F460 ; fully-qualified # 👠 high-heeled shoe +1F461 ; fully-qualified # 👡 woman’s sandal +1FA70 ; fully-qualified # 🩰 ballet shoes +1F462 ; fully-qualified # 👢 woman’s boot +1F451 ; fully-qualified # 👑 crown +1F452 ; fully-qualified # 👒 woman’s hat +1F3A9 ; fully-qualified # 🎩 top hat +1F393 ; fully-qualified # 🎓 graduation cap +1F9E2 ; fully-qualified # 🧢 billed cap +26D1 FE0F ; fully-qualified # ⛑️ rescue worker’s helmet +26D1 ; unqualified # ⛑ rescue worker’s helmet +1F4FF ; fully-qualified # 📿 prayer beads +1F484 ; fully-qualified # 💄 lipstick +1F48D ; fully-qualified # 💍 ring +1F48E ; fully-qualified # 💎 gem stone + +# subgroup: sound +1F507 ; fully-qualified # 🔇 muted speaker +1F508 ; fully-qualified # 🔈 speaker low volume +1F509 ; fully-qualified # 🔉 speaker medium volume +1F50A ; fully-qualified # 🔊 speaker high volume +1F4E2 ; fully-qualified # 📢 loudspeaker +1F4E3 ; fully-qualified # 📣 megaphone +1F4EF ; fully-qualified # 📯 postal horn +1F514 ; fully-qualified # 🔔 bell +1F515 ; fully-qualified # 🔕 bell with slash + +# subgroup: music +1F3BC ; fully-qualified # 🎼 musical score +1F3B5 ; fully-qualified # 🎵 musical note +1F3B6 ; fully-qualified # 🎶 musical notes +1F399 FE0F ; fully-qualified # 🎙️ studio microphone +1F399 ; unqualified # 🎙 studio microphone +1F39A FE0F ; fully-qualified # 🎚️ level slider +1F39A ; unqualified # 🎚 level slider +1F39B FE0F ; fully-qualified # 🎛️ control knobs +1F39B ; unqualified # 🎛 control knobs +1F3A4 ; fully-qualified # 🎤 microphone +1F3A7 ; fully-qualified # 🎧 headphone +1F4FB ; fully-qualified # 📻 radio + +# subgroup: musical-instrument +1F3B7 ; fully-qualified # 🎷 saxophone +1F3B8 ; fully-qualified # 🎸 guitar +1F3B9 ; fully-qualified # 🎹 musical keyboard +1F3BA ; fully-qualified # 🎺 trumpet +1F3BB ; fully-qualified # 🎻 violin +1FA95 ; fully-qualified # 🪕 banjo +1F941 ; fully-qualified # 🥁 drum + +# subgroup: phone +1F4F1 ; fully-qualified # 📱 mobile phone +1F4F2 ; fully-qualified # 📲 mobile phone with arrow +260E FE0F ; fully-qualified # ☎️ telephone +260E ; unqualified # ☎ telephone +1F4DE ; fully-qualified # 📞 telephone receiver +1F4DF ; fully-qualified # 📟 pager +1F4E0 ; fully-qualified # 📠 fax machine + +# subgroup: computer +1F50B ; fully-qualified # 🔋 battery +1F50C ; fully-qualified # 🔌 electric plug +1F4BB ; fully-qualified # 💻 laptop computer +1F5A5 FE0F ; fully-qualified # 🖥️ desktop computer +1F5A5 ; unqualified # 🖥 desktop computer +1F5A8 FE0F ; fully-qualified # 🖨️ printer +1F5A8 ; unqualified # 🖨 printer +2328 FE0F ; fully-qualified # ⌨️ keyboard +2328 ; unqualified # ⌨ keyboard +1F5B1 FE0F ; fully-qualified # 🖱️ computer mouse +1F5B1 ; unqualified # 🖱 computer mouse +1F5B2 FE0F ; fully-qualified # 🖲️ trackball +1F5B2 ; unqualified # 🖲 trackball +1F4BD ; fully-qualified # 💽 computer disk +1F4BE ; fully-qualified # 💾 floppy disk +1F4BF ; fully-qualified # 💿 optical disk +1F4C0 ; fully-qualified # 📀 dvd +1F9EE ; fully-qualified # 🧮 abacus + +# subgroup: light & video +1F3A5 ; fully-qualified # 🎥 movie camera +1F39E FE0F ; fully-qualified # 🎞️ film frames +1F39E ; unqualified # 🎞 film frames +1F4FD FE0F ; fully-qualified # 📽️ film projector +1F4FD ; unqualified # 📽 film projector +1F3AC ; fully-qualified # 🎬 clapper board +1F4FA ; fully-qualified # 📺 television +1F4F7 ; fully-qualified # 📷 camera +1F4F8 ; fully-qualified # 📸 camera with flash +1F4F9 ; fully-qualified # 📹 video camera +1F4FC ; fully-qualified # 📼 videocassette +1F50D ; fully-qualified # 🔍 magnifying glass tilted left +1F50E ; fully-qualified # 🔎 magnifying glass tilted right +1F56F FE0F ; fully-qualified # 🕯️ candle +1F56F ; unqualified # 🕯 candle +1F4A1 ; fully-qualified # 💡 light bulb +1F526 ; fully-qualified # 🔦 flashlight +1F3EE ; fully-qualified # 🏮 red paper lantern +1FA94 ; fully-qualified # 🪔 diya lamp + +# subgroup: book-paper +1F4D4 ; fully-qualified # 📔 notebook with decorative cover +1F4D5 ; fully-qualified # 📕 closed book +1F4D6 ; fully-qualified # 📖 open book +1F4D7 ; fully-qualified # 📗 green book +1F4D8 ; fully-qualified # 📘 blue book +1F4D9 ; fully-qualified # 📙 orange book +1F4DA ; fully-qualified # 📚 books +1F4D3 ; fully-qualified # 📓 notebook +1F4D2 ; fully-qualified # 📒 ledger +1F4C3 ; fully-qualified # 📃 page with curl +1F4DC ; fully-qualified # 📜 scroll +1F4C4 ; fully-qualified # 📄 page facing up +1F4F0 ; fully-qualified # 📰 newspaper +1F5DE FE0F ; fully-qualified # 🗞️ rolled-up newspaper +1F5DE ; unqualified # 🗞 rolled-up newspaper +1F4D1 ; fully-qualified # 📑 bookmark tabs +1F516 ; fully-qualified # 🔖 bookmark +1F3F7 FE0F ; fully-qualified # 🏷️ label +1F3F7 ; unqualified # 🏷 label + +# subgroup: money +1F4B0 ; fully-qualified # 💰 money bag +1F4B4 ; fully-qualified # 💴 yen banknote +1F4B5 ; fully-qualified # 💵 dollar banknote +1F4B6 ; fully-qualified # 💶 euro banknote +1F4B7 ; fully-qualified # 💷 pound banknote +1F4B8 ; fully-qualified # 💸 money with wings +1F4B3 ; fully-qualified # 💳 credit card +1F9FE ; fully-qualified # 🧾 receipt +1F4B9 ; fully-qualified # 💹 chart increasing with yen +1F4B1 ; fully-qualified # 💱 currency exchange +1F4B2 ; fully-qualified # 💲 heavy dollar sign + +# subgroup: mail +2709 FE0F ; fully-qualified # ✉️ envelope +2709 ; unqualified # ✉ envelope +1F4E7 ; fully-qualified # 📧 e-mail +1F4E8 ; fully-qualified # 📨 incoming envelope +1F4E9 ; fully-qualified # 📩 envelope with arrow +1F4E4 ; fully-qualified # 📤 outbox tray +1F4E5 ; fully-qualified # 📥 inbox tray +1F4E6 ; fully-qualified # 📦 package +1F4EB ; fully-qualified # 📫 closed mailbox with raised flag +1F4EA ; fully-qualified # 📪 closed mailbox with lowered flag +1F4EC ; fully-qualified # 📬 open mailbox with raised flag +1F4ED ; fully-qualified # 📭 open mailbox with lowered flag +1F4EE ; fully-qualified # 📮 postbox +1F5F3 FE0F ; fully-qualified # 🗳️ ballot box with ballot +1F5F3 ; unqualified # 🗳 ballot box with ballot + +# subgroup: writing +270F FE0F ; fully-qualified # ✏️ pencil +270F ; unqualified # ✏ pencil +2712 FE0F ; fully-qualified # ✒️ black nib +2712 ; unqualified # ✒ black nib +1F58B FE0F ; fully-qualified # 🖋️ fountain pen +1F58B ; unqualified # 🖋 fountain pen +1F58A FE0F ; fully-qualified # 🖊️ pen +1F58A ; unqualified # 🖊 pen +1F58C FE0F ; fully-qualified # 🖌️ paintbrush +1F58C ; unqualified # 🖌 paintbrush +1F58D FE0F ; fully-qualified # 🖍️ crayon +1F58D ; unqualified # 🖍 crayon +1F4DD ; fully-qualified # 📝 memo + +# subgroup: office +1F4BC ; fully-qualified # 💼 briefcase +1F4C1 ; fully-qualified # 📁 file folder +1F4C2 ; fully-qualified # 📂 open file folder +1F5C2 FE0F ; fully-qualified # 🗂️ card index dividers +1F5C2 ; unqualified # 🗂 card index dividers +1F4C5 ; fully-qualified # 📅 calendar +1F4C6 ; fully-qualified # 📆 tear-off calendar +1F5D2 FE0F ; fully-qualified # 🗒️ spiral notepad +1F5D2 ; unqualified # 🗒 spiral notepad +1F5D3 FE0F ; fully-qualified # 🗓️ spiral calendar +1F5D3 ; unqualified # 🗓 spiral calendar +1F4C7 ; fully-qualified # 📇 card index +1F4C8 ; fully-qualified # 📈 chart increasing +1F4C9 ; fully-qualified # 📉 chart decreasing +1F4CA ; fully-qualified # 📊 bar chart +1F4CB ; fully-qualified # 📋 clipboard +1F4CC ; fully-qualified # 📌 pushpin +1F4CD ; fully-qualified # 📍 round pushpin +1F4CE ; fully-qualified # 📎 paperclip +1F587 FE0F ; fully-qualified # 🖇️ linked paperclips +1F587 ; unqualified # 🖇 linked paperclips +1F4CF ; fully-qualified # 📏 straight ruler +1F4D0 ; fully-qualified # 📐 triangular ruler +2702 FE0F ; fully-qualified # ✂️ scissors +2702 ; unqualified # ✂ scissors +1F5C3 FE0F ; fully-qualified # 🗃️ card file box +1F5C3 ; unqualified # 🗃 card file box +1F5C4 FE0F ; fully-qualified # 🗄️ file cabinet +1F5C4 ; unqualified # 🗄 file cabinet +1F5D1 FE0F ; fully-qualified # 🗑️ wastebasket +1F5D1 ; unqualified # 🗑 wastebasket + +# subgroup: lock +1F512 ; fully-qualified # 🔒 locked +1F513 ; fully-qualified # 🔓 unlocked +1F50F ; fully-qualified # 🔏 locked with pen +1F510 ; fully-qualified # 🔐 locked with key +1F511 ; fully-qualified # 🔑 key +1F5DD FE0F ; fully-qualified # 🗝️ old key +1F5DD ; unqualified # 🗝 old key + +# subgroup: tool +1F528 ; fully-qualified # 🔨 hammer +1FA93 ; fully-qualified # 🪓 axe +26CF FE0F ; fully-qualified # ⛏️ pick +26CF ; unqualified # ⛏ pick +2692 FE0F ; fully-qualified # ⚒️ hammer and pick +2692 ; unqualified # ⚒ hammer and pick +1F6E0 FE0F ; fully-qualified # 🛠️ hammer and wrench +1F6E0 ; unqualified # 🛠 hammer and wrench +1F5E1 FE0F ; fully-qualified # 🗡️ dagger +1F5E1 ; unqualified # 🗡 dagger +2694 FE0F ; fully-qualified # ⚔️ crossed swords +2694 ; unqualified # ⚔ crossed swords +1F52B ; fully-qualified # 🔫 pistol +1F3F9 ; fully-qualified # 🏹 bow and arrow +1F6E1 FE0F ; fully-qualified # 🛡️ shield +1F6E1 ; unqualified # 🛡 shield +1F527 ; fully-qualified # 🔧 wrench +1F529 ; fully-qualified # 🔩 nut and bolt +2699 FE0F ; fully-qualified # ⚙️ gear +2699 ; unqualified # ⚙ gear +1F5DC FE0F ; fully-qualified # 🗜️ clamp +1F5DC ; unqualified # 🗜 clamp +2696 FE0F ; fully-qualified # ⚖️ balance scale +2696 ; unqualified # ⚖ balance scale +1F9AF ; fully-qualified # 🦯 probing cane +1F517 ; fully-qualified # 🔗 link +26D3 FE0F ; fully-qualified # ⛓️ chains +26D3 ; unqualified # ⛓ chains +1F9F0 ; fully-qualified # 🧰 toolbox +1F9F2 ; fully-qualified # 🧲 magnet + +# subgroup: science +2697 FE0F ; fully-qualified # ⚗️ alembic +2697 ; unqualified # ⚗ alembic +1F9EA ; fully-qualified # 🧪 test tube +1F9EB ; fully-qualified # 🧫 petri dish +1F9EC ; fully-qualified # 🧬 dna +1F52C ; fully-qualified # 🔬 microscope +1F52D ; fully-qualified # 🔭 telescope +1F4E1 ; fully-qualified # 📡 satellite antenna + +# subgroup: medical +1F489 ; fully-qualified # 💉 syringe +1FA78 ; fully-qualified # 🩸 drop of blood +1F48A ; fully-qualified # 💊 pill +1FA79 ; fully-qualified # 🩹 adhesive bandage +1FA7A ; fully-qualified # 🩺 stethoscope + +# subgroup: household +1F6AA ; fully-qualified # 🚪 door +1F6CF FE0F ; fully-qualified # 🛏️ bed +1F6CF ; unqualified # 🛏 bed +1F6CB FE0F ; fully-qualified # 🛋️ couch and lamp +1F6CB ; unqualified # 🛋 couch and lamp +1FA91 ; fully-qualified # 🪑 chair +1F6BD ; fully-qualified # 🚽 toilet +1F6BF ; fully-qualified # 🚿 shower +1F6C1 ; fully-qualified # 🛁 bathtub +1FA92 ; fully-qualified # 🪒 razor +1F9F4 ; fully-qualified # 🧴 lotion bottle +1F9F7 ; fully-qualified # 🧷 safety pin +1F9F9 ; fully-qualified # 🧹 broom +1F9FA ; fully-qualified # 🧺 basket +1F9FB ; fully-qualified # 🧻 roll of paper +1F9FC ; fully-qualified # 🧼 soap +1F9FD ; fully-qualified # 🧽 sponge +1F9EF ; fully-qualified # 🧯 fire extinguisher +1F6D2 ; fully-qualified # 🛒 shopping cart + +# subgroup: other-object +1F6AC ; fully-qualified # 🚬 cigarette +26B0 FE0F ; fully-qualified # ⚰️ coffin +26B0 ; unqualified # ⚰ coffin +26B1 FE0F ; fully-qualified # ⚱️ funeral urn +26B1 ; unqualified # ⚱ funeral urn +1F5FF ; fully-qualified # 🗿 moai + +# Objects subtotal: 282 +# Objects subtotal: 282 w/o modifiers + +# group: Symbols + +# subgroup: transport-sign +1F3E7 ; fully-qualified # 🏧 ATM sign +1F6AE ; fully-qualified # 🚮 litter in bin sign +1F6B0 ; fully-qualified # 🚰 potable water +267F ; fully-qualified # ♿ wheelchair symbol +1F6B9 ; fully-qualified # 🚹 men’s room +1F6BA ; fully-qualified # 🚺 women’s room +1F6BB ; fully-qualified # 🚻 restroom +1F6BC ; fully-qualified # 🚼 baby symbol +1F6BE ; fully-qualified # 🚾 water closet +1F6C2 ; fully-qualified # 🛂 passport control +1F6C3 ; fully-qualified # 🛃 customs +1F6C4 ; fully-qualified # 🛄 baggage claim +1F6C5 ; fully-qualified # 🛅 left luggage + +# subgroup: warning +26A0 FE0F ; fully-qualified # ⚠️ warning +26A0 ; unqualified # ⚠ warning +1F6B8 ; fully-qualified # 🚸 children crossing +26D4 ; fully-qualified # ⛔ no entry +1F6AB ; fully-qualified # 🚫 prohibited +1F6B3 ; fully-qualified # 🚳 no bicycles +1F6AD ; fully-qualified # 🚭 no smoking +1F6AF ; fully-qualified # 🚯 no littering +1F6B1 ; fully-qualified # 🚱 non-potable water +1F6B7 ; fully-qualified # 🚷 no pedestrians +1F4F5 ; fully-qualified # 📵 no mobile phones +1F51E ; fully-qualified # 🔞 no one under eighteen +2622 FE0F ; fully-qualified # ☢️ radioactive +2622 ; unqualified # ☢ radioactive +2623 FE0F ; fully-qualified # ☣️ biohazard +2623 ; unqualified # ☣ biohazard + +# subgroup: arrow +2B06 FE0F ; fully-qualified # ⬆️ up arrow +2B06 ; unqualified # ⬆ up arrow +2197 FE0F ; fully-qualified # ↗️ up-right arrow +2197 ; unqualified # ↗ up-right arrow +27A1 FE0F ; fully-qualified # ➡️ right arrow +27A1 ; unqualified # ➡ right arrow +2198 FE0F ; fully-qualified # ↘️ down-right arrow +2198 ; unqualified # ↘ down-right arrow +2B07 FE0F ; fully-qualified # ⬇️ down arrow +2B07 ; unqualified # ⬇ down arrow +2199 FE0F ; fully-qualified # ↙️ down-left arrow +2199 ; unqualified # ↙ down-left arrow +2B05 FE0F ; fully-qualified # ⬅️ left arrow +2B05 ; unqualified # ⬅ left arrow +2196 FE0F ; fully-qualified # ↖️ up-left arrow +2196 ; unqualified # ↖ up-left arrow +2195 FE0F ; fully-qualified # ↕️ up-down arrow +2195 ; unqualified # ↕ up-down arrow +2194 FE0F ; fully-qualified # ↔️ left-right arrow +2194 ; unqualified # ↔ left-right arrow +21A9 FE0F ; fully-qualified # ↩️ right arrow curving left +21A9 ; unqualified # ↩ right arrow curving left +21AA FE0F ; fully-qualified # ↪️ left arrow curving right +21AA ; unqualified # ↪ left arrow curving right +2934 FE0F ; fully-qualified # ⤴️ right arrow curving up +2934 ; unqualified # ⤴ right arrow curving up +2935 FE0F ; fully-qualified # ⤵️ right arrow curving down +2935 ; unqualified # ⤵ right arrow curving down +1F503 ; fully-qualified # 🔃 clockwise vertical arrows +1F504 ; fully-qualified # 🔄 counterclockwise arrows button +1F519 ; fully-qualified # 🔙 BACK arrow +1F51A ; fully-qualified # 🔚 END arrow +1F51B ; fully-qualified # 🔛 ON! arrow +1F51C ; fully-qualified # 🔜 SOON arrow +1F51D ; fully-qualified # 🔝 TOP arrow + +# subgroup: religion +1F6D0 ; fully-qualified # 🛐 place of worship +269B FE0F ; fully-qualified # ⚛️ atom symbol +269B ; unqualified # ⚛ atom symbol +1F549 FE0F ; fully-qualified # 🕉️ om +1F549 ; unqualified # 🕉 om +2721 FE0F ; fully-qualified # ✡️ star of David +2721 ; unqualified # ✡ star of David +2638 FE0F ; fully-qualified # ☸️ wheel of dharma +2638 ; unqualified # ☸ wheel of dharma +262F FE0F ; fully-qualified # ☯️ yin yang +262F ; unqualified # ☯ yin yang +271D FE0F ; fully-qualified # ✝️ latin cross +271D ; unqualified # ✝ latin cross +2626 FE0F ; fully-qualified # ☦️ orthodox cross +2626 ; unqualified # ☦ orthodox cross +262A FE0F ; fully-qualified # ☪️ star and crescent +262A ; unqualified # ☪ star and crescent +262E FE0F ; fully-qualified # ☮️ peace symbol +262E ; unqualified # ☮ peace symbol +1F54E ; fully-qualified # 🕎 menorah +1F52F ; fully-qualified # 🔯 dotted six-pointed star + +# subgroup: zodiac +2648 ; fully-qualified # ♈ Aries +2649 ; fully-qualified # ♉ Taurus +264A ; fully-qualified # ♊ Gemini +264B ; fully-qualified # ♋ Cancer +264C ; fully-qualified # ♌ Leo +264D ; fully-qualified # ♍ Virgo +264E ; fully-qualified # ♎ Libra +264F ; fully-qualified # ♏ Scorpio +2650 ; fully-qualified # ♐ Sagittarius +2651 ; fully-qualified # ♑ Capricorn +2652 ; fully-qualified # ♒ Aquarius +2653 ; fully-qualified # ♓ Pisces +26CE ; fully-qualified # ⛎ Ophiuchus + +# subgroup: av-symbol +1F500 ; fully-qualified # 🔀 shuffle tracks button +1F501 ; fully-qualified # 🔁 repeat button +1F502 ; fully-qualified # 🔂 repeat single button +25B6 FE0F ; fully-qualified # ▶️ play button +25B6 ; unqualified # ▶ play button +23E9 ; fully-qualified # ⏩ fast-forward button +23ED FE0F ; fully-qualified # ⏭️ next track button +23ED ; unqualified # ⏭ next track button +23EF FE0F ; fully-qualified # ⏯️ play or pause button +23EF ; unqualified # ⏯ play or pause button +25C0 FE0F ; fully-qualified # ◀️ reverse button +25C0 ; unqualified # ◀ reverse button +23EA ; fully-qualified # ⏪ fast reverse button +23EE FE0F ; fully-qualified # ⏮️ last track button +23EE ; unqualified # ⏮ last track button +1F53C ; fully-qualified # 🔼 upwards button +23EB ; fully-qualified # ⏫ fast up button +1F53D ; fully-qualified # 🔽 downwards button +23EC ; fully-qualified # ⏬ fast down button +23F8 FE0F ; fully-qualified # ⏸️ pause button +23F8 ; unqualified # ⏸ pause button +23F9 FE0F ; fully-qualified # ⏹️ stop button +23F9 ; unqualified # ⏹ stop button +23FA FE0F ; fully-qualified # ⏺️ record button +23FA ; unqualified # ⏺ record button +23CF FE0F ; fully-qualified # ⏏️ eject button +23CF ; unqualified # ⏏ eject button +1F3A6 ; fully-qualified # 🎦 cinema +1F505 ; fully-qualified # 🔅 dim button +1F506 ; fully-qualified # 🔆 bright button +1F4F6 ; fully-qualified # 📶 antenna bars +1F4F3 ; fully-qualified # 📳 vibration mode +1F4F4 ; fully-qualified # 📴 mobile phone off + +# subgroup: gender +2640 FE0F ; fully-qualified # ♀️ female sign +2640 ; unqualified # ♀ female sign +2642 FE0F ; fully-qualified # ♂️ male sign +2642 ; unqualified # ♂ male sign + +# subgroup: other-symbol +2695 FE0F ; fully-qualified # ⚕️ medical symbol +2695 ; unqualified # ⚕ medical symbol +267E FE0F ; fully-qualified # ♾️ infinity +267E ; unqualified # ♾ infinity +267B FE0F ; fully-qualified # ♻️ recycling symbol +267B ; unqualified # ♻ recycling symbol +269C FE0F ; fully-qualified # ⚜️ fleur-de-lis +269C ; unqualified # ⚜ fleur-de-lis +1F531 ; fully-qualified # 🔱 trident emblem +1F4DB ; fully-qualified # 📛 name badge +1F530 ; fully-qualified # 🔰 Japanese symbol for beginner +2B55 ; fully-qualified # ⭕ hollow red circle +2705 ; fully-qualified # ✅ check mark button +2611 FE0F ; fully-qualified # ☑️ check box with check +2611 ; unqualified # ☑ check box with check +2714 FE0F ; fully-qualified # ✔️ check mark +2714 ; unqualified # ✔ check mark +2716 FE0F ; fully-qualified # ✖️ multiplication sign +2716 ; unqualified # ✖ multiplication sign +274C ; fully-qualified # ❌ cross mark +274E ; fully-qualified # ❎ cross mark button +2795 ; fully-qualified # ➕ plus sign +2796 ; fully-qualified # ➖ minus sign +2797 ; fully-qualified # ➗ division sign +27B0 ; fully-qualified # ➰ curly loop +27BF ; fully-qualified # ➿ double curly loop +303D FE0F ; fully-qualified # 〽️ part alternation mark +303D ; unqualified # 〽 part alternation mark +2733 FE0F ; fully-qualified # ✳️ eight-spoked asterisk +2733 ; unqualified # ✳ eight-spoked asterisk +2734 FE0F ; fully-qualified # ✴️ eight-pointed star +2734 ; unqualified # ✴ eight-pointed star +2747 FE0F ; fully-qualified # ❇️ sparkle +2747 ; unqualified # ❇ sparkle +203C FE0F ; fully-qualified # ‼️ double exclamation mark +203C ; unqualified # ‼ double exclamation mark +2049 FE0F ; fully-qualified # ⁉️ exclamation question mark +2049 ; unqualified # ⁉ exclamation question mark +2753 ; fully-qualified # ❓ question mark +2754 ; fully-qualified # ❔ white question mark +2755 ; fully-qualified # ❕ white exclamation mark +2757 ; fully-qualified # ❗ exclamation mark +3030 FE0F ; fully-qualified # 〰️ wavy dash +3030 ; unqualified # 〰 wavy dash +00A9 FE0F ; fully-qualified # ©️ copyright +00A9 ; unqualified # © copyright +00AE FE0F ; fully-qualified # ®️ registered +00AE ; unqualified # ® registered +2122 FE0F ; fully-qualified # ™️ trade mark +2122 ; unqualified # ™ trade mark + +# subgroup: keycap +0023 FE0F 20E3 ; fully-qualified # #️⃣ keycap: # +0023 20E3 ; unqualified # #⃣ keycap: # +002A FE0F 20E3 ; fully-qualified # *️⃣ keycap: * +002A 20E3 ; unqualified # *⃣ keycap: * +0030 FE0F 20E3 ; fully-qualified # 0️⃣ keycap: 0 +0030 20E3 ; unqualified # 0⃣ keycap: 0 +0031 FE0F 20E3 ; fully-qualified # 1️⃣ keycap: 1 +0031 20E3 ; unqualified # 1⃣ keycap: 1 +0032 FE0F 20E3 ; fully-qualified # 2️⃣ keycap: 2 +0032 20E3 ; unqualified # 2⃣ keycap: 2 +0033 FE0F 20E3 ; fully-qualified # 3️⃣ keycap: 3 +0033 20E3 ; unqualified # 3⃣ keycap: 3 +0034 FE0F 20E3 ; fully-qualified # 4️⃣ keycap: 4 +0034 20E3 ; unqualified # 4⃣ keycap: 4 +0035 FE0F 20E3 ; fully-qualified # 5️⃣ keycap: 5 +0035 20E3 ; unqualified # 5⃣ keycap: 5 +0036 FE0F 20E3 ; fully-qualified # 6️⃣ keycap: 6 +0036 20E3 ; unqualified # 6⃣ keycap: 6 +0037 FE0F 20E3 ; fully-qualified # 7️⃣ keycap: 7 +0037 20E3 ; unqualified # 7⃣ keycap: 7 +0038 FE0F 20E3 ; fully-qualified # 8️⃣ keycap: 8 +0038 20E3 ; unqualified # 8⃣ keycap: 8 +0039 FE0F 20E3 ; fully-qualified # 9️⃣ keycap: 9 +0039 20E3 ; unqualified # 9⃣ keycap: 9 +1F51F ; fully-qualified # 🔟 keycap: 10 + +# subgroup: alphanum +1F520 ; fully-qualified # 🔠 input latin uppercase +1F521 ; fully-qualified # 🔡 input latin lowercase +1F522 ; fully-qualified # 🔢 input numbers +1F523 ; fully-qualified # 🔣 input symbols +1F524 ; fully-qualified # 🔤 input latin letters +1F170 FE0F ; fully-qualified # 🅰️ A button (blood type) +1F170 ; unqualified # 🅰 A button (blood type) +1F18E ; fully-qualified # 🆎 AB button (blood type) +1F171 FE0F ; fully-qualified # 🅱️ B button (blood type) +1F171 ; unqualified # 🅱 B button (blood type) +1F191 ; fully-qualified # 🆑 CL button +1F192 ; fully-qualified # 🆒 COOL button +1F193 ; fully-qualified # 🆓 FREE button +2139 FE0F ; fully-qualified # ℹ️ information +2139 ; unqualified # ℹ information +1F194 ; fully-qualified # 🆔 ID button +24C2 FE0F ; fully-qualified # Ⓜ️ circled M +24C2 ; unqualified # Ⓜ circled M +1F195 ; fully-qualified # 🆕 NEW button +1F196 ; fully-qualified # 🆖 NG button +1F17E FE0F ; fully-qualified # 🅾️ O button (blood type) +1F17E ; unqualified # 🅾 O button (blood type) +1F197 ; fully-qualified # 🆗 OK button +1F17F FE0F ; fully-qualified # 🅿️ P button +1F17F ; unqualified # 🅿 P button +1F198 ; fully-qualified # 🆘 SOS button +1F199 ; fully-qualified # 🆙 UP! button +1F19A ; fully-qualified # 🆚 VS button +1F201 ; fully-qualified # 🈁 Japanese “here” button +1F202 FE0F ; fully-qualified # 🈂️ Japanese “service charge” button +1F202 ; unqualified # 🈂 Japanese “service charge” button +1F237 FE0F ; fully-qualified # 🈷️ Japanese “monthly amount” button +1F237 ; unqualified # 🈷 Japanese “monthly amount” button +1F236 ; fully-qualified # 🈶 Japanese “not free of charge” button +1F22F ; fully-qualified # 🈯 Japanese “reserved” button +1F250 ; fully-qualified # 🉐 Japanese “bargain” button +1F239 ; fully-qualified # 🈹 Japanese “discount” button +1F21A ; fully-qualified # 🈚 Japanese “free of charge” button +1F232 ; fully-qualified # 🈲 Japanese “prohibited” button +1F251 ; fully-qualified # 🉑 Japanese “acceptable” button +1F238 ; fully-qualified # 🈸 Japanese “application” button +1F234 ; fully-qualified # 🈴 Japanese “passing grade” button +1F233 ; fully-qualified # 🈳 Japanese “vacancy” button +3297 FE0F ; fully-qualified # ㊗️ Japanese “congratulations” button +3297 ; unqualified # ㊗ Japanese “congratulations” button +3299 FE0F ; fully-qualified # ㊙️ Japanese “secret” button +3299 ; unqualified # ㊙ Japanese “secret” button +1F23A ; fully-qualified # 🈺 Japanese “open for business” button +1F235 ; fully-qualified # 🈵 Japanese “no vacancy” button + +# subgroup: geometric +1F534 ; fully-qualified # 🔴 red circle +1F7E0 ; fully-qualified # 🟠 orange circle +1F7E1 ; fully-qualified # 🟡 yellow circle +1F7E2 ; fully-qualified # 🟢 green circle +1F535 ; fully-qualified # 🔵 blue circle +1F7E3 ; fully-qualified # 🟣 purple circle +1F7E4 ; fully-qualified # 🟤 brown circle +26AB ; fully-qualified # ⚫ black circle +26AA ; fully-qualified # ⚪ white circle +1F7E5 ; fully-qualified # 🟥 red square +1F7E7 ; fully-qualified # 🟧 orange square +1F7E8 ; fully-qualified # 🟨 yellow square +1F7E9 ; fully-qualified # 🟩 green square +1F7E6 ; fully-qualified # 🟦 blue square +1F7EA ; fully-qualified # 🟪 purple square +1F7EB ; fully-qualified # 🟫 brown square +2B1B ; fully-qualified # ⬛ black large square +2B1C ; fully-qualified # ⬜ white large square +25FC FE0F ; fully-qualified # ◼️ black medium square +25FC ; unqualified # ◼ black medium square +25FB FE0F ; fully-qualified # ◻️ white medium square +25FB ; unqualified # ◻ white medium square +25FE ; fully-qualified # ◾ black medium-small square +25FD ; fully-qualified # ◽ white medium-small square +25AA FE0F ; fully-qualified # ▪️ black small square +25AA ; unqualified # ▪ black small square +25AB FE0F ; fully-qualified # ▫️ white small square +25AB ; unqualified # ▫ white small square +1F536 ; fully-qualified # 🔶 large orange diamond +1F537 ; fully-qualified # 🔷 large blue diamond +1F538 ; fully-qualified # 🔸 small orange diamond +1F539 ; fully-qualified # 🔹 small blue diamond +1F53A ; fully-qualified # 🔺 red triangle pointed up +1F53B ; fully-qualified # 🔻 red triangle pointed down +1F4A0 ; fully-qualified # 💠 diamond with a dot +1F518 ; fully-qualified # 🔘 radio button +1F533 ; fully-qualified # 🔳 white square button +1F532 ; fully-qualified # 🔲 black square button + +# Symbols subtotal: 297 +# Symbols subtotal: 297 w/o modifiers + +# group: Flags + +# subgroup: flag +1F3C1 ; fully-qualified # 🏁 chequered flag +1F6A9 ; fully-qualified # 🚩 triangular flag +1F38C ; fully-qualified # 🎌 crossed flags +1F3F4 ; fully-qualified # 🏴 black flag +1F3F3 FE0F ; fully-qualified # 🏳️ white flag +1F3F3 ; unqualified # 🏳 white flag +1F3F3 FE0F 200D 1F308 ; fully-qualified # 🏳️‍🌈 rainbow flag +1F3F3 200D 1F308 ; unqualified # 🏳‍🌈 rainbow flag +1F3F4 200D 2620 FE0F ; fully-qualified # 🏴‍☠️ pirate flag +1F3F4 200D 2620 ; minimally-qualified # 🏴‍☠ pirate flag + +# subgroup: country-flag +1F1E6 1F1E8 ; fully-qualified # 🇦🇨 flag: Ascension Island +1F1E6 1F1E9 ; fully-qualified # 🇦🇩 flag: Andorra +1F1E6 1F1EA ; fully-qualified # 🇦🇪 flag: United Arab Emirates +1F1E6 1F1EB ; fully-qualified # 🇦🇫 flag: Afghanistan +1F1E6 1F1EC ; fully-qualified # 🇦🇬 flag: Antigua & Barbuda +1F1E6 1F1EE ; fully-qualified # 🇦🇮 flag: Anguilla +1F1E6 1F1F1 ; fully-qualified # 🇦🇱 flag: Albania +1F1E6 1F1F2 ; fully-qualified # 🇦🇲 flag: Armenia +1F1E6 1F1F4 ; fully-qualified # 🇦🇴 flag: Angola +1F1E6 1F1F6 ; fully-qualified # 🇦🇶 flag: Antarctica +1F1E6 1F1F7 ; fully-qualified # 🇦🇷 flag: Argentina +1F1E6 1F1F8 ; fully-qualified # 🇦🇸 flag: American Samoa +1F1E6 1F1F9 ; fully-qualified # 🇦🇹 flag: Austria +1F1E6 1F1FA ; fully-qualified # 🇦🇺 flag: Australia +1F1E6 1F1FC ; fully-qualified # 🇦🇼 flag: Aruba +1F1E6 1F1FD ; fully-qualified # 🇦🇽 flag: Åland Islands +1F1E6 1F1FF ; fully-qualified # 🇦🇿 flag: Azerbaijan +1F1E7 1F1E6 ; fully-qualified # 🇧🇦 flag: Bosnia & Herzegovina +1F1E7 1F1E7 ; fully-qualified # 🇧🇧 flag: Barbados +1F1E7 1F1E9 ; fully-qualified # 🇧🇩 flag: Bangladesh +1F1E7 1F1EA ; fully-qualified # 🇧🇪 flag: Belgium +1F1E7 1F1EB ; fully-qualified # 🇧🇫 flag: Burkina Faso +1F1E7 1F1EC ; fully-qualified # 🇧🇬 flag: Bulgaria +1F1E7 1F1ED ; fully-qualified # 🇧🇭 flag: Bahrain +1F1E7 1F1EE ; fully-qualified # 🇧🇮 flag: Burundi +1F1E7 1F1EF ; fully-qualified # 🇧🇯 flag: Benin +1F1E7 1F1F1 ; fully-qualified # 🇧🇱 flag: St. Barthélemy +1F1E7 1F1F2 ; fully-qualified # 🇧🇲 flag: Bermuda +1F1E7 1F1F3 ; fully-qualified # 🇧🇳 flag: Brunei +1F1E7 1F1F4 ; fully-qualified # 🇧🇴 flag: Bolivia +1F1E7 1F1F6 ; fully-qualified # 🇧🇶 flag: Caribbean Netherlands +1F1E7 1F1F7 ; fully-qualified # 🇧🇷 flag: Brazil +1F1E7 1F1F8 ; fully-qualified # 🇧🇸 flag: Bahamas +1F1E7 1F1F9 ; fully-qualified # 🇧🇹 flag: Bhutan +1F1E7 1F1FB ; fully-qualified # 🇧🇻 flag: Bouvet Island +1F1E7 1F1FC ; fully-qualified # 🇧🇼 flag: Botswana +1F1E7 1F1FE ; fully-qualified # 🇧🇾 flag: Belarus +1F1E7 1F1FF ; fully-qualified # 🇧🇿 flag: Belize +1F1E8 1F1E6 ; fully-qualified # 🇨🇦 flag: Canada +1F1E8 1F1E8 ; fully-qualified # 🇨🇨 flag: Cocos (Keeling) Islands +1F1E8 1F1E9 ; fully-qualified # 🇨🇩 flag: Congo - Kinshasa +1F1E8 1F1EB ; fully-qualified # 🇨🇫 flag: Central African Republic +1F1E8 1F1EC ; fully-qualified # 🇨🇬 flag: Congo - Brazzaville +1F1E8 1F1ED ; fully-qualified # 🇨🇭 flag: Switzerland +1F1E8 1F1EE ; fully-qualified # 🇨🇮 flag: Côte d’Ivoire +1F1E8 1F1F0 ; fully-qualified # 🇨🇰 flag: Cook Islands +1F1E8 1F1F1 ; fully-qualified # 🇨🇱 flag: Chile +1F1E8 1F1F2 ; fully-qualified # 🇨🇲 flag: Cameroon +1F1E8 1F1F3 ; fully-qualified # 🇨🇳 flag: China +1F1E8 1F1F4 ; fully-qualified # 🇨🇴 flag: Colombia +1F1E8 1F1F5 ; fully-qualified # 🇨🇵 flag: Clipperton Island +1F1E8 1F1F7 ; fully-qualified # 🇨🇷 flag: Costa Rica +1F1E8 1F1FA ; fully-qualified # 🇨🇺 flag: Cuba +1F1E8 1F1FB ; fully-qualified # 🇨🇻 flag: Cape Verde +1F1E8 1F1FC ; fully-qualified # 🇨🇼 flag: Curaçao +1F1E8 1F1FD ; fully-qualified # 🇨🇽 flag: Christmas Island +1F1E8 1F1FE ; fully-qualified # 🇨🇾 flag: Cyprus +1F1E8 1F1FF ; fully-qualified # 🇨🇿 flag: Czechia +1F1E9 1F1EA ; fully-qualified # 🇩🇪 flag: Germany +1F1E9 1F1EC ; fully-qualified # 🇩🇬 flag: Diego Garcia +1F1E9 1F1EF ; fully-qualified # 🇩🇯 flag: Djibouti +1F1E9 1F1F0 ; fully-qualified # 🇩🇰 flag: Denmark +1F1E9 1F1F2 ; fully-qualified # 🇩🇲 flag: Dominica +1F1E9 1F1F4 ; fully-qualified # 🇩🇴 flag: Dominican Republic +1F1E9 1F1FF ; fully-qualified # 🇩🇿 flag: Algeria +1F1EA 1F1E6 ; fully-qualified # 🇪🇦 flag: Ceuta & Melilla +1F1EA 1F1E8 ; fully-qualified # 🇪🇨 flag: Ecuador +1F1EA 1F1EA ; fully-qualified # 🇪🇪 flag: Estonia +1F1EA 1F1EC ; fully-qualified # 🇪🇬 flag: Egypt +1F1EA 1F1ED ; fully-qualified # 🇪🇭 flag: Western Sahara +1F1EA 1F1F7 ; fully-qualified # 🇪🇷 flag: Eritrea +1F1EA 1F1F8 ; fully-qualified # 🇪🇸 flag: Spain +1F1EA 1F1F9 ; fully-qualified # 🇪🇹 flag: Ethiopia +1F1EA 1F1FA ; fully-qualified # 🇪🇺 flag: European Union +1F1EB 1F1EE ; fully-qualified # 🇫🇮 flag: Finland +1F1EB 1F1EF ; fully-qualified # 🇫🇯 flag: Fiji +1F1EB 1F1F0 ; fully-qualified # 🇫🇰 flag: Falkland Islands +1F1EB 1F1F2 ; fully-qualified # 🇫🇲 flag: Micronesia +1F1EB 1F1F4 ; fully-qualified # 🇫🇴 flag: Faroe Islands +1F1EB 1F1F7 ; fully-qualified # 🇫🇷 flag: France +1F1EC 1F1E6 ; fully-qualified # 🇬🇦 flag: Gabon +1F1EC 1F1E7 ; fully-qualified # 🇬🇧 flag: United Kingdom +1F1EC 1F1E9 ; fully-qualified # 🇬🇩 flag: Grenada +1F1EC 1F1EA ; fully-qualified # 🇬🇪 flag: Georgia +1F1EC 1F1EB ; fully-qualified # 🇬🇫 flag: French Guiana +1F1EC 1F1EC ; fully-qualified # 🇬🇬 flag: Guernsey +1F1EC 1F1ED ; fully-qualified # 🇬🇭 flag: Ghana +1F1EC 1F1EE ; fully-qualified # 🇬🇮 flag: Gibraltar +1F1EC 1F1F1 ; fully-qualified # 🇬🇱 flag: Greenland +1F1EC 1F1F2 ; fully-qualified # 🇬🇲 flag: Gambia +1F1EC 1F1F3 ; fully-qualified # 🇬🇳 flag: Guinea +1F1EC 1F1F5 ; fully-qualified # 🇬🇵 flag: Guadeloupe +1F1EC 1F1F6 ; fully-qualified # 🇬🇶 flag: Equatorial Guinea +1F1EC 1F1F7 ; fully-qualified # 🇬🇷 flag: Greece +1F1EC 1F1F8 ; fully-qualified # 🇬🇸 flag: South Georgia & South Sandwich Islands +1F1EC 1F1F9 ; fully-qualified # 🇬🇹 flag: Guatemala +1F1EC 1F1FA ; fully-qualified # 🇬🇺 flag: Guam +1F1EC 1F1FC ; fully-qualified # 🇬🇼 flag: Guinea-Bissau +1F1EC 1F1FE ; fully-qualified # 🇬🇾 flag: Guyana +1F1ED 1F1F0 ; fully-qualified # 🇭🇰 flag: Hong Kong SAR China +1F1ED 1F1F2 ; fully-qualified # 🇭🇲 flag: Heard & McDonald Islands +1F1ED 1F1F3 ; fully-qualified # 🇭🇳 flag: Honduras +1F1ED 1F1F7 ; fully-qualified # 🇭🇷 flag: Croatia +1F1ED 1F1F9 ; fully-qualified # 🇭🇹 flag: Haiti +1F1ED 1F1FA ; fully-qualified # 🇭🇺 flag: Hungary +1F1EE 1F1E8 ; fully-qualified # 🇮🇨 flag: Canary Islands +1F1EE 1F1E9 ; fully-qualified # 🇮🇩 flag: Indonesia +1F1EE 1F1EA ; fully-qualified # 🇮🇪 flag: Ireland +1F1EE 1F1F1 ; fully-qualified # 🇮🇱 flag: Israel +1F1EE 1F1F2 ; fully-qualified # 🇮🇲 flag: Isle of Man +1F1EE 1F1F3 ; fully-qualified # 🇮🇳 flag: India +1F1EE 1F1F4 ; fully-qualified # 🇮🇴 flag: British Indian Ocean Territory +1F1EE 1F1F6 ; fully-qualified # 🇮🇶 flag: Iraq +1F1EE 1F1F7 ; fully-qualified # 🇮🇷 flag: Iran +1F1EE 1F1F8 ; fully-qualified # 🇮🇸 flag: Iceland +1F1EE 1F1F9 ; fully-qualified # 🇮🇹 flag: Italy +1F1EF 1F1EA ; fully-qualified # 🇯🇪 flag: Jersey +1F1EF 1F1F2 ; fully-qualified # 🇯🇲 flag: Jamaica +1F1EF 1F1F4 ; fully-qualified # 🇯🇴 flag: Jordan +1F1EF 1F1F5 ; fully-qualified # 🇯🇵 flag: Japan +1F1F0 1F1EA ; fully-qualified # 🇰🇪 flag: Kenya +1F1F0 1F1EC ; fully-qualified # 🇰🇬 flag: Kyrgyzstan +1F1F0 1F1ED ; fully-qualified # 🇰🇭 flag: Cambodia +1F1F0 1F1EE ; fully-qualified # 🇰🇮 flag: Kiribati +1F1F0 1F1F2 ; fully-qualified # 🇰🇲 flag: Comoros +1F1F0 1F1F3 ; fully-qualified # 🇰🇳 flag: St. Kitts & Nevis +1F1F0 1F1F5 ; fully-qualified # 🇰🇵 flag: North Korea +1F1F0 1F1F7 ; fully-qualified # 🇰🇷 flag: South Korea +1F1F0 1F1FC ; fully-qualified # 🇰🇼 flag: Kuwait +1F1F0 1F1FE ; fully-qualified # 🇰🇾 flag: Cayman Islands +1F1F0 1F1FF ; fully-qualified # 🇰🇿 flag: Kazakhstan +1F1F1 1F1E6 ; fully-qualified # 🇱🇦 flag: Laos +1F1F1 1F1E7 ; fully-qualified # 🇱🇧 flag: Lebanon +1F1F1 1F1E8 ; fully-qualified # 🇱🇨 flag: St. Lucia +1F1F1 1F1EE ; fully-qualified # 🇱🇮 flag: Liechtenstein +1F1F1 1F1F0 ; fully-qualified # 🇱🇰 flag: Sri Lanka +1F1F1 1F1F7 ; fully-qualified # 🇱🇷 flag: Liberia +1F1F1 1F1F8 ; fully-qualified # 🇱🇸 flag: Lesotho +1F1F1 1F1F9 ; fully-qualified # 🇱🇹 flag: Lithuania +1F1F1 1F1FA ; fully-qualified # 🇱🇺 flag: Luxembourg +1F1F1 1F1FB ; fully-qualified # 🇱🇻 flag: Latvia +1F1F1 1F1FE ; fully-qualified # 🇱🇾 flag: Libya +1F1F2 1F1E6 ; fully-qualified # 🇲🇦 flag: Morocco +1F1F2 1F1E8 ; fully-qualified # 🇲🇨 flag: Monaco +1F1F2 1F1E9 ; fully-qualified # 🇲🇩 flag: Moldova +1F1F2 1F1EA ; fully-qualified # 🇲🇪 flag: Montenegro +1F1F2 1F1EB ; fully-qualified # 🇲🇫 flag: St. Martin +1F1F2 1F1EC ; fully-qualified # 🇲🇬 flag: Madagascar +1F1F2 1F1ED ; fully-qualified # 🇲🇭 flag: Marshall Islands +1F1F2 1F1F0 ; fully-qualified # 🇲🇰 flag: Macedonia +1F1F2 1F1F1 ; fully-qualified # 🇲🇱 flag: Mali +1F1F2 1F1F2 ; fully-qualified # 🇲🇲 flag: Myanmar (Burma) +1F1F2 1F1F3 ; fully-qualified # 🇲🇳 flag: Mongolia +1F1F2 1F1F4 ; fully-qualified # 🇲🇴 flag: Macao SAR China +1F1F2 1F1F5 ; fully-qualified # 🇲🇵 flag: Northern Mariana Islands +1F1F2 1F1F6 ; fully-qualified # 🇲🇶 flag: Martinique +1F1F2 1F1F7 ; fully-qualified # 🇲🇷 flag: Mauritania +1F1F2 1F1F8 ; fully-qualified # 🇲🇸 flag: Montserrat +1F1F2 1F1F9 ; fully-qualified # 🇲🇹 flag: Malta +1F1F2 1F1FA ; fully-qualified # 🇲🇺 flag: Mauritius +1F1F2 1F1FB ; fully-qualified # 🇲🇻 flag: Maldives +1F1F2 1F1FC ; fully-qualified # 🇲🇼 flag: Malawi +1F1F2 1F1FD ; fully-qualified # 🇲🇽 flag: Mexico +1F1F2 1F1FE ; fully-qualified # 🇲🇾 flag: Malaysia +1F1F2 1F1FF ; fully-qualified # 🇲🇿 flag: Mozambique +1F1F3 1F1E6 ; fully-qualified # 🇳🇦 flag: Namibia +1F1F3 1F1E8 ; fully-qualified # 🇳🇨 flag: New Caledonia +1F1F3 1F1EA ; fully-qualified # 🇳🇪 flag: Niger +1F1F3 1F1EB ; fully-qualified # 🇳🇫 flag: Norfolk Island +1F1F3 1F1EC ; fully-qualified # 🇳🇬 flag: Nigeria +1F1F3 1F1EE ; fully-qualified # 🇳🇮 flag: Nicaragua +1F1F3 1F1F1 ; fully-qualified # 🇳🇱 flag: Netherlands +1F1F3 1F1F4 ; fully-qualified # 🇳🇴 flag: Norway +1F1F3 1F1F5 ; fully-qualified # 🇳🇵 flag: Nepal +1F1F3 1F1F7 ; fully-qualified # 🇳🇷 flag: Nauru +1F1F3 1F1FA ; fully-qualified # 🇳🇺 flag: Niue +1F1F3 1F1FF ; fully-qualified # 🇳🇿 flag: New Zealand +1F1F4 1F1F2 ; fully-qualified # 🇴🇲 flag: Oman +1F1F5 1F1E6 ; fully-qualified # 🇵🇦 flag: Panama +1F1F5 1F1EA ; fully-qualified # 🇵🇪 flag: Peru +1F1F5 1F1EB ; fully-qualified # 🇵🇫 flag: French Polynesia +1F1F5 1F1EC ; fully-qualified # 🇵🇬 flag: Papua New Guinea +1F1F5 1F1ED ; fully-qualified # 🇵🇭 flag: Philippines +1F1F5 1F1F0 ; fully-qualified # 🇵🇰 flag: Pakistan +1F1F5 1F1F1 ; fully-qualified # 🇵🇱 flag: Poland +1F1F5 1F1F2 ; fully-qualified # 🇵🇲 flag: St. Pierre & Miquelon +1F1F5 1F1F3 ; fully-qualified # 🇵🇳 flag: Pitcairn Islands +1F1F5 1F1F7 ; fully-qualified # 🇵🇷 flag: Puerto Rico +1F1F5 1F1F8 ; fully-qualified # 🇵🇸 flag: Palestinian Territories +1F1F5 1F1F9 ; fully-qualified # 🇵🇹 flag: Portugal +1F1F5 1F1FC ; fully-qualified # 🇵🇼 flag: Palau +1F1F5 1F1FE ; fully-qualified # 🇵🇾 flag: Paraguay +1F1F6 1F1E6 ; fully-qualified # 🇶🇦 flag: Qatar +1F1F7 1F1EA ; fully-qualified # 🇷🇪 flag: Réunion +1F1F7 1F1F4 ; fully-qualified # 🇷🇴 flag: Romania +1F1F7 1F1F8 ; fully-qualified # 🇷🇸 flag: Serbia +1F1F7 1F1FA ; fully-qualified # 🇷🇺 flag: Russia +1F1F7 1F1FC ; fully-qualified # 🇷🇼 flag: Rwanda +1F1F8 1F1E6 ; fully-qualified # 🇸🇦 flag: Saudi Arabia +1F1F8 1F1E7 ; fully-qualified # 🇸🇧 flag: Solomon Islands +1F1F8 1F1E8 ; fully-qualified # 🇸🇨 flag: Seychelles +1F1F8 1F1E9 ; fully-qualified # 🇸🇩 flag: Sudan +1F1F8 1F1EA ; fully-qualified # 🇸🇪 flag: Sweden +1F1F8 1F1EC ; fully-qualified # 🇸🇬 flag: Singapore +1F1F8 1F1ED ; fully-qualified # 🇸🇭 flag: St. Helena +1F1F8 1F1EE ; fully-qualified # 🇸🇮 flag: Slovenia +1F1F8 1F1EF ; fully-qualified # 🇸🇯 flag: Svalbard & Jan Mayen +1F1F8 1F1F0 ; fully-qualified # 🇸🇰 flag: Slovakia +1F1F8 1F1F1 ; fully-qualified # 🇸🇱 flag: Sierra Leone +1F1F8 1F1F2 ; fully-qualified # 🇸🇲 flag: San Marino +1F1F8 1F1F3 ; fully-qualified # 🇸🇳 flag: Senegal +1F1F8 1F1F4 ; fully-qualified # 🇸🇴 flag: Somalia +1F1F8 1F1F7 ; fully-qualified # 🇸🇷 flag: Suriname +1F1F8 1F1F8 ; fully-qualified # 🇸🇸 flag: South Sudan +1F1F8 1F1F9 ; fully-qualified # 🇸🇹 flag: São Tomé & Príncipe +1F1F8 1F1FB ; fully-qualified # 🇸🇻 flag: El Salvador +1F1F8 1F1FD ; fully-qualified # 🇸🇽 flag: Sint Maarten +1F1F8 1F1FE ; fully-qualified # 🇸🇾 flag: Syria +1F1F8 1F1FF ; fully-qualified # 🇸🇿 flag: Eswatini +1F1F9 1F1E6 ; fully-qualified # 🇹🇦 flag: Tristan da Cunha +1F1F9 1F1E8 ; fully-qualified # 🇹🇨 flag: Turks & Caicos Islands +1F1F9 1F1E9 ; fully-qualified # 🇹🇩 flag: Chad +1F1F9 1F1EB ; fully-qualified # 🇹🇫 flag: French Southern Territories +1F1F9 1F1EC ; fully-qualified # 🇹🇬 flag: Togo +1F1F9 1F1ED ; fully-qualified # 🇹🇭 flag: Thailand +1F1F9 1F1EF ; fully-qualified # 🇹🇯 flag: Tajikistan +1F1F9 1F1F0 ; fully-qualified # 🇹🇰 flag: Tokelau +1F1F9 1F1F1 ; fully-qualified # 🇹🇱 flag: Timor-Leste +1F1F9 1F1F2 ; fully-qualified # 🇹🇲 flag: Turkmenistan +1F1F9 1F1F3 ; fully-qualified # 🇹🇳 flag: Tunisia +1F1F9 1F1F4 ; fully-qualified # 🇹🇴 flag: Tonga +1F1F9 1F1F7 ; fully-qualified # 🇹🇷 flag: Turkey +1F1F9 1F1F9 ; fully-qualified # 🇹🇹 flag: Trinidad & Tobago +1F1F9 1F1FB ; fully-qualified # 🇹🇻 flag: Tuvalu +1F1F9 1F1FC ; fully-qualified # 🇹🇼 flag: Taiwan +1F1F9 1F1FF ; fully-qualified # 🇹🇿 flag: Tanzania +1F1FA 1F1E6 ; fully-qualified # 🇺🇦 flag: Ukraine +1F1FA 1F1EC ; fully-qualified # 🇺🇬 flag: Uganda +1F1FA 1F1F2 ; fully-qualified # 🇺🇲 flag: U.S. Outlying Islands +1F1FA 1F1F3 ; fully-qualified # 🇺🇳 flag: United Nations +1F1FA 1F1F8 ; fully-qualified # 🇺🇸 flag: United States +1F1FA 1F1FE ; fully-qualified # 🇺🇾 flag: Uruguay +1F1FA 1F1FF ; fully-qualified # 🇺🇿 flag: Uzbekistan +1F1FB 1F1E6 ; fully-qualified # 🇻🇦 flag: Vatican City +1F1FB 1F1E8 ; fully-qualified # 🇻🇨 flag: St. Vincent & Grenadines +1F1FB 1F1EA ; fully-qualified # 🇻🇪 flag: Venezuela +1F1FB 1F1EC ; fully-qualified # 🇻🇬 flag: British Virgin Islands +1F1FB 1F1EE ; fully-qualified # 🇻🇮 flag: U.S. Virgin Islands +1F1FB 1F1F3 ; fully-qualified # 🇻🇳 flag: Vietnam +1F1FB 1F1FA ; fully-qualified # 🇻🇺 flag: Vanuatu +1F1FC 1F1EB ; fully-qualified # 🇼🇫 flag: Wallis & Futuna +1F1FC 1F1F8 ; fully-qualified # 🇼🇸 flag: Samoa +1F1FD 1F1F0 ; fully-qualified # 🇽🇰 flag: Kosovo +1F1FE 1F1EA ; fully-qualified # 🇾🇪 flag: Yemen +1F1FE 1F1F9 ; fully-qualified # 🇾🇹 flag: Mayotte +1F1FF 1F1E6 ; fully-qualified # 🇿🇦 flag: South Africa +1F1FF 1F1F2 ; fully-qualified # 🇿🇲 flag: Zambia +1F1FF 1F1FC ; fully-qualified # 🇿🇼 flag: Zimbabwe + +# subgroup: subdivision-flag +1F3F4 E0067 E0062 E0065 E006E E0067 E007F ; fully-qualified # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag: England +1F3F4 E0067 E0062 E0073 E0063 E0074 E007F ; fully-qualified # 🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag: Scotland +1F3F4 E0067 E0062 E0077 E006C E0073 E007F ; fully-qualified # 🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag: Wales + +# Flags subtotal: 271 +# Flags subtotal: 271 w/o modifiers + +# Status Counts +# fully-qualified : 3010 +# minimally-qualified : 571 +# unqualified : 246 +# component : 9 + +#EOF diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh index 7876f1c89..f9e476ebf 100644 --- a/plugins/emoji/emoji.plugin.zsh +++ b/plugins/emoji/emoji.plugin.zsh @@ -4,15 +4,17 @@ # # See the README for documentation. +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + _omz_emoji_plugin_dir="${0:h}" () { local LC_ALL=en_US.UTF-8 -typeset -gAH emoji_groups -typeset -gAH emoji_con -typeset -gAH emoji2 typeset -gAH emoji_skintone source "$_omz_emoji_plugin_dir/emoji-char-definitions.zsh" @@ -20,12 +22,11 @@ unset _omz_emoji_plugin_dir # These additional emoji are not in the definition file, but are useful in conjunction with it -# This is a combinin character that can be placed after any other character to surround +# This is a combining character that can be placed after any other character to surround # it in a "keycap" symbol. # The digits 0-9 are already in the emoji table as keycap_digit_, keycap_ten, etc. # It's unclear whether this should be in the $emoji array, because those characters are all ones # which can be displayed on their own. -#emoji[combining_enclosing_keycap]="\U20E3" emoji[regional_indicator_symbol_letter_d_regional_indicator_symbol_letter_e]=$'\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA' emoji[regional_indicator_symbol_letter_g_regional_indicator_symbol_letter_b]=$'\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7' @@ -38,209 +39,12 @@ emoji[regional_indicator_symbol_letter_i_regional_indicator_symbol_letter_t]=$'\ emoji[regional_indicator_symbol_letter_u_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8' emoji[regional_indicator_symbol_letter_r_regional_indicator_symbol_letter_u]=$'\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA' -# Nonstandard alias names -emoji[vulcan_salute]=$'\U1F596' - - -# Emoji combining and auxiliary characters - -# "Variation Selectors" for controlling text vs emoji style presentation -# These apply to the immediately preceding character -emoji2[text_style]=$'\UFE0E' -emoji2[emoji_style]=$'\UFE0F' -# Joiner that indicates a single combined-form glyph (ligature) should be used -emoji2[zero_width_joiner]=$'\U200D' -# Skin tone modifiers -emoji2[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji2[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji2[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji2[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji2[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -# Various other combining characters. (Incomplete list; I selected ones that sound useful) -emoji2[combining_enclosing_circle]=$'\U20DD' -emoji2[combining_enclosing_square]=$'\U20DE' -emoji2[combining_enclosing_diamond]=$'\U20DF' -emoji2[combining_enclosing_circle_backslash]=$'\U20E0' -emoji2[combining_enclosing_screen]=$'\U20E2' -emoji2[combining_enclosing_keycap]=$'\U20E3' -emoji2[combining_enclosing_upward_pointing_triangle]=$'\U20E4' - # Easier access to skin tone modifiers emoji_skintone[1_2]=$'\U1F3FB' emoji_skintone[3]=$'\U1F3FC' emoji_skintone[4]=$'\U1F3FD' emoji_skintone[5]=$'\U1F3FE' emoji_skintone[6]=$'\U1F3FF' - -# Emoji groups -# These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global -# namespace, and to allow adding additional group definitions at run time. -# The keys are the group names, and the values are whitespace-separated lists of emoji character names. - -emoji_groups[fruits]=" - tomato - aubergine - grapes - melon - watermelon - tangerine - banana - pineapple - red_apple - green_apple - peach - cherries - strawberry - lemon - pear -" - -emoji_groups[vehicles]=" - airplane - rocket - railway_car - high_speed_train - high_speed_train_with_bullet_nose - bus - ambulance - fire_engine - police_car - taxi - automobile - recreational_vehicle - delivery_truck - ship - speedboat - bicycle - helicopter - steam_locomotive - train - light_rail - tram - oncoming_bus - trolleybus - minibus - oncoming_police_car - oncoming_taxi - oncoming_automobile - articulated_lorry - tractor - monorail - mountain_railway - suspension_railway - mountain_cableway - aerial_tramway - rowboat - bicyclist - mountain_bicyclist - sailboat -" - -emoji_groups[animals]=" - snail - snake - horse - sheep - monkey - chicken - boar - elephant - octopus - spiral_shell - bug - ant - honeybee - lady_beetle - fish - tropical_fish - blowfish - turtle - hatching_chick - baby_chick - front_facing_baby_chick - bird - penguin - koala - poodle - bactrian_camel - dolphin - mouse_face - cow_face - tiger_face - rabbit_face - cat_face - dragon_face - spouting_whale - horse_face - monkey_face - dog_face - pig_face - frog_face - hamster_face - wolf_face - bear_face - panda_face - rat - mouse - ox - water_buffalo - cow - tiger - leopard - rabbit - cat - dragon - crocodile - whale - ram - goat - rooster - dog - pig - dromedary_camel -" - -emoji_groups[faces]=" - grinning_face_with_smiling_eyes - face_with_tears_of_joy - smiling_face_with_open_mouth - smiling_face_with_open_mouth_and_smiling_eyes - smiling_face_with_open_mouth_and_cold_sweat - smiling_face_with_open_mouth_and_tightly_closed_eyes - winking_face - smiling_face_with_smiling_eyes - face_savouring_delicious_food - relieved_face - smiling_face_with_heart_shaped_eyes - smirking_face - unamused_face - face_with_cold_sweat - pensive_face - confounded_face - face_throwing_a_kiss - kissing_face_with_closed_eyes - face_with_stuck_out_tongue_and_winking_eye - face_with_stuck_out_tongue_and_tightly_closed_eyes - disappointed_face - angry_face - pouting_face - crying_face - persevering_face - face_with_look_of_triumph - disappointed_but_relieved_face - fearful_face - weary_face - sleepy_face - tired_face - loudly_crying_face - face_with_open_mouth_and_cold_sweat - face_screaming_in_fear - astonished_face - flushed_face - dizzy_face - face_with_medical_mask -" - } # Prints a random emoji character @@ -259,7 +63,11 @@ function random_emoji() { [[ $list_size -eq 0 ]] && return 1 local random_index=$(( ( RANDOM % $list_size ) + 1 )) local name=${names[$random_index]} - echo ${emoji[$name]} + if [[ "$group" == "flags" ]]; then + echo ${emoji_flags[$name]} + else + echo ${emoji[$name]} + fi } # Displays a listing of emoji with their names @@ -276,12 +84,26 @@ function display_emoji() { fi # The extra spaces in output here are a hack for readability, since some # terminals treat these emoji chars as single-width. + local counter=1 for i in $names; do - printf '%s ' "$emoji[$i]" + if [[ "$group" == "flags" ]]; then + printf '%s ' "$emoji_flags[$i]" + else + printf '%s ' "$emoji[$i]" + fi + # New line every 20 emoji, to avoid weirdnesses + if (($counter % 20 == 0)); then + printf "\n" + fi + let counter=$counter+1 done print for i in $names; do - echo "${emoji[$i]} = $i" + if [[ "$group" == "flags" ]]; then + echo "${emoji_flags[$i]} = $i" + else + echo "${emoji[$i]} = $i" + fi done } diff --git a/plugins/emoji/gemoji_db.json b/plugins/emoji/gemoji_db.json new file mode 100644 index 000000000..9227c26d1 --- /dev/null +++ b/plugins/emoji/gemoji_db.json @@ -0,0 +1,21538 @@ +[ + { + "emoji": "😀" + , "description": "grinning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "grinning" + ] + , "tags": [ + "smile" + , "happy" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😃" + , "description": "grinning face with big eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiley" + ] + , "tags": [ + "happy" + , "joy" + , "haha" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😄" + , "description": "grinning face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smile" + ] + , "tags": [ + "happy" + , "joy" + , "laugh" + , "pleased" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😁" + , "description": "beaming face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "grin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😆" + , "description": "grinning squinting face" + , "category": "Smileys & Emotion" + , "aliases": [ + "laughing" + , "satisfied" + ] + , "tags": [ + "happy" + , "haha" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😅" + , "description": "grinning face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat_smile" + ] + , "tags": [ + "hot" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤣" + , "description": "rolling on the floor laughing" + , "category": "Smileys & Emotion" + , "aliases": [ + "rofl" + ] + , "tags": [ + "lol" + , "laughing" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😂" + , "description": "face with tears of joy" + , "category": "Smileys & Emotion" + , "aliases": [ + "joy" + ] + , "tags": [ + "tears" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙂" + , "description": "slightly smiling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "slightly_smiling_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🙃" + , "description": "upside-down face" + , "category": "Smileys & Emotion" + , "aliases": [ + "upside_down_face" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😉" + , "description": "winking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "wink" + ] + , "tags": [ + "flirt" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😊" + , "description": "smiling face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "blush" + ] + , "tags": [ + "proud" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😇" + , "description": "smiling face with halo" + , "category": "Smileys & Emotion" + , "aliases": [ + "innocent" + ] + , "tags": [ + "angel" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥰" + , "description": "smiling face with hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiling_face_with_three_hearts" + ] + , "tags": [ + "love" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😍" + , "description": "smiling face with heart-eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_eyes" + ] + , "tags": [ + "love" + , "crush" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤩" + , "description": "star-struck" + , "category": "Smileys & Emotion" + , "aliases": [ + "star_struck" + ] + , "tags": [ + "eyes" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😘" + , "description": "face blowing a kiss" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_heart" + ] + , "tags": [ + "flirt" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😗" + , "description": "kissing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "☺️" + , "description": "smiling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "relaxed" + ] + , "tags": [ + "blush" + , "pleased" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "😚" + , "description": "kissing face with closed eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_closed_eyes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😙" + , "description": "kissing face with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_smiling_eyes" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😋" + , "description": "face savoring food" + , "category": "Smileys & Emotion" + , "aliases": [ + "yum" + ] + , "tags": [ + "tongue" + , "lick" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😛" + , "description": "face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😜" + , "description": "winking face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue_winking_eye" + ] + , "tags": [ + "prank" + , "silly" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤪" + , "description": "zany face" + , "category": "Smileys & Emotion" + , "aliases": [ + "zany_face" + ] + , "tags": [ + "goofy" + , "wacky" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😝" + , "description": "squinting face with tongue" + , "category": "Smileys & Emotion" + , "aliases": [ + "stuck_out_tongue_closed_eyes" + ] + , "tags": [ + "prank" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤑" + , "description": "money-mouth face" + , "category": "Smileys & Emotion" + , "aliases": [ + "money_mouth_face" + ] + , "tags": [ + "rich" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤗" + , "description": "hugging face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hugs" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤭" + , "description": "face with hand over mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "hand_over_mouth" + ] + , "tags": [ + "quiet" + , "whoops" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤫" + , "description": "shushing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "shushing_face" + ] + , "tags": [ + "silence" + , "quiet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤔" + , "description": "thinking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "thinking" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤐" + , "description": "zipper-mouth face" + , "category": "Smileys & Emotion" + , "aliases": [ + "zipper_mouth_face" + ] + , "tags": [ + "silence" + , "hush" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤨" + , "description": "face with raised eyebrow" + , "category": "Smileys & Emotion" + , "aliases": [ + "raised_eyebrow" + ] + , "tags": [ + "suspicious" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😐" + , "description": "neutral face" + , "category": "Smileys & Emotion" + , "aliases": [ + "neutral_face" + ] + , "tags": [ + "meh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😑" + , "description": "expressionless face" + , "category": "Smileys & Emotion" + , "aliases": [ + "expressionless" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😶" + , "description": "face without mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "no_mouth" + ] + , "tags": [ + "mute" + , "silence" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😏" + , "description": "smirking face" + , "category": "Smileys & Emotion" + , "aliases": [ + "smirk" + ] + , "tags": [ + "smug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😒" + , "description": "unamused face" + , "category": "Smileys & Emotion" + , "aliases": [ + "unamused" + ] + , "tags": [ + "meh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙄" + , "description": "face with rolling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "roll_eyes" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😬" + , "description": "grimacing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "grimacing" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "🤥" + , "description": "lying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "lying_face" + ] + , "tags": [ + "liar" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😌" + , "description": "relieved face" + , "category": "Smileys & Emotion" + , "aliases": [ + "relieved" + ] + , "tags": [ + "whew" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😔" + , "description": "pensive face" + , "category": "Smileys & Emotion" + , "aliases": [ + "pensive" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😪" + , "description": "sleepy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sleepy" + ] + , "tags": [ + "tired" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤤" + , "description": "drooling face" + , "category": "Smileys & Emotion" + , "aliases": [ + "drooling_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "😴" + , "description": "sleeping face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sleeping" + ] + , "tags": [ + "zzz" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😷" + , "description": "face with medical mask" + , "category": "Smileys & Emotion" + , "aliases": [ + "mask" + ] + , "tags": [ + "sick" + , "ill" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤒" + , "description": "face with thermometer" + , "category": "Smileys & Emotion" + , "aliases": [ + "face_with_thermometer" + ] + , "tags": [ + "sick" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤕" + , "description": "face with head-bandage" + , "category": "Smileys & Emotion" + , "aliases": [ + "face_with_head_bandage" + ] + , "tags": [ + "hurt" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🤢" + , "description": "nauseated face" + , "category": "Smileys & Emotion" + , "aliases": [ + "nauseated_face" + ] + , "tags": [ + "sick" + , "barf" + , "disgusted" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤮" + , "description": "face vomiting" + , "category": "Smileys & Emotion" + , "aliases": [ + "vomiting_face" + ] + , "tags": [ + "barf" + , "sick" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤧" + , "description": "sneezing face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sneezing_face" + ] + , "tags": [ + "achoo" + , "sick" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥵" + , "description": "hot face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hot_face" + ] + , "tags": [ + "heat" + , "sweating" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥶" + , "description": "cold face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cold_face" + ] + , "tags": [ + "freezing" + , "ice" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥴" + , "description": "woozy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "woozy_face" + ] + , "tags": [ + "groggy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😵" + , "description": "dizzy face" + , "category": "Smileys & Emotion" + , "aliases": [ + "dizzy_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤯" + , "description": "exploding head" + , "category": "Smileys & Emotion" + , "aliases": [ + "exploding_head" + ] + , "tags": [ + "mind" + , "blown" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤠" + , "description": "cowboy hat face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cowboy_hat_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥳" + , "description": "partying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "partying_face" + ] + , "tags": [ + "celebration" + , "birthday" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😎" + , "description": "smiling face with sunglasses" + , "category": "Smileys & Emotion" + , "aliases": [ + "sunglasses" + ] + , "tags": [ + "cool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤓" + , "description": "nerd face" + , "category": "Smileys & Emotion" + , "aliases": [ + "nerd_face" + ] + , "tags": [ + "geek" + , "glasses" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧐" + , "description": "face with monocle" + , "category": "Smileys & Emotion" + , "aliases": [ + "monocle_face" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😕" + , "description": "confused face" + , "category": "Smileys & Emotion" + , "aliases": [ + "confused" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😟" + , "description": "worried face" + , "category": "Smileys & Emotion" + , "aliases": [ + "worried" + ] + , "tags": [ + "nervous" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "🙁" + , "description": "slightly frowning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "slightly_frowning_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "☹" + , "description": "frowning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "frowning_face" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "😮" + , "description": "face with open mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "open_mouth" + ] + , "tags": [ + "surprise" + , "impressed" + , "wow" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😯" + , "description": "hushed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "hushed" + ] + , "tags": [ + "silence" + , "speechless" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😲" + , "description": "astonished face" + , "category": "Smileys & Emotion" + , "aliases": [ + "astonished" + ] + , "tags": [ + "amazed" + , "gasp" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😳" + , "description": "flushed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "flushed" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥺" + , "description": "pleading face" + , "category": "Smileys & Emotion" + , "aliases": [ + "pleading_face" + ] + , "tags": [ + "puppy" + , "eyes" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😦" + , "description": "frowning face with open mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "frowning" + ] + , "tags": [ + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😧" + , "description": "anguished face" + , "category": "Smileys & Emotion" + , "aliases": [ + "anguished" + ] + , "tags": [ + "stunned" + ] + , "unicode_version": "6.1" + , "ios_version": "6.0" + } +, { + "emoji": "😨" + , "description": "fearful face" + , "category": "Smileys & Emotion" + , "aliases": [ + "fearful" + ] + , "tags": [ + "scared" + , "shocked" + , "oops" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😰" + , "description": "anxious face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "cold_sweat" + ] + , "tags": [ + "nervous" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😥" + , "description": "sad but relieved face" + , "category": "Smileys & Emotion" + , "aliases": [ + "disappointed_relieved" + ] + , "tags": [ + "phew" + , "sweat" + , "nervous" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😢" + , "description": "crying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "cry" + ] + , "tags": [ + "sad" + , "tear" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😭" + , "description": "loudly crying face" + , "category": "Smileys & Emotion" + , "aliases": [ + "sob" + ] + , "tags": [ + "sad" + , "cry" + , "bawling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😱" + , "description": "face screaming in fear" + , "category": "Smileys & Emotion" + , "aliases": [ + "scream" + ] + , "tags": [ + "horror" + , "shocked" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😖" + , "description": "confounded face" + , "category": "Smileys & Emotion" + , "aliases": [ + "confounded" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😣" + , "description": "persevering face" + , "category": "Smileys & Emotion" + , "aliases": [ + "persevere" + ] + , "tags": [ + "struggling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😞" + , "description": "disappointed face" + , "category": "Smileys & Emotion" + , "aliases": [ + "disappointed" + ] + , "tags": [ + "sad" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😓" + , "description": "downcast face with sweat" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😩" + , "description": "weary face" + , "category": "Smileys & Emotion" + , "aliases": [ + "weary" + ] + , "tags": [ + "tired" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😫" + , "description": "tired face" + , "category": "Smileys & Emotion" + , "aliases": [ + "tired_face" + ] + , "tags": [ + "upset" + , "whine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥱" + , "description": "yawning face" + , "category": "Smileys & Emotion" + , "aliases": [ + "yawning_face" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "😤" + , "description": "face with steam from nose" + , "category": "Smileys & Emotion" + , "aliases": [ + "triumph" + ] + , "tags": [ + "smug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😡" + , "description": "pouting face" + , "category": "Smileys & Emotion" + , "aliases": [ + "rage" + , "pout" + ] + , "tags": [ + "angry" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😠" + , "description": "angry face" + , "category": "Smileys & Emotion" + , "aliases": [ + "angry" + ] + , "tags": [ + "mad" + , "annoyed" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤬" + , "description": "face with symbols on mouth" + , "category": "Smileys & Emotion" + , "aliases": [ + "cursing_face" + ] + , "tags": [ + "foul" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "😈" + , "description": "smiling face with horns" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiling_imp" + ] + , "tags": [ + "devil" + , "evil" + , "horns" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👿" + , "description": "angry face with horns" + , "category": "Smileys & Emotion" + , "aliases": [ + "imp" + ] + , "tags": [ + "angry" + , "devil" + , "evil" + , "horns" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💀" + , "description": "skull" + , "category": "Smileys & Emotion" + , "aliases": [ + "skull" + ] + , "tags": [ + "dead" + , "danger" + , "poison" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☠" + , "description": "skull and crossbones" + , "category": "Smileys & Emotion" + , "aliases": [ + "skull_and_crossbones" + ] + , "tags": [ + "danger" + , "pirate" + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "💩" + , "description": "pile of poo" + , "category": "Smileys & Emotion" + , "aliases": [ + "hankey" + , "poop" + , "shit" + ] + , "tags": [ + "crap" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤡" + , "description": "clown face" + , "category": "Smileys & Emotion" + , "aliases": [ + "clown_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "👹" + , "description": "ogre" + , "category": "Smileys & Emotion" + , "aliases": [ + "japanese_ogre" + ] + , "tags": [ + "monster" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👺" + , "description": "goblin" + , "category": "Smileys & Emotion" + , "aliases": [ + "japanese_goblin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👻" + , "description": "ghost" + , "category": "Smileys & Emotion" + , "aliases": [ + "ghost" + ] + , "tags": [ + "halloween" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👽" + , "description": "alien" + , "category": "Smileys & Emotion" + , "aliases": [ + "alien" + ] + , "tags": [ + "ufo" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👾" + , "description": "alien monster" + , "category": "Smileys & Emotion" + , "aliases": [ + "space_invader" + ] + , "tags": [ + "game" + , "retro" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤖" + , "description": "robot" + , "category": "Smileys & Emotion" + , "aliases": [ + "robot" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "😺" + , "description": "grinning cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "smiley_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😸" + , "description": "grinning cat with smiling eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "smile_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😹" + , "description": "cat with tears of joy" + , "category": "Smileys & Emotion" + , "aliases": [ + "joy_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😻" + , "description": "smiling cat with heart-eyes" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_eyes_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😼" + , "description": "cat with wry smile" + , "category": "Smileys & Emotion" + , "aliases": [ + "smirk_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😽" + , "description": "kissing cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "kissing_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙀" + , "description": "weary cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "scream_cat" + ] + , "tags": [ + "horror" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😿" + , "description": "crying cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "crying_cat_face" + ] + , "tags": [ + "sad" + , "tear" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "😾" + , "description": "pouting cat" + , "category": "Smileys & Emotion" + , "aliases": [ + "pouting_cat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙈" + , "description": "see-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "see_no_evil" + ] + , "tags": [ + "monkey" + , "blind" + , "ignore" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙉" + , "description": "hear-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "hear_no_evil" + ] + , "tags": [ + "monkey" + , "deaf" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🙊" + , "description": "speak-no-evil monkey" + , "category": "Smileys & Emotion" + , "aliases": [ + "speak_no_evil" + ] + , "tags": [ + "monkey" + , "mute" + , "hush" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💋" + , "description": "kiss mark" + , "category": "Smileys & Emotion" + , "aliases": [ + "kiss" + ] + , "tags": [ + "lipstick" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💌" + , "description": "love letter" + , "category": "Smileys & Emotion" + , "aliases": [ + "love_letter" + ] + , "tags": [ + "email" + , "envelope" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💘" + , "description": "heart with arrow" + , "category": "Smileys & Emotion" + , "aliases": [ + "cupid" + ] + , "tags": [ + "love" + , "heart" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💝" + , "description": "heart with ribbon" + , "category": "Smileys & Emotion" + , "aliases": [ + "gift_heart" + ] + , "tags": [ + "chocolates" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💖" + , "description": "sparkling heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "sparkling_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💗" + , "description": "growing heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heartpulse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💓" + , "description": "beating heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heartbeat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💞" + , "description": "revolving hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "revolving_hearts" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💕" + , "description": "two hearts" + , "category": "Smileys & Emotion" + , "aliases": [ + "two_hearts" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💟" + , "description": "heart decoration" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart_decoration" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❣️" + , "description": "heart exclamation" + , "category": "Smileys & Emotion" + , "aliases": [ + "heavy_heart_exclamation" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "💔" + , "description": "broken heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "broken_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❤️" + , "description": "red heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "heart" + ] + , "tags": [ + "love" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🧡" + , "description": "orange heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "orange_heart" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💛" + , "description": "yellow heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "yellow_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💚" + , "description": "green heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "green_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💙" + , "description": "blue heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "blue_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💜" + , "description": "purple heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "purple_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤎" + , "description": "brown heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "brown_heart" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🖤" + , "description": "black heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "black_heart" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤍" + , "description": "white heart" + , "category": "Smileys & Emotion" + , "aliases": [ + "white_heart" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💯" + , "description": "hundred points" + , "category": "Smileys & Emotion" + , "aliases": [ + "100" + ] + , "tags": [ + "score" + , "perfect" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💢" + , "description": "anger symbol" + , "category": "Smileys & Emotion" + , "aliases": [ + "anger" + ] + , "tags": [ + "angry" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💥" + , "description": "collision" + , "category": "Smileys & Emotion" + , "aliases": [ + "boom" + , "collision" + ] + , "tags": [ + "explode" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💫" + , "description": "dizzy" + , "category": "Smileys & Emotion" + , "aliases": [ + "dizzy" + ] + , "tags": [ + "star" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💦" + , "description": "sweat droplets" + , "category": "Smileys & Emotion" + , "aliases": [ + "sweat_drops" + ] + , "tags": [ + "water" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💨" + , "description": "dashing away" + , "category": "Smileys & Emotion" + , "aliases": [ + "dash" + ] + , "tags": [ + "wind" + , "blow" + , "fast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕳" + , "description": "hole" + , "category": "Smileys & Emotion" + , "aliases": [ + "hole" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💣" + , "description": "bomb" + , "category": "Smileys & Emotion" + , "aliases": [ + "bomb" + ] + , "tags": [ + "boom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💬" + , "description": "speech balloon" + , "category": "Smileys & Emotion" + , "aliases": [ + "speech_balloon" + ] + , "tags": [ + "comment" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👁️‍🗨️" + , "description": "eye in speech bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "eye_speech_bubble" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🗨" + , "description": "left speech bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "left_speech_bubble" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🗯" + , "description": "right anger bubble" + , "category": "Smileys & Emotion" + , "aliases": [ + "right_anger_bubble" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💭" + , "description": "thought balloon" + , "category": "Smileys & Emotion" + , "aliases": [ + "thought_balloon" + ] + , "tags": [ + "thinking" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💤" + , "description": "zzz" + , "category": "Smileys & Emotion" + , "aliases": [ + "zzz" + ] + , "tags": [ + "sleeping" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👋" + , "description": "waving hand" + , "category": "People & Body" + , "aliases": [ + "wave" + ] + , "tags": [ + "goodbye" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤚" + , "description": "raised back of hand" + , "category": "People & Body" + , "aliases": [ + "raised_back_of_hand" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🖐" + , "description": "hand with fingers splayed" + , "category": "People & Body" + , "aliases": [ + "raised_hand_with_fingers_splayed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "✋" + , "description": "raised hand" + , "category": "People & Body" + , "aliases": [ + "hand" + , "raised_hand" + ] + , "tags": [ + "highfive" + , "stop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🖖" + , "description": "vulcan salute" + , "category": "People & Body" + , "aliases": [ + "vulcan_salute" + ] + , "tags": [ + "prosper" + , "spock" + ] + , "unicode_version": "7.0" + , "ios_version": "8.3" + , "skin_tones": true + } +, { + "emoji": "👌" + , "description": "OK hand" + , "category": "People & Body" + , "aliases": [ + "ok_hand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤏" + , "description": "pinching hand" + , "category": "People & Body" + , "aliases": [ + "pinching_hand" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "✌️" + , "description": "victory hand" + , "category": "People & Body" + , "aliases": [ + "v" + ] + , "tags": [ + "victory" + , "peace" + ] + , "unicode_version": "" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤞" + , "description": "crossed fingers" + , "category": "People & Body" + , "aliases": [ + "crossed_fingers" + ] + , "tags": [ + "luck" + , "hopeful" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤟" + , "description": "love-you gesture" + , "category": "People & Body" + , "aliases": [ + "love_you_gesture" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤘" + , "description": "sign of the horns" + , "category": "People & Body" + , "aliases": [ + "metal" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🤙" + , "description": "call me hand" + , "category": "People & Body" + , "aliases": [ + "call_me_hand" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👈" + , "description": "backhand index pointing left" + , "category": "People & Body" + , "aliases": [ + "point_left" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👉" + , "description": "backhand index pointing right" + , "category": "People & Body" + , "aliases": [ + "point_right" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👆" + , "description": "backhand index pointing up" + , "category": "People & Body" + , "aliases": [ + "point_up_2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🖕" + , "description": "middle finger" + , "category": "People & Body" + , "aliases": [ + "middle_finger" + , "fu" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "👇" + , "description": "backhand index pointing down" + , "category": "People & Body" + , "aliases": [ + "point_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "☝️" + , "description": "index pointing up" + , "category": "People & Body" + , "aliases": [ + "point_up" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👍" + , "description": "thumbs up" + , "category": "People & Body" + , "aliases": [ + "+1" + , "thumbsup" + ] + , "tags": [ + "approve" + , "ok" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👎" + , "description": "thumbs down" + , "category": "People & Body" + , "aliases": [ + "-1" + , "thumbsdown" + ] + , "tags": [ + "disapprove" + , "bury" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "✊" + , "description": "raised fist" + , "category": "People & Body" + , "aliases": [ + "fist_raised" + , "fist" + ] + , "tags": [ + "power" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👊" + , "description": "oncoming fist" + , "category": "People & Body" + , "aliases": [ + "fist_oncoming" + , "facepunch" + , "punch" + ] + , "tags": [ + "attack" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤛" + , "description": "left-facing fist" + , "category": "People & Body" + , "aliases": [ + "fist_left" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤜" + , "description": "right-facing fist" + , "category": "People & Body" + , "aliases": [ + "fist_right" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👏" + , "description": "clapping hands" + , "category": "People & Body" + , "aliases": [ + "clap" + ] + , "tags": [ + "praise" + , "applause" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙌" + , "description": "raising hands" + , "category": "People & Body" + , "aliases": [ + "raised_hands" + ] + , "tags": [ + "hooray" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👐" + , "description": "open hands" + , "category": "People & Body" + , "aliases": [ + "open_hands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤲" + , "description": "palms up together" + , "category": "People & Body" + , "aliases": [ + "palms_up_together" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤝" + , "description": "handshake" + , "category": "People & Body" + , "aliases": [ + "handshake" + ] + , "tags": [ + "deal" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🙏" + , "description": "folded hands" + , "category": "People & Body" + , "aliases": [ + "pray" + ] + , "tags": [ + "please" + , "hope" + , "wish" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "✍️" + , "description": "writing hand" + , "category": "People & Body" + , "aliases": [ + "writing_hand" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "💅" + , "description": "nail polish" + , "category": "People & Body" + , "aliases": [ + "nail_care" + ] + , "tags": [ + "beauty" + , "manicure" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤳" + , "description": "selfie" + , "category": "People & Body" + , "aliases": [ + "selfie" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "💪" + , "description": "flexed biceps" + , "category": "People & Body" + , "aliases": [ + "muscle" + ] + , "tags": [ + "flex" + , "bicep" + , "strong" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🦾" + , "description": "mechanical arm" + , "category": "People & Body" + , "aliases": [ + "mechanical_arm" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦿" + , "description": "mechanical leg" + , "category": "People & Body" + , "aliases": [ + "mechanical_leg" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦵" + , "description": "leg" + , "category": "People & Body" + , "aliases": [ + "leg" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦶" + , "description": "foot" + , "category": "People & Body" + , "aliases": [ + "foot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👂" + , "description": "ear" + , "category": "People & Body" + , "aliases": [ + "ear" + ] + , "tags": [ + "hear" + , "sound" + , "listen" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🦻" + , "description": "ear with hearing aid" + , "category": "People & Body" + , "aliases": [ + "ear_with_hearing_aid" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👃" + , "description": "nose" + , "category": "People & Body" + , "aliases": [ + "nose" + ] + , "tags": [ + "smell" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧠" + , "description": "brain" + , "category": "People & Body" + , "aliases": [ + "brain" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦷" + , "description": "tooth" + , "category": "People & Body" + , "aliases": [ + "tooth" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦴" + , "description": "bone" + , "category": "People & Body" + , "aliases": [ + "bone" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👀" + , "description": "eyes" + , "category": "People & Body" + , "aliases": [ + "eyes" + ] + , "tags": [ + "look" + , "see" + , "watch" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👁" + , "description": "eye" + , "category": "People & Body" + , "aliases": [ + "eye" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "👅" + , "description": "tongue" + , "category": "People & Body" + , "aliases": [ + "tongue" + ] + , "tags": [ + "taste" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👄" + , "description": "mouth" + , "category": "People & Body" + , "aliases": [ + "lips" + ] + , "tags": [ + "kiss" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👶" + , "description": "baby" + , "category": "People & Body" + , "aliases": [ + "baby" + ] + , "tags": [ + "child" + , "newborn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧒" + , "description": "child" + , "category": "People & Body" + , "aliases": [ + "child" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👦" + , "description": "boy" + , "category": "People & Body" + , "aliases": [ + "boy" + ] + , "tags": [ + "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👧" + , "description": "girl" + , "category": "People & Body" + , "aliases": [ + "girl" + ] + , "tags": [ + "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧑" + , "description": "person" + , "category": "People & Body" + , "aliases": [ + "adult" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👱" + , "description": "person: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👨" + , "description": "man" + , "category": "People & Body" + , "aliases": [ + "man" + ] + , "tags": [ + "mustache" + , "father" + , "dad" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧔" + , "description": "man: beard" + , "category": "People & Body" + , "aliases": [ + "bearded_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👱‍♂" + , "description": "man: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨‍🦰" + , "description": "man: red hair" + , "category": "People & Body" + , "aliases": [ + "red_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨‍🦱" + , "description": "man: curly hair" + , "category": "People & Body" + , "aliases": [ + "curly_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨‍🦳" + , "description": "man: white hair" + , "category": "People & Body" + , "aliases": [ + "white_haired_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👨‍🦲" + , "description": "man: bald" + , "category": "People & Body" + , "aliases": [ + "bald_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩" + , "description": "woman" + , "category": "People & Body" + , "aliases": [ + "woman" + ] + , "tags": [ + "girls" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👱‍♀" + , "description": "woman: blond hair" + , "category": "People & Body" + , "aliases": [ + "blond_haired_woman" + , "blonde_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👩‍🦰" + , "description": "woman: red hair" + , "category": "People & Body" + , "aliases": [ + "red_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩‍🦱" + , "description": "woman: curly hair" + , "category": "People & Body" + , "aliases": [ + "curly_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩‍🦳" + , "description": "woman: white hair" + , "category": "People & Body" + , "aliases": [ + "white_haired_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👩‍🦲" + , "description": "woman: bald" + , "category": "People & Body" + , "aliases": [ + "bald_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧓" + , "description": "older person" + , "category": "People & Body" + , "aliases": [ + "older_adult" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👴" + , "description": "old man" + , "category": "People & Body" + , "aliases": [ + "older_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👵" + , "description": "old woman" + , "category": "People & Body" + , "aliases": [ + "older_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙍" + , "description": "person frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙍‍♂" + , "description": "man frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙍‍♀" + , "description": "woman frowning" + , "category": "People & Body" + , "aliases": [ + "frowning_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙎" + , "description": "person pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙎‍♂" + , "description": "man pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙎‍♀" + , "description": "woman pouting" + , "category": "People & Body" + , "aliases": [ + "pouting_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙅" + , "description": "person gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙅‍♂" + , "description": "man gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good_man" + , "ng_man" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙅‍♀" + , "description": "woman gesturing NO" + , "category": "People & Body" + , "aliases": [ + "no_good_woman" + , "ng_woman" + ] + , "tags": [ + "stop" + , "halt" + , "denied" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙆" + , "description": "person gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙆‍♂" + , "description": "man gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙆‍♀" + , "description": "woman gesturing OK" + , "category": "People & Body" + , "aliases": [ + "ok_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💁" + , "description": "person tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_person" + , "information_desk_person" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💁‍♂" + , "description": "man tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_man" + , "sassy_man" + ] + , "tags": [ + "information" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💁‍♀" + , "description": "woman tipping hand" + , "category": "People & Body" + , "aliases": [ + "tipping_hand_woman" + , "sassy_woman" + ] + , "tags": [ + "information" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙋" + , "description": "person raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙋‍♂" + , "description": "man raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🙋‍♀" + , "description": "woman raising hand" + , "category": "People & Body" + , "aliases": [ + "raising_hand_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧏" + , "description": "deaf person" + , "category": "People & Body" + , "aliases": [ + "deaf_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧏‍♂" + , "description": "deaf man" + , "category": "People & Body" + , "aliases": [ + "deaf_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧏‍♀" + , "description": "deaf woman" + , "category": "People & Body" + , "aliases": [ + "deaf_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🙇" + , "description": "person bowing" + , "category": "People & Body" + , "aliases": [ + "bow" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🙇‍♂" + , "description": "man bowing" + , "category": "People & Body" + , "aliases": [ + "bowing_man" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🙇‍♀" + , "description": "woman bowing" + , "category": "People & Body" + , "aliases": [ + "bowing_woman" + ] + , "tags": [ + "respect" + , "thanks" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤦" + , "description": "person facepalming" + , "category": "People & Body" + , "aliases": [ + "facepalm" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤦‍♂" + , "description": "man facepalming" + , "category": "People & Body" + , "aliases": [ + "man_facepalming" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤦‍♀" + , "description": "woman facepalming" + , "category": "People & Body" + , "aliases": [ + "woman_facepalming" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤷" + , "description": "person shrugging" + , "category": "People & Body" + , "aliases": [ + "shrug" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤷‍♂" + , "description": "man shrugging" + , "category": "People & Body" + , "aliases": [ + "man_shrugging" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤷‍♀" + , "description": "woman shrugging" + , "category": "People & Body" + , "aliases": [ + "woman_shrugging" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍⚕" + , "description": "man health worker" + , "category": "People & Body" + , "aliases": [ + "man_health_worker" + ] + , "tags": [ + "doctor" + , "nurse" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍⚕" + , "description": "woman health worker" + , "category": "People & Body" + , "aliases": [ + "woman_health_worker" + ] + , "tags": [ + "doctor" + , "nurse" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🎓" + , "description": "man student" + , "category": "People & Body" + , "aliases": [ + "man_student" + ] + , "tags": [ + "graduation" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🎓" + , "description": "woman student" + , "category": "People & Body" + , "aliases": [ + "woman_student" + ] + , "tags": [ + "graduation" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🏫" + , "description": "man teacher" + , "category": "People & Body" + , "aliases": [ + "man_teacher" + ] + , "tags": [ + "school" + , "professor" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🏫" + , "description": "woman teacher" + , "category": "People & Body" + , "aliases": [ + "woman_teacher" + ] + , "tags": [ + "school" + , "professor" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍⚖" + , "description": "man judge" + , "category": "People & Body" + , "aliases": [ + "man_judge" + ] + , "tags": [ + "justice" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍⚖" + , "description": "woman judge" + , "category": "People & Body" + , "aliases": [ + "woman_judge" + ] + , "tags": [ + "justice" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🌾" + , "description": "man farmer" + , "category": "People & Body" + , "aliases": [ + "man_farmer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🌾" + , "description": "woman farmer" + , "category": "People & Body" + , "aliases": [ + "woman_farmer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🍳" + , "description": "man cook" + , "category": "People & Body" + , "aliases": [ + "man_cook" + ] + , "tags": [ + "chef" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🍳" + , "description": "woman cook" + , "category": "People & Body" + , "aliases": [ + "woman_cook" + ] + , "tags": [ + "chef" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🔧" + , "description": "man mechanic" + , "category": "People & Body" + , "aliases": [ + "man_mechanic" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🔧" + , "description": "woman mechanic" + , "category": "People & Body" + , "aliases": [ + "woman_mechanic" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🏭" + , "description": "man factory worker" + , "category": "People & Body" + , "aliases": [ + "man_factory_worker" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🏭" + , "description": "woman factory worker" + , "category": "People & Body" + , "aliases": [ + "woman_factory_worker" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍💼" + , "description": "man office worker" + , "category": "People & Body" + , "aliases": [ + "man_office_worker" + ] + , "tags": [ + "business" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍💼" + , "description": "woman office worker" + , "category": "People & Body" + , "aliases": [ + "woman_office_worker" + ] + , "tags": [ + "business" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🔬" + , "description": "man scientist" + , "category": "People & Body" + , "aliases": [ + "man_scientist" + ] + , "tags": [ + "research" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🔬" + , "description": "woman scientist" + , "category": "People & Body" + , "aliases": [ + "woman_scientist" + ] + , "tags": [ + "research" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍💻" + , "description": "man technologist" + , "category": "People & Body" + , "aliases": [ + "man_technologist" + ] + , "tags": [ + "coder" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍💻" + , "description": "woman technologist" + , "category": "People & Body" + , "aliases": [ + "woman_technologist" + ] + , "tags": [ + "coder" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🎤" + , "description": "man singer" + , "category": "People & Body" + , "aliases": [ + "man_singer" + ] + , "tags": [ + "rockstar" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🎤" + , "description": "woman singer" + , "category": "People & Body" + , "aliases": [ + "woman_singer" + ] + , "tags": [ + "rockstar" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🎨" + , "description": "man artist" + , "category": "People & Body" + , "aliases": [ + "man_artist" + ] + , "tags": [ + "painter" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🎨" + , "description": "woman artist" + , "category": "People & Body" + , "aliases": [ + "woman_artist" + ] + , "tags": [ + "painter" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍✈" + , "description": "man pilot" + , "category": "People & Body" + , "aliases": [ + "man_pilot" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍✈" + , "description": "woman pilot" + , "category": "People & Body" + , "aliases": [ + "woman_pilot" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🚀" + , "description": "man astronaut" + , "category": "People & Body" + , "aliases": [ + "man_astronaut" + ] + , "tags": [ + "space" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🚀" + , "description": "woman astronaut" + , "category": "People & Body" + , "aliases": [ + "woman_astronaut" + ] + , "tags": [ + "space" + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👨‍🚒" + , "description": "man firefighter" + , "category": "People & Body" + , "aliases": [ + "man_firefighter" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👩‍🚒" + , "description": "woman firefighter" + , "category": "People & Body" + , "aliases": [ + "woman_firefighter" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👮" + , "description": "police officer" + , "category": "People & Body" + , "aliases": [ + "police_officer" + , "cop" + ] + , "tags": [ + "law" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👮‍♂" + , "description": "man police officer" + , "category": "People & Body" + , "aliases": [ + "policeman" + ] + , "tags": [ + "law" + , "cop" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👮‍♀" + , "description": "woman police officer" + , "category": "People & Body" + , "aliases": [ + "policewoman" + ] + , "tags": [ + "law" + , "cop" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🕵" + , "description": "detective" + , "category": "People & Body" + , "aliases": [ + "detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🕵️‍♂️" + , "description": "man detective" + , "category": "People & Body" + , "aliases": [ + "male_detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🕵️‍♀️" + , "description": "woman detective" + , "category": "People & Body" + , "aliases": [ + "female_detective" + ] + , "tags": [ + "sleuth" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💂" + , "description": "guard" + , "category": "People & Body" + , "aliases": [ + "guard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💂‍♂" + , "description": "man guard" + , "category": "People & Body" + , "aliases": [ + "guardsman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💂‍♀" + , "description": "woman guard" + , "category": "People & Body" + , "aliases": [ + "guardswoman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👷" + , "description": "construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👷‍♂" + , "description": "man construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker_man" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👷‍♀" + , "description": "woman construction worker" + , "category": "People & Body" + , "aliases": [ + "construction_worker_woman" + ] + , "tags": [ + "helmet" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤴" + , "description": "prince" + , "category": "People & Body" + , "aliases": [ + "prince" + ] + , "tags": [ + "crown" + , "royal" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👸" + , "description": "princess" + , "category": "People & Body" + , "aliases": [ + "princess" + ] + , "tags": [ + "crown" + , "royal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👳" + , "description": "person wearing turban" + , "category": "People & Body" + , "aliases": [ + "person_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👳‍♂" + , "description": "man wearing turban" + , "category": "People & Body" + , "aliases": [ + "man_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👳‍♀" + , "description": "woman wearing turban" + , "category": "People & Body" + , "aliases": [ + "woman_with_turban" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "👲" + , "description": "man with Chinese cap" + , "category": "People & Body" + , "aliases": [ + "man_with_gua_pi_mao" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🧕" + , "description": "woman with headscarf" + , "category": "People & Body" + , "aliases": [ + "woman_with_headscarf" + ] + , "tags": [ + "hijab" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤵" + , "description": "man in tuxedo" + , "category": "People & Body" + , "aliases": [ + "man_in_tuxedo" + ] + , "tags": [ + "groom" + , "marriage" + , "wedding" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "👰" + , "description": "bride with veil" + , "category": "People & Body" + , "aliases": [ + "bride_with_veil" + ] + , "tags": [ + "marriage" + , "wedding" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤰" + , "description": "pregnant woman" + , "category": "People & Body" + , "aliases": [ + "pregnant_woman" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤱" + , "description": "breast-feeding" + , "category": "People & Body" + , "aliases": [ + "breast_feeding" + ] + , "tags": [ + "nursing" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "👼" + , "description": "baby angel" + , "category": "People & Body" + , "aliases": [ + "angel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🎅" + , "description": "Santa Claus" + , "category": "People & Body" + , "aliases": [ + "santa" + ] + , "tags": [ + "christmas" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🤶" + , "description": "Mrs. Claus" + , "category": "People & Body" + , "aliases": [ + "mrs_claus" + ] + , "tags": [ + "santa" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🦸" + , "description": "superhero" + , "category": "People & Body" + , "aliases": [ + "superhero" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦸‍♂" + , "description": "man superhero" + , "category": "People & Body" + , "aliases": [ + "superhero_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦸‍♀" + , "description": "woman superhero" + , "category": "People & Body" + , "aliases": [ + "superhero_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹" + , "description": "supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹‍♂" + , "description": "man supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🦹‍♀" + , "description": "woman supervillain" + , "category": "People & Body" + , "aliases": [ + "supervillain_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙" + , "description": "mage" + , "category": "People & Body" + , "aliases": [ + "mage" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙‍♂" + , "description": "man mage" + , "category": "People & Body" + , "aliases": [ + "mage_man" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧙‍♀" + , "description": "woman mage" + , "category": "People & Body" + , "aliases": [ + "mage_woman" + ] + , "tags": [ + "wizard" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚" + , "description": "fairy" + , "category": "People & Body" + , "aliases": [ + "fairy" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚‍♂" + , "description": "man fairy" + , "category": "People & Body" + , "aliases": [ + "fairy_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧚‍♀" + , "description": "woman fairy" + , "category": "People & Body" + , "aliases": [ + "fairy_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛" + , "description": "vampire" + , "category": "People & Body" + , "aliases": [ + "vampire" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛‍♂" + , "description": "man vampire" + , "category": "People & Body" + , "aliases": [ + "vampire_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧛‍♀" + , "description": "woman vampire" + , "category": "People & Body" + , "aliases": [ + "vampire_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜" + , "description": "merperson" + , "category": "People & Body" + , "aliases": [ + "merperson" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜‍♂" + , "description": "merman" + , "category": "People & Body" + , "aliases": [ + "merman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧜‍♀" + , "description": "mermaid" + , "category": "People & Body" + , "aliases": [ + "mermaid" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝" + , "description": "elf" + , "category": "People & Body" + , "aliases": [ + "elf" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝‍♂" + , "description": "man elf" + , "category": "People & Body" + , "aliases": [ + "elf_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧝‍♀" + , "description": "woman elf" + , "category": "People & Body" + , "aliases": [ + "elf_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧞" + , "description": "genie" + , "category": "People & Body" + , "aliases": [ + "genie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧞‍♂" + , "description": "man genie" + , "category": "People & Body" + , "aliases": [ + "genie_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧞‍♀" + , "description": "woman genie" + , "category": "People & Body" + , "aliases": [ + "genie_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟" + , "description": "zombie" + , "category": "People & Body" + , "aliases": [ + "zombie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟‍♂" + , "description": "man zombie" + , "category": "People & Body" + , "aliases": [ + "zombie_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧟‍♀" + , "description": "woman zombie" + , "category": "People & Body" + , "aliases": [ + "zombie_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💆" + , "description": "person getting massage" + , "category": "People & Body" + , "aliases": [ + "massage" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💆‍♂" + , "description": "man getting massage" + , "category": "People & Body" + , "aliases": [ + "massage_man" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💆‍♀" + , "description": "woman getting massage" + , "category": "People & Body" + , "aliases": [ + "massage_woman" + ] + , "tags": [ + "spa" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "💇" + , "description": "person getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut" + ] + , "tags": [ + "beauty" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💇‍♂" + , "description": "man getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💇‍♀" + , "description": "woman getting haircut" + , "category": "People & Body" + , "aliases": [ + "haircut_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚶" + , "description": "person walking" + , "category": "People & Body" + , "aliases": [ + "walking" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚶‍♂" + , "description": "man walking" + , "category": "People & Body" + , "aliases": [ + "walking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚶‍♀" + , "description": "woman walking" + , "category": "People & Body" + , "aliases": [ + "walking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🧍" + , "description": "person standing" + , "category": "People & Body" + , "aliases": [ + "standing_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧍‍♂" + , "description": "man standing" + , "category": "People & Body" + , "aliases": [ + "standing_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧍‍♀" + , "description": "woman standing" + , "category": "People & Body" + , "aliases": [ + "standing_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎" + , "description": "person kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_person" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎‍♂" + , "description": "man kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_man" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🧎‍♀" + , "description": "woman kneeling" + , "category": "People & Body" + , "aliases": [ + "kneeling_woman" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨‍🦯" + , "description": "man with probing cane" + , "category": "People & Body" + , "aliases": [ + "man_with_probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩‍🦯" + , "description": "woman with probing cane" + , "category": "People & Body" + , "aliases": [ + "woman_with_probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨‍🦼" + , "description": "man in motorized wheelchair" + , "category": "People & Body" + , "aliases": [ + "man_in_motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩‍🦼" + , "description": "woman in motorized wheelchair" + , "category": "People & Body" + , "aliases": [ + "woman_in_motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👨‍🦽" + , "description": "man in manual wheelchair" + , "category": "People & Body" + , "aliases": [ + "man_in_manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👩‍🦽" + , "description": "woman in manual wheelchair" + , "category": "People & Body" + , "aliases": [ + "woman_in_manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "🏃" + , "description": "person running" + , "category": "People & Body" + , "aliases": [ + "runner" + , "running" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏃‍♂" + , "description": "man running" + , "category": "People & Body" + , "aliases": [ + "running_man" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏃‍♀" + , "description": "woman running" + , "category": "People & Body" + , "aliases": [ + "running_woman" + ] + , "tags": [ + "exercise" + , "workout" + , "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "💃" + , "description": "woman dancing" + , "category": "People & Body" + , "aliases": [ + "woman_dancing" + , "dancer" + ] + , "tags": [ + "dress" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🕺" + , "description": "man dancing" + , "category": "People & Body" + , "aliases": [ + "man_dancing" + ] + , "tags": [ + "dancer" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🕴" + , "description": "man in suit levitating" + , "category": "People & Body" + , "aliases": [ + "business_suit_levitating" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "👯" + , "description": "people with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancers" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👯‍♂" + , "description": "men with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancing_men" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👯‍♀" + , "description": "women with bunny ears" + , "category": "People & Body" + , "aliases": [ + "dancing_women" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧖" + , "description": "person in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_person" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧖‍♂" + , "description": "man in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_man" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧖‍♀" + , "description": "woman in steamy room" + , "category": "People & Body" + , "aliases": [ + "sauna_woman" + ] + , "tags": [ + "steamy" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗" + , "description": "person climbing" + , "category": "People & Body" + , "aliases": [ + "climbing" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗‍♂" + , "description": "man climbing" + , "category": "People & Body" + , "aliases": [ + "climbing_man" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧗‍♀" + , "description": "woman climbing" + , "category": "People & Body" + , "aliases": [ + "climbing_woman" + ] + , "tags": [ + "bouldering" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤺" + , "description": "person fencing" + , "category": "People & Body" + , "aliases": [ + "person_fencing" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🏇" + , "description": "horse racing" + , "category": "People & Body" + , "aliases": [ + "horse_racing" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "⛷" + , "description": "skier" + , "category": "People & Body" + , "aliases": [ + "skier" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🏂" + , "description": "snowboarder" + , "category": "People & Body" + , "aliases": [ + "snowboarder" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏌" + , "description": "person golfing" + , "category": "People & Body" + , "aliases": [ + "golfing" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🏌️‍♂️" + , "description": "man golfing" + , "category": "People & Body" + , "aliases": [ + "golfing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏌️‍♀️" + , "description": "woman golfing" + , "category": "People & Body" + , "aliases": [ + "golfing_woman" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏄" + , "description": "person surfing" + , "category": "People & Body" + , "aliases": [ + "surfer" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏄‍♂" + , "description": "man surfing" + , "category": "People & Body" + , "aliases": [ + "surfing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏄‍♀" + , "description": "woman surfing" + , "category": "People & Body" + , "aliases": [ + "surfing_woman" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚣" + , "description": "person rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowboat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚣‍♂" + , "description": "man rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowing_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚣‍♀" + , "description": "woman rowing boat" + , "category": "People & Body" + , "aliases": [ + "rowing_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏊" + , "description": "person swimming" + , "category": "People & Body" + , "aliases": [ + "swimmer" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🏊‍♂" + , "description": "man swimming" + , "category": "People & Body" + , "aliases": [ + "swimming_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏊‍♀" + , "description": "woman swimming" + , "category": "People & Body" + , "aliases": [ + "swimming_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "⛹" + , "description": "person bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_person" + ] + , "tags": [ + "basketball" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "⛹️‍♂️" + , "description": "man bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_man" + , "basketball_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "⛹️‍♀️" + , "description": "woman bouncing ball" + , "category": "People & Body" + , "aliases": [ + "bouncing_ball_woman" + , "basketball_woman" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🏋" + , "description": "person lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🏋️‍♂️" + , "description": "man lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting_man" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🏋️‍♀️" + , "description": "woman lifting weights" + , "category": "People & Body" + , "aliases": [ + "weight_lifting_woman" + ] + , "tags": [ + "gym" + , "workout" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚴" + , "description": "person biking" + , "category": "People & Body" + , "aliases": [ + "bicyclist" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚴‍♂" + , "description": "man biking" + , "category": "People & Body" + , "aliases": [ + "biking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚴‍♀" + , "description": "woman biking" + , "category": "People & Body" + , "aliases": [ + "biking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🚵" + , "description": "person mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_bicyclist" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🚵‍♂" + , "description": "man mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_biking_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🚵‍♀" + , "description": "woman mountain biking" + , "category": "People & Body" + , "aliases": [ + "mountain_biking_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + , "skin_tones": true + } +, { + "emoji": "🤸" + , "description": "person cartwheeling" + , "category": "People & Body" + , "aliases": [ + "cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤸‍♂" + , "description": "man cartwheeling" + , "category": "People & Body" + , "aliases": [ + "man_cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤸‍♀" + , "description": "woman cartwheeling" + , "category": "People & Body" + , "aliases": [ + "woman_cartwheeling" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤼" + , "description": "people wrestling" + , "category": "People & Body" + , "aliases": [ + "wrestling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🤼‍♂" + , "description": "men wrestling" + , "category": "People & Body" + , "aliases": [ + "men_wrestling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤼‍♀" + , "description": "women wrestling" + , "category": "People & Body" + , "aliases": [ + "women_wrestling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🤽" + , "description": "person playing water polo" + , "category": "People & Body" + , "aliases": [ + "water_polo" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤽‍♂" + , "description": "man playing water polo" + , "category": "People & Body" + , "aliases": [ + "man_playing_water_polo" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤽‍♀" + , "description": "woman playing water polo" + , "category": "People & Body" + , "aliases": [ + "woman_playing_water_polo" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤾" + , "description": "person playing handball" + , "category": "People & Body" + , "aliases": [ + "handball_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤾‍♂" + , "description": "man playing handball" + , "category": "People & Body" + , "aliases": [ + "man_playing_handball" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤾‍♀" + , "description": "woman playing handball" + , "category": "People & Body" + , "aliases": [ + "woman_playing_handball" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤹" + , "description": "person juggling" + , "category": "People & Body" + , "aliases": [ + "juggling_person" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🤹‍♂" + , "description": "man juggling" + , "category": "People & Body" + , "aliases": [ + "man_juggling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🤹‍♀" + , "description": "woman juggling" + , "category": "People & Body" + , "aliases": [ + "woman_juggling" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + , "skin_tones": true + } +, { + "emoji": "🧘" + , "description": "person in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧘‍♂" + , "description": "man in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position_man" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🧘‍♀" + , "description": "woman in lotus position" + , "category": "People & Body" + , "aliases": [ + "lotus_position_woman" + ] + , "tags": [ + "meditation" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + , "skin_tones": true + } +, { + "emoji": "🛀" + , "description": "person taking bath" + , "category": "People & Body" + , "aliases": [ + "bath" + ] + , "tags": [ + "shower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "🛌" + , "description": "person in bed" + , "category": "People & Body" + , "aliases": [ + "sleeping_bed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + , "skin_tones": true + } +, { + "emoji": "🧑‍🤝‍🧑" + , "description": "people holding hands" + , "category": "People & Body" + , "aliases": [ + "people_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + , "skin_tones": true + } +, { + "emoji": "👭" + , "description": "women holding hands" + , "category": "People & Body" + , "aliases": [ + "two_women_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👫" + , "description": "woman and man holding hands" + , "category": "People & Body" + , "aliases": [ + "couple" + ] + , "tags": [ + "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "👬" + , "description": "men holding hands" + , "category": "People & Body" + , "aliases": [ + "two_men_holding_hands" + ] + , "tags": [ + "couple" + , "date" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + , "skin_tones": true + } +, { + "emoji": "💏" + , "description": "kiss" + , "category": "People & Body" + , "aliases": [ + "couplekiss" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👩‍❤️‍💋‍👨" + , "description": "kiss: woman, man" + , "category": "People & Body" + , "aliases": [ + "couplekiss_man_woman" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨‍❤️‍💋‍👨" + , "description": "kiss: man, man" + , "category": "People & Body" + , "aliases": [ + "couplekiss_man_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍❤️‍💋‍👩" + , "description": "kiss: woman, woman" + , "category": "People & Body" + , "aliases": [ + "couplekiss_woman_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "💑" + , "description": "couple with heart" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👩‍❤️‍👨" + , "description": "couple with heart: woman, man" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_woman_man" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨‍❤️‍👨" + , "description": "couple with heart: man, man" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_man_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍❤️‍👩" + , "description": "couple with heart: woman, woman" + , "category": "People & Body" + , "aliases": [ + "couple_with_heart_woman_woman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👪" + , "description": "family" + , "category": "People & Body" + , "aliases": [ + "family" + ] + , "tags": [ + "home" + , "parents" + , "child" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👨‍👩‍👦" + , "description": "family: man, woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👨‍👩‍👧" + , "description": "family: man, woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👩‍👧‍👦" + , "description": "family: man, woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👩‍👦‍👦" + , "description": "family: man, woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👩‍👧‍👧" + , "description": "family: man, woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👨‍👦" + , "description": "family: man, man, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👨‍👧" + , "description": "family: man, man, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👨‍👧‍👦" + , "description": "family: man, man, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👨‍👦‍👦" + , "description": "family: man, man, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_man_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👨‍👧‍👧" + , "description": "family: man, man, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_man_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍👩‍👦" + , "description": "family: woman, woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍👩‍👧" + , "description": "family: woman, woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍👩‍👧‍👦" + , "description": "family: woman, woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍👩‍👦‍👦" + , "description": "family: woman, woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👩‍👩‍👧‍👧" + , "description": "family: woman, woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "👨‍👦" + , "description": "family: man, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨‍👦‍👦" + , "description": "family: man, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨‍👧" + , "description": "family: man, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨‍👧‍👦" + , "description": "family: man, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_man_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👨‍👧‍👧" + , "description": "family: man, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_man_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩‍👦" + , "description": "family: woman, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩‍👦‍👦" + , "description": "family: woman, boy, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_boy_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩‍👧" + , "description": "family: woman, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩‍👧‍👦" + , "description": "family: woman, girl, boy" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl_boy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "👩‍👧‍👧" + , "description": "family: woman, girl, girl" + , "category": "People & Body" + , "aliases": [ + "family_woman_girl_girl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "🗣" + , "description": "speaking head" + , "category": "People & Body" + , "aliases": [ + "speaking_head" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "👤" + , "description": "bust in silhouette" + , "category": "People & Body" + , "aliases": [ + "bust_in_silhouette" + ] + , "tags": [ + "user" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👥" + , "description": "busts in silhouette" + , "category": "People & Body" + , "aliases": [ + "busts_in_silhouette" + ] + , "tags": [ + "users" + , "group" + , "team" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👣" + , "description": "footprints" + , "category": "People & Body" + , "aliases": [ + "footprints" + ] + , "tags": [ + "feet" + , "tracks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐵" + , "description": "monkey face" + , "category": "Animals & Nature" + , "aliases": [ + "monkey_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐒" + , "description": "monkey" + , "category": "Animals & Nature" + , "aliases": [ + "monkey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦍" + , "description": "gorilla" + , "category": "Animals & Nature" + , "aliases": [ + "gorilla" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦧" + , "description": "orangutan" + , "category": "Animals & Nature" + , "aliases": [ + "orangutan" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐶" + , "description": "dog face" + , "category": "Animals & Nature" + , "aliases": [ + "dog" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐕" + , "description": "dog" + , "category": "Animals & Nature" + , "aliases": [ + "dog2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦮" + , "description": "guide dog" + , "category": "Animals & Nature" + , "aliases": [ + "guide_dog" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐕‍🦺" + , "description": "service dog" + , "category": "Animals & Nature" + , "aliases": [ + "service_dog" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🐩" + , "description": "poodle" + , "category": "Animals & Nature" + , "aliases": [ + "poodle" + ] + , "tags": [ + "dog" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐺" + , "description": "wolf" + , "category": "Animals & Nature" + , "aliases": [ + "wolf" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦊" + , "description": "fox" + , "category": "Animals & Nature" + , "aliases": [ + "fox_face" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦝" + , "description": "raccoon" + , "category": "Animals & Nature" + , "aliases": [ + "raccoon" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐱" + , "description": "cat face" + , "category": "Animals & Nature" + , "aliases": [ + "cat" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐈" + , "description": "cat" + , "category": "Animals & Nature" + , "aliases": [ + "cat2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦁" + , "description": "lion" + , "category": "Animals & Nature" + , "aliases": [ + "lion" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🐯" + , "description": "tiger face" + , "category": "Animals & Nature" + , "aliases": [ + "tiger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐅" + , "description": "tiger" + , "category": "Animals & Nature" + , "aliases": [ + "tiger2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐆" + , "description": "leopard" + , "category": "Animals & Nature" + , "aliases": [ + "leopard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐴" + , "description": "horse face" + , "category": "Animals & Nature" + , "aliases": [ + "horse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐎" + , "description": "horse" + , "category": "Animals & Nature" + , "aliases": [ + "racehorse" + ] + , "tags": [ + "speed" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦄" + , "description": "unicorn" + , "category": "Animals & Nature" + , "aliases": [ + "unicorn" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦓" + , "description": "zebra" + , "category": "Animals & Nature" + , "aliases": [ + "zebra" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦌" + , "description": "deer" + , "category": "Animals & Nature" + , "aliases": [ + "deer" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐮" + , "description": "cow face" + , "category": "Animals & Nature" + , "aliases": [ + "cow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐂" + , "description": "ox" + , "category": "Animals & Nature" + , "aliases": [ + "ox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐃" + , "description": "water buffalo" + , "category": "Animals & Nature" + , "aliases": [ + "water_buffalo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐄" + , "description": "cow" + , "category": "Animals & Nature" + , "aliases": [ + "cow2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐷" + , "description": "pig face" + , "category": "Animals & Nature" + , "aliases": [ + "pig" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐖" + , "description": "pig" + , "category": "Animals & Nature" + , "aliases": [ + "pig2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐗" + , "description": "boar" + , "category": "Animals & Nature" + , "aliases": [ + "boar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐽" + , "description": "pig nose" + , "category": "Animals & Nature" + , "aliases": [ + "pig_nose" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐏" + , "description": "ram" + , "category": "Animals & Nature" + , "aliases": [ + "ram" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐑" + , "description": "ewe" + , "category": "Animals & Nature" + , "aliases": [ + "sheep" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐐" + , "description": "goat" + , "category": "Animals & Nature" + , "aliases": [ + "goat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐪" + , "description": "camel" + , "category": "Animals & Nature" + , "aliases": [ + "dromedary_camel" + ] + , "tags": [ + "desert" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐫" + , "description": "two-hump camel" + , "category": "Animals & Nature" + , "aliases": [ + "camel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦙" + , "description": "llama" + , "category": "Animals & Nature" + , "aliases": [ + "llama" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦒" + , "description": "giraffe" + , "category": "Animals & Nature" + , "aliases": [ + "giraffe" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐘" + , "description": "elephant" + , "category": "Animals & Nature" + , "aliases": [ + "elephant" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦏" + , "description": "rhinoceros" + , "category": "Animals & Nature" + , "aliases": [ + "rhinoceros" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦛" + , "description": "hippopotamus" + , "category": "Animals & Nature" + , "aliases": [ + "hippopotamus" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐭" + , "description": "mouse face" + , "category": "Animals & Nature" + , "aliases": [ + "mouse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐁" + , "description": "mouse" + , "category": "Animals & Nature" + , "aliases": [ + "mouse2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐀" + , "description": "rat" + , "category": "Animals & Nature" + , "aliases": [ + "rat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐹" + , "description": "hamster" + , "category": "Animals & Nature" + , "aliases": [ + "hamster" + ] + , "tags": [ + "pet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐰" + , "description": "rabbit face" + , "category": "Animals & Nature" + , "aliases": [ + "rabbit" + ] + , "tags": [ + "bunny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐇" + , "description": "rabbit" + , "category": "Animals & Nature" + , "aliases": [ + "rabbit2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐿" + , "description": "chipmunk" + , "category": "Animals & Nature" + , "aliases": [ + "chipmunk" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦔" + , "description": "hedgehog" + , "category": "Animals & Nature" + , "aliases": [ + "hedgehog" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦇" + , "description": "bat" + , "category": "Animals & Nature" + , "aliases": [ + "bat" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐻" + , "description": "bear" + , "category": "Animals & Nature" + , "aliases": [ + "bear" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐨" + , "description": "koala" + , "category": "Animals & Nature" + , "aliases": [ + "koala" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐼" + , "description": "panda" + , "category": "Animals & Nature" + , "aliases": [ + "panda_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦥" + , "description": "sloth" + , "category": "Animals & Nature" + , "aliases": [ + "sloth" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦦" + , "description": "otter" + , "category": "Animals & Nature" + , "aliases": [ + "otter" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦨" + , "description": "skunk" + , "category": "Animals & Nature" + , "aliases": [ + "skunk" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦘" + , "description": "kangaroo" + , "category": "Animals & Nature" + , "aliases": [ + "kangaroo" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦡" + , "description": "badger" + , "category": "Animals & Nature" + , "aliases": [ + "badger" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐾" + , "description": "paw prints" + , "category": "Animals & Nature" + , "aliases": [ + "feet" + , "paw_prints" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦃" + , "description": "turkey" + , "category": "Animals & Nature" + , "aliases": [ + "turkey" + ] + , "tags": [ + "thanksgiving" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🐔" + , "description": "chicken" + , "category": "Animals & Nature" + , "aliases": [ + "chicken" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐓" + , "description": "rooster" + , "category": "Animals & Nature" + , "aliases": [ + "rooster" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐣" + , "description": "hatching chick" + , "category": "Animals & Nature" + , "aliases": [ + "hatching_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐤" + , "description": "baby chick" + , "category": "Animals & Nature" + , "aliases": [ + "baby_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐥" + , "description": "front-facing baby chick" + , "category": "Animals & Nature" + , "aliases": [ + "hatched_chick" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐦" + , "description": "bird" + , "category": "Animals & Nature" + , "aliases": [ + "bird" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐧" + , "description": "penguin" + , "category": "Animals & Nature" + , "aliases": [ + "penguin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕊" + , "description": "dove" + , "category": "Animals & Nature" + , "aliases": [ + "dove" + ] + , "tags": [ + "peace" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦅" + , "description": "eagle" + , "category": "Animals & Nature" + , "aliases": [ + "eagle" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦆" + , "description": "duck" + , "category": "Animals & Nature" + , "aliases": [ + "duck" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦢" + , "description": "swan" + , "category": "Animals & Nature" + , "aliases": [ + "swan" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦉" + , "description": "owl" + , "category": "Animals & Nature" + , "aliases": [ + "owl" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦩" + , "description": "flamingo" + , "category": "Animals & Nature" + , "aliases": [ + "flamingo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦚" + , "description": "peacock" + , "category": "Animals & Nature" + , "aliases": [ + "peacock" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦜" + , "description": "parrot" + , "category": "Animals & Nature" + , "aliases": [ + "parrot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐸" + , "description": "frog" + , "category": "Animals & Nature" + , "aliases": [ + "frog" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐊" + , "description": "crocodile" + , "category": "Animals & Nature" + , "aliases": [ + "crocodile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐢" + , "description": "turtle" + , "category": "Animals & Nature" + , "aliases": [ + "turtle" + ] + , "tags": [ + "slow" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦎" + , "description": "lizard" + , "category": "Animals & Nature" + , "aliases": [ + "lizard" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐍" + , "description": "snake" + , "category": "Animals & Nature" + , "aliases": [ + "snake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐲" + , "description": "dragon face" + , "category": "Animals & Nature" + , "aliases": [ + "dragon_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐉" + , "description": "dragon" + , "category": "Animals & Nature" + , "aliases": [ + "dragon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦕" + , "description": "sauropod" + , "category": "Animals & Nature" + , "aliases": [ + "sauropod" + ] + , "tags": [ + "dinosaur" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦖" + , "description": "T-Rex" + , "category": "Animals & Nature" + , "aliases": [ + "t-rex" + ] + , "tags": [ + "dinosaur" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🐳" + , "description": "spouting whale" + , "category": "Animals & Nature" + , "aliases": [ + "whale" + ] + , "tags": [ + "sea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐋" + , "description": "whale" + , "category": "Animals & Nature" + , "aliases": [ + "whale2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐬" + , "description": "dolphin" + , "category": "Animals & Nature" + , "aliases": [ + "dolphin" + , "flipper" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐟" + , "description": "fish" + , "category": "Animals & Nature" + , "aliases": [ + "fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐠" + , "description": "tropical fish" + , "category": "Animals & Nature" + , "aliases": [ + "tropical_fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐡" + , "description": "blowfish" + , "category": "Animals & Nature" + , "aliases": [ + "blowfish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦈" + , "description": "shark" + , "category": "Animals & Nature" + , "aliases": [ + "shark" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐙" + , "description": "octopus" + , "category": "Animals & Nature" + , "aliases": [ + "octopus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐚" + , "description": "spiral shell" + , "category": "Animals & Nature" + , "aliases": [ + "shell" + ] + , "tags": [ + "sea" + , "beach" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐌" + , "description": "snail" + , "category": "Animals & Nature" + , "aliases": [ + "snail" + ] + , "tags": [ + "slow" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦋" + , "description": "butterfly" + , "category": "Animals & Nature" + , "aliases": [ + "butterfly" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🐛" + , "description": "bug" + , "category": "Animals & Nature" + , "aliases": [ + "bug" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐜" + , "description": "ant" + , "category": "Animals & Nature" + , "aliases": [ + "ant" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐝" + , "description": "honeybee" + , "category": "Animals & Nature" + , "aliases": [ + "bee" + , "honeybee" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🐞" + , "description": "lady beetle" + , "category": "Animals & Nature" + , "aliases": [ + "beetle" + ] + , "tags": [ + "bug" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🦗" + , "description": "cricket" + , "category": "Animals & Nature" + , "aliases": [ + "cricket" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🕷" + , "description": "spider" + , "category": "Animals & Nature" + , "aliases": [ + "spider" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕸" + , "description": "spider web" + , "category": "Animals & Nature" + , "aliases": [ + "spider_web" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦂" + , "description": "scorpion" + , "category": "Animals & Nature" + , "aliases": [ + "scorpion" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦟" + , "description": "mosquito" + , "category": "Animals & Nature" + , "aliases": [ + "mosquito" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦠" + , "description": "microbe" + , "category": "Animals & Nature" + , "aliases": [ + "microbe" + ] + , "tags": [ + "germ" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💐" + , "description": "bouquet" + , "category": "Animals & Nature" + , "aliases": [ + "bouquet" + ] + , "tags": [ + "flowers" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌸" + , "description": "cherry blossom" + , "category": "Animals & Nature" + , "aliases": [ + "cherry_blossom" + ] + , "tags": [ + "flower" + , "spring" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💮" + , "description": "white flower" + , "category": "Animals & Nature" + , "aliases": [ + "white_flower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏵" + , "description": "rosette" + , "category": "Animals & Nature" + , "aliases": [ + "rosette" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌹" + , "description": "rose" + , "category": "Animals & Nature" + , "aliases": [ + "rose" + ] + , "tags": [ + "flower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥀" + , "description": "wilted flower" + , "category": "Animals & Nature" + , "aliases": [ + "wilted_flower" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌺" + , "description": "hibiscus" + , "category": "Animals & Nature" + , "aliases": [ + "hibiscus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌻" + , "description": "sunflower" + , "category": "Animals & Nature" + , "aliases": [ + "sunflower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌼" + , "description": "blossom" + , "category": "Animals & Nature" + , "aliases": [ + "blossom" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌷" + , "description": "tulip" + , "category": "Animals & Nature" + , "aliases": [ + "tulip" + ] + , "tags": [ + "flower" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌱" + , "description": "seedling" + , "category": "Animals & Nature" + , "aliases": [ + "seedling" + ] + , "tags": [ + "plant" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌲" + , "description": "evergreen tree" + , "category": "Animals & Nature" + , "aliases": [ + "evergreen_tree" + ] + , "tags": [ + "wood" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌳" + , "description": "deciduous tree" + , "category": "Animals & Nature" + , "aliases": [ + "deciduous_tree" + ] + , "tags": [ + "wood" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌴" + , "description": "palm tree" + , "category": "Animals & Nature" + , "aliases": [ + "palm_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌵" + , "description": "cactus" + , "category": "Animals & Nature" + , "aliases": [ + "cactus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌾" + , "description": "sheaf of rice" + , "category": "Animals & Nature" + , "aliases": [ + "ear_of_rice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌿" + , "description": "herb" + , "category": "Animals & Nature" + , "aliases": [ + "herb" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☘" + , "description": "shamrock" + , "category": "Animals & Nature" + , "aliases": [ + "shamrock" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🍀" + , "description": "four leaf clover" + , "category": "Animals & Nature" + , "aliases": [ + "four_leaf_clover" + ] + , "tags": [ + "luck" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍁" + , "description": "maple leaf" + , "category": "Animals & Nature" + , "aliases": [ + "maple_leaf" + ] + , "tags": [ + "canada" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍂" + , "description": "fallen leaf" + , "category": "Animals & Nature" + , "aliases": [ + "fallen_leaf" + ] + , "tags": [ + "autumn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍃" + , "description": "leaf fluttering in wind" + , "category": "Animals & Nature" + , "aliases": [ + "leaves" + ] + , "tags": [ + "leaf" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍇" + , "description": "grapes" + , "category": "Food & Drink" + , "aliases": [ + "grapes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍈" + , "description": "melon" + , "category": "Food & Drink" + , "aliases": [ + "melon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍉" + , "description": "watermelon" + , "category": "Food & Drink" + , "aliases": [ + "watermelon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍊" + , "description": "tangerine" + , "category": "Food & Drink" + , "aliases": [ + "tangerine" + , "orange" + , "mandarin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍋" + , "description": "lemon" + , "category": "Food & Drink" + , "aliases": [ + "lemon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍌" + , "description": "banana" + , "category": "Food & Drink" + , "aliases": [ + "banana" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍍" + , "description": "pineapple" + , "category": "Food & Drink" + , "aliases": [ + "pineapple" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥭" + , "description": "mango" + , "category": "Food & Drink" + , "aliases": [ + "mango" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍎" + , "description": "red apple" + , "category": "Food & Drink" + , "aliases": [ + "apple" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍏" + , "description": "green apple" + , "category": "Food & Drink" + , "aliases": [ + "green_apple" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍐" + , "description": "pear" + , "category": "Food & Drink" + , "aliases": [ + "pear" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍑" + , "description": "peach" + , "category": "Food & Drink" + , "aliases": [ + "peach" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍒" + , "description": "cherries" + , "category": "Food & Drink" + , "aliases": [ + "cherries" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍓" + , "description": "strawberry" + , "category": "Food & Drink" + , "aliases": [ + "strawberry" + ] + , "tags": [ + "fruit" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥝" + , "description": "kiwi fruit" + , "category": "Food & Drink" + , "aliases": [ + "kiwi_fruit" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍅" + , "description": "tomato" + , "category": "Food & Drink" + , "aliases": [ + "tomato" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥥" + , "description": "coconut" + , "category": "Food & Drink" + , "aliases": [ + "coconut" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥑" + , "description": "avocado" + , "category": "Food & Drink" + , "aliases": [ + "avocado" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍆" + , "description": "eggplant" + , "category": "Food & Drink" + , "aliases": [ + "eggplant" + ] + , "tags": [ + "aubergine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥔" + , "description": "potato" + , "category": "Food & Drink" + , "aliases": [ + "potato" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥕" + , "description": "carrot" + , "category": "Food & Drink" + , "aliases": [ + "carrot" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌽" + , "description": "ear of corn" + , "category": "Food & Drink" + , "aliases": [ + "corn" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌶" + , "description": "hot pepper" + , "category": "Food & Drink" + , "aliases": [ + "hot_pepper" + ] + , "tags": [ + "spicy" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥒" + , "description": "cucumber" + , "category": "Food & Drink" + , "aliases": [ + "cucumber" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥬" + , "description": "leafy green" + , "category": "Food & Drink" + , "aliases": [ + "leafy_green" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥦" + , "description": "broccoli" + , "category": "Food & Drink" + , "aliases": [ + "broccoli" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧄" + , "description": "garlic" + , "category": "Food & Drink" + , "aliases": [ + "garlic" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧅" + , "description": "onion" + , "category": "Food & Drink" + , "aliases": [ + "onion" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🍄" + , "description": "mushroom" + , "category": "Food & Drink" + , "aliases": [ + "mushroom" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥜" + , "description": "peanuts" + , "category": "Food & Drink" + , "aliases": [ + "peanuts" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🌰" + , "description": "chestnut" + , "category": "Food & Drink" + , "aliases": [ + "chestnut" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍞" + , "description": "bread" + , "category": "Food & Drink" + , "aliases": [ + "bread" + ] + , "tags": [ + "toast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥐" + , "description": "croissant" + , "category": "Food & Drink" + , "aliases": [ + "croissant" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥖" + , "description": "baguette bread" + , "category": "Food & Drink" + , "aliases": [ + "baguette_bread" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥨" + , "description": "pretzel" + , "category": "Food & Drink" + , "aliases": [ + "pretzel" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥯" + , "description": "bagel" + , "category": "Food & Drink" + , "aliases": [ + "bagel" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥞" + , "description": "pancakes" + , "category": "Food & Drink" + , "aliases": [ + "pancakes" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🧇" + , "description": "waffle" + , "category": "Food & Drink" + , "aliases": [ + "waffle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧀" + , "description": "cheese wedge" + , "category": "Food & Drink" + , "aliases": [ + "cheese" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍖" + , "description": "meat on bone" + , "category": "Food & Drink" + , "aliases": [ + "meat_on_bone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍗" + , "description": "poultry leg" + , "category": "Food & Drink" + , "aliases": [ + "poultry_leg" + ] + , "tags": [ + "meat" + , "chicken" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥩" + , "description": "cut of meat" + , "category": "Food & Drink" + , "aliases": [ + "cut_of_meat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥓" + , "description": "bacon" + , "category": "Food & Drink" + , "aliases": [ + "bacon" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍔" + , "description": "hamburger" + , "category": "Food & Drink" + , "aliases": [ + "hamburger" + ] + , "tags": [ + "burger" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍟" + , "description": "french fries" + , "category": "Food & Drink" + , "aliases": [ + "fries" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍕" + , "description": "pizza" + , "category": "Food & Drink" + , "aliases": [ + "pizza" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌭" + , "description": "hot dog" + , "category": "Food & Drink" + , "aliases": [ + "hotdog" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥪" + , "description": "sandwich" + , "category": "Food & Drink" + , "aliases": [ + "sandwich" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🌮" + , "description": "taco" + , "category": "Food & Drink" + , "aliases": [ + "taco" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌯" + , "description": "burrito" + , "category": "Food & Drink" + , "aliases": [ + "burrito" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥙" + , "description": "stuffed flatbread" + , "category": "Food & Drink" + , "aliases": [ + "stuffed_flatbread" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🧆" + , "description": "falafel" + , "category": "Food & Drink" + , "aliases": [ + "falafel" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥚" + , "description": "egg" + , "category": "Food & Drink" + , "aliases": [ + "egg" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍳" + , "description": "cooking" + , "category": "Food & Drink" + , "aliases": [ + "fried_egg" + ] + , "tags": [ + "breakfast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥘" + , "description": "shallow pan of food" + , "category": "Food & Drink" + , "aliases": [ + "shallow_pan_of_food" + ] + , "tags": [ + "paella" + , "curry" + ] + , "unicode_version": "" + , "ios_version": "10.2" + } +, { + "emoji": "🍲" + , "description": "pot of food" + , "category": "Food & Drink" + , "aliases": [ + "stew" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥣" + , "description": "bowl with spoon" + , "category": "Food & Drink" + , "aliases": [ + "bowl_with_spoon" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥗" + , "description": "green salad" + , "category": "Food & Drink" + , "aliases": [ + "green_salad" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🍿" + , "description": "popcorn" + , "category": "Food & Drink" + , "aliases": [ + "popcorn" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧈" + , "description": "butter" + , "category": "Food & Drink" + , "aliases": [ + "butter" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧂" + , "description": "salt" + , "category": "Food & Drink" + , "aliases": [ + "salt" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥫" + , "description": "canned food" + , "category": "Food & Drink" + , "aliases": [ + "canned_food" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍱" + , "description": "bento box" + , "category": "Food & Drink" + , "aliases": [ + "bento" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍘" + , "description": "rice cracker" + , "category": "Food & Drink" + , "aliases": [ + "rice_cracker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍙" + , "description": "rice ball" + , "category": "Food & Drink" + , "aliases": [ + "rice_ball" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍚" + , "description": "cooked rice" + , "category": "Food & Drink" + , "aliases": [ + "rice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍛" + , "description": "curry rice" + , "category": "Food & Drink" + , "aliases": [ + "curry" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍜" + , "description": "steaming bowl" + , "category": "Food & Drink" + , "aliases": [ + "ramen" + ] + , "tags": [ + "noodle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍝" + , "description": "spaghetti" + , "category": "Food & Drink" + , "aliases": [ + "spaghetti" + ] + , "tags": [ + "pasta" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍠" + , "description": "roasted sweet potato" + , "category": "Food & Drink" + , "aliases": [ + "sweet_potato" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍢" + , "description": "oden" + , "category": "Food & Drink" + , "aliases": [ + "oden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍣" + , "description": "sushi" + , "category": "Food & Drink" + , "aliases": [ + "sushi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍤" + , "description": "fried shrimp" + , "category": "Food & Drink" + , "aliases": [ + "fried_shrimp" + ] + , "tags": [ + "tempura" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍥" + , "description": "fish cake with swirl" + , "category": "Food & Drink" + , "aliases": [ + "fish_cake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥮" + , "description": "moon cake" + , "category": "Food & Drink" + , "aliases": [ + "moon_cake" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍡" + , "description": "dango" + , "category": "Food & Drink" + , "aliases": [ + "dango" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥟" + , "description": "dumpling" + , "category": "Food & Drink" + , "aliases": [ + "dumpling" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥠" + , "description": "fortune cookie" + , "category": "Food & Drink" + , "aliases": [ + "fortune_cookie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥡" + , "description": "takeout box" + , "category": "Food & Drink" + , "aliases": [ + "takeout_box" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦀" + , "description": "crab" + , "category": "Food & Drink" + , "aliases": [ + "crab" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🦞" + , "description": "lobster" + , "category": "Food & Drink" + , "aliases": [ + "lobster" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦐" + , "description": "shrimp" + , "category": "Food & Drink" + , "aliases": [ + "shrimp" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦑" + , "description": "squid" + , "category": "Food & Drink" + , "aliases": [ + "squid" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦪" + , "description": "oyster" + , "category": "Food & Drink" + , "aliases": [ + "oyster" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🍦" + , "description": "soft ice cream" + , "category": "Food & Drink" + , "aliases": [ + "icecream" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍧" + , "description": "shaved ice" + , "category": "Food & Drink" + , "aliases": [ + "shaved_ice" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍨" + , "description": "ice cream" + , "category": "Food & Drink" + , "aliases": [ + "ice_cream" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍩" + , "description": "doughnut" + , "category": "Food & Drink" + , "aliases": [ + "doughnut" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍪" + , "description": "cookie" + , "category": "Food & Drink" + , "aliases": [ + "cookie" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎂" + , "description": "birthday cake" + , "category": "Food & Drink" + , "aliases": [ + "birthday" + ] + , "tags": [ + "party" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍰" + , "description": "shortcake" + , "category": "Food & Drink" + , "aliases": [ + "cake" + ] + , "tags": [ + "dessert" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧁" + , "description": "cupcake" + , "category": "Food & Drink" + , "aliases": [ + "cupcake" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥧" + , "description": "pie" + , "category": "Food & Drink" + , "aliases": [ + "pie" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍫" + , "description": "chocolate bar" + , "category": "Food & Drink" + , "aliases": [ + "chocolate_bar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍬" + , "description": "candy" + , "category": "Food & Drink" + , "aliases": [ + "candy" + ] + , "tags": [ + "sweet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍭" + , "description": "lollipop" + , "category": "Food & Drink" + , "aliases": [ + "lollipop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍮" + , "description": "custard" + , "category": "Food & Drink" + , "aliases": [ + "custard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍯" + , "description": "honey pot" + , "category": "Food & Drink" + , "aliases": [ + "honey_pot" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍼" + , "description": "baby bottle" + , "category": "Food & Drink" + , "aliases": [ + "baby_bottle" + ] + , "tags": [ + "milk" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥛" + , "description": "glass of milk" + , "category": "Food & Drink" + , "aliases": [ + "milk_glass" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "☕" + , "description": "hot beverage" + , "category": "Food & Drink" + , "aliases": [ + "coffee" + ] + , "tags": [ + "cafe" + , "espresso" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍵" + , "description": "teacup without handle" + , "category": "Food & Drink" + , "aliases": [ + "tea" + ] + , "tags": [ + "green" + , "breakfast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍶" + , "description": "sake" + , "category": "Food & Drink" + , "aliases": [ + "sake" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍾" + , "description": "bottle with popping cork" + , "category": "Food & Drink" + , "aliases": [ + "champagne" + ] + , "tags": [ + "bottle" + , "bubbly" + , "celebration" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍷" + , "description": "wine glass" + , "category": "Food & Drink" + , "aliases": [ + "wine_glass" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍸" + , "description": "cocktail glass" + , "category": "Food & Drink" + , "aliases": [ + "cocktail" + ] + , "tags": [ + "drink" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍹" + , "description": "tropical drink" + , "category": "Food & Drink" + , "aliases": [ + "tropical_drink" + ] + , "tags": [ + "summer" + , "vacation" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍺" + , "description": "beer mug" + , "category": "Food & Drink" + , "aliases": [ + "beer" + ] + , "tags": [ + "drink" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🍻" + , "description": "clinking beer mugs" + , "category": "Food & Drink" + , "aliases": [ + "beers" + ] + , "tags": [ + "drinks" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥂" + , "description": "clinking glasses" + , "category": "Food & Drink" + , "aliases": [ + "clinking_glasses" + ] + , "tags": [ + "cheers" + , "toast" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥃" + , "description": "tumbler glass" + , "category": "Food & Drink" + , "aliases": [ + "tumbler_glass" + ] + , "tags": [ + "whisky" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥤" + , "description": "cup with straw" + , "category": "Food & Drink" + , "aliases": [ + "cup_with_straw" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧃" + , "description": "beverage box" + , "category": "Food & Drink" + , "aliases": [ + "beverage_box" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧉" + , "description": "mate" + , "category": "Food & Drink" + , "aliases": [ + "mate" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧊" + , "description": "ice cube" + , "category": "Food & Drink" + , "aliases": [ + "ice_cube" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥢" + , "description": "chopsticks" + , "category": "Food & Drink" + , "aliases": [ + "chopsticks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🍽" + , "description": "fork and knife with plate" + , "category": "Food & Drink" + , "aliases": [ + "plate_with_cutlery" + ] + , "tags": [ + "dining" + , "dinner" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🍴" + , "description": "fork and knife" + , "category": "Food & Drink" + , "aliases": [ + "fork_and_knife" + ] + , "tags": [ + "cutlery" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥄" + , "description": "spoon" + , "category": "Food & Drink" + , "aliases": [ + "spoon" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🔪" + , "description": "kitchen knife" + , "category": "Food & Drink" + , "aliases": [ + "hocho" + , "knife" + ] + , "tags": [ + "cut" + , "chop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏺" + , "description": "amphora" + , "category": "Food & Drink" + , "aliases": [ + "amphora" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌍" + , "description": "globe showing Europe-Africa" + , "category": "Travel & Places" + , "aliases": [ + "earth_africa" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌎" + , "description": "globe showing Americas" + , "category": "Travel & Places" + , "aliases": [ + "earth_americas" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌏" + , "description": "globe showing Asia-Australia" + , "category": "Travel & Places" + , "aliases": [ + "earth_asia" + ] + , "tags": [ + "globe" + , "world" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌐" + , "description": "globe with meridians" + , "category": "Travel & Places" + , "aliases": [ + "globe_with_meridians" + ] + , "tags": [ + "world" + , "global" + , "international" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗺" + , "description": "world map" + , "category": "Travel & Places" + , "aliases": [ + "world_map" + ] + , "tags": [ + "travel" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗾" + , "description": "map of Japan" + , "category": "Travel & Places" + , "aliases": [ + "japan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧭" + , "description": "compass" + , "category": "Travel & Places" + , "aliases": [ + "compass" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏔" + , "description": "snow-capped mountain" + , "category": "Travel & Places" + , "aliases": [ + "mountain_snow" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛰" + , "description": "mountain" + , "category": "Travel & Places" + , "aliases": [ + "mountain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🌋" + , "description": "volcano" + , "category": "Travel & Places" + , "aliases": [ + "volcano" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗻" + , "description": "mount fuji" + , "category": "Travel & Places" + , "aliases": [ + "mount_fuji" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏕" + , "description": "camping" + , "category": "Travel & Places" + , "aliases": [ + "camping" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏖" + , "description": "beach with umbrella" + , "category": "Travel & Places" + , "aliases": [ + "beach_umbrella" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏜" + , "description": "desert" + , "category": "Travel & Places" + , "aliases": [ + "desert" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏝" + , "description": "desert island" + , "category": "Travel & Places" + , "aliases": [ + "desert_island" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏞" + , "description": "national park" + , "category": "Travel & Places" + , "aliases": [ + "national_park" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏟" + , "description": "stadium" + , "category": "Travel & Places" + , "aliases": [ + "stadium" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏛" + , "description": "classical building" + , "category": "Travel & Places" + , "aliases": [ + "classical_building" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏗" + , "description": "building construction" + , "category": "Travel & Places" + , "aliases": [ + "building_construction" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧱" + , "description": "brick" + , "category": "Travel & Places" + , "aliases": [ + "bricks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏘" + , "description": "houses" + , "category": "Travel & Places" + , "aliases": [ + "houses" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏚" + , "description": "derelict house" + , "category": "Travel & Places" + , "aliases": [ + "derelict_house" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏠" + , "description": "house" + , "category": "Travel & Places" + , "aliases": [ + "house" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏡" + , "description": "house with garden" + , "category": "Travel & Places" + , "aliases": [ + "house_with_garden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏢" + , "description": "office building" + , "category": "Travel & Places" + , "aliases": [ + "office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏣" + , "description": "Japanese post office" + , "category": "Travel & Places" + , "aliases": [ + "post_office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏤" + , "description": "post office" + , "category": "Travel & Places" + , "aliases": [ + "european_post_office" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏥" + , "description": "hospital" + , "category": "Travel & Places" + , "aliases": [ + "hospital" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏦" + , "description": "bank" + , "category": "Travel & Places" + , "aliases": [ + "bank" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏨" + , "description": "hotel" + , "category": "Travel & Places" + , "aliases": [ + "hotel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏩" + , "description": "love hotel" + , "category": "Travel & Places" + , "aliases": [ + "love_hotel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏪" + , "description": "convenience store" + , "category": "Travel & Places" + , "aliases": [ + "convenience_store" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏫" + , "description": "school" + , "category": "Travel & Places" + , "aliases": [ + "school" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏬" + , "description": "department store" + , "category": "Travel & Places" + , "aliases": [ + "department_store" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏭" + , "description": "factory" + , "category": "Travel & Places" + , "aliases": [ + "factory" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏯" + , "description": "Japanese castle" + , "category": "Travel & Places" + , "aliases": [ + "japanese_castle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏰" + , "description": "castle" + , "category": "Travel & Places" + , "aliases": [ + "european_castle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💒" + , "description": "wedding" + , "category": "Travel & Places" + , "aliases": [ + "wedding" + ] + , "tags": [ + "marriage" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗼" + , "description": "Tokyo tower" + , "category": "Travel & Places" + , "aliases": [ + "tokyo_tower" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗽" + , "description": "Statue of Liberty" + , "category": "Travel & Places" + , "aliases": [ + "statue_of_liberty" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛪" + , "description": "church" + , "category": "Travel & Places" + , "aliases": [ + "church" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🕌" + , "description": "mosque" + , "category": "Travel & Places" + , "aliases": [ + "mosque" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛕" + , "description": "hindu temple" + , "category": "Travel & Places" + , "aliases": [ + "hindu_temple" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🕍" + , "description": "synagogue" + , "category": "Travel & Places" + , "aliases": [ + "synagogue" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛩" + , "description": "shinto shrine" + , "category": "Travel & Places" + , "aliases": [ + "shinto_shrine" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🕋" + , "description": "kaaba" + , "category": "Travel & Places" + , "aliases": [ + "kaaba" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛲" + , "description": "fountain" + , "category": "Travel & Places" + , "aliases": [ + "fountain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛺" + , "description": "tent" + , "category": "Travel & Places" + , "aliases": [ + "tent" + ] + , "tags": [ + "camping" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🌁" + , "description": "foggy" + , "category": "Travel & Places" + , "aliases": [ + "foggy" + ] + , "tags": [ + "karl" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌃" + , "description": "night with stars" + , "category": "Travel & Places" + , "aliases": [ + "night_with_stars" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏙" + , "description": "cityscape" + , "category": "Travel & Places" + , "aliases": [ + "cityscape" + ] + , "tags": [ + "skyline" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌄" + , "description": "sunrise over mountains" + , "category": "Travel & Places" + , "aliases": [ + "sunrise_over_mountains" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌅" + , "description": "sunrise" + , "category": "Travel & Places" + , "aliases": [ + "sunrise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌆" + , "description": "cityscape at dusk" + , "category": "Travel & Places" + , "aliases": [ + "city_sunset" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌇" + , "description": "sunset" + , "category": "Travel & Places" + , "aliases": [ + "city_sunrise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌉" + , "description": "bridge at night" + , "category": "Travel & Places" + , "aliases": [ + "bridge_at_night" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♨️" + , "description": "hot springs" + , "category": "Travel & Places" + , "aliases": [ + "hotsprings" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🎠" + , "description": "carousel horse" + , "category": "Travel & Places" + , "aliases": [ + "carousel_horse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎡" + , "description": "ferris wheel" + , "category": "Travel & Places" + , "aliases": [ + "ferris_wheel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎢" + , "description": "roller coaster" + , "category": "Travel & Places" + , "aliases": [ + "roller_coaster" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💈" + , "description": "barber pole" + , "category": "Travel & Places" + , "aliases": [ + "barber" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎪" + , "description": "circus tent" + , "category": "Travel & Places" + , "aliases": [ + "circus_tent" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚂" + , "description": "locomotive" + , "category": "Travel & Places" + , "aliases": [ + "steam_locomotive" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚃" + , "description": "railway car" + , "category": "Travel & Places" + , "aliases": [ + "railway_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚄" + , "description": "high-speed train" + , "category": "Travel & Places" + , "aliases": [ + "bullettrain_side" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚅" + , "description": "bullet train" + , "category": "Travel & Places" + , "aliases": [ + "bullettrain_front" + ] + , "tags": [ + "train" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚆" + , "description": "train" + , "category": "Travel & Places" + , "aliases": [ + "train2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚇" + , "description": "metro" + , "category": "Travel & Places" + , "aliases": [ + "metro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚈" + , "description": "light rail" + , "category": "Travel & Places" + , "aliases": [ + "light_rail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚉" + , "description": "station" + , "category": "Travel & Places" + , "aliases": [ + "station" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚊" + , "description": "tram" + , "category": "Travel & Places" + , "aliases": [ + "tram" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚝" + , "description": "monorail" + , "category": "Travel & Places" + , "aliases": [ + "monorail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚞" + , "description": "mountain railway" + , "category": "Travel & Places" + , "aliases": [ + "mountain_railway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚋" + , "description": "tram car" + , "category": "Travel & Places" + , "aliases": [ + "train" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚌" + , "description": "bus" + , "category": "Travel & Places" + , "aliases": [ + "bus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚍" + , "description": "oncoming bus" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_bus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚎" + , "description": "trolleybus" + , "category": "Travel & Places" + , "aliases": [ + "trolleybus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚐" + , "description": "minibus" + , "category": "Travel & Places" + , "aliases": [ + "minibus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚑" + , "description": "ambulance" + , "category": "Travel & Places" + , "aliases": [ + "ambulance" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚒" + , "description": "fire engine" + , "category": "Travel & Places" + , "aliases": [ + "fire_engine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚓" + , "description": "police car" + , "category": "Travel & Places" + , "aliases": [ + "police_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚔" + , "description": "oncoming police car" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_police_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚕" + , "description": "taxi" + , "category": "Travel & Places" + , "aliases": [ + "taxi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚖" + , "description": "oncoming taxi" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_taxi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚗" + , "description": "automobile" + , "category": "Travel & Places" + , "aliases": [ + "car" + , "red_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚘" + , "description": "oncoming automobile" + , "category": "Travel & Places" + , "aliases": [ + "oncoming_automobile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚙" + , "description": "sport utility vehicle" + , "category": "Travel & Places" + , "aliases": [ + "blue_car" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚚" + , "description": "delivery truck" + , "category": "Travel & Places" + , "aliases": [ + "truck" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚛" + , "description": "articulated lorry" + , "category": "Travel & Places" + , "aliases": [ + "articulated_lorry" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚜" + , "description": "tractor" + , "category": "Travel & Places" + , "aliases": [ + "tractor" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏎" + , "description": "racing car" + , "category": "Travel & Places" + , "aliases": [ + "racing_car" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏍" + , "description": "motorcycle" + , "category": "Travel & Places" + , "aliases": [ + "motorcycle" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛵" + , "description": "motor scooter" + , "category": "Travel & Places" + , "aliases": [ + "motor_scooter" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🦽" + , "description": "manual wheelchair" + , "category": "Travel & Places" + , "aliases": [ + "manual_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🦼" + , "description": "motorized wheelchair" + , "category": "Travel & Places" + , "aliases": [ + "motorized_wheelchair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🛺" + , "description": "auto rickshaw" + , "category": "Travel & Places" + , "aliases": [ + "auto_rickshaw" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚲" + , "description": "bicycle" + , "category": "Travel & Places" + , "aliases": [ + "bike" + ] + , "tags": [ + "bicycle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛴" + , "description": "kick scooter" + , "category": "Travel & Places" + , "aliases": [ + "kick_scooter" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🛹" + , "description": "skateboard" + , "category": "Travel & Places" + , "aliases": [ + "skateboard" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🚏" + , "description": "bus stop" + , "category": "Travel & Places" + , "aliases": [ + "busstop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛣" + , "description": "motorway" + , "category": "Travel & Places" + , "aliases": [ + "motorway" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛤" + , "description": "railway track" + , "category": "Travel & Places" + , "aliases": [ + "railway_track" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛢" + , "description": "oil drum" + , "category": "Travel & Places" + , "aliases": [ + "oil_drum" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛽" + , "description": "fuel pump" + , "category": "Travel & Places" + , "aliases": [ + "fuelpump" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🚨" + , "description": "police car light" + , "category": "Travel & Places" + , "aliases": [ + "rotating_light" + ] + , "tags": [ + "911" + , "emergency" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚥" + , "description": "horizontal traffic light" + , "category": "Travel & Places" + , "aliases": [ + "traffic_light" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚦" + , "description": "vertical traffic light" + , "category": "Travel & Places" + , "aliases": [ + "vertical_traffic_light" + ] + , "tags": [ + "semaphore" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛑" + , "description": "stop sign" + , "category": "Travel & Places" + , "aliases": [ + "stop_sign" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚧" + , "description": "construction" + , "category": "Travel & Places" + , "aliases": [ + "construction" + ] + , "tags": [ + "wip" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚓" + , "description": "anchor" + , "category": "Travel & Places" + , "aliases": [ + "anchor" + ] + , "tags": [ + "ship" + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "⛵" + , "description": "sailboat" + , "category": "Travel & Places" + , "aliases": [ + "boat" + , "sailboat" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🛶" + , "description": "canoe" + , "category": "Travel & Places" + , "aliases": [ + "canoe" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚤" + , "description": "speedboat" + , "category": "Travel & Places" + , "aliases": [ + "speedboat" + ] + , "tags": [ + "ship" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛳" + , "description": "passenger ship" + , "category": "Travel & Places" + , "aliases": [ + "passenger_ship" + ] + , "tags": [ + "cruise" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⛴" + , "description": "ferry" + , "category": "Travel & Places" + , "aliases": [ + "ferry" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🛥" + , "description": "motor boat" + , "category": "Travel & Places" + , "aliases": [ + "motor_boat" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🚢" + , "description": "ship" + , "category": "Travel & Places" + , "aliases": [ + "ship" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✈️" + , "description": "airplane" + , "category": "Travel & Places" + , "aliases": [ + "airplane" + ] + , "tags": [ + "flight" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🛩" + , "description": "small airplane" + , "category": "Travel & Places" + , "aliases": [ + "small_airplane" + ] + , "tags": [ + "flight" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛫" + , "description": "airplane departure" + , "category": "Travel & Places" + , "aliases": [ + "flight_departure" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛬" + , "description": "airplane arrival" + , "category": "Travel & Places" + , "aliases": [ + "flight_arrival" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🪂" + , "description": "parachute" + , "category": "Travel & Places" + , "aliases": [ + "parachute" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💺" + , "description": "seat" + , "category": "Travel & Places" + , "aliases": [ + "seat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚁" + , "description": "helicopter" + , "category": "Travel & Places" + , "aliases": [ + "helicopter" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚟" + , "description": "suspension railway" + , "category": "Travel & Places" + , "aliases": [ + "suspension_railway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚠" + , "description": "mountain cableway" + , "category": "Travel & Places" + , "aliases": [ + "mountain_cableway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚡" + , "description": "aerial tramway" + , "category": "Travel & Places" + , "aliases": [ + "aerial_tramway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛰" + , "description": "satellite" + , "category": "Travel & Places" + , "aliases": [ + "artificial_satellite" + ] + , "tags": [ + "orbit" + , "space" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🚀" + , "description": "rocket" + , "category": "Travel & Places" + , "aliases": [ + "rocket" + ] + , "tags": [ + "ship" + , "launch" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛸" + , "description": "flying saucer" + , "category": "Travel & Places" + , "aliases": [ + "flying_saucer" + ] + , "tags": [ + "ufo" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🛎" + , "description": "bellhop bell" + , "category": "Travel & Places" + , "aliases": [ + "bellhop_bell" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🧳" + , "description": "luggage" + , "category": "Travel & Places" + , "aliases": [ + "luggage" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⌛" + , "description": "hourglass done" + , "category": "Travel & Places" + , "aliases": [ + "hourglass" + ] + , "tags": [ + "time" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏳" + , "description": "hourglass not done" + , "category": "Travel & Places" + , "aliases": [ + "hourglass_flowing_sand" + ] + , "tags": [ + "time" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⌚" + , "description": "watch" + , "category": "Travel & Places" + , "aliases": [ + "watch" + ] + , "tags": [ + "time" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏰" + , "description": "alarm clock" + , "category": "Travel & Places" + , "aliases": [ + "alarm_clock" + ] + , "tags": [ + "morning" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏱" + , "description": "stopwatch" + , "category": "Travel & Places" + , "aliases": [ + "stopwatch" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏲" + , "description": "timer clock" + , "category": "Travel & Places" + , "aliases": [ + "timer_clock" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕰" + , "description": "mantelpiece clock" + , "category": "Travel & Places" + , "aliases": [ + "mantelpiece_clock" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🕛" + , "description": "twelve o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock12" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕧" + , "description": "twelve-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1230" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕐" + , "description": "one o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock1" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕜" + , "description": "one-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock130" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕑" + , "description": "two o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕝" + , "description": "two-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock230" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕒" + , "description": "three o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock3" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕞" + , "description": "three-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock330" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕓" + , "description": "four o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock4" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕟" + , "description": "four-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock430" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕔" + , "description": "five o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock5" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕠" + , "description": "five-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock530" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕕" + , "description": "six o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock6" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕡" + , "description": "six-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock630" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕖" + , "description": "seven o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock7" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕢" + , "description": "seven-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock730" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕗" + , "description": "eight o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock8" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕣" + , "description": "eight-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock830" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕘" + , "description": "nine o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock9" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕤" + , "description": "nine-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock930" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕙" + , "description": "ten o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock10" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕥" + , "description": "ten-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1030" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕚" + , "description": "eleven o’clock" + , "category": "Travel & Places" + , "aliases": [ + "clock11" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕦" + , "description": "eleven-thirty" + , "category": "Travel & Places" + , "aliases": [ + "clock1130" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌑" + , "description": "new moon" + , "category": "Travel & Places" + , "aliases": [ + "new_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌒" + , "description": "waxing crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "waxing_crescent_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌓" + , "description": "first quarter moon" + , "category": "Travel & Places" + , "aliases": [ + "first_quarter_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌔" + , "description": "waxing gibbous moon" + , "category": "Travel & Places" + , "aliases": [ + "moon" + , "waxing_gibbous_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌕" + , "description": "full moon" + , "category": "Travel & Places" + , "aliases": [ + "full_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌖" + , "description": "waning gibbous moon" + , "category": "Travel & Places" + , "aliases": [ + "waning_gibbous_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌗" + , "description": "last quarter moon" + , "category": "Travel & Places" + , "aliases": [ + "last_quarter_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌘" + , "description": "waning crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "waning_crescent_moon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌙" + , "description": "crescent moon" + , "category": "Travel & Places" + , "aliases": [ + "crescent_moon" + ] + , "tags": [ + "night" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌚" + , "description": "new moon face" + , "category": "Travel & Places" + , "aliases": [ + "new_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌛" + , "description": "first quarter moon face" + , "category": "Travel & Places" + , "aliases": [ + "first_quarter_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌜" + , "description": "last quarter moon face" + , "category": "Travel & Places" + , "aliases": [ + "last_quarter_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌡" + , "description": "thermometer" + , "category": "Travel & Places" + , "aliases": [ + "thermometer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "☀️" + , "description": "sun" + , "category": "Travel & Places" + , "aliases": [ + "sunny" + ] + , "tags": [ + "weather" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🌝" + , "description": "full moon face" + , "category": "Travel & Places" + , "aliases": [ + "full_moon_with_face" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌞" + , "description": "sun with face" + , "category": "Travel & Places" + , "aliases": [ + "sun_with_face" + ] + , "tags": [ + "summer" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪐" + , "description": "ringed planet" + , "category": "Travel & Places" + , "aliases": [ + "ringed_planet" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⭐" + , "description": "star" + , "category": "Travel & Places" + , "aliases": [ + "star" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "🌟" + , "description": "glowing star" + , "category": "Travel & Places" + , "aliases": [ + "star2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌠" + , "description": "shooting star" + , "category": "Travel & Places" + , "aliases": [ + "stars" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌌" + , "description": "milky way" + , "category": "Travel & Places" + , "aliases": [ + "milky_way" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☁️" + , "description": "cloud" + , "category": "Travel & Places" + , "aliases": [ + "cloud" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⛅" + , "description": "sun behind cloud" + , "category": "Travel & Places" + , "aliases": [ + "partly_sunny" + ] + , "tags": [ + "weather" + , "cloud" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛈" + , "description": "cloud with lightning and rain" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_lightning_and_rain" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🌤" + , "description": "sun behind small cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_small_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌥" + , "description": "sun behind large cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_large_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌦" + , "description": "sun behind rain cloud" + , "category": "Travel & Places" + , "aliases": [ + "sun_behind_rain_cloud" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌧" + , "description": "cloud with rain" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_rain" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌨" + , "description": "cloud with snow" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_snow" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌩" + , "description": "cloud with lightning" + , "category": "Travel & Places" + , "aliases": [ + "cloud_with_lightning" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌪" + , "description": "tornado" + , "category": "Travel & Places" + , "aliases": [ + "tornado" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌫" + , "description": "fog" + , "category": "Travel & Places" + , "aliases": [ + "fog" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌬" + , "description": "wind face" + , "category": "Travel & Places" + , "aliases": [ + "wind_face" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🌀" + , "description": "cyclone" + , "category": "Travel & Places" + , "aliases": [ + "cyclone" + ] + , "tags": [ + "swirl" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌈" + , "description": "rainbow" + , "category": "Travel & Places" + , "aliases": [ + "rainbow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌂" + , "description": "closed umbrella" + , "category": "Travel & Places" + , "aliases": [ + "closed_umbrella" + ] + , "tags": [ + "weather" + , "rain" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☂️" + , "description": "umbrella" + , "category": "Travel & Places" + , "aliases": [ + "open_umbrella" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☔" + , "description": "umbrella with rain drops" + , "category": "Travel & Places" + , "aliases": [ + "umbrella" + ] + , "tags": [ + "rain" + , "weather" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛱" + , "description": "umbrella on ground" + , "category": "Travel & Places" + , "aliases": [ + "parasol_on_ground" + ] + , "tags": [ + "beach_umbrella" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "⚡" + , "description": "high voltage" + , "category": "Travel & Places" + , "aliases": [ + "zap" + ] + , "tags": [ + "lightning" + , "thunder" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "❄️" + , "description": "snowflake" + , "category": "Travel & Places" + , "aliases": [ + "snowflake" + ] + , "tags": [ + "winter" + , "cold" + , "weather" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "☃️" + , "description": "snowman" + , "category": "Travel & Places" + , "aliases": [ + "snowman_with_snow" + ] + , "tags": [ + "winter" + , "christmas" + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "⛄" + , "description": "snowman without snow" + , "category": "Travel & Places" + , "aliases": [ + "snowman" + ] + , "tags": [ + "winter" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "☄" + , "description": "comet" + , "category": "Travel & Places" + , "aliases": [ + "comet" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🔥" + , "description": "fire" + , "category": "Travel & Places" + , "aliases": [ + "fire" + ] + , "tags": [ + "burn" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💧" + , "description": "droplet" + , "category": "Travel & Places" + , "aliases": [ + "droplet" + ] + , "tags": [ + "water" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🌊" + , "description": "water wave" + , "category": "Travel & Places" + , "aliases": [ + "ocean" + ] + , "tags": [ + "sea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎃" + , "description": "jack-o-lantern" + , "category": "Activities" + , "aliases": [ + "jack_o_lantern" + ] + , "tags": [ + "halloween" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎄" + , "description": "Christmas tree" + , "category": "Activities" + , "aliases": [ + "christmas_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎆" + , "description": "fireworks" + , "category": "Activities" + , "aliases": [ + "fireworks" + ] + , "tags": [ + "festival" + , "celebration" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎇" + , "description": "sparkler" + , "category": "Activities" + , "aliases": [ + "sparkler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧨" + , "description": "firecracker" + , "category": "Activities" + , "aliases": [ + "firecracker" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "✨" + , "description": "sparkles" + , "category": "Activities" + , "aliases": [ + "sparkles" + ] + , "tags": [ + "shiny" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎈" + , "description": "balloon" + , "category": "Activities" + , "aliases": [ + "balloon" + ] + , "tags": [ + "party" + , "birthday" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎉" + , "description": "party popper" + , "category": "Activities" + , "aliases": [ + "tada" + ] + , "tags": [ + "hooray" + , "party" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎊" + , "description": "confetti ball" + , "category": "Activities" + , "aliases": [ + "confetti_ball" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎋" + , "description": "tanabata tree" + , "category": "Activities" + , "aliases": [ + "tanabata_tree" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎍" + , "description": "pine decoration" + , "category": "Activities" + , "aliases": [ + "bamboo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎎" + , "description": "Japanese dolls" + , "category": "Activities" + , "aliases": [ + "dolls" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎏" + , "description": "carp streamer" + , "category": "Activities" + , "aliases": [ + "flags" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎐" + , "description": "wind chime" + , "category": "Activities" + , "aliases": [ + "wind_chime" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎑" + , "description": "moon viewing ceremony" + , "category": "Activities" + , "aliases": [ + "rice_scene" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧧" + , "description": "red envelope" + , "category": "Activities" + , "aliases": [ + "red_envelope" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎀" + , "description": "ribbon" + , "category": "Activities" + , "aliases": [ + "ribbon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎁" + , "description": "wrapped gift" + , "category": "Activities" + , "aliases": [ + "gift" + ] + , "tags": [ + "present" + , "birthday" + , "christmas" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎗" + , "description": "reminder ribbon" + , "category": "Activities" + , "aliases": [ + "reminder_ribbon" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎟" + , "description": "admission tickets" + , "category": "Activities" + , "aliases": [ + "tickets" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎫" + , "description": "ticket" + , "category": "Activities" + , "aliases": [ + "ticket" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎖" + , "description": "military medal" + , "category": "Activities" + , "aliases": [ + "medal_military" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏆" + , "description": "trophy" + , "category": "Activities" + , "aliases": [ + "trophy" + ] + , "tags": [ + "award" + , "contest" + , "winner" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏅" + , "description": "sports medal" + , "category": "Activities" + , "aliases": [ + "medal_sports" + ] + , "tags": [ + "gold" + , "winner" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥇" + , "description": "1st place medal" + , "category": "Activities" + , "aliases": [ + "1st_place_medal" + ] + , "tags": [ + "gold" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥈" + , "description": "2nd place medal" + , "category": "Activities" + , "aliases": [ + "2nd_place_medal" + ] + , "tags": [ + "silver" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥉" + , "description": "3rd place medal" + , "category": "Activities" + , "aliases": [ + "3rd_place_medal" + ] + , "tags": [ + "bronze" + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "⚽" + , "description": "soccer ball" + , "category": "Activities" + , "aliases": [ + "soccer" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⚾" + , "description": "baseball" + , "category": "Activities" + , "aliases": [ + "baseball" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🥎" + , "description": "softball" + , "category": "Activities" + , "aliases": [ + "softball" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏀" + , "description": "basketball" + , "category": "Activities" + , "aliases": [ + "basketball" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏐" + , "description": "volleyball" + , "category": "Activities" + , "aliases": [ + "volleyball" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏈" + , "description": "american football" + , "category": "Activities" + , "aliases": [ + "football" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏉" + , "description": "rugby football" + , "category": "Activities" + , "aliases": [ + "rugby_football" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎾" + , "description": "tennis" + , "category": "Activities" + , "aliases": [ + "tennis" + ] + , "tags": [ + "sports" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥏" + , "description": "flying disc" + , "category": "Activities" + , "aliases": [ + "flying_disc" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎳" + , "description": "bowling" + , "category": "Activities" + , "aliases": [ + "bowling" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏏" + , "description": "cricket game" + , "category": "Activities" + , "aliases": [ + "cricket_game" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏑" + , "description": "field hockey" + , "category": "Activities" + , "aliases": [ + "field_hockey" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏒" + , "description": "ice hockey" + , "category": "Activities" + , "aliases": [ + "ice_hockey" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥍" + , "description": "lacrosse" + , "category": "Activities" + , "aliases": [ + "lacrosse" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏓" + , "description": "ping pong" + , "category": "Activities" + , "aliases": [ + "ping_pong" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏸" + , "description": "badminton" + , "category": "Activities" + , "aliases": [ + "badminton" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥊" + , "description": "boxing glove" + , "category": "Activities" + , "aliases": [ + "boxing_glove" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥋" + , "description": "martial arts uniform" + , "category": "Activities" + , "aliases": [ + "martial_arts_uniform" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🥅" + , "description": "goal net" + , "category": "Activities" + , "aliases": [ + "goal_net" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "⛳" + , "description": "flag in hole" + , "category": "Activities" + , "aliases": [ + "golf" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "⛸" + , "description": "ice skate" + , "category": "Activities" + , "aliases": [ + "ice_skate" + ] + , "tags": [ + "skating" + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🎣" + , "description": "fishing pole" + , "category": "Activities" + , "aliases": [ + "fishing_pole_and_fish" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🤿" + , "description": "diving mask" + , "category": "Activities" + , "aliases": [ + "diving_mask" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🎽" + , "description": "running shirt" + , "category": "Activities" + , "aliases": [ + "running_shirt_with_sash" + ] + , "tags": [ + "marathon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎿" + , "description": "skis" + , "category": "Activities" + , "aliases": [ + "ski" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛷" + , "description": "sled" + , "category": "Activities" + , "aliases": [ + "sled" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥌" + , "description": "curling stone" + , "category": "Activities" + , "aliases": [ + "curling_stone" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎯" + , "description": "direct hit" + , "category": "Activities" + , "aliases": [ + "dart" + ] + , "tags": [ + "target" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪀" + , "description": "yo-yo" + , "category": "Activities" + , "aliases": [ + "yo_yo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🪁" + , "description": "kite" + , "category": "Activities" + , "aliases": [ + "kite" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🎱" + , "description": "pool 8 ball" + , "category": "Activities" + , "aliases": [ + "8ball" + ] + , "tags": [ + "pool" + , "billiards" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔮" + , "description": "crystal ball" + , "category": "Activities" + , "aliases": [ + "crystal_ball" + ] + , "tags": [ + "fortune" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧿" + , "description": "nazar amulet" + , "category": "Activities" + , "aliases": [ + "nazar_amulet" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎮" + , "description": "video game" + , "category": "Activities" + , "aliases": [ + "video_game" + ] + , "tags": [ + "play" + , "controller" + , "console" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕹" + , "description": "joystick" + , "category": "Activities" + , "aliases": [ + "joystick" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎰" + , "description": "slot machine" + , "category": "Activities" + , "aliases": [ + "slot_machine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎲" + , "description": "game die" + , "category": "Activities" + , "aliases": [ + "game_die" + ] + , "tags": [ + "dice" + , "gambling" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧩" + , "description": "puzzle piece" + , "category": "Activities" + , "aliases": [ + "jigsaw" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧸" + , "description": "teddy bear" + , "category": "Activities" + , "aliases": [ + "teddy_bear" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♠️" + , "description": "spade suit" + , "category": "Activities" + , "aliases": [ + "spades" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♥️" + , "description": "heart suit" + , "category": "Activities" + , "aliases": [ + "hearts" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♦️" + , "description": "diamond suit" + , "category": "Activities" + , "aliases": [ + "diamonds" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♣️" + , "description": "club suit" + , "category": "Activities" + , "aliases": [ + "clubs" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♟" + , "description": "chess pawn" + , "category": "Activities" + , "aliases": [ + "chess_pawn" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🃏" + , "description": "joker" + , "category": "Activities" + , "aliases": [ + "black_joker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🀄" + , "description": "mahjong red dragon" + , "category": "Activities" + , "aliases": [ + "mahjong" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🎴" + , "description": "flower playing cards" + , "category": "Activities" + , "aliases": [ + "flower_playing_cards" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎭" + , "description": "performing arts" + , "category": "Activities" + , "aliases": [ + "performing_arts" + ] + , "tags": [ + "theater" + , "drama" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖼" + , "description": "framed picture" + , "category": "Activities" + , "aliases": [ + "framed_picture" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎨" + , "description": "artist palette" + , "category": "Activities" + , "aliases": [ + "art" + ] + , "tags": [ + "design" + , "paint" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧵" + , "description": "thread" + , "category": "Activities" + , "aliases": [ + "thread" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧶" + , "description": "yarn" + , "category": "Activities" + , "aliases": [ + "yarn" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👓" + , "description": "glasses" + , "category": "Objects" + , "aliases": [ + "eyeglasses" + ] + , "tags": [ + "glasses" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕶" + , "description": "sunglasses" + , "category": "Objects" + , "aliases": [ + "dark_sunglasses" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🥽" + , "description": "goggles" + , "category": "Objects" + , "aliases": [ + "goggles" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥼" + , "description": "lab coat" + , "category": "Objects" + , "aliases": [ + "lab_coat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🦺" + , "description": "safety vest" + , "category": "Objects" + , "aliases": [ + "safety_vest" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👔" + , "description": "necktie" + , "category": "Objects" + , "aliases": [ + "necktie" + ] + , "tags": [ + "shirt" + , "formal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👕" + , "description": "t-shirt" + , "category": "Objects" + , "aliases": [ + "shirt" + , "tshirt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👖" + , "description": "jeans" + , "category": "Objects" + , "aliases": [ + "jeans" + ] + , "tags": [ + "pants" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧣" + , "description": "scarf" + , "category": "Objects" + , "aliases": [ + "scarf" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧤" + , "description": "gloves" + , "category": "Objects" + , "aliases": [ + "gloves" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧥" + , "description": "coat" + , "category": "Objects" + , "aliases": [ + "coat" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧦" + , "description": "socks" + , "category": "Objects" + , "aliases": [ + "socks" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👗" + , "description": "dress" + , "category": "Objects" + , "aliases": [ + "dress" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👘" + , "description": "kimono" + , "category": "Objects" + , "aliases": [ + "kimono" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥻" + , "description": "sari" + , "category": "Objects" + , "aliases": [ + "sari" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩱" + , "description": "one-piece swimsuit" + , "category": "Objects" + , "aliases": [ + "one_piece_swimsuit" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩲" + , "description": "swim brief" + , "category": "Objects" + , "aliases": [ + "swim_brief" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩳" + , "description": "shorts" + , "category": "Objects" + , "aliases": [ + "shorts" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👙" + , "description": "bikini" + , "category": "Objects" + , "aliases": [ + "bikini" + ] + , "tags": [ + "beach" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👚" + , "description": "woman’s clothes" + , "category": "Objects" + , "aliases": [ + "womans_clothes" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👛" + , "description": "purse" + , "category": "Objects" + , "aliases": [ + "purse" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👜" + , "description": "handbag" + , "category": "Objects" + , "aliases": [ + "handbag" + ] + , "tags": [ + "bag" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👝" + , "description": "clutch bag" + , "category": "Objects" + , "aliases": [ + "pouch" + ] + , "tags": [ + "bag" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛍" + , "description": "shopping bags" + , "category": "Objects" + , "aliases": [ + "shopping" + ] + , "tags": [ + "bags" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎒" + , "description": "backpack" + , "category": "Objects" + , "aliases": [ + "school_satchel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👞" + , "description": "man’s shoe" + , "category": "Objects" + , "aliases": [ + "mans_shoe" + , "shoe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👟" + , "description": "running shoe" + , "category": "Objects" + , "aliases": [ + "athletic_shoe" + ] + , "tags": [ + "sneaker" + , "sport" + , "running" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🥾" + , "description": "hiking boot" + , "category": "Objects" + , "aliases": [ + "hiking_boot" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🥿" + , "description": "flat shoe" + , "category": "Objects" + , "aliases": [ + "flat_shoe" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "👠" + , "description": "high-heeled shoe" + , "category": "Objects" + , "aliases": [ + "high_heel" + ] + , "tags": [ + "shoe" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👡" + , "description": "woman’s sandal" + , "category": "Objects" + , "aliases": [ + "sandal" + ] + , "tags": [ + "shoe" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩰" + , "description": "ballet shoes" + , "category": "Objects" + , "aliases": [ + "ballet_shoes" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "👢" + , "description": "woman’s boot" + , "category": "Objects" + , "aliases": [ + "boot" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👑" + , "description": "crown" + , "category": "Objects" + , "aliases": [ + "crown" + ] + , "tags": [ + "king" + , "queen" + , "royal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "👒" + , "description": "woman’s hat" + , "category": "Objects" + , "aliases": [ + "womans_hat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎩" + , "description": "top hat" + , "category": "Objects" + , "aliases": [ + "tophat" + ] + , "tags": [ + "hat" + , "classy" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎓" + , "description": "graduation cap" + , "category": "Objects" + , "aliases": [ + "mortar_board" + ] + , "tags": [ + "education" + , "college" + , "university" + , "graduation" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧢" + , "description": "billed cap" + , "category": "Objects" + , "aliases": [ + "billed_cap" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⛑" + , "description": "rescue worker’s helmet" + , "category": "Objects" + , "aliases": [ + "rescue_worker_helmet" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "📿" + , "description": "prayer beads" + , "category": "Objects" + , "aliases": [ + "prayer_beads" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "💄" + , "description": "lipstick" + , "category": "Objects" + , "aliases": [ + "lipstick" + ] + , "tags": [ + "makeup" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💍" + , "description": "ring" + , "category": "Objects" + , "aliases": [ + "ring" + ] + , "tags": [ + "wedding" + , "marriage" + , "engaged" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💎" + , "description": "gem stone" + , "category": "Objects" + , "aliases": [ + "gem" + ] + , "tags": [ + "diamond" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔇" + , "description": "muted speaker" + , "category": "Objects" + , "aliases": [ + "mute" + ] + , "tags": [ + "sound" + , "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔈" + , "description": "speaker low volume" + , "category": "Objects" + , "aliases": [ + "speaker" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔉" + , "description": "speaker medium volume" + , "category": "Objects" + , "aliases": [ + "sound" + ] + , "tags": [ + "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔊" + , "description": "speaker high volume" + , "category": "Objects" + , "aliases": [ + "loud_sound" + ] + , "tags": [ + "volume" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📢" + , "description": "loudspeaker" + , "category": "Objects" + , "aliases": [ + "loudspeaker" + ] + , "tags": [ + "announcement" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📣" + , "description": "megaphone" + , "category": "Objects" + , "aliases": [ + "mega" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📯" + , "description": "postal horn" + , "category": "Objects" + , "aliases": [ + "postal_horn" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔔" + , "description": "bell" + , "category": "Objects" + , "aliases": [ + "bell" + ] + , "tags": [ + "sound" + , "notification" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔕" + , "description": "bell with slash" + , "category": "Objects" + , "aliases": [ + "no_bell" + ] + , "tags": [ + "volume" + , "off" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎼" + , "description": "musical score" + , "category": "Objects" + , "aliases": [ + "musical_score" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎵" + , "description": "musical note" + , "category": "Objects" + , "aliases": [ + "musical_note" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎶" + , "description": "musical notes" + , "category": "Objects" + , "aliases": [ + "notes" + ] + , "tags": [ + "music" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎙" + , "description": "studio microphone" + , "category": "Objects" + , "aliases": [ + "studio_microphone" + ] + , "tags": [ + "podcast" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎚" + , "description": "level slider" + , "category": "Objects" + , "aliases": [ + "level_slider" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎛" + , "description": "control knobs" + , "category": "Objects" + , "aliases": [ + "control_knobs" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎤" + , "description": "microphone" + , "category": "Objects" + , "aliases": [ + "microphone" + ] + , "tags": [ + "sing" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎧" + , "description": "headphone" + , "category": "Objects" + , "aliases": [ + "headphones" + ] + , "tags": [ + "music" + , "earphones" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📻" + , "description": "radio" + , "category": "Objects" + , "aliases": [ + "radio" + ] + , "tags": [ + "podcast" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎷" + , "description": "saxophone" + , "category": "Objects" + , "aliases": [ + "saxophone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎸" + , "description": "guitar" + , "category": "Objects" + , "aliases": [ + "guitar" + ] + , "tags": [ + "rock" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎹" + , "description": "musical keyboard" + , "category": "Objects" + , "aliases": [ + "musical_keyboard" + ] + , "tags": [ + "piano" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎺" + , "description": "trumpet" + , "category": "Objects" + , "aliases": [ + "trumpet" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎻" + , "description": "violin" + , "category": "Objects" + , "aliases": [ + "violin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪕" + , "description": "banjo" + , "category": "Objects" + , "aliases": [ + "banjo" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🥁" + , "description": "drum" + , "category": "Objects" + , "aliases": [ + "drum" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "10.2" + } +, { + "emoji": "📱" + , "description": "mobile phone" + , "category": "Objects" + , "aliases": [ + "iphone" + ] + , "tags": [ + "smartphone" + , "mobile" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📲" + , "description": "mobile phone with arrow" + , "category": "Objects" + , "aliases": [ + "calling" + ] + , "tags": [ + "call" + , "incoming" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☎️" + , "description": "telephone" + , "category": "Objects" + , "aliases": [ + "phone" + , "telephone" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "📞" + , "description": "telephone receiver" + , "category": "Objects" + , "aliases": [ + "telephone_receiver" + ] + , "tags": [ + "phone" + , "call" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📟" + , "description": "pager" + , "category": "Objects" + , "aliases": [ + "pager" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📠" + , "description": "fax machine" + , "category": "Objects" + , "aliases": [ + "fax" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔋" + , "description": "battery" + , "category": "Objects" + , "aliases": [ + "battery" + ] + , "tags": [ + "power" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔌" + , "description": "electric plug" + , "category": "Objects" + , "aliases": [ + "electric_plug" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💻" + , "description": "laptop computer" + , "category": "Objects" + , "aliases": [ + "computer" + ] + , "tags": [ + "desktop" + , "screen" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖥" + , "description": "desktop computer" + , "category": "Objects" + , "aliases": [ + "desktop_computer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖨" + , "description": "printer" + , "category": "Objects" + , "aliases": [ + "printer" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⌨" + , "description": "keyboard" + , "category": "Objects" + , "aliases": [ + "keyboard" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🖱" + , "description": "computer mouse" + , "category": "Objects" + , "aliases": [ + "computer_mouse" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖲" + , "description": "trackball" + , "category": "Objects" + , "aliases": [ + "trackball" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💽" + , "description": "computer disk" + , "category": "Objects" + , "aliases": [ + "minidisc" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💾" + , "description": "floppy disk" + , "category": "Objects" + , "aliases": [ + "floppy_disk" + ] + , "tags": [ + "save" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💿" + , "description": "optical disk" + , "category": "Objects" + , "aliases": [ + "cd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📀" + , "description": "dvd" + , "category": "Objects" + , "aliases": [ + "dvd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧮" + , "description": "abacus" + , "category": "Objects" + , "aliases": [ + "abacus" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎥" + , "description": "movie camera" + , "category": "Objects" + , "aliases": [ + "movie_camera" + ] + , "tags": [ + "film" + , "video" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎞" + , "description": "film frames" + , "category": "Objects" + , "aliases": [ + "film_strip" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📽" + , "description": "film projector" + , "category": "Objects" + , "aliases": [ + "film_projector" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🎬" + , "description": "clapper board" + , "category": "Objects" + , "aliases": [ + "clapper" + ] + , "tags": [ + "film" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📺" + , "description": "television" + , "category": "Objects" + , "aliases": [ + "tv" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📷" + , "description": "camera" + , "category": "Objects" + , "aliases": [ + "camera" + ] + , "tags": [ + "photo" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📸" + , "description": "camera with flash" + , "category": "Objects" + , "aliases": [ + "camera_flash" + ] + , "tags": [ + "photo" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📹" + , "description": "video camera" + , "category": "Objects" + , "aliases": [ + "video_camera" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📼" + , "description": "videocassette" + , "category": "Objects" + , "aliases": [ + "vhs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔍" + , "description": "magnifying glass tilted left" + , "category": "Objects" + , "aliases": [ + "mag" + ] + , "tags": [ + "search" + , "zoom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔎" + , "description": "magnifying glass tilted right" + , "category": "Objects" + , "aliases": [ + "mag_right" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🕯" + , "description": "candle" + , "category": "Objects" + , "aliases": [ + "candle" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💡" + , "description": "light bulb" + , "category": "Objects" + , "aliases": [ + "bulb" + ] + , "tags": [ + "idea" + , "light" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔦" + , "description": "flashlight" + , "category": "Objects" + , "aliases": [ + "flashlight" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏮" + , "description": "red paper lantern" + , "category": "Objects" + , "aliases": [ + "izakaya_lantern" + , "lantern" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪔" + , "description": "diya lamp" + , "category": "Objects" + , "aliases": [ + "diya_lamp" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "📔" + , "description": "notebook with decorative cover" + , "category": "Objects" + , "aliases": [ + "notebook_with_decorative_cover" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📕" + , "description": "closed book" + , "category": "Objects" + , "aliases": [ + "closed_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📖" + , "description": "open book" + , "category": "Objects" + , "aliases": [ + "book" + , "open_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📗" + , "description": "green book" + , "category": "Objects" + , "aliases": [ + "green_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📘" + , "description": "blue book" + , "category": "Objects" + , "aliases": [ + "blue_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📙" + , "description": "orange book" + , "category": "Objects" + , "aliases": [ + "orange_book" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📚" + , "description": "books" + , "category": "Objects" + , "aliases": [ + "books" + ] + , "tags": [ + "library" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📓" + , "description": "notebook" + , "category": "Objects" + , "aliases": [ + "notebook" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📒" + , "description": "ledger" + , "category": "Objects" + , "aliases": [ + "ledger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📃" + , "description": "page with curl" + , "category": "Objects" + , "aliases": [ + "page_with_curl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📜" + , "description": "scroll" + , "category": "Objects" + , "aliases": [ + "scroll" + ] + , "tags": [ + "document" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📄" + , "description": "page facing up" + , "category": "Objects" + , "aliases": [ + "page_facing_up" + ] + , "tags": [ + "document" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📰" + , "description": "newspaper" + , "category": "Objects" + , "aliases": [ + "newspaper" + ] + , "tags": [ + "press" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗞" + , "description": "rolled-up newspaper" + , "category": "Objects" + , "aliases": [ + "newspaper_roll" + ] + , "tags": [ + "press" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📑" + , "description": "bookmark tabs" + , "category": "Objects" + , "aliases": [ + "bookmark_tabs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔖" + , "description": "bookmark" + , "category": "Objects" + , "aliases": [ + "bookmark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏷" + , "description": "label" + , "category": "Objects" + , "aliases": [ + "label" + ] + , "tags": [ + "tag" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "💰" + , "description": "money bag" + , "category": "Objects" + , "aliases": [ + "moneybag" + ] + , "tags": [ + "dollar" + , "cream" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💴" + , "description": "yen banknote" + , "category": "Objects" + , "aliases": [ + "yen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💵" + , "description": "dollar banknote" + , "category": "Objects" + , "aliases": [ + "dollar" + ] + , "tags": [ + "money" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💶" + , "description": "euro banknote" + , "category": "Objects" + , "aliases": [ + "euro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💷" + , "description": "pound banknote" + , "category": "Objects" + , "aliases": [ + "pound" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💸" + , "description": "money with wings" + , "category": "Objects" + , "aliases": [ + "money_with_wings" + ] + , "tags": [ + "dollar" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💳" + , "description": "credit card" + , "category": "Objects" + , "aliases": [ + "credit_card" + ] + , "tags": [ + "subscription" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🧾" + , "description": "receipt" + , "category": "Objects" + , "aliases": [ + "receipt" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "💹" + , "description": "chart increasing with yen" + , "category": "Objects" + , "aliases": [ + "chart" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💱" + , "description": "currency exchange" + , "category": "Objects" + , "aliases": [ + "currency_exchange" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💲" + , "description": "heavy dollar sign" + , "category": "Objects" + , "aliases": [ + "heavy_dollar_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✉️" + , "description": "envelope" + , "category": "Objects" + , "aliases": [ + "email" + , "envelope" + ] + , "tags": [ + "letter" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "📧" + , "description": "e-mail" + , "category": "Objects" + , "aliases": [ + "e-mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📨" + , "description": "incoming envelope" + , "category": "Objects" + , "aliases": [ + "incoming_envelope" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📩" + , "description": "envelope with arrow" + , "category": "Objects" + , "aliases": [ + "envelope_with_arrow" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📤" + , "description": "outbox tray" + , "category": "Objects" + , "aliases": [ + "outbox_tray" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📥" + , "description": "inbox tray" + , "category": "Objects" + , "aliases": [ + "inbox_tray" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📦" + , "description": "package" + , "category": "Objects" + , "aliases": [ + "package" + ] + , "tags": [ + "shipping" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📫" + , "description": "closed mailbox with raised flag" + , "category": "Objects" + , "aliases": [ + "mailbox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📪" + , "description": "closed mailbox with lowered flag" + , "category": "Objects" + , "aliases": [ + "mailbox_closed" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📬" + , "description": "open mailbox with raised flag" + , "category": "Objects" + , "aliases": [ + "mailbox_with_mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📭" + , "description": "open mailbox with lowered flag" + , "category": "Objects" + , "aliases": [ + "mailbox_with_no_mail" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📮" + , "description": "postbox" + , "category": "Objects" + , "aliases": [ + "postbox" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗳" + , "description": "ballot box with ballot" + , "category": "Objects" + , "aliases": [ + "ballot_box" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "✏️" + , "description": "pencil" + , "category": "Objects" + , "aliases": [ + "pencil2" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✒️" + , "description": "black nib" + , "category": "Objects" + , "aliases": [ + "black_nib" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🖋" + , "description": "fountain pen" + , "category": "Objects" + , "aliases": [ + "fountain_pen" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖊" + , "description": "pen" + , "category": "Objects" + , "aliases": [ + "pen" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖌" + , "description": "paintbrush" + , "category": "Objects" + , "aliases": [ + "paintbrush" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🖍" + , "description": "crayon" + , "category": "Objects" + , "aliases": [ + "crayon" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📝" + , "description": "memo" + , "category": "Objects" + , "aliases": [ + "memo" + , "pencil" + ] + , "tags": [ + "document" + , "note" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💼" + , "description": "briefcase" + , "category": "Objects" + , "aliases": [ + "briefcase" + ] + , "tags": [ + "business" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📁" + , "description": "file folder" + , "category": "Objects" + , "aliases": [ + "file_folder" + ] + , "tags": [ + "directory" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📂" + , "description": "open file folder" + , "category": "Objects" + , "aliases": [ + "open_file_folder" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗂" + , "description": "card index dividers" + , "category": "Objects" + , "aliases": [ + "card_index_dividers" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📅" + , "description": "calendar" + , "category": "Objects" + , "aliases": [ + "date" + ] + , "tags": [ + "calendar" + , "schedule" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📆" + , "description": "tear-off calendar" + , "category": "Objects" + , "aliases": [ + "calendar" + ] + , "tags": [ + "schedule" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗒" + , "description": "spiral notepad" + , "category": "Objects" + , "aliases": [ + "spiral_notepad" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗓" + , "description": "spiral calendar" + , "category": "Objects" + , "aliases": [ + "spiral_calendar" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📇" + , "description": "card index" + , "category": "Objects" + , "aliases": [ + "card_index" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📈" + , "description": "chart increasing" + , "category": "Objects" + , "aliases": [ + "chart_with_upwards_trend" + ] + , "tags": [ + "graph" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📉" + , "description": "chart decreasing" + , "category": "Objects" + , "aliases": [ + "chart_with_downwards_trend" + ] + , "tags": [ + "graph" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📊" + , "description": "bar chart" + , "category": "Objects" + , "aliases": [ + "bar_chart" + ] + , "tags": [ + "stats" + , "metrics" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📋" + , "description": "clipboard" + , "category": "Objects" + , "aliases": [ + "clipboard" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📌" + , "description": "pushpin" + , "category": "Objects" + , "aliases": [ + "pushpin" + ] + , "tags": [ + "location" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📍" + , "description": "round pushpin" + , "category": "Objects" + , "aliases": [ + "round_pushpin" + ] + , "tags": [ + "location" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📎" + , "description": "paperclip" + , "category": "Objects" + , "aliases": [ + "paperclip" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🖇" + , "description": "linked paperclips" + , "category": "Objects" + , "aliases": [ + "paperclips" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "📏" + , "description": "straight ruler" + , "category": "Objects" + , "aliases": [ + "straight_ruler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📐" + , "description": "triangular ruler" + , "category": "Objects" + , "aliases": [ + "triangular_ruler" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "✂️" + , "description": "scissors" + , "category": "Objects" + , "aliases": [ + "scissors" + ] + , "tags": [ + "cut" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🗃" + , "description": "card file box" + , "category": "Objects" + , "aliases": [ + "card_file_box" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗄" + , "description": "file cabinet" + , "category": "Objects" + , "aliases": [ + "file_cabinet" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗑" + , "description": "wastebasket" + , "category": "Objects" + , "aliases": [ + "wastebasket" + ] + , "tags": [ + "trash" + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔒" + , "description": "locked" + , "category": "Objects" + , "aliases": [ + "lock" + ] + , "tags": [ + "security" + , "private" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔓" + , "description": "unlocked" + , "category": "Objects" + , "aliases": [ + "unlock" + ] + , "tags": [ + "security" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔏" + , "description": "locked with pen" + , "category": "Objects" + , "aliases": [ + "lock_with_ink_pen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔐" + , "description": "locked with key" + , "category": "Objects" + , "aliases": [ + "closed_lock_with_key" + ] + , "tags": [ + "security" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔑" + , "description": "key" + , "category": "Objects" + , "aliases": [ + "key" + ] + , "tags": [ + "lock" + , "password" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🗝" + , "description": "old key" + , "category": "Objects" + , "aliases": [ + "old_key" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔨" + , "description": "hammer" + , "category": "Objects" + , "aliases": [ + "hammer" + ] + , "tags": [ + "tool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪓" + , "description": "axe" + , "category": "Objects" + , "aliases": [ + "axe" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⛏" + , "description": "pick" + , "category": "Objects" + , "aliases": [ + "pick" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "⚒" + , "description": "hammer and pick" + , "category": "Objects" + , "aliases": [ + "hammer_and_pick" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🛠" + , "description": "hammer and wrench" + , "category": "Objects" + , "aliases": [ + "hammer_and_wrench" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🗡" + , "description": "dagger" + , "category": "Objects" + , "aliases": [ + "dagger" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚔" + , "description": "crossed swords" + , "category": "Objects" + , "aliases": [ + "crossed_swords" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🔫" + , "description": "pistol" + , "category": "Objects" + , "aliases": [ + "gun" + ] + , "tags": [ + "shoot" + , "weapon" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏹" + , "description": "bow and arrow" + , "category": "Objects" + , "aliases": [ + "bow_and_arrow" + ] + , "tags": [ + "archery" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛡" + , "description": "shield" + , "category": "Objects" + , "aliases": [ + "shield" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔧" + , "description": "wrench" + , "category": "Objects" + , "aliases": [ + "wrench" + ] + , "tags": [ + "tool" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔩" + , "description": "nut and bolt" + , "category": "Objects" + , "aliases": [ + "nut_and_bolt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚙" + , "description": "gear" + , "category": "Objects" + , "aliases": [ + "gear" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🗜" + , "description": "clamp" + , "category": "Objects" + , "aliases": [ + "clamp" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚖" + , "description": "balance scale" + , "category": "Objects" + , "aliases": [ + "balance_scale" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🦯" + , "description": "probing cane" + , "category": "Objects" + , "aliases": [ + "probing_cane" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🔗" + , "description": "link" + , "category": "Objects" + , "aliases": [ + "link" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛓" + , "description": "chains" + , "category": "Objects" + , "aliases": [ + "chains" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "9.1" + } +, { + "emoji": "🧰" + , "description": "toolbox" + , "category": "Objects" + , "aliases": [ + "toolbox" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧲" + , "description": "magnet" + , "category": "Objects" + , "aliases": [ + "magnet" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⚗" + , "description": "alembic" + , "category": "Objects" + , "aliases": [ + "alembic" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🧪" + , "description": "test tube" + , "category": "Objects" + , "aliases": [ + "test_tube" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧫" + , "description": "petri dish" + , "category": "Objects" + , "aliases": [ + "petri_dish" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧬" + , "description": "dna" + , "category": "Objects" + , "aliases": [ + "dna" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🔬" + , "description": "microscope" + , "category": "Objects" + , "aliases": [ + "microscope" + ] + , "tags": [ + "science" + , "laboratory" + , "investigate" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔭" + , "description": "telescope" + , "category": "Objects" + , "aliases": [ + "telescope" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📡" + , "description": "satellite antenna" + , "category": "Objects" + , "aliases": [ + "satellite" + ] + , "tags": [ + "signal" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💉" + , "description": "syringe" + , "category": "Objects" + , "aliases": [ + "syringe" + ] + , "tags": [ + "health" + , "hospital" + , "needle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩸" + , "description": "drop of blood" + , "category": "Objects" + , "aliases": [ + "drop_of_blood" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "💊" + , "description": "pill" + , "category": "Objects" + , "aliases": [ + "pill" + ] + , "tags": [ + "health" + , "medicine" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🩹" + , "description": "adhesive bandage" + , "category": "Objects" + , "aliases": [ + "adhesive_bandage" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🩺" + , "description": "stethoscope" + , "category": "Objects" + , "aliases": [ + "stethoscope" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚪" + , "description": "door" + , "category": "Objects" + , "aliases": [ + "door" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛏" + , "description": "bed" + , "category": "Objects" + , "aliases": [ + "bed" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🛋" + , "description": "couch and lamp" + , "category": "Objects" + , "aliases": [ + "couch_and_lamp" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🪑" + , "description": "chair" + , "category": "Objects" + , "aliases": [ + "chair" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🚽" + , "description": "toilet" + , "category": "Objects" + , "aliases": [ + "toilet" + ] + , "tags": [ + "wc" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚿" + , "description": "shower" + , "category": "Objects" + , "aliases": [ + "shower" + ] + , "tags": [ + "bath" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛁" + , "description": "bathtub" + , "category": "Objects" + , "aliases": [ + "bathtub" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🪒" + , "description": "razor" + , "category": "Objects" + , "aliases": [ + "razor" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🧴" + , "description": "lotion bottle" + , "category": "Objects" + , "aliases": [ + "lotion_bottle" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧷" + , "description": "safety pin" + , "category": "Objects" + , "aliases": [ + "safety_pin" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧹" + , "description": "broom" + , "category": "Objects" + , "aliases": [ + "broom" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧺" + , "description": "basket" + , "category": "Objects" + , "aliases": [ + "basket" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧻" + , "description": "roll of paper" + , "category": "Objects" + , "aliases": [ + "roll_of_paper" + ] + , "tags": [ + "toilet" + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧼" + , "description": "soap" + , "category": "Objects" + , "aliases": [ + "soap" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧽" + , "description": "sponge" + , "category": "Objects" + , "aliases": [ + "sponge" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🧯" + , "description": "fire extinguisher" + , "category": "Objects" + , "aliases": [ + "fire_extinguisher" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🛒" + , "description": "shopping cart" + , "category": "Objects" + , "aliases": [ + "shopping_cart" + ] + , "tags": [ + ] + , "unicode_version": "9.0" + , "ios_version": "10.2" + } +, { + "emoji": "🚬" + , "description": "cigarette" + , "category": "Objects" + , "aliases": [ + "smoking" + ] + , "tags": [ + "cigarette" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚰" + , "description": "coffin" + , "category": "Objects" + , "aliases": [ + "coffin" + ] + , "tags": [ + "funeral" + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "⚱" + , "description": "funeral urn" + , "category": "Objects" + , "aliases": [ + "funeral_urn" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🗿" + , "description": "moai" + , "category": "Objects" + , "aliases": [ + "moyai" + ] + , "tags": [ + "stone" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏧" + , "description": "ATM sign" + , "category": "Symbols" + , "aliases": [ + "atm" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚮" + , "description": "litter in bin sign" + , "category": "Symbols" + , "aliases": [ + "put_litter_in_its_place" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚰" + , "description": "potable water" + , "category": "Symbols" + , "aliases": [ + "potable_water" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♿" + , "description": "wheelchair symbol" + , "category": "Symbols" + , "aliases": [ + "wheelchair" + ] + , "tags": [ + "accessibility" + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "🚹" + , "description": "men’s room" + , "category": "Symbols" + , "aliases": [ + "mens" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚺" + , "description": "women’s room" + , "category": "Symbols" + , "aliases": [ + "womens" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚻" + , "description": "restroom" + , "category": "Symbols" + , "aliases": [ + "restroom" + ] + , "tags": [ + "toilet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚼" + , "description": "baby symbol" + , "category": "Symbols" + , "aliases": [ + "baby_symbol" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚾" + , "description": "water closet" + , "category": "Symbols" + , "aliases": [ + "wc" + ] + , "tags": [ + "toilet" + , "restroom" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛂" + , "description": "passport control" + , "category": "Symbols" + , "aliases": [ + "passport_control" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛃" + , "description": "customs" + , "category": "Symbols" + , "aliases": [ + "customs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛄" + , "description": "baggage claim" + , "category": "Symbols" + , "aliases": [ + "baggage_claim" + ] + , "tags": [ + "airport" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛅" + , "description": "left luggage" + , "category": "Symbols" + , "aliases": [ + "left_luggage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⚠️" + , "description": "warning" + , "category": "Symbols" + , "aliases": [ + "warning" + ] + , "tags": [ + "wip" + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚸" + , "description": "children crossing" + , "category": "Symbols" + , "aliases": [ + "children_crossing" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⛔" + , "description": "no entry" + , "category": "Symbols" + , "aliases": [ + "no_entry" + ] + , "tags": [ + "limit" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🚫" + , "description": "prohibited" + , "category": "Symbols" + , "aliases": [ + "no_entry_sign" + ] + , "tags": [ + "block" + , "forbidden" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚳" + , "description": "no bicycles" + , "category": "Symbols" + , "aliases": [ + "no_bicycles" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚭" + , "description": "no smoking" + , "category": "Symbols" + , "aliases": [ + "no_smoking" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚯" + , "description": "no littering" + , "category": "Symbols" + , "aliases": [ + "do_not_litter" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚱" + , "description": "non-potable water" + , "category": "Symbols" + , "aliases": [ + "non-potable_water" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚷" + , "description": "no pedestrians" + , "category": "Symbols" + , "aliases": [ + "no_pedestrians" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📵" + , "description": "no mobile phones" + , "category": "Symbols" + , "aliases": [ + "no_mobile_phones" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔞" + , "description": "no one under eighteen" + , "category": "Symbols" + , "aliases": [ + "underage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☢" + , "description": "radioactive" + , "category": "Symbols" + , "aliases": [ + "radioactive" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☣" + , "description": "biohazard" + , "category": "Symbols" + , "aliases": [ + "biohazard" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "⬆️" + , "description": "up arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_up" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↗️" + , "description": "up-right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_upper_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "➡️" + , "description": "right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↘️" + , "description": "down-right arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_lower_right" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⬇️" + , "description": "down arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_down" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↙️" + , "description": "down-left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_lower_left" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⬅️" + , "description": "left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_left" + ] + , "tags": [ + ] + , "unicode_version": "4.0" + , "ios_version": "6.0" + } +, { + "emoji": "↖️" + , "description": "up-left arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_upper_left" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↕️" + , "description": "up-down arrow" + , "category": "Symbols" + , "aliases": [ + "arrow_up_down" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↔️" + , "description": "left-right arrow" + , "category": "Symbols" + , "aliases": [ + "left_right_arrow" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↩️" + , "description": "right arrow curving left" + , "category": "Symbols" + , "aliases": [ + "leftwards_arrow_with_hook" + ] + , "tags": [ + "return" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "↪️" + , "description": "left arrow curving right" + , "category": "Symbols" + , "aliases": [ + "arrow_right_hook" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⤴️" + , "description": "right arrow curving up" + , "category": "Symbols" + , "aliases": [ + "arrow_heading_up" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⤵️" + , "description": "right arrow curving down" + , "category": "Symbols" + , "aliases": [ + "arrow_heading_down" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔃" + , "description": "clockwise vertical arrows" + , "category": "Symbols" + , "aliases": [ + "arrows_clockwise" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔄" + , "description": "counterclockwise arrows button" + , "category": "Symbols" + , "aliases": [ + "arrows_counterclockwise" + ] + , "tags": [ + "sync" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔙" + , "description": "BACK arrow" + , "category": "Symbols" + , "aliases": [ + "back" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔚" + , "description": "END arrow" + , "category": "Symbols" + , "aliases": [ + "end" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔛" + , "description": "ON! arrow" + , "category": "Symbols" + , "aliases": [ + "on" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔜" + , "description": "SOON arrow" + , "category": "Symbols" + , "aliases": [ + "soon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔝" + , "description": "TOP arrow" + , "category": "Symbols" + , "aliases": [ + "top" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🛐" + , "description": "place of worship" + , "category": "Symbols" + , "aliases": [ + "place_of_worship" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "⚛" + , "description": "atom symbol" + , "category": "Symbols" + , "aliases": [ + "atom_symbol" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🕉" + , "description": "om" + , "category": "Symbols" + , "aliases": [ + "om" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "✡️" + , "description": "star of David" + , "category": "Symbols" + , "aliases": [ + "star_of_david" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☸" + , "description": "wheel of dharma" + , "category": "Symbols" + , "aliases": [ + "wheel_of_dharma" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☯️" + , "description": "yin yang" + , "category": "Symbols" + , "aliases": [ + "yin_yang" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "✝️" + , "description": "latin cross" + , "category": "Symbols" + , "aliases": [ + "latin_cross" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☦" + , "description": "orthodox cross" + , "category": "Symbols" + , "aliases": [ + "orthodox_cross" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☪" + , "description": "star and crescent" + , "category": "Symbols" + , "aliases": [ + "star_and_crescent" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "☮" + , "description": "peace symbol" + , "category": "Symbols" + , "aliases": [ + "peace_symbol" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "🕎" + , "description": "menorah" + , "category": "Symbols" + , "aliases": [ + "menorah" + ] + , "tags": [ + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔯" + , "description": "dotted six-pointed star" + , "category": "Symbols" + , "aliases": [ + "six_pointed_star" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♈" + , "description": "Aries" + , "category": "Symbols" + , "aliases": [ + "aries" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♉" + , "description": "Taurus" + , "category": "Symbols" + , "aliases": [ + "taurus" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♊" + , "description": "Gemini" + , "category": "Symbols" + , "aliases": [ + "gemini" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♋" + , "description": "Cancer" + , "category": "Symbols" + , "aliases": [ + "cancer" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♌" + , "description": "Leo" + , "category": "Symbols" + , "aliases": [ + "leo" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♍" + , "description": "Virgo" + , "category": "Symbols" + , "aliases": [ + "virgo" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♎" + , "description": "Libra" + , "category": "Symbols" + , "aliases": [ + "libra" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♏" + , "description": "Scorpio" + , "category": "Symbols" + , "aliases": [ + "scorpius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♐" + , "description": "Sagittarius" + , "category": "Symbols" + , "aliases": [ + "sagittarius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♑" + , "description": "Capricorn" + , "category": "Symbols" + , "aliases": [ + "capricorn" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♒" + , "description": "Aquarius" + , "category": "Symbols" + , "aliases": [ + "aquarius" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "♓" + , "description": "Pisces" + , "category": "Symbols" + , "aliases": [ + "pisces" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⛎" + , "description": "Ophiuchus" + , "category": "Symbols" + , "aliases": [ + "ophiuchus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔀" + , "description": "shuffle tracks button" + , "category": "Symbols" + , "aliases": [ + "twisted_rightwards_arrows" + ] + , "tags": [ + "shuffle" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔁" + , "description": "repeat button" + , "category": "Symbols" + , "aliases": [ + "repeat" + ] + , "tags": [ + "loop" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔂" + , "description": "repeat single button" + , "category": "Symbols" + , "aliases": [ + "repeat_one" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "▶️" + , "description": "play button" + , "category": "Symbols" + , "aliases": [ + "arrow_forward" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏩" + , "description": "fast-forward button" + , "category": "Symbols" + , "aliases": [ + "fast_forward" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏭" + , "description": "next track button" + , "category": "Symbols" + , "aliases": [ + "next_track_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏯" + , "description": "play or pause button" + , "category": "Symbols" + , "aliases": [ + "play_or_pause_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "◀️" + , "description": "reverse button" + , "category": "Symbols" + , "aliases": [ + "arrow_backward" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⏪" + , "description": "fast reverse button" + , "category": "Symbols" + , "aliases": [ + "rewind" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏮" + , "description": "last track button" + , "category": "Symbols" + , "aliases": [ + "previous_track_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.1" + } +, { + "emoji": "🔼" + , "description": "upwards button" + , "category": "Symbols" + , "aliases": [ + "arrow_up_small" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏫" + , "description": "fast up button" + , "category": "Symbols" + , "aliases": [ + "arrow_double_up" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔽" + , "description": "downwards button" + , "category": "Symbols" + , "aliases": [ + "arrow_down_small" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏬" + , "description": "fast down button" + , "category": "Symbols" + , "aliases": [ + "arrow_double_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⏸" + , "description": "pause button" + , "category": "Symbols" + , "aliases": [ + "pause_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏹" + , "description": "stop button" + , "category": "Symbols" + , "aliases": [ + "stop_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏺" + , "description": "record button" + , "category": "Symbols" + , "aliases": [ + "record_button" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "⏏️" + , "description": "eject button" + , "category": "Symbols" + , "aliases": [ + "eject_button" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🎦" + , "description": "cinema" + , "category": "Symbols" + , "aliases": [ + "cinema" + ] + , "tags": [ + "film" + , "movie" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔅" + , "description": "dim button" + , "category": "Symbols" + , "aliases": [ + "low_brightness" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔆" + , "description": "bright button" + , "category": "Symbols" + , "aliases": [ + "high_brightness" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📶" + , "description": "antenna bars" + , "category": "Symbols" + , "aliases": [ + "signal_strength" + ] + , "tags": [ + "wifi" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📳" + , "description": "vibration mode" + , "category": "Symbols" + , "aliases": [ + "vibration_mode" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📴" + , "description": "mobile phone off" + , "category": "Symbols" + , "aliases": [ + "mobile_phone_off" + ] + , "tags": [ + "mute" + , "off" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "♀️" + , "description": "female sign" + , "category": "Symbols" + , "aliases": [ + "female_sign" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♂️" + , "description": "male sign" + , "category": "Symbols" + , "aliases": [ + "male_sign" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "⚕" + , "description": "medical symbol" + , "category": "Symbols" + , "aliases": [ + "medical_symbol" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♾" + , "description": "infinity" + , "category": "Symbols" + , "aliases": [ + "infinity" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "♻️" + , "description": "recycling symbol" + , "category": "Symbols" + , "aliases": [ + "recycle" + ] + , "tags": [ + "environment" + , "green" + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "⚜" + , "description": "fleur-de-lis" + , "category": "Symbols" + , "aliases": [ + "fleur_de_lis" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "9.1" + } +, { + "emoji": "🔱" + , "description": "trident emblem" + , "category": "Symbols" + , "aliases": [ + "trident" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "📛" + , "description": "name badge" + , "category": "Symbols" + , "aliases": [ + "name_badge" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔰" + , "description": "Japanese symbol for beginner" + , "category": "Symbols" + , "aliases": [ + "beginner" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "⭕" + , "description": "hollow red circle" + , "category": "Symbols" + , "aliases": [ + "o" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "✅" + , "description": "check mark button" + , "category": "Symbols" + , "aliases": [ + "white_check_mark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "☑️" + , "description": "check box with check" + , "category": "Symbols" + , "aliases": [ + "ballot_box_with_check" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✔️" + , "description": "check mark" + , "category": "Symbols" + , "aliases": [ + "heavy_check_mark" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✖️" + , "description": "multiplication sign" + , "category": "Symbols" + , "aliases": [ + "heavy_multiplication_x" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "❌" + , "description": "cross mark" + , "category": "Symbols" + , "aliases": [ + "x" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❎" + , "description": "cross mark button" + , "category": "Symbols" + , "aliases": [ + "negative_squared_cross_mark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➕" + , "description": "plus sign" + , "category": "Symbols" + , "aliases": [ + "heavy_plus_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➖" + , "description": "minus sign" + , "category": "Symbols" + , "aliases": [ + "heavy_minus_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➗" + , "description": "division sign" + , "category": "Symbols" + , "aliases": [ + "heavy_division_sign" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➰" + , "description": "curly loop" + , "category": "Symbols" + , "aliases": [ + "curly_loop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "➿" + , "description": "double curly loop" + , "category": "Symbols" + , "aliases": [ + "loop" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "〽️" + , "description": "part alternation mark" + , "category": "Symbols" + , "aliases": [ + "part_alternation_mark" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "✳️" + , "description": "eight-spoked asterisk" + , "category": "Symbols" + , "aliases": [ + "eight_spoked_asterisk" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "✴️" + , "description": "eight-pointed star" + , "category": "Symbols" + , "aliases": [ + "eight_pointed_black_star" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "❇️" + , "description": "sparkle" + , "category": "Symbols" + , "aliases": [ + "sparkle" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "‼️" + , "description": "double exclamation mark" + , "category": "Symbols" + , "aliases": [ + "bangbang" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "⁉️" + , "description": "exclamation question mark" + , "category": "Symbols" + , "aliases": [ + "interrobang" + ] + , "tags": [ + ] + , "unicode_version": "3.0" + , "ios_version": "6.0" + } +, { + "emoji": "❓" + , "description": "question mark" + , "category": "Symbols" + , "aliases": [ + "question" + ] + , "tags": [ + "confused" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❔" + , "description": "white question mark" + , "category": "Symbols" + , "aliases": [ + "grey_question" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❕" + , "description": "white exclamation mark" + , "category": "Symbols" + , "aliases": [ + "grey_exclamation" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "❗" + , "description": "exclamation mark" + , "category": "Symbols" + , "aliases": [ + "exclamation" + , "heavy_exclamation_mark" + ] + , "tags": [ + "bang" + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "〰️" + , "description": "wavy dash" + , "category": "Symbols" + , "aliases": [ + "wavy_dash" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "©️" + , "description": "copyright" + , "category": "Symbols" + , "aliases": [ + "copyright" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "®️" + , "description": "registered" + , "category": "Symbols" + , "aliases": [ + "registered" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "™️" + , "description": "trade mark" + , "category": "Symbols" + , "aliases": [ + "tm" + ] + , "tags": [ + "trademark" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "#️⃣" + , "description": "keycap: #" + , "category": "Symbols" + , "aliases": [ + "hash" + ] + , "tags": [ + "number" + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "*️⃣" + , "description": "keycap: *" + , "category": "Symbols" + , "aliases": [ + "asterisk" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "9.1" + } +, { + "emoji": "0️⃣" + , "description": "keycap: 0" + , "category": "Symbols" + , "aliases": [ + "zero" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "1️⃣" + , "description": "keycap: 1" + , "category": "Symbols" + , "aliases": [ + "one" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "2️⃣" + , "description": "keycap: 2" + , "category": "Symbols" + , "aliases": [ + "two" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "3️⃣" + , "description": "keycap: 3" + , "category": "Symbols" + , "aliases": [ + "three" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "4️⃣" + , "description": "keycap: 4" + , "category": "Symbols" + , "aliases": [ + "four" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "5️⃣" + , "description": "keycap: 5" + , "category": "Symbols" + , "aliases": [ + "five" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "6️⃣" + , "description": "keycap: 6" + , "category": "Symbols" + , "aliases": [ + "six" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "7️⃣" + , "description": "keycap: 7" + , "category": "Symbols" + , "aliases": [ + "seven" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "8️⃣" + , "description": "keycap: 8" + , "category": "Symbols" + , "aliases": [ + "eight" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "9️⃣" + , "description": "keycap: 9" + , "category": "Symbols" + , "aliases": [ + "nine" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔟" + , "description": "keycap: 10" + , "category": "Symbols" + , "aliases": [ + "keycap_ten" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔠" + , "description": "input latin uppercase" + , "category": "Symbols" + , "aliases": [ + "capital_abcd" + ] + , "tags": [ + "letters" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔡" + , "description": "input latin lowercase" + , "category": "Symbols" + , "aliases": [ + "abcd" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔢" + , "description": "input numbers" + , "category": "Symbols" + , "aliases": [ + "1234" + ] + , "tags": [ + "numbers" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔣" + , "description": "input symbols" + , "category": "Symbols" + , "aliases": [ + "symbols" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔤" + , "description": "input latin letters" + , "category": "Symbols" + , "aliases": [ + "abc" + ] + , "tags": [ + "alphabet" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅰️" + , "description": "A button (blood type)" + , "category": "Symbols" + , "aliases": [ + "a" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆎" + , "description": "AB button (blood type)" + , "category": "Symbols" + , "aliases": [ + "ab" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅱️" + , "description": "B button (blood type)" + , "category": "Symbols" + , "aliases": [ + "b" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆑" + , "description": "CL button" + , "category": "Symbols" + , "aliases": [ + "cl" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆒" + , "description": "COOL button" + , "category": "Symbols" + , "aliases": [ + "cool" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆓" + , "description": "FREE button" + , "category": "Symbols" + , "aliases": [ + "free" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "ℹ️" + , "description": "information" + , "category": "Symbols" + , "aliases": [ + "information_source" + ] + , "tags": [ + ] + , "unicode_version": "3.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆔" + , "description": "ID button" + , "category": "Symbols" + , "aliases": [ + "id" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "Ⓜ️" + , "description": "circled M" + , "category": "Symbols" + , "aliases": [ + "m" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🆕" + , "description": "NEW button" + , "category": "Symbols" + , "aliases": [ + "new" + ] + , "tags": [ + "fresh" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆖" + , "description": "NG button" + , "category": "Symbols" + , "aliases": [ + "ng" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅾️" + , "description": "O button (blood type)" + , "category": "Symbols" + , "aliases": [ + "o2" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆗" + , "description": "OK button" + , "category": "Symbols" + , "aliases": [ + "ok" + ] + , "tags": [ + "yes" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🅿️" + , "description": "P button" + , "category": "Symbols" + , "aliases": [ + "parking" + ] + , "tags": [ + ] + , "unicode_version": "5.2" + , "ios_version": "6.0" + } +, { + "emoji": "🆘" + , "description": "SOS button" + , "category": "Symbols" + , "aliases": [ + "sos" + ] + , "tags": [ + "help" + , "emergency" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆙" + , "description": "UP! button" + , "category": "Symbols" + , "aliases": [ + "up" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🆚" + , "description": "VS button" + , "category": "Symbols" + , "aliases": [ + "vs" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈁" + , "description": "Japanese “here” button" + , "category": "Symbols" + , "aliases": [ + "koko" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈂️" + , "description": "Japanese “service charge” button" + , "category": "Symbols" + , "aliases": [ + "sa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈷️" + , "description": "Japanese “monthly amount” button" + , "category": "Symbols" + , "aliases": [ + "u6708" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈶" + , "description": "Japanese “not free of charge” button" + , "category": "Symbols" + , "aliases": [ + "u6709" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈯" + , "description": "Japanese “reserved” button" + , "category": "Symbols" + , "aliases": [ + "u6307" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🉐" + , "description": "Japanese “bargain” button" + , "category": "Symbols" + , "aliases": [ + "ideograph_advantage" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈹" + , "description": "Japanese “discount” button" + , "category": "Symbols" + , "aliases": [ + "u5272" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈚" + , "description": "Japanese “free of charge” button" + , "category": "Symbols" + , "aliases": [ + "u7121" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🈲" + , "description": "Japanese “prohibited” button" + , "category": "Symbols" + , "aliases": [ + "u7981" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🉑" + , "description": "Japanese “acceptable” button" + , "category": "Symbols" + , "aliases": [ + "accept" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈸" + , "description": "Japanese “application” button" + , "category": "Symbols" + , "aliases": [ + "u7533" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈴" + , "description": "Japanese “passing grade” button" + , "category": "Symbols" + , "aliases": [ + "u5408" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈳" + , "description": "Japanese “vacancy” button" + , "category": "Symbols" + , "aliases": [ + "u7a7a" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "㊗️" + , "description": "Japanese “congratulations” button" + , "category": "Symbols" + , "aliases": [ + "congratulations" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "㊙️" + , "description": "Japanese “secret” button" + , "category": "Symbols" + , "aliases": [ + "secret" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🈺" + , "description": "Japanese “open for business” button" + , "category": "Symbols" + , "aliases": [ + "u55b6" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🈵" + , "description": "Japanese “no vacancy” button" + , "category": "Symbols" + , "aliases": [ + "u6e80" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔴" + , "description": "red circle" + , "category": "Symbols" + , "aliases": [ + "red_circle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🟠" + , "description": "orange circle" + , "category": "Symbols" + , "aliases": [ + "orange_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟡" + , "description": "yellow circle" + , "category": "Symbols" + , "aliases": [ + "yellow_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟢" + , "description": "green circle" + , "category": "Symbols" + , "aliases": [ + "green_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🔵" + , "description": "blue circle" + , "category": "Symbols" + , "aliases": [ + "large_blue_circle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🟣" + , "description": "purple circle" + , "category": "Symbols" + , "aliases": [ + "purple_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟤" + , "description": "brown circle" + , "category": "Symbols" + , "aliases": [ + "brown_circle" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⚫" + , "description": "black circle" + , "category": "Symbols" + , "aliases": [ + "black_circle" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "⚪" + , "description": "white circle" + , "category": "Symbols" + , "aliases": [ + "white_circle" + ] + , "tags": [ + ] + , "unicode_version": "4.1" + , "ios_version": "6.0" + } +, { + "emoji": "🟥" + , "description": "red square" + , "category": "Symbols" + , "aliases": [ + "red_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟧" + , "description": "orange square" + , "category": "Symbols" + , "aliases": [ + "orange_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟨" + , "description": "yellow square" + , "category": "Symbols" + , "aliases": [ + "yellow_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟩" + , "description": "green square" + , "category": "Symbols" + , "aliases": [ + "green_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟦" + , "description": "blue square" + , "category": "Symbols" + , "aliases": [ + "blue_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟪" + , "description": "purple square" + , "category": "Symbols" + , "aliases": [ + "purple_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "🟫" + , "description": "brown square" + , "category": "Symbols" + , "aliases": [ + "brown_square" + ] + , "tags": [ + ] + , "unicode_version": "12.0" + , "ios_version": "13.0" + } +, { + "emoji": "⬛" + , "description": "black large square" + , "category": "Symbols" + , "aliases": [ + "black_large_square" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "⬜" + , "description": "white large square" + , "category": "Symbols" + , "aliases": [ + "white_large_square" + ] + , "tags": [ + ] + , "unicode_version": "5.1" + , "ios_version": "6.0" + } +, { + "emoji": "◼️" + , "description": "black medium square" + , "category": "Symbols" + , "aliases": [ + "black_medium_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◻️" + , "description": "white medium square" + , "category": "Symbols" + , "aliases": [ + "white_medium_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◾" + , "description": "black medium-small square" + , "category": "Symbols" + , "aliases": [ + "black_medium_small_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "◽" + , "description": "white medium-small square" + , "category": "Symbols" + , "aliases": [ + "white_medium_small_square" + ] + , "tags": [ + ] + , "unicode_version": "3.2" + , "ios_version": "6.0" + } +, { + "emoji": "▪️" + , "description": "black small square" + , "category": "Symbols" + , "aliases": [ + "black_small_square" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "▫️" + , "description": "white small square" + , "category": "Symbols" + , "aliases": [ + "white_small_square" + ] + , "tags": [ + ] + , "unicode_version": "" + , "ios_version": "6.0" + } +, { + "emoji": "🔶" + , "description": "large orange diamond" + , "category": "Symbols" + , "aliases": [ + "large_orange_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔷" + , "description": "large blue diamond" + , "category": "Symbols" + , "aliases": [ + "large_blue_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔸" + , "description": "small orange diamond" + , "category": "Symbols" + , "aliases": [ + "small_orange_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔹" + , "description": "small blue diamond" + , "category": "Symbols" + , "aliases": [ + "small_blue_diamond" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔺" + , "description": "red triangle pointed up" + , "category": "Symbols" + , "aliases": [ + "small_red_triangle" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔻" + , "description": "red triangle pointed down" + , "category": "Symbols" + , "aliases": [ + "small_red_triangle_down" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "💠" + , "description": "diamond with a dot" + , "category": "Symbols" + , "aliases": [ + "diamond_shape_with_a_dot_inside" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔘" + , "description": "radio button" + , "category": "Symbols" + , "aliases": [ + "radio_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔳" + , "description": "white square button" + , "category": "Symbols" + , "aliases": [ + "white_square_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🔲" + , "description": "black square button" + , "category": "Symbols" + , "aliases": [ + "black_square_button" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏁" + , "description": "chequered flag" + , "category": "Flags" + , "aliases": [ + "checkered_flag" + ] + , "tags": [ + "milestone" + , "finish" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🚩" + , "description": "triangular flag" + , "category": "Flags" + , "aliases": [ + "triangular_flag_on_post" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🎌" + , "description": "crossed flags" + , "category": "Flags" + , "aliases": [ + "crossed_flags" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🏴" + , "description": "black flag" + , "category": "Flags" + , "aliases": [ + "black_flag" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏳" + , "description": "white flag" + , "category": "Flags" + , "aliases": [ + "white_flag" + ] + , "tags": [ + ] + , "unicode_version": "7.0" + , "ios_version": "9.1" + } +, { + "emoji": "🏳️‍🌈" + , "description": "rainbow flag" + , "category": "Flags" + , "aliases": [ + "rainbow_flag" + ] + , "tags": [ + "pride" + ] + , "unicode_version": "6.0" + , "ios_version": "10.0" + } +, { + "emoji": "🏴‍☠" + , "description": "pirate flag" + , "category": "Flags" + , "aliases": [ + "pirate_flag" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇦🇨" + , "description": "flag: Ascension Island" + , "category": "Flags" + , "aliases": [ + "ascension_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇦🇩" + , "description": "flag: Andorra" + , "category": "Flags" + , "aliases": [ + "andorra" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇪" + , "description": "flag: United Arab Emirates" + , "category": "Flags" + , "aliases": [ + "united_arab_emirates" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇫" + , "description": "flag: Afghanistan" + , "category": "Flags" + , "aliases": [ + "afghanistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇬" + , "description": "flag: Antigua & Barbuda" + , "category": "Flags" + , "aliases": [ + "antigua_barbuda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇮" + , "description": "flag: Anguilla" + , "category": "Flags" + , "aliases": [ + "anguilla" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇱" + , "description": "flag: Albania" + , "category": "Flags" + , "aliases": [ + "albania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇲" + , "description": "flag: Armenia" + , "category": "Flags" + , "aliases": [ + "armenia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇴" + , "description": "flag: Angola" + , "category": "Flags" + , "aliases": [ + "angola" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇶" + , "description": "flag: Antarctica" + , "category": "Flags" + , "aliases": [ + "antarctica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇦🇷" + , "description": "flag: Argentina" + , "category": "Flags" + , "aliases": [ + "argentina" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇸" + , "description": "flag: American Samoa" + , "category": "Flags" + , "aliases": [ + "american_samoa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇹" + , "description": "flag: Austria" + , "category": "Flags" + , "aliases": [ + "austria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇺" + , "description": "flag: Australia" + , "category": "Flags" + , "aliases": [ + "australia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇼" + , "description": "flag: Aruba" + , "category": "Flags" + , "aliases": [ + "aruba" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇦🇽" + , "description": "flag: Åland Islands" + , "category": "Flags" + , "aliases": [ + "aland_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇦🇿" + , "description": "flag: Azerbaijan" + , "category": "Flags" + , "aliases": [ + "azerbaijan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇦" + , "description": "flag: Bosnia & Herzegovina" + , "category": "Flags" + , "aliases": [ + "bosnia_herzegovina" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇧" + , "description": "flag: Barbados" + , "category": "Flags" + , "aliases": [ + "barbados" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇩" + , "description": "flag: Bangladesh" + , "category": "Flags" + , "aliases": [ + "bangladesh" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇪" + , "description": "flag: Belgium" + , "category": "Flags" + , "aliases": [ + "belgium" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇫" + , "description": "flag: Burkina Faso" + , "category": "Flags" + , "aliases": [ + "burkina_faso" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇬" + , "description": "flag: Bulgaria" + , "category": "Flags" + , "aliases": [ + "bulgaria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇭" + , "description": "flag: Bahrain" + , "category": "Flags" + , "aliases": [ + "bahrain" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇮" + , "description": "flag: Burundi" + , "category": "Flags" + , "aliases": [ + "burundi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇯" + , "description": "flag: Benin" + , "category": "Flags" + , "aliases": [ + "benin" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇱" + , "description": "flag: St. Barthélemy" + , "category": "Flags" + , "aliases": [ + "st_barthelemy" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇧🇲" + , "description": "flag: Bermuda" + , "category": "Flags" + , "aliases": [ + "bermuda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇳" + , "description": "flag: Brunei" + , "category": "Flags" + , "aliases": [ + "brunei" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇴" + , "description": "flag: Bolivia" + , "category": "Flags" + , "aliases": [ + "bolivia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇶" + , "description": "flag: Caribbean Netherlands" + , "category": "Flags" + , "aliases": [ + "caribbean_netherlands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇧🇷" + , "description": "flag: Brazil" + , "category": "Flags" + , "aliases": [ + "brazil" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇸" + , "description": "flag: Bahamas" + , "category": "Flags" + , "aliases": [ + "bahamas" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇹" + , "description": "flag: Bhutan" + , "category": "Flags" + , "aliases": [ + "bhutan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇻" + , "description": "flag: Bouvet Island" + , "category": "Flags" + , "aliases": [ + "bouvet_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇧🇼" + , "description": "flag: Botswana" + , "category": "Flags" + , "aliases": [ + "botswana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇾" + , "description": "flag: Belarus" + , "category": "Flags" + , "aliases": [ + "belarus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇧🇿" + , "description": "flag: Belize" + , "category": "Flags" + , "aliases": [ + "belize" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇦" + , "description": "flag: Canada" + , "category": "Flags" + , "aliases": [ + "canada" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇨" + , "description": "flag: Cocos (Keeling) Islands" + , "category": "Flags" + , "aliases": [ + "cocos_islands" + ] + , "tags": [ + "keeling" + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇨🇩" + , "description": "flag: Congo - Kinshasa" + , "category": "Flags" + , "aliases": [ + "congo_kinshasa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇫" + , "description": "flag: Central African Republic" + , "category": "Flags" + , "aliases": [ + "central_african_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇬" + , "description": "flag: Congo - Brazzaville" + , "category": "Flags" + , "aliases": [ + "congo_brazzaville" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇭" + , "description": "flag: Switzerland" + , "category": "Flags" + , "aliases": [ + "switzerland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇮" + , "description": "flag: Côte d’Ivoire" + , "category": "Flags" + , "aliases": [ + "cote_divoire" + ] + , "tags": [ + "ivory" + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇰" + , "description": "flag: Cook Islands" + , "category": "Flags" + , "aliases": [ + "cook_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇱" + , "description": "flag: Chile" + , "category": "Flags" + , "aliases": [ + "chile" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇲" + , "description": "flag: Cameroon" + , "category": "Flags" + , "aliases": [ + "cameroon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇳" + , "description": "flag: China" + , "category": "Flags" + , "aliases": [ + "cn" + ] + , "tags": [ + "china" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇨🇴" + , "description": "flag: Colombia" + , "category": "Flags" + , "aliases": [ + "colombia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇵" + , "description": "flag: Clipperton Island" + , "category": "Flags" + , "aliases": [ + "clipperton_island" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇨🇷" + , "description": "flag: Costa Rica" + , "category": "Flags" + , "aliases": [ + "costa_rica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇺" + , "description": "flag: Cuba" + , "category": "Flags" + , "aliases": [ + "cuba" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇻" + , "description": "flag: Cape Verde" + , "category": "Flags" + , "aliases": [ + "cape_verde" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇼" + , "description": "flag: Curaçao" + , "category": "Flags" + , "aliases": [ + "curacao" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇽" + , "description": "flag: Christmas Island" + , "category": "Flags" + , "aliases": [ + "christmas_island" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇨🇾" + , "description": "flag: Cyprus" + , "category": "Flags" + , "aliases": [ + "cyprus" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇨🇿" + , "description": "flag: Czechia" + , "category": "Flags" + , "aliases": [ + "czech_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇪" + , "description": "flag: Germany" + , "category": "Flags" + , "aliases": [ + "de" + ] + , "tags": [ + "flag" + , "germany" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇩🇬" + , "description": "flag: Diego Garcia" + , "category": "Flags" + , "aliases": [ + "diego_garcia" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇩🇯" + , "description": "flag: Djibouti" + , "category": "Flags" + , "aliases": [ + "djibouti" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇰" + , "description": "flag: Denmark" + , "category": "Flags" + , "aliases": [ + "denmark" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇲" + , "description": "flag: Dominica" + , "category": "Flags" + , "aliases": [ + "dominica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇴" + , "description": "flag: Dominican Republic" + , "category": "Flags" + , "aliases": [ + "dominican_republic" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇩🇿" + , "description": "flag: Algeria" + , "category": "Flags" + , "aliases": [ + "algeria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇦" + , "description": "flag: Ceuta & Melilla" + , "category": "Flags" + , "aliases": [ + "ceuta_melilla" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇪🇨" + , "description": "flag: Ecuador" + , "category": "Flags" + , "aliases": [ + "ecuador" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇪" + , "description": "flag: Estonia" + , "category": "Flags" + , "aliases": [ + "estonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇬" + , "description": "flag: Egypt" + , "category": "Flags" + , "aliases": [ + "egypt" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇭" + , "description": "flag: Western Sahara" + , "category": "Flags" + , "aliases": [ + "western_sahara" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇪🇷" + , "description": "flag: Eritrea" + , "category": "Flags" + , "aliases": [ + "eritrea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇸" + , "description": "flag: Spain" + , "category": "Flags" + , "aliases": [ + "es" + ] + , "tags": [ + "spain" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇪🇹" + , "description": "flag: Ethiopia" + , "category": "Flags" + , "aliases": [ + "ethiopia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇪🇺" + , "description": "flag: European Union" + , "category": "Flags" + , "aliases": [ + "eu" + , "european_union" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇮" + , "description": "flag: Finland" + , "category": "Flags" + , "aliases": [ + "finland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇯" + , "description": "flag: Fiji" + , "category": "Flags" + , "aliases": [ + "fiji" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇰" + , "description": "flag: Falkland Islands" + , "category": "Flags" + , "aliases": [ + "falkland_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇲" + , "description": "flag: Micronesia" + , "category": "Flags" + , "aliases": [ + "micronesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇫🇴" + , "description": "flag: Faroe Islands" + , "category": "Flags" + , "aliases": [ + "faroe_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇫🇷" + , "description": "flag: France" + , "category": "Flags" + , "aliases": [ + "fr" + ] + , "tags": [ + "france" + , "french" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇬🇦" + , "description": "flag: Gabon" + , "category": "Flags" + , "aliases": [ + "gabon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇧" + , "description": "flag: United Kingdom" + , "category": "Flags" + , "aliases": [ + "gb" + , "uk" + ] + , "tags": [ + "flag" + , "british" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇬🇩" + , "description": "flag: Grenada" + , "category": "Flags" + , "aliases": [ + "grenada" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇪" + , "description": "flag: Georgia" + , "category": "Flags" + , "aliases": [ + "georgia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇫" + , "description": "flag: French Guiana" + , "category": "Flags" + , "aliases": [ + "french_guiana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇬" + , "description": "flag: Guernsey" + , "category": "Flags" + , "aliases": [ + "guernsey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇭" + , "description": "flag: Ghana" + , "category": "Flags" + , "aliases": [ + "ghana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇮" + , "description": "flag: Gibraltar" + , "category": "Flags" + , "aliases": [ + "gibraltar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇱" + , "description": "flag: Greenland" + , "category": "Flags" + , "aliases": [ + "greenland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇲" + , "description": "flag: Gambia" + , "category": "Flags" + , "aliases": [ + "gambia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇳" + , "description": "flag: Guinea" + , "category": "Flags" + , "aliases": [ + "guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇵" + , "description": "flag: Guadeloupe" + , "category": "Flags" + , "aliases": [ + "guadeloupe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇶" + , "description": "flag: Equatorial Guinea" + , "category": "Flags" + , "aliases": [ + "equatorial_guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇷" + , "description": "flag: Greece" + , "category": "Flags" + , "aliases": [ + "greece" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇸" + , "description": "flag: South Georgia & South Sandwich Islands" + , "category": "Flags" + , "aliases": [ + "south_georgia_south_sandwich_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇬🇹" + , "description": "flag: Guatemala" + , "category": "Flags" + , "aliases": [ + "guatemala" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇺" + , "description": "flag: Guam" + , "category": "Flags" + , "aliases": [ + "guam" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇼" + , "description": "flag: Guinea-Bissau" + , "category": "Flags" + , "aliases": [ + "guinea_bissau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇬🇾" + , "description": "flag: Guyana" + , "category": "Flags" + , "aliases": [ + "guyana" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇰" + , "description": "flag: Hong Kong SAR China" + , "category": "Flags" + , "aliases": [ + "hong_kong" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇲" + , "description": "flag: Heard & McDonald Islands" + , "category": "Flags" + , "aliases": [ + "heard_mcdonald_islands" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇭🇳" + , "description": "flag: Honduras" + , "category": "Flags" + , "aliases": [ + "honduras" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇷" + , "description": "flag: Croatia" + , "category": "Flags" + , "aliases": [ + "croatia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇹" + , "description": "flag: Haiti" + , "category": "Flags" + , "aliases": [ + "haiti" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇭🇺" + , "description": "flag: Hungary" + , "category": "Flags" + , "aliases": [ + "hungary" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇨" + , "description": "flag: Canary Islands" + , "category": "Flags" + , "aliases": [ + "canary_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇩" + , "description": "flag: Indonesia" + , "category": "Flags" + , "aliases": [ + "indonesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇪" + , "description": "flag: Ireland" + , "category": "Flags" + , "aliases": [ + "ireland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇱" + , "description": "flag: Israel" + , "category": "Flags" + , "aliases": [ + "israel" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇲" + , "description": "flag: Isle of Man" + , "category": "Flags" + , "aliases": [ + "isle_of_man" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇳" + , "description": "flag: India" + , "category": "Flags" + , "aliases": [ + "india" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇴" + , "description": "flag: British Indian Ocean Territory" + , "category": "Flags" + , "aliases": [ + "british_indian_ocean_territory" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇮🇶" + , "description": "flag: Iraq" + , "category": "Flags" + , "aliases": [ + "iraq" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇷" + , "description": "flag: Iran" + , "category": "Flags" + , "aliases": [ + "iran" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇸" + , "description": "flag: Iceland" + , "category": "Flags" + , "aliases": [ + "iceland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇮🇹" + , "description": "flag: Italy" + , "category": "Flags" + , "aliases": [ + "it" + ] + , "tags": [ + "italy" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇯🇪" + , "description": "flag: Jersey" + , "category": "Flags" + , "aliases": [ + "jersey" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇯🇲" + , "description": "flag: Jamaica" + , "category": "Flags" + , "aliases": [ + "jamaica" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇯🇴" + , "description": "flag: Jordan" + , "category": "Flags" + , "aliases": [ + "jordan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇯🇵" + , "description": "flag: Japan" + , "category": "Flags" + , "aliases": [ + "jp" + ] + , "tags": [ + "japan" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇰🇪" + , "description": "flag: Kenya" + , "category": "Flags" + , "aliases": [ + "kenya" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇬" + , "description": "flag: Kyrgyzstan" + , "category": "Flags" + , "aliases": [ + "kyrgyzstan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇭" + , "description": "flag: Cambodia" + , "category": "Flags" + , "aliases": [ + "cambodia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇮" + , "description": "flag: Kiribati" + , "category": "Flags" + , "aliases": [ + "kiribati" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇲" + , "description": "flag: Comoros" + , "category": "Flags" + , "aliases": [ + "comoros" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇳" + , "description": "flag: St. Kitts & Nevis" + , "category": "Flags" + , "aliases": [ + "st_kitts_nevis" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇵" + , "description": "flag: North Korea" + , "category": "Flags" + , "aliases": [ + "north_korea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇷" + , "description": "flag: South Korea" + , "category": "Flags" + , "aliases": [ + "kr" + ] + , "tags": [ + "korea" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇰🇼" + , "description": "flag: Kuwait" + , "category": "Flags" + , "aliases": [ + "kuwait" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇾" + , "description": "flag: Cayman Islands" + , "category": "Flags" + , "aliases": [ + "cayman_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇰🇿" + , "description": "flag: Kazakhstan" + , "category": "Flags" + , "aliases": [ + "kazakhstan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇦" + , "description": "flag: Laos" + , "category": "Flags" + , "aliases": [ + "laos" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇧" + , "description": "flag: Lebanon" + , "category": "Flags" + , "aliases": [ + "lebanon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇨" + , "description": "flag: St. Lucia" + , "category": "Flags" + , "aliases": [ + "st_lucia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇮" + , "description": "flag: Liechtenstein" + , "category": "Flags" + , "aliases": [ + "liechtenstein" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇰" + , "description": "flag: Sri Lanka" + , "category": "Flags" + , "aliases": [ + "sri_lanka" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇷" + , "description": "flag: Liberia" + , "category": "Flags" + , "aliases": [ + "liberia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇸" + , "description": "flag: Lesotho" + , "category": "Flags" + , "aliases": [ + "lesotho" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇹" + , "description": "flag: Lithuania" + , "category": "Flags" + , "aliases": [ + "lithuania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇺" + , "description": "flag: Luxembourg" + , "category": "Flags" + , "aliases": [ + "luxembourg" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇻" + , "description": "flag: Latvia" + , "category": "Flags" + , "aliases": [ + "latvia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇱🇾" + , "description": "flag: Libya" + , "category": "Flags" + , "aliases": [ + "libya" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇦" + , "description": "flag: Morocco" + , "category": "Flags" + , "aliases": [ + "morocco" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇨" + , "description": "flag: Monaco" + , "category": "Flags" + , "aliases": [ + "monaco" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇩" + , "description": "flag: Moldova" + , "category": "Flags" + , "aliases": [ + "moldova" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇪" + , "description": "flag: Montenegro" + , "category": "Flags" + , "aliases": [ + "montenegro" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇫" + , "description": "flag: St. Martin" + , "category": "Flags" + , "aliases": [ + "st_martin" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇲🇬" + , "description": "flag: Madagascar" + , "category": "Flags" + , "aliases": [ + "madagascar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇭" + , "description": "flag: Marshall Islands" + , "category": "Flags" + , "aliases": [ + "marshall_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇰" + , "description": "flag: Macedonia" + , "category": "Flags" + , "aliases": [ + "macedonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇱" + , "description": "flag: Mali" + , "category": "Flags" + , "aliases": [ + "mali" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇲" + , "description": "flag: Myanmar (Burma)" + , "category": "Flags" + , "aliases": [ + "myanmar" + ] + , "tags": [ + "burma" + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇳" + , "description": "flag: Mongolia" + , "category": "Flags" + , "aliases": [ + "mongolia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇴" + , "description": "flag: Macao SAR China" + , "category": "Flags" + , "aliases": [ + "macau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇵" + , "description": "flag: Northern Mariana Islands" + , "category": "Flags" + , "aliases": [ + "northern_mariana_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇶" + , "description": "flag: Martinique" + , "category": "Flags" + , "aliases": [ + "martinique" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇷" + , "description": "flag: Mauritania" + , "category": "Flags" + , "aliases": [ + "mauritania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇸" + , "description": "flag: Montserrat" + , "category": "Flags" + , "aliases": [ + "montserrat" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇹" + , "description": "flag: Malta" + , "category": "Flags" + , "aliases": [ + "malta" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇺" + , "description": "flag: Mauritius" + , "category": "Flags" + , "aliases": [ + "mauritius" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇲🇻" + , "description": "flag: Maldives" + , "category": "Flags" + , "aliases": [ + "maldives" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇼" + , "description": "flag: Malawi" + , "category": "Flags" + , "aliases": [ + "malawi" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇽" + , "description": "flag: Mexico" + , "category": "Flags" + , "aliases": [ + "mexico" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇾" + , "description": "flag: Malaysia" + , "category": "Flags" + , "aliases": [ + "malaysia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇲🇿" + , "description": "flag: Mozambique" + , "category": "Flags" + , "aliases": [ + "mozambique" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇦" + , "description": "flag: Namibia" + , "category": "Flags" + , "aliases": [ + "namibia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇨" + , "description": "flag: New Caledonia" + , "category": "Flags" + , "aliases": [ + "new_caledonia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇪" + , "description": "flag: Niger" + , "category": "Flags" + , "aliases": [ + "niger" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇫" + , "description": "flag: Norfolk Island" + , "category": "Flags" + , "aliases": [ + "norfolk_island" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇳🇬" + , "description": "flag: Nigeria" + , "category": "Flags" + , "aliases": [ + "nigeria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇮" + , "description": "flag: Nicaragua" + , "category": "Flags" + , "aliases": [ + "nicaragua" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇱" + , "description": "flag: Netherlands" + , "category": "Flags" + , "aliases": [ + "netherlands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇴" + , "description": "flag: Norway" + , "category": "Flags" + , "aliases": [ + "norway" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇵" + , "description": "flag: Nepal" + , "category": "Flags" + , "aliases": [ + "nepal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇷" + , "description": "flag: Nauru" + , "category": "Flags" + , "aliases": [ + "nauru" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇳🇺" + , "description": "flag: Niue" + , "category": "Flags" + , "aliases": [ + "niue" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇳🇿" + , "description": "flag: New Zealand" + , "category": "Flags" + , "aliases": [ + "new_zealand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇴🇲" + , "description": "flag: Oman" + , "category": "Flags" + , "aliases": [ + "oman" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇦" + , "description": "flag: Panama" + , "category": "Flags" + , "aliases": [ + "panama" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇪" + , "description": "flag: Peru" + , "category": "Flags" + , "aliases": [ + "peru" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇫" + , "description": "flag: French Polynesia" + , "category": "Flags" + , "aliases": [ + "french_polynesia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇬" + , "description": "flag: Papua New Guinea" + , "category": "Flags" + , "aliases": [ + "papua_new_guinea" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇭" + , "description": "flag: Philippines" + , "category": "Flags" + , "aliases": [ + "philippines" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇰" + , "description": "flag: Pakistan" + , "category": "Flags" + , "aliases": [ + "pakistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇱" + , "description": "flag: Poland" + , "category": "Flags" + , "aliases": [ + "poland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇲" + , "description": "flag: St. Pierre & Miquelon" + , "category": "Flags" + , "aliases": [ + "st_pierre_miquelon" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇳" + , "description": "flag: Pitcairn Islands" + , "category": "Flags" + , "aliases": [ + "pitcairn_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇵🇷" + , "description": "flag: Puerto Rico" + , "category": "Flags" + , "aliases": [ + "puerto_rico" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇸" + , "description": "flag: Palestinian Territories" + , "category": "Flags" + , "aliases": [ + "palestinian_territories" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇹" + , "description": "flag: Portugal" + , "category": "Flags" + , "aliases": [ + "portugal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇼" + , "description": "flag: Palau" + , "category": "Flags" + , "aliases": [ + "palau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇵🇾" + , "description": "flag: Paraguay" + , "category": "Flags" + , "aliases": [ + "paraguay" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇶🇦" + , "description": "flag: Qatar" + , "category": "Flags" + , "aliases": [ + "qatar" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇪" + , "description": "flag: Réunion" + , "category": "Flags" + , "aliases": [ + "reunion" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇷🇴" + , "description": "flag: Romania" + , "category": "Flags" + , "aliases": [ + "romania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇸" + , "description": "flag: Serbia" + , "category": "Flags" + , "aliases": [ + "serbia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇷🇺" + , "description": "flag: Russia" + , "category": "Flags" + , "aliases": [ + "ru" + ] + , "tags": [ + "russia" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇷🇼" + , "description": "flag: Rwanda" + , "category": "Flags" + , "aliases": [ + "rwanda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇦" + , "description": "flag: Saudi Arabia" + , "category": "Flags" + , "aliases": [ + "saudi_arabia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇧" + , "description": "flag: Solomon Islands" + , "category": "Flags" + , "aliases": [ + "solomon_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇨" + , "description": "flag: Seychelles" + , "category": "Flags" + , "aliases": [ + "seychelles" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇩" + , "description": "flag: Sudan" + , "category": "Flags" + , "aliases": [ + "sudan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇪" + , "description": "flag: Sweden" + , "category": "Flags" + , "aliases": [ + "sweden" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇬" + , "description": "flag: Singapore" + , "category": "Flags" + , "aliases": [ + "singapore" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇭" + , "description": "flag: St. Helena" + , "category": "Flags" + , "aliases": [ + "st_helena" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇸🇮" + , "description": "flag: Slovenia" + , "category": "Flags" + , "aliases": [ + "slovenia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇯" + , "description": "flag: Svalbard & Jan Mayen" + , "category": "Flags" + , "aliases": [ + "svalbard_jan_mayen" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇸🇰" + , "description": "flag: Slovakia" + , "category": "Flags" + , "aliases": [ + "slovakia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇱" + , "description": "flag: Sierra Leone" + , "category": "Flags" + , "aliases": [ + "sierra_leone" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇲" + , "description": "flag: San Marino" + , "category": "Flags" + , "aliases": [ + "san_marino" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇳" + , "description": "flag: Senegal" + , "category": "Flags" + , "aliases": [ + "senegal" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇴" + , "description": "flag: Somalia" + , "category": "Flags" + , "aliases": [ + "somalia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇷" + , "description": "flag: Suriname" + , "category": "Flags" + , "aliases": [ + "suriname" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇸" + , "description": "flag: South Sudan" + , "category": "Flags" + , "aliases": [ + "south_sudan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇹" + , "description": "flag: São Tomé & Príncipe" + , "category": "Flags" + , "aliases": [ + "sao_tome_principe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇻" + , "description": "flag: El Salvador" + , "category": "Flags" + , "aliases": [ + "el_salvador" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇽" + , "description": "flag: Sint Maarten" + , "category": "Flags" + , "aliases": [ + "sint_maarten" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇾" + , "description": "flag: Syria" + , "category": "Flags" + , "aliases": [ + "syria" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇸🇿" + , "description": "flag: Eswatini" + , "category": "Flags" + , "aliases": [ + "swaziland" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇦" + , "description": "flag: Tristan da Cunha" + , "category": "Flags" + , "aliases": [ + "tristan_da_cunha" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇹🇨" + , "description": "flag: Turks & Caicos Islands" + , "category": "Flags" + , "aliases": [ + "turks_caicos_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇩" + , "description": "flag: Chad" + , "category": "Flags" + , "aliases": [ + "chad" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇫" + , "description": "flag: French Southern Territories" + , "category": "Flags" + , "aliases": [ + "french_southern_territories" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇬" + , "description": "flag: Togo" + , "category": "Flags" + , "aliases": [ + "togo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇭" + , "description": "flag: Thailand" + , "category": "Flags" + , "aliases": [ + "thailand" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇯" + , "description": "flag: Tajikistan" + , "category": "Flags" + , "aliases": [ + "tajikistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇰" + , "description": "flag: Tokelau" + , "category": "Flags" + , "aliases": [ + "tokelau" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇱" + , "description": "flag: Timor-Leste" + , "category": "Flags" + , "aliases": [ + "timor_leste" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇲" + , "description": "flag: Turkmenistan" + , "category": "Flags" + , "aliases": [ + "turkmenistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇳" + , "description": "flag: Tunisia" + , "category": "Flags" + , "aliases": [ + "tunisia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇴" + , "description": "flag: Tonga" + , "category": "Flags" + , "aliases": [ + "tonga" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇷" + , "description": "flag: Turkey" + , "category": "Flags" + , "aliases": [ + "tr" + ] + , "tags": [ + "turkey" + ] + , "unicode_version": "8.0" + , "ios_version": "9.1" + } +, { + "emoji": "🇹🇹" + , "description": "flag: Trinidad & Tobago" + , "category": "Flags" + , "aliases": [ + "trinidad_tobago" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇻" + , "description": "flag: Tuvalu" + , "category": "Flags" + , "aliases": [ + "tuvalu" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇹🇼" + , "description": "flag: Taiwan" + , "category": "Flags" + , "aliases": [ + "taiwan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇹🇿" + , "description": "flag: Tanzania" + , "category": "Flags" + , "aliases": [ + "tanzania" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇦" + , "description": "flag: Ukraine" + , "category": "Flags" + , "aliases": [ + "ukraine" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇬" + , "description": "flag: Uganda" + , "category": "Flags" + , "aliases": [ + "uganda" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇲" + , "description": "flag: U.S. Outlying Islands" + , "category": "Flags" + , "aliases": [ + "us_outlying_islands" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇺🇳" + , "description": "flag: United Nations" + , "category": "Flags" + , "aliases": [ + "united_nations" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🇺🇸" + , "description": "flag: United States" + , "category": "Flags" + , "aliases": [ + "us" + ] + , "tags": [ + "flag" + , "united" + , "america" + ] + , "unicode_version": "6.0" + , "ios_version": "6.0" + } +, { + "emoji": "🇺🇾" + , "description": "flag: Uruguay" + , "category": "Flags" + , "aliases": [ + "uruguay" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇺🇿" + , "description": "flag: Uzbekistan" + , "category": "Flags" + , "aliases": [ + "uzbekistan" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇦" + , "description": "flag: Vatican City" + , "category": "Flags" + , "aliases": [ + "vatican_city" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇻🇨" + , "description": "flag: St. Vincent & Grenadines" + , "category": "Flags" + , "aliases": [ + "st_vincent_grenadines" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇪" + , "description": "flag: Venezuela" + , "category": "Flags" + , "aliases": [ + "venezuela" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇬" + , "description": "flag: British Virgin Islands" + , "category": "Flags" + , "aliases": [ + "british_virgin_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇮" + , "description": "flag: U.S. Virgin Islands" + , "category": "Flags" + , "aliases": [ + "us_virgin_islands" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇳" + , "description": "flag: Vietnam" + , "category": "Flags" + , "aliases": [ + "vietnam" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇻🇺" + , "description": "flag: Vanuatu" + , "category": "Flags" + , "aliases": [ + "vanuatu" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇼🇫" + , "description": "flag: Wallis & Futuna" + , "category": "Flags" + , "aliases": [ + "wallis_futuna" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇼🇸" + , "description": "flag: Samoa" + , "category": "Flags" + , "aliases": [ + "samoa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇽🇰" + , "description": "flag: Kosovo" + , "category": "Flags" + , "aliases": [ + "kosovo" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇾🇪" + , "description": "flag: Yemen" + , "category": "Flags" + , "aliases": [ + "yemen" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇾🇹" + , "description": "flag: Mayotte" + , "category": "Flags" + , "aliases": [ + "mayotte" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "9.0" + } +, { + "emoji": "🇿🇦" + , "description": "flag: South Africa" + , "category": "Flags" + , "aliases": [ + "south_africa" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇿🇲" + , "description": "flag: Zambia" + , "category": "Flags" + , "aliases": [ + "zambia" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🇿🇼" + , "description": "flag: Zimbabwe" + , "category": "Flags" + , "aliases": [ + "zimbabwe" + ] + , "tags": [ + ] + , "unicode_version": "6.0" + , "ios_version": "8.3" + } +, { + "emoji": "🏴󠁧󠁢󠁥󠁮󠁧󠁿" + , "description": "flag: England" + , "category": "Flags" + , "aliases": [ + "england" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏴󠁧󠁢󠁳󠁣󠁴󠁿" + , "description": "flag: Scotland" + , "category": "Flags" + , "aliases": [ + "scotland" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +, { + "emoji": "🏴󠁧󠁢󠁷󠁬󠁳󠁿" + , "description": "flag: Wales" + , "category": "Flags" + , "aliases": [ + "wales" + ] + , "tags": [ + ] + , "unicode_version": "11.0" + , "ios_version": "12.1" + } +] diff --git a/plugins/emoji/update_emoji.pl b/plugins/emoji/update_emoji.pl deleted file mode 100644 index 8034052b7..000000000 --- a/plugins/emoji/update_emoji.pl +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/perl -w -# -# update_emoji.pl -# -# This script generates the emoji.plugin.zsh emoji definitions from the Unicode -# character data for the emoji characters. -# -# The data file can be found at https://unicode.org/Public/emoji/latest/emoji-data.txt -# as referenced in Unicode TR51 (https://www.unicode.org/reports/tr51/index.html). -# -# This is known to work with the data file from version 1.0. It may not work with later -# versions if the format changes. In particular, this reads line comments to get the -# emoji character name and unicode version. -# -# Country names have punctuation and other non-letter characters removed from their name, -# to avoid possible complications with having to escape the strings when using them as -# array subscripts. The definition file seems to use some combining characters like accents -# that get stripped during this process. - -use strict; -use warnings; -use 5.010; -use autodie; - -use Path::Class; -use File::Copy; - -# Parse definitions out of the data file and convert -sub process_emoji_data_file { - my ( $infile, $outfilename ) = @_; - my $file = file($infile); - my $outfile = file($outfilename); - my $outfilebase = $outfile->basename(); - my $tempfilename = "$outfilename.tmp"; - my $tempfile = file($tempfilename); - my $outfh = $tempfile->openw(); - $outfh->print(" -# $outfilebase - Emoji character definitions for oh-my-zsh emoji plugin -# -# This file is auto-generated by update_emoji.pl. Do not edit it manually. -# -# This contains the definition for: -# \$emoji - which maps character names to Unicode characters -# \$emoji_flags - maps country names to Unicode flag characters using region indicators - -# Main emoji -typeset -gAH emoji -# National flags -typeset -gAH emoji_flags -# Combining modifiers -typeset -gAH emoji_mod - -"); - - my $fh = $file->openr(); - my $line_num = 0; - while ( my $line = $fh->getline() ) { - $line_num++; - $_ = $line; - # Skip all-comment lines (from the header) and blank lines - # (But don't strip comments on normal lines; we need to parse those for - # the emoji names.) - next if /^\s*#/ or /^\s*$/; - - if (/^(\S.*?\S)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w.*?)\s*#\s*V(\S+)\s\(.*?\)\s*(\w.*\S)\s*$/) { - my ($code, $style, $level, $modifier_status, $sources, $version, $keycap_name) - = ($1, $2, $3, $4, $5, $6, $7); - #print "code=$code style=$style level=$level modifier_status=$modifier_status sources=$sources version=$version name=$keycap_name\n"; - my @code_points = split /\s+/, $code; - my @sources = split /\s+/, $sources; - - my $flag_country = ""; - if ( $keycap_name =~ /^flag for (\S.*?)\s*$/) { - $flag_country = $1; - } - - my $zsh_code = join '', map { "\\U$_" } @code_points; - # Convert keycap names to valid associative array names that do not require any - # quoting. Works fine for most stuff, but is clumsy for flags. - my $omz_name = lc($keycap_name); - $omz_name =~ s/[^A-Za-z0-9]/_/g; - my $zsh_flag_country = $flag_country; - $zsh_flag_country =~ s/[^\p{Letter}]/_/g; - if ($flag_country) { - $outfh->print("emoji_flags[$zsh_flag_country]=\$'$zsh_code'\n"); - } else { - $outfh->print("emoji[$omz_name]=\$'$zsh_code'\n"); - } - # Modifiers are included in both the main set and their separate map, - # because they have a standalone representation as a color swatch. - if ( $modifier_status eq "modifier" ) { - $outfh->print("emoji_mod[$omz_name]=\$'$zsh_code'\n"); - } - } else { - die "Failed parsing line $line_num: '$_'"; - } - } - $fh->close(); - $outfh->print("\n"); - $outfh->close(); - - move($tempfilename, $outfilename) - or die "Failed moving temp file to $outfilename: $!"; -} - -my $datafile = "emoji-data.txt"; -my $zsh_def_file = "emoji-char-definitions.zsh"; -process_emoji_data_file($datafile, $zsh_def_file); - -print "Updated definition file $zsh_def_file\n"; - - - diff --git a/plugins/emoji/update_emoji.py b/plugins/emoji/update_emoji.py new file mode 100644 index 000000000..eb945b9ef --- /dev/null +++ b/plugins/emoji/update_emoji.py @@ -0,0 +1,213 @@ +""" +Update Emoji.py +Refeshes OMZ emoji database based on the latest Unicode spec +""" +import re +import json + +spec = open("emoji-data.txt", "r") + +# Regexes +# regex_emoji will return, respectively: +# the code points, its type (status), the actual emoji, and its official name +regex_emoji = r"^([\w ].*?\S)\s*;\s*([\w-]+)\s*#\s*(.*?)\s(\S.*).*$" +# regex_group returns the group of subgroup that a line opens +regex_group = r"^#\s*(group|subgroup):\s*(.*)$" + +headers = """ +# emoji-char-definitions.zsh - Emoji definitions for oh-my-zsh emoji plugin +# +# This file is auto-generated by update_emoji.py. Do not edit it manually. +# +# This contains the definition for: +# $emoji - which maps character names to Unicode characters +# $emoji_flags - maps country names to Unicode flag characters using region +# indicators +# $emoji_mod - maps modifier components to Unicode characters +# $emoji_groups - a single associative array to avoid cluttering up the +# global namespace, and to allow adding additional group +# definitions at run time. The keys are the group names, and +# the values are whitespace-separated lists of emoji +# character names. + +# Main emoji +typeset -gAH emoji +# National flags +typeset -gAH emoji_flags +# Combining modifiers +typeset -gAH emoji_mod +# Emoji groups +typeset -gAH emoji_groups +""" + +####### +# Adding country codes +####### +# This is the only part of this script that relies on an external library +# (country_converter), and is hence commented out by default. +# You can uncomment it to have country codes added as aliases for flag +# emojis. (By default, when you install this extension, country codes are +# included as aliases, but not if you re-run this script without uncommenting.) +# Warning: country_converter is very verbose, and will print warnings all over +# your terminal. + +# import country_converter as coco # pylint: disable=wrong-import-position +# cc = coco.CountryConverter() + +# def country_iso(_all_names, _omz_name): +# """ Using the external library country_converter, +# this funciton can detect the ISO2 and ISO3 codes +# of the country. It takes as argument the array +# with all the names of the emoji, and returns that array.""" +# omz_no_underscore = re.sub(r'_', r' ', _omz_name) +# iso2 = cc.convert(names=[omz_no_underscore], to='ISO2') +# if iso2 != 'not found': +# _all_names.append(iso2) +# iso3 = cc.convert(names=[omz_no_underscore], to='ISO3') +# _all_names.append(iso3) +# return _all_names + + +####### +# Helper functions +####### + +def code_to_omz(_code_points): + """ Returns a ZSH-compatible Unicode string from the code point(s) """ + return r'\U' + r'\U'.join(_code_points.split(' ')) + +def name_to_omz(_name, _group, _subgroup, _status): + """ Returns a reasonable snake_case name for the emoji. """ + def snake_case(_string): + """ Does the regex work of snake_case """ + remove_dots = re.sub(r'\.\(\)', r'', _string) + replace_ands = re.sub(r'\&', r'and', remove_dots) + remove_whitespace = re.sub(r'[^\#\*\w]', r'_', replace_ands) + return re.sub(r'__', r'_', remove_whitespace) + + shortname = "" + split_at_colon = lambda s: s.split(": ") + # Special treatment by group and subgroup + # If the emoji is a flag, we strip "flag" from its name + if _group == "Flags" and len(split_at_colon(_name)) > 1: + shortname = snake_case(split_at_colon(_name)[1]) + else: + shortname = snake_case(_name) + # Special treatment by status + # Enables us to have every emoji combination, + # even the one that are not officially sanctionned + # and are implemeted by, say, only one vendor + if _status == "unqualified": + shortname += "_unqualified" + elif _status == "minimally-qualified": + shortname += "_minimally" + return shortname + +def increment_name(_shortname): + """ Increment the short name by 1. If you get, say, + 'woman_detective_unqualified', it returns + 'woman_detective_unqualified_1', and then + 'woman_detective_unqualified_2', etc. """ + last_char = _shortname[-1] + if last_char.isdigit(): + num = int(last_char) + return _shortname[:-1] + str(num + 1) + return _shortname + "_1" + +######## +# Going through every line +######## + +group, subgroup, short_name_buffer = "", "", "" +emoji_database = [] +for line in spec: + # First, test if this line opens a group or subgroup + group_match = re.findall(regex_group, line) + if group_match != []: + gr_or_sub, name = group_match[0] + if gr_or_sub == "group": + group = name + elif gr_or_sub == "subgroup": + subgroup = name + continue # Moving on... + # Second, test if this line references one emoji + emoji_match = re.findall(regex_emoji, line) + if emoji_match != []: + code_points, status, emoji, name = emoji_match[0] + omz_codes = code_to_omz(code_points) + omz_name = name_to_omz(name, group, subgroup, status) + # If this emoji has the same shortname as the preceding one + if omz_name in short_name_buffer: + omz_name = increment_name(short_name_buffer) + short_name_buffer = omz_name + emoji_database.append( + [omz_codes, status, emoji, omz_name, group, subgroup]) +spec.close() + +######## +# Write to emoji-char-definitions.zsh +######## + +# Aliases for emojis are retrieved through the DB of Gemoji +# Retrieved on Aug 9 2019 from the following URL: +# https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json + +gemoji_db = open("gemoji_db.json") +j = json.load(gemoji_db) +aliases_map = {entry['emoji']: entry['aliases'] for entry in j} +all_omz_names = [emoji_data[3] for emoji_data in emoji_database] + +# Let's begin writing to this file +output = open("emoji-char-definitions.zsh", "w") +output.write(headers) + +emoji_groups = {"fruits": "\n", "vehicles": "\n", "hands": "\n", + "people": "\n", "animals": "\n", "faces": "\n", + "flags": "\n"} + +# First, write every emoji down +for _omz_codes, _status, _emoji, _omz_name, _group, _subgroup in emoji_database: + + # One emoji can be mapped to multiple names (aliases or country codes) + names_for_this_emoji = [_omz_name] + + # Variable that indicates in which map the emoji will be located + emoji_map = "emoji" + if _status == "component": + emoji_map = "emoji_mod" + if _group == "Flags": + emoji_map = "emoji_flags" + # Adding country codes (Optional, see above) + # names_for_this_emoji = country_iso(names_for_this_emoji, _omz_name) + + # Check if there is an alias available in the Gemoji DB + if _emoji in aliases_map.keys(): + for alias in aliases_map[_emoji]: + if alias not in all_omz_names: + names_for_this_emoji.append(alias) + + # And now we write to the definitions file + for one_name in names_for_this_emoji: + output.write(f"{emoji_map}[{one_name}]=$'{_omz_codes}'\n") + + # Storing the emoji in defined subgroups for the next step + if _status == "fully-qualified": + if _subgroup == "food-fruit": + emoji_groups["fruits"] += f" {_omz_name}\n" + elif "transport-" in _subgroup: + emoji_groups["vehicles"] += f" {_omz_name}\n" + elif "hand-" in _subgroup: + emoji_groups["hands"] += f" {_omz_name}\n" + elif "person-" in _subgroup or _subgroup == "family": + emoji_groups["people"] += f" {_omz_name}\n" + elif "animal-" in _subgroup: + emoji_groups["animals"] += f" {_omz_name}\n" + elif "face-" in _subgroup: + emoji_groups["faces"] += f" {_omz_name}\n" + elif _group == "Flags": + emoji_groups["flags"] += f" {_omz_name}\n" + +# Second, write the subgroups to the end of the file +for name, string in emoji_groups.items(): + output.write(f'\nemoji_groups[{name}]="{string}"\n') +output.close() diff --git a/plugins/emotty/emotty.plugin.zsh b/plugins/emotty/emotty.plugin.zsh index 4511275d6..661169a8b 100644 --- a/plugins/emotty/emotty.plugin.zsh +++ b/plugins/emotty/emotty.plugin.zsh @@ -10,6 +10,11 @@ # % export emotty_set=nature # ------------------------------------------------------------------------------ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + typeset -gAH _emotty_sets local _emotty_plugin_dir="${0:h}" source "$_emotty_plugin_dir/emotty_stellar_set.zsh" diff --git a/plugins/fastfile/README.md b/plugins/fastfile/README.md index 37f5b2f53..32f619ffd 100644 --- a/plugins/fastfile/README.md +++ b/plugins/fastfile/README.md @@ -4,6 +4,7 @@ This plugin adds a way to reference certain files or folders used frequently usi a global alias or shortcut. To use it, add `fastfile` to the plugins array in your zshrc file: + ```zsh plugins=(... fastfile) ``` @@ -13,36 +14,38 @@ plugins=(... fastfile) Example: you access folder `/code/project/backend/database` very frequently. First, generate a shortcut with the name `pjdb`: + ```zsh $ fastfile pjdb /code/project/backend/database ``` Next time you want to access it, use `§pjdb`. For example: + ```zsh $ cd §pjdb $ subl §pjdb ``` + where § is the fastfile prefix (see [below](#options) for how to change). **Note:** shortcuts with spaces in the name are assigned a global alias where the spaces have been substituted with underscores (`_`). For example: a shortcut named `"hello world"` corresponds with `§hello_world`. - ## Functions -- `fastfile `: generate a shortcut. +- `fastfile [path/to/file/or/folder]`: generate a shortcut. + If the second argument is not provided, the current directory is used. - `fastfile_print `: prints a shortcut, with the format ` -> `. - `fastfile_ls`: lists all shortcuts. -- `fastfile_rm `: remove a shortcut. +- `fastfile_rm `: remove a shortcut. - `fastfile_sync`: generates the global aliases for the shortcuts. - ### Internal functions - `fastfile_resolv `: resolves the location of the shortcut @@ -51,7 +54,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. - `fastfile_get `: get the real path of the shortcut. - ## Aliases | Alias | Function | @@ -62,7 +64,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. | ffls | `fastfile_ls` | | ffsync | `fastfile_sync` | - ## Options These are options you can set to change certain parts of the plugin. To change diff --git a/plugins/fastfile/fastfile.plugin.zsh b/plugins/fastfile/fastfile.plugin.zsh index ccbbce3b2..896fed5f7 100644 --- a/plugins/fastfile/fastfile.plugin.zsh +++ b/plugins/fastfile/fastfile.plugin.zsh @@ -18,7 +18,7 @@ default fastfile_var_prefix "§" # 1. name - The name of the shortcut (default: name of the file) # 2. file - The file or directory to make the shortcut for # STDOUT: -# => fastfle_print +# => fastfile_print # function fastfile() { test "$2" || 2="." @@ -44,7 +44,7 @@ function fastfile() { # The path to the shortcut file # function fastfile_resolv() { - echo "${fastfile_dir}${1}" + echo "${fastfile_dir}/${1}" } # @@ -75,14 +75,14 @@ function fastfile_print() { # List all shortcuts # # STDOUT: -# (=> fastfle_print) for each shortcut +# (=> fastfile_print) for each shortcut # function fastfile_ls() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") - # Special format for colums + # Special format for columns echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")" done | column -t -s "|" } @@ -93,20 +93,21 @@ function fastfile_ls() { # Arguments: # 1. name - The name of the shortcut (default: name of the file) # STDOUT: -# => fastfle_print +# => fastfile_print # function fastfile_rm() { fastfile_print "$1" rm "$(fastfile_resolv "$1")" + unalias "${fastfile_var_prefix}${1}" } # # Generate the aliases for the shortcuts # function fastfile_sync() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'" done diff --git a/plugins/fd/README.md b/plugins/fd/README.md index aabd624b8..cf9f7815d 100644 --- a/plugins/fd/README.md +++ b/plugins/fd/README.md @@ -8,6 +8,6 @@ To use it, add `fd` to the plugins array in your zshrc file: plugins=(... fd) ``` -Completion is taken from the fd release [`7.3.0`](https://github.com/sharkdp/fd/releases/tag/v7.3.0). +Completion is taken from the fd release [`8.2.1`](https://github.com/sharkdp/fd/releases/tag/v8.2.1). -Updated on Febrary 13th, 2019. +Updated on April 1st, 2021. diff --git a/plugins/fd/_fd b/plugins/fd/_fd index 7a4c38753..f5d9e01d2 100644 --- a/plugins/fd/_fd +++ b/plugins/fd/_fd @@ -1,83 +1,268 @@ #compdef fd fdfind +## +# zsh completion function for fd +# +# Based on ripgrep completion function. +# Originally based on code from the zsh-users project — see copyright notice +# below. + autoload -U is-at-least _fd() { - typeset -A opt_args - typeset -a _arguments_options - local ret=1 + local curcontext="$curcontext" no='!' ret=1 + local -a context line state state_descr _arguments_options fd_types fd_args + local -A opt_args - if is-at-least 5.2; then - _arguments_options=(-s -S -C) - else - _arguments_options=(-s -C) - fi + if is-at-least 5.2; then + _arguments_options=( -s -S ) + else + _arguments_options=( -s ) + fi - local context curcontext="$curcontext" state line - _arguments "${_arguments_options[@]}" \ -'-d+[Set maximum search depth (default: none)]' \ -'--max-depth=[Set maximum search depth (default: none)]' \ -'--maxdepth=[See --max-depth]' \ -'*-t+[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*--type=[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*-e+[Filter by file extension]' \ -'*--extension=[Filter by file extension]' \ -'-x+[Execute a command for each search result]' \ -'--exec=[Execute a command for each search result]' \ -'(-x --exec)-X+[Execute a command with all search results at once]' \ -'(-x --exec)--exec-batch=[Execute a command with all search results at once]' \ -'*-E+[Exclude entries that match the given glob pattern]' \ -'*--exclude=[Exclude entries that match the given glob pattern]' \ -'*--ignore-file=[Add a custom ignore-file in .gitignore format]' \ -'-c+[When to use colors: never, *auto*, always]: :(never auto always)' \ -'--color=[When to use colors: never, *auto*, always]: :(never auto always)' \ -'-j+[Set number of threads to use for searching & executing]' \ -'--threads=[Set number of threads to use for searching & executing]' \ -'*-S+[Limit results based on the size of files.]' \ -'*--size=[Limit results based on the size of files.]' \ -'--max-buffer-time=[the time (in ms) to buffer, before streaming to the console]' \ -'--changed-within=[Filter by file modification time (newer than)]' \ -'--changed-before=[Filter by file modification time (older than)]' \ -'*--search-path=[(hidden)]' \ -'-H[Search hidden files and directories]' \ -'--hidden[Search hidden files and directories]' \ -'-I[Do not respect .(git|fd)ignore files]' \ -'--no-ignore[Do not respect .(git|fd)ignore files]' \ -'--no-ignore-vcs[Do not respect .gitignore files]' \ -'*-u[Alias for no-ignore and/or hidden]' \ -'-s[Case-sensitive search (default: smart case)]' \ -'--case-sensitive[Case-sensitive search (default: smart case)]' \ -'-i[Case-insensitive search (default: smart case)]' \ -'--ignore-case[Case-insensitive search (default: smart case)]' \ -'-F[Treat the pattern as a literal string]' \ -'--fixed-strings[Treat the pattern as a literal string]' \ -'-a[Show absolute instead of relative paths]' \ -'--absolute-path[Show absolute instead of relative paths]' \ -'-L[Follow symbolic links]' \ -'--follow[Follow symbolic links]' \ -'-p[Search full path (default: file-/dirname only)]' \ -'--full-path[Search full path (default: file-/dirname only)]' \ -'-0[Separate results by the null character]' \ -'--print0[Separate results by the null character]' \ -'--show-errors[Enable display of filesystem errors]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'::pattern -- the search pattern, a regular expression (optional):_files' \ -'::path -- the root directory for the filesystem search (optional):_files' \ -&& ret=0 + fd_types=( + {f,file}'\:"regular files"' + {d,directory}'\:"directories"' + {l,symlink}'\:"symbolic links"' + {e,empty}'\:"empty files or directories"' + {x,executable}'\:"executable (files)"' + {s,socket}'\:"sockets"' + {p,pipe}'\:"named pipes (FIFOs)"' + ) -} + # Do not complete rare options unless either the current prefix + # matches one of those options or the user has the `complete-all` + # style set. Note that this prefix check has to be updated manually to account + # for all of the potential negation options listed below! + if + # (--[bpsu]* => match all options marked with '$no') + [[ $PREFIX$SUFFIX == --[bopsu]* ]] || + zstyle -t ":complete:$curcontext:*" complete-all + then + no= + fi -(( $+functions[_fd_commands] )) || -_fd_commands() { - local commands; commands=( + # We make heavy use of argument groups here to prevent the option specs from + # growing unwieldy. These aren't supported in zsh <5.4, though, so we'll strip + # them out below if necessary. This makes the exclusions inaccurate on those + # older versions, but oh well — it's not that big a deal + fd_args=( + + '(hidden)' # hidden files + {-H,--hidden}'[search hidden files/directories]' - ) - _describe -t commands 'fd commands' commands "$@" + + '(no-ignore-full)' # all ignore files + '(no-ignore-partial)'{-I,--no-ignore}"[don't respect .(git|fd)ignore and global ignore files]" + $no'(no-ignore-partial)*'{-u,--unrestricted}'[alias for --no-ignore, when repeated also alias for --hidden]' + + + no-ignore-partial # some ignore files + "(no-ignore-full --no-ignore-vcs)--no-ignore-vcs[don't respect .gitignore files]" + "!(no-ignore-full --no-global-ignore-file)--no-global-ignore-file[don't respect the global ignore file]" + + + '(case)' # case-sensitivity + {-s,--case-sensitive}'[perform a case-sensitive search]' + {-i,--ignore-case}'[perform a case-insensitive search]' + + + '(regex-pattern)' # regex-based search pattern + '(no-regex-pattern)--regex[perform a regex-based search (default)]' + + + '(no-regex-pattern)' # non-regex-based search pattern + {-g,--glob}'[perform a glob-based search]' + {-F,--fixed-strings}'[treat pattern as literal string instead of a regex]' + + + '(match-full)' # match against full path + {-p,--full-path}'[match the pattern against the full path instead of the basename]' + + + '(follow)' # follow symlinks + {-L,--follow}'[follow symbolic links to directories]' + + + '(abs-path)' # show absolute paths + '(long-listing)'{-a,--absolute-path}'[show absolute paths instead of relative paths]' + + + '(null-sep)' # use null separator for output + '(long-listing)'{-0,--print0}'[separate search results by the null character]' + + + '(long-listing)' # long-listing output + '(abs-path null-sep max-results exec-cmds)'{-l,--list-details}'[use a long listing format with file metadata]' + + + '(max-results)' # max number of results + '(long-listing exec-cmds)--max-results=[limit number of search results to given count and quit]:count' + '(long-listing exec-cmds)-1[limit to a single search result and quit]' + + + '(fs-errors)' # file-system errors + $no'--show-errors[enable the display of filesystem errors]' + + + '(fs-traversal)' # file-system traversal + $no"--one-file-system[don't descend into directories on other file systems]" + '!--mount' + '!--xdev' + + + dir-depth # directory depth + '(--exact-depth -d --max-depth)'{-d+,--max-depth=}'[set max directory depth to descend when searching]:depth' + '!(--exact-depth -d --max-depth)--maxdepth:depth' + '(--exact-depth --min-depth)--min-depth=[set directory depth to descend before start searching]:depth' + '(--exact-depth -d --max-depth --maxdepth --min-depth)--exact-depth=[only search at the exact given directory depth]:depth' + + + prune # pruning + "--prune[don't traverse into matching directories]" + + + filter-misc # filter search + '*'{-t+,--type=}"[filter search by type]:type:(($fd_types))" + '*'{-e+,--extension=}'[filter search by file extension]:extension' + '*'{-E+,--exclude=}'[exclude files/directories that match the given glob pattern]:glob pattern' + '*'{-S+,--size=}'[limit search by file size]:size limit:->size' + '(-o --owner)'{-o+,--owner=}'[filter by owning user and/or group]:owner and/or group:->owner' + + + ignore-file # extra ignore files + '*--ignore-file=[add a custom, low-precedence ignore-file with .gitignore format]: :_files' + + + '(filter-mtime-newer)' # filter by files modified after than + '--changed-within=[limit search to files/directories modified within the given date/duration]:date or duration' + '!--change-newer-than=:date/duration' + '!--newer=:date/duration' + + + '(filter-mtime-older)' # filter by files modified before than + '--changed-before=[limit search to files/directories modified before the given date/duration]:date or duration' + '!--change-older-than=:date/duration' + '!--older=:date/duration' + + + '(color)' # colorize output + {-c+,--color=}'[declare when to colorize search results]:when to colorize:(( + auto\:"show colors if the output goes to an interactive console (default)" + never\:"do not use colorized output" + always\:"always use colorized output" + ))' + + + '(threads)' + {-j+,--threads=}'[set the number of threads for searching and executing]:number of threads' + + + '(exec-cmds)' # execute command + '(long-listing max-results)'{-x+,--exec=}'[execute command for each search result]:command: _command_names -e:*\;::program arguments: _normal' + '(long-listing max-results)'{-X+,--exec-batch=}'[execute command for all search results at once]:command: _command_names -e:*\;::program arguments: _normal' + + + other + '!(--max-buffer-time)--max-buffer-time=[set amount of time to buffer before showing output]:time (ms)' + + + '(about)' # about flags + '(: * -)'{-h,--help}'[display help message]' + '(: * -)'{-v,--version}'[display version information]' + + + path-sep # set path separator for output + $no'(--path-separator)--path-separator=[set the path separator to use when printing file paths]:path separator' + + + search-path + $no'(--base-directory)--base-directory=[change the current working directory to the given path]:directory:_files -/' + $no'(*)*--search-path=[set search path (instead of positional arguments)]:directory:_files -/' + + + args # positional arguments + '1: :_guard "^-*" pattern' + '(--search-path)*:directory:_files -/' + ) + + # Strip out argument groups where unsupported (see above) + is-at-least 5.4 || + fd_args=( ${(@)args:#(#i)(+|[a-z0-9][a-z0-9_-]#|\([a-z0-9][a-z0-9_-]#\))} ) + + _arguments $_arguments_options : $fd_args && ret=0 + + case ${state} in + owner) + compset -P '(\\|)\!' + if compset -P '*:'; then + _groups && ret=0 + else + if + compset -S ':*' || + # Do not add the colon suffix when completing "!user + # (with a starting double-quote) otherwise pressing tab again + # after the inserted colon "!user: will complete history modifiers + [[ $IPREFIX == (\\|\!)* && ($QIPREFIX == \"* && -z $QISUFFIX) ]] + then + _users && ret=0 + else + local q + # Since quotes are needed when using the negation prefix !, + # automatically remove the colon suffix also when closing the quote + if [[ $QIPREFIX == [\'\"]* ]]; then + q=${QIPREFIX:0:1} + fi + _users -r ": \t\n\-$q" -S : && ret=0 + fi + fi + ;; + + size) + if compset -P '[-+][0-9]##'; then + local -a suff=( + 'B:bytes' + 'K:kilobytes (10^3 = 1000 bytes)' + 'M:megabytes (10^6 = 1000^2 bytes)' + 'G:gigabytes (10^9 = 1000^3 bytes)' + 'T:terabytes (10^12 = 1000^4 bytes)' + 'Ki:kibibytes ( 2^10 = 1024 bytes)' + 'Mi:mebibytes ( 2^20 = 1024^2 bytes)' + 'Gi:gigibytes ( 2^30 = 1024^3 bytes)' + 'Ti:tebibytes ( 2^40 = 1024^4 bytes)' + ) + _describe -t units 'size limit units' suff -V 'units' + elif compset -P '[-+]'; then + _message -e 'size limit number (full format: <+->)' + else + _values 'size limit prefix (full format: )' \ + '\+[file size must be greater or equal to]'\ + '-[file size must be less than or equal to]' && ret=0 + fi + ;; + esac + + return ret } _fd "$@" + +# ------------------------------------------------------------------------------ +# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the zsh-users nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for fd +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * smancill (https://github.com/smancill) +# +# ------------------------------------------------------------------------------ + +# Local Variables: +# mode: shell-script +# coding: utf-8-unix +# indent-tabs-mode: nil +# sh-indentation: 2 +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/fig/README.md b/plugins/fig/README.md new file mode 100644 index 000000000..3861958d6 --- /dev/null +++ b/plugins/fig/README.md @@ -0,0 +1,9 @@ +# Fig plugin + +This plugin sets up completion for [Fig](https://fig.io/). + +To use it, add `fig` to the plugins array in your zshrc file: + +```zsh +plugins=(... fig) +``` diff --git a/plugins/fig/fig.plugin.zsh b/plugins/fig/fig.plugin.zsh new file mode 100644 index 000000000..cddb6c7c0 --- /dev/null +++ b/plugins/fig/fig.plugin.zsh @@ -0,0 +1,13 @@ +if ! (( $+commands[fig] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `fig`. Otherwise, compinit will have already done that +if [[ ! -f "$ZSH_CACHE_DIR/completions/_fig" ]]; then + autoload -Uz _fig + typeset -g -A _comps + _comps[fig]=_fig +fi + +fig completion zsh >| "$ZSH_CACHE_DIR/completions/_fig" &| diff --git a/plugins/flutter/README.md b/plugins/flutter/README.md index be419144f..e5a4fd2ea 100644 --- a/plugins/flutter/README.md +++ b/plugins/flutter/README.md @@ -2,20 +2,27 @@ The Flutter plugin provides completion and useful aliases -To use it, add flutter to the plugins array of your zshrc file: +To use it, add `flutter` to the plugins array of your zshrc file: -``` +```zsh plugins=(... flutter) ``` ## Aliases -| Alias | Command | Description | -| :--------- | :--------------------- | :------------------------------------------------------------------------- | -| `fl` | `flutter` | Shorthand for flutter command | -| `flr` | `flutter run` | Runs flutter app | -| `fldoc` | `flutter doctor` | Runs flutter doctor | -| `flb` | `flutter build` | Build flutter application | -| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | -| `flget` | `flutter packages get` | Installs dependencies | -| `flc` | `flutter clean` | Cleans flutter porject | +| Alias | Command | Description | +| :--------- | :---------------------- | :------------------------------------------------------------------------- | +| `fl` | `flutter` | Shorthand for flutter command | +| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | +| `flb` | `flutter build` | Build flutter application | +| `flchnl` | `flutter channel` | Switches flutter channel (requires input of desired channel) | +| `flc` | `flutter clean` | Cleans flutter project | +| `fldvcs` | `flutter devices` | List connected devices (if any) | +| `fldoc` | `flutter doctor` | Runs flutter doctor | +| `flpub` | `flutter pub` | Shorthand for flutter pub command | +| `flget` | `flutter pub get` | Installs dependencies | +| `flr` | `flutter run` | Runs flutter app | +| `flrd` | `flutter run --debug` | Runs flutter app in debug mode (default mode) | +| `flrp` | `flutter run --profile` | Runs flutter app in profile mode | +| `flrr` | `flutter run --release` | Runs flutter app in release mode | +| `flupgrd` | `flutter upgrade` | Upgrades flutter version depending on the current channel | diff --git a/plugins/flutter/flutter.plugin.zsh b/plugins/flutter/flutter.plugin.zsh index 01c4c9f5f..80b74f64a 100644 --- a/plugins/flutter/flutter.plugin.zsh +++ b/plugins/flutter/flutter.plugin.zsh @@ -1,7 +1,14 @@ alias fl="flutter" -alias flr="flutter run" -alias fldoc="flutter doctor" -alias flb="flutter build" alias flattach="flutter attach" -alias flget="flutter packages get" +alias flb="flutter build" +alias flchnl="flutter channel" alias flc="flutter clean" +alias fldvcs="flutter devices" +alias fldoc="flutter doctor" +alias flpub="flutter pub" +alias flget="flutter pub get" +alias flr="flutter run" +alias flrd="flutter run --debug" +alias flrp="flutter run --profile" +alias flrr="flutter run --release" +alias flupgrd="flutter upgrade" diff --git a/plugins/fnm/fnm.plugin.zsh b/plugins/fnm/fnm.plugin.zsh index c161b27cd..044e16a04 100644 --- a/plugins/fnm/fnm.plugin.zsh +++ b/plugins/fnm/fnm.plugin.zsh @@ -1,23 +1,26 @@ -if (( $+commands[fnm] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_fnm" - - ver="$(fnm --version)" - ver_file="$ZSH_CACHE_DIR/fnm_version" - comp_file="$ZSH_CACHE_DIR/completions/_fnm" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - fnm completions --shell=zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _fnm - _comps[fnm]=_fnm - - unset ver ver_file comp_file +if (( ! $+commands[fnm] )); then + return fi +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# remove old generated files +command rm -f "${0:A:h}/_fnm" "$ZSH_CACHE_DIR/fnm_version" + +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `fnm`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_fnm" ]]; then + typeset -g -A _comps + autoload -Uz _fnm + _comps[fnm]=_fnm +fi + +fnm completions --shell=zsh >| "$ZSH_CACHE_DIR/completions/_fnm" &| diff --git a/plugins/fossil/_fossil b/plugins/fossil/_fossil new file mode 100644 index 000000000..d2d48bdec --- /dev/null +++ b/plugins/fossil/_fossil @@ -0,0 +1,32 @@ +#compdef fossil + +function _fossil_get_command_list () { + fossil help -a | grep -v "Usage|Common|This is" +} + +function _fossil () { + local context state state_descr line + typeset -A opt_args + + _arguments \ + '1: :->command'\ + '2: :->subcommand' + + case $state in + command) + local _OUTPUT=$(fossil branch 2>&1 | grep "use --repo") + if [[ -z "$_OUTPUT" ]]; then + compadd "$(_fossil_get_command_list)" + else + compadd clone init import help version + fi ;; + subcommand) + case "$words[2]" in + help) compadd "$(_fossil_get_command_list)" ;; + add) compadd "$(fossil extra)" ;; + *) compcall -D ;; + esac ;; + esac +} + +_fossil "$@" diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh index 25a8d121d..a2123f415 100644 --- a/plugins/fossil/fossil.plugin.zsh +++ b/plugins/fossil/fossil.plugin.zsh @@ -12,55 +12,26 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖" # Text to display if the branch is clean ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔" -function fossil_prompt_info () { - local _OUTPUT=`fossil branch 2>&1` - local _STATUS=`echo $_OUTPUT | grep "use --repo"` - if [ "$_STATUS" = "" ]; then - local _EDITED=`fossil changes` - local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN" - local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'` +function fossil_prompt_info() { + local info=$(fossil branch 2>&1) - if [ "$_EDITED" != "" ]; then - _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY" - fi + # if we're not in a fossil repo, don't show anything + ! command grep -q "use --repo" <<< "$info" || return - echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \ - "$_BRANCH" \ - "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \ - "$_EDITED_SYM"\ - "%{$reset_color%}" + local branch=$(echo $info | grep "* " | sed 's/* //g') + local changes=$(fossil changes) + local dirty="$ZSH_THEME_FOSSIL_PROMPT_CLEAN" + + if [[ -n "$changes" ]]; then + dirty="$ZSH_THEME_FOSSIL_PROMPT_DIRTY" fi -} -function _fossil_get_command_list () { - fossil help -a | grep -v "Usage|Common|This is" -} - -function _fossil () { - local context state state_descr line - typeset -A opt_args - - _arguments \ - '1: :->command'\ - '2: :->subcommand' - - case $state in - command) - local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"` - if [ "$_OUTPUT" = "" ]; then - compadd `_fossil_get_command_list` - else - compadd clone init import help version - fi - ;; - subcommand) - if [ "$words[2]" = "help" ]; then - compadd `_fossil_get_command_list` - else - compcall -D - fi - ;; - esac + printf '%s %s %s %s %s' \ + "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \ + "${branch:gs/%/%%}" \ + "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \ + "$dirty" \ + "%{$reset_color%}" } function _fossil_prompt () { @@ -82,8 +53,5 @@ function _fossil_prompt () { fi } -compdef _fossil fossil - autoload -U add-zsh-hook - add-zsh-hook precmd _fossil_prompt diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index 437e477b9..7f8d5c90c 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -39,7 +39,7 @@ function frontend() { emulate -L zsh # define search context URLS - typeset -A urls + local -A urls urls=( angular 'https://angular.io/?search=' angularjs $(_frontend_fallback 'angularjs.org') @@ -73,25 +73,23 @@ function frontend() { ) # show help for command list - if [[ $# -lt 2 ]] - then - print -P "Usage: frontend %Ucontext%u %Uterm%u [...%Umore%u] (or just: %Ucontext%u %Uterm%u [...%Umore%u])" - print -P "" - print -P "%Uterm%u and what follows is what will be searched for in the %Ucontext%u website," - print -P "and %Ucontext%u is one of the following:" - print -P "" - print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" - print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," - print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" - print -P "" - print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." - print -P "" - return 1 + if [[ $# -lt 2 ]]; then + print -P "Usage: frontend %Ucontext%u %Uterm%u [...%Umore%u] (or just: %Ucontext%u %Uterm%u [...%Umore%u])" + print -P "" + print -P "%Uterm%u and what follows is what will be searched for in the %Ucontext%u website," + print -P "and %Ucontext%u is one of the following:" + print -P "" + print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" + print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," + print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + print -P "" + print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." + print -P "" + return 1 fi # check whether the search context is supported - if [[ -z "$urls[$1]" ]] - then + if [[ -z "$urls[$1]" ]]; then echo "Search context \"$1\" currently not supported." echo "" echo "Valid contexts are:" diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md index 791a3eb6f..15d4d31f3 100644 --- a/plugins/fzf/README.md +++ b/plugins/fzf/README.md @@ -26,7 +26,7 @@ export FZF_BASE=/path/to/fzf/install/dir Set default command to use when input is tty: ```zsh -export FZF_DEFAULT_COMMAND='' +export FZF_DEFAULT_COMMAND='' ``` If not set, the plugin will try to set it to these, in the order in which they're found: diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index aabd62cb1..102605958 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -1,176 +1,201 @@ -function setup_using_base_dir() { - local fzf_base fzf_shell fzfdirs dir +function fzf_setup_using_base_dir() { + local fzf_base fzf_shell fzfdirs dir - test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}" + test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}" + + if [[ -z "${fzf_base}" ]]; then + fzfdirs=( + "${HOME}/.fzf" + "${HOME}/.nix-profile/share/fzf" + "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" + "/usr/local/opt/fzf" + "/usr/share/fzf" + "/usr/local/share/examples/fzf" + ) + for dir in ${fzfdirs}; do + if [[ -d "${dir}" ]]; then + fzf_base="${dir}" + break + fi + done if [[ -z "${fzf_base}" ]]; then - fzfdirs=( - "${HOME}/.fzf" - "${HOME}/.nix-profile/share/fzf" - "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" - "/usr/local/opt/fzf" - "/usr/share/fzf" - "/usr/local/share/examples/fzf" - ) - for dir in ${fzfdirs}; do - if [[ -d "${dir}" ]]; then - fzf_base="${dir}" - break - fi - done - - if [[ -z "${fzf_base}" ]]; then - if (( ${+commands[fzf-share]} )) && dir="$(fzf-share)" && [[ -d "${dir}" ]]; then - fzf_base="${dir}" - elif (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then - if [[ -d "${dir}" ]]; then - fzf_base="${dir}" - fi - fi + if (( ${+commands[fzf-share]} )) && dir="$(fzf-share)" && [[ -d "${dir}" ]]; then + fzf_base="${dir}" + elif (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then + if [[ -d "${dir}" ]]; then + fzf_base="${dir}" fi + fi fi + fi - if [[ ! -d "${fzf_base}" ]]; then - return 1 - fi + if [[ ! -d "${fzf_base}" ]]; then + return 1 + fi - # Fix fzf shell directory for Arch Linux, NixOS or Void Linux packages - if [[ ! -d "${fzf_base}/shell" ]]; then - fzf_shell="${fzf_base}" - else - fzf_shell="${fzf_base}/shell" - fi + # Fix fzf shell directory for Arch Linux, NixOS or Void Linux packages + if [[ ! -d "${fzf_base}/shell" ]]; then + fzf_shell="${fzf_base}" + else + fzf_shell="${fzf_base}/shell" + fi - # Setup fzf binary path - if (( ! ${+commands[fzf]} )) && [[ "$PATH" != *$fzf_base/bin* ]]; then - export PATH="$PATH:$fzf_base/bin" - fi + # Setup fzf binary path + if (( ! ${+commands[fzf]} )) && [[ "$PATH" != *$fzf_base/bin* ]]; then + export PATH="$PATH:$fzf_base/bin" + fi - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "${fzf_shell}/completion.zsh" 2> /dev/null - fi + # Auto-completion + if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then + source "${fzf_shell}/completion.zsh" 2> /dev/null + fi - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "${fzf_shell}/key-bindings.zsh" - fi + # Key bindings + if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then + source "${fzf_shell}/key-bindings.zsh" + fi } -function setup_using_debian_package() { - if (( ! $+commands[dpkg] )) || ! dpkg -s fzf &>/dev/null; then - # Either not a debian based distro, or no fzf installed - return 1 - fi +function fzf_setup_using_debian() { + if (( ! $+commands[dpkg] )) || ! dpkg -s fzf &>/dev/null; then + # Either not a debian based distro, or no fzf installed + return 1 + fi - # NOTE: There is no need to configure PATH for debian package, all binaries - # are installed to /usr/bin by default + # NOTE: There is no need to configure PATH for debian package, all binaries + # are installed to /usr/bin by default - local completions key_bindings + local completions key_bindings - case $PREFIX in - *com.termux*) - # Support Termux package - completions="${PREFIX}/share/fzf/completion.zsh" - key_bindings="${PREFIX}/share/fzf/key-bindings.zsh" - ;; - *) - # Determine completion file path: first bullseye/sid, then buster/stretch - completions="/usr/share/doc/fzf/examples/completion.zsh" - [[ -f "$completions" ]] || completions="/usr/share/zsh/vendor-completions/_fzf" - key_bindings="/usr/share/doc/fzf/examples/key-bindings.zsh" - ;; - esac + case $PREFIX in + *com.termux*) + # Support Termux package + completions="${PREFIX}/share/fzf/completion.zsh" + key_bindings="${PREFIX}/share/fzf/key-bindings.zsh" + ;; + *) + # Determine completion file path: first bullseye/sid, then buster/stretch + completions="/usr/share/doc/fzf/examples/completion.zsh" + [[ -f "$completions" ]] || completions="/usr/share/zsh/vendor-completions/_fzf" + key_bindings="/usr/share/doc/fzf/examples/key-bindings.zsh" + ;; + esac - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source $completions 2> /dev/null - fi + # Auto-completion + if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then + source $completions 2> /dev/null + fi - # Key bindings - if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then - source $key_bindings - fi + # Key bindings + if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then + source $key_bindings + fi - return 0 + return 0 } -function setup_using_opensuse_package() { - # OpenSUSE installs fzf in /usr/bin/fzf - # If the command is not found, the package isn't installed - (( $+commands[fzf] )) || return 1 +function fzf_setup_using_opensuse() { + # OpenSUSE installs fzf in /usr/bin/fzf + # If the command is not found, the package isn't installed + (( $+commands[fzf] )) || return 1 - # The fzf-zsh-completion package installs the auto-completion in - local completions="/usr/share/zsh/site-functions/_fzf" - # The fzf-zsh-completion package installs the key-bindings file in - local key_bindings="/etc/zsh_completion.d/fzf-key-bindings" + # The fzf-zsh-completion package installs the auto-completion in + local completions="/usr/share/zsh/site-functions/_fzf" + # The fzf-zsh-completion package installs the key-bindings file in + local key_bindings="/etc/zsh_completion.d/fzf-key-bindings" - # If these are not found: (1) maybe we're not on OpenSUSE, or - # (2) maybe the fzf-zsh-completion package isn't installed. - if [[ ! -f "$completions" || ! -f "$key_bindings" ]]; then - return 1 - fi + # If these are not found: (1) maybe we're not on OpenSUSE, or + # (2) maybe the fzf-zsh-completion package isn't installed. + if [[ ! -f "$completions" || ! -f "$key_bindings" ]]; then + return 1 + fi - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "$completions" 2>/dev/null - fi + # Auto-completion + if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then + source "$completions" 2>/dev/null + fi - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "$key_bindings" 2>/dev/null - fi + # Key bindings + if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then + source "$key_bindings" 2>/dev/null + fi - return 0 + return 0 } -function setup_using_openbsd_package() { - # openBSD installs fzf in /usr/local/bin/fzf - if [[ "$OSTYPE" != openbsd* ]] || (( ! $+commands[fzf] )); then - return 1 - fi +function fzf_setup_using_openbsd() { + # openBSD installs fzf in /usr/local/bin/fzf + if [[ "$OSTYPE" != openbsd* ]] || (( ! $+commands[fzf] )); then + return 1 + fi - # The fzf package installs the auto-completion in - local completions="/usr/local/share/zsh/site-functions/_fzf_completion" - # The fzf package installs the key-bindings file in - local key_bindings="/usr/local/share/zsh/site-functions/_fzf_key_bindings" + # The fzf package installs the auto-completion in + local completions="/usr/local/share/zsh/site-functions/_fzf_completion" + # The fzf package installs the key-bindings file in + local key_bindings="/usr/local/share/zsh/site-functions/_fzf_key_bindings" - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "$completions" 2>/dev/null - fi + # Auto-completion + if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then + source "$completions" 2>/dev/null + fi - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "$key_bindings" 2>/dev/null - fi + # Key bindings + if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then + source "$key_bindings" 2>/dev/null + fi - return 0 + return 0 } -function indicate_error() { - cat >&2 </dev/null + fi + + # Key bindings + if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then + source "$key_bindings" 2>/dev/null + fi + + return 0 } # Indicate to user that fzf installation not found if nothing worked -setup_using_openbsd_package \ - || setup_using_debian_package \ - || setup_using_opensuse_package \ - || setup_using_base_dir \ - || indicate_error +function fzf_setup_error() { + cat >&2 <<'EOF' +[oh-my-zsh] fzf plugin: Cannot find fzf installation directory. +Please add `export FZF_BASE=/path/to/fzf/install/dir` to your .zshrc +EOF +} -unset -f setup_using_opensuse_package setup_using_debian_package setup_using_base_dir indicate_error +fzf_setup_using_openbsd \ + || fzf_setup_using_debian \ + || fzf_setup_using_opensuse \ + || fzf_setup_using_cygwin \ + || fzf_setup_using_base_dir \ + || fzf_setup_error + +unset -f -m 'fzf_setup_*' if [[ -z "$FZF_DEFAULT_COMMAND" ]]; then - if (( $+commands[rg] )); then - export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git/*"' - elif (( $+commands[fd] )); then - export FZF_DEFAULT_COMMAND='fd --type f --hidden --exclude .git' - elif (( $+commands[ag] )); then - export FZF_DEFAULT_COMMAND='ag -l --hidden -g "" --ignore .git' - fi + if (( $+commands[rg] )); then + export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git/*"' + elif (( $+commands[fd] )); then + export FZF_DEFAULT_COMMAND='fd --type f --hidden --exclude .git' + elif (( $+commands[ag] )); then + export FZF_DEFAULT_COMMAND='ag -l --hidden -g "" --ignore .git' + fi fi diff --git a/plugins/gh/gh.plugin.zsh b/plugins/gh/gh.plugin.zsh index 3e4cdee5e..9263220ca 100644 --- a/plugins/gh/gh.plugin.zsh +++ b/plugins/gh/gh.plugin.zsh @@ -1,24 +1,27 @@ # Autocompletion for the GitHub CLI (gh). -if (( $+commands[gh] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_gh" - - ver="$(gh --version)" - ver_file="$ZSH_CACHE_DIR/gh_version" - comp_file="$ZSH_CACHE_DIR/completions/_gh" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - gh completion --shell zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _gh - _comps[gh]=_gh - - unset ver ver_file comp_file +if (( ! $+commands[gh] )); then + return fi +# TODO: 2021-12-28: remove this block +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +# Remove old generated files +command rm -f "${0:A:h}/_gh" "$ZSH_CACHE_DIR/gh_version" + +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `gh`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_gh" ]]; then + typeset -g -A _comps + autoload -Uz _gh + _comps[gh]=_gh +fi + +gh completion --shell zsh >| "$ZSH_CACHE_DIR/completions/_gh" &| diff --git a/plugins/git-flow/README.md b/plugins/git-flow/README.md index 9c25dec83..fc8ccf0a0 100644 --- a/plugins/git-flow/README.md +++ b/plugins/git-flow/README.md @@ -10,22 +10,31 @@ plugins=(... git-flow) ## Aliases -| Alias | Command | Description | -|---------|----------------------------|----------------------------------------| -| `gfl` | `git flow` | Git-Flow command | -| `gfli` | `git flow init` | Initialize git-flow repository | -| `gcd` | `git checkout develop` | Check out develop branch | -| `gch` | `git checkout hotfix` | Check out hotfix branch | -| `gcr` | `git checkout release` | Check out release branch | -| `gflf` | `git flow feature` | List existing feature branches | -| `gflh` | `git flow hotfix` | List existing hotfix branches | -| `gflr` | `git flow release` | List existing release branches | -| `gflfs` | `git flow feature start` | Start a new feature: `gflfs ` | -| `gflhs` | `git flow hotfix start` | Start a new hotfix: `gflhs ` | -| `gflrs` | `git flow release start` | Start a new release: `gflrs ` | -| `gflff` | `git flow feature finish` | Finish feature: `gflff ` | -| `gflfp` | `git flow feature publish` | Publish feature: `gflfp ` | -| `gflhf` | `git flow hotfix finish` | Finish hotfix: `gflhf ` | -| `gflrf` | `git flow release finish` | Finish release: `gflrf ` | +| Alias | Command | Description | +| --------- | ----------------------------------------- | ---------------------------------------------- | +| `gcd` | `git checkout develop` | Check out develop branch | +| `gch` | `git checkout hotfix` | Check out hotfix branch | +| `gcr` | `git checkout release` | Check out release branch | +| `gfl` | `git flow` | Git-Flow command | +| `gflf` | `git flow feature` | List existing feature branches | +| `gflff` | `git flow feature finish` | Finish feature: `gflff ` | +| `gflffc` | `gflff ${$(git_current_branch)#feature/}` | Finish current feature | +| `gflfp` | `git flow feature publish` | Publish feature: `gflfp ` | +| `gflfpc` | `gflfp ${$(git_current_branch)#feature/}` | Publish current feature | +| `gflfpll` | `git flow feature pull` | Pull remote feature: `gflfpll ` | +| `gflfs` | `git flow feature start` | Start a new feature: `gflfs ` | +| `gflh` | `git flow hotfix` | List existing hotfix branches | +| `gflhf` | `git flow hotfix finish` | Finish hotfix: `gflhf ` | +| `gflhfc` | `gflhf ${$(git_current_branch)#hotfix/}` | Finish current hotfix | +| `gflhp` | `git flow hotfix publish` | Publish hostfix: `gflhp ` | +| `gflhpc` | `gflhp ${$(git_current_branch)#hotfix/}` | Finish current hotfix | +| `gflhs` | `git flow hotfix start` | Start a new hotfix: `gflhs ` | +| `gfli` | `git flow init` | Initialize git-flow repository | +| `gflr` | `git flow release` | List existing release branches | +| `gflrf` | `git flow release finish` | Finish release: `gflrf ` | +| `gflrfc` | `gflrf ${$(git_current_branch)#release/}` | Finish current release | +| `gflrp` | `git flow release publish` | Publish release: `gflrp ` | +| `gflrpc` | `gflrp ${$(git_current_branch)#release/}` | Publish current release | +| `gflrs` | `git flow release start` | Start a new release: `gflrs ` | [More information about `git-flow` commands](https://github.com/nvie/gitflow/wiki/Command-Line-Arguments). diff --git a/plugins/git-flow/_git-flow b/plugins/git-flow/_git-flow new file mode 100644 index 000000000..eab712707 --- /dev/null +++ b/plugins/git-flow/_git-flow @@ -0,0 +1,327 @@ +#compdef git-flow + +_git-flow () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'init:Initialize a new git repo with support for the branching model.' + 'feature:Manage your feature branches.' + 'release:Manage your release branches.' + 'hotfix:Manage your hotfix branches.' + 'support:Manage your support branches.' + 'version:Shows version information.' + ) + _describe -t commands 'git flow' subcommands + ;; + + (options) + case $line[1] in + + (init) + _arguments \ + -f'[Force setting of gitflow branches, even if already configured]' + ;; + + (version) + ;; + + (hotfix) + __git-flow-hotfix + ;; + + (release) + __git-flow-release + ;; + + (feature) + __git-flow-feature + ;; + esac + ;; + esac +} + +__git-flow-release () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new release branch.' + 'finish:Finish a release branch.' + 'list:List all your release branches. (Alias to `git flow release`)' + 'publish: public' + 'track: track' + ) + _describe -t commands 'git flow release' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':version:__git_flow_version_list' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':version:__git_flow_version_list' + ;; + + (publish) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + + (track) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-hotfix () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new hotfix branch.' + 'finish:Finish a hotfix branch.' + 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' + ) + _describe -t commands 'git flow hotfix' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':hotfix:__git_flow_version_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':hotfix:__git_flow_hotfix_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-flow-feature () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new feature branch.' + 'finish:Finish a feature branch.' + 'list:List all your feature branches. (Alias to `git flow feature`)' + 'publish: publish' + 'track: track' + 'diff: diff' + 'rebase: rebase' + 'checkout: checkout' + 'pull: pull' + ) + _describe -t commands 'git flow feature' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':feature:__git_flow_feature_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -r'[Rebase instead of merge]'\ + -k'[Keep branch after performing finish]'\ + ':feature:__git_flow_feature_list' + ;; + + (publish) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (track) + _arguments \ + ':feature:__git_flow_feature_list'\ + ;; + + (diff) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (rebase) + _arguments \ + -i'[Do an interactive rebase]' \ + ':branch:__git_flow_feature_list' + ;; + + (checkout) + _arguments \ + ':branch:__git_flow_feature_list'\ + ;; + + (pull) + _arguments \ + ':remote:__git_remotes'\ + ':branch:__git_flow_feature_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git_flow_version_list () { + local expl + declare -a versions + + versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted versions expl 'version' compadd $versions +} + +__git_flow_feature_list () { + local expl + declare -a features + + features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted features expl 'feature' compadd $features +} + +__git_remotes () { + local expl gitdir remotes + + gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) + __git_command_successful || return + + remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) + __git_command_successful || return + + # TODO: Should combine the two instead of either or. + if (( $#remotes > 0 )); then + _wanted remotes expl remote compadd $* - $remotes + else + _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" + fi +} + +__git_flow_hotfix_list () { + local expl + declare -a hotfixes + + hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted hotfixes expl 'hotfix' compadd $hotfixes +} + +__git_branch_names () { + local expl + declare -a branch_names + + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + + _wanted branch-names expl branch-name compadd $* - $branch_names +} + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' + +# Detect if script is sourced or called via autoload +[[ "$ZSH_EVAL_CONTEXT" != *:file ]] || return + +_git-flow "$@" diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 8f0714b16..f842de998 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -1,369 +1,32 @@ -#!zsh -# -# Installation -# ------------ -# -# To achieve git-flow completion nirvana: -# -# 0. Update your zsh's git-completion module to the newest version. -# From here. https://raw.githubusercontent.com/zsh-users/zsh/master/Completion/Unix/Command/_git -# -# 1. Install this file. Either: -# -# a. Place it in your .zshrc: -# -# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in -# your .zshrc: -# -# source ~/.git-flow-completion.zsh -# -# c. Or, use this file as an oh-my-zsh plugin. -# - -#Alias -alias gfl='git flow' -alias gfli='git flow init' +# Aliases alias gcd='git checkout $(git config gitflow.branch.develop)' alias gch='git checkout $(git config gitflow.prefix.hotfix)' alias gcr='git checkout $(git config gitflow.prefix.release)' +alias gfl='git flow' alias gflf='git flow feature' -alias gflh='git flow hotfix' -alias gflr='git flow release' -alias gflfs='git flow feature start' -alias gflhs='git flow hotfix start' -alias gflrs='git flow release start' alias gflff='git flow feature finish' +alias gflffc='git flow feature finish ${$(git_current_branch)#feature/}' alias gflfp='git flow feature publish' -alias gflhf='git flow hotfix finish' -alias gflrf='git flow release finish' -alias gflhp='git flow hotfix publish' -alias gflrp='git flow release publish' +alias gflfpc='git flow feature publish ${$(git_current_branch)#feature/}' alias gflfpll='git flow feature pull' +alias gflfs='git flow feature start' +alias gflh='git flow hotfix' +alias gflhf='git flow hotfix finish' +alias gflhfc='git flow hotfix finish ${$(git_current_branch)#hotfix/}' +alias gflhp='git flow hotfix publish' +alias gflhpc='git flow hotfix publish ${$(git_current_branch)#hotfix/}' +alias gflhs='git flow hotfix start' +alias gfli='git flow init' +alias gflr='git flow release' +alias gflrf='git flow release finish' +alias gflrfc='git flow release finish ${$(git_current_branch)#release/}' +alias gflrp='git flow release publish' +alias gflrpc='git flow release publish ${$(git_current_branch)#release/}' +alias gflrs='git flow release start' -_git-flow () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'init:Initialize a new git repo with support for the branching model.' - 'feature:Manage your feature branches.' - 'release:Manage your release branches.' - 'hotfix:Manage your hotfix branches.' - 'support:Manage your support branches.' - 'version:Shows version information.' - ) - _describe -t commands 'git flow' subcommands - ;; - - (options) - case $line[1] in - - (init) - _arguments \ - -f'[Force setting of gitflow branches, even if already configured]' - ;; - - (version) - ;; - - (hotfix) - __git-flow-hotfix - ;; - - (release) - __git-flow-release - ;; - - (feature) - __git-flow-feature - ;; - esac - ;; - esac -} - -__git-flow-release () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new release branch.' - 'finish:Finish a release branch.' - 'list:List all your release branches. (Alias to `git flow release`)' - 'publish: public' - 'track: track' - ) - _describe -t commands 'git flow release' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':version:__git_flow_version_list' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':version:__git_flow_version_list' - ;; - - (publish) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - (track) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-hotfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new hotfix branch.' - 'finish:Finish a hotfix branch.' - 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' - ) - _describe -t commands 'git flow hotfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':hotfix:__git_flow_version_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':hotfix:__git_flow_hotfix_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-feature () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new feature branch.' - 'finish:Finish a feature branch.' - 'list:List all your feature branches. (Alias to `git flow feature`)' - 'publish: publish' - 'track: track' - 'diff: diff' - 'rebase: rebase' - 'checkout: checkout' - 'pull: pull' - ) - _describe -t commands 'git flow feature' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':feature:__git_flow_feature_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - -k'[Keep branch after performing finish]'\ - ':feature:__git_flow_feature_list' - ;; - - (publish) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (track) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_flow_feature_list' - ;; - - (checkout) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_flow_feature_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git_flow_version_list () -{ - local expl - declare -a versions - - versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted versions expl 'version' compadd $versions -} - -__git_flow_feature_list () -{ - local expl - declare -a features - - features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted features expl 'feature' compadd $features -} - -__git_remotes () { - local expl gitdir remotes - - gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) - __git_command_successful || return - - remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) - __git_command_successful || return - - # TODO: Should combine the two instead of either or. - if (( $#remotes > 0 )); then - _wanted remotes expl remote compadd $* - $remotes - else - _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" - fi -} - -__git_flow_hotfix_list () -{ - local expl - declare -a hotfixes - - hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted hotfixes expl 'hotfix' compadd $hotfixes -} - -__git_branch_names () { - local expl - declare -a branch_names - - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__git_command_successful () { - if (( ${#pipestatus:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} - -zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' +# Source completion script +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" +source "${0:A:h}/_git-flow" diff --git a/plugins/git-prompt/README.md b/plugins/git-prompt/README.md index c6610fa94..83d365c84 100644 --- a/plugins/git-prompt/README.md +++ b/plugins/git-prompt/README.md @@ -11,7 +11,8 @@ plugins=(... git-prompt) See the [original repository](https://github.com/olivierverdier/zsh-git-prompt). -## Prerequisites +## Requirements + This plugin uses `python`, so your host needs to have it installed ## Examples @@ -30,7 +31,7 @@ The prompt may look like the following: By default, the general appearance of the prompt is: -``` +```text (|) ``` @@ -58,9 +59,8 @@ The symbols are as follows: ## Customisation - Set the variable `ZSH_THEME_GIT_PROMPT_CACHE` to any value in order to enable caching. -- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) +- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) to change the appearance of the prompt. Take a look at the bottom of the [plugin file](git-prompt.plugin.zsh)` to see what variables are available. - **Enjoy!** diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index a4c952471..c86c1f59b 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + __GIT_PROMPT_DIR="${0:A:h}" ## Hook function definitions diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py index 786274a71..4dea8000f 100644 --- a/plugins/git-prompt/gitstatus.py +++ b/plugins/git-prompt/gitstatus.py @@ -81,7 +81,7 @@ for st in status: staged.append(st) stashed = get_stash() -if not changed and not staged and not conflicts and not untracked and not stashed: +if not changed and not staged and not conflicts and not untracked: clean = 1 else: clean = 0 diff --git a/plugins/git/README.md b/plugins/git/README.md index 113080874..b9af3488f 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -130,6 +130,7 @@ plugins=(... git) | grbd | git rebase $(git_develop_branch) | | grbi | git rebase -i | | grbm | git rebase $(git_main_branch) | +| grbom | git rebase origin/$(git_main_branch) | | grbo | git rebase --onto | | grbs | git rebase --skip | | grev | git revert | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5a3c98287..8f7e623ec 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -24,9 +24,7 @@ compdef _git _git_log_prettily=git-log # Warn if the current branch is a WIP function work_in_progress() { - if $(git log -n 1 2>/dev/null | grep -q -c "\-\-wip\-\-"); then - echo "WIP!!" - fi + command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" } # Check if main exists and use instead of master @@ -251,6 +249,7 @@ alias grbc='git rebase --continue' alias grbd='git rebase $(git_develop_branch)' alias grbi='git rebase -i' alias grbm='git rebase $(git_main_branch)' +alias grbom='git rebase origin/$(git_main_branch)' alias grbo='git rebase --onto' alias grbs='git rebase --skip' alias grev='git revert' diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index 4497a294f..f7b09b2c1 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -3383,7 +3383,7 @@ _git_worktree () # Here we are not completing an --option, it's either the # path or a ref. case "$prev" in - -b|-B) # Complete refs for branch to be created/reseted. + -b|-B) # Complete refs for branch to be created/reset. __git_complete_refs ;; -*) # The previous word is an -o|--option without an diff --git a/plugins/gitfast/gitfast.plugin.zsh b/plugins/gitfast/gitfast.plugin.zsh index 7b6b67e92..a6db0c6bd 100644 --- a/plugins/gitfast/gitfast.plugin.zsh +++ b/plugins/gitfast/gitfast.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + source "${0:A:h}/git-prompt.sh" function git_prompt_info() { diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh index 539e7fe4d..6ede9e3a7 100644 --- a/plugins/gnu-utils/gnu-utils.plugin.zsh +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -11,11 +11,8 @@ if [[ ! -x "${commands[gwhoami]}" ]]; then fi __gnu_utils() { - emulate -L zsh - local gcmds + local -a gcmds local gcmd - local cmd - local prefix # coreutils gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod' @@ -43,41 +40,21 @@ __gnu_utils() { (( ${+commands[$gcmd]} )) || continue # This method allows for builtin commands to be primary but it's - # lost if hash -r or rehash -f is executed. Thus, those two - # functions have to be wrapped. + # lost if hash -r or rehash is executed, or if $PATH is updated. + # Thus, a preexec hook is needed, which will only run if whoami + # is not already rehashed. # hash ${gcmd[2,-1]}=${commands[$gcmd]} - - # This method generates wrapper functions. - # It will override shell builtins. - # - # eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }" - - # This method is inflexible since the aliases are at risk of being - # overridden resulting in the BSD coreutils being called. - # - # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}" done return 0 } -__gnu_utils -function hash() { - if [[ "$*" =~ "-(r|f)" ]]; then - builtin hash "$@" - __gnu_utils - else - builtin hash "$@" - fi -} - -function rehash() { - if [[ "$*" =~ "-f" ]]; then - builtin rehash "$@" - __gnu_utils - else - builtin rehash "$@" - fi +__gnu_utils_preexec() { + # Run __gnu_utils when the whoami command is not already rehashed. + # This acts as a sign that we need to rehash all GNU utils. + [[ "${commands[whoami]}" = "${commands[gwhoami]}" ]] || __gnu_utils } +autoload -Uz add-zsh-hook +add-zsh-hook preexec __gnu_utils_preexec diff --git a/plugins/golang/README.md b/plugins/golang/README.md index af2c4dff9..979c89010 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -11,22 +11,27 @@ plugins=(... golang) ## Aliases -| Alias | Command | Description | -| ------- | ----------------------- | ------------------------------------------------------------- | -| gob | `go build` | Build your code | -| goc | `go clean` | Removes object files from package source directories | -| god | `go doc` | Prints documentation comments | -| gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | -| gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | -| gog | `go get` | Downloads packages and then installs them to $GOPATH | -| gog | `go get ./...` | Installs all dependencies in current directory, recursively | -| goi | `go install` | Compiles and installs packages to $GOPATH | -| gol | `go list` | Lists Go packages | -| gom | `go mod` | Access to operations on modules | -| gop | `cd $GOPATH` | Takes you to $GOPATH | -| gopb | `cd $GOPATH/bin` | Takes you to $GOPATH/bin | -| gops | `cd $GOPATH/src` | Takes you to $GOPATH/src | -| gor | `go run` | Compiles and runs your code | -| got | `go test` | Runs tests | -| gota | `go test ./...` | Runs tests in all subdirectories | -| gov | `go vet` | Vet examines Go source code and reports suspicious constructs | +| Alias | Command | Description | +| ------ | ----------------- | ------------------------------------------------------------- | +| gob | `go build` | Build your code | +| goc | `go clean` | Removes object files from package source directories | +| god | `go doc` | Prints documentation comments | +| gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | +| gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | +| gofx | `go fix` | Update packages to use a new API | +| gog | `go get` | Downloads packages and then installs them to $GOPATH | +| gog | `go get ./...` | Installs all dependencies in current directory, recursively | +| goi | `go install` | Compiles and installs packages to $GOPATH | +| gol | `go list` | Lists Go packages | +| gom | `go mod` | Access to operations on modules | +| gopa | `cd $GOPATH` | Takes you to `$GOPATH` | +| gopb | `cd $GOPATH/bin` | Takes you to `$GOPATH/bin` | +| gops | `cd $GOPATH/src` | Takes you to `$GOPATH/src` | +| gor | `go run` | Compiles and runs your code | +| got | `go test` | Runs tests | +| gota | `go test ./...` | Runs tests in all subdirectories | +| goto | `go tool` | Prints all the available tools | +| gotoc | `go tool compile` | Generates object file | +| gotod | `go tool dist` | Utility to bootstrap, build and test go runtime | +| gotofx | `go tool fix` | Fixes an application to use newer features | +| gov | `go vet` | Vet examines Go source code and reports suspicious constructs | diff --git a/plugins/golang/_golang b/plugins/golang/_golang new file mode 100644 index 000000000..01b976b12 --- /dev/null +++ b/plugins/golang/_golang @@ -0,0 +1,249 @@ +#compdef go + +__go_packages() { + local gopaths + declare -a gopaths + gopaths=("${(s/:/)$(go env GOPATH)}") + gopaths+=("$(go env GOROOT)") + for p in $gopaths; do + _path_files -W "$p/src" -/ + done +} + +__go_identifiers() { + local tmpl_path="${functions_source[$0]:h}/templates" + compadd $(godoc -templates "$tmpl_path" ${words[-2]} 2> /dev/null) +} + +_go() { + typeset -a commands build_flags + commands+=( + 'build[compile packages and dependencies]' + 'clean[remove object files]' + 'doc[run godoc on package sources]' + 'env[print Go environment information]' + 'fix[run go tool fix on packages]' + 'fmt[run gofmt on package sources]' + 'generate[generate Go files by processing source]' + 'get[download and install packages and dependencies]' + 'help[display help]' + 'install[compile and install packages and dependencies]' + 'list[list packages]' + 'mod[modules maintenance]' + 'run[compile and run Go program]' + 'test[test packages]' + 'tool[run specified go tool]' + 'version[print Go version]' + 'vet[run go tool vet on packages]' + ) + if (( CURRENT == 2 )); then + # explain go commands + _values 'go tool commands' ${commands[@]} + return + fi + build_flags=( + '-a[force reinstallation of packages that are already up to date]' + '-n[print the commands but do not run them]' + '-p[number of parallel builds]:number' + '-race[enable data race detection]' + '-x[print the commands]' + '-work[print temporary directory name and keep it]' + '-ccflags[flags for 5c/6c/8c]:flags' + '-gcflags[flags for 5g/6g/8g]:flags' + '-ldflags[flags for 5l/6l/8l]:flags' + '-gccgoflags[flags for gccgo]:flags' + '-compiler[name of compiler to use]:name' + '-installsuffix[suffix to add to package directory]:suffix' + '-tags[list of build tags to consider satisfied]:tags' + ) + + case ${words[2]} in + doc) + _arguments -s -w \ + "-c[symbol matching honors case (paths not affected)]" \ + "-cmd[show symbols with package docs even if package is a command]" \ + "-u[show unexported symbols as well as exported]" \ + "2:importpaths:__go_packages" \ + ":next identifiers:__go_identifiers" + ;; + clean) + _arguments -s -w \ + "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \ + "-n[print the remove commands it would execute, but not run them]" \ + "-r[apply recursively to all the dependencies of the packages named by the import paths]" \ + "-x[print remove commands as it executes them]" \ + "*:importpaths:__go_packages" + ;; + fix|fmt|vet) + _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"' + ;; + install) + _arguments -s -w : ${build_flags[@]} \ + "-v[show package names]" \ + '*:importpaths:__go_packages' + ;; + get) + _arguments -s -w : \ + ${build_flags[@]} + ;; + build) + _arguments -s -w : \ + ${build_flags[@]} \ + "-v[show package names]" \ + "-o[output file]:file:_files" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + test) + _arguments -s -w : \ + ${build_flags[@]} \ + "-c[do not run, compile the test binary]" \ + "-i[do not run, install dependencies]" \ + "-v[print test output]" \ + "-x[print the commands]" \ + "-short[use short mode]" \ + "-parallel[number of parallel tests]:number" \ + "-cpu[values of GOMAXPROCS to use]:number list" \ + "-run[run tests and examples matching regexp]:regexp" \ + "-bench[run benchmarks matching regexp]:regexp" \ + "-benchmem[print memory allocation stats]" \ + "-benchtime[run each benchmark until taking this long]:duration" \ + "-blockprofile[write goroutine blocking profile to file]:file" \ + "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ + "-timeout[kill test after that duration]:duration" \ + "-cpuprofile[write CPU profile to file]:file:_files" \ + "-memprofile[write heap profile to file]:file:_files" \ + "-memprofilerate[set heap profiling rate]:number" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + list) + _arguments -s -w : \ + "-f[alternative format for the list]:format" \ + "-json[print data in json format]" \ + "-compiled[set CompiledGoFiles to the Go source files presented to the compiler]" \ + "-deps[iterate over not just the named packages but also all their dependencies]" \ + "-e[change the handling of erroneous packages]" \ + "-export[set the Export field to the name of a file containing up-to-date export information for the given package]" \ + "-find[identify the named packages but not resolve their dependencies]" \ + "-test[report not only the named packages but also their test binaries]" \ + "-m[list modules instead of packages]" \ + "-u[adds information about available upgrades]" \ + "-versions[set the Module's Versions field to a list of all known versions of that module]:number" \ + "*:importpaths:__go_packages" + ;; + mod) + local -a mod_commands + mod_commands+=( + 'download[download modules to local cache]' + 'edit[edit go.mod from tools or scripts]' + 'graph[print module requirement graph]' + 'init[initialize new module in current directory]' + 'tidy[add missing and remove unused modules]' + 'vendor[make vendored copy of dependencies]' + 'verify[verify dependencies have expected content]' + 'why[explain why packages or modules are needed]' + ) + + if (( CURRENT == 3 )); then + _values 'go mod commands' ${mod_commands[@]} "help[display help]" + return + fi + + case ${words[3]} in + help) + _values 'go mod commands' ${mod_commands[@]} + ;; + download) + _arguments -s -w : \ + "-json[print a sequence of JSON objects standard output]" \ + "*:flags" + ;; + edit) + _arguments -s -w : \ + "-fmt[reformat the go.mod file]" \ + "-module[change the module's path]" \ + "-replace[=old{@v}=new{@v} add a replacement of the given module path and version pair]:name" \ + "-dropreplace[=old{@v}=new{@v} drop a replacement of the given module path and version pair]:name" \ + "-go[={version} set the expected Go language version]:number" \ + "-print[print the final go.mod in its text format]" \ + "-json[print the final go.mod file in JSON format]" \ + "*:flags" + ;; + graph) + ;; + init) + ;; + tidy) + _arguments -s -w : \ + "-v[print information about removed modules]" \ + "*:flags" + ;; + vendor) + _arguments -s -w : \ + "-v[print the names of vendored]" \ + "*:flags" + ;; + verify) + ;; + why) + _arguments -s -w : \ + "-m[treats the arguments as a list of modules and finds a path to any package in each of the modules]" \ + "-vendor[exclude tests of dependencies]" \ + "*:importpaths:__go_packages" + ;; + esac + ;; + help) + _values "${commands[@]}" \ + 'environment[show Go environment variables available]' \ + 'gopath[GOPATH environment variable]' \ + 'packages[description of package lists]' \ + 'remote[remote import path syntax]' \ + 'testflag[description of testing flags]' \ + 'testfunc[description of testing functions]' + ;; + run) + _arguments -s -w : \ + ${build_flags[@]} \ + '*:file:_files -g "*.go"' + ;; + tool) + if (( CURRENT == 3 )); then + _values "go tool" $(go tool) + return + fi + case ${words[3]} in + [568]g) + _arguments -s -w : \ + '-I[search for packages in DIR]:includes:_path_files -/' \ + '-L[show full path in file:line prints]' \ + '-S[print the assembly language]' \ + '-V[print the compiler version]' \ + '-e[no limit on number of errors printed]' \ + '-h[panic on an error]' \ + '-l[disable inlining]' \ + '-m[print optimization decisions]' \ + '-o[file specify output file]:file' \ + '-p[assumed import path for this code]:importpath' \ + '-u[disable package unsafe]' \ + "*:file:_files -g '*.go'" + ;; + [568]l) + local O=${words[3]%l} + _arguments -s -w : \ + '-o[file specify output file]:file' \ + '-L[search for packages in DIR]:includes:_path_files -/' \ + "*:file:_files -g '*.[ao$O]'" + ;; + dist) + _values "dist tool" banner bootstrap clean env install version + ;; + *) + # use files by default + _files + ;; + esac + ;; + esac +} + +_go "$@" diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index fce663fd6..4dafecd86 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -1,276 +1,34 @@ -# install in /etc/zsh/zshrc or your personal .zshrc +## completion +compctl -g "*.go" gofmt # standard go tools +compctl -g "*.go" gccgo # gccgo # gc -prefixes=(5 6 8) -for p in $prefixes; do - compctl -g "*.${p}" ${p}l - compctl -g "*.go" ${p}g +for p in 5 6 8; do + compctl -g "*.${p}" ${p}l + compctl -g "*.go" ${p}g done +unset p -# standard go tools -compctl -g "*.go" gofmt - -# gccgo -compctl -g "*.go" gccgo - -# go tool -__go_tool_complete() { - typeset -a commands build_flags - commands+=( - 'build[compile packages and dependencies]' - 'clean[remove object files]' - 'doc[run godoc on package sources]' - 'env[print Go environment information]' - 'fix[run go tool fix on packages]' - 'fmt[run gofmt on package sources]' - 'generate[generate Go files by processing source]' - 'get[download and install packages and dependencies]' - 'help[display help]' - 'install[compile and install packages and dependencies]' - 'list[list packages]' - 'mod[modules maintenance]' - 'run[compile and run Go program]' - 'test[test packages]' - 'tool[run specified go tool]' - 'version[print Go version]' - 'vet[run go tool vet on packages]' - ) - if (( CURRENT == 2 )); then - # explain go commands - _values 'go tool commands' ${commands[@]} - return - fi - build_flags=( - '-a[force reinstallation of packages that are already up to date]' - '-n[print the commands but do not run them]' - '-p[number of parallel builds]:number' - '-race[enable data race detection]' - '-x[print the commands]' - '-work[print temporary directory name and keep it]' - '-ccflags[flags for 5c/6c/8c]:flags' - '-gcflags[flags for 5g/6g/8g]:flags' - '-ldflags[flags for 5l/6l/8l]:flags' - '-gccgoflags[flags for gccgo]:flags' - '-compiler[name of compiler to use]:name' - '-installsuffix[suffix to add to package directory]:suffix' - '-tags[list of build tags to consider satisfied]:tags' - ) - __go_packages() { - local gopaths - declare -a gopaths - gopaths=("${(s/:/)$(go env GOPATH)}") - gopaths+=("$(go env GOROOT)") - for p in $gopaths; do - _path_files -W "$p/src" -/ - done - } - __go_identifiers() { - compadd $(godoc -templates $ZSH/plugins/golang/templates ${words[-2]} 2> /dev/null) - } - case ${words[2]} in - doc) - _arguments -s -w \ - "-c[symbol matching honors case (paths not affected)]" \ - "-cmd[show symbols with package docs even if package is a command]" \ - "-u[show unexported symbols as well as exported]" \ - "2:importpaths:__go_packages" \ - ":next identifiers:__go_identifiers" - ;; - clean) - _arguments -s -w \ - "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \ - "-n[print the remove commands it would execute, but not run them]" \ - "-r[apply recursively to all the dependencies of the packages named by the import paths]" \ - "-x[print remove commands as it executes them]" \ - "*:importpaths:__go_packages" - ;; - fix|fmt|vet) - _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"' - ;; - install) - _arguments -s -w : ${build_flags[@]} \ - "-v[show package names]" \ - '*:importpaths:__go_packages' - ;; - get) - _arguments -s -w : \ - ${build_flags[@]} - ;; - build) - _arguments -s -w : \ - ${build_flags[@]} \ - "-v[show package names]" \ - "-o[output file]:file:_files" \ - "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" - ;; - test) - _arguments -s -w : \ - ${build_flags[@]} \ - "-c[do not run, compile the test binary]" \ - "-i[do not run, install dependencies]" \ - "-v[print test output]" \ - "-x[print the commands]" \ - "-short[use short mode]" \ - "-parallel[number of parallel tests]:number" \ - "-cpu[values of GOMAXPROCS to use]:number list" \ - "-run[run tests and examples matching regexp]:regexp" \ - "-bench[run benchmarks matching regexp]:regexp" \ - "-benchmem[print memory allocation stats]" \ - "-benchtime[run each benchmark until taking this long]:duration" \ - "-blockprofile[write goroutine blocking profile to file]:file" \ - "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ - "-timeout[kill test after that duration]:duration" \ - "-cpuprofile[write CPU profile to file]:file:_files" \ - "-memprofile[write heap profile to file]:file:_files" \ - "-memprofilerate[set heap profiling rate]:number" \ - "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" - ;; - list) - _arguments -s -w : \ - "-f[alternative format for the list]:format" \ - "-json[print data in json format]" \ - "-compiled[set CompiledGoFiles to the Go source files presented to the compiler]" \ - "-deps[iterate over not just the named packages but also all their dependencies]" \ - "-e[change the handling of erroneous packages]" \ - "-export[set the Export field to the name of a file containing up-to-date export information for the given package]" \ - "-find[identify the named packages but not resolve their dependencies]" \ - "-test[report not only the named packages but also their test binaries]" \ - "-m[list modules instead of packages]" \ - "-u[adds information about available upgrades]" \ - "-versions[set the Module's Versions field to a list of all known versions of that module]:number" \ - "*:importpaths:__go_packages" - ;; - mod) - typeset -a mod_commands - mod_commands+=( - 'download[download modules to local cache]' - 'edit[edit go.mod from tools or scripts]' - 'graph[print module requirement graph]' - 'init[initialize new module in current directory]' - 'tidy[add missing and remove unused modules]' - 'vendor[make vendored copy of dependencies]' - 'verify[verify dependencies have expected content]' - 'why[explain why packages or modules are needed]' - ) - if (( CURRENT == 3 )); then - _values 'go mod commands' ${mod_commands[@]} "help[display help]" - return - fi - case ${words[3]} in - help) - _values 'go mod commands' ${mod_commands[@]} - ;; - download) - _arguments -s -w : \ - "-json[print a sequence of JSON objects standard output]" \ - "*:flags" - ;; - edit) - _arguments -s -w : \ - "-fmt[reformat the go.mod file]" \ - "-module[change the module's path]" \ - "-replace[=old{@v}=new{@v} add a replacement of the given module path and version pair]:name" \ - "-dropreplace[=old{@v}=new{@v} drop a replacement of the given module path and version pair]:name" \ - "-go[={version} set the expected Go language version]:number" \ - "-print[print the final go.mod in its text format]" \ - "-json[print the final go.mod file in JSON format]" \ - "*:flags" - ;; - graph) - ;; - init) - ;; - tidy) - _arguments -s -w : \ - "-v[print information about removed modules]" \ - "*:flags" - ;; - vendor) - _arguments -s -w : \ - "-v[print the names of vendored]" \ - "*:flags" - ;; - verify) - ;; - why) - _arguments -s -w : \ - "-m[treats the arguments as a list of modules and finds a path to any package in each of the modules]" \ - "-vendor[exclude tests of dependencies]" \ - "*:importpaths:__go_packages" - ;; - esac - ;; - help) - _values "${commands[@]}" \ - 'environment[show Go environment variables available]' \ - 'gopath[GOPATH environment variable]' \ - 'packages[description of package lists]' \ - 'remote[remote import path syntax]' \ - 'testflag[description of testing flags]' \ - 'testfunc[description of testing functions]' - ;; - run) - _arguments -s -w : \ - ${build_flags[@]} \ - '*:file:_files -g "*.go"' - ;; - tool) - if (( CURRENT == 3 )); then - _values "go tool" $(go tool) - return - fi - case ${words[3]} in - [568]g) - _arguments -s -w : \ - '-I[search for packages in DIR]:includes:_path_files -/' \ - '-L[show full path in file:line prints]' \ - '-S[print the assembly language]' \ - '-V[print the compiler version]' \ - '-e[no limit on number of errors printed]' \ - '-h[panic on an error]' \ - '-l[disable inlining]' \ - '-m[print optimization decisions]' \ - '-o[file specify output file]:file' \ - '-p[assumed import path for this code]:importpath' \ - '-u[disable package unsafe]' \ - "*:file:_files -g '*.go'" - ;; - [568]l) - local O=${words[3]%l} - _arguments -s -w : \ - '-o[file specify output file]:file' \ - '-L[search for packages in DIR]:includes:_path_files -/' \ - "*:file:_files -g '*.[ao$O]'" - ;; - dist) - _values "dist tool" banner bootstrap clean env install version - ;; - *) - # use files by default - _files - ;; - esac - ;; - esac -} - -compdef __go_tool_complete go - -# aliases: go<~> +## aliases alias gob='go build' alias goc='go clean' alias god='go doc' alias gof='go fmt' alias gofa='go fmt ./...' +alias gofx='go fix' alias gog='go get' alias goga='go get ./...' alias goi='go install' alias gol='go list' alias gom='go mod' -alias gop='cd $GOPATH' +alias gopa='cd $GOPATH' alias gopb='cd $GOPATH/bin' alias gops='cd $GOPATH/src' alias gor='go run' alias got='go test' alias gota='go test ./...' +alias goto='go tool' +alias gotoc='go tool compile' +alias gotod='go tool dist' +alias gotofx='go tool fix' alias gov='go vet' diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh index 11777738c..ddc257428 100644 --- a/plugins/grails/grails.plugin.zsh +++ b/plugins/grails/grails.plugin.zsh @@ -1,5 +1,5 @@ _enumerateGrailsScripts() { - # Default directoryies + # Default directories directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts) # Check all of the plugins directories, if they exist diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh index 3f9695177..a89469a59 100644 --- a/plugins/grunt/grunt.plugin.zsh +++ b/plugins/grunt/grunt.plugin.zsh @@ -82,7 +82,7 @@ function __grunt() { update_msg=' (cache updated)' fi - # Make optioins completion. + # Make options completion. if [[ ${#__grunt_opts} -gt 0 ]]; then opts+=("${__grunt_opts[@]}") fi @@ -161,7 +161,7 @@ function __grunt_update_cache() { fi if [[ $is_updating -ne 0 ]]; then - # Update caceh. + # Update cache. __grunt_version=$version __grunt_gruntfile=$gruntfile is_updating=1 diff --git a/plugins/helm/helm.plugin.zsh b/plugins/helm/helm.plugin.zsh index 78499c15d..cadfa551a 100644 --- a/plugins/helm/helm.plugin.zsh +++ b/plugins/helm/helm.plugin.zsh @@ -1,7 +1,22 @@ -# Autocompletion for helm. -# -# Copy from kubectl : https://github.com/pstadler - -if [ $commands[helm] ]; then - source <(helm completion zsh) +if (( ! $+commands[helm] )); then + return +fi + +# TODO: 2021-12-28: delete this block +# Remove old generated file +command rm -f "${ZSH_CACHE_DIR}/helm_completion" + +# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh +# Add completions folder in $ZSH_CACHE_DIR +command mkdir -p "$ZSH_CACHE_DIR/completions" +(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) + +# If the completion file does not exist, generate it and then source it +# Otherwise, source it and regenerate in the background +if [[ ! -f "$ZSH_CACHE_DIR/completions/_helm" ]]; then + helm completion zsh >| "$ZSH_CACHE_DIR/completions/_helm" + source "$ZSH_CACHE_DIR/completions/_helm" +else + source "$ZSH_CACHE_DIR/completions/_helm" + helm completion zsh >| "$ZSH_CACHE_DIR/completions/_helm" &| fi diff --git a/plugins/heroku/heroku.plugin.zsh b/plugins/heroku/heroku.plugin.zsh index 9a99b4211..d22c1bb2f 100644 --- a/plugins/heroku/heroku.plugin.zsh +++ b/plugins/heroku/heroku.plugin.zsh @@ -1,9 +1,9 @@ -HEROKU_AC_CACHE_DIR="$HOME/.cache" -if [ "$(uname -s)" = "Darwin" ]; then - HEROKU_AC_CACHE_DIR="$HOME/Library/Caches" +if [[ "$OSTYPE" = darwin* ]]; then + cache_dir="${HOME}/Library/Caches" +else + cache_dir="${XDG_CACHE_HOME:-"${HOME}/.cache"}" fi -if [ ! -z "$XDG_CACHE_HOME" ]; then - HEROKU_AC_CACHE_DIR="$XDG_CACHE_DIR" -fi -HEROKU_AC_ZSH_SETUP_PATH=$HEROKU_AC_CACHE_DIR/heroku/autocomplete/zsh_setup -[ -f $HEROKU_AC_ZSH_SETUP_PATH ] && source $HEROKU_AC_ZSH_SETUP_PATH + +setup_path="${cache_dir}/heroku/autocomplete/zsh_setup" +[[ -f "$setup_path" ]] && source $setup_path +unset cache_dir setup_path diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh index d2c749bc3..63f0bdd42 100644 --- a/plugins/history-substring-search/history-substring-search.plugin.zsh +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -1,4 +1,8 @@ -0=${(%):-%N} +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + source ${0:A:h}/history-substring-search.zsh diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index a791cc4da..c326778d4 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -243,8 +243,8 @@ _history-substring-search-begin() { fi # - # Escape and join query parts with wildcard character '*' as seperator - # `(j:CHAR:)` join array to string with CHAR as seperator + # Escape and join query parts with wildcard character '*' as separator + # `(j:CHAR:)` join array to string with CHAR as separator # local search_pattern="*${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" diff --git a/plugins/hitchhiker/hitchhiker.plugin.zsh b/plugins/hitchhiker/hitchhiker.plugin.zsh index aeafaf01e..0b1a30119 100644 --- a/plugins/hitchhiker/hitchhiker.plugin.zsh +++ b/plugins/hitchhiker/hitchhiker.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + HITCHHIKER_DIR="${0:h}/fortunes" # Aliases diff --git a/plugins/ipfs/_ipfs b/plugins/ipfs/_ipfs index 9ee8bd79c..8771bc4ba 100644 --- a/plugins/ipfs/_ipfs +++ b/plugins/ipfs/_ipfs @@ -93,7 +93,8 @@ _ipfs_subcommand(){ (pin) _arguments \ '(-t --type)'{-t,--type}'[The type of pinned keys to list. Can be "direct", "indirect", "recursive", or "all". Default: all.]' \ - '(-q --quiet)'{-q,--quiet}'[Write just hashes of objects.]' + '(-q --quiet)'{-q,--quiet}'[Write just hashes of objects.]' \ + '(-s --stream)'{-s,--stream}'[Enable streaming of pins as they are discovered.]' ;; (p2p) _arguments '(-v --headers)'{-v,--headers}'[Print table headers (Protocol, Listen, Target).]' @@ -116,7 +117,14 @@ _ipfs_subcommand(){ ;; esac ;; - (get|query|findpeer) + (query|findpeer) + case $MAIN_SUBCOMMAND in + (dht) + _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' + ;; + esac + ;; + (get) case $MAIN_SUBCOMMAND in (dht) _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' @@ -158,22 +166,33 @@ _ipfs_subcommand(){ ;; esac ;; - (cmds|diff) + (cmds) case $MAIN_SUBCOMMAND in - (diag|object) + (diag) + _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' + ;; + esac + ;; + (diff) + case $MAIN_SUBCOMMAND in + (object) _arguments '(-v --verbose)'{-v,--verbose}'[Print extra information.]' ;; esac ;; (stat) case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '(-p --progress)'{-p,--progress}'[Return progressive data while reading through the DAG. Default: true.]' + ;; (object) _arguments '--human[Print sizes in human readable format (e.g., 1K 234M 2G).]' ;; (repo) _arguments \ - '--size-only[Only report RepoSize and StorageMax.]' \ - '--human[Print sizes in human readable format (e.g., 1K 234M 2G).]' + '(-s --size-only)'{-s,--size-only}'[Only report RepoSize and StorageMax.]' \ + '(-H --human)'{-H,--human}'[Print sizes in human readable format (e.g., 1K 234M 2G).]' ;; esac ;; @@ -186,7 +205,8 @@ _ipfs_subcommand(){ '--allow-offline[When offline, save the IPNS record to the the local datastore without broadcasting to the network instead of simply failing.]' \ '--ttl[Time duration this record should be cached for. Uses the same syntax as the lifetime option. (caution: experimental).]' \ '(-k --key)'{-k,--key}"[Name of the key to be used or a valid PeerID, as listed by 'ipfs key list -l'. Default: self.]" \ - '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' + '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' \ + '--ipns-base[Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: base36.]' ;; esac ;; @@ -254,7 +274,7 @@ _ipfs_subcommand(){ '(-p --peer)'{-p,--peer}'[Specify a peer to print bandwidth for.]' \ '(-t --proto)'{-t,--proto}'[Specify a protocol to print bandwidth for.]' \ '--poll[Print bandwidth at an interval.]' \ - '(-i --interval)'{-i,--interval}'[Time interval to wait between updating output, if 'poll' is true.]' + '(-i --interval)'{-i,--interval}"[Time interval to wait between updating output, if 'poll' is true.]" ;; esac ;; @@ -289,6 +309,7 @@ _ipfs_subcommand(){ _arguments \ '-f[Printf style format string. Default: %s.]' \ '-v[CID version to convert to.]' \ + '--codec[CID codec to convert to.]' \ '-b[Multibase to display CID in.]' ;; esac @@ -367,6 +388,45 @@ _ipfs_subcommand(){ ;; esac ;; + (export) + case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '(-p --progress)'{-p,--progress}'[Display progress on CLI. Defaults to true when STDERR is a TTY.]' + ;; + (key) + _arguments \ + '(-o --output)'{-o,--output}'[The path where the output should be stored.]' + ;; + esac + ;; + (import) + case $MAIN_SUBCOMMAND in + (dag) + _arguments \ + '--silent[No output.]' \ + '--pin-roots[Pin optional roots listed in the .car headers after importing. Default: true.]' + ;; + (key) + _arguments \ + '--ipns-base[Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: base36.]' + ;; + esac + ;; + (remote) + case $MAIN_SUBCOMMAND in + (pin) + local -a _pin_remote_arguments + _pin_remote_arguments=( + 'add:Pin object to remote pinning service.' + 'ls:List objects pinned to remote pinning service.' + 'rm:Remove pins from remote pinning service.' + 'service:Configure remote pinning services.' + ) + _ipfs_subcommand _pin_remote_arguments + ;; + esac + ;; esac ;; esac @@ -402,6 +462,8 @@ case $MAIN_SUBCOMMAND in '(--dereference-args)--dereference-args[Symlinks supplied in arguments are dereferenced.]' \ '(--stdin-name)--stdin-name[Assign a name if the file source is stdin.]' \ '(-H --hidden)'{-H,--hidden}'[Include files that are hidden. Only takes effect on recursive add.]' \ + '(--ignore)--ignore[A rule (.gitignore-stype) defining which file(s) should be ignored (variadic, experimental).]' \ + '(--ignore-rules-path)--ignore-rules-path[A path to a file with .gitignore-style ignore rules (experimental).]' \ '(-q --quiet)'{-q,--quiet}'[Write minimal output.]' \ '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' \ '(--silent)--silent[Write no output.]' \ @@ -483,6 +545,7 @@ case $MAIN_SUBCOMMAND in (daemon) _arguments \ '--init[Initialize ipfs with default settings if not already initialized.]' \ + '--init-config[Path to existing configuration file to be loaded during --init.]' \ '--init-profile[Configuration profiles to apply for --init. See ipfs init --help for more.]' \ '--routing[Overrides the routing option. Default: default.]' \ '--mount[Mounts IPFS to the filesystem.]' \ @@ -501,9 +564,12 @@ case $MAIN_SUBCOMMAND in (dag) local -a _dag_arguments _dag_arguments=( + 'export:Streams the selected DAG as a .car stream on stdout.' 'get:Get a dag node from ipfs.' + 'import:Import the contents of .car files' 'put:Add a dag node to ipfs.' 'resolve:Resolve ipld block.' + 'stat:Gets stats for a DAG' ) _ipfs_subcommand _dag_arguments ;; @@ -564,21 +630,27 @@ case $MAIN_SUBCOMMAND in '(-l --compression-level)'{-l,--compression-level}'[The level of compression (1-9).]' ;; (id) - _arguments '(-f --format)'{-f,--format}'[Optional output format.]' + _arguments \ + '(-f --format)'{-f,--format}'[Optional output format.]' \ + '--peerid-base[Encoding used for peer IDs: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}. Default: b58mh.]' ;; (init) _arguments \ - '(-b --bits)'{-b,--bits}'[Number of bits to use in the generated RSA private key. Default: 2048.]' \ + '(-a --algorithm)'{-a, --algorithm}'[Cryptographic algorithm to use for key generation. Default: ed25519.]' \ + '(-b --bits)'{-b,--bits}'[Number of bits to use in the generated RSA private key.]' \ '(-e --empty-repo)'{-e,--empty-repo}"[Don't add and pin help files to the local storage.]" \ '(-p --profile)'{-p,--profile}"[Apply profile settings to config. Multiple profiles can be separated by ','.]" ;; (key) local -a _key_arguments _key_arguments=( + 'export:Export a keypair' 'gen:Create a new keypair' + 'import:Import a key and prints imported key id' 'list:List all local keypairs' 'rename:Rename a keypair' 'rm:Remove a keypair' + 'rotate:Rotates the ipfs identity.' ) _ipfs_subcommand _key_arguments ;; @@ -596,7 +668,7 @@ case $MAIN_SUBCOMMAND in '(-v --headers)'{-v,--headers}'[Print table headers (Hash, Size, Name).]' \ '--resolve-type[Resolve linked objects to find out their types. Default: true.]' \ '--size[Resolve linked objects to find out their file size. Default: true.]' \ - '(-s --stream)'{-s,--stream}'[Enable exprimental streaming of directory entries as they are traversed.]' \ + '(-s --stream)'{-s,--stream}'[Enable experimental streaming of directory entries as they are traversed.]' \ ;; (mount) _arguments \ @@ -642,6 +714,7 @@ case $MAIN_SUBCOMMAND in _pin_arguments=( 'add:Pin objects to local storage.' 'ls:List objects pinned to local storage.' + 'remote:Pin (and unpin) objects to remote pinning service.' 'rm:Remove pinned objects from local storage.' 'update:Update a recursive pin' 'verify:Verify that recursive pins are complete.' @@ -684,6 +757,7 @@ case $MAIN_SUBCOMMAND in _stats_arguments=( 'bitswap:Show some diagnostic information on the bitswap agent.' 'bw:Print ipfs bandwidth information.' + "dht:Returns statistics about the node's DHT(s)" 'repo:Get stats for the currently used repo.' ) _ipfs_subcommand _stats_arguments diff --git a/plugins/istioctl/README.md b/plugins/istioctl/README.md new file mode 100644 index 000000000..afd4d293c --- /dev/null +++ b/plugins/istioctl/README.md @@ -0,0 +1,9 @@ +# Istioctl - Istio Command-line Tool + +The [istioctl](https://istio.io/latest/docs/ops/diagnostic-tools/istioctl/) tool is a configuration command line utility that allows service operators to debug and diagnose their Istio service mesh deployments. + +To use it, add `istioctl` to the plugins array of your zshrc file: + +```sh +plugins=(... istioctl) +``` diff --git a/plugins/istioctl/istioctl.plugin.zsh b/plugins/istioctl/istioctl.plugin.zsh new file mode 100644 index 000000000..13ead1b2b --- /dev/null +++ b/plugins/istioctl/istioctl.plugin.zsh @@ -0,0 +1,4 @@ +if [ $commands[istioctl] ]; then + source <(istioctl completion zsh) + compdef _istioctl istioctl +fi diff --git a/plugins/iterm2/iterm2.plugin.zsh b/plugins/iterm2/iterm2.plugin.zsh index e4ac72ee3..9d8e40bf6 100644 --- a/plugins/iterm2/iterm2.plugin.zsh +++ b/plugins/iterm2/iterm2.plugin.zsh @@ -8,7 +8,7 @@ if [[ "$OSTYPE" == darwin* ]] && [[ -n "$ITERM_SESSION_ID" ]] ; then ### - # Executes an arbitrary iTerm2 command via an escape code sequce. + # Executes an arbitrary iTerm2 command via an escape code sequence. # See https://iterm2.com/documentation-escape-codes.html for all supported commands. # Example: $ _iterm2_command "1337;StealFocus" function _iterm2_command() { diff --git a/plugins/jenv/README.md b/plugins/jenv/README.md index c043c626e..148794197 100644 --- a/plugins/jenv/README.md +++ b/plugins/jenv/README.md @@ -1,6 +1,6 @@ # jenv plugin -[jenv](https://www.jenv.be/) is a Java version manager similiar to [rbenv](https://github.com/rbenv/rbenv) +[jenv](https://www.jenv.be/) is a Java version manager similar to [rbenv](https://github.com/rbenv/rbenv) and [pyenv](https://github.com/yyuu/pyenv). This plugin initializes jenv and provides the `jenv_prompt_info` function to add Java diff --git a/plugins/jenv/jenv.plugin.zsh b/plugins/jenv/jenv.plugin.zsh index 946ce18a5..240102604 100644 --- a/plugins/jenv/jenv.plugin.zsh +++ b/plugins/jenv/jenv.plugin.zsh @@ -18,13 +18,19 @@ if [[ $FOUND_JENV -eq 1 ]]; then (( $+commands[jenv] )) || export PATH="${jenvdir}/bin:$PATH" eval "$(jenv init - zsh)" - function jenv_prompt_info() { jenv version-name 2>/dev/null } + function jenv_prompt_info() { + local version="$(jenv version-name 2>/dev/null)" + echo "${version:gs/%/%%}" + } if [[ -d "${jenvdir}/versions" ]]; then export JENV_ROOT=$jenvdir fi else - function jenv_prompt_info() { echo "system: $(java -version 2>&1 | cut -f 2 -d ' ')" } + function jenv_prompt_info() { + local version="$(java -version 2>&1 | cut -d' ' -f2)" + echo "system: ${version:gs/%/%%}" + } fi unset jenvdir jenvdirs FOUND_JENV diff --git a/plugins/jfrog/jfrog.plugin.zsh b/plugins/jfrog/jfrog.plugin.zsh index 064ffa2db..1441bc107 100644 --- a/plugins/jfrog/jfrog.plugin.zsh +++ b/plugins/jfrog/jfrog.plugin.zsh @@ -7,4 +7,5 @@ _jfrog() { fi } -compdef _jfrog jfrog \ No newline at end of file +compdef _jfrog jfrog +compdef _jfrog jf diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 3630facaa..6edb59751 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -1,13 +1,22 @@ if (( $+commands[kubectl] )); then - __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion" + # TODO: 2022-01-05: remove this block + # remove old generated files + command rm -f "$ZSH_CACHE_DIR/kubectl_completion" - if [[ ! -f $__KUBECTL_COMPLETION_FILE || ! -s $__KUBECTL_COMPLETION_FILE ]]; then - kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE - fi + # TODO: 2022-01-05: remove this bit of code as it exists in oh-my-zsh.sh + # Add completions folder in $ZSH_CACHE_DIR + command mkdir -p "$ZSH_CACHE_DIR/completions" + (( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) - [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE - - unset __KUBECTL_COMPLETION_FILE + # If the completion file does not exist, generate it and then source it + # Otherwise, source it and regenerate in the background + if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then + kubectl completion zsh >| "$ZSH_CACHE_DIR/completions/_kubectl" + source "$ZSH_CACHE_DIR/completions/_kubectl" + else + source "$ZSH_CACHE_DIR/completions/_kubectl" + kubectl completion zsh >| "$ZSH_CACHE_DIR/completions/_kubectl" &| + fi fi # This command is used a LOT both below and in daily life @@ -97,8 +106,9 @@ alias kdd='kubectl describe deployment' alias kdeld='kubectl delete deployment' alias ksd='kubectl scale deployment' alias krsd='kubectl rollout status deployment' -kres(){ - kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S) + +function kres(){ + kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S) } # Rollout management. @@ -170,9 +180,9 @@ alias kdelcj='kubectl delete cronjob' # Only run if the user actually has kubectl installed if (( ${+_comps[kubectl]} )); then - kj() { kubectl "$@" -o json | jq; } - kjx() { kubectl "$@" -o json | fx; } - ky() { kubectl "$@" -o yaml | yh; } + function kj() { kubectl "$@" -o json | jq; } + function kjx() { kubectl "$@" -o json | fx; } + function ky() { kubectl "$@" -o yaml | yh; } compdef kj=kubectl compdef kjx=kubectl diff --git a/plugins/kubectx/kubectx.plugin.zsh b/plugins/kubectx/kubectx.plugin.zsh index abbdc254b..1419f102f 100644 --- a/plugins/kubectx/kubectx.plugin.zsh +++ b/plugins/kubectx/kubectx.plugin.zsh @@ -1,9 +1,11 @@ -typeset -A kubectx_mapping +typeset -g -A kubectx_mapping function kubectx_prompt_info() { - if [ $commands[kubectl] ]; then - local current_ctx=`kubectl config current-context` - # use value in associative array if it exists, otherwise fall back to the context name - echo "${kubectx_mapping[$current_ctx]:-$current_ctx}" - fi + (( $+commands[kubectl] )) || return + + local current_ctx=$(kubectl config current-context) + + # use value in associative array if it exists + # otherwise fall back to the context name + echo "${kubectx_mapping[$current_ctx]:-${current_ctx:gs/%/%%}}" } diff --git a/plugins/lpass/README.md b/plugins/lpass/README.md new file mode 100644 index 000000000..d3923ea67 --- /dev/null +++ b/plugins/lpass/README.md @@ -0,0 +1,13 @@ +# lpass (LastPass CLI) + +This plugin adds completion for LastPass CLI [`lpass`](https://github.com/lastpass/lastpass-cli). + +To use it, add `lpass` to the plugins array in your zshrc file: + +```zsh +plugins=(... lpass) +``` + +Completion is taken from the `lpass` release [`1.3.3`](https://github.com/lastpass/lastpass-cli/releases/tag/v1.3.3). + +Updated on October 9th, 2020. diff --git a/plugins/lpass/_lpass b/plugins/lpass/_lpass new file mode 100644 index 000000000..e6193a22d --- /dev/null +++ b/plugins/lpass/_lpass @@ -0,0 +1,169 @@ +#compdef lpass + +_lpass() { + local cmd has_color has_sync has_interactive + if (( CURRENT > 2)); then + cmd=${words[2]} + # Set the context for the subcommand. + curcontext="${curcontext%:*:*}:lpass-$cmd" + # Narrow the range of words we are looking at to exclude `lpass' + (( CURRENT-- )) + shift words + # Run the completion for the subcommand + case "${cmd}" in + login) + _arguments : \ + '--trust[Cause subsequent logins to not require multifactor authentication.]' \ + '--plaintext-key[Save plaintext decryption key to the hard disk]' \ + '--force[Do not ask on saving plaintext key]' + has_color=1 + ;; + + logout) + _arguments : '--force[Force confirmation]' + has_color=1 + ;; + show) + _arguments : \ + '(-c --clip)'{-c,--clip}'[Copy output to clipboard]' \ + '(-x --expand-multi)'{-x,---expand-multi}'[Show the requested information from all of the matching sites]' \ + '(--all --username --password --url --notes --field= --id --name --attach=)'{--all,--username,--password,--url,--notes,--field=,--id,--name,--attach=}'[Output the specific field]' \ + '(--basic-regexp,--fixed-string)'{-G,--basic-regexp}'[Find a site by substring or regular expression]' \ + '--format=[Format output with printf-style placeholders]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + ;; + + ls) + _arguments : \ + '(-l --long)'{-l,--long}'[Also list the last modification time and username]' \ + '-u[List username]' \ + '-m[List modification time]' \ + '--format=[Format output with printf-style placeholders]' + _lpass_complete_groups + has_color=1 + has_sync=1 + ;; + mv) + _lpass_complete_uniqenames + _lpass_complete_groups + has_color=1 + ;; + duplicate|rm) + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + ;; + add) + _arguments : '(--username --password --url --notes --field=)'{--username,--password,--url,--notes,--field=}'[Add field]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + has_interactive=1 + ;; + edit) + _arguments : '(--name --username --password --url --notes --field=)'{--name,--username,--password,--url,--notes,--field=}'[Update field]' + _lpass_complete_uniqenames + has_color=1 + has_sync=1 + has_interactive=1 + ;; + generate) + _arguments : \ + '(-c --clip)'{-c,--clip}'[Copy output to clipboard]' \ + '--username=[USERNAME]' \ + '--url=[URL]' \ + '--no-symbols[Do not use symbols]' + has_sync=1 + ;; + status) + _arguments : '(-q --quiet)'{-q,--quiet}'[Supress output to stdout]' + has_color=1 + ;; + sync) + _arguments : '(-b --background)'{-b,--background}'[Run sync in background]' + has_color=1 + ;; + export) + _arguments : '--fields=[Field list]' + has_color=1 + has_sync=1 + ;; + import) + if ((CURRENT < 3)); then + _files + fi + ;; + esac + + if [ -n "$has_sync" ] || [ -n "$has_color" ] || [ -n "$has_interactive" ]; then + local -a generic_options + if [ "$has_sync" -eq 1 ]; then + generic_options+=('--sync=[Synchronize local cache with server: auto | now | no]') + fi + if [ "$has_color" -eq 1 ]; then + generic_options+=('--color=[Color: auto | never | always]') + fi + if [ "$has_interactive" -eq 1 ]; then + generic_options+=("--non-interactive[Use stardard input instead of $EDITOR]") + fi + _arguments $generic_options + fi + else + local -a subcommands + subcommands=( + "login:Authenticate with the LastPass server and initialize a local cache" + "logout:Remove the local cache and stored encryption keys" + "passwd:Change your LastPass password" + "show:Display a password or selected field" + "ls:List names in groups in a tree structure" + "mv:Move the specified entry to a new group" + "add:Add a new entry" + "edit:Edit the selected field" + "generate:Create a randomly generated password" + "duplicate:Create a duplicate entry of the one specified" + "rm:Remove the specified entry" + "status:Show current login status" + "sync:Synchronize local cache with server" + "export:Dump all account information including passwords as unencrypted csv to stdout" + "import:Upload accounts from an unencrypted CSV file to the server" + "share:Manipulate shared folders (only enterprise or premium user)" + ) + _describe -t commands 'lpass' subcommands + _arguments : \ + '(-h --help)'{-h,--help}'[show help]' \ + '(-v --version)'{-v,--version}'[show version]' + + fi +} + +_lpass_complete_uniqenames(){ + local -a entries + while read i; do + if [ -n "$i" ]; then + entries+=("$i") + fi + done < <(lpass ls --sync auto --format "%an" --color=never) + compadd -a entries +} + + +_lpass_complete_groups() { + local -a entries + while read i; do + if [ -n "$i" ]; then + entries+=("$i") + fi + done < <(lpass ls --sync auto --format "%aN" --color=never | grep -E "\/$") + compadd -a entries +} + +_lpass +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index 6a91be336..b540eecb5 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -1,3 +1,8 @@ +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + # Open the current directory in a Finder window alias ofd='open_command $PWD' diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 663215a74..491a60686 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -191,7 +191,7 @@ while [ $# -gt 0 ]; do -d "grant_type=client_credentials" \ ) if ! [[ "${SPOTIFY_TOKEN_RESPONSE_DATA}" =~ "access_token" ]]; then - cecho "Autorization failed, please check ${USER_CONFG_FILE}" + cecho "Authorization failed, please check ${USER_CONFG_FILE}" cecho "${SPOTIFY_TOKEN_RESPONSE_DATA}" showAPIHelp return 1 diff --git a/plugins/macports/README.md b/plugins/macports/README.md index ded823f3f..09bd42df2 100644 --- a/plugins/macports/README.md +++ b/plugins/macports/README.md @@ -15,7 +15,33 @@ plugins=(... macports) |-------|------------------------------------|--------------------------------------------------------------| | pc | `sudo port clean --all installed` | Clean up intermediate installation files for installed ports | | pi | `sudo port install` | Install package given as argument | +| pli | `port livecheck installed` | Check for updates for installed ports | +| plm | `port-livecheck-maintainer` | Check for updates of ports mainained by the specified users | | psu | `sudo port selfupdate` | Update ports tree with MacPorts repository | | puni | `sudo port uninstall inactive` | Uninstall inactive ports | | puo | `sudo port upgrade outdated` | Upgrade ports with newer versions available | | pup | `psu && puo` | Update ports tree, then upgrade ports to newest versions | + +## Commands + +### port-livecheck-maintainer + +```text +Usage: + port-livecheck-maintainer + port-livecheck-maintainer (maintainer)+ + port-livecheck-maintainer -h|--help + +Check + +Options: + maintainer maintainer id + -h print this help message and exit +``` + +Checks whether updates are available for ports whose maintainer is the current +user, or any of a specified list of maintainer expressions. The current user +maintainer id is retrieved as follows: + +* The value of the `MACPORTS_MAINTAINER` variable, if set and not null. +* The value of the `USER` variable. diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh index d1fde30d4..d438057f9 100644 --- a/plugins/macports/macports.plugin.zsh +++ b/plugins/macports/macports.plugin.zsh @@ -1,6 +1,44 @@ alias pc="sudo port clean --all installed" alias pi="sudo port install" +alias pli="port livecheck installed" +alias plm="port-livecheck-maintainer" alias psu="sudo port selfupdate" alias puni="sudo port uninstall inactive" alias puo="sudo port upgrade outdated" -alias pup="psu && puo" +alias pup="sudo port selfupdate && sudo port upgrade outdated" + +port-livecheck-maintainer() { + (( ${+commands[port]} == 0 )) || { + print -- "port: not found" >&2 + return 1 + } + + local -a help_flag + zparseopts -D -E h=help_flag -help=help_flag + + (( ${#help_flag} )) && { + cat << EOF >&2 +Usage: + port-livecheck-maintainer + port-livecheck-maintainer (maintainer)+ + port-livecheck-maintainer -h|--help + +Check + +Options: + maintainer maintainer id + -h print this help message and exit +EOF + return 1 + } + + if (( $# == 0 )); then + local default=${MACPORTS_MAINTAINER:-${USER}} + port livecheck maintainer:${default} + return $? + fi + + for i in $@; do + port livecheck maintainer:${i} + done +} diff --git a/plugins/mercurial/README.md b/plugins/mercurial/README.md index 756964896..19d4a17b1 100644 --- a/plugins/mercurial/README.md +++ b/plugins/mercurial/README.md @@ -11,27 +11,29 @@ plugins=(... mercurial) ## Aliases -| Alias | Command | -|--------|-------------------------------------------------------------------------------------------------------------| -| `hga` | `hg add` | -| `hgc` | `hg commit` | -| `hgca` | `hg commit --amend` | -| `hgb` | `hg branch` | -| `hgba` | `hg branches` | -| `hgbk` | `hg bookmarks` | -| `hgco` | `hg checkout` | -| `hgd` | `hg diff` | -| `hged` | `hg diffmerge` | -| `hgp` | `hg push` | -| `hgs` | `hg status` | -| `hgsl` | `hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n"` | -| `hgun` | `hg resolve --list` | -| `hgi` | `hg incoming` | -| `hgl` | `hg pull -u` | -| `hglr` | `hg pull --rebase` | -| `hgo` | `hg outgoing` | -| `hglg` | `hg log --stat -v` | -| `hglgp`| `hg log --stat -p -v` | +| Alias | Command | +| ------- | ------------------------------------------- | +| `hga` | `hg add` | +| `hgc` | `hg commit` | +| `hgca` | `hg commit --amend` | +| `hgci` | `hg commit --interactive` | +| `hgb` | `hg branch` | +| `hgba` | `hg branches` | +| `hgbk` | `hg bookmarks` | +| `hgco` | `hg checkout` | +| `hgd` | `hg diff` | +| `hged` | `hg diffmerge` | +| `hgp` | `hg push` | +| `hgs` | `hg status` | +| `hgsl` | `hg log --limit 20 --template "