# This is the official list of people who can contribute
# (and who have contributed) code to the ANGLE project
# repository.
# 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.
#

TransGaming Inc.
 Nicolas Capens
 Daniel Koch
 Andrew Lewycky
 Gavriel State
 Shannon Woods

Google Inc.
 Brent Austin
 John Bauman
 Henry Bridge
 Nat Duca
 Vangelis Kokkevis
 Alastair Patrick
 Alok Priyadarshi
 Kenneth Russell
 Ben Vanik
 Adrienne Walker
 Zhenyao Mo

Mozilla Corp.
 Vladimir Vukicevic
 Benoit Jacob

Apple Inc.
 David Kilzer

Aitor Moreno <aitormoreno at gmail.com>
Jim Hauxwell <james at dattrax.co.uk>
ddefrostt
timeless
