docs: public int unpackArrayHeader()
              throws IOException
      {
          byte b = readByte();
          if (Code.isFixedArray(b)) { // fixarray
              return b & 0x0f;
          }
          switch (b) {
              case Code.ARRAY16: { // array 16
                  int len = readNextLength16();
                  return len;
              }
              case Code.ARRAY32: { // array 32
                  int len = readNextLength32();
                  return len;
              }
          }
          throw unexpected("Array", b);
      }