<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def overlay_gateway_activate(self, **kwargs):
 """Activates the Overlay Gateway Instance on VDX switches Args: gw_name: Name of Overlay Gateway get (bool):
 Get config instead of editing config. (True, False) delete (bool):
 True, delete the activate config. (True, False) callback (function):
 A function executed upon completion of the method. The only parameter passed to `callback` will be the ``ElementTree`` `config`. Returns: Return value of `callback`. Raises: KeyError: if `gw_name` is not passed. ValueError: if `gw_name` is invalid. Examples: """


        callback = kwargs.pop('callback', self._callback)
        get_config = kwargs.pop('get', False)
        if not get_config:
            gw_name = kwargs.pop('gw_name')
            overlay_gw = getattr(self._tunnels, 'overlay_gateway_activate')
            config = overlay_gw(name=gw_name)

        if get_config:
            overlay_gw = getattr(self._tunnels, 'overlay_gateway_activate')
            config = overlay_gw(name='')
            output = callback(config, handler='get_config')
            if output.data.find('.//{*}name') is not None:
                if output.data.find('.//{*}activate') is not None:
                    return True
                else:
                    return None
            else:
                return None

        if kwargs.pop('delete', False):
            config.find('.//activate').set('operation', 'delete')
        return callback(config)