The following volunteers have contributed code, documentation, testing and/or
support to Apache Flex Squiggly.

Apache Flex SDK Installer 3.2
-----------------------------
Alex Harui, Andrey Gorbatov, Christofer Dutz, DarkStone, Greg Dove, Josh Tynjala,
João Fernandes, Justin Mclean, Lee Burrows, Lopez Sébastien, Maxim Solodovnik,
Neil Madsen, Nick Kwiatkowski, OmPrakash Muppirala, Piotr Zarzycki, Quinn Buchanan,
Tom Chiverton

If you've missing from this list please get in touch and you'll appear in future
versions of this document.
