<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def search(self, q, start=1, num=10, sortField="username", sortOrder="asc"):
 """ The User Search operation searches for users in the portal. The search index is updated whenever users are created, updated, or deleted. There can be a lag between the time that the user is updated and the time when it's reflected in the search results. The results only contain users that the calling user has permissions to see. Users can control this visibility by changing the access property of their user. Inputs: q -The query string to search the users against. start - The number of the first entry in the result set response. The index number is 1-based. The default value of start is 1 (for example, the first search result). The start parameter, along with the num parameter can be used to paginate the search results. num - The maximum number of results to be included in the result set response. The default value is 10, and the maximum allowed value is 100. The start parameter, along with the num parameter can be used to paginate the search results. The actual number of returned results may be less than num. This happens when the number of results remaining after start is less than num. sortField - Field to sort by. The allowed field names are username and created. sortOrder - Describes whether the returned results are in ascending or descending order. Default is ascending. Values: asc | desc """

        params = {
            "f" : "json",
            "q" : q,
            "start" : start,
            "num" : num,
            "sortField" : sortField,
            "sortOrder" : sortOrder
        }
        url = self._url
        return self._get(
            url = url,
            param_dict=params,
            securityHandler=self._securityHandler,
            proxy_url=self._proxy_url,
            proxy_port=self._proxy_port)