@Override
 protected void setLastSkipData(int level) {
   super.setLastSkipData(level);
   lastFreqPointer = freqPointer[level];
   lastProxPointer = proxPointer[level];
   lastPayloadLength = payloadLength[level];
   lastOffsetLength = offsetLength[level];
 }
 @Override
 protected void seekChild(int level) throws IOException {
   super.seekChild(level);
   freqPointer[level] = lastFreqPointer;
   proxPointer[level] = lastProxPointer;
   payloadLength[level] = lastPayloadLength;
   offsetLength[level] = lastOffsetLength;
 }
  public void init(
      long skipPointer,
      long freqBasePointer,
      long proxBasePointer,
      int df,
      boolean storesPayloads,
      boolean storesOffsets) {
    super.init(skipPointer, df);
    this.currentFieldStoresPayloads = storesPayloads;
    this.currentFieldStoresOffsets = storesOffsets;
    lastFreqPointer = freqBasePointer;
    lastProxPointer = proxBasePointer;

    Arrays.fill(freqPointer, freqBasePointer);
    Arrays.fill(proxPointer, proxBasePointer);
    Arrays.fill(payloadLength, 0);
    Arrays.fill(offsetLength, 0);
  }