This project is an effort by many people. If you feel that your name
should be in here and has been omitted in error, please open an issue with
the Velocity Tools Issue tracker at issues.apache.org/jira/browse/VELTOOLS

Christopher Schultz
Chris Townsen
Claude Brisson
Craig R. McClanahan
Daniel Rall
Dave Bryson
David Graham
David Winterfeldt
Denis Bredelet
Dmitri Colebatch
Gabriel Sidler
Geir Magnusson Jr.
Henning P. Schmiedehausen
Jon S. Stevens
Kent Johnson
Leon Messerschmidt
Marinó A. Jónsson
Mike Kienenberger
Nathan Bubna
Oliver O'Halloran
S. Brett Sutton
Shinobu Kawai
Spencer Davis
Ted Husted
Tim Colson
