# Visual Studio
*_i.c
*_p.c
*.aps
*.bak
*.cache
*.dll
*.err
*.exe
*.i
*.ilk
*.lib
*.log
*.ncb
*.obj
*.opendb
*.opensdf
*.pch
*.pdb
*.sbr
*.sdf
*.suo
*.tlb
*.tlh
*.user
*.VC.db
*.vcxproj.user
*.vspscc
*.wrn
.vs/

# Visual Studio Extensions
*.vadbg
*.args.json

# Build Artifacts
build_*.err
build_*.log
build_*.wrn
Build/ipch/
Build/swum-cache.txt
Build/VCBuild.Lite/
Build/VCBuild.NoJIT/
Build/VCBuild.SWB/
Build/VCBuild.ClangCL/
Build/VCBuild/
buildchk.*
buildfre.*
out/
_DROP/

# Generated Files
*.bc
*.dpl.*
*.nupkg
*.pyc
*.tlog/
/test/_ttdlog/*
ComputedEnvironment.cmd
packages/
profile.dpl.*
sd.ini
test/*/*.baseline.rebase
test/benchmarks/*.dpl
test/benchmarks/*.txt
testout*
packages.config
lib/wabt/built/

# CMake Files
cmake_install.cmake
CMakeCache.txt
CMakeFiles
CMakeScripts
install_manifest.txt

# xcode
*.xcodeproj
*.xcworkspace

# ICU
deps/Chakra.ICU/Chakra.ICU.props
deps/Chakra.ICU/icu

# VIM
.*.swo
.*.swp
tags

# VS Code
.vscode/

# additional *nix generated files
*.a
*.gch
*.o
*.so
*.dylib
Makefile
pal/src/config.h
DbgController.js.h
lib/wabt/built/config.h

# Generated by other tools
*.lldb.cmd
*.orig

.DS_Store
android-toolchain-arm/
cc-toolchain/
/TraceOutput.txt
Build/VcBuild
Build/VcBuild.NoJIT
Build/VcBuild.SWB
