# People who can approve changes for submission
cantol@google.com
chiujason@google.com
cipson@google.com
dsandler@android.com
edgarwang@google.com
evanlaird@google.com
jiannan@google.com
juliacr@google.com
ykhung@google.com

# Exempt resource files (because they are in a flat directory and too hard to manage via OWNERS)
per-file *.xml=*
