<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def iter_poll(self, query_id=None, sequence_no=None, params=None, **kwargs):
 # pragma: no cover """Retrieve pages iteratively in a non-greedy manner. Automatically increments the sequenceNo as it continues to poll for results until the endpoint reports JOB_FINISHED or JOB_FAILED, or an exception is raised by the pancloud library. Args: params (dict):
 Payload/request dictionary. query_id (str):
 Specifies the ID of the query job. sequence_no (int):
 Specifies the sequenceNo. **kwargs: Supported :meth:`~pancloud.httpclient.HTTPClient.request` parameters. Yields: requests.Response: Requests Response() object. Examples: Refer to ``logging_iter_poll.py`` example. """

        while True:
            r = self.poll(
                query_id, sequence_no, params, enforce_json=True,
                **kwargs
            )
            if r.json()['queryStatus'] == "FINISHED":
                if sequence_no is not None:
                    sequence_no += 1
                else:
                    sequence_no = 1
                yield r
            elif r.json()['queryStatus'] == "JOB_FINISHED":
                yield r
                break
            elif r.json()['queryStatus'] == "JOB_FAILED":
                yield r
                break
            elif r.json()['queryStatus'] == "RUNNING":
                yield r
                time.sleep(1)
            else:
                raise PanCloudError(
                    'Bad queryStatus: %s' % r.json()['queryStatus']
                )