# commonly generated files
*.pyc
*~
.*.sw?
.DS_Store
.classpath
.cproject
.gdb_history
.gdbinit
.landmines
.project
.pub
.pydevproject
.checkstyle
cscope.*
mojo_shell.trace
Session.vim
tags
Thumbs.db
v8.log
/build/util/LASTCHANGE*

# directories pulled in via deps or hooks
/build/linux/bin/eu-strip
/buildtools/
/dart/
/dart-pub-cache/
/native_client/
/out/
/out_*/
/sdch/open-vcdiff/
/testing/gmock/
/testing/gtest/
/third_party/android_tools/
/third_party/angle/
/third_party/appurify-python/
/third_party/breakpad/src/
/third_party/boringssl/src/
/third_party/brotli/src/
/third_party/colorama/src/
/third_party/dart-sdk/
/third_party/dart-pkg/archive
/third_party/dart-pkg/args
/third_party/dart-pkg/box2d
/third_party/dart-pkg/cassowary
/third_party/dart-pkg/collection
/third_party/dart-pkg/crypto
/third_party/dart-pkg/newton
/third_party/dart-pkg/path
/third_party/dart-pkg/quiver
/third_party/dart-pkg/source_span
/third_party/dart-pkg/string_scanner
/third_party/dart-pkg/vector_math
/third_party/dart-pkg/vector_math
/third_party/dart-pkg/yaml
/third_party/dejavu-fonts-ttf-2.34/ttf/*.ttf
/third_party/freetype-android/src
/third_party/go/
/third_party/icu/
/third_party/jsr-305/src/
/third_party/libc++/trunk/
/third_party/libc++abi/trunk/
/third_party/libjpeg_turbo/
/third_party/llvm/
/third_party/llvm-build/
/third_party/lss/
/third_party/junit/src/
/third_party/mesa/src/
/third_party/mockito/src/
/third_party/pdfium/
/third_party/pyelftools/
/third_party/pywebsocket/src/
/third_party/requests/src/
/third_party/robolectric/src/
/third_party/skia/
/third_party/smhasher/src/
/third_party/yasm/binaries/
/third_party/yasm/source/patched-yasm/
/tools/grit/
/v8/

# dart packages directories and related.
/examples/dart/hello_world/hello/.packages
/examples/dart/hello_world/hello/packages
/examples/dart/device_info/.packages
/examples/dart/device_info/packages
/examples/dart/hello_world/world/.packages
/examples/dart/hello_world/world/packages
/examples/dart/netcat/.packages
/examples/dart/netcat/packages
/examples/dart/traced_application/.packages
/examples/dart/traced_application/packages
/examples/dart/wget/.packages
/examples/dart/wget/packages
/mojo/common/dart/.packages
/mojo/common/dart/packages
/mojo/dart/apptest/.packages
/mojo/dart/apptest/packages
/mojo/dart/http_load_test/.packages
/mojo/dart/http_load_test/bin/packages
/mojo/dart/http_load_test/packages
/mojo/dart/mojo_services/.packages
/mojo/dart/mojo_services/packages
/mojo/dart/mojo_services/pubspec.lock
/mojo/dart/mojom/.packages
/mojo/dart/mojom/bin/packages
/mojo/dart/mojom/packages
/mojo/dart/mojom/test/packages
/mojo/dart/observatory_test/.packages
/mojo/dart/testing/.packages
/services/dart/test/echo/.packages
/services/dart/test/echo/packages
/services/dart/test/pingpong/.packages
/services/dart/test/pingpong/packages
/services/dart/test/pingpong_target/.packages
/services/dart/test/pingpong_target/packages

# downloaded keyboard_native resources.
/services/keyboard_native/res/*.png

# breakpad tool
/mojo/tools/linux64/dump_syms
/mojo/tools/linux64/symupload

# downloaded prediction dictionary files.
/services/prediction/res/*.dict
