public override void Load(BinaryReader reader)
{
short sbsize = reader.ReadInt16 ();
short bsize = reader.ReadInt16 ();
int numsuperblocks = reader.ReadInt32 ();
var sblocks = new int[numsuperblocks];
PrimitiveIO<int>.LoadVector (reader, numsuperblocks, sblocks);
int numblocks = reader.ReadInt32 ();
var blocks = new short[numblocks];
PrimitiveIO<short>.LoadVector (reader, numblocks, blocks);
var numbitblocks = reader.ReadInt32 ();
var bitblocks = new uint[numbitblocks];
PrimitiveIO<uint>.LoadVector (reader, numbitblocks, bitblocks);
var numbits = reader.ReadInt32 ();
this.SetState (bitblocks, numbits, sbsize, bsize, sblocks, blocks);
}