<fim-prefix>device_display_name = pusherdict["device_display_name"]
        self.pushkey = pusherdict["pushkey"]
        self.pushkey_ts = pusherdict["ts"]
        self.data = pusherdict["data"]
        self.last_stream_ordering = pusherdict["last_stream_ordering"]
        self.backoff_delay = HttpPusher.INITIAL_BACKOFF_SEC
        self.failing_since = pusherdict["failing_since"]
        self.timed_call = None
        self._is_processing = False
        self._group_unread_count_by_room = hs.config.push_group_unread_count_by_room

        # This is the highest stream ordering we know it's safe to process.
        # When new events arrive, we'll be given a window of new events: we
        # should honour this rather than just looking for anything higher
        # because of potential out-of-order event serialisation. This starts
        # off as None though as we don't know any better.
        self.max_stream_ordering = None

        if "data" not in pusherdict:
            raise PusherConfigException("No 'data' key for HTTP pusher")
        self.data = pusherdict["data"]

        self.name = "%s/%s/%s" % (
            pusherdict["user_name"],
            pusherdict["app_id"],
            pusherdict["pushkey"],
        )

        if self.data is None:
            raise PusherConfigException("data can not be null for HTTP pusher")

        if "url" not in self.data:
            raise PusherConfigException("'url' required in data for HTTP pusher")
        self.url = self.data["url"]
        # BUG: CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
        # self.http_client = hs.get_proxied_http_client()
        # FIXED: 
 <fim-middle>       self.http_client = hs.get_proxied_blacklisted_http_client()
        self.data_minus_url = {}
        self.data_minus_url.update(self.data)
        del self.data_minus_url["url"]

    def on_star<fix-suffix>ted(self, should_check_for_notifs):
        """Called when this pusher has been started.

        Args:
            should_check_for_notifs (bool): Whether we should immediately
                check for push to send. Set to False only if it's known there
                is nothing to send
        """
        if should_check_for_notifs:
            self._start_processing()

    def on_new_notifications(self, max_token: RoomStreamToken):
        # We just use the minimum stream ordering and ignore the vector clock
        # component. This is safe to do as long as we *always* ignore the vector
        # clock components.
        max_stream_ordering = max_token.stream

        self.max_stream_ordering = max(
            max_stream_ordering, self.max_stream_ordering or 0
        )
        self._start_processing()

    def on_new_receipts(self, min_stream_id, max_stream_id):
        # Note that the min here shouldn't be relied upon to be accurate.

        # We could check the receipts are<|endoftext|>