<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_repository_notification_session(self, repository_receiver, proxy):
 """Gets the notification session for subscribing to changes to a repository. arg: repository_receiver (osid.repository.RepositoryReceiver):
 the notification callback arg proxy (osid.proxy.Proxy):
 a proxy return: (osid.repository.RepositoryNotificationSession) - a RepositoryNotificationSession raise: NullArgument - repository_receiver is null raise: OperationFailed - unable to complete request raise: Unimplemented - supports_repository_notification() is false compliance: optional - This method must be implemented if supports_repository_notification() is true. """

        if repository_receiver is None:
            raise NullArgument()
        if not self.supports_repository_notification():
            raise Unimplemented()
        try:
            from . import sessions
        except ImportError:
            raise  # OperationFailed()
        proxy = self._convert_proxy(proxy)
        try:
            session = sessions.RepositoryNotificationSession(repository_receiver, proxy, runtime=self._runtime)
        except AttributeError:
            raise  # OperationFailed()
        return session