code: func (mt *MT19937) SeedFromSlice(key []uint64) {
  	mt.Seed(19650218)
  
  	x := mt.state
  	i := uint64(1)
  	j := 0
  	k := len(key)
  	if n > k {
  		k = n
  	}
  	for k > 0 {
  		x[i] = (x[i] ^ ((x[i-1] ^ (x[i-1] >> 62)) * 3935559000370003845) +
  			key[j] + uint64(j))
  		i++
  		if i >= n {
  			x[0] = x[n-1]
  			i = 1
  		}
  		j++
  		if j >= len(key) {
  			j = 0
  		}
  		k--
  	}
  	for j := uint64(0); j < n-1; j++ {
  		x[i] = x[i] ^ ((x[i-1] ^ (x[i-1] >> 62)) * 2862933555777941757) - i
  		i++
  		if i >= n {
  			x[0] = x[n-1]
  			i = 1
  		}
  	}
  	x[0] = 1 << 63
  }
docs: // SeedFromSlice uses the given slice of 64bit values to set the
  // generator state.