docs: public int readSignedInt() {
          int variableByteDecode = 0;
          byte variableByteShift = 0;
  
          // check if the continuation bit is set
          while ((this.bufferData[this.bufferPosition] & 0x80) != 0) {
              variableByteDecode |= (this.bufferData[this.bufferPosition++] & 0x7f) << variableByteShift;
              variableByteShift += 7;
          }
  
          // read the six data bits from the last byte
          if ((this.bufferData[this.bufferPosition] & 0x40) != 0) {
              // negative
              return -(variableByteDecode | ((this.bufferData[this.bufferPosition++] & 0x3f) << variableByteShift));
          }
          // positive
          return variableByteDecode | ((this.bufferData[this.bufferPosition++] & 0x3f) << variableByteShift);
      }