# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache

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

# building
target
[Bb]uild/
null
tmp
temp
dist
test-output
build.log
release
out
gen
local.properties

#Apache Flex Projects
lib/
libs/
in/
swfobject/
flex2/
thirdparty/
META-INF/
tempDoc/
air/

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
env.properties
local.properties
packages.dita
rat.report
airsdk.xml

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

#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/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#CVS files
.svn
.git

# Office Temp Files
~$*

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

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

/asdoc-output/

#mustellarunner
*.patch
*.reply
mailbody.txt
gitstatus.txt

#AIR SDK
frameworks/projects/air/
runtimes/
templates/air/
samples/badge/
samples/icons/
templates/air/
templates/extensions/
templates/sdk/
install/android
AIR SDK Readme.txt
AIR SDK license.pdf
air-sdk-description.xml
samples/descriptor-sample.xml
include/FlashRuntimeExtensions.h

