Contributed by Braden Collum
Contributed by Alain Papazian
Contributed by Jacek Dobrzyniecki
Contributed by Philippe Dionne Bussières
Contributed by Stephen Coles