CyanogenMod
===========

Maintainers (CyanogenMod 12.0):
-----------------------------
* __Acer A700:__ pawitp
* __Amazon Kindle Fire 1st Edition:__ Hashcode, FuZZ__
* __Amazon Kindle Fire 2nd Edition:__ Hashcode, FuZZ__
* __Asus EeePad Transformer (TF101):__ Bumble-Bee, EnJens
* __Asus EeePad Transformer Prime (TF201):__ Bumble-Bee, EnJens
* __Asus EeePad Transformer Pad TF300T:__
* __Asus EeePad Transformer Pad Infinity TF700T:__ dasunsrule32
* __Asus EeePad Transformer Pad TF701T:__ pershoot
* __B&N NookColor (encore):__ eyeballer, fattire, keyodi, krylon360, sluo (NookieDevs)
* __Google Android One:__ , varunchitre15
* __Google Galaxy Nexus:__ , bekit, Bumble-Bee, burnsra, KalimochoAz, something15525
* __Google Nexus S:__ burnsra, KalimochoAz, klusark
* __Google Nexus 4:__ rmcc
* __Google Nexus 5:__ fluxi
* __Google Nexus 7:__ burnsra, fattire, nemith (GSM)
* __Google Nexus 10:__ atinm, dalingrin, kornyone, gweedo767
* __HTC Desire 601:__ uberlaggydarwin
* __HTC Desire 816:__ Grarak, v_superuser
* __HTC Droid DNA:__ crpalmer, invisiblek
* __HTC Droid Incredible 4G LTE:__ intervigil, mdmower
* __HTC Evo 4G LTE:__ kushdeck, toastcfh
* __HTC One Mini:__ u-ra
* __HTC One Mini 2:__ u-ra
* __HTC One (GSM):__ codeworkx, h8rift
* __HTC One (M8):__ deck, h8rift, invisblek, toastcfh
* __HTC One Max (T6):__ flyhalf205, sbrissen
* __HTC One (Sprint):__ kushdeck, toastcfh
* __HTC One (Verizon):__ flyhalf205, mdmower
* __HTC One S:__ intervigil, xkonni
* __HTC One X:__ gorbi16, mdeejay, tbalden, Thömy
* __HTC One X+:__ Lloir, tombriden
* __HTC One XL:__ h8rift, intervigil
* __LG G3 (AT&T) (D850):__ AndroidUser00110001
* __LG G3 (T-Mobile) (D851):__ savoca
* __LG G3 (AT&T) (D852):__ AndroidUser00110001
* __LG G3 (International) (D855):__ AngelBob
* __LG G3 (Verizon) (VS985):__ invisiblek
* __LG Optimus LTE (P930) / LG Nitro HD {P935):__ arcee
* __LG Optimus LTE (SK Telecom) (SU640):__ arcee
* __Moto G 4G (xt1039,xt1040,xt1042,xt1045/peregrine):__ somcom3x, intervigil
* __Moto X (xt1053,xt1055,xt1056,xt1058,xt1060/ghost):__ Hashcode, Skrilax_CZ
* __Moto X 2014 (victara):__ crpalmer
* __Motorola Atrix HD (MB886/qinara):__ epinter, Hashcode, Skrilax_CZ, nadlabak
* __Motorola Droid 3 (solana):__ Hashcode, stargo
* __Motorola Droid 4 (maserati):__ Hashcode, stargo
* __Motorola Droid Bionic (targa):__ Hashcode, stargo
* __Motorola Droid Maxx (obake-maxx):__ Skrilax_CZ
* __Motorola Droid RAZR/RAZR Maxx (spyder) (CDMA):__ Hashcode, stargo
* __Motorola Droid RAZR HD/HD Maxx (xt926/vanquish) (CDMA):__ Hashcode,  epinter, Skrilax_CZ, nadlabak
* __Motorola Droid RAZR M (xt907/scorpion_mini):__ Hashcode, epinter, Skrilax_CZ, nadlabak
* __Motorola Photon Q (xt897/asanti) (GSM):__ Skrilax_CZ, nadlabak, epinter, Hashcode
* __Motorola Photon Q (xt897c/asanti_c) (CDMA):__ nadlabak, Skrilax_CZ, epinter, Hashcode
* __Motorola RAZR/RAZR Maxx (umts_spyder) (GSM):__ Hashcode, stargo
* __Motorola RAZR HD(xt925/vanquish) (GSM):__ epinter, Hashcode, Skrilax_CZ, nadlabak
* __Motorola Xoom (WiFi):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __Motorola Xoom 3G (UMTS):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __Motorola Xoom 4G LTE (Verizon):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __OnePlus One:__ cyanogen, intervigil, inwotep, arcee
* __Oppo Find 5:__ intervigil, nebkat
* __Oppo Find 7:__ intervigil, tdm, inwotep
* __Samsung Captivate (SGH-I896 / SGH-I897):__ pawitp
* __Samsung Epic 4G (SPH-D700):__ bbelos
* __Samsung Exhilarate (SGH-I577):__ mikeyman77, carvsdriver
* __Samsung Fascinate / Mesmerize (SCH-I500):__ jt1134, sbrissen
* __Samsung Galaxy Note (GT-N7000):__ Espenfjo
* __Samsung Galaxy Note II (GT-N7100):__ nebkat
* __Samsung Galaxy Note II LTE (AT&T) (SGH-I317):__ cyanogen
* __Samsung Galaxy Note II LTE (Verizon) (SCH-I605):__ sbrissen
* __Samsung Galaxy Note II LTE (Sprint) (SPH-L900):__ sbrissen
* __Samsung Galaxy Note II LTE (USCC) (SCH-R950):__ sbrissen
* __Samsung Galaxy Note III (hlte):__ cyanogen, noobnl, slayher
* __Samsung Galaxy Note 8.0 3G (GT-N5100):__ sbrissen
* __Samsung Galaxy Note 8.0 Wifi (GT-N5110):__ sbrissen
* __Samsung Galaxy Note 10.1 (GT-N80XX):__ Espenfjo
* __Samsung Galaxy Note 10.1 LTE (Verizon) (SCH-I925):__ sbrissen
* __Samsung Galaxy Premier (GT-I9260):__ ljzyal
* __Samsung Galaxy R (GT-I9103):__ Adam77Root, Epsylon3
* __Samsung Galaxy S Blaze 4G (SGH-T769):__ UberPinguin
* __Samsung Galaxy S (GT-I9000):__ pawitp
* __Samsung Galaxy S (GT-I9000B):__ helvio88
* __Samsung Galaxy S II (T-Mobile) (SGH-T989):__ mikeyman77
* __Samsung Galaxy S II (AT&T) (SGH-I727):__ topprospect
* __Samsung Galaxy S II (AT&T) (SGH-I777):__
* __Samsung Galaxy S II (intl) (GT-I9100G):__ codeworkx, Jiangyi, Ryuinferno
* __Samsung Galaxy S III (AT&T) (SGH-I747):__ nardholio
* __Samsung Galaxy S III (Sprint) (SPH-L710):__ noobnl
* __Samsung Galaxy S III (Verizon) (SCH-I535):__ invisiblek
* __Samsung Galaxy S III LTE (GT-I9305):__ mcampbellsmith
* __Samsung Galaxy S IV (AT&T) (SGH-I337):__ FarmGeek4Life
* __Samsung Galaxy S IV (Sprint) (SPH-L720):__ noobnl
* __Samsung Galaxy S IV (T-Mobile) (SGH-M919):__ dcd
* __Samsung Galaxy S IV (Verizon) (SCH-I545):__ invisiblek
* __Samsung Galaxy S IV LTE (GT-I9505):__ AntaresOne
* __Samsung Galaxy S IV Mini 3G (GT-I9190):__ arco
* __Samsung Galaxy S IV Mini LTE (GT-I9195):__ arco
* __Samsung Galaxy S Relay 4G (SGH-T699):__
* __Samsung Galaxy Tab 7" (GSM):__ cdesai, humberos
* __Samsung Galaxy Tab 7" (CDMA):__ jt1134
* __Samsung Galaxy Tab 2 7" (GT-P31xx):__ codeworkx, codyf86
* __Samsung Galaxy Tab 2 10.1" (GT-P51xx):__ codyf86
* __Samsung Galaxy Tab Pro 8.4" (SM-T320):__ crpalmer
* __Samsung Vibrant (SGH-T959):__ FaultException
* __Sony Xperia L (taoshan):__ varunchitre15, jerpelea (FreeXperia team), Kali- (FreeXperia team)
* __Sony Xperia SP (huashan):__ jerpelea, Kali- (FreeXperia team), adfad666, uberlaggydarwin
* __Sony Xperia T (mint):__ jerpelea, Kali- (FreeXperia team), codeworkx, cdesai, tilal6991
* __Sony Xperia V (tsubasa):__ jerpelea, Kali- (FreeXperia team), tilal6991, championswimmer
* __Sony Xperia Z (yuga):__ jerpelea, Kali- (FreeXperia team), cdesai, championswimmer
* __Sony Xperia ZL (odin):__ jerpelea, Kali- (FreeXperia team), championswimmer
* __Sony Xperia ZR (dogo):__ jerpelea, Kali- (FreeXperia team), championswimmer
* __Sony Xperia Tablet Z LTE (pollux):__ jerpelea, Kali- (FreeXperia team), codeworkx
* __Sony Xperia Tablet Z Wifi (pollux_windy):__ jerpelea, Kali- (FreeXperia team), Bumble-Bee
* __Sony Xperia Tablet Z2 LTE (castor):__ Kali-, jerpelea, Binary (FreeXperia team)
* __Sony Xperia Tablet Z2 Wifi (castor_windy):__ Kali-, jerpelea, Binary (FreeXperia team)
* __Sony Xperia Z Ultra (togari):__ jerpelea, Kali- (FreeXperia team)
* __Sony Xperia Z1 (honami):__ jerpelea, Kali- (FreeXperia team), cdesai
* __Sony Xperia Z1 compact (amami):__ jerpelea, Kali- (FreeXperia team), intervigil, championswimmer, Bumble-Bee
* __Sony Xperia Z2 (sirius):__ Kali-, jerpelea (FreeXperia team), Bumble-Bee
* __Sony Z Ultra GPE (togari_gpe):__ jerpelea, Kali- (FreeXperia team), cdesai
* __Xiaomi Mi2(s) (aries):__ Michael Zimmermann



