# 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>
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>
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>
Keefer Taylor <keefer@google.com>
Michael Thvedt <mthvedt@google.com>
Cristopher Olson <topher.the.geek@gmail.com>
Daniel Wagner-Hall <danielwh@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>
