# Compiled python files.
*.pyc
# Files open in vi.
*.swp
# Compiled cfg files.
*.cfgc
# gclient files
.gclient*
# recipe DEPS
infra/bots/.recipe_deps
# common code
**/res/common
# TAGS
*TAGS
*tags
# Files used by bugdroid.
.bugdroid_password
services/bugdroid/bugdroid_log.txt
# Data files used by webpages_playback.py
# Eclipse project files
.project
.pydevproject
**/client_secret.json
**/client_secret_swarming.json
**/client_secret_skia-buildbots.json
**/client_secret_skia-swarming-bots.json
**/service-account.json
**/google_storage_token.data
**/gcloud_token.data
**/gcloud_token_skia-buildbots.data
**/gcloud_token_skia-swarming-bots.data
git_cookie_authdaemon/third_party
google_oauth_token.data
oauth-token.cache
# Bower and Node related directories
node_modules
bower_components
package-lock.json
# Sublime project files
*.sublime-project
*.sublime-workspace
# IntelliJ GoLand project files
.idea
# Generated Go files.
go/depot_tools/gen_version.go
go/skiaversion/gen_version.go
# Generated for Go package.
pdfium/build
# Generated by the 'absent' tool
prometheus/sys/absent.rules
# Server executables/config
**/res/vul/
**/res/js/core-debug.js
**/res/js/core.js
fuzzer/res/css/fuzzer.css
fuzzer/third_party
perf/bqtoken.data
perf/res/css/perf.css
perf/res/common
perf/third_party
perf/timestamp.json
perf/local.toml
perf/client_secrets.json
perf/go/ingester/testdata/local-ingest-test/
push/third_party
push/res/common
sksysmon/third_party
sksysmon/res/common
doc/res/common
doc/res/css/docs.css
doc/third_party
alertserver/third_party
status/third_party
android_ingest/third_party
android_compile/third_party
res/imp/res
res/imp/9/res
res/imp/9/res/js
res/imp/9/bower_components
# Ignore all SQLite databases, because tests will create their own unique ones.
*.db
# Logfiles from launched buildslaves.
launch_slaves.log*
tracedb/local_perf.toml
fiddle/fiddle_secwrap
fiddle/res/css
prometheus/tmp
# Jupyter
.ipynb_checkpoints
# Prober
prober/allprobers.json5
proberk/allprobersk.json
# Push
push/allskiapush.json5
# AP
dist
# jsdoc
common/out
push/out
ap/out
jsdoc/out
# lottiecap
lottiecap/filmstrip.png
# promk
promk/tmp
promk/tmpconf
promk/prometheus/absent_*.yml
# kube
**/chat_config.txt
.vscode
tracedb/build
skolo/build
# Symlinks.
autoroll/res/res
status/res/res
status/res/imp/task_driver_sk-bundle.css
status/res/imp/task_driver_sk-bundle.js
gold-client/build
