# MacOS file system attributes
*.DS_Store
# Compiled python files.
*.pyc
# Backup Files
*~
# 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/configs/local
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/res/css
prometheus/tmp
# Jupyter
.ipynb_checkpoints
# Prober
prober/allprobers.json5
# Push
push/allskiapush.json5
# AP
dist
# 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
mcp/services/weather/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_*

# Created by rules_js (https://github.com/aspect-build/rules_js).
.aspect

# Gemini CLI
.gemini

# Gemini Context
GEMINI.md

# Dotenv
.env
