# MacOS file system attributes
*.DS_Store
# 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
google_oauth_token.data
oauth-token.cache
# Node related directories
node_modules
# Sublime project files
*.sublime-project
*.sublime-workspace
# IntelliJ GoLand project files
.idea
*.iml
# 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
# Ignore all SQLite databases, because tests will create their own unique ones.
*.db
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

# gitignore template for Bazel build system
# website: https://bazel.build/

# Ignore all _bazel_* symlinks. There is no full list since this can change
# based on the name of the directory bazel is cloned into. Note that the prefix
# is set in .bazelrc.
_bazel_*
