<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_DragonDosBinary(self, data, strip_padding=True):
 """ Dragon DOS Binary Format http://dragon32.info/info/binformt.html Offset: Type: Value: 0 byte $55 Constant 1 byte Filetype 2:3 word Load Address 4:5 word Length 6:7 word Exec Address 8 byte $AA Constant 9-xxx byte[] Data """

        data = bytearray(data)

        log.debug("Load Dragon DOS Binary Format.")

        meta_data = struct.unpack(">BBHHHB", data[:9])

        machine_type = meta_data[0]
        if machine_type != 0x55:
            log.error("ERROR: Machine type wrong: is $%02X but should be $55!", machine_type)

        self.file_type = meta_data[1]
        self.load_address = meta_data[2]
        self.length = meta_data[3]
        self.exec_address = meta_data[4]
        terminator = meta_data[5]
        if terminator != 0xAA:
            log.error("ERROR: Terminator byte is $%02X but should be $AA!", terminator)

        # print("before strip:")
        # print("\n".join(bin2hexline(data, width=16)))
        if strip_padding:
            self.data = data[9:self.length + 9]
        else:
            self.data = data[9:]
        # print("after strip:")
        # print("\n".join(bin2hexline(self.data, width=16)))

        log.debug(
            "File type: $%02X Load Address: $%04X Exec Address: $%04X Length: %iBytes",
            self.file_type, self.load_address, self.exec_address, self.length
        )
        if self.length != len(self.data):
            log.error("ERROR: Wrong data size: should be: %i Bytes but is %i Bytes!", self.length, len(self.data))

        # log_bytes(self.data, "data in hex: %s", level=logging.DEBUG)
        self.debug2log(level=logging.DEBUG)