docs: static int readRawVarint32(final DataInput input, final byte firstByte) throws IOException
      {
          int result = firstByte & 0x7f;
          int offset = 7;
          for (; offset < 32; offset += 7)
          {
              final byte b = input.readByte();
              result |= (b & 0x7f) << offset;
              if ((b & 0x80) == 0)
              {
                  return result;
              }
          }
          // Keep reading up to 64 bits.
          for (; offset < 64; offset += 7)
          {
              final byte b = input.readByte();
              if ((b & 0x80) == 0)
              {
                  return result;
              }
          }
          throw ProtobufException.malformedVarint();
      }