Apache Flex Tour De Flex
Copyright 2014 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

The Initial Developer of the Original Code, known as TourDeFlex, 
is Adobe Systems Incorporated (http://www.adobe.com/).
Copyright 2009 - 2013 Adobe Systems Incorporated. All Rights Reserved.

The ping sound effect (ping.mp3) in TourDeFlex3/src/mx/effects/assets
was created by CameronMusic. The original file can be found here:
http://www.freesound.org/people/cameronmusic/sounds/138420/

The text used in the summaries of each version of Apache Flex
in TourDeFlex can be found here:
http://en.wikipedia.org/wiki/Apache_Flex
