# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache
.actionScriptProperties
.flexProperties
.flexLibProperties

# idea conf files
.idea
*.iml
*.ipr
*.iws

# building
target/
[Bb]uild/
null
tmp
temp
dist
test-output
build.log
release
fonts
out
gen
bin-debug
bin-release
binjs-debug
binjs-release
examples/FlexJSTest_again/html-template
examples/FlexJSTest_again/bin
rat.report
mustella/tests/basicTests/bin
asdoc-output

#Apache Flex Projects
lib/
libs/
in/
swfobject/
flex2/
thirdparty/
3.0.33/
3.0.33

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
empty.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
frameworks/air-config.xml
frameworks/createjs-config.xml
frameworks/flex-config.xml
frameworks/jquery-config.xml
frameworks/js-config.xml
frameworks/node-config.xml
frameworks/royale-config.xml
env.properties
local.properties
/flex-sdk-description.xml
/royale-sdk-description.xml

#OS junk files
[Tt]humbs.db
*.DS_Store

#Files we fake for Flash Builder SDKs
frameworks/airmobile-config.xml
frameworks/mxml-manifest.xml
frameworks/spark-manifest.xml
frameworks/themes/Halo/Halo.swc
frameworks/themes/Spark/spark.css
ide/flashbuilder/flashbuilder-config.xml

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Dd]ebug/
[Rr]elease*/
Ankh.NoLoad
!releasemgr

#Tooling
_ReSharper*/
*.resharper

#CVS files
.svn
.git

# Office Temp Files
~$*

#Binaries
*.dll
*.bin
*.com
*.exe
*.class
*.jar
*.swf
*.swc

#Compressed Files
*.zip
*.rar
*.tar

#VF2JS generated files
vf2js/frameworks/js/

#FlexJS generated files
frameworks/js/FlexJS/generated-sources
manualtests/FlexJSTest_SVG/bin
