code: func decodeCompressedTxOut(serialized []byte) (uint64, []byte, int, error) {
  	// Deserialize the compressed amount and ensure there are bytes
  	// remaining for the compressed script.
  	compressedAmount, bytesRead := deserializeVLQ(serialized)
  	if bytesRead >= len(serialized) {
  		return 0, nil, bytesRead, errDeserialize("unexpected end of " +
  			"data after compressed amount")
  	}
  
  	// Decode the compressed script size and ensure there are enough bytes
  	// left in the slice for it.
  	scriptSize := decodeCompressedScriptSize(serialized[bytesRead:])
  	if len(serialized[bytesRead:]) < scriptSize {
  		return 0, nil, bytesRead, errDeserialize("unexpected end of " +
  			"data after script size")
  	}
  
  	// Decompress and return the amount and script.
  	amount := decompressTxOutAmount(compressedAmount)
  	script := decompressScript(serialized[bytesRead : bytesRead+scriptSize])
  	return amount, script, bytesRead + scriptSize, nil
  }
docs: // decodeCompressedTxOut decodes the passed compressed txout, possibly followed
  // by other data, into its uncompressed amount and script and returns them along
  // with the number of bytes they occupied prior to decompression.