class EnvironmentUtils {

    private static Properties envVars;

    /**
     * Adds the environment variables in the form of properties whose keys are prefixed with {@code env.}, e.g. {@code
     * env.PATH}. Unlike native environment variables, properties are always case-sensitive. For the sake of
     * determinism, the environment variable names will be normalized to upper case on platforms with case-insensitive
     * variable lookup.
     *
     * @param props The properties to add the environment variables to, may be {@code null}.
     */
    public static void addEnvVars(Properties props) {<FILL_FUNCTION_BODY>}
}

        if (props != null) {
            if (envVars == null) {
                Properties tmp = new Properties();
                boolean caseSensitive = !Os.IS_WINDOWS;
                for (Map.Entry<String, String> entry : System.getenv().entrySet()) {
                    String key = "env."
                            + (caseSensitive ? entry.getKey() : entry.getKey().toUpperCase(Locale.ENGLISH));
                    tmp.setProperty(key, entry.getValue());
                }
                envVars = tmp;
            }

            props.putAll(envVars);
        }
    
<no_super_class>