private static boolean isAttributesEqual(@NotNull List<? extends Attribute> l1,
                                           @NotNull List<? extends Attribute> l2,
                                           boolean ignoreEmptyAttrValues) {
    if (ignoreEmptyAttrValues) {
      l1 = getNotEmptyAttributes(l1);
      l2 = getNotEmptyAttributes(l2);
    }
    if (l1.size() != l2.size()) {
      return false;
    }
    for (int i = 0; i < l1.size(); i++) {
      if (!attributesEqual(l1.get(i), l2.get(i))) {
        return false;
      }
    }
    return true;
  }
private static boolean isAttributesEqual(@NotNull List<? extends Attribute> l1,
                                           @NotNull List<? extends Attribute> l2,
                                           boolean ignoreEmptyAttrValues)