public static OKPacket valueOf(Packet packet) throws IOException {
final XDeserializer d = new XDeserializer(packet.getPacketBody());
final OKPacket r = new OKPacket();
r.length = packet.getLength();
r.sequence = packet.getSequence();
r.packetMarker = d.readInt(1);
r.affectedRows = d.readUnsignedLong();
r.insertId = d.readUnsignedLong();
r.serverStatus = d.readInt(2);
r.warningCount = d.readInt(2);
if(d.available() > 0) r.message = d.readFixedLengthString(d.available());