# People who have agreed to one of the CLAs and can contribute patches.
# The AUTHORS file lists the copyright holders; this file
# lists people.  For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#
# https://developers.google.com/open-source/cla/individual
# https://developers.google.com/open-source/cla/corporate
#
# Names should be added to this file as:
#     Name <email address>

Ulf Adams <ulfjack@google.com>
Eddie Aftandilian <eaftan@google.com>
Miguel Alcon Pinto <malcon@google.com>
Michael Beardsworth <beardsworth@google.com>
Anthony Bellissimo <twon33@gmail.com>
Lukacs Berki <lberki@google.com>
Paul Bethe <pbethe@google.com>
Shreya Bhattarai <shreyax@google.com>
Kevin Bierhoff <kmb@google.com>
Klaas Boesche <klaasb@google.com>
Phil Bordelon <sunfall@google.com>
Jon Brandvein <brandjon@google.com>
Volker Braun <vbraun.name@gmail.com>
Thomas Broyer <t.broyer@ltgt.net>
David Chen <dzc@google.com>
Kristina Chodorow <kchodorow@google.com>
Onath Claridge <claridge@google.com>
Laszlo Csomor <laszlocsomor@google.com>
Steven Dee <steven@choosemuse.com>
Matthew DeVore <matvore@google.com>
Alan Donovan <adonovan@google.com>
Dave Dopson <ddopson@google.com>
Rumou Duan <rduan@google.com>
Greg Estren <gregce@google.com>
Thiago Farina <tfarina@chromium.org>
Eric Fellheimer <felly@google.com>
John Field <jfield@google.com>
Peter Foley <pefoley2@pefoley.com>
Carmi Grushko <carmi@google.com>
Nathan Harmata <nharmata@google.com>
Tom Hennigan <tomhennigan@google.com>
Alex Humesky <ahumesky@google.com>
Roland Huß <roland@jolokia.org>
Kamil Jiwa <kjiwa@google.com>
Anastasios Kakalis <anastasios@google.com>
Danna Kelmer <dannark@google.com>
Manuel Klimek <klimek@google.com>
Erik Kuefler <ekuefler@gmail.com>
Laurent Le Brun <laurentlb@google.com>
Ross Light <light@google.com>
liuhuahang <liuhuahang@zerus.co>
Marian Lobur <loburm@google.com>
Dmitry Lomov <dslomov@google.com>
Dave MacLachlan <dmaclach@google.com>
David Mankin <dmankin@atlassian.com>
Kamal Marhubi <kamal@marhubi.com>
Damien Martin-Guillerez <dmarting@google.com>
Carl Mastrangelo <carl-mastrangelo@users.noreply.github.com>
Michajlo Matijkiw <michajlo@google.com>
Iain McGinniss <iainmcgin@google.com>
Julio Merino <jmmv@google.com>
Adam Michael <ajmichael@google.com>
Liam Miller-Cushon <cushon@google.com>
Noah Misch <nmisch@google.com>
Kyle Moffett <kyle@moffetthome.net>
Nicholas Gorski <nicholasgorski@outlook.com>
Han-Wen Nienhuys <hanwen@google.com>
Gunther Noack <gnoack@google.com>
Chris Parsons <cparsons@google.com>
Andrew Pellegrini <apell@google.com>
Allen Porter <allen.porter@gmail.com>
Doug Rabson <dfr@rabson.org>
Janak Ramakrishnan <janakr@google.com>
Francois-Rene Rideau <tunes@google.com>
Ethan Rublee <rublee@google.com>
David Santiago <david.santiago@gmail.com>
Mark Schaller <mschaller@google.com>
Peter Schmitt <schmitt@google.com>
Cody Schroeder <schroederc@google.com>
Dmitry Shevchenko <dmishe@google.com>
John Shimek <varikin@gmail.com>
Brian Silverman <bsilver16384@gmail.com>
Michael Staib <mstaib@google.com>
John Sullivan <john.t.sullivan@gmail.com>
Chengnian Sun <cnsun@google.com>
Keefer Taylor <keefer@google.com>
Michael Thvedt <mthvedt@google.com>
Cristopher Olson <topher.the.geek@gmail.com>
Daniel Wagner-Hall <danielwh@google.com>
Sergio Campamá <kaipi@google.com>
Zhong Wang <linuxerwang@gmail.com>
Kevin Watts <kevinwwatts@gmail.com>
Florian Weikert <fwe@google.com>
Philipp Wollermann <philwo@google.com>
Jie Yu <yujie.jay@gmail.com>
Andrew Z Allen <me@andrewzallen.com>
Ming Zhao <mzhao@luminatewireless.com>
Peter Mounce <pete@neverrunwithscissors.com>
Yue Gan <yueg@google.com>
Yun Peng <pcloudy@google.com>
