#
# QEMU gitdm domain-map
#
# This maps email domains to nice easy to read company names
#

amd.com         AMD
baidu.com       Baidu
bytedance.com   ByteDance
cmss.chinamobile.com China Mobile
citrix.com      Citrix
crudebyte.com   Crudebyte
chinatelecom.cn China Telecom
eldorado.org.br Instituto de Pesquisas Eldorado
fb.com          Facebook
fujitsu.com     Fujitsu
google.com      Google
greensocs.com   GreenSocs
huawei.com      Huawei
ibm.com         IBM
igalia.com      Igalia
intel.com       Intel
linaro.org      Linaro
loongson.cn     Loongson Technology
lwn.net         LWN
microsoft.com   Microsoft
mvista.com      MontaVista
nokia.com       Nokia
nuviainc.com    NUVIA
nvidia.com      NVIDIA
oracle.com      Oracle
proxmox.com     Proxmox
quicinc.com     Qualcomm Innovation Center
redhat.com      Red Hat
rt-rk.com       RT-RK
samsung.com     Samsung
siemens.com     Siemens
sifive.com      SiFive
suse.com        SUSE
suse.de         SUSE
ventanamicro.com Ventana Micro Systems
virtuozzo.com   Virtuozzo
vrull.eu        VRULL
wdc.com         Western Digital
windriver.com   Wind River
xilinx.com      Xilinx
yadro.com       YADRO
yandex-team.ru  Yandex
