code: func (m *symbol) penalty4() int {
  	numModules := m.symbolSize * m.symbolSize
  	numDarkModules := 0
  
  	for x := 0; x < m.symbolSize; x++ {
  		for y := 0; y < m.symbolSize; y++ {
  			if v := m.get(x, y); v {
  				numDarkModules++
  			}
  		}
  	}
  
  	numDarkModuleDeviation := numModules/2 - numDarkModules
  	if numDarkModuleDeviation < 0 {
  		numDarkModuleDeviation *= -1
  	}
  
  	return penaltyWeight4 * (numDarkModuleDeviation / (numModules / 20))
  }
docs: // penalty4 returns the penalty score...