added gap array variant using one byte per index plus overflow buffer