protected Map<String, List<Object>> buildMutableAttributeMap(final Map<String, List<Object>> attributes) {
        val mutableValuesBuilder = this.createMutableAttributeMap(attributes.size());
        for (val attrEntry : attributes.entrySet()) {
            val key = attrEntry.getKey();
            var value = attrEntry.getValue();
            if (value != null) {
                value = new ArrayList<>(value);
            }
            mutableValuesBuilder.put(key, value);
        }
        return mutableValuesBuilder;
    }
Merges the Sets of Persons additively calling the abstract {@link #mergePersonAttributes(Map, Map)} method on the
attributes of Persons that exist in both sets. The {@link #mergeAvailableQueryAttributes(Set, Set)} and {@link #mergePossibleUserAttributeNames(Set, Set)}
methods do a simple additive merge of the sets. These can be overridden by subclasses.

@author Eric Dalquist
@since 7.1.0
core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/principal/merger/BaseAdditiveAttributeMerger.java