code: private static int readLen(InputStream in) throws IOException {
          int c = in.read();
          if (c > 0) {
              if ((c & 0x80) == 0) {
              } else if ((c & 0xC0) == 0x80) {
                  c = c & ~0xC0;
                  c = (c << 8) | in.read();
              } else if ((c & 0xE0) == 0xC0) {
                  c = c & ~0xE0;
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
              } else if ((c & 0xF0) == 0xE0) {
                  c = c & ~0xF0;
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
              } else if ((c & 0xF8) == 0xF0) {
                  c = in.read();
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
                  c = (c << 8) | in.read();
              }
          }
          return c;
      }
docs: read length bytes from stream and return length of coming word