code: func (d *digest) pad() {
  	offset := d.absorbed % d.rate()
  	// The opening pad bit must be shifted into position based on the number of bytes absorbed
  	padOpenLane := offset / laneSize
  	d.a[padOpenLane] ^= 0x0000000000000001 << uint(8*(offset%laneSize))
  	// The closing padding bit is always in the last position
  	padCloseLane := (d.rate() / laneSize) - 1
  	d.a[padCloseLane] ^= 0x8000000000000000
  }
docs: // pad computes the SHA3 padding scheme based on the number of bytes absorbed.
  // The padding is a 1 bit, followed by an arbitrary number of 0s and then a final 1 bit, such that
  // the input bits plus padding bits are a multiple of rate(). Adding the padding simply requires
  // xoring an opening and closing bit into the appropriate lanes.