private uint[] UnpackOffsets()
{
// return bitmap uints
uint max = 0;
foreach (var i in _offsets)
if (i > max)
max = i;
var ints = new uint[(max >> 5) + 1];
foreach (var index in _offsets)
{
int pointer = ((int) index) >> 5;
uint mask = (uint) 1 << (31 - // high order bit set
((int) index%32));
ints[pointer] |= mask;
}
return ints;
}