# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Debugger
.attach_*

# Gradle build process files
**/.gradle/**/*
**/build/**/*
**/.gradletasknamecache

# IntelliJ
.idea

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
