<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _update_leap_second_data(self):
 """ Updates the systems leap second information Pulls the latest leap second information from https://www.ietf.org/timezones/data/leap-seconds.list and updates the leapsecond config file. Raises: ValueError: If the connection to IETF does not return 200 IOError: If the path to the leap seconds file is not valid """


        log.info('Attempting to acquire latest leapsecond data')

        ls_file = ait.config.get(
            'leapseconds.filename',
            os.path.join(ait.config._directory, _DEFAULT_FILE_NAME)
        )

        url = 'https://www.ietf.org/timezones/data/leap-seconds.list'
        r = requests.get(url)

        if r.status_code != 200:
            msg = 'Unable to locate latest timezone data. Connection to IETF failed'
            log.error(msg)
            raise ValueError(msg)

        text = r.text.split('\n')
        lines = [l for l in text if l.startswith('#@') or not l.startswith('#')]

        data = {'valid': None, 'leapseconds': []}
        data['valid'] = datetime.datetime(1900, 1, 1) + datetime.timedelta(seconds=int(lines[0].split('\t')[1]))

        leap = 1
        for l in lines[1:-1]:
            t = datetime.datetime(1900, 1, 1) + datetime.timedelta(seconds=int(l.split('\t')[0]))
            if t < GPS_Epoch:
                continue

            data['leapseconds'].append((t, leap))
            leap += 1

        self._data = data
        with open(ls_file, 'w') as outfile:
            pickle.dump(data, outfile)