code: public final IcedHashMapBase read_impl(AutoBuffer ab) {
      try {
        assert map() == null || map().isEmpty(); // Fresh from serializer, no constructor has run
        Map<K, V> map = init();
        int mode = ab.get1();
        if (mode == 0) return this;
        K key;
        V val;
        while ((key = (isStringKey(mode) ? (K) ab.getStr() : (K) ab.get())) != null) {
          if (mode == 5 || mode == 6) {
            Freezable[] vals = new Freezable[ab.get4()];
            for (int i = 0; i < vals.length; ++i) vals[i] = ab.get();
            map.put(key, (V) vals);
          } else {
            val = ((mode == 1 || mode == 3) ? (V) ab.getStr() : (V) ab.get());
            map.put(key, val);
          }
        }
        return this;
      } catch(Throwable t) {
        t.printStackTrace();
  
        if (null == t.getCause()) {
          throw H2O.fail("IcedHashMap deserialization failed! + " + t.toString() + ", msg = " + t.getMessage() + ", cause: null");
        } else {
          throw H2O.fail("IcedHashMap deserialization failed! + " + t.toString() + ", msg = " + t.getMessage() +
                  ", cause: " + t.getCause().toString() +
                  ", cause msg: " + t.getCause().getMessage() +
                  ", cause stacktrace: " + java.util.Arrays.toString(t.getCause().getStackTrace()));
        }
      }
    }
docs: Helper for serialization - fills the mymap() from K-V pairs in the AutoBuffer object
  @param ab Contains the serialized K-V pairs