code: public void gotoNextBlockStart(int index, int xor) { // goto block start pos
          if (xor < (1 << 10)) { // level = 1
              display0 = (Object[]) display1[(index >> 5) & 31];
          } else if (xor < (1 << 15)) { // level = 2
              display1 = (Object[]) display2[(index >> 10) & 31];
              display0 = (Object[]) display1[0];
          } else if (xor < (1 << 20)) { // level = 3
              display2 = (Object[]) display3[(index >> 15) & 31];
              display1 = (Object[]) display2[0];
              display0 = (Object[]) display1[0];
          } else if (xor < (1 << 25)) { // level = 4
              display3 = (Object[]) display4[(index >> 20) & 31];
              display2 = (Object[]) display3[0];
              display1 = (Object[]) display2[0];
              display0 = (Object[]) display1[0];
          } else if (xor < (1 << 30)) { // level = 5
              display4 = (Object[]) display5[(index >> 25) & 31];
              display3 = (Object[]) display4[0];
              display2 = (Object[]) display3[0];
              display1 = (Object[]) display2[0];
              display0 = (Object[]) display1[0];
          } else { // level = 6
              throw new IllegalArgumentException();
          }
      }
docs: xor: oldIndex ^ index