# 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.

Andrey Khalyavin <halyavin@chromium.org>
Antonio Gomes <tonikitoo@igalia.com>
Brett Wilson <brettw@chromium.org>
Bruce Dawson <brucedawson@chromium.org>
Chery Cherian <cherycherian@gmail.com>
Claudio DeSouza <claudiomdsjr@gmail.com>
Chris Palmer <palmer@chromium.org>
Dan Sinclair <dsinclair@chromium.org>
Felix Kauselmann <licorn@gmail.com>
Finnur Thorarinsson <finnur@chromium.org>
GiWan Go <gogil@stealien.com>
Henrique Nakashima <hnakashima@chromium.org>
Huy Ngo <huyna89@gmail.com>
Jiang Jiang <jiangj@opera.com>
Jochen Eisinger <jochen@chromium.org>
John Abd-El-Malek <jam@chromium.org>
Julien Tinnes <jln@chromium.org>
Ke Liu <stackexploit@gmail.com>
Kostya Serebryany <kcc@chromium.org>
Lei Zhang <thestig@chromium.org>
Lucas Nihlen <luken@chromium.org>
Luật Nguyễn <manhluat93.php@gmail.com>
Matt Giuca <mgiuca@chromium.org>
Michael Doppler <m.doppler@gmail.com>
Miklos Vajna <vmiklos@vmiklos.hu>
Nico Weber <thakis@chromium.org>
Nicolás Peña <npm@chromium.org>
Peter Kasting <pkasting@chromium.org>
Ralf Sippl <ralf.sippl@gmail.com>
Raymes Khoury <raymes@chromium.org>
Reid Kleckner <rnk@chromium.org>
Ryan Harrison <rharrison@chromium.org>
Ryan Wiley <wileyrr@gmail.com>
Robert Sesek <rsesek@chromium.org>
Sam Clegg <sbc@chromium.org>
Thomas Sepez <tsepez@chromium.org>
Wang Qing <wangqing-hf@loongson.cn>
Zhuo Qingliang <zhuo.dev@gmail.com>

Collabora Ltd. <*@collabora.co.uk>
DocsCorp Pty Ltd. <*@docscorp.com>
Dropbox <*@dropbox.com>
Foxit Software Inc <*@foxitsoftware.com>
Google Inc. <*@google.com>
LG Electronics, Inc. <*@lge.com>
Loongson Technology Corporation Limited. <*@loongson.cn>
Microsoft <*@microsoft.com>
PSPDFKit GmbH <*@pspdfkit.com>
