def METHOD_NAME(self, line, report):
    event = self.new_event(report)
    if line["version"] not in ("1.5", ''):
        raise ValueError("Unknown version %r. Please report this with an example."
                         "" % line["version"])
    for unknown in self._unknown_fields:
        if line[unknown]:
            raise ValueError("Unable to parse field %r. Please report this with an example"
                             "" % unknown)
    event["extra.datasource"] = line["feed code"]
    event.add("source.ip", line["source ip"])
    event.add("source.network", line["source bgp prefix"])
    event.add("extra.cert_eu_time_observation",
              DateTime.sanitize(line["observation time"]))
    event.add("tlp", line["tlp"])
    event.add("event_description.text", line["description"])
    event.add("classification.type", self.ABUSE_TO_INTELMQ[line["type"]])
    if line['type'] == 'dropzone':
        event.add("classification.identifier", 'dropzone')
    if line["count"]:
        event["extra.count"] = int(line["count"])
    event.add("time.source", line["source time"])
    event.add("source.geolocation.country", line["source country"])
    event.add("protocol.application", line["protocol"])
    event.add("destination.port", line["destination port"])
    event.add("source.geolocation.latitude", line["source latitude"])
    event.add("source.geolocation.city", line["source city"])
    event.add("source.geolocation.geoip_cc", line["source cc"])
    event.add("source.geolocation.longitude", line["source longitude"])
    event.add("extra.source.geolocation.geohash", line["source geohash"])
    event["extra.first_seen"] = line["first seen"]
    event.add('feed.accuracy',
              event.get('feed.accuracy', 100) * int(line["confidence level"]) / 100,
              overwrite=True)
    event["extra.last_seen"] = line["last seen"]
    event["extra.expiration_date"] = line["expiration date"]
    if line["status"]:
        event["status"] = line["status"]
    event.add("event_description.target", line["target"])
    event.add("source.url", line["url"])
    event.add("source.abuse_contact", line["abuse contact"])
    event.add("source.asn", line["source asn"])
    event.add("source.as_name", line["source as name"])
    event.add("source.fqdn", line["domain name"])
    event.add("raw", self.recover_line(line))
    yield event