General developers:
-------------------
* __UI Team:__ blunden, prash
* __UX Team:__ blunden, ciwrl, daneshm, DvTonder, jackmu95, maniac103, Kaik541
* __Other:__ jruesga

Translators:
------------
* __Afrikaans:__ David van Tonder (DvTonder), Corrie Meyer (isimobile)
* __Arabic:__ Umar Omar (uomar8)
* __Asturian:__ esbardu (esbardu), ivarela (malditoastur), Xandru Martino Ruz (Xandru), Xuacu Saturio (Xuacu)
* __Catalan:__ Arnau (Arnau), Pau Galindo (Pau_Galindo)
* __Chinese Simplified:__ Matthew Humphrey (775405984), Contactfront (Contactfront), Easeman Wang (easeman9), jiveking (jiveking), Yun Liu (liuyun97), Hexchain Tong (richard0053), Ryan Chan (smartryan), Thomas Wang (ts0516)
* __Chinese Traditional:__ Hsiang Jung, CHENG (HJCHENG), Kelvin Cheong (kelvincheong), Bing-Hua Wang (louiswpf), npes87184 (npes87184), Ryan Chan (smartryan)
* __Chinese Traditional, Hong Kong:__ Kelvin Cheong (kelvincheong), Ryan Chan (smartryan), Li Chi Tung (tonyli1357)
* __Croatian:__ David Boca (davidboca), markan (markan), Robert Rozić (Rox), Josip Volf (Wuk)
* __Czech:__ Radovan Kepák (bckp), Štěpán Dalecký (daleckystepan), engy (engy), Keltek (Keltek), ScArSVK (ScArSVK), Snoop05 (Snoop05)
* __Danish:__ Morten Jørgensen (Fidoble), Jacob_DK (Jacob_DK), Ole Ingeman Christensen (OIChristensen)
* __Dutch:__ Eddy Witkamp (eddywitkamp), Frank Baeten (frankbaeten), Tom Heisterkamp (HappyFlow), Martin Coulon (martinusbe), Timo Viveen (Nadermane), ray1618 (ray1618), Marco Brohet (therbom)
* __Estonian:__ Rudolf Tammekivi (rtammekivi)
* __Finnish:__ Eero Hyrsky (EnergySnail), Jani Kinnunen (jkinnunen), Niko Koivu (niko0o), Sasu Lehtonen (zazza)
* __French:__ DelPETER (DelPETER), humpf (humpf), Julien Stephan (julienstephan29), laddass (laddass), .... (lemachinbidule), math Matmutant (matmutant), Micks29 (Micks29), opengillou (opengillou), Alexandre Bertrand (trandbert)
* __Galician:__ Daniel (canu7), Isaac Álvarez Veiga (Erithrym)
* __Georgian:__ Alexander (alexander_9)
* __German:__ Sascha Schroeder (c1ph4), Kim Le (elektroschmock78), Jacob Müller (jackmu95), Kilian von Pflugk (kilianvonpflugk), Kilowatt.W (kilowatt), Benjamin Huschle (kolsms), Danny Baumann (maniac103), Mardon (markusmenzel), maxee (maxee), michelsberg (michelsberg), Roman Ettlinger (romanett98), Stefan O. (stefanao), Thomas Reinhardt (tarreas), unpublished (unpublished), Yannik (yanniks)
* __Greek:__ Vasilis Akritas (billak75), Michael Bestas (mikeioannina)
* __Hebrew:__ Arthur Zamarin (arthurzam), evyatark2 (evyatark2), Mr_Guy (Mr_Guy), Oren Cohen (orenc17), sagi232123 (sagi232123)
* __Hindi:__ c0d3ripp3r (c0d3ripp3r), Solomon Sunder (solomonsunder)
* __Hungarian:__ Bálint Czobor (balint), Buga Dániel (BugaDániel), fischerandris (fischerandris), lazajnd (lazajnd), Tamás Tóth (tothtamassyman)
* __Indonesian:__ Vicky Sofyan (Arch9), famihyypia (famihyypia), Ilham Ibrahim (iiibrahim89), Ruswan Efendi (RuswanWu7), tohenk (tohenk)
* __Italian:__ Alessandro Preti (alessandropreti), Francesco Foresta (francescoforesta), Joey Rizzoli (linuxx), Lorenzo Faccini (lo97), rheeze (rheeze), Valdevies (Valdevies)
* __Japanese:__ Black Zigong (blackzigong), jiveking (jiveking), おたっく (otack), Sena Endo (senaforandroid), stmay30 (stmay30)
* __Korean:__ 이승렬 (toy0605)
* __Kurdish:__ falah (Dylan2785)
* __Latvian:__ Māris Rēdmanis (maaris)
* __Lithuanian:__ Liudas Ališauskas (liudas.alisauskas), Edmundas Plentauskas (plentauskas1992), HardLight (polizplz), Saulius Vyšniauskas (SauliusVy)
* __Luxembourgish:__ Michel Weimerskirch (michel_weimerskirch), soued031 (soued031)
* __Malay:__ tanakwagu (tanakwagu)
* __Norwegian Bokmal:__ Vegard Fladby (Allram), Sten Eikrem (Storesteinen)
* __Persian:__ Ali Niki (alinik), Mehdi HosseinZade (Arshen) (Arshen-2014), Yaser Rajabi (yrajabi)
* __Polish:__ Dawid (dawidohs), Kamil Jarosław (devloz1996), Michał Gątkowski (IreuN), Andrzej Ressel (jereksel), Michał Kamień (kamykowsky), lozohcum M (lozohcum), Tomasz Popielarczyk (popielarczyktomasz), Michał Jakubowski (revanmj)
* __Portuguese:__ João Pedro Luís (joaopluis), Sergio Borges (sergioborges99), André Pinela (sheffzor), Tercio Carvalho (tercioc)
* __Portuguese, Brazilian:__ Carlos Henrique Brendler Cabral (carloshbcabral), Gafanhotz (Gafanhotz), Gustavo Rosa (gustavogyn), Tercio Carvalho (tercioc)
* __Romanian:__ apolodor (apolodor), azzureux (azzureux), Marian-Mina Mihai (bboylalu), mihaitaus (mihaitaus)
* __Russian:__ Vladislav Koldobskiy (NeverGone), Alexey Kuznetsov (eeepc1016p), Artem Leshchev (matshch), Maxim Perepelitsa (N0xFF), Yaroslav Yadrishnikov (MrYadro)
* __Serbian (Cyrillic):__ Dragan Milenkovic (gagy187), Sava Mikalački (mikalackis), Драган (WD40)
* __Sinhala:__ Rananga Suraweera (rananga)
* __Slovak:__ Martin (mato), Bohuslav Oršula (orsulab), Peter Malík (PeterM), pyler (pyler), Snoop05 (Snoop05)
* __Spanish:__ Isaac Álvarez Veiga (Erithrym), Jorge Ruesga (jruesga), Lorenzo M (Lorenzo_M), luchomacedo92 (LuchoMacedo), Pau Galindo (Pau_Galindo)
* __Swedish:__ Simon Bäck (backsimon), elelinux (elelinux), Simon Danielsson (sad_88), Ted Lundwall (TedLundwall)
* __Tamil:__ Kishore Sheik Ahamed (kishoreinme), Solomon Sunder (solomonsunder), Stars Soft (starssoft), அருண் குமார் - Arun Kumar (thangamani-arun)
* __Thai:__ pureexe (pureexe)
* __Turkish:__ Arif GÜLER (ArF), Mesut Öztürk (doktormesut), Murat KOŞAK (muratkosak), okirat (okirat), Şenol (senoleker)
* __Ukrainian:__ Andriy Poznakhovskyy (Andrulko), Nazar Sokolovsky (nazar_sokolovsky), Maks (probil), xalich (xalich)
* __Uyghur:__ jiveking (jiveking)
* __Vietnamese:__ Bảo Quân (quan221295), Triet Bui Minh (x3cafe)

Graphics and Assets:
--------------------
* __Wallpapers:__ Matthew Hanley, Henry Mason
* __Icons:__ Bjorn Lunden, Henry Mason
* __Bootanimation:__ Dima Skvarskyi

Former Contributors:
--------------------
* __Devices:__ Entropy512, xplodwild, dhacker29, nardholio
* __Features:__ mad-murdock, wysie, Ander Webbs, ChainsDD, xplodwild
