def METHOD_NAME(self, browse_model: BrowseModel, handle_func):
    if self.browse_active:
        self.next_browse_request = (browse_model, handle_func)
        return
    self.browse_active = True
    url = "https://www.epicgames.com/graphql?operationName=searchStoreQuery&variables={}&extensions={}"
    variables = urllib.parse.quote_plus(str(
        dict(browse_model.__dict__))
    )
    extensions = urllib.parse.quote_plus(str(
        dict(
            persistedQuery=dict(
                version=1,
                sha256Hash="6e7c4dd0177150eb9a47d624be221929582df8648e7ec271c821838ff4ee148e"
            )
        )
    )
    )
    for old, new in [
        ("%26", "&"),
        ("%27", "%22"),
        ("+", ""),
        ("%3A", ":"),
        ("%2C", ","),
        ("%5B", "["),
        ("%5D", "]"),
        ("True", "true"),
    ]:
        variables = variables.replace(old, new)
        extensions = extensions.replace(old, new)
    url = url.format(variables, extensions)
    self.auth_manager.get(
        url, lambda data: self._handle_browse_games(data, handle_func)
    )