code: @GwtIncompatible("com.google.common.base.Splitter.onPattern()")
    public static VariableMap fromBytes(byte[] bytes) throws ParseException {
      String string = new String(bytes, UTF_8);
      ImmutableMap.Builder<String, String> map = ImmutableMap.builder();
      int startOfLine = 0;
      while (startOfLine < string.length()) {
        int newLine = string.indexOf('\n', startOfLine);
        if (newLine == -1) {
          newLine = string.length();
        }
        int endOfLine = newLine;
        if (string.charAt(newLine - 1) == '\r') {
          newLine--;
        }
        String line = string.substring(startOfLine, newLine);
        startOfLine = endOfLine + 1; // update index for next iteration
        if (line.isEmpty()) {
          continue;
        }
        int pos = findIndexOfUnescapedChar(line, SEPARATOR);
        if (pos <= 0) {
          throw new ParseException("Bad line: " + line, 0);
        }
        map.put(
            unescape(line.substring(0, pos)),
            pos == line.length() - 1 ? "" : unescape(line.substring(pos + 1)));
      }
      return new VariableMap(map.build());
    }
docs: Deserializes the variable map from a byte array returned by
  {@link #toBytes()}.