<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_contact(self, response=None, nir=None, handle=None, retry_count=3, dt_format=None):
 """ The function for retrieving and parsing NIR whois data based on NIR_WHOIS contact_fields. Args: response (:obj:`str`):
 Optional response object, this bypasses the lookup. nir (:obj:`str`):
 The NIR to query ('jpnic' or 'krnic'). Required if response is None. handle (:obj:`str`):
 For NIRs that have separate contact queries (JPNIC), this is the contact handle to use in the query. Defaults to None. retry_count (:obj:`int`):
 The number of times to retry in case socket errors, timeouts, connection resets, etc. are encountered. Defaults to 3. dt_format (:obj:`str`):
 The format of datetime fields if known. Defaults to None. Returns: dict: Mapping of the fields provided in contact_fields, to their parsed results. """


        if response or nir == 'krnic':

            contact_response = response

        else:

            # Retrieve the whois data.
            contact_response = self._net.get_http_raw(
                url=str(NIR_WHOIS[nir]['url']).format(handle),
                retry_count=retry_count,
                headers=NIR_WHOIS[nir]['request_headers'],
                request_type=NIR_WHOIS[nir]['request_type']
            )

        return self.parse_fields(
            response=contact_response,
            fields_dict=NIR_WHOIS[nir]['contact_fields'],
            dt_format=dt_format,
            hourdelta=int(NIR_WHOIS[nir]['dt_hourdelta']),
            is_contact=True
        )