﻿# 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
 Geoff Lang
 Andrew Lewycky
 Jamie Madill
 Gavriel State
 Shannon Woods

Google Inc.
 Brent Austin
 Michael Bai
 John Bauman
 Peter Beverloo
 Steve Block
 Rachel Blum
 Eric Boren
 Henry Bridge
 Nat Duca
 Peter Kasting
 Vangelis Kokkevis
 Zhenyao Mo
 Daniel Nicoara
 Alastair Patrick
 Alok Priyadarshi
 Kenneth Russell
 Brian Salomon
 Gregg Tavares
 Jeff Timanus
 Ben Vanik
 Adrienne Walker
 thestig@chromium.org
 Justin Schuh
 Scott Graham
 Corentin Wallez

Adobe Systems Inc.
 Alexandru Chiculita
 Steve Minns
 Max Vujovic

Autodesk, Inc.
 Ranger Harke

Cloud Party, Inc.
 Conor Dickinson

The Qt Company Ltd.
 Andrew Knight

Imagination Technologies Ltd.
 Gregoire Payen de La Garanderie

Intel Corporation
 Jin Yang
 Andy Chen
 Josh Triplett
 Sudarsana Nagineni

Klarälvdalens Datakonsult AB
 Milian Wolff

Mozilla Corp.
 Ehsan Akhgari
 Jeff Gilbert
 Mike Hommey
 Benoit Jacob
 Makoto Kato
 Vladimir Vukicevic

Turbulenz
 Michael Braithwaite

Ulrik Persson (ddefrostt)
Mark Banner (standard8mbp)
David Kilzer
Jacek Caban
Tibor den Ouden
Régis Fénéon

Microsoft Corporation
 Cooper Partin
 Austin Kinross
 Minmin Gong
 Shawn Hargreaves

Microsoft Open Technologies, Inc.
 Cooper Partin
 Austin Kinross

NVIDIA Corporation
 Olli Etuaho
 Arun Patole
 Qingqing Deng
 Kimmo Kinnunen

Opera Software ASA
 Daniel Bratell
 Tomasz Moniuszko
