code: def _ratecontrol_graphql_query(self, query_hash: str, untracked_queries: bool = False):
          
          if not untracked_queries:
              waittime = self._graphql_query_waittime(query_hash, time.monotonic(), untracked_queries)
              assert waittime >= 0
              if waittime > 10:
                  self.log('\nToo many queries in the last time. Need to wait {} seconds, until {:%H:%M}.'
                           .format(waittime, datetime.now() + timedelta(seconds=waittime)))
              time.sleep(waittime)
              if query_hash not in self._graphql_query_timestamps:
                  self._graphql_query_timestamps[query_hash] = [time.monotonic()]
              else:
                  self._graphql_query_timestamps[query_hash].append(time.monotonic())
          else:
              text_for_429 = ("HTTP error code 429 was returned because too many queries occured in the last time. "
                              "Please do not use Instagram in your browser or run multiple instances of Instaloader "
                              "in parallel.")
              print(textwrap.fill(text_for_429), file=sys.stderr)
              current_time = time.monotonic()
              waittime = self._graphql_query_waittime(query_hash, current_time, untracked_queries)
              assert waittime >= 0
              if waittime > 10:
                  self.log('The request will be retried in {} seconds, at {:%H:%M}.'
                           .format(waittime, datetime.now() + timedelta(seconds=waittime)))
              self._dump_query_timestamps(current_time)
              time.sleep(waittime)
docs: Called before a GraphQL query is made in order to stay within Instagram's rate limits.
  
          :param query_hash: The query_hash parameter of the query.
          :param untracked_queries: True, if 429 has been returned to apply 429 logic.