// auto generated by go tool dist

package runtime

const defaultGoroot = `/tmp/go`
const theVersion = `go1.5.1`
const goexperiment = ``
const stackGuardMultiplier = 1
var buildVersion = theVersion
