public int CalculateDistance(IHashItem dist)
        {
            Hash256LookUpItem l = (Hash256LookUpItem)dist;
            int val             = Table[l.Hashes[0] ^ Hashes[0]];

            val += Table[l.Hashes[1] ^ Hashes[1]];
            val += Table[l.Hashes[2] ^ Hashes[2]];
            val += Table[l.Hashes[3] ^ Hashes[3]];
            val += Table[l.Hashes[4] ^ Hashes[4]];
            val += Table[l.Hashes[5] ^ Hashes[5]];
            val += Table[l.Hashes[6] ^ Hashes[6]];
            val += Table[l.Hashes[7] ^ Hashes[7]];
            val += Table[l.Hashes[8] ^ Hashes[8]];
            val += Table[l.Hashes[9] ^ Hashes[9]];
            val += Table[l.Hashes[10] ^ Hashes[10]];
            val += Table[l.Hashes[11] ^ Hashes[11]];
            val += Table[l.Hashes[12] ^ Hashes[12]];
            val += Table[l.Hashes[13] ^ Hashes[13]];
            val += Table[l.Hashes[14] ^ Hashes[14]];
            val += Table[l.Hashes[15] ^ Hashes[15]];
            return(val);
        }
        public int CompareTo(object obj)
        {
            Hash256LookUpItem b = (Hash256LookUpItem)obj;

            return(SortDistance.CompareTo(b.SortDistance));
        }