49ers.com8 Observations from 49ers 2019 Training Camp: July 27Jul 27, 2019bookmark_bordersharemore_vert