<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send_chaos_queries(self):
 """Send chaos queries to identify the DNS server and its manufacturer Note: we send 2 queries for BIND stuff per RFC 4892 and 1 query per RFC 6304 Note: we are not waiting on a second response because we shouldn't be getting injected packets here """

        names = ["HOSTNAME.BIND", "VERSION.BIND", "ID.SERVER"]
        self.results = {'exp-name': "chaos-queries"}
        for name in names:
            self.results[name] = {}
            for nameserver in self.nameservers:
                sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
                sock.settimeout(self.timeout)
                query = dns.message.make_query(name,
                                               dns.rdatatype.from_text("TXT"),
                                               dns.rdataclass.from_text("CH"))
                sock.sendto(query.to_wire(), (nameserver, 53))
                reads, _, _ = select.select([sock], [], [], self.timeout)
                if len(reads) == 0:
                    self.results[name][nameserver] = None
                else:
                    response = reads[0].recvfrom(4096)[0]
                    self.results[name][nameserver] = b64encode(response)
        return self.results