code: private final <T extends Value> void deserialize(T target, int offset, int limit, int fieldNumber) {
  		final InternalDeSerializer serializer = this.serializer;
  		serializer.memory = this.binaryData;
  		serializer.position = offset;
  		serializer.end = limit;
  		try {
  			target.read(serializer);
  		}
  		catch (Exception e) {
  			throw new DeserializationException("Error reading field " + fieldNumber + " as " + target.getClass().getName(), e);
  		}
  	}
docs: Deserializes the given object from the binary string, starting at the given position.
  If the deserialization asks for more that <code>limit - offset</code> bytes, than
  an exception is thrown.
  
  @param <T> The generic type of the value to be deserialized.
  @param target The object to deserialize the data into.
  @param offset The offset in the binary string.
  @param limit The limit in the binary string.