summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to 'admin')
-rw-r--r--admin/MAINTAINERS79
-rw-r--r--admin/admin.el8
-rw-r--r--admin/authors.el270
-rw-r--r--admin/charsets/Makefile.in2
-rwxr-xr-xadmin/charsets/mapconv3
-rw-r--r--admin/coccinelle/alloc_cast.cocci6
-rw-r--r--admin/coccinelle/build_string.cocci6
-rw-r--r--admin/coccinelle/nilp.cocci6
-rw-r--r--admin/coccinelle/unibyte_string.cocci6
-rw-r--r--admin/coccinelle/xsave.cocci11
-rw-r--r--admin/cus-test.el11
-rwxr-xr-xadmin/emake47
-rw-r--r--admin/find-gc.el2
-rwxr-xr-xadmin/git-bisect-start22
-rw-r--r--admin/gitmerge.el2
-rwxr-xr-xadmin/merge-gnulib35
-rw-r--r--admin/notes/copyright2
-rw-r--r--admin/notes/elpa2
-rw-r--r--admin/notes/emba40
-rw-r--r--admin/notes/git-workflow10
-rw-r--r--admin/notes/java1097
-rwxr-xr-xadmin/notes/tree-sitter/build-module/batch.sh32
-rwxr-xr-xadmin/notes/tree-sitter/build-module/build.sh95
-rw-r--r--admin/notes/tree-sitter/performance25
-rw-r--r--admin/notes/unicode42
-rw-r--r--admin/notes/years2
-rw-r--r--admin/unidata/BidiBrackets.txt10
-rw-r--r--admin/unidata/BidiMirroring.txt8
-rw-r--r--admin/unidata/Blocks.txt7
-rw-r--r--admin/unidata/IdnaMappingTable.txt23
-rw-r--r--admin/unidata/Makefile.in14
-rw-r--r--admin/unidata/NormalizationTest.txt6
-rw-r--r--admin/unidata/PropertyValueAliases.txt38
-rw-r--r--admin/unidata/ScriptExtensions.txt47
-rw-r--r--admin/unidata/Scripts.txt14
-rw-r--r--admin/unidata/SpecialCasing.txt6
-rw-r--r--admin/unidata/UnicodeData.txt7
-rw-r--r--admin/unidata/confusables.txt10
-rw-r--r--admin/unidata/copyright.html20
-rw-r--r--admin/unidata/emoji-data.txt6
-rw-r--r--admin/unidata/emoji-sequences.txt17
-rw-r--r--admin/unidata/emoji-test.txt337
-rw-r--r--admin/unidata/emoji-variation-sequences.txt1458
-rw-r--r--admin/unidata/emoji-zwj-sequences.txt144
-rw-r--r--admin/unidata/emoji-zwj.awk20
45 files changed, 2877 insertions, 1178 deletions
diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS
index 98bbfa5bd7c..f59c684e81f 100644
--- a/admin/MAINTAINERS
+++ b/admin/MAINTAINERS
@@ -124,10 +124,6 @@ Ulf Jasper
lisp/net/newsticker.el
test/lisp/net/newsticker-tests.el
- Icalendar
- lisp/calendar/icalendar.el
- test/lisp/calendar/icalendar-tests.el
-
Amin Bandali
ERC
lisp/erc/*
@@ -137,6 +133,8 @@ Andrea Corallo
Lisp native compiler
src/comp.c
lisp/emacs-lisp/comp.el
+ lisp/emacs-lisp/comp-common.el
+ lisp/emacs-lisp/comp-run.el
lisp/emacs-lisp/comp-cstr.el
test/src/comp-*.el
@@ -165,6 +163,75 @@ Po Lu
Haiku battery support in lisp/battery.el
+ The Android port:
+ src/android-asset.h
+ src/android.c
+ src/android-emacs.c
+ src/androidfns.c
+ src/androidfont.c
+ src/androidgui.h
+ src/android.h
+ src/androidmenu.c
+ src/androidselect.c
+ src/androidterm.c
+ src/androidterm.h
+ src/androidvfs.c
+ src/sfnt.c
+ src/sfntfont-android.c
+ src/sfntfont.c
+ src/sfntfont.h
+ src/sfnt.h
+ java/org/gnu/emacs/EmacsActivity.java
+ java/org/gnu/emacs/EmacsApplication.java
+ java/org/gnu/emacs/EmacsClipboard.java
+ java/org/gnu/emacs/EmacsContextMenu.java
+ java/org/gnu/emacs/EmacsCursor.java
+ java/org/gnu/emacs/EmacsDesktopNotification.java
+ java/org/gnu/emacs/EmacsDialogButtonLayout.java
+ java/org/gnu/emacs/EmacsDialog.java
+ java/org/gnu/emacs/EmacsDirectoryEntry.java
+ java/org/gnu/emacs/EmacsDocumentsProvider.java
+ java/org/gnu/emacs/EmacsDrawable.java
+ java/org/gnu/emacs/EmacsDrawLine.java
+ java/org/gnu/emacs/EmacsDrawPoint.java
+ java/org/gnu/emacs/EmacsDrawRectangle.java
+ java/org/gnu/emacs/EmacsFillPolygon.java
+ java/org/gnu/emacs/EmacsFillRectangle.java
+ java/org/gnu/emacs/EmacsFontDriver.java
+ java/org/gnu/emacs/EmacsGC.java
+ java/org/gnu/emacs/EmacsHandleObject.java
+ java/org/gnu/emacs/EmacsHolder.java
+ java/org/gnu/emacs/EmacsInputConnection.java
+ java/org/gnu/emacs/EmacsLauncherPreferencesActivity.java
+ java/org/gnu/emacs/EmacsMultitaskActivity.java
+ java/org/gnu/emacs/EmacsNative.java
+ java/org/gnu/emacs/EmacsNoninteractive.java
+ java/org/gnu/emacs/EmacsOpenActivity.java
+ java/org/gnu/emacs/EmacsPixmap.java
+ java/org/gnu/emacs/EmacsPreferencesActivity.java
+ java/org/gnu/emacs/EmacsSafThread.java
+ java/org/gnu/emacs/EmacsSdk11Clipboard.java
+ java/org/gnu/emacs/EmacsSdk23FontDriver.java
+ java/org/gnu/emacs/EmacsSdk7FontDriver.java
+ java/org/gnu/emacs/EmacsSdk8Clipboard.java
+ java/org/gnu/emacs/EmacsService.java
+ java/org/gnu/emacs/EmacsSurfaceView.java
+ java/org/gnu/emacs/EmacsThread.java
+ java/org/gnu/emacs/EmacsView.java
+ java/org/gnu/emacs/EmacsWindowAttachmentManager.java
+ java/org/gnu/emacs/EmacsWindow.java
+ java/org/gnu/emacs/R.java
+ m4/ndk-build.m4
+ cross
+
+ Android battery support in lisp/battery.el
+
+Jim Porter
+ Eshell
+ lisp/eshell/*
+ test/lisp/eshell/*
+ doc/misc/eshell.texi
+
==============================================================================
2. Areas that someone is willing to maintain, although he would not
necessarily mind if someone else was the official maintainer.
@@ -299,7 +366,7 @@ Po Lu
Tramp
Maintainer: Michael Albinus
- Repository: git://git.savannah.gnu.org/tramp.git
+ Repository: https://git.savannah.gnu.org/git/tramp.git
Mailing List: tramp-devel@gnu.org
Bug Reports: M-x tramp-bug
Notes: For backward compatibility requirements, see
@@ -321,7 +388,7 @@ Modus themes
Org Mode
Home Page: https://orgmode.org/
Maintainer: Org Mode developers
- Repository: git://git.sv.gnu.org/emacs/org-mode.git
+ Repository: https://git.savannah.gnu.org/git/emacs/org-mode.git
Mailing list: emacs-orgmode@gnu.org
Bug Reports: M-x org-submit-bug-report
Notes: Org Mode is maintained as a separate project that is
diff --git a/admin/admin.el b/admin/admin.el
index 30bc147940c..7fa2727aeb7 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -110,7 +110,7 @@ Root must be the root of an Emacs source tree."
(submatch (1+ (in "0-9."))))))
(set-version-in-file root "configure.ac" version
(rx (and "AC_INIT" (1+ (not (in ?,)))
- ?, (0+ space) ?\[
+ ?, (0+ space)
(submatch (1+ (in "0-9."))))))
(set-version-in-file root "nt/README.W32" version
(rx (and "version" (1+ space)
@@ -843,8 +843,11 @@ $Date: %s $
(package-install pkg)
(require pkg nil t))))
+(declare-function org-html-export-as-html "ox-html.el")
(defvar org-html-postamble)
(defvar org-html-mathjax-template)
+(defvar htmlize-output-type)
+
(defun make-news-html-file (root version)
"Convert the NEWS file into an HTML file."
(interactive (let ((root
@@ -1035,8 +1038,7 @@ If optional argument OLD is non-nil, also scan for `defvar's."
(and grp
(setq grp (car (cdr-safe grp))) ; (quote foo) -> foo
(setq ver (assq grp glist))))
- (setq alist (cons (cons var ver) alist))))
- (if form (format-message "Malformed defcustom: `%s'" form)))))
+ (setq alist (cons (cons var ver) alist)))))))
(message "%sdone" m)
alist))
diff --git a/admin/authors.el b/admin/authors.el
index 083023a3dad..6c74f4dd7a1 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -48,9 +48,7 @@ files.")
("Alexander Gramiak" "Alex Gramiak")
("Alexandru Harsanyi" "Alex Harsanyi")
("Álvar Jesús Ibeas Martín" "Álvar Ibeas")
- (nil "ambihelical")
("Andrea Corallo" "AndreaCorallo")
- ("Andrii Kolomoiets" "andreyk\\.mad@gmail\\.com")
("Andrew Csillag" "Drew Csillag")
("Andrew G Cohen" "Andrew Cohen")
("Anna M. Bigatti" "Anna Bigatti")
@@ -58,26 +56,19 @@ files.")
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
"Barry A. Warsaw, ITB" "Barry Warsaw")
("Bastien Guerry" "Bastien .*bzg")
- ("Benjamin Carlsson" "glacials" "ben@twos\\.dev")
- ("Benjamin Schwerdtner" "Benjamin\\.Schwerdtner@gmail\\.com" "Ben Schw")
("Bill Carpenter" "WJ Carpenter")
("Bill Mann" "William F. Mann")
("Bill Rozas" "Guillermo J. Rozas")
- ("Billy Zheng" "vil963@gmail\\.com")
- (nil "binjo\\.cn@gmail\\.com")
- (nil "bug-gnu-emacs@gnu\\.org") ; mistake
+ (nil "binjo.cn@gmail.com")
+ (nil "bug-gnu-emacs@gnu.org") ; mistake
("Björn Torkelsson" "Bjorn Torkelsson")
("Brian Fox" "Brian J. Fox")
("Brian P Templeton" "BT Templeton")
("Brian Sniffen" "Brian T. Sniffen")
- (nil "brotzeitmacher@gmail\\.com")
(nil "castor@my-dejanews")
- (nil "chengang31@gmail\\.com")
+ (nil "chengang31@gmail.com")
(nil "chuntaro")
("Clément Pit-Claudel" "Clément Pit--Claudel")
- (nil "Cristian" "crstml@libero\\.it")
- ("Le Trung Dan" "daanturo@gmail\\.com" "Daanturo")
- ("Daniel Freeman" "dannyfreeman")
("David Abrahams" "Dave Abrahams")
("David J. Biesack" "David Biesack")
("David De La Harpe Golden" "David Golden")
@@ -90,7 +81,7 @@ files.")
("Daniel Laurens Nicolai" "dalanicolai")
(nil "deech@deech")
("Deepak Goel" "D. Goel")
- ("Earl Hyatt" "Earl" "ej32u@protonmail\\.com")
+ ("Earl Hyatt" "Earl" "ej32u@protonmail.com")
("Ed L. Cashin" "Ed L Cashin")
("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
("Emilio C. Lopes" "Emilio Lopes")
@@ -102,26 +93,19 @@ files.")
(nil "felix\\.dick@web\\.de")
("Felicián Németh" "Felician Nemeth")
(nil "foudfou")
- ("Feraidoon Mehri"
- "NightMachinary"
- "rudiwillalwaysloveyou@gmail\\.com" "fifymehry@gmail\\.com")
("Francis Litterio" "Fran Litterio")
("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright")
("François Pinard" "Francois Pinard")
("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`")
("Frederic Pierresteguy" "Fred Pierresteguy")
(nil "^FSF")
- (nil "galeo")
- ("Garid Zorigoo" "garid3000" "garidzorigoo@gmail\\.com")
("Gerd Möllmann" "Gerd Moellmann")
(nil "haqle314")
("Grégoire Jadi" "Gregoire Jadi")
("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
- (nil "hokomo@airmail\\.cc" "hokomo")
("Hrvoje Nikšić" "Hrvoje Niksic")
("Ian Dunn" "^Ian D\\>")
;; lisp/org/ChangeLog.1 2010-11-11.
- ("Ignacio Casso" "ignacio\\.decasso@imdea\\.org" "ignaciocasso@hotmail\\.com")
(nil "immerrr")
(nil "aaa bbb")
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
@@ -139,8 +123,6 @@ files.")
("Jérémie Courrèges-Anglas" "Jeremie Courreges-Anglas")
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
("Jérémy Compostella" "Jeremy Compostella")
- (nil "jgarte@" "jgart")
- (nil "jicksaw@pm\\.me" "jicksaw")
("Jimmy Aguilar Mena" "Ergus")
("Jindřich Makovička" "Jindrich Makovicka")
("Johan Bockgård" "Johan Bockgard")
@@ -155,7 +137,6 @@ files.")
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
("Jürgen Hötzel" "Juergen Hoetzel")
(nil "k3tu0isui")
- (nil "kby@tilde\\.team")
("K. Shane Hartman" "Shane Hartman")
("Kai Großjohann" "Kai Grossjohann")
("Karl Berry" "K. Berry")
@@ -171,9 +152,6 @@ files.")
("Koen van Greevenbroek" "realcomplex" "koenvg@posteo\\.net")
("Kyle Jones" "Kyle E. Jones")
("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
- ("Laurence Warne" "lWarne" "laurencewarne@gmail\\.com")
- (nil "lensplaysgames@gmail\\.com")
- (nil "lorniu@gmail\\.com")
(nil "LynX@bk.ru")
(nil "lu4nx")
("Marcus G. Daniels" "Marcus Daniels")
@@ -195,20 +173,15 @@ files.")
("Michael R. Cook" "Michael Cook")
("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
("Michalis V" "^mvar")
- ("Miha Rihtaršič" "Miha Rihtarsic" "miha@kamnitnik\\.top" "miha")
+ ("Miha Rihtaršič" "Miha Rihtarsic")
("Mikio Nakajima" "Nakajima Mikio")
- (nil "montag451@laposte\\.net")
- (nil "na@aisrntairetnraoitn")
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
("Noah Peart" "noah\\.v\\.peart@gmail\\.com")
("Noorul Islam" "Noorul Islam K M")
;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
- (nil "odanoburu@")
- (nil "one\\.last\\.kiss@outlook\\.com")
- ("Cao ZhenXiang" "mail@ookami\\.one")
("Óscar Fuentes" "Oscar Fuentes")
(nil "pillule")
- (nil "psyberbits@gmail\\.com")
+ (nil "psyberbits@gmail.com")
("Paul Eggert" "Paul R\\. Eggert")
("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
("Pavel Kobiakov" "Pavel Kobyakov")
@@ -220,19 +193,15 @@ files.")
("Philip Kaludercic" "Philip K\\." "Philip K")
("Philipp Stephani" "Philipp .*phst@google")
("Piotr Zieliński" "Piotr Zielinski")
- ("Po Lu" "Po Lu Via") ; looks like a mistake
- ("Po Lu" "oldosfan" "luangruo@yahoo\\.com")
+ ("Po Lu" "Po Lu Via" "Your Name") ; looks like a mistake
("Przemysław Wojnowski" "Przemyslaw Wojnowski")
- ("Qifan Wang" "LdBeth" "andpuke@foxmail\\.com")
- ("R. Bernstein" "rb@dustyfeet\\.com")
+ ("R. Bernstein" "rb@dustyfeet.com")
("Rainer Schöpf" "Rainer Schoepf")
("Raja R. Harinath" "Raja R Harinath")
("Rasmus Pank Roulund" "Rasmus .*rasmus@gmx")
- (nil "rbrtb@")
("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski")
("Richard King" "Dick King")
("Richard M. Stallman" "Richard Stallman" "rms@gnu.org")
- (nil "webmaster@robario\\.com")
("Robert J. Chassell" "Bob Chassell")
("Roberto Huelga Díaz" "Roberto Huelga")
("Rodney J. Whitby" "Rod Whitby")
@@ -240,21 +209,19 @@ files.")
("Ron Schnell" "Ronnie Schnell")
("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}")
("Ryan Thompson" "Ryan .*rct@thompsonclan")
- (nil "rvs314")
(nil "rzl24ozi")
("Sacha Chua" "Sandra Jean Chua")
("Sam Steingold" "Sam Shteingold")
("Satyaki Das" "Indexed search by Satyaki Das")
("Sébastien Vauban" "Sebastien Vauban")
("Sergey Litvinov" "Litvinov Sergey")
- ("Simen Heggestøyl" "simenheg@gmail\\.com")
+ ("Simen Heggestøyl" "simenheg@gmail.com")
(nil "prime.wizard")
("Shun-ichi Goto" "Shun-ichi GOTO")
;; The trailing dash is a kludge, so this contributor is not ignored.
("skykanin-" "skykanin@users\\.noreply\\.github\\.com")
;; There are other Stefans.
;;; ("Stefan Monnier" "Stefan")
- (nil "ssnnoo")
("Steven L. Baur" "SL Baur" "Steven L Baur")
("Stewart M. Clamen" "Stewart Clamen")
("Stuart D. Herring" "Stuart Herring" "Davis Herring")
@@ -268,7 +235,6 @@ files.")
("Thomas Dye" "Tom Dye")
("Thomas Horsley" "Tom Horsley") ; FIXME ?
("Thomas Wurgler" "Tom Wurgler")
- (nil "thuna\\.cing@gmail\\.com")
("Toby Cubitt" "Toby S\\. Cubitt")
("Tomohiko Morioka" "MORIOKA Tomohiko")
("Torbjörn Axelsson" "Torbjvrn Axelsson")
@@ -277,29 +243,23 @@ files.")
("Tsugutomo Enami" "enami tsugutomo")
("Ulrich Müller" "Ulrich Mueller")
(nil "vividsnow")
- (nil "Valenoern" "valenoern@distributary\\.network")
("Vincent Del Vecchio" "Vince Del Vecchio")
- ("M Visuwesh" "visuweshm@gmail\\.com")
- (nil "vjoki@")
- (nil "whatacold@gmail\\.com")
("William M. Perry" "Bill Perry")
("Wlodzimierz Bzyl" "W.*dek Bzyl")
(nil "xyblor")
- ("Yilkal Argaw" "yilkalargaw" "yilkalargawworkneh@gmail\\.com")
("Yoni Rabkin" "Yoni Rabkin Katzenell")
("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則")
- ("Yuzhana Ego" "YugaEgo" "yet@ego\\.team")
("Yutaka NIIBE" "NIIBE Yutaka")
(nil "stardiviner")
- (nil "lin\\.sun")
+ (nil "lin.sun")
("Nitish Chinta" "nitishch")
("Carlos Pita" "memeplex")
("Vinicius Jose Latorre" "viniciusjl")
("Gaby Launay" "galaunay")
("Dick R. Chiang" "dickmao")
- ("Lin Zhou" "georgealbert@qq\\.com")
- (nil "yan@metatem\\.net")
- (nil "gnu_lists@halloleo\\.hailmail\\.net")
+ ("Lin Zhou" "georgealbert@qq.com")
+ (nil "yan@metatem.net")
+ (nil "gnu_lists@halloleo.hailmail.net")
)
"Alist of author aliases.
@@ -973,30 +933,9 @@ Changes to files in this list are not listed.")
"emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
"test-distrib.c" "testfile"
"tpu-edt.doc" ; see below
- ;; etc/images/gnus/
- "etc/images/gnus/important.pbm"
- "etc/images/gnus/receipt.pbm"
- "etc/images/gnus/unimportant.pbm"
"iso-swed.el"
- ;; lisp/obsolete/
"lisp/obsolete/vc-mcvs.el"
"obsolete/vc-mcvs.el"
- "lisp/obsolete/patcomp.el"
- "lisp/obsolete/abbrevlist.el"
- "lisp/obsolete/assoc.el"
- "obsolete/assoc.el"
- "lisp/obsolete/complete.el"
- "lisp/obsolete/cust-print.el"
- "lisp/obsolete/erc-hecomplete.el"
- "lisp/obsolete/mailpost.el"
- "obsolete/mailpost.el"
- "lisp/obsolete/mouse-sel.el"
- "lisp/obsolete/old-emacs-lock.el"
- "obsolete/old-emacs-lock.el"
- "lisp/obsolete/patcomp.el"
- "lisp/obsolete/pc-select.el"
- "lisp/obsolete/s-region.el"
- "obsolete/pc-select.el"
"nnwarchive.el"
"nnultimate.el"
"nnslashdot.el"
@@ -1032,41 +971,7 @@ Changes to files in this list are not listed.")
"flymake-ui.el"
"pinentry.el"
"ledit.el"
- "lmenu.el"
- "src/pgtkselect.h"
- "test/manual/noverlay/many-errors.h"
- "lisp/better-pixel-scroll.el"
- "test/infra/default-gitlab-ci.yml"
- "test/infra/test-jobs-generator.sh"
- "org-install.el"
- ;; use-package stuff removed after it was added
- "etc/USE-PACKAGE-NEWS"
- "lisp/use-package/bind-chord.el"
- "lisp/use-package/use-package-chords.el"
- "lisp/use-package/use-package-chords-tests.el"
- "test/lisp/use-package/use-package-chords-tests.el"
- ;; Eglot stuff removed after it was added
- "README.mdown"
- "README.md"
- ".travis.yml"
- ;; Tree-sitter stuff
- "admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html"
- "admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html"
- "admin/notes/tree-sitter/html-manual/build-manual.sh"
- "admin/notes/tree-sitter/html-manual/Accessing-Node.html"
- "admin/notes/tree-sitter/html-manual/Language-Definitions.html"
- "admin/notes/tree-sitter/html-manual/Multiple-Languages.html"
- "admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html"
- "admin/notes/tree-sitter/html-manual/Pattern-Matching.html"
- "admin/notes/tree-sitter/html-manual/Retrieving-Node.html"
- "admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html"
- "admin/notes/tree-sitter/html-manual/Using-Parser.html"
- "admin/notes/tree-sitter/html-manual/manual.css"
- "admin/notes/tree-sitter/build-module/build.sh"
- "admin/notes/tree-sitter/build-module/batch.sh"
- "doc/misc/gnus-coding.texi"
- "gnus-coding.texi"
- )
+ "lmenu.el")
"File names which are valid, but no longer exist (or cannot be found)
in the repository.")
@@ -1445,153 +1350,6 @@ in the repository.")
("test/lisp/url/url-handlers-test.el" . "url-handlers-tests.el")
("test/src/dired-tests.el" . "dired-tests.el")
(".dir-locals.el" . ".dir-locals.el")
- ;; use-package files that were moved when use-package was added:
- ("use-package.texi" . "use-package.texi")
- ("use-package-core.el" . "use-package-core.el")
- ("bind-key.el" . "use-package-bind-key.el")
- ("use-package.el" . "use-package.el")
- ("use-package-tests.el" . "use-package-tests.el")
- ;; pgtk stuff which used incorrect file names
- ("pgtkmenu.c" . "pgtkmenu.c")
- ("pgtk-win.el" . "pgtk-win.el")
- ("pgtkfns.c" . "pgtkfns.c")
- ("pgtkterm.c" . "pgtkterm.c")
- ("pgtkterm.h" . "pgtkterm.h")
- ("../src/pgtkfns.c" . "pgtkfns.c")
- ("../src/pgtkterm.c" . "pgtkterm.c")
- ("../src/pgtkterm.h" . "pgtkterm.h")
- ("../src/atimer.c" . "atimer.c")
- ("../src/gtkutil.c" . "gtkutil.c")
- ("../src/image.c" . "image.c")
- ("../lisp/faces.el" . "faces.el")
- ("../src/pgkterm.h" . "pgkterm.h")
- ("pgkterm.c" . "pgkterm.c")
- ("../src/emacsgtkfixed.c" . "emacsgtkfixed.c")
- ("../src/xfaces.c" . "xfaces.c")
- ("../src/pgtkgui.h" . "pgtkgui.h")
- ("../src/dispextern.h" . "dispextern.h")
- ("../src/menu.c" . "menu.c")
- ("../lisp/net/browse-url.el" . "browse-url.el")
- ;; miscellany
- ("nsterm.m" . "nsterm.m")
- ("jsonrpc.el" . "jsonrpc.el")
- ("jsonrpc-tests.el" . "jsonrpc-tests.el")
- ("jrpc.el" . "jsonrpc.el")
- ("eldoc.el" . "eldoc.el")
- ("lisp/progmodes/ts-mode.el" . "typescript-ts-mode.el")
- ("icalendar-tests.el" . "icalendar-tests.el")
- ("lisp/progmodes/css-ts-mode.el" . "css-mode.el")
- ("lisp/erc/erc-tests.el" . "erc-tests.el")
- ("lisp/erc/erc-scenarios-base-reconnect.el" . "erc-scenarios-base-reconnect.el")
- ("test/lisp/erc-tests.el" . "erc-tests.el")
- ("eglot.el" . "eglot.el")
- ("eglot-tests.el" . "eglot-tests.el")
- ("NEWS.md" . "EGLOT-NEWS")
- ("test/lisp/comp-tests.el" . "comp-tests.el")
- ("package-vc.el" . "package-vc.el")
- ("package.el" . "package.el")
- ("lisp/net/tramp-docker.el" . "tramp-container.el")
- ("xterm.c" . "xterm.c")
- ("lisp/osc.el" . "ansi-osc.el")
- ("test/lisp/osc-tests.el" . "ansi-osc-tests.el")
- ("lisp/ansi-osc.el" . "ansi-osc-tests.el")
- ("test/lisp/thumbs-tests.el" . "thumbs-tests.el")
- ("rmail.el" . "rmail.el")
- ("window.el" . "window.el")
- ("nsmenu.m" . "nsmenu.m")
- ("nsfont.m" . "nsfont.m")
- ("nsfns.m" . "nsfns.m")
- ("src/nsterm.c" . "nsterm.m")
- ("subr.el" . "subr.el")
- ("test/lisp/image-dired-tests.el" . "image-dired-tests.el")
- ("modus-themes.org" . "modus-themes.org")
- ("emacs-authors-mode.el" . "emacs-authors-mode.el")
- ("lisp/textmodes/etc-authors-mode.el" . "emacs-authors-mode.el")
- ("bytecomp.el" . "bytecomp.el")
- ("test/lisp/makesum-tests.el" . "makesum-tests.el")
- ("rcirc.el" . "rcirc.el")
- ("haiku_support.cc" . "haiku_support.cc")
- ("gnus-art.el" . "gnus-art.el")
- ("mh-mime.el" . "mh-mime.el")
- ("terminal.c" . "terminal.c")
- ("eudc.texi" . "eudc.texi")
- ("gnus-search.el" . "gnus-search.el")
- ("lisp/gnus-search.el" . "gnus-search.el")
- ("ETAGS_good_1" . "ETAGS_good_1")
- ("ETAGS_good_2" . "ETAGS_good_2")
- ("ETAGS_good_3" . "ETAGS_good_3")
- ("ETAGS_good_4" . "ETAGS_good_4")
- ("ETAGS_good_5" . "ETAGS_good_5")
- ("ETAGS_good_6" . "ETAGS_good_6")
- ("test/lisp/eshell-em-script-tests.el" . "eshell-em-script-tests.el")
- ("test/lisp/eshell-em-glob-tests.el" . "eshell-em-glob-tests.el")
- ("lisp/eshell/esh-var-tests.el" . "esh-var-tests.el")
- ("test/lisp/eshell/esh-var-test.el" . "esh-var-tests.el")
- ("gnus-logic.el" . "gnus-logic.el")
- ("sh-script.el" . "sh-script.el")
- ("repeat.el" . "repeat.el")
- ("files.el" . "files.el")
- ("lisp/emacs-lisp/generate-file.el" . "generate-lisp-file.el")
- ("pp.el" . "pp.el")
- ("src/help-fns.el" . "help-fns.el")
- ("print.c" . "print.c")
- ("shell.el" . "shell.el")
- ("xdisp.c" . "xdisp.c")
- ("haikufns.c" . "haikufns.c")
- ("haikuterm.c" . "haikuterm.c")
- ("haikumenu.c" . "haikumenu.c")
- ("haikufont.c" . "haikufont.c")
- ("src/haiku_support.c" . "haiku_support.cc")
- ("src/haiku_draw_support.c" . "haiku_draw_support.cc")
- ("haiku-win.el" . "haiku-win.el")
- ("elisp-mode.el" . "elisp-mode.el")
- ("doc-view.el" . "doc-view.el")
- ("src/lisp/net/rcirc.el" . "rcirc.el")
- ("project.el" . "project.el")
- ("emacsbug.el" . "emacsbug.el")
- ("timefns.c" . "timefns.c")
- ("xwidget.c" . "xwidget.c")
- ("src/xwidget.el" . "xwidget.el")
- ("lisp/net/lisp/net/tramp-sshfs.el" . "tramp-sshfs.el")
- ("tramp-sudoedit.el" . "tramp-sudoedit.el")
- ("test/lisp/mail/undigest.el" . "undigest-tests.el")
- ("Activate.c" . "Activate.c")
- ("quail.el" . "quail.el")
- ("sed1v2.inp" . "sed1v2.inp")
- ("ruby-parenless-call-arguments-indent.rb" . "ruby-parenless-call-arguments-indent.rb")
- ("commands.texi" . "doc/lispref/commands.texi")
- ("message.el" . "message.el")
- ("lisp/debug-early.el" . "debug-early.el")
- ("tabulated-list.el" . "tabulated-list.el")
- ("mouse.el" . "mouse.el")
- ("hi-lock.el" . "hi-lock.el")
- ("man.el" . "man.el")
- ("doc/emacs/frames.tex" . "frames.texi")
- ("lisp/emacs-list/eieio-compat.el" . "eieio-compat.el")
- ("epa.el" . "epa.el")
- ("lisp/emacs-lisp/macroexpand.el" . "macroexp.el")
- ("src/pixel-scroll.el" . "pixel-scroll.el")
- ("test/lisp/mh-e/mh-utils.el" . "mh-utils-tests.el")
- ("compile.el" . "compile.el")
- ("compile-tests.el" . "compile-tests.el")
- ("Makefile.in" . "Makefile.in")
- ("Makefie.in" . "Makefile.in")
- ("test/lisp/net/netrc-tests.el" . "auth-source-tests.el")
- ("test/lisp/ert-x-tests.el" . "ert-x-tests.el")
- ("lisp/mh-e-mh-scan.el" . "mh-scan.el")
- ("lisp/progmodes/c-fonts.el" . "cc-fonts.el")
- ("lisp/emacs/lisp/cl-generic.el" . "cl-generic.el")
- ("doc/lisprefdisplay.texi" . "display.texi")
- ("erc.el" . "erc.el")
- ("erc-tests.el" . "erc-tests.el")
- ("vc/vc-mtn.el" . "vc-mtn.el")
- ("net/rlogin.el" . "rlogin.el")
- ("emacs-lisp/eieio-compat.el" . "eieio-compat.el")
- ("mh-compat.el" . "mh-compat.el")
- ("url-about.el" . "url-about.el")
- ("url-dired.el" . "url-dired.el")
- ("lisp/text-modes/tex-mode.el" . "tex-mode.el")
- ("editfns.c" . "editfns.c")
)
"Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")
diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in
index 4026a9d90c1..0a3f334a978 100644
--- a/admin/charsets/Makefile.in
+++ b/admin/charsets/Makefile.in
@@ -181,7 +181,7 @@ ${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
- ${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
+ ${AM_V_GEN}(${run_mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
echo "# Generated by hand" && \
echo "0xA1-0xDF 0xFF61" ) > $@
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv
index ba012ddf4b7..91d580e89d1 100755
--- a/admin/charsets/mapconv
+++ b/admin/charsets/mapconv
@@ -38,7 +38,8 @@
## So that eg [A-F] as used by KANJI-DATABASE branch below works as expected.
## Otherwise with LANG=en_US.utf8, CNS-6.map was generated with a
## bogus entry. By experiment, LC_COLLATE=C was not enough.
-export LC_ALL=C
+LC_ALL=C
+export LC_ALL
BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
FILE="admin/charsets/mapfiles/$BASE"
diff --git a/admin/coccinelle/alloc_cast.cocci b/admin/coccinelle/alloc_cast.cocci
new file mode 100644
index 00000000000..91810dbc7e4
--- /dev/null
+++ b/admin/coccinelle/alloc_cast.cocci
@@ -0,0 +1,6 @@
+// Remove redundant casts from memory allocation functions.
+@@
+type T;
+@@
+-(T *)
+ \(xmalloc\|xzalloc\|xrealloc\|xpalloc\|xnrealloc\)(...)
diff --git a/admin/coccinelle/build_string.cocci b/admin/coccinelle/build_string.cocci
index d47727018dd..9421a140658 100644
--- a/admin/coccinelle/build_string.cocci
+++ b/admin/coccinelle/build_string.cocci
@@ -4,3 +4,9 @@ identifier I;
@@
- make_string (I, strlen (I))
+ build_string (I)
+
+@@
+constant C;
+@@
+- make_string (C, strlen (C))
++ build_string (C)
diff --git a/admin/coccinelle/nilp.cocci b/admin/coccinelle/nilp.cocci
new file mode 100644
index 00000000000..ccebbbe1c80
--- /dev/null
+++ b/admin/coccinelle/nilp.cocci
@@ -0,0 +1,6 @@
+// Prefer NILP (x) to EQ (x, Qnil)
+@@
+expression X;
+@@
+- EQ (X, Qnil)
++ NILP (X)
diff --git a/admin/coccinelle/unibyte_string.cocci b/admin/coccinelle/unibyte_string.cocci
index 0ff8cafa15d..97f87e5a4ca 100644
--- a/admin/coccinelle/unibyte_string.cocci
+++ b/admin/coccinelle/unibyte_string.cocci
@@ -4,3 +4,9 @@ identifier I;
@@
- make_unibyte_string (I, strlen (I))
+ build_unibyte_string (I)
+
+@@
+constant C;
+@@
+- make_unibyte_string (C, strlen (C))
++ build_unibyte_string (C)
diff --git a/admin/coccinelle/xsave.cocci b/admin/coccinelle/xsave.cocci
deleted file mode 100644
index 5172bb55b33..00000000000
--- a/admin/coccinelle/xsave.cocci
+++ /dev/null
@@ -1,11 +0,0 @@
-// Adjust users of XSAVE_POINTER and XSAVE_INTEGER.
-@@
-expression E;
-@@
-(
-- XSAVE_POINTER (E)
-+ XSAVE_POINTER (E, 0)
-|
-- XSAVE_INTEGER (E)
-+ XSAVE_INTEGER (E, 1)
-)
diff --git a/admin/cus-test.el b/admin/cus-test.el
index 64c742ea855..10d6e34358d 100644
--- a/admin/cus-test.el
+++ b/admin/cus-test.el
@@ -146,7 +146,7 @@ Names should be as they appear in loaddefs.el.")
(defvar cus-test-errors nil
"List of problematic variables found by `cus-test-apropos'.
-Each element is (VARIABLE . PROBLEM); see `cus-test--format-errors'.")
+Each element is (VARIABLE . PROBLEM); see `cus-test--format-error'.")
(defvar cus-test-tested-variables nil
"List of options tested by last call of `cus-test-apropos'.")
@@ -221,8 +221,6 @@ The detected problematic options are stored in `cus-test-errors'."
;; Check the values
(mapc (lambda (value)
- ;; TODO for booleans, check for values that can be
- ;; evaluated and are not t or nil. Usually a bug.
(unless (widget-apply conv :match value)
(let ((err (list symbol :type-error value type)))
(unless (member err cus-test-errors)
@@ -426,7 +424,12 @@ in the Emacs source directory."
(mapatoms
;; This code is mainly from `custom-load-symbol'.
(lambda (symbol)
- (let ((custom-load-recursion t))
+ (let ((custom-load-recursion t)
+ (load-path
+ (cons
+ (expand-file-name
+ "quail" (file-name-directory (locate-library leim-list-file-name)))
+ load-path)))
(dolist (load (get symbol 'custom-loads))
(cond
((symbolp load)
diff --git a/admin/emake b/admin/emake
index 6e2f9e0e094..93958740dc2 100755
--- a/admin/emake
+++ b/admin/emake
@@ -19,13 +19,20 @@
# This script is meant to be used as ./admin/emake, and will compile
# the Emacs tree with virtually all of the informational messages
-# removed, and with errors/warnings highlighted in red. It'll give a
-# quick overview to confirm that nothing has broken, for instance
+# removed, and with errors/warnings highlighted in red. It will also
+# run the test files belonging to files that have changed. It'll give
+# a quick overview to confirm that nothing has broken, for instance
# after doing a "git pull". It's not meant to be used during actual
# development, because it removes so much information that commands
# like `next-error' won't be able to jump to the source code where
# errors are.
+# It has a few options:
+# with --no-color errors/warnings are not highlighted
+# with --no-check test files are not run
+# with --no-fast the FAST=true make variable is not set (see Makefile.in)
+# with --quieter only errors/warnings remain visible
+
cores=1
# Determine the number of cores.
@@ -96,6 +103,7 @@ GEN.*loaddefs|\
^.Read INSTALL.REPO for more|\
^Your system has the required tools.|\
^Building aclocal.m4|\
+^Building 'aclocal.m4'|\
^ Running 'autoreconf|\
^You can now run './configure'|\
^./configure|\
@@ -129,15 +137,21 @@ The GNU allocators don't work|\
" | \
while read
do
- C=""
- (($NOCOLOR == 0)) && [[ "X${REPLY:0:1}" != "X " ]] && C="\033[1;31m"
- (($NOCOLOR == 0)) && [[ "X${REPLY:0:3}" == "X " ]] && C="\033[1;31m"
- if (($QUIETER == 0))
- then
- [[ "X$C" == "X" ]] && printf "%s\n" "$REPLY" || printf "$C%s\033[0m\n" "$REPLY"
- else
- [[ "X$C" == "X" ]] && printf "%-80s\r" "$REPLY" || printf "$C%-80s\033[0m\n" "$REPLY"
- fi
+ C=""
+ E=0
+ [ ! -v L ] && L=80
+ [[ "X${REPLY:0:1}" != "X " ]] && E=1
+ [[ "X${REPLY:0:3}" == "X " ]] && E=1
+ (($NOCOLOR == 0)) && (($E == 1)) && C="\033[1;31m"
+ (($NOCOLOR == 0)) && (($E == 1)) && C="\033[1;31m"
+ if (($QUIETER == 0))
+ then
+ (($E == 0)) && printf "%s\n" "$REPLY" || printf "${C}%s\033[0m\n" "$REPLY"
+ else
+ (($E == 0)) && printf "%-${L}s\r" "$REPLY" || printf "${C}%-${L}s\033[0m\n" "$REPLY"
+ fi
+ L=${#REPLY}
+ (($L < 80)) && L=80
done
# If make failed, exit now with its error code.
@@ -149,4 +163,13 @@ done
# changed since last time.
make -j$cores check-maybe 2>&1 | \
sed -n '/contained unexpected results/,$p' | \
- grep -E --line-buffered -v "^make"
+ grep -E --line-buffered -v "^make" | \
+while read
+do
+ if (($NOCOLOR == 0))
+ then
+ printf "\033[1;31m%s\033[0m\n" "$REPLY"
+ else
+ printf "%s\n" "$REPLY"
+ fi
+done
diff --git a/admin/find-gc.el b/admin/find-gc.el
index 3f7336510e5..7c5672f4a46 100644
--- a/admin/find-gc.el
+++ b/admin/find-gc.el
@@ -100,7 +100,7 @@ Also store it in `find-gc-unsafe-list'."
-(defun trace-call-tree (&optional ignored)
+(defun trace-call-tree (&optional _ignored)
(message "Setting up directories...")
(setq find-gc-subrs-called nil)
(let ((case-fold-search nil)
diff --git a/admin/git-bisect-start b/admin/git-bisect-start
index 3951f291598..f9933b3ae4d 100755
--- a/admin/git-bisect-start
+++ b/admin/git-bisect-start
@@ -2,7 +2,9 @@
### Start a git bisection, ensuring that commits in branches that are
### the result of merging external trees into the Emacs repository, as
-### well as certain commits on which Emacs fails to build, are skipped.
+### well as certain commits on which Emacs fails to build (with the
+### default options, on a GNU/Linux computer and with GCC; see below),
+### are skipped.
## Copyright (C) 2022-2024 Free Software Foundation, Inc.
@@ -82,7 +84,7 @@ done
# SKIP-BRANCH 58cc931e92ece70c3e64131ee12a799d65409100
## The list below is the exhaustive list of all commits between Dec 1
-## 2016 and Aug 10 2023 on which building Emacs with the default
+## 2016 and Jan 13 2024 on which building Emacs with the default
## options, on a GNU/Linux computer and with GCC, fails. It is
## possible (though unlikely) that building Emacs with non-default
## options, with other compilers, or on other platforms, would succeed
@@ -1776,3 +1778,19 @@ $REAL_GIT bisect skip $(cat $0 | grep '^# SKIP-SINGLE ' | sed 's/^# SKIP-SINGLE
# SKIP-SINGLE 2752573dfb76873dbe783e89a1fbf01d157c54e3
# SKIP-SINGLE 62e990db7a2fad16756e019b331c28ad5a5a89fe
# SKIP-SINGLE 6253e7e74249c7cdfa86723f0b91a1d207cb143e
+# SKIP-SINGLE 1f7113e68988fa0bcbdeca5ae364cba8d6db3637
+# SKIP-SINGLE 6e44d6e18438ea2665ae6252a6ec090963dd7e42
+# SKIP-SINGLE 168cc0aff0bfbc1d67a7e8a72b88a1bf10ad019e
+# SKIP-SINGLE efb276fef1f580eafa8458fc262a4b35eb3abd5e
+# SKIP-SINGLE cc0d7d7a3867e4554f89262e4641c9845ee0d647
+# SKIP-SINGLE 012f9c28053d06b6d527d77530605aedbd55d5b4
+# SKIP-SINGLE e61a03984335b4ffb164280b2df80668b2a92c23
+# SKIP-SINGLE f7fd21b06865d20a16c11e20776e843db24d4b14
+# SKIP-SINGLE 35fbf6f15830f576fd1909f4a8d30e7ba1d777bd
+# SKIP-SINGLE 0e44ab5f061c81874dd8298a0f3318f14ef95a24
+# SKIP-SINGLE 4675aff76828b0747d1ac900d65d4a92a457ebf5
+# SKIP-SINGLE bf4d4ab4ddecffbee6d740f9c271dcca514d6a3d
+# SKIP-SINGLE 2a8e6c8c84ed33674e525625644d5ce84ee8c59a
+# SKIP-SINGLE fa5f06c1251ff717d661f05fcd240b4792054aae
+# SKIP-SINGLE d3cefd3e98354929d96c9396e5920e8a123784dc
+# SKIP-SINGLE 486094126ba77e45c50acb87f5ad3e4147608446
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index 63b11c68007..7c815c729e5 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -293,7 +293,7 @@ should not be skipped."
"Try to resolve conflicts in FILE with smerge.
Returns non-nil if conflicts remain."
(unless (file-exists-p file) (error "Gitmerge-resolve: Can't find %s" file))
- (with-demoted-errors
+ (with-demoted-errors "Error: %S"
(let ((exists (find-buffer-visiting file)))
(with-current-buffer (let ((enable-local-variables :safe)
(enable-local-eval nil))
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index fabc83c9d02..5246fb14e1e 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -23,40 +23,42 @@
# written by Paul Eggert
-GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
+GNULIB_URL=https://git.savannah.gnu.org/git/gnulib.git
GNULIB_MODULES='
- alloca-opt binary-io byteswap c-ctype c-strcase
+ alignasof alloca-opt binary-io boot-time byteswap c-ctype c-strcase
canonicalize-lgpl
careadlinkat close-stream copy-file-range
count-leading-zeros count-one-bits count-trailing-zeros
crypto/md5 crypto/md5-buffer
crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer
d-type diffseq double-slash-root dtoastr dtotimespec dup2
- environ execinfo explicit_bzero faccessat
+ environ execinfo faccessat
fchmodat fcntl fcntl-h fdopendir file-has-acl
filemode filename filevercmp flexmember fpieee
free-posix fstatat fsusage fsync futimens
- getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog
+ getline getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog
ieee754-h ignore-value intprops largefile libgmp lstat
- manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime
+ manywarnings memmem-simple mempcpy memrchr memset_explicit
+ minmax mkostemp mktime
nanosleep nproc nstrftime
pathmax pipe2 pselect pthread_sigmask
qcopy-acl readlink readlinkat regex
- sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stdbool stddef stdio
- stpcpy strnlen strtoimax symlink sys_stat sys_time
- tempname time time_r time_rz timegm timer-time timespec-add timespec-sub
+ sig2str sigdescr_np socklen stat-time std-gnu11 stdbool stdckdint stddef stdio
+ stpcpy strnlen strnlen strtoimax symlink sys_stat sys_time
+ tempname time-h time_r time_rz timegm timer-time timespec-add timespec-sub
update-copyright unlocked-io utimensat
- vla warnings
+ vla warnings year2038
'
AVOIDED_MODULES='
- btowc chmod close crypto/af_alg dup fchdir fstat langinfo lock
+ access btowc chmod close crypto/af_alg dup fchdir fstat
+ iswblank iswctype iswdigit iswxdigit langinfo lock
mbrtowc mbsinit memchr mkdir msvc-inval msvc-nothrow nl_langinfo
openat-die opendir pthread-h raise
save-cwd select setenv sigprocmask stat stdarg
threadlib tzset unsetenv utime utime-h
- wchar wcrtomb wctype-h
+ wchar wcrtomb wctype wctype-h
'
GNULIB_TOOL_FLAGS='
@@ -105,14 +107,16 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
# gnulib-tool has problems with a bare checkout (Bug#32452#65).
test -f configure || ./autogen.sh || exit
-# Old caches can confuse autoconf when some Gnulib-related changes take effect.
-rm -fr autom4te.cache || exit
-
avoided_flags=
for module in $AVOIDED_MODULES; do
avoided_flags="$avoided_flags --avoid=$module"
done
+# Clean the lib directory as well.
+if [ -e "$src"/lib/Makefile ]; then
+ make -C "$src"/lib maintainer-clean
+fi
+
"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS \
$avoided_flags $GNULIB_MODULES &&
rm -- "$src"lib/gl_openssl.h \
@@ -120,6 +124,7 @@ rm -- "$src"lib/gl_openssl.h \
"$src"m4/fcntl-o.m4 \
"$src"m4/gl-openssl.m4 \
"$src"m4/gnulib-cache.m4 "$src"m4/gnulib-tool.m4 \
+ "$src"m4/locale-fr.m4 \
"$src"m4/manywarnings-c++.m4 \
"$src"m4/warn-on-use.m4 "$src"m4/wint_t.m4 &&
cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
@@ -131,5 +136,7 @@ cp -- "$gnulib_srcdir"/build-aux/config.guess \
cp -- "$gnulib_srcdir"/lib/af_alg.h \
"$gnulib_srcdir"/lib/save-cwd.h \
"$src"lib &&
+cp -- "$gnulib_srcdir"/m4/codeset.m4 \
+ "$src"m4 &&
{ test -z "$src" || cd "$src"; } &&
./autogen.sh
diff --git a/admin/notes/copyright b/admin/notes/copyright
index fe94b5c68d9..55924157e9a 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -381,7 +381,7 @@ conclude it was written by me."
lisp/term/README
- had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
- written by Eric Raymond. When asked by rms on 14 Feb 2007 he said:
+ written by Eric S. Raymond. When asked by rms on 14 Feb 2007 he said:
I don't remember writing it, but it reads like my prose and I believe
I wrote the feature(s) it's describing. So I would have been the
diff --git a/admin/notes/elpa b/admin/notes/elpa
index 1e9e7a9f52b..afcda71d1dd 100644
--- a/admin/notes/elpa
+++ b/admin/notes/elpa
@@ -3,7 +3,7 @@ NOTES ON THE EMACS PACKAGE ARCHIVE
The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
repository named "elpa", hosted on Savannah. To check it out:
- git clone git://git.sv.gnu.org/emacs/elpa
+ git clone https://git.savannah.gnu.org/git/emacs/elpa
cd elpa
make setup
diff --git a/admin/notes/emba b/admin/notes/emba
index 36eb98a1721..2e61ec49ae5 100644
--- a/admin/notes/emba
+++ b/admin/notes/emba
@@ -83,6 +83,46 @@ Lisp packages, Makefiles, scripts, and other software could determine
whether they run on emba by checking for the environment variable
EMACS_EMBA_CI.
+* Running Emba tests locally
+
+As usual in GitLab, the tests run in containers, which could be
+applied also locally. Unfortunately, the Emba container registry,
+emba.gnu.org:5050, is not accessible publicly. Instead, the container
+images must be build locally. Change the current directory to a
+recent Emacs branch, and apply the command
+
+ docker build --target emacs-inotify --tag emacs-inotify \
+ -f test/infra/Dockerfile.emba .
+
+This creates the Debian-based image emacs-inotify, based on the
+instructions in the file Dockerfile.emba. This image is good for the
+majority of tests. However, there are also other image build
+instructions like emacs-filenotify-gio, emacs-eglot,
+emacs-tree-sitter, emacs-gnustep and emacs-native-comp-speed{0,1,2}.
+Use the appropriate one.
+
+The image contains a directory "/checkout", which is a copy of your
+local Emacs git repository. Emacs has been built in this directory
+via "make bootstrap". In order to use the image, start a container
+like
+
+ docker run --interactive --tty --env EMACS_EMBA_CI=1 --name emacs-inotify \
+ emacs-inotify /bin/bash -i
+
+In this container, your working directory is "/checkout". Now you can
+apply all commands known for Emacs, like
+
+ make -C test files-tests.log
+
+While this container runs, you can also access its filesystem from
+your local Emacs via Tramp. For example, in order to see the result
+of the above test run, open the log file in your local Emacs with
+
+ C-x C-f /docker:emacs-inotify:/checkout/test/lisp/files-tests.log
+
+Note: On local Red Hat-based systems, use "podman" instead of "docker"
+in the shell commands and Tramp file names.
+
This file is part of GNU Emacs.
diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow
index 717fc550776..d33f49a1aca 100644
--- a/admin/notes/git-workflow
+++ b/admin/notes/git-workflow
@@ -16,14 +16,14 @@ Initial setup
Then we want to clone the repository. We normally want to have both
the current master and (if there is one) the active release branch
-(eg emacs-28).
+(eg emacs-29).
mkdir ~/emacs
cd ~/emacs
git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master
cd master
git config push.default current
-git worktree add ../emacs-28 emacs-28
+git worktree add ../emacs-29 emacs-29
You now have both branches conveniently accessible, and you can do
"git pull" in them once in a while to keep updated.
@@ -67,10 +67,10 @@ which will look like
commit 958b768a6534ae6e77a8547a56fc31b46b63710b
-cd ~/emacs/emacs-28
+cd ~/emacs/emacs-29
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
-and optionally add "Backport:" to the commit string. Then
+and add "Backport:" to the commit string. Then
git push
@@ -109,7 +109,7 @@ up-to-date by doing a pull. Then start Emacs with
emacs -l admin/gitmerge.el -f gitmerge
You'll be asked for the branch to merge, which will default to
-(eg) 'origin/emacs-28', which you should accept. Merging a local tracking
+(eg) 'origin/emacs-29', which you should accept. Merging a local tracking
branch is discouraged, since it might not be up-to-date, or worse,
contain commits from you which are not yet pushed upstream.
diff --git a/admin/notes/java b/admin/notes/java
new file mode 100644
index 00000000000..e10f09f780f
--- /dev/null
+++ b/admin/notes/java
@@ -0,0 +1,1097 @@
+Installation instructions for Android
+Copyright (C) 2023-2024 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+
+
+OVERVIEW OF JAVA
+
+Emacs developers do not know Java, and there is no reason they should
+have to. Thus, the code in this directory is confined to what is
+strictly necessary to support Emacs, and only uses a subset of Java
+written in a way that is easily understandable to C programmers.
+
+Java is required because the entire Android runtime is based around
+Java, and there is no way to write an Android program which runs
+without Java.
+
+This text exists to prime other Emacs developers, already familiar with
+C, on the basic architecture of the Android port, and to teach them
+how to read and write the Java code found in this directory.
+
+Java is an object oriented language with automatic memory management
+compiled down to bytecode, which is then subject to interpretation by
+a Java virtual machine.
+
+What that means, is that:
+
+struct emacs_window
+{
+ int some_fields;
+ int of_emacs_window;
+};
+
+static void
+do_something_with_emacs_window (struct emacs_window *a, int n)
+{
+ a->some_fields = a->of_emacs_window + n;
+}
+
+would be written:
+
+public class EmacsWindow
+{
+ public int someFields;
+ public int ofEmacsWindow;
+
+ public void
+ doSomething (int n)
+ {
+ someFields = ofEmacsWindow + n;
+ }
+}
+
+and instead of doing:
+
+do_something_with_emacs_window (my_window, 1);
+
+you say:
+
+myWindow.doSomething (1);
+
+In addition to functions associated with an object of a given class
+(such as EmacsWindow), Java also has two other kinds of functions.
+
+The first are so-called ``static'' functions (the static means
+something entirely different from what it does in C.)
+
+A static function, while still having to be defined within a class,
+can be called without any object. Instead of the object, you write
+the name of the Java class within which it is defined. For example,
+the following C code:
+
+int
+multiply_a_with_b_and_then_add_c (int a, int b, int c)
+{
+ return a * b + c;
+}
+
+would be:
+
+public class EmacsSomething
+{
+ public static int
+ multiplyAWithBAndThenAddC (int a, int b, int c)
+ {
+ return a * b + c;
+ }
+};
+
+Then, instead of calling:
+
+int foo;
+
+foo = multiply_a_with_b_then_add_c (1, 2, 3);
+
+you say:
+
+int foo;
+
+foo = EmacsSomething.multiplyAWithBAndThenAddC (1, 2, 3);
+
+In Java, ``static'' does not mean that the function is only used
+within its compilation unit! Instead, the ``private'' qualifier is
+used to mean more or less the same thing:
+
+static void
+this_procedure_is_only_used_within_this_file (void)
+{
+ do_something ();
+}
+
+becomes
+
+public class EmacsSomething
+{
+ private static void
+ thisProcedureIsOnlyUsedWithinThisClass ()
+ {
+
+ }
+}
+
+the other kind are called ``constructors''. They are functions that
+must be called to allocate memory to hold a class:
+
+public class EmacsFoo
+{
+ int bar;
+
+ public
+ EmacsFoo (int tokenA, int tokenB)
+ {
+ bar = tokenA + tokenB;
+ }
+}
+
+now, the following statement:
+
+EmacsFoo foo;
+
+foo = new EmacsFoo (1, 2);
+
+becomes more or less equivalent to the following C code:
+
+struct emacs_foo
+{
+ int bar;
+};
+
+struct emacs_foo *
+make_emacs_foo (int token_a, int token_b)
+{
+ struct emacs_foo *foo;
+
+ foo = xmalloc (sizeof *foo);
+ foo->bar = token_a + token_b;
+
+ return foo;
+}
+
+/* ... */
+
+struct emacs_foo *foo;
+
+foo = make_emacs_foo (1, 2);
+
+A class may have any number of constructors, or no constructors at
+all, in which case the compiler inserts an empty constructor.
+
+
+
+Sometimes, you will see Java code that looks like this:
+
+ allFiles = filesDirectory.listFiles (new FileFilter () {
+ @Override
+ public boolean
+ accept (File file)
+ {
+ return (!file.isDirectory ()
+ && file.getName ().endsWith (".pdmp"));
+ }
+ });
+
+This is Java's version of GCC's nested function extension. The major
+difference is that the nested function may still be called even after
+it goes out of scope, and always retains a reference to the class and
+local variables around where it was called.
+
+Being an object-oriented language, Java also allows defining that a
+class ``extends'' another class. The following C code:
+
+struct a
+{
+ long thirty_two;
+};
+
+struct b
+{
+ struct a a;
+ long long sixty_four;
+};
+
+extern void do_something (struct a *);
+
+void
+my_function (struct b *b)
+{
+ do_something (&b->a);
+}
+
+is roughly equivalent to the following Java code, split into two
+files:
+
+ A.java
+
+public class A
+{
+ int thirtyTwo;
+
+ public void
+ doSomething ()
+ {
+ etcEtcEtc ();
+ }
+};
+
+ B.java
+
+public class B extends A
+{
+ long sixty_four;
+
+ public static void
+ myFunction (B b)
+ {
+ b.doSomething ();
+ }
+}
+
+the Java runtime has transformed the call to ``b.doSomething'' to
+``((A) b).doSomething''.
+
+However, Java also allows overriding this behavior, by specifying the
+@Override keyword:
+
+public class B extends A
+{
+ long sixty_four;
+
+ @Override
+ public void
+ doSomething ()
+ {
+ Something.doSomethingTwo ();
+ super.doSomething ();
+ }
+}
+
+now, any call to ``doSomething'' on a ``B'' created using ``new B ()''
+will end up calling ``Something.doSomethingTwo'', before calling back
+to ``A.doSomething''. This override also applies in reverse; that is
+to say, even if you write:
+
+ ((A) b).doSomething ();
+
+B's version of doSomething will still be called, if ``b'' was created
+using ``new B ()''.
+
+This mechanism is used extensively throughout the Java language and
+Android windowing APIs.
+
+Elsewhere, you will encounter Java code that defines arrays:
+
+public class EmacsFrobinicator
+{
+ public static void
+ emacsFrobinicate (int something)
+ {
+ int[] primesFromSomething;
+
+ primesFromSomething = new int[numberOfPrimes];
+ /* ... */
+ }
+}
+
+Java arrays are similar to C arrays in that they can not grow. But
+they are very much unlike C arrays in that they are always references
+(as opposed to decaying into pointers in only some situations), and
+contain information about their length.
+
+If another function named ``frobinicate1'' takes an array as an
+argument, then it need not take the length of the array.
+
+Instead, it may simply iterate over the array like so:
+
+int i, k;
+
+for (i = 0; i < array.length; ++i)
+ {
+ k = array[i];
+
+ Whatever.doSomethingWithK (k);
+ }
+
+The syntax used to define arrays is also slightly different. As
+arrays are always references, there is no way for you to tell the
+runtime to allocate an array of size N in a structure (class.)
+
+Instead, if you need an array of that size, you must declare a field
+with the type of the array, and allocate the array inside the class's
+constructor, like so:
+
+public class EmacsArrayContainer
+{
+ public int[] myArray;
+
+ public
+ EmacsArrayContainer ()
+ {
+ myArray = new array[10];
+ }
+}
+
+while in C, you could just have written:
+
+struct emacs_array_container
+{
+ int my_array[10];
+};
+
+or, possibly even better,
+
+typedef int emacs_array_container[10];
+
+Alas, Java has no equivalent of `typedef'.
+
+Like in C, Java string literals are delimited by double quotes.
+Unlike C, however, strings are not NULL-terminated arrays of
+characters, but a distinct type named ``String''. They store their
+own length, characters in Java's 16-bit ``char'' type, and are capable
+of holding NULL bytes.
+
+Instead of writing:
+
+wchar_t character;
+extern char *s;
+size_t s;
+
+ for (/* determine n, s in a loop. */)
+ s += mbstowc (&character, s, n);
+
+or:
+
+const char *byte;
+
+for (byte = my_string; *byte; ++byte)
+ /* do something with *byte. */;
+
+or perhaps even:
+
+size_t length, i;
+char foo;
+
+length = strlen (my_string);
+
+for (i = 0; i < length; ++i)
+ foo = my_string[i];
+
+you write:
+
+char foo;
+int i;
+
+for (i = 0; i < myString.length (); ++i)
+ foo = myString.charAt (0);
+
+Java also has stricter rules on what can be used as a truth value in a
+conditional. While in C, any non-zero value is true, Java requires
+that every truth value be of the boolean type ``boolean''.
+
+What this means is that instead of simply writing:
+
+ if (foo || bar)
+
+where foo can either be 1 or 0, and bar can either be NULL or a
+pointer to something, you must explicitly write:
+
+ if (foo != 0 || bar != null)
+
+in Java.
+
+JAVA NATIVE INTERFACE
+
+Java also provides an interface for C code to interface with Java.
+
+C functions exported from a shared library become static Java
+functions within a class, like so:
+
+public class EmacsNative
+{
+ /* Obtain the fingerprint of this build of Emacs. The fingerprint
+ can be used to determine the dump file name. */
+ public static native String getFingerprint ();
+
+ /* Set certain parameters before initializing Emacs.
+
+ assetManager must be the asset manager associated with the
+ context that is loading Emacs. It is saved and remains for the
+ remainder the lifetime of the Emacs process.
+
+ filesDir must be the package's data storage location for the
+ current Android user.
+
+ libDir must be the package's data storage location for native
+ libraries. It is used as PATH.
+
+ cacheDir must be the package's cache directory. It is used as
+ the `temporary-file-directory'.
+
+ pixelDensityX and pixelDensityY are the DPI values that will be
+ used by Emacs.
+
+ classPath must be the classpath of this app_process process, or
+ NULL.
+
+ emacsService must be the EmacsService singleton, or NULL. */
+ public static native void setEmacsParams (AssetManager assetManager,
+ String filesDir,
+ String libDir,
+ String cacheDir,
+ float pixelDensityX,
+ float pixelDensityY,
+ String classPath,
+ EmacsService emacsService);
+}
+
+Where the corresponding C functions are located in android.c, and
+loaded by the special invocation:
+
+ static
+ {
+ System.loadLibrary ("emacs");
+ };
+
+where ``static'' defines a section of code which will be run upon the
+object (containing class) being loaded. This is like:
+
+ __attribute__ ((constructor))
+
+on systems where shared object constructors are supported.
+
+See http://docs.oracle.com/en/java/javase/19/docs/specs/jni/intro.html
+for more details.
+
+
+
+OVERVIEW OF ANDROID
+
+When the Android system starts an application, it does not actually
+call the application's ``main'' function. It may not even start the
+application's process if one is already running.
+
+Instead, Android is organized around components. When the user opens
+the ``Emacs'' icon, the Android system looks up and starts the
+component associated with the ``Emacs'' icon. In this case, the
+component is called an activity, and is declared in
+the AndroidManifest.xml in this directory:
+
+ <activity android:name="org.gnu.emacs.EmacsActivity"
+ android:launchMode="singleTop"
+ android:windowSoftInputMode="adjustResize"
+ android:exported="true"
+ android:configChanges="orientation|screenSize|screenLayout|keyboardHidden">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+
+This tells Android to start the activity defined in ``EmacsActivity''
+(defined in org/gnu/emacs/EmacsActivity.java), a class extending the
+Android class ``Activity''.
+
+To do so, the Android system creates an instance of ``EmacsActivity''
+and the window system window associated with it, and eventually calls:
+
+ Activity activity;
+
+ activity.onCreate (...);
+
+But which ``onCreate'' is really called?
+It is actually the ``onCreate'' defined in EmacsActivity.java, as
+it overrides the ``onCreate'' defined in Android's own Activity class:
+
+ @Override
+ public void
+ onCreate (Bundle savedInstanceState)
+ {
+ FrameLayout.LayoutParams params;
+ Intent intent;
+
+Then, this is what happens step-by-step within the ``onCreate''
+function:
+
+ /* See if Emacs should be started with -Q. */
+ intent = getIntent ();
+ EmacsService.needDashQ
+ = intent.getBooleanExtra ("org.gnu.emacs.START_DASH_Q",
+ false);
+
+Here, Emacs obtains the intent (a request to start a component) which
+was used to start Emacs, and sets a special flag if it contains a
+request for Emacs to start with the ``-Q'' command-line argument.
+
+ /* Set the theme to one without a title bar. */
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+ setTheme (android.R.style.Theme_DeviceDefault_NoActionBar);
+ else
+ setTheme (android.R.style.Theme_NoTitleBar);
+
+Next, Emacs sets an appropriate theme for the activity's associated
+window decorations.
+
+ params = new FrameLayout.LayoutParams (LayoutParams.MATCH_PARENT,
+ LayoutParams.MATCH_PARENT);
+
+ /* Make the frame layout. */
+ layout = new FrameLayout (this);
+ layout.setLayoutParams (params);
+
+ /* Set it as the content view. */
+ setContentView (layout);
+
+Then, Emacs creates a ``FrameLayout'', a widget that holds a single
+other widget, and makes it the activity's ``content view''.
+
+The activity itself is a ``FrameLayout'', so the ``layout parameters''
+here apply to the FrameLayout itself, and not its children.
+
+ /* Maybe start the Emacs service if necessary. */
+ EmacsService.startEmacsService (this);
+
+And after that, Emacs calls the static function ``startEmacsService'',
+defined in the class ``EmacsService''. This starts the Emacs service
+component if necessary.
+
+ /* Add this activity to the list of available activities. */
+ EmacsWindowAttachmentManager.MANAGER.registerWindowConsumer (this);
+
+ super.onCreate (savedInstanceState);
+
+Finally, Emacs registers that this activity is now ready to receive
+top-level frames (windows) created from Lisp.
+
+Activities come and go, but Emacs has to stay running in the mean
+time. Thus, Emacs also defines a ``service'', which is a long-running
+component that the Android system allows to run in the background.
+
+Let us go back and review the definition of ``startEmacsService'':
+
+ public static void
+ startEmacsService (Context context)
+ {
+ if (EmacsService.SERVICE == null)
+ {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)
+ /* Start the Emacs service now. */
+ context.startService (new Intent (context,
+ EmacsService.class));
+ else
+ /* Display the permanent notification and start Emacs as a
+ foreground service. */
+ context.startForegroundService (new Intent (context,
+ EmacsService.class));
+ }
+ }
+
+If ``EmacsService.SERVICE'' does not yet exist, what this does is to
+tell the ``context'' (the equivalent of an Xlib Display *) to start a
+service defined by the class ``EmacsService''. Eventually, this
+results in ``EmacsService.onCreate'' being called:
+
+ @Override
+ public void
+ onCreate ()
+ {
+ AssetManager manager;
+ Context app_context;
+ String filesDir, libDir, cacheDir, classPath;
+ double pixelDensityX;
+ double pixelDensityY;
+
+Here is what this function does, step-by-step:
+
+ SERVICE = this;
+
+First, it sets the special static variable ``SERVICE'' to ``this'',
+which is a pointer to the ``EmacsService' object that was created.
+
+ handler = new Handler (Looper.getMainLooper ());
+
+Next, it creates a ``Handler'' object for the ``main looper''.
+This is a helper structure which allows executing code on the Android
+user interface thread.
+
+ manager = getAssets ();
+ app_context = getApplicationContext ();
+ metrics = getResources ().getDisplayMetrics ();
+ pixelDensityX = metrics.xdpi;
+ pixelDensityY = metrics.ydpi;
+
+Finally, it obtains:
+
+ - the asset manager, which is used to retrieve assets packaged
+ into the Emacs application package.
+
+ - the application context, used to obtain application specific
+ information.
+
+ - the display metrics, and from them, the X and Y densities in dots
+ per inch.
+
+Then, inside a ``try'' block:
+
+ try
+ {
+ /* Configure Emacs with the asset manager and other necessary
+ parameters. */
+ filesDir = app_context.getFilesDir ().getCanonicalPath ();
+ libDir = getLibraryDirectory ();
+ cacheDir = app_context.getCacheDir ().getCanonicalPath ();
+
+It obtains the names of the Emacs home, shared library, and temporary
+file directories.
+
+ /* Now provide this application's apk file, so a recursive
+ invocation of app_process (through android-emacs) can
+ find EmacsNoninteractive. */
+ classPath = getApkFile ();
+
+The name of the Emacs application package.
+
+ Log.d (TAG, "Initializing Emacs, where filesDir = " + filesDir
+ + ", libDir = " + libDir + ", and classPath = " + classPath);
+
+Prints a debug message to the Android system log with this
+information.
+
+ EmacsNative.setEmacsParams (manager, filesDir, libDir,
+ cacheDir, (float) pixelDensityX,
+ (float) pixelDensityY,
+ classPath, this);
+
+And calls the native function ``setEmacsParams'' (defined in
+android.c) to configure Emacs with this information.
+
+ /* Start the thread that runs Emacs. */
+ thread = new EmacsThread (this, needDashQ);
+ thread.start ();
+
+Then, it allocates an ``EmacsThread'' object, and starts that thread.
+Inside that thread is where Emacs's C code runs.
+
+ }
+ catch (IOException exception)
+ {
+ EmacsNative.emacsAbort ();
+ return;
+
+And here is the purpose of the ``try'' block. Functions related to
+file names in Java will signal errors of various types upon failure.
+
+This ``catch'' block means that the Java virtual machine will abort
+execution of the contents of the ``try'' block as soon as an error of
+type ``IOException'' is encountered, and begin executing the contents
+of the ``catch'' block.
+
+Any failure of that type here is a crash, and
+``EmacsNative.emacsAbort'' is called to quickly abort the process to
+get a useful backtrace.
+ }
+ }
+
+Now, let us look at the definition of the class ``EmacsThread'', found
+in org/gnu/emacs/EmacsThread.java:
+
+public class EmacsThread extends Thread
+{
+ /* Whether or not Emacs should be started -Q. */
+ private boolean startDashQ;
+
+ public
+ EmacsThread (EmacsService service, boolean startDashQ)
+ {
+ super ("Emacs main thread");
+ this.startDashQ = startDashQ;
+ }
+
+ @Override
+ public void
+ run ()
+ {
+ String args[];
+
+ if (!startDashQ)
+ args = new String[] { "libandroid-emacs.so", };
+ else
+ args = new String[] { "libandroid-emacs.so", "-Q", };
+
+ /* Run the native code now. */
+ EmacsNative.initEmacs (args, EmacsApplication.dumpFileName);
+ }
+};
+
+The class itself defines a single field, ``startDashQ'', a constructor
+with an unused argument of the type ``EmacsService'' (which is useful
+while debugging) and a flag ``startDashQ'', and a single function
+``run'', overriding the same function in the class ``Thread''.
+
+When ``thread.start'' is called, the Java virtual machine creates a
+new thread, and then calls the function ``run'' within that thread.
+
+This function then computes a suitable argument vector, and calls
+``EmacsNative.initEmacs'' (defined in android.c), which then calls a
+modified version of the regular Emacs ``main'' function.
+
+At that point, Emacs initialization proceeds as usual:
+Vinitial_window_system is set, loadup.el calls `normal-top-level',
+which calls `command-line', and finally
+`window-system-initialization', which initializes the `android'
+terminal interface as usual.
+
+What happens here is the same as on other platforms. Now, here is
+what happens when the initial frame is created: Fx_create_frame calls
+`android_create_frame_window' to create a top level window:
+
+static void
+android_create_frame_window (struct frame *f)
+{
+ struct android_set_window_attributes attributes;
+ enum android_window_value_mask attribute_mask;
+
+ attributes.background_pixel = FRAME_BACKGROUND_PIXEL (f);
+ attribute_mask = ANDROID_CW_BACK_PIXEL;
+
+ block_input ();
+ FRAME_ANDROID_WINDOW (f)
+ = android_create_window (FRAME_DISPLAY_INFO (f)->root_window,
+ f->left_pos,
+ f->top_pos,
+ FRAME_PIXEL_WIDTH (f),
+ FRAME_PIXEL_HEIGHT (f),
+ attribute_mask, &attributes);
+ unblock_input ();
+}
+
+This calls the function `android_create_window' with some arguments
+whose meanings are identical to the arguments to `XCreateWindow'.
+
+Here is the definition of `android_create_window', in android.c:
+
+android_window
+android_create_window (android_window parent, int x, int y,
+ int width, int height,
+ enum android_window_value_mask value_mask,
+ struct android_set_window_attributes *attrs)
+{
+ static jclass class;
+ static jmethodID constructor;
+ jobject object, parent_object, old;
+ android_window window;
+ android_handle prev_max_handle;
+ bool override_redirect;
+
+What does it do? First, some context:
+
+At any time, there can be at most 65535 Java objects referred to by
+the rest of Emacs through the Java native interface. Each such object
+is assigned a ``handle'' (similar to an XID on X) and given a unique
+type. The function `android_resolve_handle' returns the JNI `jobject'
+associated with a given handle.
+
+ parent_object = android_resolve_handle (parent, ANDROID_HANDLE_WINDOW);
+
+Here, it is being used to look up the `jobject' associated with the
+`parent' handle.
+
+ prev_max_handle = max_handle;
+ window = android_alloc_id ();
+
+Next, `max_handle' is saved, and a new handle is allocated for
+`window'.
+
+ if (!window)
+ error ("Out of window handles!");
+
+An error is signaled if Emacs runs out of available handles.
+
+ if (!class)
+ {
+ class = (*android_java_env)->FindClass (android_java_env,
+ "org/gnu/emacs/EmacsWindow");
+ assert (class != NULL);
+
+Then, if this initialization has not yet been completed, Emacs
+proceeds to find the Java class named ``EmacsWindow''.
+
+ constructor
+ = (*android_java_env)->GetMethodID (android_java_env, class, "<init>",
+ "(SLorg/gnu/emacs/EmacsWindow;"
+ "IIIIZ)V");
+ assert (constructor != NULL);
+
+And it tries to look up the constructor, which should take seven
+arguments:
+
+ S - a short. (the handle ID)
+ Lorg/gnu/Emacs/EmacsWindow; - an instance of the EmacsWindow
+ class. (the parent)
+ IIII - four ints. (the window geometry.)
+ Z - a boolean. (whether or not the
+ window is override-redirect; see
+ XChangeWindowAttributes.)
+
+ old = class;
+ class = (*android_java_env)->NewGlobalRef (android_java_env, class);
+ (*android_java_env)->ExceptionClear (android_java_env);
+ ANDROID_DELETE_LOCAL_REF (old);
+
+Next, it saves a global reference to the class and deletes the local
+reference. Global references will never be deallocated by the Java
+virtual machine as long as they still exist.
+
+ if (!class)
+ memory_full (0);
+ }
+
+ /* N.B. that ANDROID_CW_OVERRIDE_REDIRECT can only be set at window
+ creation time. */
+ override_redirect = ((value_mask
+ & ANDROID_CW_OVERRIDE_REDIRECT)
+ && attrs->override_redirect);
+
+ object = (*android_java_env)->NewObject (android_java_env, class,
+ constructor, (jshort) window,
+ parent_object, (jint) x, (jint) y,
+ (jint) width, (jint) height,
+ (jboolean) override_redirect);
+
+Then, it creates an instance of the ``EmacsWindow'' class with the
+appropriate arguments and previously determined constructor.
+
+ if (!object)
+ {
+ (*android_java_env)->ExceptionClear (android_java_env);
+
+ max_handle = prev_max_handle;
+ memory_full (0);
+
+If creating the object fails, Emacs clears the ``pending exception''
+and signals that it is out of memory.
+ }
+
+ android_handles[window].type = ANDROID_HANDLE_WINDOW;
+ android_handles[window].handle
+ = (*android_java_env)->NewGlobalRef (android_java_env,
+ object);
+ (*android_java_env)->ExceptionClear (android_java_env);
+ ANDROID_DELETE_LOCAL_REF (object);
+
+Otherwise, it associates a new global reference to the object with the
+handle, and deletes the local reference returned from the JNI
+NewObject function.
+
+ if (!android_handles[window].handle)
+ memory_full (0);
+
+If allocating the global reference fails, Emacs signals that it is out
+of memory.
+
+ android_change_window_attributes (window, value_mask, attrs);
+ return window;
+
+Otherwise, it applies the specified window attributes and returns the
+handle of the new window.
+}
+
+
+
+DRAWABLES, CURSORS AND HANDLES
+
+Each widget created by Emacs corresponds to a single ``window'', which
+has its own backing store. This arrangement is quite similar to X.
+
+C code does not directly refer to the EmacsView widgets that implement
+the UI logic behind windows. Instead, its handles refer to
+EmacsWindow structures, which contain the state necessary to interact
+with the widgets in an orderly and synchronized manner.
+
+Like X, both pixmaps and windows are drawable resources, and the same
+graphics operations can be applied to both. Thus, a separate
+EmacsPixmap structure is used to wrap around Android Bitmap resources,
+and the Java-level graphics operation functions are capable of
+operating on them both.
+
+Finally, graphics contexts are maintained on both the C and Java
+levels; the C state recorded in `struct android_gc' is kept in sync
+with the Java state in the GContext handle's corresponding EmacsGC
+structure, and cursors are used through handles that refer to
+EmacsCursor structures that hold system PointerIcons.
+
+In all cases, the interfaces provided are identical to X.
+
+
+
+EVENT LOOP
+
+In a typical Android application, the event loop is managed by the
+operating system, and callbacks (implemented through overriding
+separate functions in widgets) are run by the event loop wherever
+necessary. The thread which runs the event loop is also the only
+thread capable of creating and manipulating widgets and activities,
+and is referred to as the ``UI thread''.
+
+These callbacks are used by Emacs to write representations of X-like
+events to a separate event queue, which are then read from Emacs's own
+event loop running in a separate thread. This is accomplished through
+replacing `select' by a function which waits for the event queue to be
+occupied, in addition to any file descriptors that `select' would
+normally wait for.
+
+Conversely, Emacs's event loop sometimes needs to send events to the
+UI thread. These events are implemented as tiny fragments of code,
+which are run as they are received by the main thread.
+
+A typical example is `displayToast', which is implemented in
+EmacsService.java:
+
+ public void
+ displayToast (final String string)
+ {
+ runOnUiThread (new Runnable () {
+ @Override
+ public void
+ run ()
+ {
+ Toast toast;
+
+ toast = Toast.makeText (getApplicationContext (),
+ string, Toast.LENGTH_SHORT);
+ toast.show ();
+ }
+ });
+ }
+
+Here, the variable `string' is used by a nested function. This nested
+function contains a copy of that variable, and is run on the main
+thread using the function `runOnUiThread', in order to display a short
+status message on the display.
+
+When Emacs needs to wait for the nested function to finish, it uses a
+mechanism implemented in `syncRunnable'. This mechanism first calls a
+deadlock avoidance mechanism, then runs a nested function on the UI
+thread, which is expected to signal itself as a condition variable
+upon completion. It is typically used to allocate resources that can
+only be allocated from the UI thread, or to obtain non-thread-safe
+information. The following function is an example; it returns a new
+EmacsView widget corresponding to the provided window:
+
+ public EmacsView
+ getEmacsView (final EmacsWindow window, final int visibility,
+ final boolean isFocusedByDefault)
+ {
+ Runnable runnable;
+ final EmacsHolder<EmacsView> view;
+
+ view = new EmacsHolder<EmacsView> ();
+
+ runnable = new Runnable () {
+ public void
+ run ()
+ {
+ synchronized (this)
+ {
+ view.thing = new EmacsView (window);
+ view.thing.setVisibility (visibility);
+
+ /* The following function is only present on Android 26
+ or later. */
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
+ view.thing.setFocusedByDefault (isFocusedByDefault);
+
+ notify ();
+ }
+ }
+ };
+
+ syncRunnable (runnable);
+ return view.thing;
+ }
+
+As no value can be directly returned from the nested function, a
+separate container object is used to hold the result after the
+function finishes execution. Note the type name inside the angle
+brackets: this type is substituted into the class definition as it is
+used; a definition such as:
+
+public class Foo<T>
+{
+ T bar;
+};
+
+can not be used alone:
+
+ Foo holder; /* Error! */
+
+but must have a type specified:
+
+ Foo<Object> holder;
+
+in which case the effective definition is:
+
+public class Foo
+{
+ Object bar;
+};
+
+
+
+COMPATIBILITY
+
+There are three variables set within every Android application that
+extert influence over the set of Android systems it supports, and the
+measures it must take to function faithfully on each of those systems:
+the minimum API level, compile SDK version and target API level.
+
+The minimum API level is the earliest version of Android that is
+permitted to install and run the application. For Emacs, this is
+established by detecting the __ANDROID_API__ preprocessor macro
+defined within the Android C compiler.
+
+Before Java code executes any Android API calls that are not present
+within Android 2.2 (API level 8), the lowest API level supported by
+Emacs as a whole, it must first check the value of the:
+
+ Build.VERSION.SDK_INT
+
+variable, which is always set to the API level of the system Emacs is
+presently installed within. For example, before calling
+`dispatchKeyEventFromInputMethod', a function absent from Android 6.0
+(API level 23) or earlier, check:
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+ view.imManager.dispatchKeyEventFromInputMethod (view, key);
+ else
+ {
+
+where `N' is a constant defined to 24.
+
+The compile SDK version is the version of the Android SDK headers Java
+code is compiled against. Because Java does not provide conditional
+compilation constructs, Emacs can't be compiled with any version of
+these headers other than the version mentioned in `java/INSTALL', but
+the headers used do not affect the set of supported systems provided
+that the version checks illustrated above are performed where
+necessary.
+
+The target API level is a number within java/AndroidManifest.xml.in
+the system refers to when deciding whether to enable
+backwards-incompatible modifications to the behavior of various system
+APIs. For any given Android version, backwards incompatible changes
+in that version will be disabled for applications whose target API
+levels don't exceed its own.
+
+The target API should nevertheless be updated to match every major
+Android update, as Google has stated their intentions to prohibit
+users from installing applications targeting ``out-of-date'' versions
+of Android, though this threat has hitherto been made good on.
+
+
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
diff --git a/admin/notes/tree-sitter/build-module/batch.sh b/admin/notes/tree-sitter/build-module/batch.sh
new file mode 100755
index 00000000000..012b5882e83
--- /dev/null
+++ b/admin/notes/tree-sitter/build-module/batch.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+languages=(
+ 'bash'
+ 'c'
+ 'cmake'
+ 'cpp'
+ 'css'
+ 'c-sharp'
+ 'dockerfile'
+ 'elixir'
+ 'go'
+ 'go-mod'
+ 'heex'
+ 'html'
+ 'java'
+ 'javascript'
+ 'json'
+ 'lua'
+ 'python'
+ 'ruby'
+ 'rust'
+ 'toml'
+ 'tsx'
+ 'typescript'
+ 'yaml'
+)
+
+for language in "${languages[@]}"
+do
+ ./build.sh $language
+done
diff --git a/admin/notes/tree-sitter/build-module/build.sh b/admin/notes/tree-sitter/build-module/build.sh
new file mode 100755
index 00000000000..969187b7f92
--- /dev/null
+++ b/admin/notes/tree-sitter/build-module/build.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+lang=$1
+topdir="$PWD"
+
+case $(uname) in
+ "Darwin")
+ soext="dylib"
+ ;;
+ *"MINGW"*)
+ soext="dll"
+ ;;
+ *)
+ soext="so"
+ ;;
+esac
+
+echo "Building ${lang}"
+
+### Retrieve sources
+
+org="tree-sitter"
+repo="tree-sitter-${lang}"
+sourcedir="tree-sitter-${lang}/src"
+grammardir="tree-sitter-${lang}"
+
+case "${lang}" in
+ "dockerfile")
+ org="camdencheek"
+ ;;
+ "cmake")
+ org="uyha"
+ ;;
+ "elixir")
+ org="elixir-lang"
+ ;;
+ "go-mod")
+ # The parser is called "gomod".
+ lang="gomod"
+ org="camdencheek"
+ ;;
+ "heex")
+ org="phoenixframework"
+ ;;
+ "lua")
+ org="MunifTanjim"
+ ;;
+ "typescript")
+ sourcedir="tree-sitter-typescript/typescript/src"
+ grammardir="tree-sitter-typescript/typescript"
+ ;;
+ "tsx")
+ repo="tree-sitter-typescript"
+ sourcedir="tree-sitter-typescript/tsx/src"
+ grammardir="tree-sitter-typescript/tsx"
+ ;;
+ "yaml")
+ org="ikatyang"
+ ;;
+esac
+
+git clone "https://github.com/${org}/${repo}.git" \
+ --depth 1 --quiet
+cp "${grammardir}"/grammar.js "${sourcedir}"
+# We have to go into the source directory to compile, because some
+# C files refer to files like "../../common/scanner.h".
+cd "${sourcedir}"
+
+### Build
+
+cc -fPIC -c -I. parser.c
+# Compile scanner.c.
+if test -f scanner.c
+then
+ cc -fPIC -c -I. scanner.c
+fi
+# Compile scanner.cc.
+if test -f scanner.cc
+then
+ c++ -fPIC -I. -c scanner.cc
+fi
+# Link.
+if test -f scanner.cc
+then
+ c++ -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
+else
+ cc -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
+fi
+
+### Copy out
+
+mkdir -p "${topdir}/dist"
+cp "libtree-sitter-${lang}.${soext}" "${topdir}/dist"
+cd "${topdir}"
+rm -rf "${repo}"
diff --git a/admin/notes/tree-sitter/performance b/admin/notes/tree-sitter/performance
new file mode 100644
index 00000000000..23f84743ced
--- /dev/null
+++ b/admin/notes/tree-sitter/performance
@@ -0,0 +1,25 @@
+TREE-SITTER PERFORMANCE NOTES -*- org -*-
+
+* Facts
+
+Incremental parsing of a few characters worth of edit usually takes
+less than 0.1ms. If it takes longer than that, something is wrong.
+There’s one time where I found tree-sitter-c takes ~30ms to
+incremental parse. Updating to the latest version of tree-sitter-c
+solves it, so I didn’t investigate further.
+
+The ranges set for a parser doesn’t grow when you insert text into a
+range, so you have to update the ranges every time before
+parsing. Fortunately, changing ranges doesn’t invalidate incremental
+parsing, so there isn’t any performance lost in update ranges
+frequently.
+
+* Experiments
+
+Using regexp by default in treesit-simple-indent-rules seems wasteful,
+so I tried replacing all string-match-p to equal in
+treesit-simple-indent-presets, and indent xdisp.c for a comparison.
+Turns out using regexp by default is faster: regexp-based indent took
+45s and equal-based indent took 75s.
+
+I could be missing something, further experiments are welcome.
diff --git a/admin/notes/unicode b/admin/notes/unicode
index e11667d989e..4a25d8159cb 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -39,9 +39,9 @@ repository).
Next, review the assignment of default values of the Bidi Class
property to blocks in the file extracted/DerivedBidiClass.txt from the
-UCD (search for "unassigned" in that file). Any changes should be
-reflected in the unidata-gen.el file, where it sets up the default
-values around line 210.
+UCD (search for "unassigned" and "@missing" in that file). Any
+changes should be reflected in the unidata-gen.el file, where it sets
+up the default values around line 210.
Then Emacs should be rebuilt for them to take effect. Rebuilding
Emacs updates several derived files elsewhere in the Emacs source
@@ -61,9 +61,10 @@ Next, review the changes in UnicodeData.txt vs the previous version
used by Emacs. Any changes, be it introduction of new scripts or
addition of codepoints to existing scripts, might need corresponding
changes in the data used for filling the category-table, case-table,
-and char-width-table. The additional scripts should cause automatic
-updates in charscript.el, but it is a good idea to look at the results
-and see if any changes in admin/unidata/blocks.awk are required.
+and char-width-table in characters.el. The additional scripts should
+cause automatic updates in charscript.el, but it is a good idea to
+look at the results and see if any changes in admin/unidata/blocks.awk
+are required.
The setting of char-width-table around line 1200 of characters.el
should be checked against the latest version of the Unicode file
@@ -72,7 +73,10 @@ characters are those marked with W or F in that file. Zero-width
characters are not taken from EastAsianWidth.txt, they are those whose
Unicode General Category property is one of Mn, Me, or Cf, and also
Hangul jungseong and jongseong characters (a.k.a. "Jamo medial vowels"
-and "Jamo final consonants").
+and "Jamo final consonants"). The list of "ambiguous-width
+characters" recorded in the ambiguous-width-chars table (around line
+1400 of characters.el) should also be checked against the latest
+Unicode data in EastAsianWidth.txt.
Any new scripts added by UnicodeData.txt will also need updates to
script-representative-chars defined in fontset.el, and also the list
@@ -307,6 +311,12 @@ nontrivial changes to the build process.
src/msdos.c
+ * iso-latin-1
+
+ This file is used to test Emacs encoding.
+
+ test/lisp/gnus/mm-decode-resources/win1252-multipart.bin
+
* iso-2022-cn-ext
This file is externally generated from leim/MISC-DIC/cangjie-table.b5
@@ -357,19 +367,27 @@ nontrivial changes to the build process.
Some of the entries in this list are patterns, and stand for any
files with the listed extension.
+ *.bmp
+ *.cur
+ *.gif
+ *.gpg
*.gz
*.icns
*.ico
+ *.jpg
+ *.kbx
+ *.key
*.pbm
*.pdf
+ *.pif
*.png
*.sig
+ *.tiff
+ *.webp
+ *.zip
etc/e/eterm-color
- etc/package-keyring.gpg
- msdos/emacs.pif
- nextstep/GNUstep/Emacs.base/Resources/emacs.tiff
- nt/icons/hand.cur
-
+ etc/e/eterm-direct
+ java/emacs.keystore
This file is part of GNU Emacs.
diff --git a/admin/notes/years b/admin/notes/years
index 113e6608d3f..0510cb24b81 100644
--- a/admin/notes/years
+++ b/admin/notes/years
@@ -24,6 +24,8 @@ A few known problems with the build-aux/update-copyright script:
. several README and XPM files under etc/images/, and also
etc/refcards/README, msdos/README, and nt/icons/README aren't
updated either
+ - the copyright notice for headers generated by exec/configure.ac is
+ not updated as the file already bears a notice above it
These files need to be updated by hand.
diff --git a/admin/unidata/BidiBrackets.txt b/admin/unidata/BidiBrackets.txt
index e138e7f5bea..8cebea41544 100644
--- a/admin/unidata/BidiBrackets.txt
+++ b/admin/unidata/BidiBrackets.txt
@@ -1,6 +1,6 @@
-# BidiBrackets-15.0.0.txt
-# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW]
-# © 2022 Unicode®, Inc.
+# BidiBrackets-15.1.0.txt
+# Date: 2023-01-18
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
@@ -12,11 +12,11 @@
# This file is a normative contributory data file in the Unicode
# Character Database.
#
-# Bidi_Paired_Bracket is a normative property of type Miscellaneous,
+# Bidi_Paired_Bracket is a normative property
# which establishes a mapping between characters that are treated as
# bracket pairs by the Unicode Bidirectional Algorithm.
#
-# Bidi_Paired_Bracket_Type is a normative property of type Enumeration,
+# Bidi_Paired_Bracket_Type is a normative property
# which classifies characters into opening and closing paired brackets
# for the purposes of the Unicode Bidirectional Algorithm.
#
diff --git a/admin/unidata/BidiMirroring.txt b/admin/unidata/BidiMirroring.txt
index 5861d6e7f4b..7e58cc4d715 100644
--- a/admin/unidata/BidiMirroring.txt
+++ b/admin/unidata/BidiMirroring.txt
@@ -1,6 +1,6 @@
-# BidiMirroring-15.0.0.txt
-# Date: 2022-05-03, 18:47:00 GMT [KW, RP]
-# © 2022 Unicode®, Inc.
+# BidiMirroring-15.1.0.txt
+# Date: 2023-01-05
+# © 2023 Unicode®, Inc.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
@@ -15,7 +15,7 @@
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
-# The repertoire covered by the file is Unicode 15.0.0.
+# The repertoire covered by the file is Unicode 15.1.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
diff --git a/admin/unidata/Blocks.txt b/admin/unidata/Blocks.txt
index 12684594c9f..8fa3eaad04a 100644
--- a/admin/unidata/Blocks.txt
+++ b/admin/unidata/Blocks.txt
@@ -1,6 +1,6 @@
-# Blocks-15.0.0.txt
-# Date: 2022-01-28, 20:58:00 GMT [KW]
-# © 2022 Unicode®, Inc.
+# Blocks-15.1.0.txt
+# Date: 2023-07-28, 15:47:20 GMT
+# © 2023 Unicode®, Inc.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
@@ -352,6 +352,7 @@ FFF0..FFFF; Specials
2B740..2B81F; CJK Unified Ideographs Extension D
2B820..2CEAF; CJK Unified Ideographs Extension E
2CEB0..2EBEF; CJK Unified Ideographs Extension F
+2EBF0..2EE5F; CJK Unified Ideographs Extension I
2F800..2FA1F; CJK Compatibility Ideographs Supplement
30000..3134F; CJK Unified Ideographs Extension G
31350..323AF; CJK Unified Ideographs Extension H
diff --git a/admin/unidata/IdnaMappingTable.txt b/admin/unidata/IdnaMappingTable.txt
index e4c06117929..3bf6b2668a4 100644
--- a/admin/unidata/IdnaMappingTable.txt
+++ b/admin/unidata/IdnaMappingTable.txt
@@ -1,11 +1,11 @@
# IdnaMappingTable.txt
-# Date: 2022-05-02, 19:29:26 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-08-10, 22:32:27 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Unicode IDNA Compatible Preprocessing for UTS #46
-# Version: 15.0.0
+# Version: 15.1.0
#
# For documentation and usage, see https://www.unicode.org/reports/tr46
#
@@ -2036,7 +2036,7 @@
1E9A ; mapped ; 0061 02BE # 1.1 LATIN SMALL LETTER A WITH RIGHT HALF RING
1E9B ; mapped ; 1E61 # 2.0 LATIN SMALL LETTER LONG S WITH DOT ABOVE
1E9C..1E9D ; valid # 5.1 LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E ; mapped ; 0073 0073 # 5.1 LATIN CAPITAL LETTER SHARP S
+1E9E ; mapped ; 00DF # 5.1 LATIN CAPITAL LETTER SHARP S
1E9F ; valid # 5.1 LATIN SMALL LETTER DELTA
1EA0 ; mapped ; 1EA1 # 1.1 LATIN CAPITAL LETTER A WITH DOT BELOW
1EA1 ; valid # 1.1 LATIN SMALL LETTER A WITH DOT BELOW
@@ -2565,11 +2565,7 @@
222E ; valid ; ; NV8 # 1.1 CONTOUR INTEGRAL
222F ; mapped ; 222E 222E # 1.1 SURFACE INTEGRAL
2230 ; mapped ; 222E 222E 222E #1.1 VOLUME INTEGRAL
-2231..225F ; valid ; ; NV8 # 1.1 CLOCKWISE INTEGRAL..QUESTIONED EQUAL TO
-2260 ; disallowed_STD3_valid # 1.1 NOT EQUAL TO
-2261..226D ; valid ; ; NV8 # 1.1 IDENTICAL TO..NOT EQUIVALENT TO
-226E..226F ; disallowed_STD3_valid # 1.1 NOT LESS-THAN..NOT GREATER-THAN
-2270..22F1 ; valid ; ; NV8 # 1.1 NEITHER LESS-THAN NOR EQUAL TO..DOWN RIGHT DIAGONAL ELLIPSIS
+2231..22F1 ; valid ; ; NV8 # 1.1 CLOCKWISE INTEGRAL..DOWN RIGHT DIAGONAL ELLIPSIS
22F2..22FF ; valid ; ; NV8 # 3.2 ELEMENT OF WITH LONG HORIZONTAL STROKE..Z NOTATION BAG MEMBERSHIP
2300 ; valid ; ; NV8 # 1.1 DIAMETER SIGN
2301 ; valid ; ; NV8 # 3.0 ELECTRIC ARROW
@@ -3273,7 +3269,7 @@
2FD5 ; mapped ; 9FA0 # 3.0 KANGXI RADICAL FLUTE
2FD6..2FEF ; disallowed # NA <reserved-2FD6>..<reserved-2FEF>
2FF0..2FFB ; disallowed # 3.0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-2FFC..2FFF ; disallowed # NA <reserved-2FFC>..<reserved-2FFF>
+2FFC..2FFF ; disallowed # 15.1 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3000 ; disallowed_STD3_mapped ; 0020 # 1.1 IDEOGRAPHIC SPACE
3001 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC COMMA
3002 ; mapped ; 002E # 1.1 IDEOGRAPHIC FULL STOP
@@ -3425,7 +3421,8 @@
31BB..31BF ; valid # 13.0 BOPOMOFO FINAL LETTER G..BOPOMOFO LETTER AH
31C0..31CF ; valid ; ; NV8 # 4.1 CJK STROKE T..CJK STROKE N
31D0..31E3 ; valid ; ; NV8 # 5.1 CJK STROKE H..CJK STROKE Q
-31E4..31EF ; disallowed # NA <reserved-31E4>..<reserved-31EF>
+31E4..31EE ; disallowed # NA <reserved-31E4>..<reserved-31EE>
+31EF ; disallowed # 15.1 IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
31F0..31FF ; valid # 3.2 KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
3200 ; disallowed_STD3_mapped ; 0028 1100 0029 #1.1 PARENTHESIZED HANGUL KIYEOK
3201 ; disallowed_STD3_mapped ; 0028 1102 0029 #1.1 PARENTHESIZED HANGUL NIEUN
@@ -8450,7 +8447,9 @@ FFFE..FFFF ; disallowed # 1.1 <noncharacter-FFFE
2B820..2CEA1 ; valid # 8.0 CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEA2..2CEAF ; disallowed # NA <reserved-2CEA2>..<reserved-2CEAF>
2CEB0..2EBE0 ; valid # 10.0 CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
-2EBE1..2F7FF ; disallowed # NA <reserved-2EBE1>..<reserved-2F7FF>
+2EBE1..2EBEF ; disallowed # NA <reserved-2EBE1>..<reserved-2EBEF>
+2EBF0..2EE5D ; valid # 15.1 CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+2EE5E..2F7FF ; disallowed # NA <reserved-2EE5E>..<reserved-2F7FF>
2F800 ; mapped ; 4E3D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F800
2F801 ; mapped ; 4E38 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F801
2F802 ; mapped ; 4E41 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F802
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index 6768d610ee0..a5fd927f548 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -105,19 +105,23 @@ ${unidir}/idna-mapping.el: ${srcdir}/unidata-gen.el \
charscript.el: ${unidir}/charscript.el
blocks = ${srcdir}/blocks.awk
-
+blocks_sources = ${srcdir}/Blocks.txt ${srcdir}/emoji-data.txt
${unidir}/charscript.el: ${blocks}
-${unidir}/charscript.el: ${srcdir}/Blocks.txt ${srcdir}/emoji-data.txt
- $(AM_V_GEN)$(AWK) -f ${blocks} $^ > $@
+# Don't use $^, since that includes the awk script.
+${unidir}/charscript.el: ${blocks_sources}
+ $(AM_V_GEN)$(AWK) -f ${blocks} ${blocks_sources} > $@
.PHONY: emoji-zwj.el
emoji-zwj.el: ${unidir}/emoji-zwj.el
zwj = ${srcdir}/emoji-zwj.awk
+zwj_sources = ${srcdir}/emoji-zwj-sequences.txt $(srcdir)/emoji-sequences.txt
+${unidir}/emoji-zwj.el: ${zwj}
-${unidir}/emoji-zwj.el: ${srcdir}/emoji-zwj-sequences.txt $(srcdir)/emoji-sequences.txt ${zwj}
- $(AM_V_GEN)$(AWK) -f ${zwj} $^ > $@
+# Don't use $^, since that includes the awk script.
+${unidir}/emoji-zwj.el: ${zwj_sources}
+ $(AM_V_GEN)$(AWK) -f ${zwj} ${zwj_sources} > $@
.PHONY: clean bootstrap-clean distclean maintainer-clean gen-clean
diff --git a/admin/unidata/NormalizationTest.txt b/admin/unidata/NormalizationTest.txt
index e75b4801c9b..2e88574243d 100644
--- a/admin/unidata/NormalizationTest.txt
+++ b/admin/unidata/NormalizationTest.txt
@@ -1,6 +1,6 @@
-# NormalizationTest-15.0.0.txt
-# Date: 2022-04-02, 01:29:09 GMT
-# © 2022 Unicode®, Inc.
+# NormalizationTest-15.1.0.txt
+# Date: 2023-01-05, 20:34:44 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
diff --git a/admin/unidata/PropertyValueAliases.txt b/admin/unidata/PropertyValueAliases.txt
index 9346fcf03ee..6d308108818 100644
--- a/admin/unidata/PropertyValueAliases.txt
+++ b/admin/unidata/PropertyValueAliases.txt
@@ -1,6 +1,6 @@
-# PropertyValueAliases-15.0.0.txt
-# Date: 2022-08-05, 23:42:17 GMT
-# © 2022 Unicode®, Inc.
+# PropertyValueAliases-15.1.0.txt
+# Date: 2023-08-07, 15:21:34 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
@@ -91,6 +91,7 @@ age; 12.1 ; V12_1
age; 13.0 ; V13_0
age; 14.0 ; V14_0
age; 15.0 ; V15_0
+age; 15.1 ; V15_1
age; NA ; Unassigned
# Alphabetic (Alpha)
@@ -208,6 +209,7 @@ blk; CJK_Ext_E ; CJK_Unified_Ideographs_Extension_E
blk; CJK_Ext_F ; CJK_Unified_Ideographs_Extension_F
blk; CJK_Ext_G ; CJK_Unified_Ideographs_Extension_G
blk; CJK_Ext_H ; CJK_Unified_Ideographs_Extension_H
+blk; CJK_Ext_I ; CJK_Unified_Ideographs_Extension_I
blk; CJK_Radicals_Sup ; CJK_Radicals_Supplement
blk; CJK_Strokes ; CJK_Strokes
blk; CJK_Symbols ; CJK_Symbols_And_Punctuation
@@ -817,6 +819,21 @@ IDSB; Y ; Yes ; T
IDST; N ; No ; F ; False
IDST; Y ; Yes ; T ; True
+# IDS_Unary_Operator (IDSU)
+
+IDSU; N ; No ; F ; False
+IDSU; Y ; Yes ; T ; True
+
+# ID_Compat_Math_Continue (ID_Compat_Math_Continue)
+
+ID_Compat_Math_Continue; N ; No ; F ; False
+ID_Compat_Math_Continue; Y ; Yes ; T ; True
+
+# ID_Compat_Math_Start (ID_Compat_Math_Start)
+
+ID_Compat_Math_Start; N ; No ; F ; False
+ID_Compat_Math_Start; Y ; Yes ; T ; True
+
# ID_Continue (IDC)
IDC; N ; No ; F ; False
@@ -836,6 +853,13 @@ IDS; Y ; Yes ; T
Ideo; N ; No ; F ; False
Ideo; Y ; Yes ; T ; True
+# Indic_Conjunct_Break (InCB)
+
+InCB; Consonant ; Consonant
+InCB; Extend ; Extend
+InCB; Linker ; Linker
+InCB; None ; None
+
# Indic_Positional_Category (InPC)
InPC; Bottom ; Bottom
@@ -1074,7 +1098,10 @@ jt ; U ; Non_Joining
# Line_Break (lb)
lb ; AI ; Ambiguous
+lb ; AK ; Aksara
lb ; AL ; Alphabetic
+lb ; AP ; Aksara_Prebase
+lb ; AS ; Aksara_Start
lb ; B2 ; Break_Both
lb ; BA ; Break_After
lb ; BB ; Break_Before
@@ -1112,6 +1139,8 @@ lb ; SA ; Complex_Context
lb ; SG ; Surrogate
lb ; SP ; Space
lb ; SY ; Break_Symbols
+lb ; VF ; Virama_Final
+lb ; VI ; Virama
lb ; WJ ; Word_Joiner
lb ; XX ; Unknown
lb ; ZW ; ZWSpace
@@ -1156,6 +1185,9 @@ NFKC_QC; M ; Maybe
NFKC_QC; N ; No
NFKC_QC; Y ; Yes
+# NFKC_Simple_Casefold (NFKC_SCF)
+
+
# NFKD_Quick_Check (NFKD_QC)
NFKD_QC; N ; No
diff --git a/admin/unidata/ScriptExtensions.txt b/admin/unidata/ScriptExtensions.txt
index 2f5a1727e33..23141fb8241 100644
--- a/admin/unidata/ScriptExtensions.txt
+++ b/admin/unidata/ScriptExtensions.txt
@@ -1,6 +1,6 @@
-# ScriptExtensions-15.0.0.txt
-# Date: 2022-02-02, 00:57:11 GMT
-# © 2022 Unicode®, Inc.
+# ScriptExtensions-15.1.0.txt
+# Date: 2023-02-01, 23:02:24 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
@@ -136,20 +136,20 @@
# ================================================
-# Script_Extensions=Arab Rohg
+# Script_Extensions=Arab Nkoo
-06D4 ; Arab Rohg # Po ARABIC FULL STOP
+FD3E ; Arab Nkoo # Pe ORNATE LEFT PARENTHESIS
+FD3F ; Arab Nkoo # Ps ORNATE RIGHT PARENTHESIS
-# Total code points: 1
+# Total code points: 2
# ================================================
-# Script_Extensions=Arab Nkoo
+# Script_Extensions=Arab Rohg
-FD3E ; Arab Nkoo # Pe ORNATE LEFT PARENTHESIS
-FD3F ; Arab Nkoo # Ps ORNATE RIGHT PARENTHESIS
+06D4 ; Arab Rohg # Po ARABIC FULL STOP
-# Total code points: 2
+# Total code points: 1
# ================================================
@@ -553,17 +553,17 @@ FF64..FF65 ; Bopo Hang Hani Hira Kana Yiii # Po [2] HALFWIDTH IDEOGRAPHIC C
# ================================================
-# Script_Extensions=Beng Deva Gran Knda Nand Orya Telu Tirh
+# Script_Extensions=Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc
-1CF2 ; Beng Deva Gran Knda Nand Orya Telu Tirh # Lo VEDIC SIGN ARDHAVISARGA
+0640 ; Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc # Lm ARABIC TATWEEL
# Total code points: 1
# ================================================
-# Script_Extensions=Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc
+# Script_Extensions=Beng Deva Gran Knda Mlym Nand Orya Sinh Telu Tirh
-0640 ; Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc # Lm ARABIC TATWEEL
+1CF2 ; Beng Deva Gran Knda Mlym Nand Orya Sinh Telu Tirh # Lo VEDIC SIGN ARDHAVISARGA
# Total code points: 1
@@ -572,10 +572,9 @@ FF64..FF65 ; Bopo Hang Hani Hira Kana Yiii # Po [2] HALFWIDTH IDEOGRAPHIC C
# Script_Extensions=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh
A836..A837 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
-A838 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # Sc NORTH INDIC RUPEE MARK
A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So NORTH INDIC QUANTITY MARK
-# Total code points: 4
+# Total code points: 3
# ================================================
@@ -587,6 +586,14 @@ A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So
# ================================================
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Shrd Sind Takr Tirh
+
+A838 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Shrd Sind Takr Tirh # Sc NORTH INDIC RUPEE MARK
+
+# Total code points: 1
+
+# ================================================
+
# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh
0951 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh # Mn DEVANAGARI STRESS SIGN UDATTA
@@ -595,17 +602,17 @@ A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So
# ================================================
-# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind Takr Tirh
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Shrd Sind Takr Tirh
-A833..A835 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE SIXTEENTHS
+A833..A835 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Shrd Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE SIXTEENTHS
# Total code points: 3
# ================================================
-# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Sind Takr Tirh
+# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Shrd Sind Takr Tirh
-A830..A832 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE QUARTERS
+A830..A832 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Shrd Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE QUARTERS
# Total code points: 3
diff --git a/admin/unidata/Scripts.txt b/admin/unidata/Scripts.txt
index 2b138bffb88..0b3f717cb20 100644
--- a/admin/unidata/Scripts.txt
+++ b/admin/unidata/Scripts.txt
@@ -1,6 +1,6 @@
-# Scripts-15.0.0.txt
-# Date: 2022-04-26, 23:15:02 GMT
-# © 2022 Unicode®, Inc.
+# Scripts-15.1.0.txt
+# Date: 2023-07-28, 16:01:07 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
@@ -357,7 +357,7 @@
2E5B ; Common # Ps BOTTOM HALF LEFT PARENTHESIS
2E5C ; Common # Pe BOTTOM HALF RIGHT PARENTHESIS
2E5D ; Common # Pd OBLIQUE HYPHEN
-2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FF0..2FFF ; Common # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3000 ; Common # Zs IDEOGRAPHIC SPACE
3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL
@@ -399,6 +399,7 @@
3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E3 ; Common # So [36] CJK STROKE T..CJK STROKE Q
+31EF ; Common # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247 ; Common # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3248..324F ; Common # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
@@ -629,7 +630,7 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 8301
+# Total code points: 8306
# ================================================
@@ -1593,11 +1594,12 @@ FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILI
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBF0..2EE5D ; Han # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
31350..323AF ; Han # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 98408
+# Total code points: 99030
# ================================================
diff --git a/admin/unidata/SpecialCasing.txt b/admin/unidata/SpecialCasing.txt
index 08d04fa9421..de08450a6b9 100644
--- a/admin/unidata/SpecialCasing.txt
+++ b/admin/unidata/SpecialCasing.txt
@@ -1,6 +1,6 @@
-# SpecialCasing-15.0.0.txt
-# Date: 2022-02-02, 23:35:52 GMT
-# © 2022 Unicode®, Inc.
+# SpecialCasing-15.1.0.txt
+# Date: 2023-01-05, 20:35:03 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
diff --git a/admin/unidata/UnicodeData.txt b/admin/unidata/UnicodeData.txt
index ea963a7162c..bdcc41850d7 100644
--- a/admin/unidata/UnicodeData.txt
+++ b/admin/unidata/UnicodeData.txt
@@ -11231,6 +11231,10 @@
2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+2FFC;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT;So;0;ON;;;;;N;;;;;
+2FFD;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2FFE;IDEOGRAPHIC DESCRIPTION CHARACTER HORIZONTAL REFLECTION;So;0;ON;;;;;N;;;;;
+2FFF;IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION;So;0;ON;;;;;N;;;;;
3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
@@ -11705,6 +11709,7 @@
31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
+31EF;IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION;So;0;ON;;;;;N;;;;;
31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
@@ -34035,6 +34040,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
2CEA1;<CJK Ideograph Extension E, Last>;Lo;0;L;;;;;N;;;;;
2CEB0;<CJK Ideograph Extension F, First>;Lo;0;L;;;;;N;;;;;
2EBE0;<CJK Ideograph Extension F, Last>;Lo;0;L;;;;;N;;;;;
+2EBF0;<CJK Ideograph Extension I, First>;Lo;0;L;;;;;N;;;;;
+2EE5D;<CJK Ideograph Extension I, Last>;Lo;0;L;;;;;N;;;;;
2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
diff --git a/admin/unidata/confusables.txt b/admin/unidata/confusables.txt
index 24b61d519af..5e056ed5a35 100644
--- a/admin/unidata/confusables.txt
+++ b/admin/unidata/confusables.txt
@@ -1,11 +1,11 @@
# confusables.txt
-# Date: 2022-08-26, 16:49:08 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-08-11, 17:46:40 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Unicode Security Mechanisms for UTS #39
-# Version: 15.0.0
+# Version: 15.1.0
#
# For documentation and usage, see https://www.unicode.org/reports/tr39
#
@@ -349,8 +349,8 @@ A4FA ; 002E 002E ; MA # ( ꓺ → .. ) LISU LETTER TONE MYA CYA → FULL STOP, F
A6F4 ; A6F3 A6F3 ; MA #* ( ꛴ → ꛳꛳ ) BAMUM COLON → BAMUM FULL STOP, BAMUM FULL STOP #
-30FB ; 00B7 ; MA #* ( ・ → · ) KATAKANA MIDDLE DOT → MIDDLE DOT # →•→
-FF65 ; 00B7 ; MA #* ( ・ → · ) HALFWIDTH KATAKANA MIDDLE DOT → MIDDLE DOT # →•→
+30FB ; 00B7 ; MA # ( ・ → · ) KATAKANA MIDDLE DOT → MIDDLE DOT # →•→
+FF65 ; 00B7 ; MA # ( ・ → · ) HALFWIDTH KATAKANA MIDDLE DOT → MIDDLE DOT # →•→
16EB ; 00B7 ; MA #* ( ᛫ → · ) RUNIC SINGLE PUNCTUATION → MIDDLE DOT #
0387 ; 00B7 ; MA # ( · → · ) GREEK ANO TELEIA → MIDDLE DOT #
2E31 ; 00B7 ; MA #* ( ⸱ → · ) WORD SEPARATOR MIDDLE DOT → MIDDLE DOT #
diff --git a/admin/unidata/copyright.html b/admin/unidata/copyright.html
index 567c54e72ac..fe6dd16903e 100644
--- a/admin/unidata/copyright.html
+++ b/admin/unidata/copyright.html
@@ -13,7 +13,7 @@
<title>Unicode Terms of Use</title>
<link rel="stylesheet" type="text/css"
-href="https://www.unicode.org/webscripts/standard_styles.css">
+href="http://www.unicode.org/webscripts/standard_styles.css">
<style type="text/css">
pre {
@@ -32,8 +32,8 @@ pre {
<td colspan="2">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
- <td class="icon" style="width:38px; height:35px"><a href="https://www.unicode.org/"><img border="0"
- src="https://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
+ <td class="icon" style="width:38px; height:35px"><a href="http://www.unicode.org/"><img border="0"
+ src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
<td class="icon" style="vertical-align:middle;"> &nbsp;<a class="bar"
href="https://www.unicode.org/copyright.html"><font size="3">Terms of Use</font></a></td>
<td class="bar"><a href="https://www.unicode.org/main.html" class="bar">Tech Site</a>
@@ -112,13 +112,13 @@ pre {
<p>For the general privacy policy governing access to this site, see
the&nbsp;
- <a href="https://www.unicode.org/policies/privacy_policy.html">
+ <a href="http://www.unicode.org/policies/privacy_policy.html">
Unicode Privacy Policy</a>.</p>
<ol type="A">
<li><u><a name="1"></a>Unicode Copyright</u>
<ol>
- <li>Copyright © 1991-2022 Unicode, Inc. All rights reserved.</li>
+ <li>Copyright © 1991-2023 Unicode, Inc. All rights reserved.</li>
</ol>
</li>
@@ -158,7 +158,7 @@ http://site.icu-project.org/download/
specifications of rights and restrictions of use. For the book
editions (Unicode 5.0 and earlier), these are found on the back
of the
- <a href="https://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
+ <a href="http://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
<li>
The Unicode PDF <a href="https://www.unicode.org/charts/">online code charts</a> carry specific restrictions. Those restrictions are incorporated as the
first page of each PDF code chart.</li>
@@ -224,7 +224,7 @@ http://site.icu-project.org/download/
<li><u><a name="5"></a>Trademarks &amp; Logos</u>
<ol>
<li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
-<li><a href="https://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
+<li><a href="http://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
<li>All third party trademarks referenced herein are the property of their respective owners.</li>
</ol>
</li>
@@ -270,15 +270,15 @@ http://site.icu-project.org/download/
<center>
<table cellspacing="0" cellpadding="0" border="0" id="table2">
<tr>
- <td><a href="https://www.unicode.org/copyright.html">
- <img src="https://www.unicode.org/img/hb_notice.gif"
+ <td><a href="http://www.unicode.org/copyright.html">
+ <img src="http://www.unicode.org/img/hb_notice.gif"
border="0" alt="Access to Copyright and terms of use"
width="216" height="50"></a></td>
</tr>
</table>
<script language="Javascript" type="text/javascript"
- src="https://www.unicode.org/webscripts/lastModified.js">
+ src="http://www.unicode.org/webscripts/lastModified.js">
</script>
</center>
diff --git a/admin/unidata/emoji-data.txt b/admin/unidata/emoji-data.txt
index 7942fc89a35..ab9c04ff056 100644
--- a/admin/unidata/emoji-data.txt
+++ b/admin/unidata/emoji-data.txt
@@ -1,11 +1,11 @@
# emoji-data.txt
-# Date: 2022-08-02, 00:26:10 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-02-01, 02:22:54 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Emoji Data for UTS #51
-# Used with Emoji Version 15.0 and subsequent minor revisions (if any)
+# Used with Emoji Version 15.1 and subsequent minor revisions (if any)
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
diff --git a/admin/unidata/emoji-sequences.txt b/admin/unidata/emoji-sequences.txt
index ffd40668117..dfeae158edb 100644
--- a/admin/unidata/emoji-sequences.txt
+++ b/admin/unidata/emoji-sequences.txt
@@ -1,11 +1,11 @@
# emoji-sequences.txt
-# Date: 2022-08-15, 23:13:41 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-06-05, 21:39:54 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Emoji Sequence Data for UTS #51
-# Version: 15.0
+# Version: 15.1
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
@@ -38,7 +38,6 @@
# Basic_Emoji
-
231A..231B ; Basic_Emoji ; watch..hourglass done # E0.6 [2] (⌚..⌛)
23E9..23EC ; Basic_Emoji ; fast-forward button..fast down button # E0.6 [4] (⏩..⏬)
23F0 ; Basic_Emoji ; alarm clock # E0.6 [1] (⏰)
@@ -534,7 +533,6 @@
# Emoji_Keycap_Sequence
-
0023 FE0F 20E3; Emoji_Keycap_Sequence ; keycap: \x{23} # E0.6 [1] (#️⃣)
002A FE0F 20E3; Emoji_Keycap_Sequence ; keycap: * # E2.0 [1] (*️⃣)
0030 FE0F 20E3; Emoji_Keycap_Sequence ; keycap: 0 # E0.6 [1] (0️⃣)
@@ -553,8 +551,7 @@
# ================================================
# RGI_Emoji_Flag_Sequence: This list does not include deprecated or macroregion flags, except for UN and EU.
-# See Annex B of TR51 for more information.
-
+# See Annex B of UTS #51 for more information.
1F1E6 1F1E8 ; RGI_Emoji_Flag_Sequence ; flag: Ascension Island # E2.0 [1] (🇦🇨)
1F1E6 1F1E9 ; RGI_Emoji_Flag_Sequence ; flag: Andorra # E2.0 [1] (🇦🇩)
@@ -787,7 +784,7 @@
1F1F9 1F1F2 ; RGI_Emoji_Flag_Sequence ; flag: Turkmenistan # E2.0 [1] (🇹🇲)
1F1F9 1F1F3 ; RGI_Emoji_Flag_Sequence ; flag: Tunisia # E2.0 [1] (🇹🇳)
1F1F9 1F1F4 ; RGI_Emoji_Flag_Sequence ; flag: Tonga # E2.0 [1] (🇹🇴)
-1F1F9 1F1F7 ; RGI_Emoji_Flag_Sequence ; flag: Turkey # E2.0 [1] (🇹🇷)
+1F1F9 1F1F7 ; RGI_Emoji_Flag_Sequence ; flag: Türkiye # E2.0 [1] (🇹🇷)
1F1F9 1F1F9 ; RGI_Emoji_Flag_Sequence ; flag: Trinidad & Tobago # E2.0 [1] (🇹🇹)
1F1F9 1F1FB ; RGI_Emoji_Flag_Sequence ; flag: Tuvalu # E2.0 [1] (🇹🇻)
1F1F9 1F1FC ; RGI_Emoji_Flag_Sequence ; flag: Taiwan # E2.0 [1] (🇹🇼)
@@ -819,8 +816,7 @@
# ================================================
-# RGI_Emoji_Tag_Sequence: See Annex C of TR51 for more information.
-
+# RGI_Emoji_Tag_Sequence: See Annex C of UTS #51 for more information.
1F3F4 E0067 E0062 E0065 E006E E0067 E007F; RGI_Emoji_Tag_Sequence; flag: England # E5.0 [1] (🏴󠁧󠁢󠁥󠁮󠁧󠁿)
1F3F4 E0067 E0062 E0073 E0063 E0074 E007F; RGI_Emoji_Tag_Sequence; flag: Scotland # E5.0 [1] (🏴󠁧󠁢󠁳󠁣󠁴󠁿)
@@ -832,7 +828,6 @@
# RGI_Emoji_Modifier_Sequence
-
261D 1F3FB ; RGI_Emoji_Modifier_Sequence ; index pointing up: light skin tone # E1.0 [1] (☝🏻)
261D 1F3FC ; RGI_Emoji_Modifier_Sequence ; index pointing up: medium-light skin tone # E1.0 [1] (☝🏼)
261D 1F3FD ; RGI_Emoji_Modifier_Sequence ; index pointing up: medium skin tone # E1.0 [1] (☝🏽)
diff --git a/admin/unidata/emoji-test.txt b/admin/unidata/emoji-test.txt
index bc8b52c2fb4..1f50b23fa24 100644
--- a/admin/unidata/emoji-test.txt
+++ b/admin/unidata/emoji-test.txt
@@ -1,11 +1,11 @@
# emoji-test.txt
-# Date: 2022-08-12, 20:24:39 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-06-05, 21:39:54 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Emoji Keyboard/Display Test Data for UTS #51
-# Version: 15.0
+# Version: 15.1
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
@@ -93,6 +93,10 @@
1F62E 200D 1F4A8 ; fully-qualified # 😮‍💨 E13.1 face exhaling
1F925 ; fully-qualified # 🤥 E3.0 lying face
1FAE8 ; fully-qualified # 🫨 E15.0 shaking face
+1F642 200D 2194 FE0F ; fully-qualified # 🙂‍↔️ E15.1 head shaking horizontally
+1F642 200D 2194 ; minimally-qualified # 🙂‍↔ E15.1 head shaking horizontally
+1F642 200D 2195 FE0F ; fully-qualified # 🙂‍↕️ E15.1 head shaking vertically
+1F642 200D 2195 ; minimally-qualified # 🙂‍↕ E15.1 head shaking vertically
# subgroup: face-sleepy
1F60C ; fully-qualified # 😌 E0.6 relieved face
@@ -244,8 +248,8 @@
1F4AD ; fully-qualified # 💭 E1.0 thought balloon
1F4A4 ; fully-qualified # 💤 E0.6 ZZZ
-# Smileys & Emotion subtotal: 180
-# Smileys & Emotion subtotal: 180 w/o modifiers
+# Smileys & Emotion subtotal: 184
+# Smileys & Emotion subtotal: 184 w/o modifiers
# group: People & Body
@@ -2065,6 +2069,66 @@
1F6B6 1F3FE 200D 2640 ; minimally-qualified # 🚶🏾‍♀ E4.0 woman walking: medium-dark skin tone
1F6B6 1F3FF 200D 2640 FE0F ; fully-qualified # 🚶🏿‍♀️ E4.0 woman walking: dark skin tone
1F6B6 1F3FF 200D 2640 ; minimally-qualified # 🚶🏿‍♀ E4.0 woman walking: dark skin tone
+1F6B6 200D 27A1 FE0F ; fully-qualified # 🚶‍➡️ E15.1 person walking facing right
+1F6B6 200D 27A1 ; minimally-qualified # 🚶‍➡ E15.1 person walking facing right
+1F6B6 1F3FB 200D 27A1 FE0F ; fully-qualified # 🚶🏻‍➡️ E15.1 person walking facing right: light skin tone
+1F6B6 1F3FB 200D 27A1 ; minimally-qualified # 🚶🏻‍➡ E15.1 person walking facing right: light skin tone
+1F6B6 1F3FC 200D 27A1 FE0F ; fully-qualified # 🚶🏼‍➡️ E15.1 person walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 27A1 ; minimally-qualified # 🚶🏼‍➡ E15.1 person walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 27A1 FE0F ; fully-qualified # 🚶🏽‍➡️ E15.1 person walking facing right: medium skin tone
+1F6B6 1F3FD 200D 27A1 ; minimally-qualified # 🚶🏽‍➡ E15.1 person walking facing right: medium skin tone
+1F6B6 1F3FE 200D 27A1 FE0F ; fully-qualified # 🚶🏾‍➡️ E15.1 person walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 27A1 ; minimally-qualified # 🚶🏾‍➡ E15.1 person walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 27A1 FE0F ; fully-qualified # 🚶🏿‍➡️ E15.1 person walking facing right: dark skin tone
+1F6B6 1F3FF 200D 27A1 ; minimally-qualified # 🚶🏿‍➡ E15.1 person walking facing right: dark skin tone
+1F6B6 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶‍♀️‍➡️ E15.1 woman walking facing right
+1F6B6 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶‍♀‍➡️ E15.1 woman walking facing right
+1F6B6 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶‍♀️‍➡ E15.1 woman walking facing right
+1F6B6 200D 2640 200D 27A1 ; minimally-qualified # 🚶‍♀‍➡ E15.1 woman walking facing right
+1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏻‍♀️‍➡️ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏻‍♀‍➡️ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏻‍♀️‍➡ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏻‍♀‍➡ E15.1 woman walking facing right: light skin tone
+1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏼‍♀️‍➡️ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏼‍♀‍➡️ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏼‍♀️‍➡ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏼‍♀‍➡ E15.1 woman walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏽‍♀️‍➡️ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏽‍♀‍➡️ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏽‍♀️‍➡ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏽‍♀‍➡ E15.1 woman walking facing right: medium skin tone
+1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏾‍♀️‍➡️ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏾‍♀‍➡️ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏾‍♀️‍➡ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏾‍♀‍➡ E15.1 woman walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏿‍♀️‍➡️ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏿‍♀‍➡️ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏿‍♀️‍➡ E15.1 woman walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏿‍♀‍➡ E15.1 woman walking facing right: dark skin tone
+1F6B6 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶‍♂️‍➡️ E15.1 man walking facing right
+1F6B6 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶‍♂‍➡️ E15.1 man walking facing right
+1F6B6 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶‍♂️‍➡ E15.1 man walking facing right
+1F6B6 200D 2642 200D 27A1 ; minimally-qualified # 🚶‍♂‍➡ E15.1 man walking facing right
+1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏻‍♂️‍➡️ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏻‍♂‍➡️ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏻‍♂️‍➡ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏻‍♂‍➡ E15.1 man walking facing right: light skin tone
+1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏼‍♂️‍➡️ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏼‍♂‍➡️ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏼‍♂️‍➡ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏼‍♂‍➡ E15.1 man walking facing right: medium-light skin tone
+1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏽‍♂️‍➡️ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏽‍♂‍➡️ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏽‍♂️‍➡ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏽‍♂‍➡ E15.1 man walking facing right: medium skin tone
+1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏾‍♂️‍➡️ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏾‍♂‍➡️ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏾‍♂️‍➡ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏾‍♂‍➡ E15.1 man walking facing right: medium-dark skin tone
+1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏿‍♂️‍➡️ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏿‍♂‍➡️ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏿‍♂️‍➡ E15.1 man walking facing right: dark skin tone
+1F6B6 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏿‍♂‍➡ E15.1 man walking facing right: dark skin tone
1F9CD ; fully-qualified # 🧍 E12.0 person standing
1F9CD 1F3FB ; fully-qualified # 🧍🏻 E12.0 person standing: light skin tone
1F9CD 1F3FC ; fully-qualified # 🧍🏼 E12.0 person standing: medium-light skin tone
@@ -2125,60 +2189,228 @@
1F9CE 1F3FE 200D 2640 ; minimally-qualified # 🧎🏾‍♀ E12.0 woman kneeling: medium-dark skin tone
1F9CE 1F3FF 200D 2640 FE0F ; fully-qualified # 🧎🏿‍♀️ E12.0 woman kneeling: dark skin tone
1F9CE 1F3FF 200D 2640 ; minimally-qualified # 🧎🏿‍♀ E12.0 woman kneeling: dark skin tone
+1F9CE 200D 27A1 FE0F ; fully-qualified # 🧎‍➡️ E15.1 person kneeling facing right
+1F9CE 200D 27A1 ; minimally-qualified # 🧎‍➡ E15.1 person kneeling facing right
+1F9CE 1F3FB 200D 27A1 FE0F ; fully-qualified # 🧎🏻‍➡️ E15.1 person kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 27A1 ; minimally-qualified # 🧎🏻‍➡ E15.1 person kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 27A1 FE0F ; fully-qualified # 🧎🏼‍➡️ E15.1 person kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 27A1 ; minimally-qualified # 🧎🏼‍➡ E15.1 person kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 27A1 FE0F ; fully-qualified # 🧎🏽‍➡️ E15.1 person kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 27A1 ; minimally-qualified # 🧎🏽‍➡ E15.1 person kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 27A1 FE0F ; fully-qualified # 🧎🏾‍➡️ E15.1 person kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 27A1 ; minimally-qualified # 🧎🏾‍➡ E15.1 person kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 27A1 FE0F ; fully-qualified # 🧎🏿‍➡️ E15.1 person kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 27A1 ; minimally-qualified # 🧎🏿‍➡ E15.1 person kneeling facing right: dark skin tone
+1F9CE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎‍♀️‍➡️ E15.1 woman kneeling facing right
+1F9CE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎‍♀‍➡️ E15.1 woman kneeling facing right
+1F9CE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎‍♀️‍➡ E15.1 woman kneeling facing right
+1F9CE 200D 2640 200D 27A1 ; minimally-qualified # 🧎‍♀‍➡ E15.1 woman kneeling facing right
+1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏻‍♀️‍➡️ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏻‍♀‍➡️ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏻‍♀️‍➡ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏻‍♀‍➡ E15.1 woman kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏼‍♀️‍➡️ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏼‍♀‍➡️ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏼‍♀️‍➡ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏼‍♀‍➡ E15.1 woman kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏽‍♀️‍➡️ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏽‍♀‍➡️ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏽‍♀️‍➡ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏽‍♀‍➡ E15.1 woman kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏾‍♀️‍➡️ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏾‍♀‍➡️ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏾‍♀️‍➡ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏾‍♀‍➡ E15.1 woman kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏿‍♀️‍➡️ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏿‍♀‍➡️ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏿‍♀️‍➡ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏿‍♀‍➡ E15.1 woman kneeling facing right: dark skin tone
+1F9CE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎‍♂️‍➡️ E15.1 man kneeling facing right
+1F9CE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎‍♂‍➡️ E15.1 man kneeling facing right
+1F9CE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎‍♂️‍➡ E15.1 man kneeling facing right
+1F9CE 200D 2642 200D 27A1 ; minimally-qualified # 🧎‍♂‍➡ E15.1 man kneeling facing right
+1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏻‍♂️‍➡️ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏻‍♂‍➡️ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏻‍♂️‍➡ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏻‍♂‍➡ E15.1 man kneeling facing right: light skin tone
+1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏼‍♂️‍➡️ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏼‍♂‍➡️ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏼‍♂️‍➡ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏼‍♂‍➡ E15.1 man kneeling facing right: medium-light skin tone
+1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏽‍♂️‍➡️ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏽‍♂‍➡️ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏽‍♂️‍➡ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏽‍♂‍➡ E15.1 man kneeling facing right: medium skin tone
+1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏾‍♂️‍➡️ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏾‍♂‍➡️ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏾‍♂️‍➡ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏾‍♂‍➡ E15.1 man kneeling facing right: medium-dark skin tone
+1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏿‍♂️‍➡️ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏿‍♂‍➡️ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏿‍♂️‍➡ E15.1 man kneeling facing right: dark skin tone
+1F9CE 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏿‍♂‍➡ E15.1 man kneeling facing right: dark skin tone
1F9D1 200D 1F9AF ; fully-qualified # 🧑‍🦯 E12.1 person with white cane
1F9D1 1F3FB 200D 1F9AF ; fully-qualified # 🧑🏻‍🦯 E12.1 person with white cane: light skin tone
1F9D1 1F3FC 200D 1F9AF ; fully-qualified # 🧑🏼‍🦯 E12.1 person with white cane: medium-light skin tone
1F9D1 1F3FD 200D 1F9AF ; fully-qualified # 🧑🏽‍🦯 E12.1 person with white cane: medium skin tone
1F9D1 1F3FE 200D 1F9AF ; fully-qualified # 🧑🏾‍🦯 E12.1 person with white cane: medium-dark skin tone
1F9D1 1F3FF 200D 1F9AF ; fully-qualified # 🧑🏿‍🦯 E12.1 person with white cane: dark skin tone
+1F9D1 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑‍🦯‍➡️ E15.1 person with white cane facing right
+1F9D1 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑‍🦯‍➡ E15.1 person with white cane facing right
+1F9D1 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏻‍🦯‍➡️ E15.1 person with white cane facing right: light skin tone
+1F9D1 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏻‍🦯‍➡ E15.1 person with white cane facing right: light skin tone
+1F9D1 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏼‍🦯‍➡️ E15.1 person with white cane facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏼‍🦯‍➡ E15.1 person with white cane facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏽‍🦯‍➡️ E15.1 person with white cane facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏽‍🦯‍➡ E15.1 person with white cane facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏾‍🦯‍➡️ E15.1 person with white cane facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏾‍🦯‍➡ E15.1 person with white cane facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏿‍🦯‍➡️ E15.1 person with white cane facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏿‍🦯‍➡ E15.1 person with white cane facing right: dark skin tone
1F468 200D 1F9AF ; fully-qualified # 👨‍🦯 E12.0 man with white cane
1F468 1F3FB 200D 1F9AF ; fully-qualified # 👨🏻‍🦯 E12.0 man with white cane: light skin tone
1F468 1F3FC 200D 1F9AF ; fully-qualified # 👨🏼‍🦯 E12.0 man with white cane: medium-light skin tone
1F468 1F3FD 200D 1F9AF ; fully-qualified # 👨🏽‍🦯 E12.0 man with white cane: medium skin tone
1F468 1F3FE 200D 1F9AF ; fully-qualified # 👨🏾‍🦯 E12.0 man with white cane: medium-dark skin tone
1F468 1F3FF 200D 1F9AF ; fully-qualified # 👨🏿‍🦯 E12.0 man with white cane: dark skin tone
+1F468 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨‍🦯‍➡️ E15.1 man with white cane facing right
+1F468 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨‍🦯‍➡ E15.1 man with white cane facing right
+1F468 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏻‍🦯‍➡️ E15.1 man with white cane facing right: light skin tone
+1F468 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏻‍🦯‍➡ E15.1 man with white cane facing right: light skin tone
+1F468 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏼‍🦯‍➡️ E15.1 man with white cane facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏼‍🦯‍➡ E15.1 man with white cane facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏽‍🦯‍➡️ E15.1 man with white cane facing right: medium skin tone
+1F468 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏽‍🦯‍➡ E15.1 man with white cane facing right: medium skin tone
+1F468 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏾‍🦯‍➡️ E15.1 man with white cane facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏾‍🦯‍➡ E15.1 man with white cane facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏿‍🦯‍➡️ E15.1 man with white cane facing right: dark skin tone
+1F468 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏿‍🦯‍➡ E15.1 man with white cane facing right: dark skin tone
1F469 200D 1F9AF ; fully-qualified # 👩‍🦯 E12.0 woman with white cane
1F469 1F3FB 200D 1F9AF ; fully-qualified # 👩🏻‍🦯 E12.0 woman with white cane: light skin tone
1F469 1F3FC 200D 1F9AF ; fully-qualified # 👩🏼‍🦯 E12.0 woman with white cane: medium-light skin tone
1F469 1F3FD 200D 1F9AF ; fully-qualified # 👩🏽‍🦯 E12.0 woman with white cane: medium skin tone
1F469 1F3FE 200D 1F9AF ; fully-qualified # 👩🏾‍🦯 E12.0 woman with white cane: medium-dark skin tone
1F469 1F3FF 200D 1F9AF ; fully-qualified # 👩🏿‍🦯 E12.0 woman with white cane: dark skin tone
+1F469 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩‍🦯‍➡️ E15.1 woman with white cane facing right
+1F469 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩‍🦯‍➡ E15.1 woman with white cane facing right
+1F469 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏻‍🦯‍➡️ E15.1 woman with white cane facing right: light skin tone
+1F469 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏻‍🦯‍➡ E15.1 woman with white cane facing right: light skin tone
+1F469 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏼‍🦯‍➡️ E15.1 woman with white cane facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏼‍🦯‍➡ E15.1 woman with white cane facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏽‍🦯‍➡️ E15.1 woman with white cane facing right: medium skin tone
+1F469 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏽‍🦯‍➡ E15.1 woman with white cane facing right: medium skin tone
+1F469 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏾‍🦯‍➡️ E15.1 woman with white cane facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏾‍🦯‍➡ E15.1 woman with white cane facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏿‍🦯‍➡️ E15.1 woman with white cane facing right: dark skin tone
+1F469 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏿‍🦯‍➡ E15.1 woman with white cane facing right: dark skin tone
1F9D1 200D 1F9BC ; fully-qualified # 🧑‍🦼 E12.1 person in motorized wheelchair
1F9D1 1F3FB 200D 1F9BC ; fully-qualified # 🧑🏻‍🦼 E12.1 person in motorized wheelchair: light skin tone
1F9D1 1F3FC 200D 1F9BC ; fully-qualified # 🧑🏼‍🦼 E12.1 person in motorized wheelchair: medium-light skin tone
1F9D1 1F3FD 200D 1F9BC ; fully-qualified # 🧑🏽‍🦼 E12.1 person in motorized wheelchair: medium skin tone
1F9D1 1F3FE 200D 1F9BC ; fully-qualified # 🧑🏾‍🦼 E12.1 person in motorized wheelchair: medium-dark skin tone
1F9D1 1F3FF 200D 1F9BC ; fully-qualified # 🧑🏿‍🦼 E12.1 person in motorized wheelchair: dark skin tone
+1F9D1 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑‍🦼‍➡️ E15.1 person in motorized wheelchair facing right
+1F9D1 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑‍🦼‍➡ E15.1 person in motorized wheelchair facing right
+1F9D1 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏻‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: light skin tone
+1F9D1 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏻‍🦼‍➡ E15.1 person in motorized wheelchair facing right: light skin tone
+1F9D1 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏼‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏼‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏽‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏽‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏾‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏾‍🦼‍➡ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏿‍🦼‍➡️ E15.1 person in motorized wheelchair facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏿‍🦼‍➡ E15.1 person in motorized wheelchair facing right: dark skin tone
1F468 200D 1F9BC ; fully-qualified # 👨‍🦼 E12.0 man in motorized wheelchair
1F468 1F3FB 200D 1F9BC ; fully-qualified # 👨🏻‍🦼 E12.0 man in motorized wheelchair: light skin tone
1F468 1F3FC 200D 1F9BC ; fully-qualified # 👨🏼‍🦼 E12.0 man in motorized wheelchair: medium-light skin tone
1F468 1F3FD 200D 1F9BC ; fully-qualified # 👨🏽‍🦼 E12.0 man in motorized wheelchair: medium skin tone
1F468 1F3FE 200D 1F9BC ; fully-qualified # 👨🏾‍🦼 E12.0 man in motorized wheelchair: medium-dark skin tone
1F468 1F3FF 200D 1F9BC ; fully-qualified # 👨🏿‍🦼 E12.0 man in motorized wheelchair: dark skin tone
+1F468 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨‍🦼‍➡️ E15.1 man in motorized wheelchair facing right
+1F468 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨‍🦼‍➡ E15.1 man in motorized wheelchair facing right
+1F468 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏻‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: light skin tone
+1F468 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏻‍🦼‍➡ E15.1 man in motorized wheelchair facing right: light skin tone
+1F468 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏼‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏼‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏽‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium skin tone
+1F468 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏽‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium skin tone
+1F468 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏾‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏾‍🦼‍➡ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏿‍🦼‍➡️ E15.1 man in motorized wheelchair facing right: dark skin tone
+1F468 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏿‍🦼‍➡ E15.1 man in motorized wheelchair facing right: dark skin tone
1F469 200D 1F9BC ; fully-qualified # 👩‍🦼 E12.0 woman in motorized wheelchair
1F469 1F3FB 200D 1F9BC ; fully-qualified # 👩🏻‍🦼 E12.0 woman in motorized wheelchair: light skin tone
1F469 1F3FC 200D 1F9BC ; fully-qualified # 👩🏼‍🦼 E12.0 woman in motorized wheelchair: medium-light skin tone
1F469 1F3FD 200D 1F9BC ; fully-qualified # 👩🏽‍🦼 E12.0 woman in motorized wheelchair: medium skin tone
1F469 1F3FE 200D 1F9BC ; fully-qualified # 👩🏾‍🦼 E12.0 woman in motorized wheelchair: medium-dark skin tone
1F469 1F3FF 200D 1F9BC ; fully-qualified # 👩🏿‍🦼 E12.0 woman in motorized wheelchair: dark skin tone
+1F469 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right
+1F469 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩‍🦼‍➡ E15.1 woman in motorized wheelchair facing right
+1F469 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏻‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: light skin tone
+1F469 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏻‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: light skin tone
+1F469 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏼‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏼‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏽‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium skin tone
+1F469 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏽‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium skin tone
+1F469 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏾‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏾‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏿‍🦼‍➡️ E15.1 woman in motorized wheelchair facing right: dark skin tone
+1F469 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏿‍🦼‍➡ E15.1 woman in motorized wheelchair facing right: dark skin tone
1F9D1 200D 1F9BD ; fully-qualified # 🧑‍🦽 E12.1 person in manual wheelchair
1F9D1 1F3FB 200D 1F9BD ; fully-qualified # 🧑🏻‍🦽 E12.1 person in manual wheelchair: light skin tone
1F9D1 1F3FC 200D 1F9BD ; fully-qualified # 🧑🏼‍🦽 E12.1 person in manual wheelchair: medium-light skin tone
1F9D1 1F3FD 200D 1F9BD ; fully-qualified # 🧑🏽‍🦽 E12.1 person in manual wheelchair: medium skin tone
1F9D1 1F3FE 200D 1F9BD ; fully-qualified # 🧑🏾‍🦽 E12.1 person in manual wheelchair: medium-dark skin tone
1F9D1 1F3FF 200D 1F9BD ; fully-qualified # 🧑🏿‍🦽 E12.1 person in manual wheelchair: dark skin tone
+1F9D1 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑‍🦽‍➡️ E15.1 person in manual wheelchair facing right
+1F9D1 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑‍🦽‍➡ E15.1 person in manual wheelchair facing right
+1F9D1 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏻‍🦽‍➡️ E15.1 person in manual wheelchair facing right: light skin tone
+1F9D1 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏻‍🦽‍➡ E15.1 person in manual wheelchair facing right: light skin tone
+1F9D1 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏼‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium-light skin tone
+1F9D1 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏼‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium-light skin tone
+1F9D1 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏽‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium skin tone
+1F9D1 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏽‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium skin tone
+1F9D1 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏾‍🦽‍➡️ E15.1 person in manual wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏾‍🦽‍➡ E15.1 person in manual wheelchair facing right: medium-dark skin tone
+1F9D1 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏿‍🦽‍➡️ E15.1 person in manual wheelchair facing right: dark skin tone
+1F9D1 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏿‍🦽‍➡ E15.1 person in manual wheelchair facing right: dark skin tone
1F468 200D 1F9BD ; fully-qualified # 👨‍🦽 E12.0 man in manual wheelchair
1F468 1F3FB 200D 1F9BD ; fully-qualified # 👨🏻‍🦽 E12.0 man in manual wheelchair: light skin tone
1F468 1F3FC 200D 1F9BD ; fully-qualified # 👨🏼‍🦽 E12.0 man in manual wheelchair: medium-light skin tone
1F468 1F3FD 200D 1F9BD ; fully-qualified # 👨🏽‍🦽 E12.0 man in manual wheelchair: medium skin tone
1F468 1F3FE 200D 1F9BD ; fully-qualified # 👨🏾‍🦽 E12.0 man in manual wheelchair: medium-dark skin tone
1F468 1F3FF 200D 1F9BD ; fully-qualified # 👨🏿‍🦽 E12.0 man in manual wheelchair: dark skin tone
+1F468 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨‍🦽‍➡️ E15.1 man in manual wheelchair facing right
+1F468 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨‍🦽‍➡ E15.1 man in manual wheelchair facing right
+1F468 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏻‍🦽‍➡️ E15.1 man in manual wheelchair facing right: light skin tone
+1F468 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏻‍🦽‍➡ E15.1 man in manual wheelchair facing right: light skin tone
+1F468 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏼‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium-light skin tone
+1F468 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏼‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium-light skin tone
+1F468 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏽‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium skin tone
+1F468 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏽‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium skin tone
+1F468 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏾‍🦽‍➡️ E15.1 man in manual wheelchair facing right: medium-dark skin tone
+1F468 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏾‍🦽‍➡ E15.1 man in manual wheelchair facing right: medium-dark skin tone
+1F468 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏿‍🦽‍➡️ E15.1 man in manual wheelchair facing right: dark skin tone
+1F468 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏿‍🦽‍➡ E15.1 man in manual wheelchair facing right: dark skin tone
1F469 200D 1F9BD ; fully-qualified # 👩‍🦽 E12.0 woman in manual wheelchair
1F469 1F3FB 200D 1F9BD ; fully-qualified # 👩🏻‍🦽 E12.0 woman in manual wheelchair: light skin tone
1F469 1F3FC 200D 1F9BD ; fully-qualified # 👩🏼‍🦽 E12.0 woman in manual wheelchair: medium-light skin tone
1F469 1F3FD 200D 1F9BD ; fully-qualified # 👩🏽‍🦽 E12.0 woman in manual wheelchair: medium skin tone
1F469 1F3FE 200D 1F9BD ; fully-qualified # 👩🏾‍🦽 E12.0 woman in manual wheelchair: medium-dark skin tone
1F469 1F3FF 200D 1F9BD ; fully-qualified # 👩🏿‍🦽 E12.0 woman in manual wheelchair: dark skin tone
+1F469 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩‍🦽‍➡️ E15.1 woman in manual wheelchair facing right
+1F469 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩‍🦽‍➡ E15.1 woman in manual wheelchair facing right
+1F469 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏻‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: light skin tone
+1F469 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏻‍🦽‍➡ E15.1 woman in manual wheelchair facing right: light skin tone
+1F469 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏼‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium-light skin tone
+1F469 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏼‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium-light skin tone
+1F469 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏽‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium skin tone
+1F469 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏽‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium skin tone
+1F469 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏾‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
+1F469 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏾‍🦽‍➡ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
+1F469 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏿‍🦽‍➡️ E15.1 woman in manual wheelchair facing right: dark skin tone
+1F469 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏿‍🦽‍➡ E15.1 woman in manual wheelchair facing right: dark skin tone
1F3C3 ; fully-qualified # 🏃 E0.6 person running
1F3C3 1F3FB ; fully-qualified # 🏃🏻 E1.0 person running: light skin tone
1F3C3 1F3FC ; fully-qualified # 🏃🏼 E1.0 person running: medium-light skin tone
@@ -2209,6 +2441,66 @@
1F3C3 1F3FE 200D 2640 ; minimally-qualified # 🏃🏾‍♀ E4.0 woman running: medium-dark skin tone
1F3C3 1F3FF 200D 2640 FE0F ; fully-qualified # 🏃🏿‍♀️ E4.0 woman running: dark skin tone
1F3C3 1F3FF 200D 2640 ; minimally-qualified # 🏃🏿‍♀ E4.0 woman running: dark skin tone
+1F3C3 200D 27A1 FE0F ; fully-qualified # 🏃‍➡️ E15.1 person running facing right
+1F3C3 200D 27A1 ; minimally-qualified # 🏃‍➡ E15.1 person running facing right
+1F3C3 1F3FB 200D 27A1 FE0F ; fully-qualified # 🏃🏻‍➡️ E15.1 person running facing right: light skin tone
+1F3C3 1F3FB 200D 27A1 ; minimally-qualified # 🏃🏻‍➡ E15.1 person running facing right: light skin tone
+1F3C3 1F3FC 200D 27A1 FE0F ; fully-qualified # 🏃🏼‍➡️ E15.1 person running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 27A1 ; minimally-qualified # 🏃🏼‍➡ E15.1 person running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 27A1 FE0F ; fully-qualified # 🏃🏽‍➡️ E15.1 person running facing right: medium skin tone
+1F3C3 1F3FD 200D 27A1 ; minimally-qualified # 🏃🏽‍➡ E15.1 person running facing right: medium skin tone
+1F3C3 1F3FE 200D 27A1 FE0F ; fully-qualified # 🏃🏾‍➡️ E15.1 person running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 27A1 ; minimally-qualified # 🏃🏾‍➡ E15.1 person running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 27A1 FE0F ; fully-qualified # 🏃🏿‍➡️ E15.1 person running facing right: dark skin tone
+1F3C3 1F3FF 200D 27A1 ; minimally-qualified # 🏃🏿‍➡ E15.1 person running facing right: dark skin tone
+1F3C3 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃‍♀️‍➡️ E15.1 woman running facing right
+1F3C3 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃‍♀‍➡️ E15.1 woman running facing right
+1F3C3 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃‍♀️‍➡ E15.1 woman running facing right
+1F3C3 200D 2640 200D 27A1 ; minimally-qualified # 🏃‍♀‍➡ E15.1 woman running facing right
+1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏻‍♀️‍➡️ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏻‍♀‍➡️ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏻‍♀️‍➡ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏻‍♀‍➡ E15.1 woman running facing right: light skin tone
+1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏼‍♀️‍➡️ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏼‍♀‍➡️ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏼‍♀️‍➡ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏼‍♀‍➡ E15.1 woman running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏽‍♀️‍➡️ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏽‍♀‍➡️ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏽‍♀️‍➡ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏽‍♀‍➡ E15.1 woman running facing right: medium skin tone
+1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏾‍♀️‍➡️ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏾‍♀‍➡️ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏾‍♀️‍➡ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏾‍♀‍➡ E15.1 woman running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏿‍♀️‍➡️ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏿‍♀‍➡️ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏿‍♀️‍➡ E15.1 woman running facing right: dark skin tone
+1F3C3 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏿‍♀‍➡ E15.1 woman running facing right: dark skin tone
+1F3C3 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃‍♂️‍➡️ E15.1 man running facing right
+1F3C3 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃‍♂‍➡️ E15.1 man running facing right
+1F3C3 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃‍♂️‍➡ E15.1 man running facing right
+1F3C3 200D 2642 200D 27A1 ; minimally-qualified # 🏃‍♂‍➡ E15.1 man running facing right
+1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏻‍♂️‍➡️ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏻‍♂‍➡️ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏻‍♂️‍➡ E15.1 man running facing right: light skin tone
+1F3C3 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏻‍♂‍➡ E15.1 man running facing right: light skin tone
+1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏼‍♂️‍➡️ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏼‍♂‍➡️ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏼‍♂️‍➡ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏼‍♂‍➡ E15.1 man running facing right: medium-light skin tone
+1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏽‍♂️‍➡️ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏽‍♂‍➡️ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏽‍♂️‍➡ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏽‍♂‍➡ E15.1 man running facing right: medium skin tone
+1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏾‍♂️‍➡️ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏾‍♂‍➡️ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏾‍♂️‍➡ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏾‍♂‍➡ E15.1 man running facing right: medium-dark skin tone
+1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏿‍♂️‍➡️ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏿‍♂‍➡️ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏿‍♂️‍➡ E15.1 man running facing right: dark skin tone
+1F3C3 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏿‍♂‍➡ E15.1 man running facing right: dark skin tone
1F483 ; fully-qualified # 💃 E0.6 woman dancing
1F483 1F3FB ; fully-qualified # 💃🏻 E1.0 woman dancing: light skin tone
1F483 1F3FC ; fully-qualified # 💃🏼 E1.0 woman dancing: medium-light skin tone
@@ -3244,7 +3536,6 @@
1F469 1F3FF 200D 2764 200D 1F469 1F3FE ; minimally-qualified # 👩🏿‍❤‍👩🏾 E13.1 couple with heart: woman, woman, dark skin tone, medium-dark skin tone
1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FF ; fully-qualified # 👩🏿‍❤️‍👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
1F469 1F3FF 200D 2764 200D 1F469 1F3FF ; minimally-qualified # 👩🏿‍❤‍👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
-1F46A ; fully-qualified # 👪 E0.6 family
1F468 200D 1F469 200D 1F466 ; fully-qualified # 👨‍👩‍👦 E2.0 family: man, woman, boy
1F468 200D 1F469 200D 1F467 ; fully-qualified # 👨‍👩‍👧 E2.0 family: man, woman, girl
1F468 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👨‍👩‍👧‍👦 E2.0 family: man, woman, girl, boy
@@ -3277,10 +3568,15 @@
1F464 ; fully-qualified # 👤 E0.6 bust in silhouette
1F465 ; fully-qualified # 👥 E1.0 busts in silhouette
1FAC2 ; fully-qualified # 🫂 E13.0 people hugging
+1F46A ; fully-qualified # 👪 E0.6 family
+1F9D1 200D 1F9D1 200D 1F9D2 ; fully-qualified # 🧑‍🧑‍🧒 E15.1 family: adult, adult, child
+1F9D1 200D 1F9D1 200D 1F9D2 200D 1F9D2 ; fully-qualified # 🧑‍🧑‍🧒‍🧒 E15.1 family: adult, adult, child, child
+1F9D1 200D 1F9D2 ; fully-qualified # 🧑‍🧒 E15.1 family: adult, child
+1F9D1 200D 1F9D2 200D 1F9D2 ; fully-qualified # 🧑‍🧒‍🧒 E15.1 family: adult, child, child
1F463 ; fully-qualified # 👣 E0.6 footprints
-# People & Body subtotal: 2998
-# People & Body subtotal: 508 w/o modifiers
+# People & Body subtotal: 3290
+# People & Body subtotal: 560 w/o modifiers
# group: Component
@@ -3395,6 +3691,7 @@
1FABD ; fully-qualified # 🪽 E15.0 wing
1F426 200D 2B1B ; fully-qualified # 🐦‍⬛ E15.0 black bird
1FABF ; fully-qualified # 🪿 E15.0 goose
+1F426 200D 1F525 ; fully-qualified # 🐦‍🔥 E15.1 phoenix
# subgroup: animal-amphibian
1F438 ; fully-qualified # 🐸 E0.6 frog
@@ -3477,8 +3774,8 @@
1FABA ; fully-qualified # 🪺 E14.0 nest with eggs
1F344 ; fully-qualified # 🍄 E0.6 mushroom
-# Animals & Nature subtotal: 159
-# Animals & Nature subtotal: 159 w/o modifiers
+# Animals & Nature subtotal: 160
+# Animals & Nature subtotal: 160 w/o modifiers
# group: Food & Drink
@@ -3488,6 +3785,7 @@
1F349 ; fully-qualified # 🍉 E0.6 watermelon
1F34A ; fully-qualified # 🍊 E0.6 tangerine
1F34B ; fully-qualified # 🍋 E1.0 lemon
+1F34B 200D 1F7E9 ; fully-qualified # 🍋‍🟩 E15.1 lime
1F34C ; fully-qualified # 🍌 E0.6 banana
1F34D ; fully-qualified # 🍍 E0.6 pineapple
1F96D ; fully-qualified # 🥭 E11.0 mango
@@ -3522,6 +3820,7 @@
1F330 ; fully-qualified # 🌰 E0.6 chestnut
1FADA ; fully-qualified # 🫚 E15.0 ginger root
1FADB ; fully-qualified # 🫛 E15.0 pea pod
+1F344 200D 1F7EB ; fully-qualified # 🍄‍🟫 E15.1 brown mushroom
# subgroup: food-prepared
1F35E ; fully-qualified # 🍞 E0.6 bread
@@ -3633,8 +3932,8 @@
1FAD9 ; fully-qualified # 🫙 E14.0 jar
1F3FA ; fully-qualified # 🏺 E1.0 amphora
-# Food & Drink subtotal: 135
-# Food & Drink subtotal: 135 w/o modifiers
+# Food & Drink subtotal: 137
+# Food & Drink subtotal: 137 w/o modifiers
# group: Travel & Places
@@ -4321,6 +4620,8 @@
2696 ; unqualified # ⚖ E1.0 balance scale
1F9AF ; fully-qualified # 🦯 E12.0 white cane
1F517 ; fully-qualified # 🔗 E0.6 link
+26D3 FE0F 200D 1F4A5 ; fully-qualified # ⛓️‍💥 E15.1 broken chain
+26D3 200D 1F4A5 ; unqualified # ⛓‍💥 E15.1 broken chain
26D3 FE0F ; fully-qualified # ⛓️ E0.7 chains
26D3 ; unqualified # ⛓ E0.7 chains
1FA9D ; fully-qualified # 🪝 E13.0 hook
@@ -4389,8 +4690,8 @@
1FAA7 ; fully-qualified # 🪧 E13.0 placard
1FAAA ; fully-qualified # 🪪 E14.0 identification card
-# Objects subtotal: 310
-# Objects subtotal: 310 w/o modifiers
+# Objects subtotal: 312
+# Objects subtotal: 312 w/o modifiers
# group: Symbols
@@ -4979,7 +5280,7 @@
1F1F9 1F1F2 ; fully-qualified # 🇹🇲 E2.0 flag: Turkmenistan
1F1F9 1F1F3 ; fully-qualified # 🇹🇳 E2.0 flag: Tunisia
1F1F9 1F1F4 ; fully-qualified # 🇹🇴 E2.0 flag: Tonga
-1F1F9 1F1F7 ; fully-qualified # 🇹🇷 E2.0 flag: Turkey
+1F1F9 1F1F7 ; fully-qualified # 🇹🇷 E2.0 flag: Türkiye
1F1F9 1F1F9 ; fully-qualified # 🇹🇹 E2.0 flag: Trinidad & Tobago
1F1F9 1F1FB ; fully-qualified # 🇹🇻 E2.0 flag: Tuvalu
1F1F9 1F1FC ; fully-qualified # 🇹🇼 E2.0 flag: Taiwan
@@ -5016,9 +5317,9 @@
# Flags subtotal: 275 w/o modifiers
# Status Counts
-# fully-qualified : 3655
-# minimally-qualified : 827
-# unqualified : 242
+# fully-qualified : 3773
+# minimally-qualified : 1009
+# unqualified : 243
# component : 9
#EOF
diff --git a/admin/unidata/emoji-variation-sequences.txt b/admin/unidata/emoji-variation-sequences.txt
index f3396ada19d..d8a3c9f431d 100644
--- a/admin/unidata/emoji-variation-sequences.txt
+++ b/admin/unidata/emoji-variation-sequences.txt
@@ -1,723 +1,757 @@
# emoji-variation-sequences.txt
-# Date: 2022-05-13, 21:54:24 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-02-01, 02:22:54 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Emoji Variation Sequences for UTS #51
-# Used with Emoji Version 15.0 and subsequent minor revisions (if any)
+# Used with Emoji Version 15.1 and subsequent minor revisions (if any)
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
-0023 FE0E ; text style; # (1.1 #︎ ) NUMBER SIGN
-0023 FE0F ; emoji style; # (1.1 #️ ) NUMBER SIGN
-002A FE0E ; text style; # (1.1 *︎ ) ASTERISK
-002A FE0F ; emoji style; # (1.1 *️ ) ASTERISK
-0030 FE0E ; text style; # (1.1 0︎ ) DIGIT ZERO
-0030 FE0F ; emoji style; # (1.1 0️ ) DIGIT ZERO
-0031 FE0E ; text style; # (1.1 1︎ ) DIGIT ONE
-0031 FE0F ; emoji style; # (1.1 1️ ) DIGIT ONE
-0032 FE0E ; text style; # (1.1 2︎ ) DIGIT TWO
-0032 FE0F ; emoji style; # (1.1 2️ ) DIGIT TWO
-0033 FE0E ; text style; # (1.1 3︎ ) DIGIT THREE
-0033 FE0F ; emoji style; # (1.1 3️ ) DIGIT THREE
-0034 FE0E ; text style; # (1.1 4︎ ) DIGIT FOUR
-0034 FE0F ; emoji style; # (1.1 4️ ) DIGIT FOUR
-0035 FE0E ; text style; # (1.1 5︎ ) DIGIT FIVE
-0035 FE0F ; emoji style; # (1.1 5️ ) DIGIT FIVE
-0036 FE0E ; text style; # (1.1 6︎ ) DIGIT SIX
-0036 FE0F ; emoji style; # (1.1 6️ ) DIGIT SIX
-0037 FE0E ; text style; # (1.1 7︎ ) DIGIT SEVEN
-0037 FE0F ; emoji style; # (1.1 7️ ) DIGIT SEVEN
-0038 FE0E ; text style; # (1.1 8︎ ) DIGIT EIGHT
-0038 FE0F ; emoji style; # (1.1 8️ ) DIGIT EIGHT
-0039 FE0E ; text style; # (1.1 9︎ ) DIGIT NINE
-0039 FE0F ; emoji style; # (1.1 9️ ) DIGIT NINE
-00A9 FE0E ; text style; # (1.1 ©︎ ) COPYRIGHT SIGN
-00A9 FE0F ; emoji style; # (1.1 ©️ ) COPYRIGHT SIGN
-00AE FE0E ; text style; # (1.1 ®︎ ) REGISTERED SIGN
-00AE FE0F ; emoji style; # (1.1 ®️ ) REGISTERED SIGN
-203C FE0E ; text style; # (1.1 ‼︎ ) DOUBLE EXCLAMATION MARK
-203C FE0F ; emoji style; # (1.1 ‼️ ) DOUBLE EXCLAMATION MARK
-2049 FE0E ; text style; # (3.0 ⁉︎ ) EXCLAMATION QUESTION MARK
-2049 FE0F ; emoji style; # (3.0 ⁉️ ) EXCLAMATION QUESTION MARK
-2122 FE0E ; text style; # (1.1 ™︎ ) TRADE MARK SIGN
-2122 FE0F ; emoji style; # (1.1 ™️ ) TRADE MARK SIGN
-2139 FE0E ; text style; # (3.0 ℹ︎ ) INFORMATION SOURCE
-2139 FE0F ; emoji style; # (3.0 ℹ️ ) INFORMATION SOURCE
-2194 FE0E ; text style; # (1.1 ↔︎ ) LEFT RIGHT ARROW
-2194 FE0F ; emoji style; # (1.1 ↔️ ) LEFT RIGHT ARROW
-2195 FE0E ; text style; # (1.1 ↕︎ ) UP DOWN ARROW
-2195 FE0F ; emoji style; # (1.1 ↕️ ) UP DOWN ARROW
-2196 FE0E ; text style; # (1.1 ↖︎ ) NORTH WEST ARROW
-2196 FE0F ; emoji style; # (1.1 ↖️ ) NORTH WEST ARROW
-2197 FE0E ; text style; # (1.1 ↗︎ ) NORTH EAST ARROW
-2197 FE0F ; emoji style; # (1.1 ↗️ ) NORTH EAST ARROW
-2198 FE0E ; text style; # (1.1 ↘︎ ) SOUTH EAST ARROW
-2198 FE0F ; emoji style; # (1.1 ↘️ ) SOUTH EAST ARROW
-2199 FE0E ; text style; # (1.1 ↙︎ ) SOUTH WEST ARROW
-2199 FE0F ; emoji style; # (1.1 ↙️ ) SOUTH WEST ARROW
-21A9 FE0E ; text style; # (1.1 ↩︎ ) LEFTWARDS ARROW WITH HOOK
-21A9 FE0F ; emoji style; # (1.1 ↩️ ) LEFTWARDS ARROW WITH HOOK
-21AA FE0E ; text style; # (1.1 ↪︎ ) RIGHTWARDS ARROW WITH HOOK
-21AA FE0F ; emoji style; # (1.1 ↪️ ) RIGHTWARDS ARROW WITH HOOK
-231A FE0E ; text style; # (1.1 ⌚︎ ) WATCH
-231A FE0F ; emoji style; # (1.1 ⌚️ ) WATCH
-231B FE0E ; text style; # (1.1 ⌛︎ ) HOURGLASS
-231B FE0F ; emoji style; # (1.1 ⌛️ ) HOURGLASS
-2328 FE0E ; text style; # (1.1 ⌨︎ ) KEYBOARD
-2328 FE0F ; emoji style; # (1.1 ⌨️ ) KEYBOARD
-23CF FE0E ; text style; # (4.0 ⏏︎ ) EJECT SYMBOL
-23CF FE0F ; emoji style; # (4.0 ⏏️ ) EJECT SYMBOL
-23E9 FE0E ; text style; # (6.0 ⏩︎ ) BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23E9 FE0F ; emoji style; # (6.0 ⏩️ ) BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA FE0E ; text style; # (6.0 ⏪︎ ) BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EA FE0F ; emoji style; # (6.0 ⏪️ ) BLACK LEFT-POINTING DOUBLE TRIANGLE
-23ED FE0E ; text style; # (6.0 ⏭︎ ) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23ED FE0F ; emoji style; # (6.0 ⏭️ ) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE FE0E ; text style; # (6.0 ⏮︎ ) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE FE0F ; emoji style; # (6.0 ⏮️ ) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF FE0E ; text style; # (6.0 ⏯︎ ) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23EF FE0F ; emoji style; # (6.0 ⏯️ ) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F1 FE0E ; text style; # (6.0 ⏱︎ ) STOPWATCH
-23F1 FE0F ; emoji style; # (6.0 ⏱️ ) STOPWATCH
-23F2 FE0E ; text style; # (6.0 ⏲︎ ) TIMER CLOCK
-23F2 FE0F ; emoji style; # (6.0 ⏲️ ) TIMER CLOCK
-23F3 FE0E ; text style; # (6.0 ⏳︎ ) HOURGLASS WITH FLOWING SAND
-23F3 FE0F ; emoji style; # (6.0 ⏳️ ) HOURGLASS WITH FLOWING SAND
-23F8 FE0E ; text style; # (7.0 ⏸︎ ) DOUBLE VERTICAL BAR
-23F8 FE0F ; emoji style; # (7.0 ⏸️ ) DOUBLE VERTICAL BAR
-23F9 FE0E ; text style; # (7.0 ⏹︎ ) BLACK SQUARE FOR STOP
-23F9 FE0F ; emoji style; # (7.0 ⏹️ ) BLACK SQUARE FOR STOP
-23FA FE0E ; text style; # (7.0 ⏺︎ ) BLACK CIRCLE FOR RECORD
-23FA FE0F ; emoji style; # (7.0 ⏺️ ) BLACK CIRCLE FOR RECORD
-24C2 FE0E ; text style; # (1.1 Ⓜ︎ ) CIRCLED LATIN CAPITAL LETTER M
-24C2 FE0F ; emoji style; # (1.1 Ⓜ️ ) CIRCLED LATIN CAPITAL LETTER M
-25AA FE0E ; text style; # (1.1 ▪︎ ) BLACK SMALL SQUARE
-25AA FE0F ; emoji style; # (1.1 ▪️ ) BLACK SMALL SQUARE
-25AB FE0E ; text style; # (1.1 ▫︎ ) WHITE SMALL SQUARE
-25AB FE0F ; emoji style; # (1.1 ▫️ ) WHITE SMALL SQUARE
-25B6 FE0E ; text style; # (1.1 ▶︎ ) BLACK RIGHT-POINTING TRIANGLE
-25B6 FE0F ; emoji style; # (1.1 ▶️ ) BLACK RIGHT-POINTING TRIANGLE
-25C0 FE0E ; text style; # (1.1 ◀︎ ) BLACK LEFT-POINTING TRIANGLE
-25C0 FE0F ; emoji style; # (1.1 ◀️ ) BLACK LEFT-POINTING TRIANGLE
-25FB FE0E ; text style; # (3.2 ◻︎ ) WHITE MEDIUM SQUARE
-25FB FE0F ; emoji style; # (3.2 ◻️ ) WHITE MEDIUM SQUARE
-25FC FE0E ; text style; # (3.2 ◼︎ ) BLACK MEDIUM SQUARE
-25FC FE0F ; emoji style; # (3.2 ◼️ ) BLACK MEDIUM SQUARE
-25FD FE0E ; text style; # (3.2 ◽︎ ) WHITE MEDIUM SMALL SQUARE
-25FD FE0F ; emoji style; # (3.2 ◽️ ) WHITE MEDIUM SMALL SQUARE
-25FE FE0E ; text style; # (3.2 ◾︎ ) BLACK MEDIUM SMALL SQUARE
-25FE FE0F ; emoji style; # (3.2 ◾️ ) BLACK MEDIUM SMALL SQUARE
-2600 FE0E ; text style; # (1.1 ☀︎ ) BLACK SUN WITH RAYS
-2600 FE0F ; emoji style; # (1.1 ☀️ ) BLACK SUN WITH RAYS
-2601 FE0E ; text style; # (1.1 ☁︎ ) CLOUD
-2601 FE0F ; emoji style; # (1.1 ☁️ ) CLOUD
-2602 FE0E ; text style; # (1.1 ☂︎ ) UMBRELLA
-2602 FE0F ; emoji style; # (1.1 ☂️ ) UMBRELLA
-2603 FE0E ; text style; # (1.1 ☃︎ ) SNOWMAN
-2603 FE0F ; emoji style; # (1.1 ☃️ ) SNOWMAN
-2604 FE0E ; text style; # (1.1 ☄︎ ) COMET
-2604 FE0F ; emoji style; # (1.1 ☄️ ) COMET
-260E FE0E ; text style; # (1.1 ☎︎ ) BLACK TELEPHONE
-260E FE0F ; emoji style; # (1.1 ☎️ ) BLACK TELEPHONE
-2611 FE0E ; text style; # (1.1 ☑︎ ) BALLOT BOX WITH CHECK
-2611 FE0F ; emoji style; # (1.1 ☑️ ) BALLOT BOX WITH CHECK
-2614 FE0E ; text style; # (4.0 ☔︎ ) UMBRELLA WITH RAIN DROPS
-2614 FE0F ; emoji style; # (4.0 ☔️ ) UMBRELLA WITH RAIN DROPS
-2615 FE0E ; text style; # (4.0 ☕︎ ) HOT BEVERAGE
-2615 FE0F ; emoji style; # (4.0 ☕️ ) HOT BEVERAGE
-2618 FE0E ; text style; # (4.1 ☘︎ ) SHAMROCK
-2618 FE0F ; emoji style; # (4.1 ☘️ ) SHAMROCK
-261D FE0E ; text style; # (1.1 ☝︎ ) WHITE UP POINTING INDEX
-261D FE0F ; emoji style; # (1.1 ☝️ ) WHITE UP POINTING INDEX
-2620 FE0E ; text style; # (1.1 ☠︎ ) SKULL AND CROSSBONES
-2620 FE0F ; emoji style; # (1.1 ☠️ ) SKULL AND CROSSBONES
-2622 FE0E ; text style; # (1.1 ☢︎ ) RADIOACTIVE SIGN
-2622 FE0F ; emoji style; # (1.1 ☢️ ) RADIOACTIVE SIGN
-2623 FE0E ; text style; # (1.1 ☣︎ ) BIOHAZARD SIGN
-2623 FE0F ; emoji style; # (1.1 ☣️ ) BIOHAZARD SIGN
-2626 FE0E ; text style; # (1.1 ☦︎ ) ORTHODOX CROSS
-2626 FE0F ; emoji style; # (1.1 ☦️ ) ORTHODOX CROSS
-262A FE0E ; text style; # (1.1 ☪︎ ) STAR AND CRESCENT
-262A FE0F ; emoji style; # (1.1 ☪️ ) STAR AND CRESCENT
-262E FE0E ; text style; # (1.1 ☮︎ ) PEACE SYMBOL
-262E FE0F ; emoji style; # (1.1 ☮️ ) PEACE SYMBOL
-262F FE0E ; text style; # (1.1 ☯︎ ) YIN YANG
-262F FE0F ; emoji style; # (1.1 ☯️ ) YIN YANG
-2638 FE0E ; text style; # (1.1 ☸︎ ) WHEEL OF DHARMA
-2638 FE0F ; emoji style; # (1.1 ☸️ ) WHEEL OF DHARMA
-2639 FE0E ; text style; # (1.1 ☹︎ ) WHITE FROWNING FACE
-2639 FE0F ; emoji style; # (1.1 ☹️ ) WHITE FROWNING FACE
-263A FE0E ; text style; # (1.1 ☺︎ ) WHITE SMILING FACE
-263A FE0F ; emoji style; # (1.1 ☺️ ) WHITE SMILING FACE
-2640 FE0E ; text style; # (1.1 ♀︎ ) FEMALE SIGN
-2640 FE0F ; emoji style; # (1.1 ♀️ ) FEMALE SIGN
-2642 FE0E ; text style; # (1.1 ♂︎ ) MALE SIGN
-2642 FE0F ; emoji style; # (1.1 ♂️ ) MALE SIGN
-2648 FE0E ; text style; # (1.1 ♈︎ ) ARIES
-2648 FE0F ; emoji style; # (1.1 ♈️ ) ARIES
-2649 FE0E ; text style; # (1.1 ♉︎ ) TAURUS
-2649 FE0F ; emoji style; # (1.1 ♉️ ) TAURUS
-264A FE0E ; text style; # (1.1 ♊︎ ) GEMINI
-264A FE0F ; emoji style; # (1.1 ♊️ ) GEMINI
-264B FE0E ; text style; # (1.1 ♋︎ ) CANCER
-264B FE0F ; emoji style; # (1.1 ♋️ ) CANCER
-264C FE0E ; text style; # (1.1 ♌︎ ) LEO
-264C FE0F ; emoji style; # (1.1 ♌️ ) LEO
-264D FE0E ; text style; # (1.1 ♍︎ ) VIRGO
-264D FE0F ; emoji style; # (1.1 ♍️ ) VIRGO
-264E FE0E ; text style; # (1.1 ♎︎ ) LIBRA
-264E FE0F ; emoji style; # (1.1 ♎️ ) LIBRA
-264F FE0E ; text style; # (1.1 ♏︎ ) SCORPIUS
-264F FE0F ; emoji style; # (1.1 ♏️ ) SCORPIUS
-2650 FE0E ; text style; # (1.1 ♐︎ ) SAGITTARIUS
-2650 FE0F ; emoji style; # (1.1 ♐️ ) SAGITTARIUS
-2651 FE0E ; text style; # (1.1 ♑︎ ) CAPRICORN
-2651 FE0F ; emoji style; # (1.1 ♑️ ) CAPRICORN
-2652 FE0E ; text style; # (1.1 ♒︎ ) AQUARIUS
-2652 FE0F ; emoji style; # (1.1 ♒️ ) AQUARIUS
-2653 FE0E ; text style; # (1.1 ♓︎ ) PISCES
-2653 FE0F ; emoji style; # (1.1 ♓️ ) PISCES
-265F FE0E ; text style; # (1.1 ♟︎ ) BLACK CHESS PAWN
-265F FE0F ; emoji style; # (1.1 ♟️ ) BLACK CHESS PAWN
-2660 FE0E ; text style; # (1.1 ♠︎ ) BLACK SPADE SUIT
-2660 FE0F ; emoji style; # (1.1 ♠️ ) BLACK SPADE SUIT
-2663 FE0E ; text style; # (1.1 ♣︎ ) BLACK CLUB SUIT
-2663 FE0F ; emoji style; # (1.1 ♣️ ) BLACK CLUB SUIT
-2665 FE0E ; text style; # (1.1 ♥︎ ) BLACK HEART SUIT
-2665 FE0F ; emoji style; # (1.1 ♥️ ) BLACK HEART SUIT
-2666 FE0E ; text style; # (1.1 ♦︎ ) BLACK DIAMOND SUIT
-2666 FE0F ; emoji style; # (1.1 ♦️ ) BLACK DIAMOND SUIT
-2668 FE0E ; text style; # (1.1 ♨︎ ) HOT SPRINGS
-2668 FE0F ; emoji style; # (1.1 ♨️ ) HOT SPRINGS
-267B FE0E ; text style; # (3.2 ♻︎ ) BLACK UNIVERSAL RECYCLING SYMBOL
-267B FE0F ; emoji style; # (3.2 ♻️ ) BLACK UNIVERSAL RECYCLING SYMBOL
-267E FE0E ; text style; # (4.1 ♾︎ ) PERMANENT PAPER SIGN
-267E FE0F ; emoji style; # (4.1 ♾️ ) PERMANENT PAPER SIGN
-267F FE0E ; text style; # (4.1 ♿︎ ) WHEELCHAIR SYMBOL
-267F FE0F ; emoji style; # (4.1 ♿️ ) WHEELCHAIR SYMBOL
-2692 FE0E ; text style; # (4.1 ⚒︎ ) HAMMER AND PICK
-2692 FE0F ; emoji style; # (4.1 ⚒️ ) HAMMER AND PICK
-2693 FE0E ; text style; # (4.1 ⚓︎ ) ANCHOR
-2693 FE0F ; emoji style; # (4.1 ⚓️ ) ANCHOR
-2694 FE0E ; text style; # (4.1 ⚔︎ ) CROSSED SWORDS
-2694 FE0F ; emoji style; # (4.1 ⚔️ ) CROSSED SWORDS
-2695 FE0E ; text style; # (4.1 ⚕︎ ) STAFF OF AESCULAPIUS
-2695 FE0F ; emoji style; # (4.1 ⚕️ ) STAFF OF AESCULAPIUS
-2696 FE0E ; text style; # (4.1 ⚖︎ ) SCALES
-2696 FE0F ; emoji style; # (4.1 ⚖️ ) SCALES
-2697 FE0E ; text style; # (4.1 ⚗︎ ) ALEMBIC
-2697 FE0F ; emoji style; # (4.1 ⚗️ ) ALEMBIC
-2699 FE0E ; text style; # (4.1 ⚙︎ ) GEAR
-2699 FE0F ; emoji style; # (4.1 ⚙️ ) GEAR
-269B FE0E ; text style; # (4.1 ⚛︎ ) ATOM SYMBOL
-269B FE0F ; emoji style; # (4.1 ⚛️ ) ATOM SYMBOL
-269C FE0E ; text style; # (4.1 ⚜︎ ) FLEUR-DE-LIS
-269C FE0F ; emoji style; # (4.1 ⚜️ ) FLEUR-DE-LIS
-26A0 FE0E ; text style; # (4.0 ⚠︎ ) WARNING SIGN
-26A0 FE0F ; emoji style; # (4.0 ⚠️ ) WARNING SIGN
-26A1 FE0E ; text style; # (4.0 ⚡︎ ) HIGH VOLTAGE SIGN
-26A1 FE0F ; emoji style; # (4.0 ⚡️ ) HIGH VOLTAGE SIGN
-26A7 FE0E ; text style; # (4.1 ⚧︎ ) MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A7 FE0F ; emoji style; # (4.1 ⚧️ ) MALE WITH STROKE AND MALE AND FEMALE SIGN
-26AA FE0E ; text style; # (4.1 ⚪︎ ) MEDIUM WHITE CIRCLE
-26AA FE0F ; emoji style; # (4.1 ⚪️ ) MEDIUM WHITE CIRCLE
-26AB FE0E ; text style; # (4.1 ⚫︎ ) MEDIUM BLACK CIRCLE
-26AB FE0F ; emoji style; # (4.1 ⚫️ ) MEDIUM BLACK CIRCLE
-26B0 FE0E ; text style; # (4.1 ⚰︎ ) COFFIN
-26B0 FE0F ; emoji style; # (4.1 ⚰️ ) COFFIN
-26B1 FE0E ; text style; # (4.1 ⚱︎ ) FUNERAL URN
-26B1 FE0F ; emoji style; # (4.1 ⚱️ ) FUNERAL URN
-26BD FE0E ; text style; # (5.2 ⚽︎ ) SOCCER BALL
-26BD FE0F ; emoji style; # (5.2 ⚽️ ) SOCCER BALL
-26BE FE0E ; text style; # (5.2 ⚾︎ ) BASEBALL
-26BE FE0F ; emoji style; # (5.2 ⚾️ ) BASEBALL
-26C4 FE0E ; text style; # (5.2 ⛄︎ ) SNOWMAN WITHOUT SNOW
-26C4 FE0F ; emoji style; # (5.2 ⛄️ ) SNOWMAN WITHOUT SNOW
-26C5 FE0E ; text style; # (5.2 ⛅︎ ) SUN BEHIND CLOUD
-26C5 FE0F ; emoji style; # (5.2 ⛅️ ) SUN BEHIND CLOUD
-26C8 FE0E ; text style; # (5.2 ⛈︎ ) THUNDER CLOUD AND RAIN
-26C8 FE0F ; emoji style; # (5.2 ⛈️ ) THUNDER CLOUD AND RAIN
-26CF FE0E ; text style; # (5.2 ⛏︎ ) PICK
-26CF FE0F ; emoji style; # (5.2 ⛏️ ) PICK
-26D1 FE0E ; text style; # (5.2 ⛑︎ ) HELMET WITH WHITE CROSS
-26D1 FE0F ; emoji style; # (5.2 ⛑️ ) HELMET WITH WHITE CROSS
-26D3 FE0E ; text style; # (5.2 ⛓︎ ) CHAINS
-26D3 FE0F ; emoji style; # (5.2 ⛓️ ) CHAINS
-26D4 FE0E ; text style; # (5.2 ⛔︎ ) NO ENTRY
-26D4 FE0F ; emoji style; # (5.2 ⛔️ ) NO ENTRY
-26E9 FE0E ; text style; # (5.2 ⛩︎ ) SHINTO SHRINE
-26E9 FE0F ; emoji style; # (5.2 ⛩️ ) SHINTO SHRINE
-26EA FE0E ; text style; # (5.2 ⛪︎ ) CHURCH
-26EA FE0F ; emoji style; # (5.2 ⛪️ ) CHURCH
-26F0 FE0E ; text style; # (5.2 ⛰︎ ) MOUNTAIN
-26F0 FE0F ; emoji style; # (5.2 ⛰️ ) MOUNTAIN
-26F1 FE0E ; text style; # (5.2 ⛱︎ ) UMBRELLA ON GROUND
-26F1 FE0F ; emoji style; # (5.2 ⛱️ ) UMBRELLA ON GROUND
-26F2 FE0E ; text style; # (5.2 ⛲︎ ) FOUNTAIN
-26F2 FE0F ; emoji style; # (5.2 ⛲️ ) FOUNTAIN
-26F3 FE0E ; text style; # (5.2 ⛳︎ ) FLAG IN HOLE
-26F3 FE0F ; emoji style; # (5.2 ⛳️ ) FLAG IN HOLE
-26F4 FE0E ; text style; # (5.2 ⛴︎ ) FERRY
-26F4 FE0F ; emoji style; # (5.2 ⛴️ ) FERRY
-26F5 FE0E ; text style; # (5.2 ⛵︎ ) SAILBOAT
-26F5 FE0F ; emoji style; # (5.2 ⛵️ ) SAILBOAT
-26F7 FE0E ; text style; # (5.2 ⛷︎ ) SKIER
-26F7 FE0F ; emoji style; # (5.2 ⛷️ ) SKIER
-26F8 FE0E ; text style; # (5.2 ⛸︎ ) ICE SKATE
-26F8 FE0F ; emoji style; # (5.2 ⛸️ ) ICE SKATE
-26F9 FE0E ; text style; # (5.2 ⛹︎ ) PERSON WITH BALL
-26F9 FE0F ; emoji style; # (5.2 ⛹️ ) PERSON WITH BALL
-26FA FE0E ; text style; # (5.2 ⛺︎ ) TENT
-26FA FE0F ; emoji style; # (5.2 ⛺️ ) TENT
-26FD FE0E ; text style; # (5.2 ⛽︎ ) FUEL PUMP
-26FD FE0F ; emoji style; # (5.2 ⛽️ ) FUEL PUMP
-2702 FE0E ; text style; # (1.1 ✂︎ ) BLACK SCISSORS
-2702 FE0F ; emoji style; # (1.1 ✂️ ) BLACK SCISSORS
-2708 FE0E ; text style; # (1.1 ✈︎ ) AIRPLANE
-2708 FE0F ; emoji style; # (1.1 ✈️ ) AIRPLANE
-2709 FE0E ; text style; # (1.1 ✉︎ ) ENVELOPE
-2709 FE0F ; emoji style; # (1.1 ✉️ ) ENVELOPE
-270C FE0E ; text style; # (1.1 ✌︎ ) VICTORY HAND
-270C FE0F ; emoji style; # (1.1 ✌️ ) VICTORY HAND
-270D FE0E ; text style; # (1.1 ✍︎ ) WRITING HAND
-270D FE0F ; emoji style; # (1.1 ✍️ ) WRITING HAND
-270F FE0E ; text style; # (1.1 ✏︎ ) PENCIL
-270F FE0F ; emoji style; # (1.1 ✏️ ) PENCIL
-2712 FE0E ; text style; # (1.1 ✒︎ ) BLACK NIB
-2712 FE0F ; emoji style; # (1.1 ✒️ ) BLACK NIB
-2714 FE0E ; text style; # (1.1 ✔︎ ) HEAVY CHECK MARK
-2714 FE0F ; emoji style; # (1.1 ✔️ ) HEAVY CHECK MARK
-2716 FE0E ; text style; # (1.1 ✖︎ ) HEAVY MULTIPLICATION X
-2716 FE0F ; emoji style; # (1.1 ✖️ ) HEAVY MULTIPLICATION X
-271D FE0E ; text style; # (1.1 ✝︎ ) LATIN CROSS
-271D FE0F ; emoji style; # (1.1 ✝️ ) LATIN CROSS
-2721 FE0E ; text style; # (1.1 ✡︎ ) STAR OF DAVID
-2721 FE0F ; emoji style; # (1.1 ✡️ ) STAR OF DAVID
-2733 FE0E ; text style; # (1.1 ✳︎ ) EIGHT SPOKED ASTERISK
-2733 FE0F ; emoji style; # (1.1 ✳️ ) EIGHT SPOKED ASTERISK
-2734 FE0E ; text style; # (1.1 ✴︎ ) EIGHT POINTED BLACK STAR
-2734 FE0F ; emoji style; # (1.1 ✴️ ) EIGHT POINTED BLACK STAR
-2744 FE0E ; text style; # (1.1 ❄︎ ) SNOWFLAKE
-2744 FE0F ; emoji style; # (1.1 ❄️ ) SNOWFLAKE
-2747 FE0E ; text style; # (1.1 ❇︎ ) SPARKLE
-2747 FE0F ; emoji style; # (1.1 ❇️ ) SPARKLE
-2753 FE0E ; text style; # (6.0 ❓︎ ) BLACK QUESTION MARK ORNAMENT
-2753 FE0F ; emoji style; # (6.0 ❓️ ) BLACK QUESTION MARK ORNAMENT
-2757 FE0E ; text style; # (5.2 ❗︎ ) HEAVY EXCLAMATION MARK SYMBOL
-2757 FE0F ; emoji style; # (5.2 ❗️ ) HEAVY EXCLAMATION MARK SYMBOL
-2763 FE0E ; text style; # (1.1 ❣︎ ) HEAVY HEART EXCLAMATION MARK ORNAMENT
-2763 FE0F ; emoji style; # (1.1 ❣️ ) HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764 FE0E ; text style; # (1.1 ❤︎ ) HEAVY BLACK HEART
-2764 FE0F ; emoji style; # (1.1 ❤️ ) HEAVY BLACK HEART
-27A1 FE0E ; text style; # (1.1 ➡︎ ) BLACK RIGHTWARDS ARROW
-27A1 FE0F ; emoji style; # (1.1 ➡️ ) BLACK RIGHTWARDS ARROW
-2934 FE0E ; text style; # (3.2 ⤴︎ ) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2934 FE0F ; emoji style; # (3.2 ⤴️ ) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935 FE0E ; text style; # (3.2 ⤵︎ ) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2935 FE0F ; emoji style; # (3.2 ⤵️ ) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2B05 FE0E ; text style; # (4.0 ⬅︎ ) LEFTWARDS BLACK ARROW
-2B05 FE0F ; emoji style; # (4.0 ⬅️ ) LEFTWARDS BLACK ARROW
-2B06 FE0E ; text style; # (4.0 ⬆︎ ) UPWARDS BLACK ARROW
-2B06 FE0F ; emoji style; # (4.0 ⬆️ ) UPWARDS BLACK ARROW
-2B07 FE0E ; text style; # (4.0 ⬇︎ ) DOWNWARDS BLACK ARROW
-2B07 FE0F ; emoji style; # (4.0 ⬇️ ) DOWNWARDS BLACK ARROW
-2B1B FE0E ; text style; # (5.1 ⬛︎ ) BLACK LARGE SQUARE
-2B1B FE0F ; emoji style; # (5.1 ⬛️ ) BLACK LARGE SQUARE
-2B1C FE0E ; text style; # (5.1 ⬜︎ ) WHITE LARGE SQUARE
-2B1C FE0F ; emoji style; # (5.1 ⬜️ ) WHITE LARGE SQUARE
-2B50 FE0E ; text style; # (5.1 ⭐︎ ) WHITE MEDIUM STAR
-2B50 FE0F ; emoji style; # (5.1 ⭐️ ) WHITE MEDIUM STAR
-2B55 FE0E ; text style; # (5.2 ⭕︎ ) HEAVY LARGE CIRCLE
-2B55 FE0F ; emoji style; # (5.2 ⭕️ ) HEAVY LARGE CIRCLE
-3030 FE0E ; text style; # (1.1 〰︎ ) WAVY DASH
-3030 FE0F ; emoji style; # (1.1 〰️ ) WAVY DASH
-303D FE0E ; text style; # (3.2 〽︎ ) PART ALTERNATION MARK
-303D FE0F ; emoji style; # (3.2 〽️ ) PART ALTERNATION MARK
-3297 FE0E ; text style; # (1.1 ㊗︎ ) CIRCLED IDEOGRAPH CONGRATULATION
-3297 FE0F ; emoji style; # (1.1 ㊗️ ) CIRCLED IDEOGRAPH CONGRATULATION
-3299 FE0E ; text style; # (1.1 ㊙︎ ) CIRCLED IDEOGRAPH SECRET
-3299 FE0F ; emoji style; # (1.1 ㊙️ ) CIRCLED IDEOGRAPH SECRET
-1F004 FE0E ; text style; # (5.1 🀄︎ ) MAHJONG TILE RED DRAGON
-1F004 FE0F ; emoji style; # (5.1 🀄️ ) MAHJONG TILE RED DRAGON
-1F170 FE0E ; text style; # (6.0 🅰︎ ) NEGATIVE SQUARED LATIN CAPITAL LETTER A
-1F170 FE0F ; emoji style; # (6.0 🅰️ ) NEGATIVE SQUARED LATIN CAPITAL LETTER A
-1F171 FE0E ; text style; # (6.0 🅱︎ ) NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1F171 FE0F ; emoji style; # (6.0 🅱️ ) NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1F17E FE0E ; text style; # (6.0 🅾︎ ) NEGATIVE SQUARED LATIN CAPITAL LETTER O
-1F17E FE0F ; emoji style; # (6.0 🅾️ ) NEGATIVE SQUARED LATIN CAPITAL LETTER O
-1F17F FE0E ; text style; # (5.2 🅿︎ ) NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F17F FE0F ; emoji style; # (5.2 🅿️ ) NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F202 FE0E ; text style; # (6.0 🈂︎ ) SQUARED KATAKANA SA
-1F202 FE0F ; emoji style; # (6.0 🈂️ ) SQUARED KATAKANA SA
-1F21A FE0E ; text style; # (5.2 🈚︎ ) SQUARED CJK UNIFIED IDEOGRAPH-7121
-1F21A FE0F ; emoji style; # (5.2 🈚️ ) SQUARED CJK UNIFIED IDEOGRAPH-7121
-1F22F FE0E ; text style; # (5.2 🈯︎ ) SQUARED CJK UNIFIED IDEOGRAPH-6307
-1F22F FE0F ; emoji style; # (5.2 🈯️ ) SQUARED CJK UNIFIED IDEOGRAPH-6307
-1F237 FE0E ; text style; # (6.0 🈷︎ ) SQUARED CJK UNIFIED IDEOGRAPH-6708
-1F237 FE0F ; emoji style; # (6.0 🈷️ ) SQUARED CJK UNIFIED IDEOGRAPH-6708
-1F30D FE0E ; text style; # (6.0 🌍︎ ) EARTH GLOBE EUROPE-AFRICA
-1F30D FE0F ; emoji style; # (6.0 🌍️ ) EARTH GLOBE EUROPE-AFRICA
-1F30E FE0E ; text style; # (6.0 🌎︎ ) EARTH GLOBE AMERICAS
-1F30E FE0F ; emoji style; # (6.0 🌎️ ) EARTH GLOBE AMERICAS
-1F30F FE0E ; text style; # (6.0 🌏︎ ) EARTH GLOBE ASIA-AUSTRALIA
-1F30F FE0F ; emoji style; # (6.0 🌏️ ) EARTH GLOBE ASIA-AUSTRALIA
-1F315 FE0E ; text style; # (6.0 🌕︎ ) FULL MOON SYMBOL
-1F315 FE0F ; emoji style; # (6.0 🌕️ ) FULL MOON SYMBOL
-1F31C FE0E ; text style; # (6.0 🌜︎ ) LAST QUARTER MOON WITH FACE
-1F31C FE0F ; emoji style; # (6.0 🌜️ ) LAST QUARTER MOON WITH FACE
-1F321 FE0E ; text style; # (7.0 🌡︎ ) THERMOMETER
-1F321 FE0F ; emoji style; # (7.0 🌡️ ) THERMOMETER
-1F324 FE0E ; text style; # (7.0 🌤︎ ) WHITE SUN WITH SMALL CLOUD
-1F324 FE0F ; emoji style; # (7.0 🌤️ ) WHITE SUN WITH SMALL CLOUD
-1F325 FE0E ; text style; # (7.0 🌥︎ ) WHITE SUN BEHIND CLOUD
-1F325 FE0F ; emoji style; # (7.0 🌥️ ) WHITE SUN BEHIND CLOUD
-1F326 FE0E ; text style; # (7.0 🌦︎ ) WHITE SUN BEHIND CLOUD WITH RAIN
-1F326 FE0F ; emoji style; # (7.0 🌦️ ) WHITE SUN BEHIND CLOUD WITH RAIN
-1F327 FE0E ; text style; # (7.0 🌧︎ ) CLOUD WITH RAIN
-1F327 FE0F ; emoji style; # (7.0 🌧️ ) CLOUD WITH RAIN
-1F328 FE0E ; text style; # (7.0 🌨︎ ) CLOUD WITH SNOW
-1F328 FE0F ; emoji style; # (7.0 🌨️ ) CLOUD WITH SNOW
-1F329 FE0E ; text style; # (7.0 🌩︎ ) CLOUD WITH LIGHTNING
-1F329 FE0F ; emoji style; # (7.0 🌩️ ) CLOUD WITH LIGHTNING
-1F32A FE0E ; text style; # (7.0 🌪︎ ) CLOUD WITH TORNADO
-1F32A FE0F ; emoji style; # (7.0 🌪️ ) CLOUD WITH TORNADO
-1F32B FE0E ; text style; # (7.0 🌫︎ ) FOG
-1F32B FE0F ; emoji style; # (7.0 🌫️ ) FOG
-1F32C FE0E ; text style; # (7.0 🌬︎ ) WIND BLOWING FACE
-1F32C FE0F ; emoji style; # (7.0 🌬️ ) WIND BLOWING FACE
-1F336 FE0E ; text style; # (7.0 🌶︎ ) HOT PEPPER
-1F336 FE0F ; emoji style; # (7.0 🌶️ ) HOT PEPPER
-1F378 FE0E ; text style; # (6.0 🍸︎ ) COCKTAIL GLASS
-1F378 FE0F ; emoji style; # (6.0 🍸️ ) COCKTAIL GLASS
-1F37D FE0E ; text style; # (7.0 🍽︎ ) FORK AND KNIFE WITH PLATE
-1F37D FE0F ; emoji style; # (7.0 🍽️ ) FORK AND KNIFE WITH PLATE
-1F393 FE0E ; text style; # (6.0 🎓︎ ) GRADUATION CAP
-1F393 FE0F ; emoji style; # (6.0 🎓️ ) GRADUATION CAP
-1F396 FE0E ; text style; # (7.0 🎖︎ ) MILITARY MEDAL
-1F396 FE0F ; emoji style; # (7.0 🎖️ ) MILITARY MEDAL
-1F397 FE0E ; text style; # (7.0 🎗︎ ) REMINDER RIBBON
-1F397 FE0F ; emoji style; # (7.0 🎗️ ) REMINDER RIBBON
-1F399 FE0E ; text style; # (7.0 🎙︎ ) STUDIO MICROPHONE
-1F399 FE0F ; emoji style; # (7.0 🎙️ ) STUDIO MICROPHONE
-1F39A FE0E ; text style; # (7.0 🎚︎ ) LEVEL SLIDER
-1F39A FE0F ; emoji style; # (7.0 🎚️ ) LEVEL SLIDER
-1F39B FE0E ; text style; # (7.0 🎛︎ ) CONTROL KNOBS
-1F39B FE0F ; emoji style; # (7.0 🎛️ ) CONTROL KNOBS
-1F39E FE0E ; text style; # (7.0 🎞︎ ) FILM FRAMES
-1F39E FE0F ; emoji style; # (7.0 🎞️ ) FILM FRAMES
-1F39F FE0E ; text style; # (7.0 🎟︎ ) ADMISSION TICKETS
-1F39F FE0F ; emoji style; # (7.0 🎟️ ) ADMISSION TICKETS
-1F3A7 FE0E ; text style; # (6.0 🎧︎ ) HEADPHONE
-1F3A7 FE0F ; emoji style; # (6.0 🎧️ ) HEADPHONE
-1F3AC FE0E ; text style; # (6.0 🎬︎ ) CLAPPER BOARD
-1F3AC FE0F ; emoji style; # (6.0 🎬️ ) CLAPPER BOARD
-1F3AD FE0E ; text style; # (6.0 🎭︎ ) PERFORMING ARTS
-1F3AD FE0F ; emoji style; # (6.0 🎭️ ) PERFORMING ARTS
-1F3AE FE0E ; text style; # (6.0 🎮︎ ) VIDEO GAME
-1F3AE FE0F ; emoji style; # (6.0 🎮️ ) VIDEO GAME
-1F3C2 FE0E ; text style; # (6.0 🏂︎ ) SNOWBOARDER
-1F3C2 FE0F ; emoji style; # (6.0 🏂️ ) SNOWBOARDER
-1F3C4 FE0E ; text style; # (6.0 🏄︎ ) SURFER
-1F3C4 FE0F ; emoji style; # (6.0 🏄️ ) SURFER
-1F3C6 FE0E ; text style; # (6.0 🏆︎ ) TROPHY
-1F3C6 FE0F ; emoji style; # (6.0 🏆️ ) TROPHY
-1F3CA FE0E ; text style; # (6.0 🏊︎ ) SWIMMER
-1F3CA FE0F ; emoji style; # (6.0 🏊️ ) SWIMMER
-1F3CB FE0E ; text style; # (7.0 🏋︎ ) WEIGHT LIFTER
-1F3CB FE0F ; emoji style; # (7.0 🏋️ ) WEIGHT LIFTER
-1F3CC FE0E ; text style; # (7.0 🏌︎ ) GOLFER
-1F3CC FE0F ; emoji style; # (7.0 🏌️ ) GOLFER
-1F3CD FE0E ; text style; # (7.0 🏍︎ ) RACING MOTORCYCLE
-1F3CD FE0F ; emoji style; # (7.0 🏍️ ) RACING MOTORCYCLE
-1F3CE FE0E ; text style; # (7.0 🏎︎ ) RACING CAR
-1F3CE FE0F ; emoji style; # (7.0 🏎️ ) RACING CAR
-1F3D4 FE0E ; text style; # (7.0 🏔︎ ) SNOW CAPPED MOUNTAIN
-1F3D4 FE0F ; emoji style; # (7.0 🏔️ ) SNOW CAPPED MOUNTAIN
-1F3D5 FE0E ; text style; # (7.0 🏕︎ ) CAMPING
-1F3D5 FE0F ; emoji style; # (7.0 🏕️ ) CAMPING
-1F3D6 FE0E ; text style; # (7.0 🏖︎ ) BEACH WITH UMBRELLA
-1F3D6 FE0F ; emoji style; # (7.0 🏖️ ) BEACH WITH UMBRELLA
-1F3D7 FE0E ; text style; # (7.0 🏗︎ ) BUILDING CONSTRUCTION
-1F3D7 FE0F ; emoji style; # (7.0 🏗️ ) BUILDING CONSTRUCTION
-1F3D8 FE0E ; text style; # (7.0 🏘︎ ) HOUSE BUILDINGS
-1F3D8 FE0F ; emoji style; # (7.0 🏘️ ) HOUSE BUILDINGS
-1F3D9 FE0E ; text style; # (7.0 🏙︎ ) CITYSCAPE
-1F3D9 FE0F ; emoji style; # (7.0 🏙️ ) CITYSCAPE
-1F3DA FE0E ; text style; # (7.0 🏚︎ ) DERELICT HOUSE BUILDING
-1F3DA FE0F ; emoji style; # (7.0 🏚️ ) DERELICT HOUSE BUILDING
-1F3DB FE0E ; text style; # (7.0 🏛︎ ) CLASSICAL BUILDING
-1F3DB FE0F ; emoji style; # (7.0 🏛️ ) CLASSICAL BUILDING
-1F3DC FE0E ; text style; # (7.0 🏜︎ ) DESERT
-1F3DC FE0F ; emoji style; # (7.0 🏜️ ) DESERT
-1F3DD FE0E ; text style; # (7.0 🏝︎ ) DESERT ISLAND
-1F3DD FE0F ; emoji style; # (7.0 🏝️ ) DESERT ISLAND
-1F3DE FE0E ; text style; # (7.0 🏞︎ ) NATIONAL PARK
-1F3DE FE0F ; emoji style; # (7.0 🏞️ ) NATIONAL PARK
-1F3DF FE0E ; text style; # (7.0 🏟︎ ) STADIUM
-1F3DF FE0F ; emoji style; # (7.0 🏟️ ) STADIUM
-1F3E0 FE0E ; text style; # (6.0 🏠︎ ) HOUSE BUILDING
-1F3E0 FE0F ; emoji style; # (6.0 🏠️ ) HOUSE BUILDING
-1F3ED FE0E ; text style; # (6.0 🏭︎ ) FACTORY
-1F3ED FE0F ; emoji style; # (6.0 🏭️ ) FACTORY
-1F3F3 FE0E ; text style; # (7.0 🏳︎ ) WAVING WHITE FLAG
-1F3F3 FE0F ; emoji style; # (7.0 🏳️ ) WAVING WHITE FLAG
-1F3F5 FE0E ; text style; # (7.0 🏵︎ ) ROSETTE
-1F3F5 FE0F ; emoji style; # (7.0 🏵️ ) ROSETTE
-1F3F7 FE0E ; text style; # (7.0 🏷︎ ) LABEL
-1F3F7 FE0F ; emoji style; # (7.0 🏷️ ) LABEL
-1F408 FE0E ; text style; # (6.0 🐈︎ ) CAT
-1F408 FE0F ; emoji style; # (6.0 🐈️ ) CAT
-1F415 FE0E ; text style; # (6.0 🐕︎ ) DOG
-1F415 FE0F ; emoji style; # (6.0 🐕️ ) DOG
-1F41F FE0E ; text style; # (6.0 🐟︎ ) FISH
-1F41F FE0F ; emoji style; # (6.0 🐟️ ) FISH
-1F426 FE0E ; text style; # (6.0 🐦︎ ) BIRD
-1F426 FE0F ; emoji style; # (6.0 🐦️ ) BIRD
-1F43F FE0E ; text style; # (7.0 🐿︎ ) CHIPMUNK
-1F43F FE0F ; emoji style; # (7.0 🐿️ ) CHIPMUNK
-1F441 FE0E ; text style; # (7.0 👁︎ ) EYE
-1F441 FE0F ; emoji style; # (7.0 👁️ ) EYE
-1F442 FE0E ; text style; # (6.0 👂︎ ) EAR
-1F442 FE0F ; emoji style; # (6.0 👂️ ) EAR
-1F446 FE0E ; text style; # (6.0 👆︎ ) WHITE UP POINTING BACKHAND INDEX
-1F446 FE0F ; emoji style; # (6.0 👆️ ) WHITE UP POINTING BACKHAND INDEX
-1F447 FE0E ; text style; # (6.0 👇︎ ) WHITE DOWN POINTING BACKHAND INDEX
-1F447 FE0F ; emoji style; # (6.0 👇️ ) WHITE DOWN POINTING BACKHAND INDEX
-1F448 FE0E ; text style; # (6.0 👈︎ ) WHITE LEFT POINTING BACKHAND INDEX
-1F448 FE0F ; emoji style; # (6.0 👈️ ) WHITE LEFT POINTING BACKHAND INDEX
-1F449 FE0E ; text style; # (6.0 👉︎ ) WHITE RIGHT POINTING BACKHAND INDEX
-1F449 FE0F ; emoji style; # (6.0 👉️ ) WHITE RIGHT POINTING BACKHAND INDEX
-1F44D FE0E ; text style; # (6.0 👍︎ ) THUMBS UP SIGN
-1F44D FE0F ; emoji style; # (6.0 👍️ ) THUMBS UP SIGN
-1F44E FE0E ; text style; # (6.0 👎︎ ) THUMBS DOWN SIGN
-1F44E FE0F ; emoji style; # (6.0 👎️ ) THUMBS DOWN SIGN
-1F453 FE0E ; text style; # (6.0 👓︎ ) EYEGLASSES
-1F453 FE0F ; emoji style; # (6.0 👓️ ) EYEGLASSES
-1F46A FE0E ; text style; # (6.0 👪︎ ) FAMILY
-1F46A FE0F ; emoji style; # (6.0 👪️ ) FAMILY
-1F47D FE0E ; text style; # (6.0 👽︎ ) EXTRATERRESTRIAL ALIEN
-1F47D FE0F ; emoji style; # (6.0 👽️ ) EXTRATERRESTRIAL ALIEN
-1F4A3 FE0E ; text style; # (6.0 💣︎ ) BOMB
-1F4A3 FE0F ; emoji style; # (6.0 💣️ ) BOMB
-1F4B0 FE0E ; text style; # (6.0 💰︎ ) MONEY BAG
-1F4B0 FE0F ; emoji style; # (6.0 💰️ ) MONEY BAG
-1F4B3 FE0E ; text style; # (6.0 💳︎ ) CREDIT CARD
-1F4B3 FE0F ; emoji style; # (6.0 💳️ ) CREDIT CARD
-1F4BB FE0E ; text style; # (6.0 💻︎ ) PERSONAL COMPUTER
-1F4BB FE0F ; emoji style; # (6.0 💻️ ) PERSONAL COMPUTER
-1F4BF FE0E ; text style; # (6.0 💿︎ ) OPTICAL DISC
-1F4BF FE0F ; emoji style; # (6.0 💿️ ) OPTICAL DISC
-1F4CB FE0E ; text style; # (6.0 📋︎ ) CLIPBOARD
-1F4CB FE0F ; emoji style; # (6.0 📋️ ) CLIPBOARD
-1F4DA FE0E ; text style; # (6.0 📚︎ ) BOOKS
-1F4DA FE0F ; emoji style; # (6.0 📚️ ) BOOKS
-1F4DF FE0E ; text style; # (6.0 📟︎ ) PAGER
-1F4DF FE0F ; emoji style; # (6.0 📟️ ) PAGER
-1F4E4 FE0E ; text style; # (6.0 📤︎ ) OUTBOX TRAY
-1F4E4 FE0F ; emoji style; # (6.0 📤️ ) OUTBOX TRAY
-1F4E5 FE0E ; text style; # (6.0 📥︎ ) INBOX TRAY
-1F4E5 FE0F ; emoji style; # (6.0 📥️ ) INBOX TRAY
-1F4E6 FE0E ; text style; # (6.0 📦︎ ) PACKAGE
-1F4E6 FE0F ; emoji style; # (6.0 📦️ ) PACKAGE
-1F4EA FE0E ; text style; # (6.0 📪︎ ) CLOSED MAILBOX WITH LOWERED FLAG
-1F4EA FE0F ; emoji style; # (6.0 📪️ ) CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB FE0E ; text style; # (6.0 📫︎ ) CLOSED MAILBOX WITH RAISED FLAG
-1F4EB FE0F ; emoji style; # (6.0 📫️ ) CLOSED MAILBOX WITH RAISED FLAG
-1F4EC FE0E ; text style; # (6.0 📬︎ ) OPEN MAILBOX WITH RAISED FLAG
-1F4EC FE0F ; emoji style; # (6.0 📬️ ) OPEN MAILBOX WITH RAISED FLAG
-1F4ED FE0E ; text style; # (6.0 📭︎ ) OPEN MAILBOX WITH LOWERED FLAG
-1F4ED FE0F ; emoji style; # (6.0 📭️ ) OPEN MAILBOX WITH LOWERED FLAG
-1F4F7 FE0E ; text style; # (6.0 📷︎ ) CAMERA
-1F4F7 FE0F ; emoji style; # (6.0 📷️ ) CAMERA
-1F4F9 FE0E ; text style; # (6.0 📹︎ ) VIDEO CAMERA
-1F4F9 FE0F ; emoji style; # (6.0 📹️ ) VIDEO CAMERA
-1F4FA FE0E ; text style; # (6.0 📺︎ ) TELEVISION
-1F4FA FE0F ; emoji style; # (6.0 📺️ ) TELEVISION
-1F4FB FE0E ; text style; # (6.0 📻︎ ) RADIO
-1F4FB FE0F ; emoji style; # (6.0 📻️ ) RADIO
-1F4FD FE0E ; text style; # (7.0 📽︎ ) FILM PROJECTOR
-1F4FD FE0F ; emoji style; # (7.0 📽️ ) FILM PROJECTOR
-1F508 FE0E ; text style; # (6.0 🔈︎ ) SPEAKER
-1F508 FE0F ; emoji style; # (6.0 🔈️ ) SPEAKER
-1F50D FE0E ; text style; # (6.0 🔍︎ ) LEFT-POINTING MAGNIFYING GLASS
-1F50D FE0F ; emoji style; # (6.0 🔍️ ) LEFT-POINTING MAGNIFYING GLASS
-1F512 FE0E ; text style; # (6.0 🔒︎ ) LOCK
-1F512 FE0F ; emoji style; # (6.0 🔒️ ) LOCK
-1F513 FE0E ; text style; # (6.0 🔓︎ ) OPEN LOCK
-1F513 FE0F ; emoji style; # (6.0 🔓️ ) OPEN LOCK
-1F549 FE0E ; text style; # (7.0 🕉︎ ) OM SYMBOL
-1F549 FE0F ; emoji style; # (7.0 🕉️ ) OM SYMBOL
-1F54A FE0E ; text style; # (7.0 🕊︎ ) DOVE OF PEACE
-1F54A FE0F ; emoji style; # (7.0 🕊️ ) DOVE OF PEACE
-1F550 FE0E ; text style; # (6.0 🕐︎ ) CLOCK FACE ONE OCLOCK
-1F550 FE0F ; emoji style; # (6.0 🕐️ ) CLOCK FACE ONE OCLOCK
-1F551 FE0E ; text style; # (6.0 🕑︎ ) CLOCK FACE TWO OCLOCK
-1F551 FE0F ; emoji style; # (6.0 🕑️ ) CLOCK FACE TWO OCLOCK
-1F552 FE0E ; text style; # (6.0 🕒︎ ) CLOCK FACE THREE OCLOCK
-1F552 FE0F ; emoji style; # (6.0 🕒️ ) CLOCK FACE THREE OCLOCK
-1F553 FE0E ; text style; # (6.0 🕓︎ ) CLOCK FACE FOUR OCLOCK
-1F553 FE0F ; emoji style; # (6.0 🕓️ ) CLOCK FACE FOUR OCLOCK
-1F554 FE0E ; text style; # (6.0 🕔︎ ) CLOCK FACE FIVE OCLOCK
-1F554 FE0F ; emoji style; # (6.0 🕔️ ) CLOCK FACE FIVE OCLOCK
-1F555 FE0E ; text style; # (6.0 🕕︎ ) CLOCK FACE SIX OCLOCK
-1F555 FE0F ; emoji style; # (6.0 🕕️ ) CLOCK FACE SIX OCLOCK
-1F556 FE0E ; text style; # (6.0 🕖︎ ) CLOCK FACE SEVEN OCLOCK
-1F556 FE0F ; emoji style; # (6.0 🕖️ ) CLOCK FACE SEVEN OCLOCK
-1F557 FE0E ; text style; # (6.0 🕗︎ ) CLOCK FACE EIGHT OCLOCK
-1F557 FE0F ; emoji style; # (6.0 🕗️ ) CLOCK FACE EIGHT OCLOCK
-1F558 FE0E ; text style; # (6.0 🕘︎ ) CLOCK FACE NINE OCLOCK
-1F558 FE0F ; emoji style; # (6.0 🕘️ ) CLOCK FACE NINE OCLOCK
-1F559 FE0E ; text style; # (6.0 🕙︎ ) CLOCK FACE TEN OCLOCK
-1F559 FE0F ; emoji style; # (6.0 🕙️ ) CLOCK FACE TEN OCLOCK
-1F55A FE0E ; text style; # (6.0 🕚︎ ) CLOCK FACE ELEVEN OCLOCK
-1F55A FE0F ; emoji style; # (6.0 🕚️ ) CLOCK FACE ELEVEN OCLOCK
-1F55B FE0E ; text style; # (6.0 🕛︎ ) CLOCK FACE TWELVE OCLOCK
-1F55B FE0F ; emoji style; # (6.0 🕛️ ) CLOCK FACE TWELVE OCLOCK
-1F55C FE0E ; text style; # (6.0 🕜︎ ) CLOCK FACE ONE-THIRTY
-1F55C FE0F ; emoji style; # (6.0 🕜️ ) CLOCK FACE ONE-THIRTY
-1F55D FE0E ; text style; # (6.0 🕝︎ ) CLOCK FACE TWO-THIRTY
-1F55D FE0F ; emoji style; # (6.0 🕝️ ) CLOCK FACE TWO-THIRTY
-1F55E FE0E ; text style; # (6.0 🕞︎ ) CLOCK FACE THREE-THIRTY
-1F55E FE0F ; emoji style; # (6.0 🕞️ ) CLOCK FACE THREE-THIRTY
-1F55F FE0E ; text style; # (6.0 🕟︎ ) CLOCK FACE FOUR-THIRTY
-1F55F FE0F ; emoji style; # (6.0 🕟️ ) CLOCK FACE FOUR-THIRTY
-1F560 FE0E ; text style; # (6.0 🕠︎ ) CLOCK FACE FIVE-THIRTY
-1F560 FE0F ; emoji style; # (6.0 🕠️ ) CLOCK FACE FIVE-THIRTY
-1F561 FE0E ; text style; # (6.0 🕡︎ ) CLOCK FACE SIX-THIRTY
-1F561 FE0F ; emoji style; # (6.0 🕡️ ) CLOCK FACE SIX-THIRTY
-1F562 FE0E ; text style; # (6.0 🕢︎ ) CLOCK FACE SEVEN-THIRTY
-1F562 FE0F ; emoji style; # (6.0 🕢️ ) CLOCK FACE SEVEN-THIRTY
-1F563 FE0E ; text style; # (6.0 🕣︎ ) CLOCK FACE EIGHT-THIRTY
-1F563 FE0F ; emoji style; # (6.0 🕣️ ) CLOCK FACE EIGHT-THIRTY
-1F564 FE0E ; text style; # (6.0 🕤︎ ) CLOCK FACE NINE-THIRTY
-1F564 FE0F ; emoji style; # (6.0 🕤️ ) CLOCK FACE NINE-THIRTY
-1F565 FE0E ; text style; # (6.0 🕥︎ ) CLOCK FACE TEN-THIRTY
-1F565 FE0F ; emoji style; # (6.0 🕥️ ) CLOCK FACE TEN-THIRTY
-1F566 FE0E ; text style; # (6.0 🕦︎ ) CLOCK FACE ELEVEN-THIRTY
-1F566 FE0F ; emoji style; # (6.0 🕦️ ) CLOCK FACE ELEVEN-THIRTY
-1F567 FE0E ; text style; # (6.0 🕧︎ ) CLOCK FACE TWELVE-THIRTY
-1F567 FE0F ; emoji style; # (6.0 🕧️ ) CLOCK FACE TWELVE-THIRTY
-1F56F FE0E ; text style; # (7.0 🕯︎ ) CANDLE
-1F56F FE0F ; emoji style; # (7.0 🕯️ ) CANDLE
-1F570 FE0E ; text style; # (7.0 🕰︎ ) MANTELPIECE CLOCK
-1F570 FE0F ; emoji style; # (7.0 🕰️ ) MANTELPIECE CLOCK
-1F573 FE0E ; text style; # (7.0 🕳︎ ) HOLE
-1F573 FE0F ; emoji style; # (7.0 🕳️ ) HOLE
-1F574 FE0E ; text style; # (7.0 🕴︎ ) MAN IN BUSINESS SUIT LEVITATING
-1F574 FE0F ; emoji style; # (7.0 🕴️ ) MAN IN BUSINESS SUIT LEVITATING
-1F575 FE0E ; text style; # (7.0 🕵︎ ) SLEUTH OR SPY
-1F575 FE0F ; emoji style; # (7.0 🕵️ ) SLEUTH OR SPY
-1F576 FE0E ; text style; # (7.0 🕶︎ ) DARK SUNGLASSES
-1F576 FE0F ; emoji style; # (7.0 🕶️ ) DARK SUNGLASSES
-1F577 FE0E ; text style; # (7.0 🕷︎ ) SPIDER
-1F577 FE0F ; emoji style; # (7.0 🕷️ ) SPIDER
-1F578 FE0E ; text style; # (7.0 🕸︎ ) SPIDER WEB
-1F578 FE0F ; emoji style; # (7.0 🕸️ ) SPIDER WEB
-1F579 FE0E ; text style; # (7.0 🕹︎ ) JOYSTICK
-1F579 FE0F ; emoji style; # (7.0 🕹️ ) JOYSTICK
-1F587 FE0E ; text style; # (7.0 🖇︎ ) LINKED PAPERCLIPS
-1F587 FE0F ; emoji style; # (7.0 🖇️ ) LINKED PAPERCLIPS
-1F58A FE0E ; text style; # (7.0 🖊︎ ) LOWER LEFT BALLPOINT PEN
-1F58A FE0F ; emoji style; # (7.0 🖊️ ) LOWER LEFT BALLPOINT PEN
-1F58B FE0E ; text style; # (7.0 🖋︎ ) LOWER LEFT FOUNTAIN PEN
-1F58B FE0F ; emoji style; # (7.0 🖋️ ) LOWER LEFT FOUNTAIN PEN
-1F58C FE0E ; text style; # (7.0 🖌︎ ) LOWER LEFT PAINTBRUSH
-1F58C FE0F ; emoji style; # (7.0 🖌️ ) LOWER LEFT PAINTBRUSH
-1F58D FE0E ; text style; # (7.0 🖍︎ ) LOWER LEFT CRAYON
-1F58D FE0F ; emoji style; # (7.0 🖍️ ) LOWER LEFT CRAYON
-1F590 FE0E ; text style; # (7.0 🖐︎ ) RAISED HAND WITH FINGERS SPLAYED
-1F590 FE0F ; emoji style; # (7.0 🖐️ ) RAISED HAND WITH FINGERS SPLAYED
-1F5A5 FE0E ; text style; # (7.0 🖥︎ ) DESKTOP COMPUTER
-1F5A5 FE0F ; emoji style; # (7.0 🖥️ ) DESKTOP COMPUTER
-1F5A8 FE0E ; text style; # (7.0 🖨︎ ) PRINTER
-1F5A8 FE0F ; emoji style; # (7.0 🖨️ ) PRINTER
-1F5B1 FE0E ; text style; # (7.0 🖱︎ ) THREE BUTTON MOUSE
-1F5B1 FE0F ; emoji style; # (7.0 🖱️ ) THREE BUTTON MOUSE
-1F5B2 FE0E ; text style; # (7.0 🖲︎ ) TRACKBALL
-1F5B2 FE0F ; emoji style; # (7.0 🖲️ ) TRACKBALL
-1F5BC FE0E ; text style; # (7.0 🖼︎ ) FRAME WITH PICTURE
-1F5BC FE0F ; emoji style; # (7.0 🖼️ ) FRAME WITH PICTURE
-1F5C2 FE0E ; text style; # (7.0 🗂︎ ) CARD INDEX DIVIDERS
-1F5C2 FE0F ; emoji style; # (7.0 🗂️ ) CARD INDEX DIVIDERS
-1F5C3 FE0E ; text style; # (7.0 🗃︎ ) CARD FILE BOX
-1F5C3 FE0F ; emoji style; # (7.0 🗃️ ) CARD FILE BOX
-1F5C4 FE0E ; text style; # (7.0 🗄︎ ) FILE CABINET
-1F5C4 FE0F ; emoji style; # (7.0 🗄️ ) FILE CABINET
-1F5D1 FE0E ; text style; # (7.0 🗑︎ ) WASTEBASKET
-1F5D1 FE0F ; emoji style; # (7.0 🗑️ ) WASTEBASKET
-1F5D2 FE0E ; text style; # (7.0 🗒︎ ) SPIRAL NOTE PAD
-1F5D2 FE0F ; emoji style; # (7.0 🗒️ ) SPIRAL NOTE PAD
-1F5D3 FE0E ; text style; # (7.0 🗓︎ ) SPIRAL CALENDAR PAD
-1F5D3 FE0F ; emoji style; # (7.0 🗓️ ) SPIRAL CALENDAR PAD
-1F5DC FE0E ; text style; # (7.0 🗜︎ ) COMPRESSION
-1F5DC FE0F ; emoji style; # (7.0 🗜️ ) COMPRESSION
-1F5DD FE0E ; text style; # (7.0 🗝︎ ) OLD KEY
-1F5DD FE0F ; emoji style; # (7.0 🗝️ ) OLD KEY
-1F5DE FE0E ; text style; # (7.0 🗞︎ ) ROLLED-UP NEWSPAPER
-1F5DE FE0F ; emoji style; # (7.0 🗞️ ) ROLLED-UP NEWSPAPER
-1F5E1 FE0E ; text style; # (7.0 🗡︎ ) DAGGER KNIFE
-1F5E1 FE0F ; emoji style; # (7.0 🗡️ ) DAGGER KNIFE
-1F5E3 FE0E ; text style; # (7.0 🗣︎ ) SPEAKING HEAD IN SILHOUETTE
-1F5E3 FE0F ; emoji style; # (7.0 🗣️ ) SPEAKING HEAD IN SILHOUETTE
-1F5E8 FE0E ; text style; # (7.0 🗨︎ ) LEFT SPEECH BUBBLE
-1F5E8 FE0F ; emoji style; # (7.0 🗨️ ) LEFT SPEECH BUBBLE
-1F5EF FE0E ; text style; # (7.0 🗯︎ ) RIGHT ANGER BUBBLE
-1F5EF FE0F ; emoji style; # (7.0 🗯️ ) RIGHT ANGER BUBBLE
-1F5F3 FE0E ; text style; # (7.0 🗳︎ ) BALLOT BOX WITH BALLOT
-1F5F3 FE0F ; emoji style; # (7.0 🗳️ ) BALLOT BOX WITH BALLOT
-1F5FA FE0E ; text style; # (7.0 🗺︎ ) WORLD MAP
-1F5FA FE0F ; emoji style; # (7.0 🗺️ ) WORLD MAP
-1F610 FE0E ; text style; # (6.0 😐︎ ) NEUTRAL FACE
-1F610 FE0F ; emoji style; # (6.0 😐️ ) NEUTRAL FACE
-1F687 FE0E ; text style; # (6.0 🚇︎ ) METRO
-1F687 FE0F ; emoji style; # (6.0 🚇️ ) METRO
-1F68D FE0E ; text style; # (6.0 🚍︎ ) ONCOMING BUS
-1F68D FE0F ; emoji style; # (6.0 🚍️ ) ONCOMING BUS
-1F691 FE0E ; text style; # (6.0 🚑︎ ) AMBULANCE
-1F691 FE0F ; emoji style; # (6.0 🚑️ ) AMBULANCE
-1F694 FE0E ; text style; # (6.0 🚔︎ ) ONCOMING POLICE CAR
-1F694 FE0F ; emoji style; # (6.0 🚔️ ) ONCOMING POLICE CAR
-1F698 FE0E ; text style; # (6.0 🚘︎ ) ONCOMING AUTOMOBILE
-1F698 FE0F ; emoji style; # (6.0 🚘️ ) ONCOMING AUTOMOBILE
-1F6AD FE0E ; text style; # (6.0 🚭︎ ) NO SMOKING SYMBOL
-1F6AD FE0F ; emoji style; # (6.0 🚭️ ) NO SMOKING SYMBOL
-1F6B2 FE0E ; text style; # (6.0 🚲︎ ) BICYCLE
-1F6B2 FE0F ; emoji style; # (6.0 🚲️ ) BICYCLE
-1F6B9 FE0E ; text style; # (6.0 🚹︎ ) MENS SYMBOL
-1F6B9 FE0F ; emoji style; # (6.0 🚹️ ) MENS SYMBOL
-1F6BA FE0E ; text style; # (6.0 🚺︎ ) WOMENS SYMBOL
-1F6BA FE0F ; emoji style; # (6.0 🚺️ ) WOMENS SYMBOL
-1F6BC FE0E ; text style; # (6.0 🚼︎ ) BABY SYMBOL
-1F6BC FE0F ; emoji style; # (6.0 🚼️ ) BABY SYMBOL
-1F6CB FE0E ; text style; # (7.0 🛋︎ ) COUCH AND LAMP
-1F6CB FE0F ; emoji style; # (7.0 🛋️ ) COUCH AND LAMP
-1F6CD FE0E ; text style; # (7.0 🛍︎ ) SHOPPING BAGS
-1F6CD FE0F ; emoji style; # (7.0 🛍️ ) SHOPPING BAGS
-1F6CE FE0E ; text style; # (7.0 🛎︎ ) BELLHOP BELL
-1F6CE FE0F ; emoji style; # (7.0 🛎️ ) BELLHOP BELL
-1F6CF FE0E ; text style; # (7.0 🛏︎ ) BED
-1F6CF FE0F ; emoji style; # (7.0 🛏️ ) BED
-1F6E0 FE0E ; text style; # (7.0 🛠︎ ) HAMMER AND WRENCH
-1F6E0 FE0F ; emoji style; # (7.0 🛠️ ) HAMMER AND WRENCH
-1F6E1 FE0E ; text style; # (7.0 🛡︎ ) SHIELD
-1F6E1 FE0F ; emoji style; # (7.0 🛡️ ) SHIELD
-1F6E2 FE0E ; text style; # (7.0 🛢︎ ) OIL DRUM
-1F6E2 FE0F ; emoji style; # (7.0 🛢️ ) OIL DRUM
-1F6E3 FE0E ; text style; # (7.0 🛣︎ ) MOTORWAY
-1F6E3 FE0F ; emoji style; # (7.0 🛣️ ) MOTORWAY
-1F6E4 FE0E ; text style; # (7.0 🛤︎ ) RAILWAY TRACK
-1F6E4 FE0F ; emoji style; # (7.0 🛤️ ) RAILWAY TRACK
-1F6E5 FE0E ; text style; # (7.0 🛥︎ ) MOTOR BOAT
-1F6E5 FE0F ; emoji style; # (7.0 🛥️ ) MOTOR BOAT
-1F6E9 FE0E ; text style; # (7.0 🛩︎ ) SMALL AIRPLANE
-1F6E9 FE0F ; emoji style; # (7.0 🛩️ ) SMALL AIRPLANE
-1F6F0 FE0E ; text style; # (7.0 🛰︎ ) SATELLITE
-1F6F0 FE0F ; emoji style; # (7.0 🛰️ ) SATELLITE
-1F6F3 FE0E ; text style; # (7.0 🛳︎ ) PASSENGER SHIP
-1F6F3 FE0F ; emoji style; # (7.0 🛳️ ) PASSENGER SHIP
+0023 FE0E ; text style; # (1.1) NUMBER SIGN
+0023 FE0F ; emoji style; # (1.1) NUMBER SIGN
+002A FE0E ; text style; # (1.1) ASTERISK
+002A FE0F ; emoji style; # (1.1) ASTERISK
+0030 FE0E ; text style; # (1.1) DIGIT ZERO
+0030 FE0F ; emoji style; # (1.1) DIGIT ZERO
+0031 FE0E ; text style; # (1.1) DIGIT ONE
+0031 FE0F ; emoji style; # (1.1) DIGIT ONE
+0032 FE0E ; text style; # (1.1) DIGIT TWO
+0032 FE0F ; emoji style; # (1.1) DIGIT TWO
+0033 FE0E ; text style; # (1.1) DIGIT THREE
+0033 FE0F ; emoji style; # (1.1) DIGIT THREE
+0034 FE0E ; text style; # (1.1) DIGIT FOUR
+0034 FE0F ; emoji style; # (1.1) DIGIT FOUR
+0035 FE0E ; text style; # (1.1) DIGIT FIVE
+0035 FE0F ; emoji style; # (1.1) DIGIT FIVE
+0036 FE0E ; text style; # (1.1) DIGIT SIX
+0036 FE0F ; emoji style; # (1.1) DIGIT SIX
+0037 FE0E ; text style; # (1.1) DIGIT SEVEN
+0037 FE0F ; emoji style; # (1.1) DIGIT SEVEN
+0038 FE0E ; text style; # (1.1) DIGIT EIGHT
+0038 FE0F ; emoji style; # (1.1) DIGIT EIGHT
+0039 FE0E ; text style; # (1.1) DIGIT NINE
+0039 FE0F ; emoji style; # (1.1) DIGIT NINE
+00A9 FE0E ; text style; # (1.1) COPYRIGHT SIGN
+00A9 FE0F ; emoji style; # (1.1) COPYRIGHT SIGN
+00AE FE0E ; text style; # (1.1) REGISTERED SIGN
+00AE FE0F ; emoji style; # (1.1) REGISTERED SIGN
+203C FE0E ; text style; # (1.1) DOUBLE EXCLAMATION MARK
+203C FE0F ; emoji style; # (1.1) DOUBLE EXCLAMATION MARK
+2049 FE0E ; text style; # (3.0) EXCLAMATION QUESTION MARK
+2049 FE0F ; emoji style; # (3.0) EXCLAMATION QUESTION MARK
+2122 FE0E ; text style; # (1.1) TRADE MARK SIGN
+2122 FE0F ; emoji style; # (1.1) TRADE MARK SIGN
+2139 FE0E ; text style; # (3.0) INFORMATION SOURCE
+2139 FE0F ; emoji style; # (3.0) INFORMATION SOURCE
+2194 FE0E ; text style; # (1.1) LEFT RIGHT ARROW
+2194 FE0F ; emoji style; # (1.1) LEFT RIGHT ARROW
+2195 FE0E ; text style; # (1.1) UP DOWN ARROW
+2195 FE0F ; emoji style; # (1.1) UP DOWN ARROW
+2196 FE0E ; text style; # (1.1) NORTH WEST ARROW
+2196 FE0F ; emoji style; # (1.1) NORTH WEST ARROW
+2197 FE0E ; text style; # (1.1) NORTH EAST ARROW
+2197 FE0F ; emoji style; # (1.1) NORTH EAST ARROW
+2198 FE0E ; text style; # (1.1) SOUTH EAST ARROW
+2198 FE0F ; emoji style; # (1.1) SOUTH EAST ARROW
+2199 FE0E ; text style; # (1.1) SOUTH WEST ARROW
+2199 FE0F ; emoji style; # (1.1) SOUTH WEST ARROW
+21A9 FE0E ; text style; # (1.1) LEFTWARDS ARROW WITH HOOK
+21A9 FE0F ; emoji style; # (1.1) LEFTWARDS ARROW WITH HOOK
+21AA FE0E ; text style; # (1.1) RIGHTWARDS ARROW WITH HOOK
+21AA FE0F ; emoji style; # (1.1) RIGHTWARDS ARROW WITH HOOK
+231A FE0E ; text style; # (1.1) WATCH
+231A FE0F ; emoji style; # (1.1) WATCH
+231B FE0E ; text style; # (1.1) HOURGLASS
+231B FE0F ; emoji style; # (1.1) HOURGLASS
+2328 FE0E ; text style; # (1.1) KEYBOARD
+2328 FE0F ; emoji style; # (1.1) KEYBOARD
+23CF FE0E ; text style; # (4.0) EJECT SYMBOL
+23CF FE0F ; emoji style; # (4.0) EJECT SYMBOL
+23E9 FE0E ; text style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE
+23E9 FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE
+23EA FE0E ; text style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE
+23EA FE0F ; emoji style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE
+23EB FE0E ; text style; # (6.0) BLACK UP-POINTING DOUBLE TRIANGLE
+23EB FE0F ; emoji style; # (6.0) BLACK UP-POINTING DOUBLE TRIANGLE
+23EC FE0E ; text style; # (6.0) BLACK DOWN-POINTING DOUBLE TRIANGLE
+23EC FE0F ; emoji style; # (6.0) BLACK DOWN-POINTING DOUBLE TRIANGLE
+23ED FE0E ; text style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23ED FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EE FE0E ; text style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EE FE0F ; emoji style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EF FE0E ; text style; # (6.0) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23EF FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0 FE0E ; text style; # (6.0) ALARM CLOCK
+23F0 FE0F ; emoji style; # (6.0) ALARM CLOCK
+23F1 FE0E ; text style; # (6.0) STOPWATCH
+23F1 FE0F ; emoji style; # (6.0) STOPWATCH
+23F2 FE0E ; text style; # (6.0) TIMER CLOCK
+23F2 FE0F ; emoji style; # (6.0) TIMER CLOCK
+23F3 FE0E ; text style; # (6.0) HOURGLASS WITH FLOWING SAND
+23F3 FE0F ; emoji style; # (6.0) HOURGLASS WITH FLOWING SAND
+23F8 FE0E ; text style; # (7.0) DOUBLE VERTICAL BAR
+23F8 FE0F ; emoji style; # (7.0) DOUBLE VERTICAL BAR
+23F9 FE0E ; text style; # (7.0) BLACK SQUARE FOR STOP
+23F9 FE0F ; emoji style; # (7.0) BLACK SQUARE FOR STOP
+23FA FE0E ; text style; # (7.0) BLACK CIRCLE FOR RECORD
+23FA FE0F ; emoji style; # (7.0) BLACK CIRCLE FOR RECORD
+24C2 FE0E ; text style; # (1.1) CIRCLED LATIN CAPITAL LETTER M
+24C2 FE0F ; emoji style; # (1.1) CIRCLED LATIN CAPITAL LETTER M
+25AA FE0E ; text style; # (1.1) BLACK SMALL SQUARE
+25AA FE0F ; emoji style; # (1.1) BLACK SMALL SQUARE
+25AB FE0E ; text style; # (1.1) WHITE SMALL SQUARE
+25AB FE0F ; emoji style; # (1.1) WHITE SMALL SQUARE
+25B6 FE0E ; text style; # (1.1) BLACK RIGHT-POINTING TRIANGLE
+25B6 FE0F ; emoji style; # (1.1) BLACK RIGHT-POINTING TRIANGLE
+25C0 FE0E ; text style; # (1.1) BLACK LEFT-POINTING TRIANGLE
+25C0 FE0F ; emoji style; # (1.1) BLACK LEFT-POINTING TRIANGLE
+25FB FE0E ; text style; # (3.2) WHITE MEDIUM SQUARE
+25FB FE0F ; emoji style; # (3.2) WHITE MEDIUM SQUARE
+25FC FE0E ; text style; # (3.2) BLACK MEDIUM SQUARE
+25FC FE0F ; emoji style; # (3.2) BLACK MEDIUM SQUARE
+25FD FE0E ; text style; # (3.2) WHITE MEDIUM SMALL SQUARE
+25FD FE0F ; emoji style; # (3.2) WHITE MEDIUM SMALL SQUARE
+25FE FE0E ; text style; # (3.2) BLACK MEDIUM SMALL SQUARE
+25FE FE0F ; emoji style; # (3.2) BLACK MEDIUM SMALL SQUARE
+2600 FE0E ; text style; # (1.1) BLACK SUN WITH RAYS
+2600 FE0F ; emoji style; # (1.1) BLACK SUN WITH RAYS
+2601 FE0E ; text style; # (1.1) CLOUD
+2601 FE0F ; emoji style; # (1.1) CLOUD
+2602 FE0E ; text style; # (1.1) UMBRELLA
+2602 FE0F ; emoji style; # (1.1) UMBRELLA
+2603 FE0E ; text style; # (1.1) SNOWMAN
+2603 FE0F ; emoji style; # (1.1) SNOWMAN
+2604 FE0E ; text style; # (1.1) COMET
+2604 FE0F ; emoji style; # (1.1) COMET
+260E FE0E ; text style; # (1.1) BLACK TELEPHONE
+260E FE0F ; emoji style; # (1.1) BLACK TELEPHONE
+2611 FE0E ; text style; # (1.1) BALLOT BOX WITH CHECK
+2611 FE0F ; emoji style; # (1.1) BALLOT BOX WITH CHECK
+2614 FE0E ; text style; # (4.0) UMBRELLA WITH RAIN DROPS
+2614 FE0F ; emoji style; # (4.0) UMBRELLA WITH RAIN DROPS
+2615 FE0E ; text style; # (4.0) HOT BEVERAGE
+2615 FE0F ; emoji style; # (4.0) HOT BEVERAGE
+2618 FE0E ; text style; # (4.1) SHAMROCK
+2618 FE0F ; emoji style; # (4.1) SHAMROCK
+261D FE0E ; text style; # (1.1) WHITE UP POINTING INDEX
+261D FE0F ; emoji style; # (1.1) WHITE UP POINTING INDEX
+2620 FE0E ; text style; # (1.1) SKULL AND CROSSBONES
+2620 FE0F ; emoji style; # (1.1) SKULL AND CROSSBONES
+2622 FE0E ; text style; # (1.1) RADIOACTIVE SIGN
+2622 FE0F ; emoji style; # (1.1) RADIOACTIVE SIGN
+2623 FE0E ; text style; # (1.1) BIOHAZARD SIGN
+2623 FE0F ; emoji style; # (1.1) BIOHAZARD SIGN
+2626 FE0E ; text style; # (1.1) ORTHODOX CROSS
+2626 FE0F ; emoji style; # (1.1) ORTHODOX CROSS
+262A FE0E ; text style; # (1.1) STAR AND CRESCENT
+262A FE0F ; emoji style; # (1.1) STAR AND CRESCENT
+262E FE0E ; text style; # (1.1) PEACE SYMBOL
+262E FE0F ; emoji style; # (1.1) PEACE SYMBOL
+262F FE0E ; text style; # (1.1) YIN YANG
+262F FE0F ; emoji style; # (1.1) YIN YANG
+2638 FE0E ; text style; # (1.1) WHEEL OF DHARMA
+2638 FE0F ; emoji style; # (1.1) WHEEL OF DHARMA
+2639 FE0E ; text style; # (1.1) WHITE FROWNING FACE
+2639 FE0F ; emoji style; # (1.1) WHITE FROWNING FACE
+263A FE0E ; text style; # (1.1) WHITE SMILING FACE
+263A FE0F ; emoji style; # (1.1) WHITE SMILING FACE
+2640 FE0E ; text style; # (1.1) FEMALE SIGN
+2640 FE0F ; emoji style; # (1.1) FEMALE SIGN
+2642 FE0E ; text style; # (1.1) MALE SIGN
+2642 FE0F ; emoji style; # (1.1) MALE SIGN
+2648 FE0E ; text style; # (1.1) ARIES
+2648 FE0F ; emoji style; # (1.1) ARIES
+2649 FE0E ; text style; # (1.1) TAURUS
+2649 FE0F ; emoji style; # (1.1) TAURUS
+264A FE0E ; text style; # (1.1) GEMINI
+264A FE0F ; emoji style; # (1.1) GEMINI
+264B FE0E ; text style; # (1.1) CANCER
+264B FE0F ; emoji style; # (1.1) CANCER
+264C FE0E ; text style; # (1.1) LEO
+264C FE0F ; emoji style; # (1.1) LEO
+264D FE0E ; text style; # (1.1) VIRGO
+264D FE0F ; emoji style; # (1.1) VIRGO
+264E FE0E ; text style; # (1.1) LIBRA
+264E FE0F ; emoji style; # (1.1) LIBRA
+264F FE0E ; text style; # (1.1) SCORPIUS
+264F FE0F ; emoji style; # (1.1) SCORPIUS
+2650 FE0E ; text style; # (1.1) SAGITTARIUS
+2650 FE0F ; emoji style; # (1.1) SAGITTARIUS
+2651 FE0E ; text style; # (1.1) CAPRICORN
+2651 FE0F ; emoji style; # (1.1) CAPRICORN
+2652 FE0E ; text style; # (1.1) AQUARIUS
+2652 FE0F ; emoji style; # (1.1) AQUARIUS
+2653 FE0E ; text style; # (1.1) PISCES
+2653 FE0F ; emoji style; # (1.1) PISCES
+265F FE0E ; text style; # (1.1) BLACK CHESS PAWN
+265F FE0F ; emoji style; # (1.1) BLACK CHESS PAWN
+2660 FE0E ; text style; # (1.1) BLACK SPADE SUIT
+2660 FE0F ; emoji style; # (1.1) BLACK SPADE SUIT
+2663 FE0E ; text style; # (1.1) BLACK CLUB SUIT
+2663 FE0F ; emoji style; # (1.1) BLACK CLUB SUIT
+2665 FE0E ; text style; # (1.1) BLACK HEART SUIT
+2665 FE0F ; emoji style; # (1.1) BLACK HEART SUIT
+2666 FE0E ; text style; # (1.1) BLACK DIAMOND SUIT
+2666 FE0F ; emoji style; # (1.1) BLACK DIAMOND SUIT
+2668 FE0E ; text style; # (1.1) HOT SPRINGS
+2668 FE0F ; emoji style; # (1.1) HOT SPRINGS
+267B FE0E ; text style; # (3.2) BLACK UNIVERSAL RECYCLING SYMBOL
+267B FE0F ; emoji style; # (3.2) BLACK UNIVERSAL RECYCLING SYMBOL
+267E FE0E ; text style; # (4.1) PERMANENT PAPER SIGN
+267E FE0F ; emoji style; # (4.1) PERMANENT PAPER SIGN
+267F FE0E ; text style; # (4.1) WHEELCHAIR SYMBOL
+267F FE0F ; emoji style; # (4.1) WHEELCHAIR SYMBOL
+2692 FE0E ; text style; # (4.1) HAMMER AND PICK
+2692 FE0F ; emoji style; # (4.1) HAMMER AND PICK
+2693 FE0E ; text style; # (4.1) ANCHOR
+2693 FE0F ; emoji style; # (4.1) ANCHOR
+2694 FE0E ; text style; # (4.1) CROSSED SWORDS
+2694 FE0F ; emoji style; # (4.1) CROSSED SWORDS
+2695 FE0E ; text style; # (4.1) STAFF OF AESCULAPIUS
+2695 FE0F ; emoji style; # (4.1) STAFF OF AESCULAPIUS
+2696 FE0E ; text style; # (4.1) SCALES
+2696 FE0F ; emoji style; # (4.1) SCALES
+2697 FE0E ; text style; # (4.1) ALEMBIC
+2697 FE0F ; emoji style; # (4.1) ALEMBIC
+2699 FE0E ; text style; # (4.1) GEAR
+2699 FE0F ; emoji style; # (4.1) GEAR
+269B FE0E ; text style; # (4.1) ATOM SYMBOL
+269B FE0F ; emoji style; # (4.1) ATOM SYMBOL
+269C FE0E ; text style; # (4.1) FLEUR-DE-LIS
+269C FE0F ; emoji style; # (4.1) FLEUR-DE-LIS
+26A0 FE0E ; text style; # (4.0) WARNING SIGN
+26A0 FE0F ; emoji style; # (4.0) WARNING SIGN
+26A1 FE0E ; text style; # (4.0) HIGH VOLTAGE SIGN
+26A1 FE0F ; emoji style; # (4.0) HIGH VOLTAGE SIGN
+26A7 FE0E ; text style; # (4.1) MALE WITH STROKE AND MALE AND FEMALE SIGN
+26A7 FE0F ; emoji style; # (4.1) MALE WITH STROKE AND MALE AND FEMALE SIGN
+26AA FE0E ; text style; # (4.1) MEDIUM WHITE CIRCLE
+26AA FE0F ; emoji style; # (4.1) MEDIUM WHITE CIRCLE
+26AB FE0E ; text style; # (4.1) MEDIUM BLACK CIRCLE
+26AB FE0F ; emoji style; # (4.1) MEDIUM BLACK CIRCLE
+26B0 FE0E ; text style; # (4.1) COFFIN
+26B0 FE0F ; emoji style; # (4.1) COFFIN
+26B1 FE0E ; text style; # (4.1) FUNERAL URN
+26B1 FE0F ; emoji style; # (4.1) FUNERAL URN
+26BD FE0E ; text style; # (5.2) SOCCER BALL
+26BD FE0F ; emoji style; # (5.2) SOCCER BALL
+26BE FE0E ; text style; # (5.2) BASEBALL
+26BE FE0F ; emoji style; # (5.2) BASEBALL
+26C4 FE0E ; text style; # (5.2) SNOWMAN WITHOUT SNOW
+26C4 FE0F ; emoji style; # (5.2) SNOWMAN WITHOUT SNOW
+26C5 FE0E ; text style; # (5.2) SUN BEHIND CLOUD
+26C5 FE0F ; emoji style; # (5.2) SUN BEHIND CLOUD
+26C8 FE0E ; text style; # (5.2) THUNDER CLOUD AND RAIN
+26C8 FE0F ; emoji style; # (5.2) THUNDER CLOUD AND RAIN
+26CE FE0E ; text style; # (6.0) OPHIUCHUS
+26CE FE0F ; emoji style; # (6.0) OPHIUCHUS
+26CF FE0E ; text style; # (5.2) PICK
+26CF FE0F ; emoji style; # (5.2) PICK
+26D1 FE0E ; text style; # (5.2) HELMET WITH WHITE CROSS
+26D1 FE0F ; emoji style; # (5.2) HELMET WITH WHITE CROSS
+26D3 FE0E ; text style; # (5.2) CHAINS
+26D3 FE0F ; emoji style; # (5.2) CHAINS
+26D4 FE0E ; text style; # (5.2) NO ENTRY
+26D4 FE0F ; emoji style; # (5.2) NO ENTRY
+26E9 FE0E ; text style; # (5.2) SHINTO SHRINE
+26E9 FE0F ; emoji style; # (5.2) SHINTO SHRINE
+26EA FE0E ; text style; # (5.2) CHURCH
+26EA FE0F ; emoji style; # (5.2) CHURCH
+26F0 FE0E ; text style; # (5.2) MOUNTAIN
+26F0 FE0F ; emoji style; # (5.2) MOUNTAIN
+26F1 FE0E ; text style; # (5.2) UMBRELLA ON GROUND
+26F1 FE0F ; emoji style; # (5.2) UMBRELLA ON GROUND
+26F2 FE0E ; text style; # (5.2) FOUNTAIN
+26F2 FE0F ; emoji style; # (5.2) FOUNTAIN
+26F3 FE0E ; text style; # (5.2) FLAG IN HOLE
+26F3 FE0F ; emoji style; # (5.2) FLAG IN HOLE
+26F4 FE0E ; text style; # (5.2) FERRY
+26F4 FE0F ; emoji style; # (5.2) FERRY
+26F5 FE0E ; text style; # (5.2) SAILBOAT
+26F5 FE0F ; emoji style; # (5.2) SAILBOAT
+26F7 FE0E ; text style; # (5.2) SKIER
+26F7 FE0F ; emoji style; # (5.2) SKIER
+26F8 FE0E ; text style; # (5.2) ICE SKATE
+26F8 FE0F ; emoji style; # (5.2) ICE SKATE
+26F9 FE0E ; text style; # (5.2) PERSON WITH BALL
+26F9 FE0F ; emoji style; # (5.2) PERSON WITH BALL
+26FA FE0E ; text style; # (5.2) TENT
+26FA FE0F ; emoji style; # (5.2) TENT
+26FD FE0E ; text style; # (5.2) FUEL PUMP
+26FD FE0F ; emoji style; # (5.2) FUEL PUMP
+2702 FE0E ; text style; # (1.1) BLACK SCISSORS
+2702 FE0F ; emoji style; # (1.1) BLACK SCISSORS
+2705 FE0E ; text style; # (6.0) WHITE HEAVY CHECK MARK
+2705 FE0F ; emoji style; # (6.0) WHITE HEAVY CHECK MARK
+2708 FE0E ; text style; # (1.1) AIRPLANE
+2708 FE0F ; emoji style; # (1.1) AIRPLANE
+2709 FE0E ; text style; # (1.1) ENVELOPE
+2709 FE0F ; emoji style; # (1.1) ENVELOPE
+270A FE0E ; text style; # (6.0) RAISED FIST
+270A FE0F ; emoji style; # (6.0) RAISED FIST
+270B FE0E ; text style; # (6.0) RAISED HAND
+270B FE0F ; emoji style; # (6.0) RAISED HAND
+270C FE0E ; text style; # (1.1) VICTORY HAND
+270C FE0F ; emoji style; # (1.1) VICTORY HAND
+270D FE0E ; text style; # (1.1) WRITING HAND
+270D FE0F ; emoji style; # (1.1) WRITING HAND
+270F FE0E ; text style; # (1.1) PENCIL
+270F FE0F ; emoji style; # (1.1) PENCIL
+2712 FE0E ; text style; # (1.1) BLACK NIB
+2712 FE0F ; emoji style; # (1.1) BLACK NIB
+2714 FE0E ; text style; # (1.1) HEAVY CHECK MARK
+2714 FE0F ; emoji style; # (1.1) HEAVY CHECK MARK
+2716 FE0E ; text style; # (1.1) HEAVY MULTIPLICATION X
+2716 FE0F ; emoji style; # (1.1) HEAVY MULTIPLICATION X
+271D FE0E ; text style; # (1.1) LATIN CROSS
+271D FE0F ; emoji style; # (1.1) LATIN CROSS
+2721 FE0E ; text style; # (1.1) STAR OF DAVID
+2721 FE0F ; emoji style; # (1.1) STAR OF DAVID
+2728 FE0E ; text style; # (6.0) SPARKLES
+2728 FE0F ; emoji style; # (6.0) SPARKLES
+2733 FE0E ; text style; # (1.1) EIGHT SPOKED ASTERISK
+2733 FE0F ; emoji style; # (1.1) EIGHT SPOKED ASTERISK
+2734 FE0E ; text style; # (1.1) EIGHT POINTED BLACK STAR
+2734 FE0F ; emoji style; # (1.1) EIGHT POINTED BLACK STAR
+2744 FE0E ; text style; # (1.1) SNOWFLAKE
+2744 FE0F ; emoji style; # (1.1) SNOWFLAKE
+2747 FE0E ; text style; # (1.1) SPARKLE
+2747 FE0F ; emoji style; # (1.1) SPARKLE
+274C FE0E ; text style; # (6.0) CROSS MARK
+274C FE0F ; emoji style; # (6.0) CROSS MARK
+274E FE0E ; text style; # (6.0) NEGATIVE SQUARED CROSS MARK
+274E FE0F ; emoji style; # (6.0) NEGATIVE SQUARED CROSS MARK
+2753 FE0E ; text style; # (6.0) BLACK QUESTION MARK ORNAMENT
+2753 FE0F ; emoji style; # (6.0) BLACK QUESTION MARK ORNAMENT
+2754 FE0E ; text style; # (6.0) WHITE QUESTION MARK ORNAMENT
+2754 FE0F ; emoji style; # (6.0) WHITE QUESTION MARK ORNAMENT
+2755 FE0E ; text style; # (6.0) WHITE EXCLAMATION MARK ORNAMENT
+2755 FE0F ; emoji style; # (6.0) WHITE EXCLAMATION MARK ORNAMENT
+2757 FE0E ; text style; # (5.2) HEAVY EXCLAMATION MARK SYMBOL
+2757 FE0F ; emoji style; # (5.2) HEAVY EXCLAMATION MARK SYMBOL
+2763 FE0E ; text style; # (1.1) HEAVY HEART EXCLAMATION MARK ORNAMENT
+2763 FE0F ; emoji style; # (1.1) HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764 FE0E ; text style; # (1.1) HEAVY BLACK HEART
+2764 FE0F ; emoji style; # (1.1) HEAVY BLACK HEART
+2795 FE0E ; text style; # (6.0) HEAVY PLUS SIGN
+2795 FE0F ; emoji style; # (6.0) HEAVY PLUS SIGN
+2796 FE0E ; text style; # (6.0) HEAVY MINUS SIGN
+2796 FE0F ; emoji style; # (6.0) HEAVY MINUS SIGN
+2797 FE0E ; text style; # (6.0) HEAVY DIVISION SIGN
+2797 FE0F ; emoji style; # (6.0) HEAVY DIVISION SIGN
+27A1 FE0E ; text style; # (1.1) BLACK RIGHTWARDS ARROW
+27A1 FE0F ; emoji style; # (1.1) BLACK RIGHTWARDS ARROW
+27B0 FE0E ; text style; # (6.0) CURLY LOOP
+27B0 FE0F ; emoji style; # (6.0) CURLY LOOP
+27BF FE0E ; text style; # (6.0) DOUBLE CURLY LOOP
+27BF FE0F ; emoji style; # (6.0) DOUBLE CURLY LOOP
+2934 FE0E ; text style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+2934 FE0F ; emoji style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+2935 FE0E ; text style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+2935 FE0F ; emoji style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+2B05 FE0E ; text style; # (4.0) LEFTWARDS BLACK ARROW
+2B05 FE0F ; emoji style; # (4.0) LEFTWARDS BLACK ARROW
+2B06 FE0E ; text style; # (4.0) UPWARDS BLACK ARROW
+2B06 FE0F ; emoji style; # (4.0) UPWARDS BLACK ARROW
+2B07 FE0E ; text style; # (4.0) DOWNWARDS BLACK ARROW
+2B07 FE0F ; emoji style; # (4.0) DOWNWARDS BLACK ARROW
+2B1B FE0E ; text style; # (5.1) BLACK LARGE SQUARE
+2B1B FE0F ; emoji style; # (5.1) BLACK LARGE SQUARE
+2B1C FE0E ; text style; # (5.1) WHITE LARGE SQUARE
+2B1C FE0F ; emoji style; # (5.1) WHITE LARGE SQUARE
+2B50 FE0E ; text style; # (5.1) WHITE MEDIUM STAR
+2B50 FE0F ; emoji style; # (5.1) WHITE MEDIUM STAR
+2B55 FE0E ; text style; # (5.2) HEAVY LARGE CIRCLE
+2B55 FE0F ; emoji style; # (5.2) HEAVY LARGE CIRCLE
+3030 FE0E ; text style; # (1.1) WAVY DASH
+3030 FE0F ; emoji style; # (1.1) WAVY DASH
+303D FE0E ; text style; # (3.2) PART ALTERNATION MARK
+303D FE0F ; emoji style; # (3.2) PART ALTERNATION MARK
+3297 FE0E ; text style; # (1.1) CIRCLED IDEOGRAPH CONGRATULATION
+3297 FE0F ; emoji style; # (1.1) CIRCLED IDEOGRAPH CONGRATULATION
+3299 FE0E ; text style; # (1.1) CIRCLED IDEOGRAPH SECRET
+3299 FE0F ; emoji style; # (1.1) CIRCLED IDEOGRAPH SECRET
+1F004 FE0E ; text style; # (5.1) MAHJONG TILE RED DRAGON
+1F004 FE0F ; emoji style; # (5.1) MAHJONG TILE RED DRAGON
+1F170 FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER A
+1F170 FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER A
+1F171 FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER B
+1F171 FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER B
+1F17E FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER O
+1F17E FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER O
+1F17F FE0E ; text style; # (5.2) NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F17F FE0F ; emoji style; # (5.2) NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F202 FE0E ; text style; # (6.0) SQUARED KATAKANA SA
+1F202 FE0F ; emoji style; # (6.0) SQUARED KATAKANA SA
+1F21A FE0E ; text style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-7121
+1F21A FE0F ; emoji style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-7121
+1F22F FE0E ; text style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-6307
+1F22F FE0F ; emoji style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-6307
+1F237 FE0E ; text style; # (6.0) SQUARED CJK UNIFIED IDEOGRAPH-6708
+1F237 FE0F ; emoji style; # (6.0) SQUARED CJK UNIFIED IDEOGRAPH-6708
+1F30D FE0E ; text style; # (6.0) EARTH GLOBE EUROPE-AFRICA
+1F30D FE0F ; emoji style; # (6.0) EARTH GLOBE EUROPE-AFRICA
+1F30E FE0E ; text style; # (6.0) EARTH GLOBE AMERICAS
+1F30E FE0F ; emoji style; # (6.0) EARTH GLOBE AMERICAS
+1F30F FE0E ; text style; # (6.0) EARTH GLOBE ASIA-AUSTRALIA
+1F30F FE0F ; emoji style; # (6.0) EARTH GLOBE ASIA-AUSTRALIA
+1F315 FE0E ; text style; # (6.0) FULL MOON SYMBOL
+1F315 FE0F ; emoji style; # (6.0) FULL MOON SYMBOL
+1F31C FE0E ; text style; # (6.0) LAST QUARTER MOON WITH FACE
+1F31C FE0F ; emoji style; # (6.0) LAST QUARTER MOON WITH FACE
+1F321 FE0E ; text style; # (7.0) THERMOMETER
+1F321 FE0F ; emoji style; # (7.0) THERMOMETER
+1F324 FE0E ; text style; # (7.0) WHITE SUN WITH SMALL CLOUD
+1F324 FE0F ; emoji style; # (7.0) WHITE SUN WITH SMALL CLOUD
+1F325 FE0E ; text style; # (7.0) WHITE SUN BEHIND CLOUD
+1F325 FE0F ; emoji style; # (7.0) WHITE SUN BEHIND CLOUD
+1F326 FE0E ; text style; # (7.0) WHITE SUN BEHIND CLOUD WITH RAIN
+1F326 FE0F ; emoji style; # (7.0) WHITE SUN BEHIND CLOUD WITH RAIN
+1F327 FE0E ; text style; # (7.0) CLOUD WITH RAIN
+1F327 FE0F ; emoji style; # (7.0) CLOUD WITH RAIN
+1F328 FE0E ; text style; # (7.0) CLOUD WITH SNOW
+1F328 FE0F ; emoji style; # (7.0) CLOUD WITH SNOW
+1F329 FE0E ; text style; # (7.0) CLOUD WITH LIGHTNING
+1F329 FE0F ; emoji style; # (7.0) CLOUD WITH LIGHTNING
+1F32A FE0E ; text style; # (7.0) CLOUD WITH TORNADO
+1F32A FE0F ; emoji style; # (7.0) CLOUD WITH TORNADO
+1F32B FE0E ; text style; # (7.0) FOG
+1F32B FE0F ; emoji style; # (7.0) FOG
+1F32C FE0E ; text style; # (7.0) WIND BLOWING FACE
+1F32C FE0F ; emoji style; # (7.0) WIND BLOWING FACE
+1F336 FE0E ; text style; # (7.0) HOT PEPPER
+1F336 FE0F ; emoji style; # (7.0) HOT PEPPER
+1F378 FE0E ; text style; # (6.0) COCKTAIL GLASS
+1F378 FE0F ; emoji style; # (6.0) COCKTAIL GLASS
+1F37D FE0E ; text style; # (7.0) FORK AND KNIFE WITH PLATE
+1F37D FE0F ; emoji style; # (7.0) FORK AND KNIFE WITH PLATE
+1F393 FE0E ; text style; # (6.0) GRADUATION CAP
+1F393 FE0F ; emoji style; # (6.0) GRADUATION CAP
+1F396 FE0E ; text style; # (7.0) MILITARY MEDAL
+1F396 FE0F ; emoji style; # (7.0) MILITARY MEDAL
+1F397 FE0E ; text style; # (7.0) REMINDER RIBBON
+1F397 FE0F ; emoji style; # (7.0) REMINDER RIBBON
+1F399 FE0E ; text style; # (7.0) STUDIO MICROPHONE
+1F399 FE0F ; emoji style; # (7.0) STUDIO MICROPHONE
+1F39A FE0E ; text style; # (7.0) LEVEL SLIDER
+1F39A FE0F ; emoji style; # (7.0) LEVEL SLIDER
+1F39B FE0E ; text style; # (7.0) CONTROL KNOBS
+1F39B FE0F ; emoji style; # (7.0) CONTROL KNOBS
+1F39E FE0E ; text style; # (7.0) FILM FRAMES
+1F39E FE0F ; emoji style; # (7.0) FILM FRAMES
+1F39F FE0E ; text style; # (7.0) ADMISSION TICKETS
+1F39F FE0F ; emoji style; # (7.0) ADMISSION TICKETS
+1F3A7 FE0E ; text style; # (6.0) HEADPHONE
+1F3A7 FE0F ; emoji style; # (6.0) HEADPHONE
+1F3AC FE0E ; text style; # (6.0) CLAPPER BOARD
+1F3AC FE0F ; emoji style; # (6.0) CLAPPER BOARD
+1F3AD FE0E ; text style; # (6.0) PERFORMING ARTS
+1F3AD FE0F ; emoji style; # (6.0) PERFORMING ARTS
+1F3AE FE0E ; text style; # (6.0) VIDEO GAME
+1F3AE FE0F ; emoji style; # (6.0) VIDEO GAME
+1F3C2 FE0E ; text style; # (6.0) SNOWBOARDER
+1F3C2 FE0F ; emoji style; # (6.0) SNOWBOARDER
+1F3C4 FE0E ; text style; # (6.0) SURFER
+1F3C4 FE0F ; emoji style; # (6.0) SURFER
+1F3C6 FE0E ; text style; # (6.0) TROPHY
+1F3C6 FE0F ; emoji style; # (6.0) TROPHY
+1F3CA FE0E ; text style; # (6.0) SWIMMER
+1F3CA FE0F ; emoji style; # (6.0) SWIMMER
+1F3CB FE0E ; text style; # (7.0) WEIGHT LIFTER
+1F3CB FE0F ; emoji style; # (7.0) WEIGHT LIFTER
+1F3CC FE0E ; text style; # (7.0) GOLFER
+1F3CC FE0F ; emoji style; # (7.0) GOLFER
+1F3CD FE0E ; text style; # (7.0) RACING MOTORCYCLE
+1F3CD FE0F ; emoji style; # (7.0) RACING MOTORCYCLE
+1F3CE FE0E ; text style; # (7.0) RACING CAR
+1F3CE FE0F ; emoji style; # (7.0) RACING CAR
+1F3D4 FE0E ; text style; # (7.0) SNOW CAPPED MOUNTAIN
+1F3D4 FE0F ; emoji style; # (7.0) SNOW CAPPED MOUNTAIN
+1F3D5 FE0E ; text style; # (7.0) CAMPING
+1F3D5 FE0F ; emoji style; # (7.0) CAMPING
+1F3D6 FE0E ; text style; # (7.0) BEACH WITH UMBRELLA
+1F3D6 FE0F ; emoji style; # (7.0) BEACH WITH UMBRELLA
+1F3D7 FE0E ; text style; # (7.0) BUILDING CONSTRUCTION
+1F3D7 FE0F ; emoji style; # (7.0) BUILDING CONSTRUCTION
+1F3D8 FE0E ; text style; # (7.0) HOUSE BUILDINGS
+1F3D8 FE0F ; emoji style; # (7.0) HOUSE BUILDINGS
+1F3D9 FE0E ; text style; # (7.0) CITYSCAPE
+1F3D9 FE0F ; emoji style; # (7.0) CITYSCAPE
+1F3DA FE0E ; text style; # (7.0) DERELICT HOUSE BUILDING
+1F3DA FE0F ; emoji style; # (7.0) DERELICT HOUSE BUILDING
+1F3DB FE0E ; text style; # (7.0) CLASSICAL BUILDING
+1F3DB FE0F ; emoji style; # (7.0) CLASSICAL BUILDING
+1F3DC FE0E ; text style; # (7.0) DESERT
+1F3DC FE0F ; emoji style; # (7.0) DESERT
+1F3DD FE0E ; text style; # (7.0) DESERT ISLAND
+1F3DD FE0F ; emoji style; # (7.0) DESERT ISLAND
+1F3DE FE0E ; text style; # (7.0) NATIONAL PARK
+1F3DE FE0F ; emoji style; # (7.0) NATIONAL PARK
+1F3DF FE0E ; text style; # (7.0) STADIUM
+1F3DF FE0F ; emoji style; # (7.0) STADIUM
+1F3E0 FE0E ; text style; # (6.0) HOUSE BUILDING
+1F3E0 FE0F ; emoji style; # (6.0) HOUSE BUILDING
+1F3ED FE0E ; text style; # (6.0) FACTORY
+1F3ED FE0F ; emoji style; # (6.0) FACTORY
+1F3F3 FE0E ; text style; # (7.0) WAVING WHITE FLAG
+1F3F3 FE0F ; emoji style; # (7.0) WAVING WHITE FLAG
+1F3F5 FE0E ; text style; # (7.0) ROSETTE
+1F3F5 FE0F ; emoji style; # (7.0) ROSETTE
+1F3F7 FE0E ; text style; # (7.0) LABEL
+1F3F7 FE0F ; emoji style; # (7.0) LABEL
+1F408 FE0E ; text style; # (6.0) CAT
+1F408 FE0F ; emoji style; # (6.0) CAT
+1F415 FE0E ; text style; # (6.0) DOG
+1F415 FE0F ; emoji style; # (6.0) DOG
+1F41F FE0E ; text style; # (6.0) FISH
+1F41F FE0F ; emoji style; # (6.0) FISH
+1F426 FE0E ; text style; # (6.0) BIRD
+1F426 FE0F ; emoji style; # (6.0) BIRD
+1F43F FE0E ; text style; # (7.0) CHIPMUNK
+1F43F FE0F ; emoji style; # (7.0) CHIPMUNK
+1F441 FE0E ; text style; # (7.0) EYE
+1F441 FE0F ; emoji style; # (7.0) EYE
+1F442 FE0E ; text style; # (6.0) EAR
+1F442 FE0F ; emoji style; # (6.0) EAR
+1F446 FE0E ; text style; # (6.0) WHITE UP POINTING BACKHAND INDEX
+1F446 FE0F ; emoji style; # (6.0) WHITE UP POINTING BACKHAND INDEX
+1F447 FE0E ; text style; # (6.0) WHITE DOWN POINTING BACKHAND INDEX
+1F447 FE0F ; emoji style; # (6.0) WHITE DOWN POINTING BACKHAND INDEX
+1F448 FE0E ; text style; # (6.0) WHITE LEFT POINTING BACKHAND INDEX
+1F448 FE0F ; emoji style; # (6.0) WHITE LEFT POINTING BACKHAND INDEX
+1F449 FE0E ; text style; # (6.0) WHITE RIGHT POINTING BACKHAND INDEX
+1F449 FE0F ; emoji style; # (6.0) WHITE RIGHT POINTING BACKHAND INDEX
+1F44D FE0E ; text style; # (6.0) THUMBS UP SIGN
+1F44D FE0F ; emoji style; # (6.0) THUMBS UP SIGN
+1F44E FE0E ; text style; # (6.0) THUMBS DOWN SIGN
+1F44E FE0F ; emoji style; # (6.0) THUMBS DOWN SIGN
+1F453 FE0E ; text style; # (6.0) EYEGLASSES
+1F453 FE0F ; emoji style; # (6.0) EYEGLASSES
+1F46A FE0E ; text style; # (6.0) FAMILY
+1F46A FE0F ; emoji style; # (6.0) FAMILY
+1F47D FE0E ; text style; # (6.0) EXTRATERRESTRIAL ALIEN
+1F47D FE0F ; emoji style; # (6.0) EXTRATERRESTRIAL ALIEN
+1F4A3 FE0E ; text style; # (6.0) BOMB
+1F4A3 FE0F ; emoji style; # (6.0) BOMB
+1F4B0 FE0E ; text style; # (6.0) MONEY BAG
+1F4B0 FE0F ; emoji style; # (6.0) MONEY BAG
+1F4B3 FE0E ; text style; # (6.0) CREDIT CARD
+1F4B3 FE0F ; emoji style; # (6.0) CREDIT CARD
+1F4BB FE0E ; text style; # (6.0) PERSONAL COMPUTER
+1F4BB FE0F ; emoji style; # (6.0) PERSONAL COMPUTER
+1F4BF FE0E ; text style; # (6.0) OPTICAL DISC
+1F4BF FE0F ; emoji style; # (6.0) OPTICAL DISC
+1F4CB FE0E ; text style; # (6.0) CLIPBOARD
+1F4CB FE0F ; emoji style; # (6.0) CLIPBOARD
+1F4DA FE0E ; text style; # (6.0) BOOKS
+1F4DA FE0F ; emoji style; # (6.0) BOOKS
+1F4DF FE0E ; text style; # (6.0) PAGER
+1F4DF FE0F ; emoji style; # (6.0) PAGER
+1F4E4 FE0E ; text style; # (6.0) OUTBOX TRAY
+1F4E4 FE0F ; emoji style; # (6.0) OUTBOX TRAY
+1F4E5 FE0E ; text style; # (6.0) INBOX TRAY
+1F4E5 FE0F ; emoji style; # (6.0) INBOX TRAY
+1F4E6 FE0E ; text style; # (6.0) PACKAGE
+1F4E6 FE0F ; emoji style; # (6.0) PACKAGE
+1F4EA FE0E ; text style; # (6.0) CLOSED MAILBOX WITH LOWERED FLAG
+1F4EA FE0F ; emoji style; # (6.0) CLOSED MAILBOX WITH LOWERED FLAG
+1F4EB FE0E ; text style; # (6.0) CLOSED MAILBOX WITH RAISED FLAG
+1F4EB FE0F ; emoji style; # (6.0) CLOSED MAILBOX WITH RAISED FLAG
+1F4EC FE0E ; text style; # (6.0) OPEN MAILBOX WITH RAISED FLAG
+1F4EC FE0F ; emoji style; # (6.0) OPEN MAILBOX WITH RAISED FLAG
+1F4ED FE0E ; text style; # (6.0) OPEN MAILBOX WITH LOWERED FLAG
+1F4ED FE0F ; emoji style; # (6.0) OPEN MAILBOX WITH LOWERED FLAG
+1F4F7 FE0E ; text style; # (6.0) CAMERA
+1F4F7 FE0F ; emoji style; # (6.0) CAMERA
+1F4F9 FE0E ; text style; # (6.0) VIDEO CAMERA
+1F4F9 FE0F ; emoji style; # (6.0) VIDEO CAMERA
+1F4FA FE0E ; text style; # (6.0) TELEVISION
+1F4FA FE0F ; emoji style; # (6.0) TELEVISION
+1F4FB FE0E ; text style; # (6.0) RADIO
+1F4FB FE0F ; emoji style; # (6.0) RADIO
+1F4FD FE0E ; text style; # (7.0) FILM PROJECTOR
+1F4FD FE0F ; emoji style; # (7.0) FILM PROJECTOR
+1F508 FE0E ; text style; # (6.0) SPEAKER
+1F508 FE0F ; emoji style; # (6.0) SPEAKER
+1F50D FE0E ; text style; # (6.0) LEFT-POINTING MAGNIFYING GLASS
+1F50D FE0F ; emoji style; # (6.0) LEFT-POINTING MAGNIFYING GLASS
+1F512 FE0E ; text style; # (6.0) LOCK
+1F512 FE0F ; emoji style; # (6.0) LOCK
+1F513 FE0E ; text style; # (6.0) OPEN LOCK
+1F513 FE0F ; emoji style; # (6.0) OPEN LOCK
+1F549 FE0E ; text style; # (7.0) OM SYMBOL
+1F549 FE0F ; emoji style; # (7.0) OM SYMBOL
+1F54A FE0E ; text style; # (7.0) DOVE OF PEACE
+1F54A FE0F ; emoji style; # (7.0) DOVE OF PEACE
+1F550 FE0E ; text style; # (6.0) CLOCK FACE ONE OCLOCK
+1F550 FE0F ; emoji style; # (6.0) CLOCK FACE ONE OCLOCK
+1F551 FE0E ; text style; # (6.0) CLOCK FACE TWO OCLOCK
+1F551 FE0F ; emoji style; # (6.0) CLOCK FACE TWO OCLOCK
+1F552 FE0E ; text style; # (6.0) CLOCK FACE THREE OCLOCK
+1F552 FE0F ; emoji style; # (6.0) CLOCK FACE THREE OCLOCK
+1F553 FE0E ; text style; # (6.0) CLOCK FACE FOUR OCLOCK
+1F553 FE0F ; emoji style; # (6.0) CLOCK FACE FOUR OCLOCK
+1F554 FE0E ; text style; # (6.0) CLOCK FACE FIVE OCLOCK
+1F554 FE0F ; emoji style; # (6.0) CLOCK FACE FIVE OCLOCK
+1F555 FE0E ; text style; # (6.0) CLOCK FACE SIX OCLOCK
+1F555 FE0F ; emoji style; # (6.0) CLOCK FACE SIX OCLOCK
+1F556 FE0E ; text style; # (6.0) CLOCK FACE SEVEN OCLOCK
+1F556 FE0F ; emoji style; # (6.0) CLOCK FACE SEVEN OCLOCK
+1F557 FE0E ; text style; # (6.0) CLOCK FACE EIGHT OCLOCK
+1F557 FE0F ; emoji style; # (6.0) CLOCK FACE EIGHT OCLOCK
+1F558 FE0E ; text style; # (6.0) CLOCK FACE NINE OCLOCK
+1F558 FE0F ; emoji style; # (6.0) CLOCK FACE NINE OCLOCK
+1F559 FE0E ; text style; # (6.0) CLOCK FACE TEN OCLOCK
+1F559 FE0F ; emoji style; # (6.0) CLOCK FACE TEN OCLOCK
+1F55A FE0E ; text style; # (6.0) CLOCK FACE ELEVEN OCLOCK
+1F55A FE0F ; emoji style; # (6.0) CLOCK FACE ELEVEN OCLOCK
+1F55B FE0E ; text style; # (6.0) CLOCK FACE TWELVE OCLOCK
+1F55B FE0F ; emoji style; # (6.0) CLOCK FACE TWELVE OCLOCK
+1F55C FE0E ; text style; # (6.0) CLOCK FACE ONE-THIRTY
+1F55C FE0F ; emoji style; # (6.0) CLOCK FACE ONE-THIRTY
+1F55D FE0E ; text style; # (6.0) CLOCK FACE TWO-THIRTY
+1F55D FE0F ; emoji style; # (6.0) CLOCK FACE TWO-THIRTY
+1F55E FE0E ; text style; # (6.0) CLOCK FACE THREE-THIRTY
+1F55E FE0F ; emoji style; # (6.0) CLOCK FACE THREE-THIRTY
+1F55F FE0E ; text style; # (6.0) CLOCK FACE FOUR-THIRTY
+1F55F FE0F ; emoji style; # (6.0) CLOCK FACE FOUR-THIRTY
+1F560 FE0E ; text style; # (6.0) CLOCK FACE FIVE-THIRTY
+1F560 FE0F ; emoji style; # (6.0) CLOCK FACE FIVE-THIRTY
+1F561 FE0E ; text style; # (6.0) CLOCK FACE SIX-THIRTY
+1F561 FE0F ; emoji style; # (6.0) CLOCK FACE SIX-THIRTY
+1F562 FE0E ; text style; # (6.0) CLOCK FACE SEVEN-THIRTY
+1F562 FE0F ; emoji style; # (6.0) CLOCK FACE SEVEN-THIRTY
+1F563 FE0E ; text style; # (6.0) CLOCK FACE EIGHT-THIRTY
+1F563 FE0F ; emoji style; # (6.0) CLOCK FACE EIGHT-THIRTY
+1F564 FE0E ; text style; # (6.0) CLOCK FACE NINE-THIRTY
+1F564 FE0F ; emoji style; # (6.0) CLOCK FACE NINE-THIRTY
+1F565 FE0E ; text style; # (6.0) CLOCK FACE TEN-THIRTY
+1F565 FE0F ; emoji style; # (6.0) CLOCK FACE TEN-THIRTY
+1F566 FE0E ; text style; # (6.0) CLOCK FACE ELEVEN-THIRTY
+1F566 FE0F ; emoji style; # (6.0) CLOCK FACE ELEVEN-THIRTY
+1F567 FE0E ; text style; # (6.0) CLOCK FACE TWELVE-THIRTY
+1F567 FE0F ; emoji style; # (6.0) CLOCK FACE TWELVE-THIRTY
+1F56F FE0E ; text style; # (7.0) CANDLE
+1F56F FE0F ; emoji style; # (7.0) CANDLE
+1F570 FE0E ; text style; # (7.0) MANTELPIECE CLOCK
+1F570 FE0F ; emoji style; # (7.0) MANTELPIECE CLOCK
+1F573 FE0E ; text style; # (7.0) HOLE
+1F573 FE0F ; emoji style; # (7.0) HOLE
+1F574 FE0E ; text style; # (7.0) MAN IN BUSINESS SUIT LEVITATING
+1F574 FE0F ; emoji style; # (7.0) MAN IN BUSINESS SUIT LEVITATING
+1F575 FE0E ; text style; # (7.0) SLEUTH OR SPY
+1F575 FE0F ; emoji style; # (7.0) SLEUTH OR SPY
+1F576 FE0E ; text style; # (7.0) DARK SUNGLASSES
+1F576 FE0F ; emoji style; # (7.0) DARK SUNGLASSES
+1F577 FE0E ; text style; # (7.0) SPIDER
+1F577 FE0F ; emoji style; # (7.0) SPIDER
+1F578 FE0E ; text style; # (7.0) SPIDER WEB
+1F578 FE0F ; emoji style; # (7.0) SPIDER WEB
+1F579 FE0E ; text style; # (7.0) JOYSTICK
+1F579 FE0F ; emoji style; # (7.0) JOYSTICK
+1F587 FE0E ; text style; # (7.0) LINKED PAPERCLIPS
+1F587 FE0F ; emoji style; # (7.0) LINKED PAPERCLIPS
+1F58A FE0E ; text style; # (7.0) LOWER LEFT BALLPOINT PEN
+1F58A FE0F ; emoji style; # (7.0) LOWER LEFT BALLPOINT PEN
+1F58B FE0E ; text style; # (7.0) LOWER LEFT FOUNTAIN PEN
+1F58B FE0F ; emoji style; # (7.0) LOWER LEFT FOUNTAIN PEN
+1F58C FE0E ; text style; # (7.0) LOWER LEFT PAINTBRUSH
+1F58C FE0F ; emoji style; # (7.0) LOWER LEFT PAINTBRUSH
+1F58D FE0E ; text style; # (7.0) LOWER LEFT CRAYON
+1F58D FE0F ; emoji style; # (7.0) LOWER LEFT CRAYON
+1F590 FE0E ; text style; # (7.0) RAISED HAND WITH FINGERS SPLAYED
+1F590 FE0F ; emoji style; # (7.0) RAISED HAND WITH FINGERS SPLAYED
+1F5A5 FE0E ; text style; # (7.0) DESKTOP COMPUTER
+1F5A5 FE0F ; emoji style; # (7.0) DESKTOP COMPUTER
+1F5A8 FE0E ; text style; # (7.0) PRINTER
+1F5A8 FE0F ; emoji style; # (7.0) PRINTER
+1F5B1 FE0E ; text style; # (7.0) THREE BUTTON MOUSE
+1F5B1 FE0F ; emoji style; # (7.0) THREE BUTTON MOUSE
+1F5B2 FE0E ; text style; # (7.0) TRACKBALL
+1F5B2 FE0F ; emoji style; # (7.0) TRACKBALL
+1F5BC FE0E ; text style; # (7.0) FRAME WITH PICTURE
+1F5BC FE0F ; emoji style; # (7.0) FRAME WITH PICTURE
+1F5C2 FE0E ; text style; # (7.0) CARD INDEX DIVIDERS
+1F5C2 FE0F ; emoji style; # (7.0) CARD INDEX DIVIDERS
+1F5C3 FE0E ; text style; # (7.0) CARD FILE BOX
+1F5C3 FE0F ; emoji style; # (7.0) CARD FILE BOX
+1F5C4 FE0E ; text style; # (7.0) FILE CABINET
+1F5C4 FE0F ; emoji style; # (7.0) FILE CABINET
+1F5D1 FE0E ; text style; # (7.0) WASTEBASKET
+1F5D1 FE0F ; emoji style; # (7.0) WASTEBASKET
+1F5D2 FE0E ; text style; # (7.0) SPIRAL NOTE PAD
+1F5D2 FE0F ; emoji style; # (7.0) SPIRAL NOTE PAD
+1F5D3 FE0E ; text style; # (7.0) SPIRAL CALENDAR PAD
+1F5D3 FE0F ; emoji style; # (7.0) SPIRAL CALENDAR PAD
+1F5DC FE0E ; text style; # (7.0) COMPRESSION
+1F5DC FE0F ; emoji style; # (7.0) COMPRESSION
+1F5DD FE0E ; text style; # (7.0) OLD KEY
+1F5DD FE0F ; emoji style; # (7.0) OLD KEY
+1F5DE FE0E ; text style; # (7.0) ROLLED-UP NEWSPAPER
+1F5DE FE0F ; emoji style; # (7.0) ROLLED-UP NEWSPAPER
+1F5E1 FE0E ; text style; # (7.0) DAGGER KNIFE
+1F5E1 FE0F ; emoji style; # (7.0) DAGGER KNIFE
+1F5E3 FE0E ; text style; # (7.0) SPEAKING HEAD IN SILHOUETTE
+1F5E3 FE0F ; emoji style; # (7.0) SPEAKING HEAD IN SILHOUETTE
+1F5E8 FE0E ; text style; # (7.0) LEFT SPEECH BUBBLE
+1F5E8 FE0F ; emoji style; # (7.0) LEFT SPEECH BUBBLE
+1F5EF FE0E ; text style; # (7.0) RIGHT ANGER BUBBLE
+1F5EF FE0F ; emoji style; # (7.0) RIGHT ANGER BUBBLE
+1F5F3 FE0E ; text style; # (7.0) BALLOT BOX WITH BALLOT
+1F5F3 FE0F ; emoji style; # (7.0) BALLOT BOX WITH BALLOT
+1F5FA FE0E ; text style; # (7.0) WORLD MAP
+1F5FA FE0F ; emoji style; # (7.0) WORLD MAP
+1F610 FE0E ; text style; # (6.0) NEUTRAL FACE
+1F610 FE0F ; emoji style; # (6.0) NEUTRAL FACE
+1F687 FE0E ; text style; # (6.0) METRO
+1F687 FE0F ; emoji style; # (6.0) METRO
+1F68D FE0E ; text style; # (6.0) ONCOMING BUS
+1F68D FE0F ; emoji style; # (6.0) ONCOMING BUS
+1F691 FE0E ; text style; # (6.0) AMBULANCE
+1F691 FE0F ; emoji style; # (6.0) AMBULANCE
+1F694 FE0E ; text style; # (6.0) ONCOMING POLICE CAR
+1F694 FE0F ; emoji style; # (6.0) ONCOMING POLICE CAR
+1F698 FE0E ; text style; # (6.0) ONCOMING AUTOMOBILE
+1F698 FE0F ; emoji style; # (6.0) ONCOMING AUTOMOBILE
+1F6AD FE0E ; text style; # (6.0) NO SMOKING SYMBOL
+1F6AD FE0F ; emoji style; # (6.0) NO SMOKING SYMBOL
+1F6B2 FE0E ; text style; # (6.0) BICYCLE
+1F6B2 FE0F ; emoji style; # (6.0) BICYCLE
+1F6B9 FE0E ; text style; # (6.0) MENS SYMBOL
+1F6B9 FE0F ; emoji style; # (6.0) MENS SYMBOL
+1F6BA FE0E ; text style; # (6.0) WOMENS SYMBOL
+1F6BA FE0F ; emoji style; # (6.0) WOMENS SYMBOL
+1F6BC FE0E ; text style; # (6.0) BABY SYMBOL
+1F6BC FE0F ; emoji style; # (6.0) BABY SYMBOL
+1F6CB FE0E ; text style; # (7.0) COUCH AND LAMP
+1F6CB FE0F ; emoji style; # (7.0) COUCH AND LAMP
+1F6CD FE0E ; text style; # (7.0) SHOPPING BAGS
+1F6CD FE0F ; emoji style; # (7.0) SHOPPING BAGS
+1F6CE FE0E ; text style; # (7.0) BELLHOP BELL
+1F6CE FE0F ; emoji style; # (7.0) BELLHOP BELL
+1F6CF FE0E ; text style; # (7.0) BED
+1F6CF FE0F ; emoji style; # (7.0) BED
+1F6E0 FE0E ; text style; # (7.0) HAMMER AND WRENCH
+1F6E0 FE0F ; emoji style; # (7.0) HAMMER AND WRENCH
+1F6E1 FE0E ; text style; # (7.0) SHIELD
+1F6E1 FE0F ; emoji style; # (7.0) SHIELD
+1F6E2 FE0E ; text style; # (7.0) OIL DRUM
+1F6E2 FE0F ; emoji style; # (7.0) OIL DRUM
+1F6E3 FE0E ; text style; # (7.0) MOTORWAY
+1F6E3 FE0F ; emoji style; # (7.0) MOTORWAY
+1F6E4 FE0E ; text style; # (7.0) RAILWAY TRACK
+1F6E4 FE0F ; emoji style; # (7.0) RAILWAY TRACK
+1F6E5 FE0E ; text style; # (7.0) MOTOR BOAT
+1F6E5 FE0F ; emoji style; # (7.0) MOTOR BOAT
+1F6E9 FE0E ; text style; # (7.0) SMALL AIRPLANE
+1F6E9 FE0F ; emoji style; # (7.0) SMALL AIRPLANE
+1F6F0 FE0E ; text style; # (7.0) SATELLITE
+1F6F0 FE0F ; emoji style; # (7.0) SATELLITE
+1F6F3 FE0E ; text style; # (7.0) PASSENGER SHIP
+1F6F3 FE0F ; emoji style; # (7.0) PASSENGER SHIP
-#Total sequences: 354
+#Total sequences: 371
#EOF
diff --git a/admin/unidata/emoji-zwj-sequences.txt b/admin/unidata/emoji-zwj-sequences.txt
index 4125bec62e2..25f8b6154b5 100644
--- a/admin/unidata/emoji-zwj-sequences.txt
+++ b/admin/unidata/emoji-zwj-sequences.txt
@@ -1,11 +1,11 @@
# emoji-zwj-sequences.txt
-# Date: 2022-05-06, 16:14:52 GMT
-# © 2022 Unicode®, Inc.
+# Date: 2023-06-05, 20:04:50 GMT
+# © 2023 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 https://www.unicode.org/terms_of_use.html
#
# Emoji ZWJ Sequences for UTS #51
-# Version: 15.0
+# Version: 15.1
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
@@ -269,6 +269,10 @@
1F469 1F3FF 200D 1F91D 200D 1F469 1F3FD ; RGI_Emoji_ZWJ_Sequence ; women holding hands: dark skin tone, medium skin tone # E12.0 [1] (👩🏿‍🤝‍👩🏽)
1F469 1F3FF 200D 1F91D 200D 1F469 1F3FE ; RGI_Emoji_ZWJ_Sequence ; women holding hands: dark skin tone, medium-dark skin tone # E12.0 [1] (👩🏿‍🤝‍👩🏾)
1F9D1 200D 1F91D 200D 1F9D1 ; RGI_Emoji_ZWJ_Sequence ; people holding hands # E12.0 [1] (🧑‍🤝‍🧑)
+1F9D1 200D 1F9D1 200D 1F9D2 ; RGI_Emoji_ZWJ_Sequence ; family: adult, adult, child # E15.1 [1] (🧑‍🧑‍🧒)
+1F9D1 200D 1F9D1 200D 1F9D2 200D 1F9D2 ; RGI_Emoji_ZWJ_Sequence ; family: adult, adult, child, child # E15.1 [1] (🧑‍🧑‍🧒‍🧒)
+1F9D1 200D 1F9D2 ; RGI_Emoji_ZWJ_Sequence ; family: adult, child # E15.1 [1] (🧑‍🧒)
+1F9D1 200D 1F9D2 200D 1F9D2 ; RGI_Emoji_ZWJ_Sequence ; family: adult, child, child # E15.1 [1] (🧑‍🧒‍🧒)
1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC; RGI_Emoji_ZWJ_Sequence; kiss: person, person, light skin tone, medium-light skin tone #E13.1[1] (🧑🏻‍❤️‍💋‍🧑🏼)
1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD; RGI_Emoji_ZWJ_Sequence; kiss: person, person, light skin tone, medium skin tone #E13.1 [1] (🧑🏻‍❤️‍💋‍🧑🏽)
1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE; RGI_Emoji_ZWJ_Sequence; kiss: person, person, light skin tone, medium-dark skin tone #E13.1[1] (🧑🏻‍❤️‍💋‍🧑🏾)
@@ -277,7 +281,6 @@
1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, light skin tone, medium skin tone #E13.1[1] (🧑🏻‍❤️‍🧑🏽)
1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FE ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, light skin tone, medium-dark skin tone #E13.1[1] (🧑🏻‍❤️‍🧑🏾)
1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FF ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, light skin tone, dark skin tone #E13.1[1] (🧑🏻‍❤️‍🧑🏿)
-1F9D1 1F3FB 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: light skin tone # E13.0 [1] (🧑🏻‍🎄)
1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FB ; RGI_Emoji_ZWJ_Sequence ; people holding hands: light skin tone # E12.0 [1] (🧑🏻‍🤝‍🧑🏻)
1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; people holding hands: light skin tone, medium-light skin tone # E12.1 [1] (🧑🏻‍🤝‍🧑🏼)
1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; people holding hands: light skin tone, medium skin tone # E12.1 [1] (🧑🏻‍🤝‍🧑🏽)
@@ -291,7 +294,6 @@
1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-light skin tone, medium skin tone #E13.1[1] (🧑🏼‍❤️‍🧑🏽)
1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FE ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-light skin tone, medium-dark skin tone #E13.1[1] (🧑🏼‍❤️‍🧑🏾)
1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FF ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-light skin tone, dark skin tone #E13.1[1] (🧑🏼‍❤️‍🧑🏿)
-1F9D1 1F3FC 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium-light skin tone # E13.0 [1] (🧑🏼‍🎄)
1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FB ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-light skin tone, light skin tone # E12.0 [1] (🧑🏼‍🤝‍🧑🏻)
1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-light skin tone # E12.0 [1] (🧑🏼‍🤝‍🧑🏼)
1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-light skin tone, medium skin tone # E12.1 [1] (🧑🏼‍🤝‍🧑🏽)
@@ -305,7 +307,6 @@
1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium skin tone, medium-light skin tone #E13.1[1] (🧑🏽‍❤️‍🧑🏼)
1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FE ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium skin tone, medium-dark skin tone #E13.1[1] (🧑🏽‍❤️‍🧑🏾)
1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FF ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium skin tone, dark skin tone #E13.1[1] (🧑🏽‍❤️‍🧑🏿)
-1F9D1 1F3FD 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium skin tone # E13.0 [1] (🧑🏽‍🎄)
1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium skin tone, light skin tone # E12.0 [1] (🧑🏽‍🤝‍🧑🏻)
1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium skin tone, medium-light skin tone # E12.0 [1] (🧑🏽‍🤝‍🧑🏼)
1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium skin tone # E12.0 [1] (🧑🏽‍🤝‍🧑🏽)
@@ -319,7 +320,6 @@
1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-dark skin tone, medium-light skin tone #E13.1[1] (🧑🏾‍❤️‍🧑🏼)
1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-dark skin tone, medium skin tone #E13.1[1] (🧑🏾‍❤️‍🧑🏽)
1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FF ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, medium-dark skin tone, dark skin tone #E13.1[1] (🧑🏾‍❤️‍🧑🏿)
-1F9D1 1F3FE 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium-dark skin tone # E13.0 [1] (🧑🏾‍🎄)
1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FB ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-dark skin tone, light skin tone # E12.0 [1] (🧑🏾‍🤝‍🧑🏻)
1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-dark skin tone, medium-light skin tone #E12.0[1] (🧑🏾‍🤝‍🧑🏼)
1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; people holding hands: medium-dark skin tone, medium skin tone # E12.0 [1] (🧑🏾‍🤝‍🧑🏽)
@@ -333,7 +333,6 @@
1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, dark skin tone, medium-light skin tone #E13.1[1] (🧑🏿‍❤️‍🧑🏼)
1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, dark skin tone, medium skin tone #E13.1[1] (🧑🏿‍❤️‍🧑🏽)
1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FE ; RGI_Emoji_ZWJ_Sequence ; couple with heart: person, person, dark skin tone, medium-dark skin tone #E13.1[1] (🧑🏿‍❤️‍🧑🏾)
-1F9D1 1F3FF 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: dark skin tone # E13.0 [1] (🧑🏿‍🎄)
1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FB ; RGI_Emoji_ZWJ_Sequence ; people holding hands: dark skin tone, light skin tone # E12.0 [1] (🧑🏿‍🤝‍🧑🏻)
1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FC ; RGI_Emoji_ZWJ_Sequence ; people holding hands: dark skin tone, medium-light skin tone # E12.0 [1] (🧑🏿‍🤝‍🧑🏼)
1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FD ; RGI_Emoji_ZWJ_Sequence ; people holding hands: dark skin tone, medium skin tone # E12.0 [1] (🧑🏿‍🤝‍🧑🏽)
@@ -360,12 +359,18 @@
1FAF1 1F3FF 200D 1FAF2 1F3FD ; RGI_Emoji_ZWJ_Sequence ; handshake: dark skin tone, medium skin tone # E14.0 [1] (🫱🏿‍🫲🏽)
1FAF1 1F3FF 200D 1FAF2 1F3FE ; RGI_Emoji_ZWJ_Sequence ; handshake: dark skin tone, medium-dark skin tone # E14.0 [1] (🫱🏿‍🫲🏾)
-# Total elements: 332
+# Total elements: 331
# ================================================
# RGI_Emoji_ZWJ_Sequence: Role
+1F3C3 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right # E15.1 [1] (🏃‍➡️)
+1F3C3 1F3FB 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right: light skin tone # E15.1 [1] (🏃🏻‍➡️)
+1F3C3 1F3FC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right: medium-light skin tone # E15.1 [1] (🏃🏼‍➡️)
+1F3C3 1F3FD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right: medium skin tone # E15.1 [1] (🏃🏽‍➡️)
+1F3C3 1F3FE 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right: medium-dark skin tone # E15.1 [1] (🏃🏾‍➡️)
+1F3C3 1F3FF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person running facing right: dark skin tone # E15.1 [1] (🏃🏿‍➡️)
1F468 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker # E4.0 [1] (👨‍⚕️)
1F468 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge # E4.0 [1] (👨‍⚖️)
1F468 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot # E4.0 [1] (👨‍✈️)
@@ -384,8 +389,11 @@
1F468 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut # E4.0 [1] (👨‍🚀)
1F468 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter # E4.0 [1] (👨‍🚒)
1F468 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane # E12.0 [1] (👨‍🦯)
+1F468 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right # E15.1 [1] (👨‍🦯‍➡️)
1F468 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair # E12.0 [1] (👨‍🦼)
+1F468 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right # E15.1 [1] (👨‍🦼‍➡️)
1F468 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair # E12.0 [1] (👨‍🦽)
+1F468 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right # E15.1 [1] (👨‍🦽‍➡️)
1F468 1F3FB 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker: light skin tone # E4.0 [1] (👨🏻‍⚕️)
1F468 1F3FB 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge: light skin tone # E4.0 [1] (👨🏻‍⚖️)
1F468 1F3FB 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot: light skin tone # E4.0 [1] (👨🏻‍✈️)
@@ -404,8 +412,11 @@
1F468 1F3FB 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut: light skin tone # E4.0 [1] (👨🏻‍🚀)
1F468 1F3FB 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter: light skin tone # E4.0 [1] (👨🏻‍🚒)
1F468 1F3FB 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane: light skin tone # E12.0 [1] (👨🏻‍🦯)
+1F468 1F3FB 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right: light skin tone # E15.1 [1] (👨🏻‍🦯‍➡️)
1F468 1F3FB 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair: light skin tone # E12.0 [1] (👨🏻‍🦼)
+1F468 1F3FB 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right: light skin tone # E15.1 [1] (👨🏻‍🦼‍➡️)
1F468 1F3FB 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair: light skin tone # E12.0 [1] (👨🏻‍🦽)
+1F468 1F3FB 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right: light skin tone # E15.1 [1] (👨🏻‍🦽‍➡️)
1F468 1F3FC 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker: medium-light skin tone # E4.0 [1] (👨🏼‍⚕️)
1F468 1F3FC 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge: medium-light skin tone # E4.0 [1] (👨🏼‍⚖️)
1F468 1F3FC 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot: medium-light skin tone # E4.0 [1] (👨🏼‍✈️)
@@ -424,8 +435,11 @@
1F468 1F3FC 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut: medium-light skin tone # E4.0 [1] (👨🏼‍🚀)
1F468 1F3FC 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter: medium-light skin tone # E4.0 [1] (👨🏼‍🚒)
1F468 1F3FC 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane: medium-light skin tone # E12.0 [1] (👨🏼‍🦯)
+1F468 1F3FC 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right: medium-light skin tone # E15.1 [1] (👨🏼‍🦯‍➡️)
1F468 1F3FC 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair: medium-light skin tone # E12.0 [1] (👨🏼‍🦼)
+1F468 1F3FC 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right: medium-light skin tone #E15.1 [1] (👨🏼‍🦼‍➡️)
1F468 1F3FC 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair: medium-light skin tone # E12.0 [1] (👨🏼‍🦽)
+1F468 1F3FC 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right: medium-light skin tone # E15.1 [1] (👨🏼‍🦽‍➡️)
1F468 1F3FD 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker: medium skin tone # E4.0 [1] (👨🏽‍⚕️)
1F468 1F3FD 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge: medium skin tone # E4.0 [1] (👨🏽‍⚖️)
1F468 1F3FD 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot: medium skin tone # E4.0 [1] (👨🏽‍✈️)
@@ -444,8 +458,11 @@
1F468 1F3FD 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut: medium skin tone # E4.0 [1] (👨🏽‍🚀)
1F468 1F3FD 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter: medium skin tone # E4.0 [1] (👨🏽‍🚒)
1F468 1F3FD 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane: medium skin tone # E12.0 [1] (👨🏽‍🦯)
+1F468 1F3FD 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right: medium skin tone # E15.1 [1] (👨🏽‍🦯‍➡️)
1F468 1F3FD 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair: medium skin tone # E12.0 [1] (👨🏽‍🦼)
+1F468 1F3FD 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right: medium skin tone # E15.1 [1] (👨🏽‍🦼‍➡️)
1F468 1F3FD 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair: medium skin tone # E12.0 [1] (👨🏽‍🦽)
+1F468 1F3FD 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right: medium skin tone # E15.1 [1] (👨🏽‍🦽‍➡️)
1F468 1F3FE 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker: medium-dark skin tone # E4.0 [1] (👨🏾‍⚕️)
1F468 1F3FE 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge: medium-dark skin tone # E4.0 [1] (👨🏾‍⚖️)
1F468 1F3FE 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot: medium-dark skin tone # E4.0 [1] (👨🏾‍✈️)
@@ -464,8 +481,11 @@
1F468 1F3FE 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut: medium-dark skin tone # E4.0 [1] (👨🏾‍🚀)
1F468 1F3FE 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter: medium-dark skin tone # E4.0 [1] (👨🏾‍🚒)
1F468 1F3FE 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane: medium-dark skin tone # E12.0 [1] (👨🏾‍🦯)
+1F468 1F3FE 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right: medium-dark skin tone # E15.1 [1] (👨🏾‍🦯‍➡️)
1F468 1F3FE 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair: medium-dark skin tone # E12.0 [1] (👨🏾‍🦼)
+1F468 1F3FE 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right: medium-dark skin tone #E15.1 [1] (👨🏾‍🦼‍➡️)
1F468 1F3FE 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair: medium-dark skin tone # E12.0 [1] (👨🏾‍🦽)
+1F468 1F3FE 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right: medium-dark skin tone # E15.1 [1] (👨🏾‍🦽‍➡️)
1F468 1F3FF 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; man health worker: dark skin tone # E4.0 [1] (👨🏿‍⚕️)
1F468 1F3FF 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; man judge: dark skin tone # E4.0 [1] (👨🏿‍⚖️)
1F468 1F3FF 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; man pilot: dark skin tone # E4.0 [1] (👨🏿‍✈️)
@@ -484,8 +504,11 @@
1F468 1F3FF 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; man astronaut: dark skin tone # E4.0 [1] (👨🏿‍🚀)
1F468 1F3FF 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; man firefighter: dark skin tone # E4.0 [1] (👨🏿‍🚒)
1F468 1F3FF 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; man with white cane: dark skin tone # E12.0 [1] (👨🏿‍🦯)
+1F468 1F3FF 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man with white cane facing right: dark skin tone # E15.1 [1] (👨🏿‍🦯‍➡️)
1F468 1F3FF 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair: dark skin tone # E12.0 [1] (👨🏿‍🦼)
+1F468 1F3FF 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in motorized wheelchair facing right: dark skin tone # E15.1 [1] (👨🏿‍🦼‍➡️)
1F468 1F3FF 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair: dark skin tone # E12.0 [1] (👨🏿‍🦽)
+1F468 1F3FF 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man in manual wheelchair facing right: dark skin tone # E15.1 [1] (👨🏿‍🦽‍➡️)
1F469 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker # E4.0 [1] (👩‍⚕️)
1F469 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge # E4.0 [1] (👩‍⚖️)
1F469 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot # E4.0 [1] (👩‍✈️)
@@ -504,8 +527,11 @@
1F469 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut # E4.0 [1] (👩‍🚀)
1F469 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter # E4.0 [1] (👩‍🚒)
1F469 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane # E12.0 [1] (👩‍🦯)
+1F469 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right # E15.1 [1] (👩‍🦯‍➡️)
1F469 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair # E12.0 [1] (👩‍🦼)
+1F469 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right # E15.1 [1] (👩‍🦼‍➡️)
1F469 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair # E12.0 [1] (👩‍🦽)
+1F469 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right # E15.1 [1] (👩‍🦽‍➡️)
1F469 1F3FB 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker: light skin tone # E4.0 [1] (👩🏻‍⚕️)
1F469 1F3FB 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge: light skin tone # E4.0 [1] (👩🏻‍⚖️)
1F469 1F3FB 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot: light skin tone # E4.0 [1] (👩🏻‍✈️)
@@ -524,8 +550,11 @@
1F469 1F3FB 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut: light skin tone # E4.0 [1] (👩🏻‍🚀)
1F469 1F3FB 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter: light skin tone # E4.0 [1] (👩🏻‍🚒)
1F469 1F3FB 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane: light skin tone # E12.0 [1] (👩🏻‍🦯)
+1F469 1F3FB 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right: light skin tone # E15.1 [1] (👩🏻‍🦯‍➡️)
1F469 1F3FB 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair: light skin tone # E12.0 [1] (👩🏻‍🦼)
+1F469 1F3FB 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right: light skin tone # E15.1 [1] (👩🏻‍🦼‍➡️)
1F469 1F3FB 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair: light skin tone # E12.0 [1] (👩🏻‍🦽)
+1F469 1F3FB 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right: light skin tone # E15.1 [1] (👩🏻‍🦽‍➡️)
1F469 1F3FC 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker: medium-light skin tone # E4.0 [1] (👩🏼‍⚕️)
1F469 1F3FC 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge: medium-light skin tone # E4.0 [1] (👩🏼‍⚖️)
1F469 1F3FC 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot: medium-light skin tone # E4.0 [1] (👩🏼‍✈️)
@@ -544,8 +573,11 @@
1F469 1F3FC 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut: medium-light skin tone # E4.0 [1] (👩🏼‍🚀)
1F469 1F3FC 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter: medium-light skin tone # E4.0 [1] (👩🏼‍🚒)
1F469 1F3FC 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane: medium-light skin tone # E12.0 [1] (👩🏼‍🦯)
+1F469 1F3FC 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right: medium-light skin tone # E15.1 [1] (👩🏼‍🦯‍➡️)
1F469 1F3FC 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair: medium-light skin tone # E12.0 [1] (👩🏼‍🦼)
+1F469 1F3FC 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right: medium-light skin tone #E15.1[1] (👩🏼‍🦼‍➡️)
1F469 1F3FC 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair: medium-light skin tone # E12.0 [1] (👩🏼‍🦽)
+1F469 1F3FC 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right: medium-light skin tone #E15.1 [1] (👩🏼‍🦽‍➡️)
1F469 1F3FD 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker: medium skin tone # E4.0 [1] (👩🏽‍⚕️)
1F469 1F3FD 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge: medium skin tone # E4.0 [1] (👩🏽‍⚖️)
1F469 1F3FD 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot: medium skin tone # E4.0 [1] (👩🏽‍✈️)
@@ -564,8 +596,11 @@
1F469 1F3FD 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut: medium skin tone # E4.0 [1] (👩🏽‍🚀)
1F469 1F3FD 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter: medium skin tone # E4.0 [1] (👩🏽‍🚒)
1F469 1F3FD 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane: medium skin tone # E12.0 [1] (👩🏽‍🦯)
+1F469 1F3FD 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right: medium skin tone # E15.1 [1] (👩🏽‍🦯‍➡️)
1F469 1F3FD 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair: medium skin tone # E12.0 [1] (👩🏽‍🦼)
+1F469 1F3FD 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right: medium skin tone # E15.1 [1] (👩🏽‍🦼‍➡️)
1F469 1F3FD 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair: medium skin tone # E12.0 [1] (👩🏽‍🦽)
+1F469 1F3FD 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right: medium skin tone # E15.1 [1] (👩🏽‍🦽‍➡️)
1F469 1F3FE 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker: medium-dark skin tone # E4.0 [1] (👩🏾‍⚕️)
1F469 1F3FE 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge: medium-dark skin tone # E4.0 [1] (👩🏾‍⚖️)
1F469 1F3FE 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot: medium-dark skin tone # E4.0 [1] (👩🏾‍✈️)
@@ -584,8 +619,11 @@
1F469 1F3FE 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut: medium-dark skin tone # E4.0 [1] (👩🏾‍🚀)
1F469 1F3FE 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter: medium-dark skin tone # E4.0 [1] (👩🏾‍🚒)
1F469 1F3FE 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane: medium-dark skin tone # E12.0 [1] (👩🏾‍🦯)
+1F469 1F3FE 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right: medium-dark skin tone # E15.1 [1] (👩🏾‍🦯‍➡️)
1F469 1F3FE 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair: medium-dark skin tone # E12.0 [1] (👩🏾‍🦼)
+1F469 1F3FE 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right: medium-dark skin tone #E15.1[1] (👩🏾‍🦼‍➡️)
1F469 1F3FE 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair: medium-dark skin tone # E12.0 [1] (👩🏾‍🦽)
+1F469 1F3FE 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right: medium-dark skin tone # E15.1 [1] (👩🏾‍🦽‍➡️)
1F469 1F3FF 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman health worker: dark skin tone # E4.0 [1] (👩🏿‍⚕️)
1F469 1F3FF 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman judge: dark skin tone # E4.0 [1] (👩🏿‍⚖️)
1F469 1F3FF 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman pilot: dark skin tone # E4.0 [1] (👩🏿‍✈️)
@@ -604,14 +642,30 @@
1F469 1F3FF 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; woman astronaut: dark skin tone # E4.0 [1] (👩🏿‍🚀)
1F469 1F3FF 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; woman firefighter: dark skin tone # E4.0 [1] (👩🏿‍🚒)
1F469 1F3FF 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; woman with white cane: dark skin tone # E12.0 [1] (👩🏿‍🦯)
+1F469 1F3FF 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman with white cane facing right: dark skin tone # E15.1 [1] (👩🏿‍🦯‍➡️)
1F469 1F3FF 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair: dark skin tone # E12.0 [1] (👩🏿‍🦼)
+1F469 1F3FF 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in motorized wheelchair facing right: dark skin tone # E15.1 [1] (👩🏿‍🦼‍➡️)
1F469 1F3FF 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair: dark skin tone # E12.0 [1] (👩🏿‍🦽)
+1F469 1F3FF 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman in manual wheelchair facing right: dark skin tone # E15.1 [1] (👩🏿‍🦽‍➡️)
+1F6B6 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right # E15.1 [1] (🚶‍➡️)
+1F6B6 1F3FB 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right: light skin tone # E15.1 [1] (🚶🏻‍➡️)
+1F6B6 1F3FC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right: medium-light skin tone # E15.1 [1] (🚶🏼‍➡️)
+1F6B6 1F3FD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right: medium skin tone # E15.1 [1] (🚶🏽‍➡️)
+1F6B6 1F3FE 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right: medium-dark skin tone # E15.1 [1] (🚶🏾‍➡️)
+1F6B6 1F3FF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person walking facing right: dark skin tone # E15.1 [1] (🚶🏿‍➡️)
+1F9CE 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right # E15.1 [1] (🧎‍➡️)
+1F9CE 1F3FB 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right: light skin tone # E15.1 [1] (🧎🏻‍➡️)
+1F9CE 1F3FC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right: medium-light skin tone # E15.1 [1] (🧎🏼‍➡️)
+1F9CE 1F3FD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right: medium skin tone # E15.1 [1] (🧎🏽‍➡️)
+1F9CE 1F3FE 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right: medium-dark skin tone # E15.1 [1] (🧎🏾‍➡️)
+1F9CE 1F3FF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person kneeling facing right: dark skin tone # E15.1 [1] (🧎🏿‍➡️)
1F9D1 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker # E12.1 [1] (🧑‍⚕️)
1F9D1 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge # E12.1 [1] (🧑‍⚖️)
1F9D1 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot # E12.1 [1] (🧑‍✈️)
1F9D1 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer # E12.1 [1] (🧑‍🌾)
1F9D1 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook # E12.1 [1] (🧑‍🍳)
1F9D1 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby # E13.0 [1] (🧑‍🍼)
+1F9D1 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus # E13.0 [1] (🧑‍🎄)
1F9D1 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student # E12.1 [1] (🧑‍🎓)
1F9D1 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer # E12.1 [1] (🧑‍🎤)
1F9D1 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist # E12.1 [1] (🧑‍🎨)
@@ -624,14 +678,18 @@
1F9D1 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut # E12.1 [1] (🧑‍🚀)
1F9D1 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter # E12.1 [1] (🧑‍🚒)
1F9D1 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane # E12.1 [1] (🧑‍🦯)
+1F9D1 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right # E15.1 [1] (🧑‍🦯‍➡️)
1F9D1 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair # E12.1 [1] (🧑‍🦼)
+1F9D1 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right # E15.1 [1] (🧑‍🦼‍➡️)
1F9D1 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair # E12.1 [1] (🧑‍🦽)
+1F9D1 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right # E15.1 [1] (🧑‍🦽‍➡️)
1F9D1 1F3FB 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker: light skin tone # E12.1 [1] (🧑🏻‍⚕️)
1F9D1 1F3FB 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge: light skin tone # E12.1 [1] (🧑🏻‍⚖️)
1F9D1 1F3FB 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot: light skin tone # E12.1 [1] (🧑🏻‍✈️)
1F9D1 1F3FB 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer: light skin tone # E12.1 [1] (🧑🏻‍🌾)
1F9D1 1F3FB 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook: light skin tone # E12.1 [1] (🧑🏻‍🍳)
1F9D1 1F3FB 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby: light skin tone # E13.0 [1] (🧑🏻‍🍼)
+1F9D1 1F3FB 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: light skin tone # E13.0 [1] (🧑🏻‍🎄)
1F9D1 1F3FB 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student: light skin tone # E12.1 [1] (🧑🏻‍🎓)
1F9D1 1F3FB 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer: light skin tone # E12.1 [1] (🧑🏻‍🎤)
1F9D1 1F3FB 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist: light skin tone # E12.1 [1] (🧑🏻‍🎨)
@@ -644,14 +702,18 @@
1F9D1 1F3FB 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut: light skin tone # E12.1 [1] (🧑🏻‍🚀)
1F9D1 1F3FB 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter: light skin tone # E12.1 [1] (🧑🏻‍🚒)
1F9D1 1F3FB 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane: light skin tone # E12.1 [1] (🧑🏻‍🦯)
+1F9D1 1F3FB 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right: light skin tone # E15.1 [1] (🧑🏻‍🦯‍➡️)
1F9D1 1F3FB 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair: light skin tone # E12.1 [1] (🧑🏻‍🦼)
+1F9D1 1F3FB 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right: light skin tone # E15.1 [1] (🧑🏻‍🦼‍➡️)
1F9D1 1F3FB 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair: light skin tone # E12.1 [1] (🧑🏻‍🦽)
+1F9D1 1F3FB 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right: light skin tone # E15.1 [1] (🧑🏻‍🦽‍➡️)
1F9D1 1F3FC 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker: medium-light skin tone # E12.1 [1] (🧑🏼‍⚕️)
1F9D1 1F3FC 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge: medium-light skin tone # E12.1 [1] (🧑🏼‍⚖️)
1F9D1 1F3FC 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot: medium-light skin tone # E12.1 [1] (🧑🏼‍✈️)
1F9D1 1F3FC 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer: medium-light skin tone # E12.1 [1] (🧑🏼‍🌾)
1F9D1 1F3FC 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook: medium-light skin tone # E12.1 [1] (🧑🏼‍🍳)
1F9D1 1F3FC 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby: medium-light skin tone # E13.0 [1] (🧑🏼‍🍼)
+1F9D1 1F3FC 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium-light skin tone # E13.0 [1] (🧑🏼‍🎄)
1F9D1 1F3FC 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student: medium-light skin tone # E12.1 [1] (🧑🏼‍🎓)
1F9D1 1F3FC 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer: medium-light skin tone # E12.1 [1] (🧑🏼‍🎤)
1F9D1 1F3FC 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist: medium-light skin tone # E12.1 [1] (🧑🏼‍🎨)
@@ -664,14 +726,18 @@
1F9D1 1F3FC 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut: medium-light skin tone # E12.1 [1] (🧑🏼‍🚀)
1F9D1 1F3FC 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter: medium-light skin tone # E12.1 [1] (🧑🏼‍🚒)
1F9D1 1F3FC 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane: medium-light skin tone # E12.1 [1] (🧑🏼‍🦯)
+1F9D1 1F3FC 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right: medium-light skin tone # E15.1 [1] (🧑🏼‍🦯‍➡️)
1F9D1 1F3FC 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair: medium-light skin tone # E12.1 [1] (🧑🏼‍🦼)
+1F9D1 1F3FC 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right: medium-light skin tone #E15.1[1] (🧑🏼‍🦼‍➡️)
1F9D1 1F3FC 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair: medium-light skin tone # E12.1 [1] (🧑🏼‍🦽)
+1F9D1 1F3FC 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right: medium-light skin tone #E15.1 [1] (🧑🏼‍🦽‍➡️)
1F9D1 1F3FD 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker: medium skin tone # E12.1 [1] (🧑🏽‍⚕️)
1F9D1 1F3FD 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge: medium skin tone # E12.1 [1] (🧑🏽‍⚖️)
1F9D1 1F3FD 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot: medium skin tone # E12.1 [1] (🧑🏽‍✈️)
1F9D1 1F3FD 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer: medium skin tone # E12.1 [1] (🧑🏽‍🌾)
1F9D1 1F3FD 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook: medium skin tone # E12.1 [1] (🧑🏽‍🍳)
1F9D1 1F3FD 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby: medium skin tone # E13.0 [1] (🧑🏽‍🍼)
+1F9D1 1F3FD 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium skin tone # E13.0 [1] (🧑🏽‍🎄)
1F9D1 1F3FD 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student: medium skin tone # E12.1 [1] (🧑🏽‍🎓)
1F9D1 1F3FD 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer: medium skin tone # E12.1 [1] (🧑🏽‍🎤)
1F9D1 1F3FD 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist: medium skin tone # E12.1 [1] (🧑🏽‍🎨)
@@ -684,14 +750,18 @@
1F9D1 1F3FD 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut: medium skin tone # E12.1 [1] (🧑🏽‍🚀)
1F9D1 1F3FD 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter: medium skin tone # E12.1 [1] (🧑🏽‍🚒)
1F9D1 1F3FD 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane: medium skin tone # E12.1 [1] (🧑🏽‍🦯)
+1F9D1 1F3FD 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right: medium skin tone # E15.1 [1] (🧑🏽‍🦯‍➡️)
1F9D1 1F3FD 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair: medium skin tone # E12.1 [1] (🧑🏽‍🦼)
+1F9D1 1F3FD 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right: medium skin tone # E15.1 [1] (🧑🏽‍🦼‍➡️)
1F9D1 1F3FD 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair: medium skin tone # E12.1 [1] (🧑🏽‍🦽)
+1F9D1 1F3FD 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right: medium skin tone # E15.1 [1] (🧑🏽‍🦽‍➡️)
1F9D1 1F3FE 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker: medium-dark skin tone # E12.1 [1] (🧑🏾‍⚕️)
1F9D1 1F3FE 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge: medium-dark skin tone # E12.1 [1] (🧑🏾‍⚖️)
1F9D1 1F3FE 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot: medium-dark skin tone # E12.1 [1] (🧑🏾‍✈️)
1F9D1 1F3FE 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer: medium-dark skin tone # E12.1 [1] (🧑🏾‍🌾)
1F9D1 1F3FE 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook: medium-dark skin tone # E12.1 [1] (🧑🏾‍🍳)
1F9D1 1F3FE 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby: medium-dark skin tone # E13.0 [1] (🧑🏾‍🍼)
+1F9D1 1F3FE 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: medium-dark skin tone # E13.0 [1] (🧑🏾‍🎄)
1F9D1 1F3FE 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student: medium-dark skin tone # E12.1 [1] (🧑🏾‍🎓)
1F9D1 1F3FE 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer: medium-dark skin tone # E12.1 [1] (🧑🏾‍🎤)
1F9D1 1F3FE 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist: medium-dark skin tone # E12.1 [1] (🧑🏾‍🎨)
@@ -704,14 +774,18 @@
1F9D1 1F3FE 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut: medium-dark skin tone # E12.1 [1] (🧑🏾‍🚀)
1F9D1 1F3FE 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter: medium-dark skin tone # E12.1 [1] (🧑🏾‍🚒)
1F9D1 1F3FE 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane: medium-dark skin tone # E12.1 [1] (🧑🏾‍🦯)
+1F9D1 1F3FE 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right: medium-dark skin tone # E15.1 [1] (🧑🏾‍🦯‍➡️)
1F9D1 1F3FE 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair: medium-dark skin tone # E12.1 [1] (🧑🏾‍🦼)
+1F9D1 1F3FE 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right: medium-dark skin tone #E15.1[1] (🧑🏾‍🦼‍➡️)
1F9D1 1F3FE 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair: medium-dark skin tone # E12.1 [1] (🧑🏾‍🦽)
+1F9D1 1F3FE 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right: medium-dark skin tone #E15.1 [1] (🧑🏾‍🦽‍➡️)
1F9D1 1F3FF 200D 2695 FE0F ; RGI_Emoji_ZWJ_Sequence ; health worker: dark skin tone # E12.1 [1] (🧑🏿‍⚕️)
1F9D1 1F3FF 200D 2696 FE0F ; RGI_Emoji_ZWJ_Sequence ; judge: dark skin tone # E12.1 [1] (🧑🏿‍⚖️)
1F9D1 1F3FF 200D 2708 FE0F ; RGI_Emoji_ZWJ_Sequence ; pilot: dark skin tone # E12.1 [1] (🧑🏿‍✈️)
1F9D1 1F3FF 200D 1F33E ; RGI_Emoji_ZWJ_Sequence ; farmer: dark skin tone # E12.1 [1] (🧑🏿‍🌾)
1F9D1 1F3FF 200D 1F373 ; RGI_Emoji_ZWJ_Sequence ; cook: dark skin tone # E12.1 [1] (🧑🏿‍🍳)
1F9D1 1F3FF 200D 1F37C ; RGI_Emoji_ZWJ_Sequence ; person feeding baby: dark skin tone # E13.0 [1] (🧑🏿‍🍼)
+1F9D1 1F3FF 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus: dark skin tone # E13.0 [1] (🧑🏿‍🎄)
1F9D1 1F3FF 200D 1F393 ; RGI_Emoji_ZWJ_Sequence ; student: dark skin tone # E12.1 [1] (🧑🏿‍🎓)
1F9D1 1F3FF 200D 1F3A4 ; RGI_Emoji_ZWJ_Sequence ; singer: dark skin tone # E12.1 [1] (🧑🏿‍🎤)
1F9D1 1F3FF 200D 1F3A8 ; RGI_Emoji_ZWJ_Sequence ; artist: dark skin tone # E12.1 [1] (🧑🏿‍🎨)
@@ -724,10 +798,13 @@
1F9D1 1F3FF 200D 1F680 ; RGI_Emoji_ZWJ_Sequence ; astronaut: dark skin tone # E12.1 [1] (🧑🏿‍🚀)
1F9D1 1F3FF 200D 1F692 ; RGI_Emoji_ZWJ_Sequence ; firefighter: dark skin tone # E12.1 [1] (🧑🏿‍🚒)
1F9D1 1F3FF 200D 1F9AF ; RGI_Emoji_ZWJ_Sequence ; person with white cane: dark skin tone # E12.1 [1] (🧑🏿‍🦯)
+1F9D1 1F3FF 200D 1F9AF 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person with white cane facing right: dark skin tone # E15.1 [1] (🧑🏿‍🦯‍➡️)
1F9D1 1F3FF 200D 1F9BC ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair: dark skin tone # E12.1 [1] (🧑🏿‍🦼)
+1F9D1 1F3FF 200D 1F9BC 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in motorized wheelchair facing right: dark skin tone # E15.1 [1] (🧑🏿‍🦼‍➡️)
1F9D1 1F3FF 200D 1F9BD ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair: dark skin tone # E12.1 [1] (🧑🏿‍🦽)
+1F9D1 1F3FF 200D 1F9BD 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; person in manual wheelchair facing right: dark skin tone # E15.1 [1] (🧑🏿‍🦽‍➡️)
-# Total elements: 360
+# Total elements: 438
# ================================================
@@ -746,17 +823,29 @@
26F9 FE0F 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman bouncing ball # E4.0 [1] (⛹️‍♀️)
26F9 FE0F 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man bouncing ball # E4.0 [1] (⛹️‍♂️)
1F3C3 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running # E4.0 [1] (🏃‍♀️)
+1F3C3 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right # E15.1 [1] (🏃‍♀️‍➡️)
1F3C3 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running # E4.0 [1] (🏃‍♂️)
+1F3C3 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right # E15.1 [1] (🏃‍♂️‍➡️)
1F3C3 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running: light skin tone # E4.0 [1] (🏃🏻‍♀️)
+1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right: light skin tone # E15.1 [1] (🏃🏻‍♀️‍➡️)
1F3C3 1F3FB 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running: light skin tone # E4.0 [1] (🏃🏻‍♂️)
+1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right: light skin tone # E15.1 [1] (🏃🏻‍♂️‍➡️)
1F3C3 1F3FC 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running: medium-light skin tone # E4.0 [1] (🏃🏼‍♀️)
+1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right: medium-light skin tone # E15.1 [1] (🏃🏼‍♀️‍➡️)
1F3C3 1F3FC 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running: medium-light skin tone # E4.0 [1] (🏃🏼‍♂️)
+1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right: medium-light skin tone # E15.1 [1] (🏃🏼‍♂️‍➡️)
1F3C3 1F3FD 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running: medium skin tone # E4.0 [1] (🏃🏽‍♀️)
+1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right: medium skin tone # E15.1 [1] (🏃🏽‍♀️‍➡️)
1F3C3 1F3FD 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running: medium skin tone # E4.0 [1] (🏃🏽‍♂️)
+1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right: medium skin tone # E15.1 [1] (🏃🏽‍♂️‍➡️)
1F3C3 1F3FE 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running: medium-dark skin tone # E4.0 [1] (🏃🏾‍♀️)
+1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right: medium-dark skin tone # E15.1 [1] (🏃🏾‍♀️‍➡️)
1F3C3 1F3FE 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running: medium-dark skin tone # E4.0 [1] (🏃🏾‍♂️)
+1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right: medium-dark skin tone # E15.1 [1] (🏃🏾‍♂️‍➡️)
1F3C3 1F3FF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running: dark skin tone # E4.0 [1] (🏃🏿‍♀️)
+1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman running facing right: dark skin tone # E15.1 [1] (🏃🏿‍♀️‍➡️)
1F3C3 1F3FF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running: dark skin tone # E4.0 [1] (🏃🏿‍♂️)
+1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man running facing right: dark skin tone # E15.1 [1] (🏃🏿‍♂️‍➡️)
1F3C4 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman surfing # E4.0 [1] (🏄‍♀️)
1F3C4 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man surfing # E4.0 [1] (🏄‍♂️)
1F3C4 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman surfing: light skin tone # E4.0 [1] (🏄🏻‍♀️)
@@ -1036,17 +1125,29 @@
1F6B5 1F3FF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman mountain biking: dark skin tone # E4.0 [1] (🚵🏿‍♀️)
1F6B5 1F3FF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man mountain biking: dark skin tone # E4.0 [1] (🚵🏿‍♂️)
1F6B6 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking # E4.0 [1] (🚶‍♀️)
+1F6B6 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right # E15.1 [1] (🚶‍♀️‍➡️)
1F6B6 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking # E4.0 [1] (🚶‍♂️)
+1F6B6 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right # E15.1 [1] (🚶‍♂️‍➡️)
1F6B6 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking: light skin tone # E4.0 [1] (🚶🏻‍♀️)
+1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right: light skin tone # E15.1 [1] (🚶🏻‍♀️‍➡️)
1F6B6 1F3FB 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking: light skin tone # E4.0 [1] (🚶🏻‍♂️)
+1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right: light skin tone # E15.1 [1] (🚶🏻‍♂️‍➡️)
1F6B6 1F3FC 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking: medium-light skin tone # E4.0 [1] (🚶🏼‍♀️)
+1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right: medium-light skin tone # E15.1 [1] (🚶🏼‍♀️‍➡️)
1F6B6 1F3FC 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking: medium-light skin tone # E4.0 [1] (🚶🏼‍♂️)
+1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right: medium-light skin tone # E15.1 [1] (🚶🏼‍♂️‍➡️)
1F6B6 1F3FD 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking: medium skin tone # E4.0 [1] (🚶🏽‍♀️)
+1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right: medium skin tone # E15.1 [1] (🚶🏽‍♀️‍➡️)
1F6B6 1F3FD 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking: medium skin tone # E4.0 [1] (🚶🏽‍♂️)
+1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right: medium skin tone # E15.1 [1] (🚶🏽‍♂️‍➡️)
1F6B6 1F3FE 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking: medium-dark skin tone # E4.0 [1] (🚶🏾‍♀️)
+1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right: medium-dark skin tone # E15.1 [1] (🚶🏾‍♀️‍➡️)
1F6B6 1F3FE 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking: medium-dark skin tone # E4.0 [1] (🚶🏾‍♂️)
+1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right: medium-dark skin tone # E15.1 [1] (🚶🏾‍♂️‍➡️)
1F6B6 1F3FF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking: dark skin tone # E4.0 [1] (🚶🏿‍♀️)
+1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman walking facing right: dark skin tone # E15.1 [1] (🚶🏿‍♀️‍➡️)
1F6B6 1F3FF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking: dark skin tone # E4.0 [1] (🚶🏿‍♂️)
+1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man walking facing right: dark skin tone # E15.1 [1] (🚶🏿‍♂️‍➡️)
1F926 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman facepalming # E4.0 [1] (🤦‍♀️)
1F926 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man facepalming # E4.0 [1] (🤦‍♂️)
1F926 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman facepalming: light skin tone # E4.0 [1] (🤦🏻‍♀️)
@@ -1170,17 +1271,29 @@
1F9CD 1F3FF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman standing: dark skin tone # E12.0 [1] (🧍🏿‍♀️)
1F9CD 1F3FF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man standing: dark skin tone # E12.0 [1] (🧍🏿‍♂️)
1F9CE 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling # E12.0 [1] (🧎‍♀️)
+1F9CE 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right # E15.1 [1] (🧎‍♀️‍➡️)
1F9CE 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling # E12.0 [1] (🧎‍♂️)
+1F9CE 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right # E15.1 [1] (🧎‍♂️‍➡️)
1F9CE 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling: light skin tone # E12.0 [1] (🧎🏻‍♀️)
+1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right: light skin tone # E15.1 [1] (🧎🏻‍♀️‍➡️)
1F9CE 1F3FB 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling: light skin tone # E12.0 [1] (🧎🏻‍♂️)
+1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right: light skin tone # E15.1 [1] (🧎🏻‍♂️‍➡️)
1F9CE 1F3FC 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling: medium-light skin tone # E12.0 [1] (🧎🏼‍♀️)
+1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right: medium-light skin tone # E15.1 [1] (🧎🏼‍♀️‍➡️)
1F9CE 1F3FC 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling: medium-light skin tone # E12.0 [1] (🧎🏼‍♂️)
+1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right: medium-light skin tone # E15.1 [1] (🧎🏼‍♂️‍➡️)
1F9CE 1F3FD 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling: medium skin tone # E12.0 [1] (🧎🏽‍♀️)
+1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right: medium skin tone # E15.1 [1] (🧎🏽‍♀️‍➡️)
1F9CE 1F3FD 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling: medium skin tone # E12.0 [1] (🧎🏽‍♂️)
+1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right: medium skin tone # E15.1 [1] (🧎🏽‍♂️‍➡️)
1F9CE 1F3FE 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling: medium-dark skin tone # E12.0 [1] (🧎🏾‍♀️)
+1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right: medium-dark skin tone # E15.1 [1] (🧎🏾‍♀️‍➡️)
1F9CE 1F3FE 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling: medium-dark skin tone # E12.0 [1] (🧎🏾‍♂️)
+1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right: medium-dark skin tone # E15.1 [1] (🧎🏾‍♂️‍➡️)
1F9CE 1F3FF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling: dark skin tone # E12.0 [1] (🧎🏿‍♀️)
+1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman kneeling facing right: dark skin tone # E15.1 [1] (🧎🏿‍♀️‍➡️)
1F9CE 1F3FF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling: dark skin tone # E12.0 [1] (🧎🏿‍♂️)
+1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; RGI_Emoji_ZWJ_Sequence ; man kneeling facing right: dark skin tone # E15.1 [1] (🧎🏿‍♂️‍➡️)
1F9CF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; deaf woman # E12.0 [1] (🧏‍♀️)
1F9CF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; deaf man # E12.0 [1] (🧏‍♂️)
1F9CF 1F3FB 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; deaf woman: light skin tone # E12.0 [1] (🧏🏻‍♀️)
@@ -1306,7 +1419,7 @@
1F9DF 200D 2640 FE0F ; RGI_Emoji_ZWJ_Sequence ; woman zombie # E5.0 [1] (🧟‍♀️)
1F9DF 200D 2642 FE0F ; RGI_Emoji_ZWJ_Sequence ; man zombie # E5.0 [1] (🧟‍♂️)
-# Total elements: 572
+# Total elements: 608
# ================================================
@@ -1391,21 +1504,26 @@
# RGI_Emoji_ZWJ_Sequence: Other
+26D3 FE0F 200D 1F4A5 ; RGI_Emoji_ZWJ_Sequence ; broken chain # E15.1 [1] (⛓️‍💥)
2764 FE0F 200D 1F525 ; RGI_Emoji_ZWJ_Sequence ; heart on fire # E13.1 [1] (❤️‍🔥)
2764 FE0F 200D 1FA79 ; RGI_Emoji_ZWJ_Sequence ; mending heart # E13.1 [1] (❤️‍🩹)
+1F344 200D 1F7EB ; RGI_Emoji_ZWJ_Sequence ; brown mushroom # E15.1 [1] (🍄‍🟫)
+1F34B 200D 1F7E9 ; RGI_Emoji_ZWJ_Sequence ; lime # E15.1 [1] (🍋‍🟩)
1F3F3 FE0F 200D 26A7 FE0F ; RGI_Emoji_ZWJ_Sequence ; transgender flag # E13.0 [1] (🏳️‍⚧️)
1F3F3 FE0F 200D 1F308 ; RGI_Emoji_ZWJ_Sequence ; rainbow flag # E4.0 [1] (🏳️‍🌈)
1F3F4 200D 2620 FE0F ; RGI_Emoji_ZWJ_Sequence ; pirate flag # E11.0 [1] (🏴‍☠️)
1F408 200D 2B1B ; RGI_Emoji_ZWJ_Sequence ; black cat # E13.0 [1] (🐈‍⬛)
1F415 200D 1F9BA ; RGI_Emoji_ZWJ_Sequence ; service dog # E12.0 [1] (🐕‍🦺)
1F426 200D 2B1B ; RGI_Emoji_ZWJ_Sequence ; black bird # E15.0 [1] (🐦‍⬛)
+1F426 200D 1F525 ; RGI_Emoji_ZWJ_Sequence ; phoenix # E15.1 [1] (🐦‍🔥)
1F43B 200D 2744 FE0F ; RGI_Emoji_ZWJ_Sequence ; polar bear # E13.0 [1] (🐻‍❄️)
1F441 FE0F 200D 1F5E8 FE0F ; RGI_Emoji_ZWJ_Sequence ; eye in speech bubble # E2.0 [1] (👁️‍🗨️)
1F62E 200D 1F4A8 ; RGI_Emoji_ZWJ_Sequence ; face exhaling # E13.1 [1] (😮‍💨)
1F635 200D 1F4AB ; RGI_Emoji_ZWJ_Sequence ; face with spiral eyes # E13.1 [1] (😵‍💫)
1F636 200D 1F32B FE0F ; RGI_Emoji_ZWJ_Sequence ; face in clouds # E13.1 [1] (😶‍🌫️)
-1F9D1 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus # E13.0 [1] (🧑‍🎄)
+1F642 200D 2194 FE0F ; RGI_Emoji_ZWJ_Sequence ; head shaking horizontally # E15.1 [1] (🙂‍↔️)
+1F642 200D 2195 FE0F ; RGI_Emoji_ZWJ_Sequence ; head shaking vertically # E15.1 [1] (🙂‍↕️)
-# Total elements: 14
+# Total elements: 19
#EOF
diff --git a/admin/unidata/emoji-zwj.awk b/admin/unidata/emoji-zwj.awk
index 94c1d8f0215..c69bc6822d0 100644
--- a/admin/unidata/emoji-zwj.awk
+++ b/admin/unidata/emoji-zwj.awk
@@ -83,33 +83,31 @@ END {
trigger_codepoints[12] = "1F575"
trigger_codepoints[13] = "1F590"
- printf "(setq auto-composition-emoji-eligible-codepoints\n"
- printf "'("
+ print "(setq auto-composition-emoji-eligible-codepoints"
+ print "'("
for (trig in trigger_codepoints)
{
- printf("\n?\\N{U+%s}", trigger_codepoints[trig])
+ print "?\\N{U+" trigger_codepoints[trig] "}"
}
- printf "\n))\n\n"
+ print "))"
# We add entries for 'codepoint U+FE0F' here to ensure that the
# code in font_range is triggered.
for (trig in trigger_codepoints)
{
- codepoint = trigger_codepoints[trig]
- c = sprintf("\\N{U+%s}", codepoint)
- vec[codepoint] = vec[codepoint] "\n\"" c "\\N{U+FE0F}\""
+ vec[codepoint] = vec[codepoint] "\n\"\\N{U+" trigger_codepoints[trig] "}\\N{U+FE0F}\""
}
- print "(dolist (elt `("
+ print "(dolist (elt (eval-when-compile `("
for (elt in ch)
{
- entries = vec[elt] sprintf("\n\"\\N{U+%s}\\N{U+FE0E}\"\n\"\\N{U+%s}\\N{U+FE0F}\"", elt, elt)
- printf("(#x%s .\n,(eval-when-compile (regexp-opt\n'(\n%s\n))))\n", elt, entries)
+ print "(#x" elt " .\n,(regexp-opt\n'(\n" vec[elt]
+ print "\"\\N{U+" elt "}\\N{U+FE0E}\"\n\"\\N{U+" elt "}\\N{U+FE0F}\"\n)))"
}
- print "))"
+ print ")))"
print " (set-char-table-range composition-function-table"
print " (car elt)"
print " (nconc (char-table-range composition-function-table (car elt))"