# This is the official list of OpenThread authors for copyright purposes.
#
# This does not necessarily list everyone who has contributed code, since in
# some cases, their employer may be the copyright holder. To see the full list
# of contributors, see the revision history in source control or
# https://github.com/openthread/openthread/graphs/contributors
#
# Authors who wish to be recognized in this file should add themselves (or
# their employer, as appropriate).

Nest Labs, Inc.
Microsoft Corporation
Nordic Semiconductor
Texas Instruments Incorporated
NXP Semiconductors
Synopsys, Inc.
