# Names should be added to this file with this pattern:
#
# For individuals:
#   Name <email address>
#
# For organizations:
#   Organization <fnmatch pattern>
#
# See python fnmatch module documentation for more information.
#
# Please keep the list sorted.

# BEGIN individuals section.
AbdAlRahman Gad <abdobngad@gmail.com>
Abdelkarim Sellamna <abdelkarim.se@gmail.com>
Aleksei Skotnikov <fineaskotnikov@gmail.com>
Antonio Gomes <tonikitoo@igalia.com>
Chenguang Shao <chenguangshao1@gmail.com>
Chery Cherian <cherycherian@gmail.com>
Claudio DeSouza <claudiomdsjr@gmail.com>
Dan Ilan <danilan@gmail.com>
Dmitrii Chunikhin <chunikhindf@gmail.com>
Dorian Rudolph <dorianrudo97@gmail.com>
Felix Kauselmann <licorn@gmail.com>
GiWan Go <gogil@stealien.com>
Haoran Tang <haoran.tang.personal@gmail.com>
Helmut Januschka <helmut@januschka.com>
Huy Ngo <huyna89@gmail.com>
Ivan Odulo <ivanodulo@gmail.com>
Jiang Jiang <jiangj@opera.com>
Justin Pierce <brkfstmnchr@gmail.com>
Ke Liu <stackexploit@gmail.com>
Luật Nguyễn <manhluat93.php@gmail.com>
Manuel Geißer <geisserml@gmail.com>
Matt Jolly <kangie@gentoo.org>
Michael Doppler <m.doppler@gmail.com>
Miklos Vajna <vmiklos@vmiklos.hu>
Minh Trần <myoki.crystal@gmail.com>
Mostafa Aboalkasim <mostafa.aboalkasim.offical@gmail.com>
Peter Varga <pvarga@inf.u-szeged.hu>
Ralf Sippl <ralf.sippl@gmail.com>
Robert Collyer <rcollyer99@gmail.com>
Rulong Chen（陈汝龙） <rulong.crl@alibaba-inc.com>
Ryan Wiley <wileyrr@gmail.com>
Satvic Dhawan <satvicdhawan14@gmail.com>
Stefan Ziegler <sz5000@gmx.de>
Stephan Hartmann <stha09@googlemail.com>
Tibor Dusnoki <tdusnoki@inf.u-szeged.hu>
Wang Chuan <jdyaomo@gmail.com>
Wang Qing <wangqing-hf@loongson.cn>
Wang Yongjie <tycket033@gmail.com>
Zhuo Qingliang <zhuo.dev@gmail.com>
# END individuals section.

# BEGIN organizations section.
Ada Logics Ltd. <*@adalogics.com>
Collabora Ltd. <*@collabora.com>
DocsCorp Pty Ltd. <*@docscorp.com>
Dropbox <*@dropbox.com>
Foxit Software Inc <*@foxitsoftware.com>
Google Inc. <*@google.com>
Igalia S.L. <*@igalia.com>
LG Electronics, Inc. <*@lge.com>
Loongson Technology Corporation Limited. <*@loongson.cn>
Medical Information Technology, Inc. <*@meditech.com>
Microsoft <*@microsoft.com>
PSPDFKit GmbH <*@pspdfkit.com>
The Chromium Authors <*@chromium.org>
# END organizations section.
