docs: def _changes(name,
               gid=None,
               addusers=None,
               delusers=None,
               members=None):
      '''
      Return a dict of the changes required for a group if the group is present,
      otherwise return False.
      '''
      lgrp = __salt__['group.info'](name)
      if not lgrp:
          return False
  
      # User and Domain names are not case sensitive in Windows. Let's make them
      # all lower case so we can compare properly
      if salt.utils.platform.is_windows():
          if lgrp['members']:
              lgrp['members'] = [user.lower() for user in lgrp['members']]
          if members:
              members = [salt.utils.win_functions.get_sam_name(user).lower() for user in members]
          if addusers:
              addusers = [salt.utils.win_functions.get_sam_name(user).lower() for user in addusers]
          if delusers:
              delusers = [salt.utils.win_functions.get_sam_name(user).lower() for user in delusers]
  
      change = {}
      ret = {}
      if gid:
          try:
              gid = int(gid)
              if lgrp['gid'] != gid:
                  change['gid'] = gid
          except (TypeError, ValueError):
              ret['result'] = False
              ret['comment'] = 'Invalid gid'
              return ret
  
      if members is not None and not members:
          if set(lgrp['members']).symmetric_difference(members):
              change['delusers'] = set(lgrp['members'])
      elif members:
          # if new member list if different than the current
          if set(lgrp['members']).symmetric_difference(members):
              change['members'] = members
  
      if addusers:
          users_2add = [user for user in addusers if user not in lgrp['members']]
          if users_2add:
              change['addusers'] = users_2add
  
      if delusers:
          users_2del = [user for user in delusers if user in lgrp['members']]
          if users_2del:
              change['delusers'] = users_2del
  
      return change