# This is a list of names we have recorded that already are thanked
# appropriately in THANKS. This list contains variations of their names and
# their "canonical" name. This file is used for scripting purposes to avoid
# duplicate entries and will not be included in release tarballs.
# When removing dupes that aren't identical names from THANKS, add a line
# here!
#
# Used-by: contributor.sh
s/Andres Garcia/Andrés García/
s/Chris Conroy/Christopher Conroy/
s/Francois Charlier/François Charlier/
s/Gokhan Sengun/Gökhan Şengün/
s/John Malmberg/John E. Malmberg/
s/Luca Alteas/Luca Altea/
s/Michal Gorny/Michał Górny/
s/Michal Górny/Michał Górny/
s/^Moonesamy$/S. Moonesamy/
s/Pete Su$/Peter Su/
s/Sam Listopad/Samuel Listopad/
s/Sebastien Willemijns/Sébastien Willemijns/
s/YAMADA Yasuharu/Yasuharu Yamada/
s/Karl M$/Karl Moerder/
s/Bjorn Stenberg/Björn Stenberg/
s/upstream tests 305 and 404//
s/Gaël PORTAY/Gaël Portay/
s/Romulo Ceccon/Romulo A. Ceccon/
s/Nach M. S$/Nach M. S./
s/Jay Satiro/Ray Satiro/
s/Richard J. Moore/Richard Moore/
s/Sergey Nikulov/Sergei Nikulov/
s/Petr Písař/Petr Pisar/
s/Nick Zitzmann (originally)/Nick Zitzmann/
s/product-security at Apple//
s/IT DOES NOT WORK//
s/Albert Chin$/Albert Chin-A-Young/
s/Paras S\z/Paras Sethia/
s/Paras Sethiaethia/Paras Sethia/
s/Дмитрий Фалько/Dmitry Falko/
s/byte_bucket in the #curl IRC channel//
s/Michal Górny and Anthony G. Basile//
s/Alejandro Alvarez$/Alejandro Alvarez Ayllon/
s/Ant Bryan/Anthony Bryan/
s/Cédric Deltheil/Cédric Deltheil/
s/Christian Hagele/Christian Hägele/
s/douglas steinwand/Douglas Steinwand/
s/Frank Van Uffelen and Fabian Hiernaux//
s/Rodrigo Silva (MestreLion)/Rodrigo Silva/
s/tetetest tetetest//
s/Jiří Hruška/Jiri Hruska/
s/Viktor Szakáts/Viktor Szakats/
s/Jonathan Cardoso$/Jonathan Cardoso Machado/
s/Linus Nielsen$/Linus Nielsen Feltzing/
s/Todd Ouska$/Todd A Ouska/
s/Tim Ruehsen/Tim Rühsen/
s/Michael Koenig/Michael König/
s/moparisthebest/Travis Burtrum/
s/Jan-E/Jan Ehrhardt/
s/Paras S$/Paras Sethia/
s/Cristian Rodr\xEDguez$/Cristian Rodríguez/
s/Sidney San Mart\xEDn$/Sidney San Martín/
s/Sidney San Martin$/Sidney San Martín/
s/Taneli V\xE4h\xE4kangas$/Taneli Vähäkangas/
s/Taneli Vahakangas$/Taneli Vähäkangas/
s/Никита Дорохин./Никита Дорохин/
s/upstream tests 305//
s/ (edited)//
s/Jean-Philippe Barette-LaPierre$/Jean-Philippe Barrette-LaPierre/
s/Joern Hartroth$/Jörn Hartroth/
s/Hongli Lai (Phusion)$/Hongli Lai/
s/github user 'kreshano'$/kreshano on github/
s/Marc Hoersken$/Marc Hörsken/
s/Martin Storsjo$/Martin Storsjö/
s/Jiri Malak$/Jiří Malák/
s/JDepooter$/Joel Depooter/
s/ERAMOTO Masaya$/Eramoto Masaya/
s/shachaf on github$/Shachaf Ben-Kiki/
s/CarloCannas on github$/Carlo Cannas/
s/Henrik S. Gaßmann$/Henrik Gaßmann/
s/moteus on github/Alexey Melnichuk/
s/Rich Moore/Richard Moore/
s/kdekker/Kees Dekker/
s/Daniel Jelinski/Daniel Jeliński/
s/Dario Weisser/Dario Weißer/
s/Github user @jakirkham/jakirkham on github/
s/Guenter Knauf/Gunter Knauf/
s/Matteo B.$/Matteo Bignotti/
s/Dan C$/Dan Cristian/
s/Mark Eichin/Mark W. Eichin/
s/Andreas Faerber/Andreas Farber/
s/paulharris on github/Paul Harris/
s/Warp Kawada/Yukihiro Kawada/
s/Lau Hang Kin/Hang Kin Lau/
s/Jonathan Cardoso Machado Machado/Jonathan Cardoso Machado/
s/David Meyer/David J Meyer/
s/Ramana Mokkapati/Venkataramana Mokkapati/
s/wyattoday on github/Wyatt O'Day/
s/Jason Priebe/Jason S. Priebe/
s/Ale Vesely/Alessandro Vesely/
s/Yamada Yasuharu/Yasuharu Yamada/
s/Jim Gallagher/James Gallagher/
