#Licensed to the Apache Software Foundation (ASF) under one or more contributor license
#agreements. See the NOTICE file distributed with this work for additional information regarding
#copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
#"License"); you may not use this file except in compliance with the License. You may obtain a
#copy of the License at
#
#http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software distributed under the License
#is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
#or implied. See the License for the specific language governing permissions and limitations under
#the License.
#
#GIT
.git/**
**/.gitignore
**/.gitkeep
#IDE
etc/eclipse-java-google-style.xml
etc/intellij-java-modified-google-style.xml
etc/eclipseOrganizeImports.importorder
**/.project
**/.classpath
**/.settings/**
**/build-eclipse/**
**/*.iml
**/*.ipr
**/*.iws
.idea/**
**/tags
**/out/**

# text files
**/*.fig
**/*.txt
**/*.md
**/*.json
**/*.tx0
**/*.txo
**/*.log
**/*.patch
**/*.diff
**/*.rej
**/*.orig
**/*.MF

#binary files
**/*.cer
**/*.dia
**/*.gfs
**/*.gif
**/*.ico
**/*.jpg
**/*.keystore
**/*.pdf
**/*.png
**/*.ser
**/*.svg
**/*.truststore
**/*.xls
**/publickeyfile
**/*.dat

#other text files
**/log4j*.xml
**/META-INF/**