From ea922c98d187eb74c31535afa3334ead5bd50526 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 29 May 2011 12:41:14 +0000
Subject: [PATCH] Added new incomplete AudioInputHost Host LowLevel demo.

Added missing Audio class control request definitions.

Added support for the Audio class GET STATUS request so that it is correctly ACKed when sent by the host.
---
 Demos/Device/LowLevel/AudioInput/AudioInput.c |    9 +
 .../Device/LowLevel/AudioOutput/AudioOutput.c |    9 +
 .../AudioInputHost/AudioInputHost.c           |  274 +
 .../AudioInputHost/AudioInputHost.eep         |    1 +
 .../AudioInputHost/AudioInputHost.elf         |  Bin 0 -> 101354 bytes
 .../AudioInputHost/AudioInputHost.h           |   80 +
 .../AudioInputHost/AudioInputHost.hex         |  403 ++
 .../AudioInputHost/AudioInputHost.lss         | 5024 +++++++++++++++++
 .../AudioInputHost/AudioInputHost.lst         |  853 +++
 .../AudioInputHost/AudioInputHost.map         | 1169 ++++
 .../AudioInputHost/AudioInputHost.o           |  Bin 0 -> 20140 bytes
 .../AudioInputHost/AudioInputHost.sym         |  267 +
 .../AudioInputHost/ConfigDescriptor.c         |  183 +
 .../AudioInputHost/ConfigDescriptor.h         |   72 +
 .../AudioInputHost/ConfigDescriptor.lst       |  400 ++
 .../AudioInputHost/ConfigDescriptor.o         |  Bin 0 -> 13752 bytes
 Demos/Host/Incomplete/AudioInputHost/makefile |  714 +++
 LUFA.pnproj                                   |    2 +-
 LUFA/Drivers/USB/Class/Common/Audio.h         |   20 +-
 LUFA/Drivers/USB/Class/Device/Audio.c         |    7 +
 LUFA/ManPages/ChangeLog.txt                   |    6 +-
 LUFA/ManPages/FutureChanges.txt               |    9 +-
 Projects/AVRISP-MKII/AVRISP-MKII.c            |   46 +-
 Projects/AVRISP-MKII/AVRISP-MKII.h            |   20 +-
 Projects/AVRISP-MKII/Descriptors.c            |   59 +-
 Projects/AVRISP-MKII/Descriptors.h            |   13 +-
 Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c    |   22 +-
 Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h    |   10 +-
 Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h      |   19 +-
 Projects/AVRISP-MKII/Lib/V2Protocol.c         |    8 +
 Projects/AVRISP-MKII/Lib/V2Protocol.h         |   21 +-
 .../AVRISP-MKII/Lib/V2ProtocolConstants.h     |    1 +
 Projects/AVRISP-MKII/Lib/V2ProtocolParams.c   |    6 +-
 Projects/AVRISP-MKII/Lib/V2ProtocolParams.h   |   17 +-
 Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h      |   13 +-
 Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h     |   13 +-
 .../AVRISP-MKII/Lib/XPROG/XPROGProtocol.c     |   20 +-
 .../AVRISP-MKII/Lib/XPROG/XPROGProtocol.h     |   14 +-
 Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c  |  181 +-
 Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h  |   11 +-
 Projects/AVRISP-MKII/makefile                 |    2 +-
 41 files changed, 9824 insertions(+), 174 deletions(-)
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.c
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.eep
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.elf
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.hex
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lss
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lst
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.map
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.o
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.c
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.h
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.lst
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.o
 create mode 100644 Demos/Host/Incomplete/AudioInputHost/makefile

diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c
index 7a5a0a6ea..f62fcbec5 100644
--- a/Demos/Device/LowLevel/AudioInput/AudioInput.c
+++ b/Demos/Device/LowLevel/AudioInput/AudioInput.c
@@ -143,6 +143,15 @@ void EVENT_USB_Device_ControlRequest(void)
 			}
 
 			break;
+		case AUDIO_REQ_GetStatus:
+			/* Get Status request can be directed at either the interface or endpoint, neither is currently used
+			 * according to the latest USB Audio 1.0 standard, but must be ACKed with no data when requested */
+			if ((USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) ||
+			    (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT)))
+			{
+				Endpoint_ClearSETUP();
+				Endpoint_ClearStatusStage();
+			}
 	}
 }
 
diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c
index 93ca370a8..22cfac4d9 100644
--- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c
+++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c
@@ -169,6 +169,15 @@ void EVENT_USB_Device_ControlRequest(void)
 			}
 
 			break;
+		case AUDIO_REQ_GetStatus:
+			/* Get Status request can be directed at either the interface or endpoint, neither is currently used
+			 * according to the latest USB Audio 1.0 standard, but must be ACKed with no data when requested */
+			if ((USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) ||
+			    (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT)))
+			{
+				Endpoint_ClearSETUP();
+				Endpoint_ClearStatusStage();
+			}
 	}
 }
 
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.c b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.c
new file mode 100644
index 000000000..7ac8f0015
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.c
@@ -0,0 +1,274 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Main source file for the AudioInputHost demo. This file contains the main tasks of
+ *  the demo and is responsible for the initial application hardware configuration.
+ */
+
+#include "AudioInputHost.h"
+
+/** Main program entry point. This routine configures the hardware required by the application, then
+ *  enters a loop to run the application tasks in sequence.
+ */
+int main(void)
+{
+	SetupHardware();
+
+	puts_P(PSTR(ESC_FG_CYAN "Audio Host Demo running.\r\n" ESC_FG_WHITE));
+
+	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+	sei();
+
+	for (;;)
+	{
+		Audio_Task();
+		USB_USBTask();
+	}
+}
+
+/** Configures the board hardware and chip peripherals for the demo's functionality. */
+void SetupHardware(void)
+{
+	/* Disable watchdog if enabled by bootloader/fuses */
+	MCUSR &= ~(1 << WDRF);
+	wdt_disable();
+
+	/* Disable clock division */
+	clock_prescale_set(clock_div_1);
+
+	/* Hardware Initialization */
+	Serial_Init(9600, false);
+	LEDs_Init();
+	USB_Init();
+
+	/* Create a stdio stream for the serial port for stdin and stdout */
+	Serial_CreateStream(NULL);
+}
+
+/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
+ *  starts the library USB task to begin the enumeration and USB management process.
+ */
+void EVENT_USB_Host_DeviceAttached(void)
+{
+	puts_P(PSTR(ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE));
+	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
+}
+
+/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
+ *  stops the library USB task management process.
+ */
+void EVENT_USB_Host_DeviceUnattached(void)
+{
+	puts_P(PSTR(ESC_FG_GREEN "Device Unattached.\r\n" ESC_FG_WHITE));
+	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+}
+
+/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
+ *  enumerated by the host and is now ready to be used by the application.
+ */
+void EVENT_USB_Host_DeviceEnumerationComplete(void)
+{
+	LEDs_SetAllLEDs(LEDMASK_USB_READY);
+}
+
+/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
+void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
+{
+	USB_Disable();
+
+	printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n"
+	                         " -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+	for(;;);
+}
+
+/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
+ *  enumerating an attached USB device.
+ */
+void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
+                                            const uint8_t SubErrorCode)
+{
+	printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n"
+	                         " -- Error Code %d\r\n"
+	                         " -- Sub Error Code %d\r\n"
+	                         " -- In State %d\r\n" ESC_FG_WHITE), ErrorCode, SubErrorCode, USB_HostState);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+}
+
+void Audio_Task(void)
+{
+	uint8_t ErrorCode;
+
+	switch (USB_HostState)
+	{
+		case HOST_STATE_Addressed:
+			puts_P(PSTR("Getting Config Data.\r\n"));
+
+			/* Get and process the configuration descriptor data */
+			if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
+			{
+				if (ErrorCode == ControlError)
+				  puts_P(PSTR(ESC_FG_RED "Control Error (Get Configuration).\r\n"));
+				else
+				  puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n"));
+
+				printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+
+			/* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
+			if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
+			{
+				printf_P(PSTR(ESC_FG_RED "Control Error (Set Configuration).\r\n"
+				                         " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+			
+			if ((ErrorCode = USB_Host_SetInterfaceAltSetting(StreamingInterfaceIndex,
+			                                                 StreamingInterfaceAltSetting)) != HOST_SENDCONTROL_Successful)
+			{
+				printf_P(PSTR(ESC_FG_RED "Could not set alternative streaming interface setting.\r\n"
+				                         " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+
+			USB_ControlRequest = (USB_Request_Header_t)
+				{
+					.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT),
+					.bRequest      = AUDIO_REQ_SetCurrent,
+					.wValue        = 0x0100,
+					.wIndex        = StreamingEndpointAddress,
+					.wLength       = sizeof(USB_Audio_SampleFreq_t),
+				};
+				
+			USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
+
+			/* Select the control pipe for the request transfer */
+			Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+			/* Set the sample rate on the streaming interface endpoint */
+			if ((ErrorCode = USB_Host_SendControlRequest(&SampleRate)) != HOST_SENDCONTROL_Successful)
+			{
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+	
+			/* Sample reload timer initialization */
+			TIMSK0  = (1 << OCIE0A);
+			OCR0A   = ((F_CPU / 8 / 8000) - 1);
+			TCCR0A  = (1 << WGM01);  // CTC mode
+			TCCR0B  = (1 << CS01);   // Fcpu/8 speed	
+
+			/* Set speaker as output */
+			DDRC   |= (1 << 6);
+
+			/* PWM speaker timer initialization */
+			TCCR3A  = ((1 << WGM30) | (1 << COM3A1) | (1 << COM3A0)
+					| (1 << COM3B1) | (1 << COM3B0)); // Set on match, clear on TOP
+			TCCR3B  = ((1 << WGM32) | (1 << CS30));  // Fast 8-Bit PWM, F_CPU speed
+			
+			puts_P(PSTR("Microphone Enumerated.\r\n"));
+
+			USB_HostState = HOST_STATE_Configured;
+			break;
+		case HOST_STATE_Configured:
+			break;
+	}
+}
+
+/** ISR to handle the reloading of the PWM timer with the next sample. */
+ISR(TIMER0_COMPA_vect, ISR_BLOCK)
+{
+	uint8_t PrevPipe = Pipe_GetCurrentPipe();
+
+	Pipe_SelectPipe(AUDIO_DATA_IN_PIPE);
+	Pipe_Unfreeze();
+
+	/* Check if the current pipe can be read from (contains a packet) and the device is sending data */
+	if (Pipe_IsINReceived())
+	{
+		/* Retrieve the signed 16-bit audio sample, convert to 8-bit */
+		int8_t Sample_8Bit = (Pipe_Read_16_LE() >> 8);
+
+		/* Check to see if the bank is now empty */
+		if (!(Pipe_IsReadWriteAllowed()))
+		{
+			/* Acknowledge the packet, clear the bank ready for the next packet */
+			Pipe_ClearIN();
+		}
+
+		/* Load the sample into the PWM timer channel */
+		OCR3A = (Sample_8Bit ^ (1 << 7));
+
+		uint8_t LEDMask = LEDS_NO_LEDS;
+
+		/* Turn on LEDs as the sample amplitude increases */
+		if (Sample_8Bit > 16)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4);
+		else if (Sample_8Bit > 8)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3);
+		else if (Sample_8Bit > 4)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2);
+		else if (Sample_8Bit > 2)
+		  LEDMask = (LEDS_LED1);
+
+		LEDs_SetAllLEDs(LEDMask);
+	}
+	
+	Pipe_Freeze();
+
+	Pipe_SelectPipe(PrevPipe);
+}
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.eep b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.eep
new file mode 100644
index 000000000..1996e8fde
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.eep
@@ -0,0 +1 @@
+:00000001FF
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.elf b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.elf
new file mode 100644
index 0000000000000000000000000000000000000000..a41d735eb1b638376cdbd56549ea7dd941423f2b
GIT binary patch
literal 101354
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
BjS&C<

literal 0
HcmV?d00001

diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h
new file mode 100644
index 000000000..6a3b8502c
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h
@@ -0,0 +1,80 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Header file for AudioHost.c.
+ */
+
+#ifndef _AUDIO_HOST_H_
+#define _AUDIO_HOST_H_
+
+	/* Includes: */
+		#include <avr/io.h>
+		#include <avr/wdt.h>
+		#include <avr/pgmspace.h>
+		#include <avr/power.h>
+		#include <avr/interrupt.h>
+		#include <stdio.h>
+
+		#include <LUFA/Version.h>
+		#include <LUFA/Drivers/Misc/TerminalCodes.h>
+		#include <LUFA/Drivers/USB/USB.h>
+		#include <LUFA/Drivers/Peripheral/Serial.h>
+		#include <LUFA/Drivers/Board/LEDs.h>
+
+		#include "ConfigDescriptor.h"
+
+	/* Macros: */
+		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
+		#define LEDMASK_USB_NOTREADY      LEDS_LED1
+
+		/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
+		#define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
+
+		/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
+		#define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
+
+		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
+		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
+
+	/* Function Prototypes: */
+		void Audio_Task(void);
+		void SetupHardware(void);
+
+		void EVENT_USB_Host_HostError(const uint8_t ErrorCode);
+		void EVENT_USB_Host_DeviceAttached(void);
+		void EVENT_USB_Host_DeviceUnattached(void);
+		void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
+		                                            const uint8_t SubErrorCode);
+		void EVENT_USB_Host_DeviceEnumerationComplete(void);
+
+#endif
+
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.hex b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.hex
new file mode 100644
index 000000000..2c962aabd
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.hex
@@ -0,0 +1,403 @@
+:1000000051C100006DC100006BC1000069C100005A
+:1000100067C1000065C1000063C1000061C100004C
+:100020005FC100005DC10000D5C6000059C10000DD
+:1000300057C1000055C1000053C1000051C100006C
+:100040004FC100004DC100004BC1000049C100007C
+:1000500047C100008BC2000043C1000041C1000045
+:100060003FC100003DC100003BC1000039C100009C
+:1000700037C1000035C1000033C1000031C10000AC
+:100080002FC100002DC100002BC1000029C10000BC
+:1000900027C1000025C100004D6963726F70686F51
+:1000A0006E6520456E756D6572617465642E0D0A0E
+:1000B000001B5B33316D436F756C64206E6F742071
+:1000C00073657420616C7465726E61746976652005
+:1000D00073747265616D696E6720696E74657266AE
+:1000E0006163652073657474696E672E0D0A202D37
+:1000F0002D204572726F7220436F64653A2025642B
+:100100000D0A1B5B33376D001B5B33316D436F6E24
+:1001100074726F6C204572726F7220285365742060
+:10012000436F6E66696775726174696F6E292E0D13
+:100130000A202D2D204572726F7220436F64653A3C
+:100140002025640D0A1B5B33376D00202D2D2045C3
+:1001500072726F7220436F64653A2025640D0A1B2A
+:100160005B33376D001B5B33316D496E76616C69B3
+:1001700064204465766963652E0D0A001B5B33318C
+:100180006D436F6E74726F6C204572726F722028AF
+:1001900047657420436F6E66696775726174696F35
+:1001A0006E292E0D0A0047657474696E6720436FCF
+:1001B0006E66696720446174612E0D0A001B5B3313
+:1001C000316D44657620456E756D204572726F7293
+:1001D0000D0A202D2D204572726F7220436F6465C9
+:1001E0002025640D0A202D2D205375622045727242
+:1001F0006F7220436F64652025640D0A202D2D2029
+:10020000496E2053746174652025640D0A1B5B33AD
+:10021000376D001B5B33316D486F7374204D6F6415
+:1002200065204572726F720D0A202D2D2045727265
+:100230006F7220436F64652025640D0A1B5B3337A2
+:100240006D001B5B33326D44657669636520556EC6
+:1002500061747461636865642E0D0A1B5B33376DCE
+:10026000001B5B33326D44657669636520417474AD
+:1002700061636865642E0D0A1B5B33376D001B5B81
+:1002800033366D417564696F20486F73742044651F
+:100290006D6F2072756E6E696E672E0D0A1B5B3373
+:1002A000376D000011241FBECFEFD0E2DEBFCDBFFF
+:1002B00011E0A0E0B1E0EAEFF8E100E00BBF02C01E
+:1002C00007900D92AC31B107D9F711E0ACE1B1E084
+:1002D00001C01D92A034B107E1F73ED10C947B0C14
+:1002E0008FCE9BB19F70982B9BB9089584B7877F61
+:1002F00084BF28E10FB6F89420936000109260004C
+:100300000FBE90E080E80FB6F89480936100909360
+:1003100061000FBE83E390E09093CD008093CC000A
+:1003200086E08093CA001092C8002093C900539AB7
+:100330005A9A8AB1806F8AB98BB18F708BB934D5D4
+:10034000ECE2F1E0F0933B01E0933A01F0933D01E0
+:10035000E0933C018EE0DF011D928A95E9F783E08E
+:1003600080932F0185E699E09093350180933401C5
+:100370008EE699E09093370180933601089581E6E7
+:1003800092E0DED780EAADCF82E492E0D9D780E177
+:10039000A8CF80E6A6CFDF93CF930F92CDB7DEB77D
+:1003A00089839CD400D000D0EDB7FEB7319623E10D
+:1003B00032E0ADB7BEB712963C932E931197898168
+:1003C000828313829ED70F900F900F900F9080E939
+:1003D00088DFFFCF90912B012DB73EB728503040DA
+:1003E0000FB6F8943EBF0FBE2DBFEDB7FEB73196E6
+:1003F0002DEB31E0ADB7BEB712963C932E9311971B
+:100400008283138264831582968317827AD72DB7ED
+:100410003EB7285F3F4F0FB6F8943EBF0FBE2DBFCB
+:1004200080E95FCF1F93DF93CF9300D00F92CDB7BA
+:10043000DEB780912B018B3009F087C086EA91E00E
+:100440007FD730D1182F8823E9F0813019F48CE759
+:1004500091E002C085E691E073D700D000D0EDB7FF
+:10046000FEB731962BE431E0ADB7BEB712963C93A0
+:100470002E9311971283138244D70F900F900F90F1
+:100480000F904AC081E082D3882341F000D000D091
+:10049000EDB7FEB7319628E031E00EC080911C0127
+:1004A00060911D0189D3882379F000D000D0EDB789
+:1004B000FEB7319621EB30E0ADB7BEB712963C9354
+:1004C0002E9311978283D7CF20911E0182E28093D1
+:1004D000230181E08093240180E091E09093260144
+:1004E00080932501209327011092280183E090E05A
+:1004F00090932A0180932901DE011196E0E0F1E05A
+:1005000083E001900D928150E1F71092A700CE0197
+:100510000196B7D5882329F080E9E3DE10922B01FC
+:1005200014C082E080936E009CE797BD84BD85BDBA
+:100530003E9A81EF8093900089E08093910088E952
+:1005400090E0FED68CE080932B010F900F900F90DF
+:10055000CF91DF911F910895C9DE8EE792E0F0D62A
+:1005600080E1BFDE78945EDFA2D6FDCF1F920F92AE
+:100570000FB60F920BB60F9211241F932F933F9338
+:100580004F935F936F937F938F939F93AF93BF939B
+:10059000EF93FF931091A700177081E08093A7005D
+:1005A0008091A9008F7B8093A9008091A60080FF95
+:1005B0002BC08091AF004091AF008091A60085FDD7
+:1005C00005C08091A6008E778093A600842F99277E
+:1005D00087FD909520E830E082279327909399003B
+:1005E00080939800413144F4493044F4453044F458
+:1005F000433044F480E007C080EF05C080EB03C0C7
+:1006000080E301C080E16DDE8091A9008064809369
+:10061000A9001093A700FF91EF91BF91AF919F9117
+:100620008F917F916F915F914F913F912F911F918A
+:100630000F900BBE0F900FBE0F901F901895FC01EE
+:100640008181843049F48581813031F48681813023
+:1006500019F48781882311F082E0089580E00895DD
+:10066000FC018181843049F48581813031F48681B7
+:10067000823019F48781882311F082E0089580E0A8
+:100680000895FC018181853029F483818370813054
+:1006900019F404C0843021F082E0089580E00895C8
+:1006A00081E00895AF92BF92CF92DF92EF92FF92D6
+:1006B0000F931F93DF93CF93CDB7DEB7C450D240D3
+:1006C0000FB6F894DEBF0FBECDBFAE014B5F5F4FDC
+:1006D0005A83498323E0E22EF12CEC0EFD1E81E0CB
+:1006E000B70120E032E009D4853009F45CC08630DF
+:1006F00061F0882361F400E010E0CC24DD24570190
+:100700007E010894E11CF11C07C083E04FC081E02A
+:100710004DC09C01032F182FC114D10441F0C50115
+:10072000B70141E453E040D4882351F41CC0C50113
+:10073000B7014FE153E038D48823B9F5C980DA8096
+:10074000C501B70140E353E02FD4882349F0C50128
+:10075000B7014FE153E028D4882339F5C980DA8006
+:1007600009811A8135C0E981FA81828187FF30C011
+:10077000902F812F309769F2D80112968C911297A1
+:1007800080931C0113968C9180931D0122812093EC
+:100790001E010481158181E061E040E194E0E92ED1
+:1007A00022D280E003C082E001C084E0CC5FDD4F54
+:1007B0000FB6F894DEBF0FBECDBFCF91DF911F9172
+:1007C0000F91FF90EF90DF90CF90BF90AF90089582
+:1007D000902F812F9ECF80919E0090E0817090702D
+:1007E0002091A0002D7F2093A00020919E002260E8
+:1007F00020939E0020919E0021FDFCCF20919E0021
+:10080000216020939E002091A00030E02072307083
+:100810004091A0004F7D4093A00040919F004F7DEC
+:1008200040939F004AE050919F0055FF0BC04091BC
+:100830009F004F7D40939F0040919F004D7F4093CC
+:100840009F0008C0EFECF7E03197F1F700C000001F
+:10085000415049F72115310529F02091A00020626F
+:100860002093A000009729F480919E008E7F8093B2
+:100870009E008091A00082608093A0000895409126
+:100880009E0050E0417050702091A00030E0207236
+:1008900030709091A0009F7D9093A00090919F0058
+:1008A0009F7D90939F0090919E00916090939E00F9
+:1008B00026C090919F0095FF06C090919F009F7D5C
+:1008C00090939F00815090912B019230D9F090919C
+:1008D000A60094FF09C01092F5008091A6008F7EBB
+:1008E0008093A60082E00FC09091A60091FF07C000
+:1008F0008091A6008D7F8093A60083E004C08823AA
+:10090000C1F601C081E04115510529F490919E0086
+:100910009E7F90939E002115310529F09091A000B3
+:1009200090629093A0000895EF920F931F93DF932E
+:10093000CF93CDB7DEB728970FB6F894DEBF0FBEC2
+:10094000CDBF80912B01863009F499C0873070F4B7
+:100950008330C9F1843020F4813009F00BC113C019
+:100960008430C9F1853009F005C160C0883009F4D0
+:10097000A0C0883008F48FC0893009F4B9C08A302B
+:1009800009F0F8C0DEC0009120011091210101158D
+:10099000110509F4EFC081E072DF682F882331F080
+:1009A00080911F0180932B0181E0E0C00150104035
+:1009B00010932101009320010115110509F0DAC0FF
+:1009C00080911F01C3C088EE93E090932101809332
+:1009D000200184E0BBC080912001909121019C0105
+:1009E000215030403093210120932001009739F0AD
+:1009F0008FEC97E00197F1F700C00000BBC077983B
+:100A00008091D80080618093D8008091DD008B7F39
+:100A10008093DD008091D70080618093D700809122
+:100A2000DD0082608093DD0085E090C080919F00B2
+:100A300080FFA0C080919F008E7F80939F00809157
+:100A40009F008D7F80939F008091DF008D7F80933A
+:100A5000DF008091DE0082608093DE0080919E0046
+:100A6000816080939E0026D181E080932B0184E6F3
+:100A700090E0909321018093200186E05FC0ABDE7F
+:100A800081E080932B0188EC90E09093210180938A
+:100A9000200187E053C080E060E040E020E000E417
+:100AA00010E0EE24A0D08091AC0087FF5BC088E00E
+:100AB0004DC0A3E2B1E0E3E1F1E088E001900D92E6
+:100AC0008150E1F7CE010196DCD2682F882309F02E
+:100AD0004CC0888580931B017EDE81E080932B01D2
+:100AE00088EC90E0909321018093200189E026C05A
+:100AF00000911B0180E060E040E020E010E0EE2487
+:100B000072D08091AC0087FF2DC0A3E2B1E0EBE092
+:100B1000F1E088E001900D928150E1F780E090E0F3
+:100B2000B0D2682F882309F581E080932B0184E6F9
+:100B300090E090932101809320018AE080931F012F
+:100B400019C081E08093A10024DC8BE080932B010D
+:100B500011C040DC8091DD0081608093DD0014DCF9
+:100B6000D5D008C060E084E001C083E090912B0103
+:100B7000923079F728960FB6F894DEBF0FBECDBF3E
+:100B8000CF91DF911F910F91EF9008951092230163
+:100B900099E09093240180932501109226011092F0
+:100BA00028011092270110922A0110922901109217
+:100BB000A70080E090E065C2E3E2F1E091E090936D
+:100BC00023019BE09093240160932501138280937D
+:100BD0002701158210922A01109229011092A70074
+:100BE00080E090E04EC2EF920F931F935E2D6295CE
+:100BF000660F660F607C642B2F70622B982F5260FB
+:100C00004DC09093A7009817B1F428E030E040E081
+:100C100003C04F5F220F331F2017310710F44530F8
+:100C2000C1F7242F2295207F252BA62F40E070E0CE
+:100C3000E1E2F0E00CC0A091AA002091AB00F0919D
+:100C4000AD00E091A9007091A5004091AE003091F7
+:100C5000A90030623093A90021FF1FC03091A90084
+:100C60003E7F3093A9003091AB0032703093AB00DF
+:100C70003091A90031603093A900A093AA0020937D
+:100C8000AB00F093AD00E093A9007093A5004093F2
+:100C9000AE002091AC0027FF08C09F5F973008F49A
+:100CA000B0CF8093A70081E001C080E01F910F9139
+:100CB000EF9008951092F80080E08093A7001092C2
+:100CC000AE001092A6001092AB009091A9009E7FFA
+:100CD0009093A9008F5F873081F708956ED075D00B
+:100CE000E0EEF0E0808181608083E8EDF0E08081DB
+:100CF0008F77808319BCA7EDB0E08C918E7F8C93A9
+:100D000080818F7E808310922201089556D05DD01D
+:100D10008091D800982F9F779093D8008068809317
+:100D2000D8008091D8008F7D8093D8008091D70023
+:100D30008F778093D7008CE089BD89B5826089BDAB
+:100D400009B400FEFDCF82E080932B0180E4809304
+:100D50001B018091D80080648093D8008091DD00D1
+:100D600081608093DD008091DD0084608093DD00F0
+:100D70008091D7008F7E8093D7006F9A779A809169
+:100D8000DE0081608093DE008091DE0084608093CD
+:100D9000DE008091E0008E7F8093E0008091D8009B
+:100DA00080618093D8000895E7EDF0E08081816054
+:100DB000808381E080932201A9CFE8EDF0E080817B
+:100DC0008C7F80831092A00008951092DA00109218
+:100DD0009F0008951F920F920FB60F920BB60F92BD
+:100DE00011242F933F934F935F936F937F938F9330
+:100DF0009F93AF93BF93EF93FF9380919F0085FFE5
+:100E00000AC08091A00085FF06C080919F008F7D61
+:100E100080939F000CD180919F0081FF15C080912D
+:100E2000A00081FF11C080919F008D7F80939F0063
+:100E300080919F008E7F80939F008091A0008D7F86
+:100E40008093A000A1DA62DF8091DF0081FF15C0EE
+:100E50008091DE0081FF11C08091DF008D7F809343
+:100E6000DF0077988091DD0081608093DD0080E075
+:100E700092DA8ADA82E080932B018091DF0080FF92
+:100E800017C08091DE0080FF13C08091DF008E7F4D
+:100E90008093DF008091DE008E7F8093DE006FDA2A
+:100EA0008091A00082608093A00083E080932B015A
+:100EB0008091DF0082FF0EC08091DE0082FF0AC0B9
+:100EC0008091DF008B7F8093DF0082E060E082DA38
+:100ED0005BDA1CDFFF91EF91BF91AF919F918F91F2
+:100EE0007F916F915F914F913F912F910F900BBE2A
+:100EF0000F900FBE0F901F901895CF92DF92EF9238
+:100F0000FF920F931F93DF93CF93CDB7DEB729974F
+:100F10000FB6F894DEBF0FBECDBF6B018A01790119
+:100F200090E89093230196E09093240190E001973C
+:100F300092609093260180932501109228011092CF
+:100F4000270189E090E090932A0180932901109273
+:100F5000A700CE01019695D08823B9F48B819C819E
+:100F6000F60191838083E816F90670F090932A01C8
+:100F700080932901C80185D0882339F4F801918133
+:100F8000923019F086E001C085E029960FB6F894FA
+:100F9000DEBF0FBECDBFCF91DF911F910F91FF90AC
+:100FA000EF90DF90CF900895AF92BF92CF92DF92F3
+:100FB000EF92FF920F931F93CF93DF938C01EB017E
+:100FC0006A0123C0E881F9815F01208130E0C70117
+:100FD0002E153F0508F4C901E80FF91FF983E883CE
+:100FE000F80120813181281B390B318320838881CE
+:100FF0009981F6010995823041F0813069F4A88227
+:10100000B982F801F182E08207C0F801E080F18046
+:10101000E114F104B9F682E0DF91CF911F910F91B5
+:10102000FF90EF90DF90CF90BF90AF90089508951C
+:101030001F93CF93DF93182FC8EED3E007C081E052
+:101040001EDC8823D1F42097B9F02197112329F4CD
+:101050008091A60083FFF3CF0DC0113029F4809159
+:10106000A60080FFECCF06C0123049F78091A600A1
+:1010700082FFE5CF80E001C084E0DF91CF911F9136
+:101080000895EF92FF920F931F93CF93DF938C01FC
+:10109000E0909E00FF2481E0E822FF24C091290116
+:1010A000D0912A0180919E00816080939E0081E012
+:1010B000E6DB882309F0E2C08091AA008F7C809350
+:1010C000AA001092F5008091A6008F7E8093A60062
+:1010D0008091A9008F7B8093A90080912301809348
+:1010E000AF00809124018093AF0090912501809101
+:1010F00026019093AF008093AF00909127018091DB
+:1011000028019093AF008093AF00909129018091C6
+:101110002A019093AF008093AF008091A60087775B
+:101120008093A60080E084DF882309F0A7C0809127
+:10113000A90080648093A90081E0A1DB882309F0E5
+:101140009DC08091230187FF4FC08091AA008F7CB2
+:1011500080618093AA000115110561F52DC0809171
+:10116000A9008F7B8093A90081E062DF882309F0CA
+:1011700085C08091F6009091F700009749F4C0E097
+:10118000D0E006C08091AF00F80181938F012197D4
+:101190008091F6009091F700009711F0209791F759
+:1011A0008091A90080648093A9008091A6008E7729
+:1011B0008093A600209799F68091AA008F7C806288
+:1011C0008093AA008091A9008F7B8093A90082E080
+:1011D0002FDF882309F052C08091A6008B7780937F
+:1011E000A60082E025DF4AC00115110599F1809122
+:1011F000AA008F7C80628093AA008091A9008F7BD7
+:101200008093A9001CC082E013DF8823B9F5F801A0
+:1012100006C081918F018093AF00219759F08F0113
+:101220002091F6003091F70080911B0190E0281783
+:10123000390778F38091A6008B778093A6002097DA
+:1012400011F782E0F5DE8823C9F48091A90080645B
+:101250008093A9008091AA008F7C80618093AA006E
+:101260008091A9008F7B8093A90081E0E1DE882333
+:1012700029F49091A6009E779093A6009091A900E2
+:1012800090649093A900E114F10429F490919E00D8
+:101290009E7F90939E0091E09093A8001092A800EA
+:1012A000DF91CF911F910F91FF90EF9008951F93C1
+:1012B000CF93DF93C7EAD0E018811770188234DB30
+:1012C0001883DF91CF911F9108959091C80095FFE9
+:1012D000FCCF8093CE0080E090E008958091C8001C
+:1012E00087FF08C08091C80087FF07C02091CE000B
+:1012F00030E005C02EEF3FEF02C02FEF3FEFC901F6
+:101300000895DF93CF93CDB7DEB7FE013596619197
+:10131000719180913C0190913D01DC0113962C91DB
+:101320001397286013962C93AF0142D0E0913C01B3
+:10133000F0913D012381277F2383CF91DF91089591
+:10134000EF92FF920F931F93CF93DF938C01E09165
+:101350003C01F0913D01838181FF20C0C0E0D0E0DD
+:101360000CC0DB011896ED91FC9119970995009737
+:1013700011F0CFEFDFEF0F5F1F4FF8018491609105
+:101380003C0170913D01882361F7DB011896ED91D6
+:10139000FC9119978AE00995009711F0CFEFDFEFE4
+:1013A000CE01DF91CF911F910F91FF90EF900895A3
+:1013B0002F923F924F925F926F927F928F929F9265
+:1013C000AF92BF92CF92DF92EF92FF920F931F9353
+:1013D000DF93CF93CDB7DEB72C970FB6F894DEBF6F
+:1013E0000FBECDBF6C011B018A01FC011782168262
+:1013F000838181FFC4C12E010894411C511CF60158
+:101400009381F10193FD859193FF81911F018823C1
+:1014100009F4B1C1853239F493FD859193FF81912F
+:101420001F01853221F490E0B601DBD1E8CFEE2434
+:10143000FF2420E02032B0F48B3269F08C3228F4A3
+:10144000803251F0833271F40BC08D3239F0803329
+:1014500049F421602CC02260246029C0286027C084
+:10146000206125C027FD2CC0382F30533A3098F426
+:1014700026FF08C08E2D880FE82EEE0CEE0CE80E2D
+:10148000E30E15C08F2D880FF82EFF0CFF0CF80E01
+:10149000F30E20620CC08E3221F426FD6CC1206454
+:1014A00006C08C3611F4206802C0883649F4F10178
+:1014B00093FD859193FF81911F01882309F0BACF95
+:1014C000982F9554933018F09052933028F40C5F75
+:1014D0001F4FFFE3F9830DC0833631F0833771F07E
+:1014E000833509F05CC021C0F801808189830E5FDB
+:1014F0001F4F420171E0A72EB12C15C062E0662E8D
+:10150000712C600E711EF8018080918026FF03C04F
+:101510006E2D70E002C06FEF7FEFC4012C8756D1B3
+:101520005C0183012C852F7716C052E0652E712C4B
+:10153000600E711EF8018080918026FF03C06E2D21
+:1015400070E002C06FEF7FEFC4012C8734D15C01E3
+:101550002C852068830123FD1EC007C080E290E037
+:10156000B6012C873ED1FA942C858F2D90E0A816D9
+:10157000B906A0F310C0F40127FD859127FF8191E2
+:101580004F0190E0B6012C872CD12C85F110FA94F4
+:101590000894A108B108A114B10469F7E9C0843620
+:1015A00011F0893641F527FF08C0F801608171818B
+:1015B000828193810C5F1F4F09C0F80160817181A6
+:1015C000882777FD8095982F0E5F1F4F4FE6B42E2A
+:1015D000B22297FF09C090958095709561957F4FD5
+:1015E0008F4F9F4FF0E8BF2AA2012AE030E025D1BB
+:1015F000782E741844C0853731F43FEEB32EB222F2
+:101600002AE030E025C099EFB92EB2228F36C1F022
+:10161000803720F4883509F0AEC00DC0803721F046
+:10162000883709F0A8C002C020E1B22AB4FE0BC07E
+:1016300084E0B82A08C0B4FE09C0E6E0BE2A06C0AD
+:1016400028E030E005C020E130E002C020E132E0D7
+:10165000B7FE08C0F80160817181828193810C5FBF
+:101660001F4F07C0F8016081718180E090E00E5F3C
+:101670001F4FA201E2D0782E7418FFE7BF22B6FEFA
+:101680000BC02EEFB2227E1438F4B4FE07C0B2FCB9
+:1016900005C08FEEB82202C0A72C01C0AE2C8B2D46
+:1016A00090E0B4FE0DC0FE01E70DF11D2081203356
+:1016B00019F4E9EEBE2209C0A394B2FE06C004C02C
+:1016C00086789070009709F0A3948B2C9924B3FC32
+:1016D00013C0B0FE0EC0AF1428F4E72CEF0CEA18CC
+:1016E000AF2C07C0E72C05C080E290E0B60179D0AE
+:1016F000A394AF14C8F304C0AF1410F4FA1801C0D7
+:10170000FF2484FE0EC080E390E0B6016AD082FE22
+:101710001DC081FE03C088E590E010C088E790E01E
+:101720000DC0C40186789070009781F081FC02C0E2
+:1017300080E201C08BE2B7FC8DE290E0B60151D0AF
+:1017400005C080E390E0B6014CD0EA947E14C8F363
+:101750007A94F201E70DF11D808190E0B60141D04D
+:101760007720B1F705C080E290E0B6013AD0FA9454
+:10177000FF20C9F744CEF6012681378102C02FEF42
+:101780003FEFC9012C960FB6F894DEBF0FBECDBF58
+:10179000CF91DF911F910F91FF90EF90DF90CF904D
+:1017A000BF90AF909F908F907F906F905F904F9081
+:1017B0003F902F900895FC010590615070400110FA
+:1017C000D8F7809590958E0F9F1F0895FC0161506A
+:1017D000704001900110D8F7809590958E0F9F1F53
+:1017E00008950F931F93CF93DF938C01EB018B81AF
+:1017F00081FF1BC082FF0DC02E813F818C819D81A6
+:101800002817390764F4E881F9810193F983E883A3
+:1018100006C0E885F985802F0995009731F48E81FF
+:101820009F8101969F838E8302C00FEF1FEFC80137
+:10183000DF91CF911F910F910895FA01AA272830C7
+:1018400051F1203181F1E8946F936E7F6E5F7F4F8D
+:101850008F4F9F4FAF4FB1E03ED0B4E03CD0670F09
+:10186000781F891F9A1FA11D680F791F8A1F911D5C
+:10187000A11D6A0F711D811D911DA11D20D009F4AC
+:1018800068943F912AE0269F11243019305D3193EE
+:10189000DEF6CF010895462F4770405D4193B3E0D7
+:1018A0000FD0C9F7F6CF462F4F70405D4A3318F07E
+:1018B000495D31FD4052419302D0A9F7EACFB4E02F
+:1018C000A6959795879577956795BA95C9F70097E7
+:1018D0006105710508959B01AC010A2E0694579588
+:1018E000479537952795BA95C9F7620F731F841FDF
+:0A18F000951FA01D0895F894FFCF86
+:1018FA0080BB008006000100001200000501000004
+:0C190A0000000080060001000008004002
+:00000001FF
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lss b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lss
new file mode 100644
index 000000000..152917403
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lss
@@ -0,0 +1,5024 @@
+
+AudioInputHost.elf:     file format elf32-avr
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .data         0000001c  00800100  000018fa  0000198e  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  1 .text         000018fa  00000000  00000000  00000094  2**1
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .bss          00000024  0080011c  0080011c  000019aa  2**0
+                  ALLOC
+  3 .stab         00000e28  00000000  00000000  000019ac  2**2
+                  CONTENTS, READONLY, DEBUGGING
+  4 .stabstr      0000026b  00000000  00000000  000027d4  2**0
+                  CONTENTS, READONLY, DEBUGGING
+  5 .debug_aranges 000003b0  00000000  00000000  00002a3f  2**0
+                  CONTENTS, READONLY, DEBUGGING
+  6 .debug_pubnames 0000089a  00000000  00000000  00002def  2**0
+                  CONTENTS, READONLY, DEBUGGING
+  7 .debug_info   000056c7  00000000  00000000  00003689  2**0
+                  CONTENTS, READONLY, DEBUGGING
+  8 .debug_abbrev 00001b65  00000000  00000000  00008d50  2**0
+                  CONTENTS, READONLY, DEBUGGING
+  9 .debug_line   000053bf  00000000  00000000  0000a8b5  2**0
+                  CONTENTS, READONLY, DEBUGGING
+ 10 .debug_frame  00000540  00000000  00000000  0000fc74  2**2
+                  CONTENTS, READONLY, DEBUGGING
+ 11 .debug_str    000026bf  00000000  00000000  000101b4  2**0
+                  CONTENTS, READONLY, DEBUGGING
+ 12 .debug_loc    00003422  00000000  00000000  00012873  2**0
+                  CONTENTS, READONLY, DEBUGGING
+ 13 .debug_pubtypes 00000a86  00000000  00000000  00015c95  2**0
+                  CONTENTS, READONLY, DEBUGGING
+ 14 .debug_ranges 00000490  00000000  00000000  0001671b  2**0
+                  CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+       0:	51 c1       	rjmp	.+674    	; 0x2a4 <__ctors_end>
+       2:	00 00       	nop
+       4:	6d c1       	rjmp	.+730    	; 0x2e0 <__bad_interrupt>
+       6:	00 00       	nop
+       8:	6b c1       	rjmp	.+726    	; 0x2e0 <__bad_interrupt>
+       a:	00 00       	nop
+       c:	69 c1       	rjmp	.+722    	; 0x2e0 <__bad_interrupt>
+       e:	00 00       	nop
+      10:	67 c1       	rjmp	.+718    	; 0x2e0 <__bad_interrupt>
+      12:	00 00       	nop
+      14:	65 c1       	rjmp	.+714    	; 0x2e0 <__bad_interrupt>
+      16:	00 00       	nop
+      18:	63 c1       	rjmp	.+710    	; 0x2e0 <__bad_interrupt>
+      1a:	00 00       	nop
+      1c:	61 c1       	rjmp	.+706    	; 0x2e0 <__bad_interrupt>
+      1e:	00 00       	nop
+      20:	5f c1       	rjmp	.+702    	; 0x2e0 <__bad_interrupt>
+      22:	00 00       	nop
+      24:	5d c1       	rjmp	.+698    	; 0x2e0 <__bad_interrupt>
+      26:	00 00       	nop
+      28:	d5 c6       	rjmp	.+3498   	; 0xdd4 <__vector_10>
+      2a:	00 00       	nop
+      2c:	59 c1       	rjmp	.+690    	; 0x2e0 <__bad_interrupt>
+      2e:	00 00       	nop
+      30:	57 c1       	rjmp	.+686    	; 0x2e0 <__bad_interrupt>
+      32:	00 00       	nop
+      34:	55 c1       	rjmp	.+682    	; 0x2e0 <__bad_interrupt>
+      36:	00 00       	nop
+      38:	53 c1       	rjmp	.+678    	; 0x2e0 <__bad_interrupt>
+      3a:	00 00       	nop
+      3c:	51 c1       	rjmp	.+674    	; 0x2e0 <__bad_interrupt>
+      3e:	00 00       	nop
+      40:	4f c1       	rjmp	.+670    	; 0x2e0 <__bad_interrupt>
+      42:	00 00       	nop
+      44:	4d c1       	rjmp	.+666    	; 0x2e0 <__bad_interrupt>
+      46:	00 00       	nop
+      48:	4b c1       	rjmp	.+662    	; 0x2e0 <__bad_interrupt>
+      4a:	00 00       	nop
+      4c:	49 c1       	rjmp	.+658    	; 0x2e0 <__bad_interrupt>
+      4e:	00 00       	nop
+      50:	47 c1       	rjmp	.+654    	; 0x2e0 <__bad_interrupt>
+      52:	00 00       	nop
+      54:	8b c2       	rjmp	.+1302   	; 0x56c <__vector_21>
+      56:	00 00       	nop
+      58:	43 c1       	rjmp	.+646    	; 0x2e0 <__bad_interrupt>
+      5a:	00 00       	nop
+      5c:	41 c1       	rjmp	.+642    	; 0x2e0 <__bad_interrupt>
+      5e:	00 00       	nop
+      60:	3f c1       	rjmp	.+638    	; 0x2e0 <__bad_interrupt>
+      62:	00 00       	nop
+      64:	3d c1       	rjmp	.+634    	; 0x2e0 <__bad_interrupt>
+      66:	00 00       	nop
+      68:	3b c1       	rjmp	.+630    	; 0x2e0 <__bad_interrupt>
+      6a:	00 00       	nop
+      6c:	39 c1       	rjmp	.+626    	; 0x2e0 <__bad_interrupt>
+      6e:	00 00       	nop
+      70:	37 c1       	rjmp	.+622    	; 0x2e0 <__bad_interrupt>
+      72:	00 00       	nop
+      74:	35 c1       	rjmp	.+618    	; 0x2e0 <__bad_interrupt>
+      76:	00 00       	nop
+      78:	33 c1       	rjmp	.+614    	; 0x2e0 <__bad_interrupt>
+      7a:	00 00       	nop
+      7c:	31 c1       	rjmp	.+610    	; 0x2e0 <__bad_interrupt>
+      7e:	00 00       	nop
+      80:	2f c1       	rjmp	.+606    	; 0x2e0 <__bad_interrupt>
+      82:	00 00       	nop
+      84:	2d c1       	rjmp	.+602    	; 0x2e0 <__bad_interrupt>
+      86:	00 00       	nop
+      88:	2b c1       	rjmp	.+598    	; 0x2e0 <__bad_interrupt>
+      8a:	00 00       	nop
+      8c:	29 c1       	rjmp	.+594    	; 0x2e0 <__bad_interrupt>
+      8e:	00 00       	nop
+      90:	27 c1       	rjmp	.+590    	; 0x2e0 <__bad_interrupt>
+      92:	00 00       	nop
+      94:	25 c1       	rjmp	.+586    	; 0x2e0 <__bad_interrupt>
+      96:	00 00       	nop
+
+00000098 <__c.3939>:
+      98:	4d 69 63 72 6f 70 68 6f 6e 65 20 45 6e 75 6d 65     Microphone Enume
+      a8:	72 61 74 65 64 2e 0d 0a 00                          rated....
+
+000000b1 <__c.3935>:
+      b1:	1b 5b 33 31 6d 43 6f 75 6c 64 20 6e 6f 74 20 73     .[31mCould not s
+      c1:	65 74 20 61 6c 74 65 72 6e 61 74 69 76 65 20 73     et alternative s
+      d1:	74 72 65 61 6d 69 6e 67 20 69 6e 74 65 72 66 61     treaming interfa
+      e1:	63 65 20 73 65 74 74 69 6e 67 2e 0d 0a 20 2d 2d     ce setting... --
+      f1:	20 45 72 72 6f 72 20 43 6f 64 65 3a 20 25 64 0d      Error Code: %d.
+     101:	0a 1b 5b 33 37 6d 00                                ..[37m.
+
+00000108 <__c.3933>:
+     108:	1b 5b 33 31 6d 43 6f 6e 74 72 6f 6c 20 45 72 72     .[31mControl Err
+     118:	6f 72 20 28 53 65 74 20 43 6f 6e 66 69 67 75 72     or (Set Configur
+     128:	61 74 69 6f 6e 29 2e 0d 0a 20 2d 2d 20 45 72 72     ation)... -- Err
+     138:	6f 72 20 43 6f 64 65 3a 20 25 64 0d 0a 1b 5b 33     or Code: %d...[3
+     148:	37 6d 00                                            7m.
+
+0000014b <__c.3930>:
+     14b:	20 2d 2d 20 45 72 72 6f 72 20 43 6f 64 65 3a 20      -- Error Code: 
+     15b:	25 64 0d 0a 1b 5b 33 37 6d 00                       %d...[37m.
+
+00000165 <__c.3928>:
+     165:	1b 5b 33 31 6d 49 6e 76 61 6c 69 64 20 44 65 76     .[31mInvalid Dev
+     175:	69 63 65 2e 0d 0a 00                                ice....
+
+0000017c <__c.3926>:
+     17c:	1b 5b 33 31 6d 43 6f 6e 74 72 6f 6c 20 45 72 72     .[31mControl Err
+     18c:	6f 72 20 28 47 65 74 20 43 6f 6e 66 69 67 75 72     or (Get Configur
+     19c:	61 74 69 6f 6e 29 2e 0d 0a 00                       ation)....
+
+000001a6 <__c.3924>:
+     1a6:	47 65 74 74 69 6e 67 20 43 6f 6e 66 69 67 20 44     Getting Config D
+     1b6:	61 74 61 2e 0d 0a 00                                ata....
+
+000001bd <__c.3917>:
+     1bd:	1b 5b 33 31 6d 44 65 76 20 45 6e 75 6d 20 45 72     .[31mDev Enum Er
+     1cd:	72 6f 72 0d 0a 20 2d 2d 20 45 72 72 6f 72 20 43     ror.. -- Error C
+     1dd:	6f 64 65 20 25 64 0d 0a 20 2d 2d 20 53 75 62 20     ode %d.. -- Sub 
+     1ed:	45 72 72 6f 72 20 43 6f 64 65 20 25 64 0d 0a 20     Error Code %d.. 
+     1fd:	2d 2d 20 49 6e 20 53 74 61 74 65 20 25 64 0d 0a     -- In State %d..
+     20d:	1b 5b 33 37 6d 00                                   .[37m.
+
+00000213 <__c.3910>:
+     213:	1b 5b 33 31 6d 48 6f 73 74 20 4d 6f 64 65 20 45     .[31mHost Mode E
+     223:	72 72 6f 72 0d 0a 20 2d 2d 20 45 72 72 6f 72 20     rror.. -- Error 
+     233:	43 6f 64 65 20 25 64 0d 0a 1b 5b 33 37 6d 00        Code %d...[37m.
+
+00000242 <__c.3902>:
+     242:	1b 5b 33 32 6d 44 65 76 69 63 65 20 55 6e 61 74     .[32mDevice Unat
+     252:	74 61 63 68 65 64 2e 0d 0a 1b 5b 33 37 6d 00        tached....[37m.
+
+00000261 <__c.3897>:
+     261:	1b 5b 33 32 6d 44 65 76 69 63 65 20 41 74 74 61     .[32mDevice Atta
+     271:	63 68 65 64 2e 0d 0a 1b 5b 33 37 6d 00              ched....[37m.
+
+0000027e <__c.3888>:
+     27e:	1b 5b 33 36 6d 41 75 64 69 6f 20 48 6f 73 74 20     .[36mAudio Host 
+     28e:	44 65 6d 6f 20 72 75 6e 6e 69 6e 67 2e 0d 0a 1b     Demo running....
+     29e:	5b 33 37 6d 00 00                                   [37m..
+
+000002a4 <__ctors_end>:
+     2a4:	11 24       	eor	r1, r1
+     2a6:	1f be       	out	0x3f, r1	; 63
+     2a8:	cf ef       	ldi	r28, 0xFF	; 255
+     2aa:	d0 e2       	ldi	r29, 0x20	; 32
+     2ac:	de bf       	out	0x3e, r29	; 62
+     2ae:	cd bf       	out	0x3d, r28	; 61
+
+000002b0 <__do_copy_data>:
+     2b0:	11 e0       	ldi	r17, 0x01	; 1
+     2b2:	a0 e0       	ldi	r26, 0x00	; 0
+     2b4:	b1 e0       	ldi	r27, 0x01	; 1
+     2b6:	ea ef       	ldi	r30, 0xFA	; 250
+     2b8:	f8 e1       	ldi	r31, 0x18	; 24
+     2ba:	00 e0       	ldi	r16, 0x00	; 0
+     2bc:	0b bf       	out	0x3b, r16	; 59
+     2be:	02 c0       	rjmp	.+4      	; 0x2c4 <__do_copy_data+0x14>
+     2c0:	07 90       	elpm	r0, Z+
+     2c2:	0d 92       	st	X+, r0
+     2c4:	ac 31       	cpi	r26, 0x1C	; 28
+     2c6:	b1 07       	cpc	r27, r17
+     2c8:	d9 f7       	brne	.-10     	; 0x2c0 <__do_copy_data+0x10>
+
+000002ca <__do_clear_bss>:
+     2ca:	11 e0       	ldi	r17, 0x01	; 1
+     2cc:	ac e1       	ldi	r26, 0x1C	; 28
+     2ce:	b1 e0       	ldi	r27, 0x01	; 1
+     2d0:	01 c0       	rjmp	.+2      	; 0x2d4 <.do_clear_bss_start>
+
+000002d2 <.do_clear_bss_loop>:
+     2d2:	1d 92       	st	X+, r1
+
+000002d4 <.do_clear_bss_start>:
+     2d4:	a0 34       	cpi	r26, 0x40	; 64
+     2d6:	b1 07       	cpc	r27, r17
+     2d8:	e1 f7       	brne	.-8      	; 0x2d2 <.do_clear_bss_loop>
+     2da:	3e d1       	rcall	.+636    	; 0x558 <main>
+     2dc:	0c 94 7b 0c 	jmp	0x18f6	; 0x18f6 <_exit>
+
+000002e0 <__bad_interrupt>:
+     2e0:	8f ce       	rjmp	.-738    	; 0x0 <__vectors>
+
+000002e2 <LEDs_SetAllLEDs>:
+				PORTD &= ~LEDMask;
+			}
+
+			static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
+			{
+				PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);
+     2e2:	9b b1       	in	r25, 0x0b	; 11
+     2e4:	9f 70       	andi	r25, 0x0F	; 15
+     2e6:	98 2b       	or	r25, r24
+     2e8:	9b b9       	out	0x0b, r25	; 11
+			}
+     2ea:	08 95       	ret
+
+000002ec <SetupHardware>:
+
+/** Configures the board hardware and chip peripherals for the demo's functionality. */
+void SetupHardware(void)
+{
+	/* Disable watchdog if enabled by bootloader/fuses */
+	MCUSR &= ~(1 << WDRF);
+     2ec:	84 b7       	in	r24, 0x34	; 52
+     2ee:	87 7f       	andi	r24, 0xF7	; 247
+     2f0:	84 bf       	out	0x34, r24	; 52
+	wdt_disable();
+     2f2:	28 e1       	ldi	r18, 0x18	; 24
+     2f4:	0f b6       	in	r0, 0x3f	; 63
+     2f6:	f8 94       	cli
+     2f8:	20 93 60 00 	sts	0x0060, r18
+     2fc:	10 92 60 00 	sts	0x0060, r1
+     300:	0f be       	out	0x3f, r0	; 63
+The type of x is clock_div_t.
+*/
+void clock_prescale_set(clock_div_t __x)
+{
+    uint8_t __tmp = _BV(CLKPCE);
+    __asm__ __volatile__ (
+     302:	90 e0       	ldi	r25, 0x00	; 0
+     304:	80 e8       	ldi	r24, 0x80	; 128
+     306:	0f b6       	in	r0, 0x3f	; 63
+     308:	f8 94       	cli
+     30a:	80 93 61 00 	sts	0x0061, r24
+     30e:	90 93 61 00 	sts	0x0061, r25
+     312:	0f be       	out	0x3f, r0	; 63
+			 *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate.
+			 */
+			static inline void Serial_Init(const uint32_t BaudRate,
+			                               const bool DoubleSpeed)
+			{
+				UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
+     314:	83 e3       	ldi	r24, 0x33	; 51
+     316:	90 e0       	ldi	r25, 0x00	; 0
+     318:	90 93 cd 00 	sts	0x00CD, r25
+     31c:	80 93 cc 00 	sts	0x00CC, r24
+
+				UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
+     320:	86 e0       	ldi	r24, 0x06	; 6
+     322:	80 93 ca 00 	sts	0x00CA, r24
+				UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
+     326:	10 92 c8 00 	sts	0x00C8, r1
+				UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
+     32a:	20 93 c9 00 	sts	0x00C9, r18
+
+				DDRD  |= (1 << 3);
+     32e:	53 9a       	sbi	0x0a, 3	; 10
+				PORTD |= (1 << 2);
+     330:	5a 9a       	sbi	0x0b, 2	; 11
+
+		/* Inline Functions: */
+		#if !defined(__DOXYGEN__)
+			static inline void LEDs_Init(void)
+			{
+				DDRD  |=  LEDS_ALL_LEDS;
+     332:	8a b1       	in	r24, 0x0a	; 10
+     334:	80 6f       	ori	r24, 0xF0	; 240
+     336:	8a b9       	out	0x0a, r24	; 10
+				PORTD &= ~LEDS_ALL_LEDS;
+     338:	8b b1       	in	r24, 0x0b	; 11
+     33a:	8f 70       	andi	r24, 0x0F	; 15
+     33c:	8b b9       	out	0x0b, r24	; 11
+	clock_prescale_set(clock_div_1);
+
+	/* Hardware Initialization */
+	Serial_Init(9600, false);
+	LEDs_Init();
+	USB_Init();
+     33e:	34 d5       	rcall	.+2664   	; 0xda8 <USB_Init>
+			static inline void Serial_CreateStream(FILE* Stream)
+			{
+				if (!(Stream))
+				{
+					Stream = &USARTSerialStream;
+					stdin  = Stream;
+     340:	ec e2       	ldi	r30, 0x2C	; 44
+     342:	f1 e0       	ldi	r31, 0x01	; 1
+     344:	f0 93 3b 01 	sts	0x013B, r31
+     348:	e0 93 3a 01 	sts	0x013A, r30
+					stdout = Stream;
+     34c:	f0 93 3d 01 	sts	0x013D, r31
+     350:	e0 93 3c 01 	sts	0x013C, r30
+				}
+			
+				*Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+     354:	8e e0       	ldi	r24, 0x0E	; 14
+     356:	df 01       	movw	r26, r30
+     358:	1d 92       	st	X+, r1
+     35a:	8a 95       	dec	r24
+     35c:	e9 f7       	brne	.-6      	; 0x358 <SetupHardware+0x6c>
+     35e:	83 e0       	ldi	r24, 0x03	; 3
+     360:	80 93 2f 01 	sts	0x012F, r24
+     364:	85 e6       	ldi	r24, 0x65	; 101
+     366:	99 e0       	ldi	r25, 0x09	; 9
+     368:	90 93 35 01 	sts	0x0135, r25
+     36c:	80 93 34 01 	sts	0x0134, r24
+     370:	8e e6       	ldi	r24, 0x6E	; 110
+     372:	99 e0       	ldi	r25, 0x09	; 9
+     374:	90 93 37 01 	sts	0x0137, r25
+     378:	80 93 36 01 	sts	0x0136, r24
+
+	/* Create a stdio stream for the serial port for stdin and stdout */
+	Serial_CreateStream(NULL);
+}
+     37c:	08 95       	ret
+
+0000037e <EVENT_USB_Host_DeviceAttached>:
+/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
+ *  starts the library USB task to begin the enumeration and USB management process.
+ */
+void EVENT_USB_Host_DeviceAttached(void)
+{
+	puts_P(PSTR(ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE));
+     37e:	81 e6       	ldi	r24, 0x61	; 97
+     380:	92 e0       	ldi	r25, 0x02	; 2
+     382:	de d7       	rcall	.+4028   	; 0x1340 <puts_P>
+	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
+     384:	80 ea       	ldi	r24, 0xA0	; 160
+}
+     386:	ad cf       	rjmp	.-166    	; 0x2e2 <LEDs_SetAllLEDs>
+
+00000388 <EVENT_USB_Host_DeviceUnattached>:
+/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
+ *  stops the library USB task management process.
+ */
+void EVENT_USB_Host_DeviceUnattached(void)
+{
+	puts_P(PSTR(ESC_FG_GREEN "Device Unattached.\r\n" ESC_FG_WHITE));
+     388:	82 e4       	ldi	r24, 0x42	; 66
+     38a:	92 e0       	ldi	r25, 0x02	; 2
+     38c:	d9 d7       	rcall	.+4018   	; 0x1340 <puts_P>
+	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+     38e:	80 e1       	ldi	r24, 0x10	; 16
+}
+     390:	a8 cf       	rjmp	.-176    	; 0x2e2 <LEDs_SetAllLEDs>
+
+00000392 <EVENT_USB_Host_DeviceEnumerationComplete>:
+/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
+ *  enumerated by the host and is now ready to be used by the application.
+ */
+void EVENT_USB_Host_DeviceEnumerationComplete(void)
+{
+	LEDs_SetAllLEDs(LEDMASK_USB_READY);
+     392:	80 e6       	ldi	r24, 0x60	; 96
+}
+     394:	a6 cf       	rjmp	.-180    	; 0x2e2 <LEDs_SetAllLEDs>
+
+00000396 <EVENT_USB_Host_HostError>:
+
+/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
+void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
+{
+     396:	df 93       	push	r29
+     398:	cf 93       	push	r28
+     39a:	0f 92       	push	r0
+     39c:	cd b7       	in	r28, 0x3d	; 61
+     39e:	de b7       	in	r29, 0x3e	; 62
+	USB_Disable();
+     3a0:	89 83       	std	Y+1, r24	; 0x01
+     3a2:	9c d4       	rcall	.+2360   	; 0xcdc <USB_Disable>
+
+	printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n"
+     3a4:	00 d0       	rcall	.+0      	; 0x3a6 <EVENT_USB_Host_HostError+0x10>
+     3a6:	00 d0       	rcall	.+0      	; 0x3a8 <EVENT_USB_Host_HostError+0x12>
+     3a8:	ed b7       	in	r30, 0x3d	; 61
+     3aa:	fe b7       	in	r31, 0x3e	; 62
+     3ac:	31 96       	adiw	r30, 0x01	; 1
+     3ae:	23 e1       	ldi	r18, 0x13	; 19
+     3b0:	32 e0       	ldi	r19, 0x02	; 2
+     3b2:	ad b7       	in	r26, 0x3d	; 61
+     3b4:	be b7       	in	r27, 0x3e	; 62
+     3b6:	12 96       	adiw	r26, 0x02	; 2
+     3b8:	3c 93       	st	X, r19
+     3ba:	2e 93       	st	-X, r18
+     3bc:	11 97       	sbiw	r26, 0x01	; 1
+     3be:	89 81       	ldd	r24, Y+1	; 0x01
+     3c0:	82 83       	std	Z+2, r24	; 0x02
+     3c2:	13 82       	std	Z+3, r1	; 0x03
+     3c4:	9e d7       	rcall	.+3900   	; 0x1302 <printf_P>
+	                         " -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+     3c6:	0f 90       	pop	r0
+     3c8:	0f 90       	pop	r0
+     3ca:	0f 90       	pop	r0
+     3cc:	0f 90       	pop	r0
+     3ce:	80 e9       	ldi	r24, 0x90	; 144
+     3d0:	88 df       	rcall	.-240    	; 0x2e2 <LEDs_SetAllLEDs>
+     3d2:	ff cf       	rjmp	.-2      	; 0x3d2 <EVENT_USB_Host_HostError+0x3c>
+
+000003d4 <EVENT_USB_Host_DeviceEnumerationFailed>:
+ *  enumerating an attached USB device.
+ */
+void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
+                                            const uint8_t SubErrorCode)
+{
+	printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n"
+     3d4:	90 91 2b 01 	lds	r25, 0x012B
+     3d8:	2d b7       	in	r18, 0x3d	; 61
+     3da:	3e b7       	in	r19, 0x3e	; 62
+     3dc:	28 50       	subi	r18, 0x08	; 8
+     3de:	30 40       	sbci	r19, 0x00	; 0
+     3e0:	0f b6       	in	r0, 0x3f	; 63
+     3e2:	f8 94       	cli
+     3e4:	3e bf       	out	0x3e, r19	; 62
+     3e6:	0f be       	out	0x3f, r0	; 63
+     3e8:	2d bf       	out	0x3d, r18	; 61
+     3ea:	ed b7       	in	r30, 0x3d	; 61
+     3ec:	fe b7       	in	r31, 0x3e	; 62
+     3ee:	31 96       	adiw	r30, 0x01	; 1
+     3f0:	2d eb       	ldi	r18, 0xBD	; 189
+     3f2:	31 e0       	ldi	r19, 0x01	; 1
+     3f4:	ad b7       	in	r26, 0x3d	; 61
+     3f6:	be b7       	in	r27, 0x3e	; 62
+     3f8:	12 96       	adiw	r26, 0x02	; 2
+     3fa:	3c 93       	st	X, r19
+     3fc:	2e 93       	st	-X, r18
+     3fe:	11 97       	sbiw	r26, 0x01	; 1
+     400:	82 83       	std	Z+2, r24	; 0x02
+     402:	13 82       	std	Z+3, r1	; 0x03
+     404:	64 83       	std	Z+4, r22	; 0x04
+     406:	15 82       	std	Z+5, r1	; 0x05
+     408:	96 83       	std	Z+6, r25	; 0x06
+     40a:	17 82       	std	Z+7, r1	; 0x07
+     40c:	7a d7       	rcall	.+3828   	; 0x1302 <printf_P>
+	                         " -- Error Code %d\r\n"
+	                         " -- Sub Error Code %d\r\n"
+	                         " -- In State %d\r\n" ESC_FG_WHITE), ErrorCode, SubErrorCode, USB_HostState);
+
+	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+     40e:	2d b7       	in	r18, 0x3d	; 61
+     410:	3e b7       	in	r19, 0x3e	; 62
+     412:	28 5f       	subi	r18, 0xF8	; 248
+     414:	3f 4f       	sbci	r19, 0xFF	; 255
+     416:	0f b6       	in	r0, 0x3f	; 63
+     418:	f8 94       	cli
+     41a:	3e bf       	out	0x3e, r19	; 62
+     41c:	0f be       	out	0x3f, r0	; 63
+     41e:	2d bf       	out	0x3d, r18	; 61
+     420:	80 e9       	ldi	r24, 0x90	; 144
+}
+     422:	5f cf       	rjmp	.-322    	; 0x2e2 <LEDs_SetAllLEDs>
+
+00000424 <Audio_Task>:
+
+void Audio_Task(void)
+{
+     424:	1f 93       	push	r17
+     426:	df 93       	push	r29
+     428:	cf 93       	push	r28
+     42a:	00 d0       	rcall	.+0      	; 0x42c <Audio_Task+0x8>
+     42c:	0f 92       	push	r0
+     42e:	cd b7       	in	r28, 0x3d	; 61
+     430:	de b7       	in	r29, 0x3e	; 62
+	uint8_t ErrorCode;
+
+	switch (USB_HostState)
+     432:	80 91 2b 01 	lds	r24, 0x012B
+     436:	8b 30       	cpi	r24, 0x0B	; 11
+     438:	09 f0       	breq	.+2      	; 0x43c <Audio_Task+0x18>
+     43a:	87 c0       	rjmp	.+270    	; 0x54a <Audio_Task+0x126>
+	{
+		case HOST_STATE_Addressed:
+			puts_P(PSTR("Getting Config Data.\r\n"));
+     43c:	86 ea       	ldi	r24, 0xA6	; 166
+     43e:	91 e0       	ldi	r25, 0x01	; 1
+     440:	7f d7       	rcall	.+3838   	; 0x1340 <puts_P>
+
+			/* Get and process the configuration descriptor data */
+			if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
+     442:	30 d1       	rcall	.+608    	; 0x6a4 <ProcessConfigurationDescriptor>
+     444:	18 2f       	mov	r17, r24
+     446:	88 23       	and	r24, r24
+     448:	e9 f0       	breq	.+58     	; 0x484 <Audio_Task+0x60>
+			{
+				if (ErrorCode == ControlError)
+     44a:	81 30       	cpi	r24, 0x01	; 1
+     44c:	19 f4       	brne	.+6      	; 0x454 <Audio_Task+0x30>
+				  puts_P(PSTR(ESC_FG_RED "Control Error (Get Configuration).\r\n"));
+     44e:	8c e7       	ldi	r24, 0x7C	; 124
+     450:	91 e0       	ldi	r25, 0x01	; 1
+     452:	02 c0       	rjmp	.+4      	; 0x458 <Audio_Task+0x34>
+				else
+				  puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n"));
+     454:	85 e6       	ldi	r24, 0x65	; 101
+     456:	91 e0       	ldi	r25, 0x01	; 1
+     458:	73 d7       	rcall	.+3814   	; 0x1340 <puts_P>
+
+				printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
+     45a:	00 d0       	rcall	.+0      	; 0x45c <Audio_Task+0x38>
+     45c:	00 d0       	rcall	.+0      	; 0x45e <Audio_Task+0x3a>
+     45e:	ed b7       	in	r30, 0x3d	; 61
+     460:	fe b7       	in	r31, 0x3e	; 62
+     462:	31 96       	adiw	r30, 0x01	; 1
+     464:	2b e4       	ldi	r18, 0x4B	; 75
+     466:	31 e0       	ldi	r19, 0x01	; 1
+     468:	ad b7       	in	r26, 0x3d	; 61
+     46a:	be b7       	in	r27, 0x3e	; 62
+     46c:	12 96       	adiw	r26, 0x02	; 2
+     46e:	3c 93       	st	X, r19
+     470:	2e 93       	st	-X, r18
+     472:	11 97       	sbiw	r26, 0x01	; 1
+     474:	12 83       	std	Z+2, r17	; 0x02
+     476:	13 82       	std	Z+3, r1	; 0x03
+     478:	44 d7       	rcall	.+3720   	; 0x1302 <printf_P>
+
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+     47a:	0f 90       	pop	r0
+     47c:	0f 90       	pop	r0
+     47e:	0f 90       	pop	r0
+     480:	0f 90       	pop	r0
+     482:	4a c0       	rjmp	.+148    	; 0x518 <Audio_Task+0xf4>
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+
+			/* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
+			if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
+     484:	81 e0       	ldi	r24, 0x01	; 1
+     486:	82 d3       	rcall	.+1796   	; 0xb8c <USB_Host_SetDeviceConfiguration>
+     488:	88 23       	and	r24, r24
+     48a:	41 f0       	breq	.+16     	; 0x49c <Audio_Task+0x78>
+			{
+				printf_P(PSTR(ESC_FG_RED "Control Error (Set Configuration).\r\n"
+     48c:	00 d0       	rcall	.+0      	; 0x48e <Audio_Task+0x6a>
+     48e:	00 d0       	rcall	.+0      	; 0x490 <Audio_Task+0x6c>
+     490:	ed b7       	in	r30, 0x3d	; 61
+     492:	fe b7       	in	r31, 0x3e	; 62
+     494:	31 96       	adiw	r30, 0x01	; 1
+     496:	28 e0       	ldi	r18, 0x08	; 8
+     498:	31 e0       	ldi	r19, 0x01	; 1
+     49a:	0e c0       	rjmp	.+28     	; 0x4b8 <Audio_Task+0x94>
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+			
+			if ((ErrorCode = USB_Host_SetInterfaceAltSetting(StreamingInterfaceIndex,
+     49c:	80 91 1c 01 	lds	r24, 0x011C
+     4a0:	60 91 1d 01 	lds	r22, 0x011D
+     4a4:	89 d3       	rcall	.+1810   	; 0xbb8 <USB_Host_SetInterfaceAltSetting>
+     4a6:	88 23       	and	r24, r24
+     4a8:	79 f0       	breq	.+30     	; 0x4c8 <Audio_Task+0xa4>
+			                                                 StreamingInterfaceAltSetting)) != HOST_SENDCONTROL_Successful)
+			{
+				printf_P(PSTR(ESC_FG_RED "Could not set alternative streaming interface setting.\r\n"
+     4aa:	00 d0       	rcall	.+0      	; 0x4ac <Audio_Task+0x88>
+     4ac:	00 d0       	rcall	.+0      	; 0x4ae <Audio_Task+0x8a>
+     4ae:	ed b7       	in	r30, 0x3d	; 61
+     4b0:	fe b7       	in	r31, 0x3e	; 62
+     4b2:	31 96       	adiw	r30, 0x01	; 1
+     4b4:	21 eb       	ldi	r18, 0xB1	; 177
+     4b6:	30 e0       	ldi	r19, 0x00	; 0
+     4b8:	ad b7       	in	r26, 0x3d	; 61
+     4ba:	be b7       	in	r27, 0x3e	; 62
+     4bc:	12 96       	adiw	r26, 0x02	; 2
+     4be:	3c 93       	st	X, r19
+     4c0:	2e 93       	st	-X, r18
+     4c2:	11 97       	sbiw	r26, 0x01	; 1
+     4c4:	82 83       	std	Z+2, r24	; 0x02
+     4c6:	d7 cf       	rjmp	.-82     	; 0x476 <Audio_Task+0x52>
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+				break;
+			}
+
+			USB_ControlRequest = (USB_Request_Header_t)
+     4c8:	20 91 1e 01 	lds	r18, 0x011E
+     4cc:	82 e2       	ldi	r24, 0x22	; 34
+     4ce:	80 93 23 01 	sts	0x0123, r24
+     4d2:	81 e0       	ldi	r24, 0x01	; 1
+     4d4:	80 93 24 01 	sts	0x0124, r24
+     4d8:	80 e0       	ldi	r24, 0x00	; 0
+     4da:	91 e0       	ldi	r25, 0x01	; 1
+     4dc:	90 93 26 01 	sts	0x0126, r25
+     4e0:	80 93 25 01 	sts	0x0125, r24
+     4e4:	20 93 27 01 	sts	0x0127, r18
+     4e8:	10 92 28 01 	sts	0x0128, r1
+     4ec:	83 e0       	ldi	r24, 0x03	; 3
+     4ee:	90 e0       	ldi	r25, 0x00	; 0
+     4f0:	90 93 2a 01 	sts	0x012A, r25
+     4f4:	80 93 29 01 	sts	0x0129, r24
+					.wValue        = 0x0100,
+					.wIndex        = StreamingEndpointAddress,
+					.wLength       = sizeof(USB_Audio_SampleFreq_t),
+				};
+				
+			USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
+     4f8:	de 01       	movw	r26, r28
+     4fa:	11 96       	adiw	r26, 0x01	; 1
+     4fc:	e0 e0       	ldi	r30, 0x00	; 0
+     4fe:	f1 e0       	ldi	r31, 0x01	; 1
+     500:	83 e0       	ldi	r24, 0x03	; 3
+     502:	01 90       	ld	r0, Z+
+     504:	0d 92       	st	X+, r0
+     506:	81 50       	subi	r24, 0x01	; 1
+     508:	e1 f7       	brne	.-8      	; 0x502 <Audio_Task+0xde>
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     50a:	10 92 a7 00 	sts	0x00A7, r1
+
+			/* Select the control pipe for the request transfer */
+			Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+			/* Set the sample rate on the streaming interface endpoint */
+			if ((ErrorCode = USB_Host_SendControlRequest(&SampleRate)) != HOST_SENDCONTROL_Successful)
+     50e:	ce 01       	movw	r24, r28
+     510:	01 96       	adiw	r24, 0x01	; 1
+     512:	b7 d5       	rcall	.+2926   	; 0x1082 <USB_Host_SendControlRequest>
+     514:	88 23       	and	r24, r24
+     516:	29 f0       	breq	.+10     	; 0x522 <Audio_Task+0xfe>
+			{
+				/* Indicate error status */
+				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+     518:	80 e9       	ldi	r24, 0x90	; 144
+     51a:	e3 de       	rcall	.-570    	; 0x2e2 <LEDs_SetAllLEDs>
+
+				/* Wait until USB device disconnected */
+				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
+     51c:	10 92 2b 01 	sts	0x012B, r1
+				break;
+     520:	14 c0       	rjmp	.+40     	; 0x54a <Audio_Task+0x126>
+			}
+	
+			/* Sample reload timer initialization */
+			TIMSK0  = (1 << OCIE0A);
+     522:	82 e0       	ldi	r24, 0x02	; 2
+     524:	80 93 6e 00 	sts	0x006E, r24
+			OCR0A   = ((F_CPU / 8 / 8000) - 1);
+     528:	9c e7       	ldi	r25, 0x7C	; 124
+     52a:	97 bd       	out	0x27, r25	; 39
+			TCCR0A  = (1 << WGM01);  // CTC mode
+     52c:	84 bd       	out	0x24, r24	; 36
+			TCCR0B  = (1 << CS01);   // Fcpu/8 speed	
+     52e:	85 bd       	out	0x25, r24	; 37
+
+			/* Set speaker as output */
+			DDRC   |= (1 << 6);
+     530:	3e 9a       	sbi	0x07, 6	; 7
+
+			/* PWM speaker timer initialization */
+			TCCR3A  = ((1 << WGM30) | (1 << COM3A1) | (1 << COM3A0)
+     532:	81 ef       	ldi	r24, 0xF1	; 241
+     534:	80 93 90 00 	sts	0x0090, r24
+					| (1 << COM3B1) | (1 << COM3B0)); // Set on match, clear on TOP
+			TCCR3B  = ((1 << WGM32) | (1 << CS30));  // Fast 8-Bit PWM, F_CPU speed
+     538:	89 e0       	ldi	r24, 0x09	; 9
+     53a:	80 93 91 00 	sts	0x0091, r24
+			
+			puts_P(PSTR("Microphone Enumerated.\r\n"));
+     53e:	88 e9       	ldi	r24, 0x98	; 152
+     540:	90 e0       	ldi	r25, 0x00	; 0
+     542:	fe d6       	rcall	.+3580   	; 0x1340 <puts_P>
+
+			USB_HostState = HOST_STATE_Configured;
+     544:	8c e0       	ldi	r24, 0x0C	; 12
+     546:	80 93 2b 01 	sts	0x012B, r24
+			break;
+		case HOST_STATE_Configured:
+			break;
+	}
+}
+     54a:	0f 90       	pop	r0
+     54c:	0f 90       	pop	r0
+     54e:	0f 90       	pop	r0
+     550:	cf 91       	pop	r28
+     552:	df 91       	pop	r29
+     554:	1f 91       	pop	r17
+     556:	08 95       	ret
+
+00000558 <main>:
+/** Main program entry point. This routine configures the hardware required by the application, then
+ *  enters a loop to run the application tasks in sequence.
+ */
+int main(void)
+{
+	SetupHardware();
+     558:	c9 de       	rcall	.-622    	; 0x2ec <SetupHardware>
+
+	puts_P(PSTR(ESC_FG_CYAN "Audio Host Demo running.\r\n" ESC_FG_WHITE));
+     55a:	8e e7       	ldi	r24, 0x7E	; 126
+     55c:	92 e0       	ldi	r25, 0x02	; 2
+     55e:	f0 d6       	rcall	.+3552   	; 0x1340 <puts_P>
+
+	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+     560:	80 e1       	ldi	r24, 0x10	; 16
+     562:	bf de       	rcall	.-642    	; 0x2e2 <LEDs_SetAllLEDs>
+	sei();
+     564:	78 94       	sei
+
+	for (;;)
+	{
+		Audio_Task();
+     566:	5e df       	rcall	.-324    	; 0x424 <Audio_Task>
+		USB_USBTask();
+     568:	a2 d6       	rcall	.+3396   	; 0x12ae <USB_USBTask>
+     56a:	fd cf       	rjmp	.-6      	; 0x566 <main+0xe>
+
+0000056c <__vector_21>:
+	}
+}
+
+/** ISR to handle the reloading of the PWM timer with the next sample. */
+ISR(TIMER0_COMPA_vect, ISR_BLOCK)
+{
+     56c:	1f 92       	push	r1
+     56e:	0f 92       	push	r0
+     570:	0f b6       	in	r0, 0x3f	; 63
+     572:	0f 92       	push	r0
+     574:	0b b6       	in	r0, 0x3b	; 59
+     576:	0f 92       	push	r0
+     578:	11 24       	eor	r1, r1
+     57a:	1f 93       	push	r17
+     57c:	2f 93       	push	r18
+     57e:	3f 93       	push	r19
+     580:	4f 93       	push	r20
+     582:	5f 93       	push	r21
+     584:	6f 93       	push	r22
+     586:	7f 93       	push	r23
+     588:	8f 93       	push	r24
+     58a:	9f 93       	push	r25
+     58c:	af 93       	push	r26
+     58e:	bf 93       	push	r27
+     590:	ef 93       	push	r30
+     592:	ff 93       	push	r31
+			 *  \return Index of the currently selected pipe.
+			 */
+			static inline uint8_t Pipe_GetCurrentPipe(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint8_t Pipe_GetCurrentPipe(void)
+			{
+				return (UPNUM & PIPE_PIPENUM_MASK);
+     594:	10 91 a7 00 	lds	r17, 0x00A7
+     598:	17 70       	andi	r17, 0x07	; 7
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     59a:	81 e0       	ldi	r24, 0x01	; 1
+     59c:	80 93 a7 00 	sts	0x00A7, r24
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+     5a0:	80 91 a9 00 	lds	r24, 0x00A9
+     5a4:	8f 7b       	andi	r24, 0xBF	; 191
+     5a6:	80 93 a9 00 	sts	0x00A9, r24
+			 *  \return Boolean \c true if the current pipe has received an IN packet, \c false otherwise.
+			 */
+			static inline bool Pipe_IsINReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsINReceived(void)
+			{
+				return ((UPINTX & (1 << RXINI)) ? true : false);
+     5aa:	80 91 a6 00 	lds	r24, 0x00A6
+
+	Pipe_SelectPipe(AUDIO_DATA_IN_PIPE);
+	Pipe_Unfreeze();
+
+	/* Check if the current pipe can be read from (contains a packet) and the device is sending data */
+	if (Pipe_IsINReceived())
+     5ae:	80 ff       	sbrs	r24, 0
+     5b0:	2b c0       	rjmp	.+86     	; 0x608 <__vector_21+0x9c>
+				{
+					uint16_t Value;
+					uint8_t  Bytes[2];
+				} Data;
+
+				Data.Bytes[0] = UPDATX;
+     5b2:	80 91 af 00 	lds	r24, 0x00AF
+				Data.Bytes[1] = UPDATX;
+     5b6:	40 91 af 00 	lds	r20, 0x00AF
+			 *          on its direction.
+			 */
+			static inline bool Pipe_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsReadWriteAllowed(void)
+			{
+				return ((UPINTX & (1 << RWAL)) ? true : false);
+     5ba:	80 91 a6 00 	lds	r24, 0x00A6
+	{
+		/* Retrieve the signed 16-bit audio sample, convert to 8-bit */
+		int8_t Sample_8Bit = (Pipe_Read_16_LE() >> 8);
+
+		/* Check to see if the bank is now empty */
+		if (!(Pipe_IsReadWriteAllowed()))
+     5be:	85 fd       	sbrc	r24, 5
+     5c0:	05 c0       	rjmp	.+10     	; 0x5cc <__vector_21+0x60>
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearIN(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearIN(void)
+			{
+				UPINTX &= ~((1 << RXINI) | (1 << FIFOCON));
+     5c2:	80 91 a6 00 	lds	r24, 0x00A6
+     5c6:	8e 77       	andi	r24, 0x7E	; 126
+     5c8:	80 93 a6 00 	sts	0x00A6, r24
+			/* Acknowledge the packet, clear the bank ready for the next packet */
+			Pipe_ClearIN();
+		}
+
+		/* Load the sample into the PWM timer channel */
+		OCR3A = (Sample_8Bit ^ (1 << 7));
+     5cc:	84 2f       	mov	r24, r20
+     5ce:	99 27       	eor	r25, r25
+     5d0:	87 fd       	sbrc	r24, 7
+     5d2:	90 95       	com	r25
+     5d4:	20 e8       	ldi	r18, 0x80	; 128
+     5d6:	30 e0       	ldi	r19, 0x00	; 0
+     5d8:	82 27       	eor	r24, r18
+     5da:	93 27       	eor	r25, r19
+     5dc:	90 93 99 00 	sts	0x0099, r25
+     5e0:	80 93 98 00 	sts	0x0098, r24
+
+		uint8_t LEDMask = LEDS_NO_LEDS;
+
+		/* Turn on LEDs as the sample amplitude increases */
+		if (Sample_8Bit > 16)
+     5e4:	41 31       	cpi	r20, 0x11	; 17
+     5e6:	44 f4       	brge	.+16     	; 0x5f8 <__vector_21+0x8c>
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4);
+		else if (Sample_8Bit > 8)
+     5e8:	49 30       	cpi	r20, 0x09	; 9
+     5ea:	44 f4       	brge	.+16     	; 0x5fc <__vector_21+0x90>
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3);
+		else if (Sample_8Bit > 4)
+     5ec:	45 30       	cpi	r20, 0x05	; 5
+     5ee:	44 f4       	brge	.+16     	; 0x600 <__vector_21+0x94>
+		  LEDMask = (LEDS_LED1 | LEDS_LED2);
+		else if (Sample_8Bit > 2)
+     5f0:	43 30       	cpi	r20, 0x03	; 3
+     5f2:	44 f4       	brge	.+16     	; 0x604 <__vector_21+0x98>
+		}
+
+		/* Load the sample into the PWM timer channel */
+		OCR3A = (Sample_8Bit ^ (1 << 7));
+
+		uint8_t LEDMask = LEDS_NO_LEDS;
+     5f4:	80 e0       	ldi	r24, 0x00	; 0
+     5f6:	07 c0       	rjmp	.+14     	; 0x606 <__vector_21+0x9a>
+
+		/* Turn on LEDs as the sample amplitude increases */
+		if (Sample_8Bit > 16)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4);
+     5f8:	80 ef       	ldi	r24, 0xF0	; 240
+     5fa:	05 c0       	rjmp	.+10     	; 0x606 <__vector_21+0x9a>
+		else if (Sample_8Bit > 8)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3);
+     5fc:	80 eb       	ldi	r24, 0xB0	; 176
+     5fe:	03 c0       	rjmp	.+6      	; 0x606 <__vector_21+0x9a>
+		else if (Sample_8Bit > 4)
+		  LEDMask = (LEDS_LED1 | LEDS_LED2);
+     600:	80 e3       	ldi	r24, 0x30	; 48
+     602:	01 c0       	rjmp	.+2      	; 0x606 <__vector_21+0x9a>
+		else if (Sample_8Bit > 2)
+		  LEDMask = (LEDS_LED1);
+     604:	80 e1       	ldi	r24, 0x10	; 16
+
+		LEDs_SetAllLEDs(LEDMask);
+     606:	6d de       	rcall	.-806    	; 0x2e2 <LEDs_SetAllLEDs>
+
+			/** Freezes the selected pipe, preventing it from communicating with an attached device. */
+			static inline void Pipe_Freeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Freeze(void)
+			{
+				UPCONX |= (1 << PFREEZE);
+     608:	80 91 a9 00 	lds	r24, 0x00A9
+     60c:	80 64       	ori	r24, 0x40	; 64
+     60e:	80 93 a9 00 	sts	0x00A9, r24
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     612:	10 93 a7 00 	sts	0x00A7, r17
+	}
+	
+	Pipe_Freeze();
+
+	Pipe_SelectPipe(PrevPipe);
+}
+     616:	ff 91       	pop	r31
+     618:	ef 91       	pop	r30
+     61a:	bf 91       	pop	r27
+     61c:	af 91       	pop	r26
+     61e:	9f 91       	pop	r25
+     620:	8f 91       	pop	r24
+     622:	7f 91       	pop	r23
+     624:	6f 91       	pop	r22
+     626:	5f 91       	pop	r21
+     628:	4f 91       	pop	r20
+     62a:	3f 91       	pop	r19
+     62c:	2f 91       	pop	r18
+     62e:	1f 91       	pop	r17
+     630:	0f 90       	pop	r0
+     632:	0b be       	out	0x3b, r0	; 59
+     634:	0f 90       	pop	r0
+     636:	0f be       	out	0x3f, r0	; 63
+     638:	0f 90       	pop	r0
+     63a:	1f 90       	pop	r1
+     63c:	18 95       	reti
+
+0000063e <DComp_NextAudioControlInterface>:
+	/* Valid data found, return success */
+	return SuccessfulConfigRead;
+}
+
+uint8_t DComp_NextAudioControlInterface(void* CurrentDescriptor)
+{
+     63e:	fc 01       	movw	r30, r24
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Interface)
+     640:	81 81       	ldd	r24, Z+1	; 0x01
+     642:	84 30       	cpi	r24, 0x04	; 4
+     644:	49 f4       	brne	.+18     	; 0x658 <DComp_NextAudioControlInterface+0x1a>
+	{
+		USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+     646:	85 81       	ldd	r24, Z+5	; 0x05
+     648:	81 30       	cpi	r24, 0x01	; 1
+     64a:	31 f4       	brne	.+12     	; 0x658 <DComp_NextAudioControlInterface+0x1a>
+     64c:	86 81       	ldd	r24, Z+6	; 0x06
+     64e:	81 30       	cpi	r24, 0x01	; 1
+     650:	19 f4       	brne	.+6      	; 0x658 <DComp_NextAudioControlInterface+0x1a>
+		    (Interface->SubClass == AUDIO_CSCP_ControlSubclass) &&
+     652:	87 81       	ldd	r24, Z+7	; 0x07
+     654:	88 23       	and	r24, r24
+     656:	11 f0       	breq	.+4      	; 0x65c <DComp_NextAudioControlInterface+0x1e>
+		{
+			return DESCRIPTOR_SEARCH_Found;
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+     658:	82 e0       	ldi	r24, 0x02	; 2
+     65a:	08 95       	ret
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+		    (Interface->SubClass == AUDIO_CSCP_ControlSubclass) &&
+		    (Interface->Protocol == AUDIO_CSCP_ControlProtocol))
+		{
+			return DESCRIPTOR_SEARCH_Found;
+     65c:	80 e0       	ldi	r24, 0x00	; 0
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+     65e:	08 95       	ret
+
+00000660 <DComp_NextAudioStreamInterface>:
+
+uint8_t DComp_NextAudioStreamInterface(void* CurrentDescriptor)
+{
+     660:	fc 01       	movw	r30, r24
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Interface)
+     662:	81 81       	ldd	r24, Z+1	; 0x01
+     664:	84 30       	cpi	r24, 0x04	; 4
+     666:	49 f4       	brne	.+18     	; 0x67a <DComp_NextAudioStreamInterface+0x1a>
+	{
+		USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+     668:	85 81       	ldd	r24, Z+5	; 0x05
+     66a:	81 30       	cpi	r24, 0x01	; 1
+     66c:	31 f4       	brne	.+12     	; 0x67a <DComp_NextAudioStreamInterface+0x1a>
+     66e:	86 81       	ldd	r24, Z+6	; 0x06
+     670:	82 30       	cpi	r24, 0x02	; 2
+     672:	19 f4       	brne	.+6      	; 0x67a <DComp_NextAudioStreamInterface+0x1a>
+		    (Interface->SubClass == AUDIO_CSCP_AudioStreamingSubclass) &&
+     674:	87 81       	ldd	r24, Z+7	; 0x07
+     676:	88 23       	and	r24, r24
+     678:	11 f0       	breq	.+4      	; 0x67e <DComp_NextAudioStreamInterface+0x1e>
+		{
+			return DESCRIPTOR_SEARCH_Found;
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+     67a:	82 e0       	ldi	r24, 0x02	; 2
+     67c:	08 95       	ret
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+		    (Interface->SubClass == AUDIO_CSCP_AudioStreamingSubclass) &&
+		    (Interface->Protocol == AUDIO_CSCP_StreamingProtocol))
+		{
+			return DESCRIPTOR_SEARCH_Found;
+     67e:	80 e0       	ldi	r24, 0x00	; 0
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+     680:	08 95       	ret
+
+00000682 <DComp_NextAudioInterfaceDataEndpoint>:
+
+uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
+{
+     682:	fc 01       	movw	r30, r24
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Endpoint)
+     684:	81 81       	ldd	r24, Z+1	; 0x01
+     686:	85 30       	cpi	r24, 0x05	; 5
+     688:	29 f4       	brne	.+10     	; 0x694 <DComp_NextAudioInterfaceDataEndpoint+0x12>
+	{
+		USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t);
+
+		if ((Endpoint->Attributes & EP_TYPE_MASK) == EP_TYPE_ISOCHRONOUS)
+     68a:	83 81       	ldd	r24, Z+3	; 0x03
+     68c:	83 70       	andi	r24, 0x03	; 3
+     68e:	81 30       	cpi	r24, 0x01	; 1
+     690:	19 f4       	brne	.+6      	; 0x698 <DComp_NextAudioInterfaceDataEndpoint+0x16>
+     692:	04 c0       	rjmp	.+8      	; 0x69c <DComp_NextAudioInterfaceDataEndpoint+0x1a>
+		  return DESCRIPTOR_SEARCH_Found;
+	}
+	else if (Header->Type == DTYPE_Interface)
+     694:	84 30       	cpi	r24, 0x04	; 4
+     696:	21 f0       	breq	.+8      	; 0x6a0 <DComp_NextAudioInterfaceDataEndpoint+0x1e>
+	{
+		return DESCRIPTOR_SEARCH_Fail;
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+     698:	82 e0       	ldi	r24, 0x02	; 2
+     69a:	08 95       	ret
+	if (Header->Type == DTYPE_Endpoint)
+	{
+		USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t);
+
+		if ((Endpoint->Attributes & EP_TYPE_MASK) == EP_TYPE_ISOCHRONOUS)
+		  return DESCRIPTOR_SEARCH_Found;
+     69c:	80 e0       	ldi	r24, 0x00	; 0
+     69e:	08 95       	ret
+	}
+	else if (Header->Type == DTYPE_Interface)
+	{
+		return DESCRIPTOR_SEARCH_Fail;
+     6a0:	81 e0       	ldi	r24, 0x01	; 1
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+     6a2:	08 95       	ret
+
+000006a4 <ProcessConfigurationDescriptor>:
+uint8_t StreamingInterfaceIndex      = 0;
+uint8_t StreamingInterfaceAltSetting = 0;
+uint8_t StreamingEndpointAddress     = 0;
+
+uint8_t ProcessConfigurationDescriptor(void)
+{
+     6a4:	af 92       	push	r10
+     6a6:	bf 92       	push	r11
+     6a8:	cf 92       	push	r12
+     6aa:	df 92       	push	r13
+     6ac:	ef 92       	push	r14
+     6ae:	ff 92       	push	r15
+     6b0:	0f 93       	push	r16
+     6b2:	1f 93       	push	r17
+     6b4:	df 93       	push	r29
+     6b6:	cf 93       	push	r28
+     6b8:	cd b7       	in	r28, 0x3d	; 61
+     6ba:	de b7       	in	r29, 0x3e	; 62
+     6bc:	c4 50       	subi	r28, 0x04	; 4
+     6be:	d2 40       	sbci	r29, 0x02	; 2
+     6c0:	0f b6       	in	r0, 0x3f	; 63
+     6c2:	f8 94       	cli
+     6c4:	de bf       	out	0x3e, r29	; 62
+     6c6:	0f be       	out	0x3f, r0	; 63
+     6c8:	cd bf       	out	0x3d, r28	; 61
+	uint8_t  ConfigDescriptorData[512];
+	void*    CurrConfigLocation = ConfigDescriptorData;
+     6ca:	ae 01       	movw	r20, r28
+     6cc:	4b 5f       	subi	r20, 0xFB	; 251
+     6ce:	5f 4f       	sbci	r21, 0xFF	; 255
+     6d0:	5a 83       	std	Y+2, r21	; 0x02
+     6d2:	49 83       	std	Y+1, r20	; 0x01
+	USB_Descriptor_Interface_t* AudioControlInterface   = NULL;
+	USB_Descriptor_Interface_t* AudioStreamingInterface = NULL;
+	USB_Descriptor_Endpoint_t*  DataINEndpoint          = NULL;
+
+	/* Retrieve the entire configuration descriptor into the allocated buffer */
+	switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
+     6d4:	23 e0       	ldi	r18, 0x03	; 3
+     6d6:	e2 2e       	mov	r14, r18
+     6d8:	f1 2c       	mov	r15, r1
+     6da:	ec 0e       	add	r14, r28
+     6dc:	fd 1e       	adc	r15, r29
+     6de:	81 e0       	ldi	r24, 0x01	; 1
+     6e0:	b7 01       	movw	r22, r14
+     6e2:	20 e0       	ldi	r18, 0x00	; 0
+     6e4:	32 e0       	ldi	r19, 0x02	; 2
+     6e6:	09 d4       	rcall	.+2066   	; 0xefa <USB_Host_GetDeviceConfigDescriptor>
+     6e8:	85 30       	cpi	r24, 0x05	; 5
+     6ea:	09 f4       	brne	.+2      	; 0x6ee <ProcessConfigurationDescriptor+0x4a>
+     6ec:	5c c0       	rjmp	.+184    	; 0x7a6 <ProcessConfigurationDescriptor+0x102>
+     6ee:	86 30       	cpi	r24, 0x06	; 6
+     6f0:	61 f0       	breq	.+24     	; 0x70a <ProcessConfigurationDescriptor+0x66>
+     6f2:	88 23       	and	r24, r24
+     6f4:	61 f4       	brne	.+24     	; 0x70e <ProcessConfigurationDescriptor+0x6a>
+     6f6:	00 e0       	ldi	r16, 0x00	; 0
+     6f8:	10 e0       	ldi	r17, 0x00	; 0
+     6fa:	cc 24       	eor	r12, r12
+     6fc:	dd 24       	eor	r13, r13
+     6fe:	57 01       	movw	r10, r14
+     700:	7e 01       	movw	r14, r28
+     702:	08 94       	sec
+     704:	e1 1c       	adc	r14, r1
+     706:	f1 1c       	adc	r15, r1
+     708:	07 c0       	rjmp	.+14     	; 0x718 <ProcessConfigurationDescriptor+0x74>
+	{
+		case HOST_GETCONFIG_Successful:
+			break;
+		case HOST_GETCONFIG_InvalidData:
+			return InvalidConfigDataReturned;
+     70a:	83 e0       	ldi	r24, 0x03	; 3
+     70c:	4f c0       	rjmp	.+158    	; 0x7ac <ProcessConfigurationDescriptor+0x108>
+		case HOST_GETCONFIG_BuffOverflow:
+			return DescriptorTooLarge;
+		default:
+			return ControlError;
+     70e:	81 e0       	ldi	r24, 0x01	; 1
+     710:	4d c0       	rjmp	.+154    	; 0x7ac <ProcessConfigurationDescriptor+0x108>
+	USB_Descriptor_Interface_t* AudioControlInterface   = NULL;
+	USB_Descriptor_Interface_t* AudioStreamingInterface = NULL;
+	USB_Descriptor_Endpoint_t*  DataINEndpoint          = NULL;
+
+	/* Retrieve the entire configuration descriptor into the allocated buffer */
+	switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
+     712:	9c 01       	movw	r18, r24
+     714:	03 2f       	mov	r16, r19
+     716:	18 2f       	mov	r17, r24
+			return ControlError;
+	}
+
+	while (!(DataINEndpoint))
+	{
+		if (!(AudioControlInterface) ||
+     718:	c1 14       	cp	r12, r1
+     71a:	d1 04       	cpc	r13, r1
+     71c:	41 f0       	breq	.+16     	; 0x72e <ProcessConfigurationDescriptor+0x8a>
+		    USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+     71e:	c5 01       	movw	r24, r10
+     720:	b7 01       	movw	r22, r14
+     722:	41 e4       	ldi	r20, 0x41	; 65
+     724:	53 e0       	ldi	r21, 0x03	; 3
+     726:	40 d4       	rcall	.+2176   	; 0xfa8 <USB_GetNextDescriptorComp>
+			return ControlError;
+	}
+
+	while (!(DataINEndpoint))
+	{
+		if (!(AudioControlInterface) ||
+     728:	88 23       	and	r24, r24
+     72a:	51 f4       	brne	.+20     	; 0x740 <ProcessConfigurationDescriptor+0x9c>
+     72c:	1c c0       	rjmp	.+56     	; 0x766 <ProcessConfigurationDescriptor+0xc2>
+		    USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+		                              DComp_NextAudioInterfaceDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
+		{
+			if (!(AudioControlInterface))
+			{
+				if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+     72e:	c5 01       	movw	r24, r10
+     730:	b7 01       	movw	r22, r14
+     732:	4f e1       	ldi	r20, 0x1F	; 31
+     734:	53 e0       	ldi	r21, 0x03	; 3
+     736:	38 d4       	rcall	.+2160   	; 0xfa8 <USB_GetNextDescriptorComp>
+     738:	88 23       	and	r24, r24
+     73a:	b9 f5       	brne	.+110    	; 0x7aa <ProcessConfigurationDescriptor+0x106>
+					/* Descriptor not found, error out */
+					return NoCompatibleInterfaceFound;
+				}
+
+				/* Save the interface in case we need to refer back to it later */
+				AudioControlInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);			
+     73c:	c9 80       	ldd	r12, Y+1	; 0x01
+     73e:	da 80       	ldd	r13, Y+2	; 0x02
+			}
+		
+			if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+     740:	c5 01       	movw	r24, r10
+     742:	b7 01       	movw	r22, r14
+     744:	40 e3       	ldi	r20, 0x30	; 48
+     746:	53 e0       	ldi	r21, 0x03	; 3
+     748:	2f d4       	rcall	.+2142   	; 0xfa8 <USB_GetNextDescriptorComp>
+     74a:	88 23       	and	r24, r24
+     74c:	49 f0       	breq	.+18     	; 0x760 <ProcessConfigurationDescriptor+0xbc>
+										  DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)
+			{
+				if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+     74e:	c5 01       	movw	r24, r10
+     750:	b7 01       	movw	r22, r14
+     752:	4f e1       	ldi	r20, 0x1F	; 31
+     754:	53 e0       	ldi	r21, 0x03	; 3
+     756:	28 d4       	rcall	.+2128   	; 0xfa8 <USB_GetNextDescriptorComp>
+     758:	88 23       	and	r24, r24
+     75a:	39 f5       	brne	.+78     	; 0x7aa <ProcessConfigurationDescriptor+0x106>
+					/* Descriptor not found, error out */
+					return NoCompatibleInterfaceFound;
+				}
+
+				/* Save the interface in case we need to refer back to it later */
+				AudioControlInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
+     75c:	c9 80       	ldd	r12, Y+1	; 0x01
+     75e:	da 80       	ldd	r13, Y+2	; 0x02
+			}
+
+			/* Save the interface in case we need to refer back to it later */
+			AudioStreamingInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
+     760:	09 81       	ldd	r16, Y+1	; 0x01
+     762:	1a 81       	ldd	r17, Y+2	; 0x02
+
+			/* Skip the remainder of the loop as we have not found an endpoint yet */
+			continue;
+     764:	35 c0       	rjmp	.+106    	; 0x7d0 <ProcessConfigurationDescriptor+0x12c>
+		}
+
+		/* Retrieve the endpoint address from the endpoint descriptor */
+		USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
+     766:	e9 81       	ldd	r30, Y+1	; 0x01
+     768:	fa 81       	ldd	r31, Y+2	; 0x02
+
+		/* If the endpoint is a IN type endpoint */
+		if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+     76a:	82 81       	ldd	r24, Z+2	; 0x02
+     76c:	87 ff       	sbrs	r24, 7
+     76e:	30 c0       	rjmp	.+96     	; 0x7d0 <ProcessConfigurationDescriptor+0x12c>
+     770:	90 2f       	mov	r25, r16
+     772:	81 2f       	mov	r24, r17
+			return DescriptorTooLarge;
+		default:
+			return ControlError;
+	}
+
+	while (!(DataINEndpoint))
+     774:	30 97       	sbiw	r30, 0x00	; 0
+     776:	69 f2       	breq	.-102    	; 0x712 <ProcessConfigurationDescriptor+0x6e>
+		/* If the endpoint is a IN type endpoint */
+		if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+		  DataINEndpoint = EndpointData;
+	}
+
+	StreamingInterfaceIndex      = AudioStreamingInterface->InterfaceNumber;
+     778:	d8 01       	movw	r26, r16
+     77a:	12 96       	adiw	r26, 0x02	; 2
+     77c:	8c 91       	ld	r24, X
+     77e:	12 97       	sbiw	r26, 0x02	; 2
+     780:	80 93 1c 01 	sts	0x011C, r24
+	StreamingInterfaceAltSetting = AudioStreamingInterface->AlternateSetting;
+     784:	13 96       	adiw	r26, 0x03	; 3
+     786:	8c 91       	ld	r24, X
+     788:	80 93 1d 01 	sts	0x011D, r24
+	StreamingEndpointAddress     = DataINEndpoint->EndpointAddress;
+     78c:	22 81       	ldd	r18, Z+2	; 0x02
+     78e:	20 93 1e 01 	sts	0x011E, r18
+
+	/* Configure the HID data IN pipe */
+	Pipe_ConfigurePipe(AUDIO_DATA_IN_PIPE, EP_TYPE_ISOCHRONOUS, PIPE_TOKEN_IN,
+     792:	04 81       	ldd	r16, Z+4	; 0x04
+     794:	15 81       	ldd	r17, Z+5	; 0x05
+     796:	81 e0       	ldi	r24, 0x01	; 1
+     798:	61 e0       	ldi	r22, 0x01	; 1
+     79a:	40 e1       	ldi	r20, 0x10	; 16
+     79c:	94 e0       	ldi	r25, 0x04	; 4
+     79e:	e9 2e       	mov	r14, r25
+     7a0:	22 d2       	rcall	.+1092   	; 0xbe6 <Pipe_ConfigurePipe>
+	                   DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, PIPE_BANK_DOUBLE);
+
+	/* Valid data found, return success */
+	return SuccessfulConfigRead;
+     7a2:	80 e0       	ldi	r24, 0x00	; 0
+     7a4:	03 c0       	rjmp	.+6      	; 0x7ac <ProcessConfigurationDescriptor+0x108>
+		case HOST_GETCONFIG_Successful:
+			break;
+		case HOST_GETCONFIG_InvalidData:
+			return InvalidConfigDataReturned;
+		case HOST_GETCONFIG_BuffOverflow:
+			return DescriptorTooLarge;
+     7a6:	82 e0       	ldi	r24, 0x02	; 2
+     7a8:	01 c0       	rjmp	.+2      	; 0x7ac <ProcessConfigurationDescriptor+0x108>
+			{
+				if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+											  DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)
+				{
+					/* Descriptor not found, error out */
+					return NoCompatibleInterfaceFound;
+     7aa:	84 e0       	ldi	r24, 0x04	; 4
+	Pipe_ConfigurePipe(AUDIO_DATA_IN_PIPE, EP_TYPE_ISOCHRONOUS, PIPE_TOKEN_IN,
+	                   DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, PIPE_BANK_DOUBLE);
+
+	/* Valid data found, return success */
+	return SuccessfulConfigRead;
+}
+     7ac:	cc 5f       	subi	r28, 0xFC	; 252
+     7ae:	dd 4f       	sbci	r29, 0xFD	; 253
+     7b0:	0f b6       	in	r0, 0x3f	; 63
+     7b2:	f8 94       	cli
+     7b4:	de bf       	out	0x3e, r29	; 62
+     7b6:	0f be       	out	0x3f, r0	; 63
+     7b8:	cd bf       	out	0x3d, r28	; 61
+     7ba:	cf 91       	pop	r28
+     7bc:	df 91       	pop	r29
+     7be:	1f 91       	pop	r17
+     7c0:	0f 91       	pop	r16
+     7c2:	ff 90       	pop	r15
+     7c4:	ef 90       	pop	r14
+     7c6:	df 90       	pop	r13
+     7c8:	cf 90       	pop	r12
+     7ca:	bf 90       	pop	r11
+     7cc:	af 90       	pop	r10
+     7ce:	08 95       	ret
+	USB_Descriptor_Interface_t* AudioControlInterface   = NULL;
+	USB_Descriptor_Interface_t* AudioStreamingInterface = NULL;
+	USB_Descriptor_Endpoint_t*  DataINEndpoint          = NULL;
+
+	/* Retrieve the entire configuration descriptor into the allocated buffer */
+	switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
+     7d0:	90 2f       	mov	r25, r16
+     7d2:	81 2f       	mov	r24, r17
+     7d4:	9e cf       	rjmp	.-196    	; 0x712 <ProcessConfigurationDescriptor+0x6e>
+
+000007d6 <USB_Host_ResetDevice>:
+			 *  \return Boolean \c true if the bus is currently suspended, \c false otherwise.
+			 */
+			static inline bool USB_Host_IsBusSuspended(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool USB_Host_IsBusSuspended(void)
+			{
+				return ((UHCON & (1 << SOFEN)) ? false : true);
+     7d6:	80 91 9e 00 	lds	r24, 0x009E
+     7da:	90 e0       	ldi	r25, 0x00	; 0
+     7dc:	81 70       	andi	r24, 0x01	; 1
+     7de:	90 70       	andi	r25, 0x00	; 0
+						break;
+					case USB_INT_DCONNI:
+						UHIEN  &= ~(1 << DCONNE);
+						break;
+					case USB_INT_DDISCI:
+						UHIEN  &= ~(1 << DDISCE);
+     7e0:	20 91 a0 00 	lds	r18, 0x00A0
+     7e4:	2d 7f       	andi	r18, 0xFD	; 253
+     7e6:	20 93 a0 00 	sts	0x00A0, r18
+			 *  woken up automatically and the bus resumed after the reset has been correctly issued.
+			 */
+			static inline void USB_Host_ResetBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_ResetBus(void)
+			{
+				UHCON |=  (1 << RESET);
+     7ea:	20 91 9e 00 	lds	r18, 0x009E
+     7ee:	22 60       	ori	r18, 0x02	; 2
+     7f0:	20 93 9e 00 	sts	0x009E, r18
+			 *  \return Boolean \c true if no bus reset is currently being sent, \c false otherwise.
+			 */
+			static inline bool USB_Host_IsBusResetComplete(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool USB_Host_IsBusResetComplete(void)
+			{
+				return ((UHCON & (1 << RESET)) ? false : true);
+     7f4:	20 91 9e 00 	lds	r18, 0x009E
+	bool BusSuspended = USB_Host_IsBusSuspended();
+
+	USB_INT_Disable(USB_INT_DDISCI);
+
+	USB_Host_ResetBus();
+	while (!(USB_Host_IsBusResetComplete()));
+     7f8:	21 fd       	sbrc	r18, 1
+     7fa:	fc cf       	rjmp	.-8      	; 0x7f4 <USB_Host_ResetDevice+0x1e>
+			 *  host and attached device may occur.
+			 */
+			static inline void USB_Host_ResumeBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_ResumeBus(void)
+			{
+				UHCON |=  (1 << SOFEN);
+     7fc:	20 91 9e 00 	lds	r18, 0x009E
+     800:	21 60       	ori	r18, 0x01	; 1
+     802:	20 93 9e 00 	sts	0x009E, r18
+					case USB_INT_RXSTPI:
+						return (UEIENX & (1 << RXSTPE));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHIEN  & (1 << HSOFE));
+     806:	20 91 a0 00 	lds	r18, 0x00A0
+     80a:	30 e0       	ldi	r19, 0x00	; 0
+     80c:	20 72       	andi	r18, 0x20	; 32
+     80e:	30 70       	andi	r19, 0x00	; 0
+						UEIENX &= ~(1 << RXSTPE);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHIEN  &= ~(1 << HSOFE);
+     810:	40 91 a0 00 	lds	r20, 0x00A0
+     814:	4f 7d       	andi	r20, 0xDF	; 223
+     816:	40 93 a0 00 	sts	0x00A0, r20
+						UEINTX &= ~(1 << RXSTPI);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+     81a:	40 91 9f 00 	lds	r20, 0x009F
+     81e:	4f 7d       	andi	r20, 0xDF	; 223
+     820:	40 93 9f 00 	sts	0x009F, r20
+     824:	4a e0       	ldi	r20, 0x0A	; 10
+					case USB_INT_RXSTPI:
+						return (UEINTX & (1 << RXSTPI));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHINT  & (1 << HSOFI));
+     826:	50 91 9f 00 	lds	r21, 0x009F
+		/* Workaround for powerless-pull-up devices. After a USB bus reset,
+		   all disconnection interrupts are suppressed while a USB frame is
+		   looked for - if it is found within 10ms, the device is still
+		   present.                                                        */
+
+		if (USB_INT_HasOccurred(USB_INT_HSOFI))
+     82a:	55 ff       	sbrs	r21, 5
+     82c:	0b c0       	rjmp	.+22     	; 0x844 <USB_Host_ResetDevice+0x6e>
+						UEINTX &= ~(1 << RXSTPI);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+     82e:	40 91 9f 00 	lds	r20, 0x009F
+     832:	4f 7d       	andi	r20, 0xDF	; 223
+     834:	40 93 9f 00 	sts	0x009F, r20
+						break;
+					case USB_INT_DCONNI:
+						UHINT  &= ~(1 << DCONNI);
+						break;
+					case USB_INT_DDISCI:
+						UHINT  &= ~(1 << DDISCI);
+     838:	40 91 9f 00 	lds	r20, 0x009F
+     83c:	4d 7f       	andi	r20, 0xFD	; 253
+     83e:	40 93 9f 00 	sts	0x009F, r20
+     842:	08 c0       	rjmp	.+16     	; 0x854 <USB_Host_ResetDevice+0x7e>
+	#else
+		//round up by default
+		__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
+	#endif
+
+	__builtin_avr_delay_cycles(__ticks_dc);
+     844:	ef ec       	ldi	r30, 0xCF	; 207
+     846:	f7 e0       	ldi	r31, 0x07	; 7
+     848:	31 97       	sbiw	r30, 0x01	; 1
+     84a:	f1 f7       	brne	.-4      	; 0x848 <USB_Host_ResetDevice+0x72>
+     84c:	00 c0       	rjmp	.+0      	; 0x84e <USB_Host_ResetDevice+0x78>
+     84e:	00 00       	nop
+     850:	41 50       	subi	r20, 0x01	; 1
+	bool HSOFIEnabled = USB_INT_IsEnabled(USB_INT_HSOFI);
+
+	USB_INT_Disable(USB_INT_HSOFI);
+	USB_INT_Clear(USB_INT_HSOFI);
+
+	for (uint8_t MSRem = 10; MSRem != 0; MSRem--)
+     852:	49 f7       	brne	.-46     	; 0x826 <USB_Host_ResetDevice+0x50>
+		}
+
+		Delay_MS(1);
+	}
+
+	if (HSOFIEnabled)
+     854:	21 15       	cp	r18, r1
+     856:	31 05       	cpc	r19, r1
+     858:	29 f0       	breq	.+10     	; 0x864 <USB_Host_ResetDevice+0x8e>
+						UEIENX |= (1 << RXSTPE);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHIEN  |= (1 << HSOFE);
+     85a:	20 91 a0 00 	lds	r18, 0x00A0
+     85e:	20 62       	ori	r18, 0x20	; 32
+     860:	20 93 a0 00 	sts	0x00A0, r18
+	  USB_INT_Enable(USB_INT_HSOFI);
+
+	if (BusSuspended)
+     864:	00 97       	sbiw	r24, 0x00	; 0
+     866:	29 f4       	brne	.+10     	; 0x872 <USB_Host_ResetDevice+0x9c>
+			 *  messages to the device.
+			 */
+			static inline void USB_Host_SuspendBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_SuspendBus(void)
+			{
+				UHCON &= ~(1 << SOFEN);
+     868:	80 91 9e 00 	lds	r24, 0x009E
+     86c:	8e 7f       	andi	r24, 0xFE	; 254
+     86e:	80 93 9e 00 	sts	0x009E, r24
+						break;
+					case USB_INT_DCONNI:
+						UHIEN  |= (1 << DCONNE);
+						break;
+					case USB_INT_DDISCI:
+						UHIEN  |= (1 << DDISCE);
+     872:	80 91 a0 00 	lds	r24, 0x00A0
+     876:	82 60       	ori	r24, 0x02	; 2
+     878:	80 93 a0 00 	sts	0x00A0, r24
+	  USB_Host_SuspendBus();
+
+	USB_INT_Enable(USB_INT_DDISCI);
+}
+     87c:	08 95       	ret
+
+0000087e <USB_Host_WaitMS>:
+			 *  \return Boolean \c true if the bus is currently suspended, \c false otherwise.
+			 */
+			static inline bool USB_Host_IsBusSuspended(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool USB_Host_IsBusSuspended(void)
+			{
+				return ((UHCON & (1 << SOFEN)) ? false : true);
+     87e:	40 91 9e 00 	lds	r20, 0x009E
+     882:	50 e0       	ldi	r21, 0x00	; 0
+     884:	41 70       	andi	r20, 0x01	; 1
+     886:	50 70       	andi	r21, 0x00	; 0
+					case USB_INT_RXSTPI:
+						return (UEIENX & (1 << RXSTPE));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHIEN  & (1 << HSOFE));
+     888:	20 91 a0 00 	lds	r18, 0x00A0
+     88c:	30 e0       	ldi	r19, 0x00	; 0
+     88e:	20 72       	andi	r18, 0x20	; 32
+     890:	30 70       	andi	r19, 0x00	; 0
+						UEIENX &= ~(1 << RXSTPE);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHIEN  &= ~(1 << HSOFE);
+     892:	90 91 a0 00 	lds	r25, 0x00A0
+     896:	9f 7d       	andi	r25, 0xDF	; 223
+     898:	90 93 a0 00 	sts	0x00A0, r25
+						UEINTX &= ~(1 << RXSTPI);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+     89c:	90 91 9f 00 	lds	r25, 0x009F
+     8a0:	9f 7d       	andi	r25, 0xDF	; 223
+     8a2:	90 93 9f 00 	sts	0x009F, r25
+			 *  host and attached device may occur.
+			 */
+			static inline void USB_Host_ResumeBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_ResumeBus(void)
+			{
+				UHCON |=  (1 << SOFEN);
+     8a6:	90 91 9e 00 	lds	r25, 0x009E
+     8aa:	91 60       	ori	r25, 0x01	; 1
+     8ac:	90 93 9e 00 	sts	0x009E, r25
+	USB_INT_Disable(USB_INT_HSOFI);
+	USB_INT_Clear(USB_INT_HSOFI);
+
+	USB_Host_ResumeBus();
+
+	while (MS)
+     8b0:	26 c0       	rjmp	.+76     	; 0x8fe <USB_Host_WaitMS+0x80>
+					case USB_INT_RXSTPI:
+						return (UEINTX & (1 << RXSTPI));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHINT  & (1 << HSOFI));
+     8b2:	90 91 9f 00 	lds	r25, 0x009F
+	{
+		if (USB_INT_HasOccurred(USB_INT_HSOFI))
+     8b6:	95 ff       	sbrs	r25, 5
+     8b8:	06 c0       	rjmp	.+12     	; 0x8c6 <USB_Host_WaitMS+0x48>
+						UEINTX &= ~(1 << RXSTPI);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+     8ba:	90 91 9f 00 	lds	r25, 0x009F
+     8be:	9f 7d       	andi	r25, 0xDF	; 223
+     8c0:	90 93 9f 00 	sts	0x009F, r25
+		{
+			USB_INT_Clear(USB_INT_HSOFI);
+			MS--;
+     8c4:	81 50       	subi	r24, 0x01	; 1
+		}
+
+		if ((USB_HostState == HOST_STATE_Unattached) || (USB_CurrentMode != USB_MODE_Host))
+     8c6:	90 91 2b 01 	lds	r25, 0x012B
+     8ca:	92 30       	cpi	r25, 0x02	; 2
+     8cc:	d9 f0       	breq	.+54     	; 0x904 <USB_Host_WaitMS+0x86>
+			 *  \return Boolean \c true if an error has occurred on the selected pipe, \c false otherwise.
+			 */
+			static inline bool Pipe_IsError(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsError(void)
+			{
+				return ((UPINTX & (1 << PERRI)) ? true : false);
+     8ce:	90 91 a6 00 	lds	r25, 0x00A6
+			ErrorCode = HOST_WAITERROR_DeviceDisconnect;
+
+			break;
+		}
+
+		if (Pipe_IsError() == true)
+     8d2:	94 ff       	sbrs	r25, 4
+     8d4:	09 c0       	rjmp	.+18     	; 0x8e8 <USB_Host_WaitMS+0x6a>
+
+			/** Clears the error flags for the currently selected pipe. */
+			static inline void Pipe_ClearError(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearError(void)
+			{
+				UPERRX = 0;
+     8d6:	10 92 f5 00 	sts	0x00F5, r1
+				UPINTX &= ~(1 << PERRI);
+     8da:	80 91 a6 00 	lds	r24, 0x00A6
+     8de:	8f 7e       	andi	r24, 0xEF	; 239
+     8e0:	80 93 a6 00 	sts	0x00A6, r24
+		{
+			Pipe_ClearError();
+			ErrorCode = HOST_WAITERROR_PipeError;
+     8e4:	82 e0       	ldi	r24, 0x02	; 2
+
+			break;
+     8e6:	0f c0       	rjmp	.+30     	; 0x906 <USB_Host_WaitMS+0x88>
+			 *  \return Boolean \c true if the current pipe has been stalled by the attached device, \c false otherwise.
+			 */
+			static inline bool Pipe_IsStalled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsStalled(void)
+			{
+				return ((UPINTX & (1 << RXSTALLI)) ? true : false);
+     8e8:	90 91 a6 00 	lds	r25, 0x00A6
+		}
+
+		if (Pipe_IsStalled() == true)
+     8ec:	91 ff       	sbrs	r25, 1
+     8ee:	07 c0       	rjmp	.+14     	; 0x8fe <USB_Host_WaitMS+0x80>
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearStall(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearStall(void)
+			{
+				UPINTX &= ~(1 << RXSTALLI);
+     8f0:	80 91 a6 00 	lds	r24, 0x00A6
+     8f4:	8d 7f       	andi	r24, 0xFD	; 253
+     8f6:	80 93 a6 00 	sts	0x00A6, r24
+		{
+			Pipe_ClearStall();
+			ErrorCode = HOST_WAITERROR_SetupStalled;
+     8fa:	83 e0       	ldi	r24, 0x03	; 3
+
+			break;
+     8fc:	04 c0       	rjmp	.+8      	; 0x906 <USB_Host_WaitMS+0x88>
+	USB_INT_Disable(USB_INT_HSOFI);
+	USB_INT_Clear(USB_INT_HSOFI);
+
+	USB_Host_ResumeBus();
+
+	while (MS)
+     8fe:	88 23       	and	r24, r24
+     900:	c1 f6       	brne	.-80     	; 0x8b2 <USB_Host_WaitMS+0x34>
+     902:	01 c0       	rjmp	.+2      	; 0x906 <USB_Host_WaitMS+0x88>
+			MS--;
+		}
+
+		if ((USB_HostState == HOST_STATE_Unattached) || (USB_CurrentMode != USB_MODE_Host))
+		{
+			ErrorCode = HOST_WAITERROR_DeviceDisconnect;
+     904:	81 e0       	ldi	r24, 0x01	; 1
+
+			break;
+		}
+	}
+
+	if (BusSuspended)
+     906:	41 15       	cp	r20, r1
+     908:	51 05       	cpc	r21, r1
+     90a:	29 f4       	brne	.+10     	; 0x916 <USB_Host_WaitMS+0x98>
+			 *  messages to the device.
+			 */
+			static inline void USB_Host_SuspendBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_SuspendBus(void)
+			{
+				UHCON &= ~(1 << SOFEN);
+     90c:	90 91 9e 00 	lds	r25, 0x009E
+     910:	9e 7f       	andi	r25, 0xFE	; 254
+     912:	90 93 9e 00 	sts	0x009E, r25
+	  USB_Host_SuspendBus();
+
+	if (HSOFIEnabled)
+     916:	21 15       	cp	r18, r1
+     918:	31 05       	cpc	r19, r1
+     91a:	29 f0       	breq	.+10     	; 0x926 <USB_Host_WaitMS+0xa8>
+						UEIENX |= (1 << RXSTPE);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHIEN  |= (1 << HSOFE);
+     91c:	90 91 a0 00 	lds	r25, 0x00A0
+     920:	90 62       	ori	r25, 0x20	; 32
+     922:	90 93 a0 00 	sts	0x00A0, r25
+	  USB_INT_Enable(USB_INT_HSOFI);
+
+	return ErrorCode;
+}
+     926:	08 95       	ret
+
+00000928 <USB_Host_ProcessNextHostState>:
+
+#define  __INCLUDE_FROM_HOST_C
+#include "../Host.h"
+
+void USB_Host_ProcessNextHostState(void)
+{
+     928:	ef 92       	push	r14
+     92a:	0f 93       	push	r16
+     92c:	1f 93       	push	r17
+     92e:	df 93       	push	r29
+     930:	cf 93       	push	r28
+     932:	cd b7       	in	r28, 0x3d	; 61
+     934:	de b7       	in	r29, 0x3e	; 62
+     936:	28 97       	sbiw	r28, 0x08	; 8
+     938:	0f b6       	in	r0, 0x3f	; 63
+     93a:	f8 94       	cli
+     93c:	de bf       	out	0x3e, r29	; 62
+     93e:	0f be       	out	0x3f, r0	; 63
+     940:	cd bf       	out	0x3d, r28	; 61
+	uint8_t SubErrorCode = HOST_ENUMERROR_NoError;
+
+	static uint16_t WaitMSRemaining;
+	static uint8_t  PostWaitState;
+
+	switch (USB_HostState)
+     942:	80 91 2b 01 	lds	r24, 0x012B
+     946:	86 30       	cpi	r24, 0x06	; 6
+     948:	09 f4       	brne	.+2      	; 0x94c <USB_Host_ProcessNextHostState+0x24>
+     94a:	99 c0       	rjmp	.+306    	; 0xa7e <USB_Host_ProcessNextHostState+0x156>
+     94c:	87 30       	cpi	r24, 0x07	; 7
+     94e:	70 f4       	brcc	.+28     	; 0x96c <USB_Host_ProcessNextHostState+0x44>
+     950:	83 30       	cpi	r24, 0x03	; 3
+     952:	c9 f1       	breq	.+114    	; 0x9c6 <USB_Host_ProcessNextHostState+0x9e>
+     954:	84 30       	cpi	r24, 0x04	; 4
+     956:	20 f4       	brcc	.+8      	; 0x960 <USB_Host_ProcessNextHostState+0x38>
+     958:	81 30       	cpi	r24, 0x01	; 1
+     95a:	09 f0       	breq	.+2      	; 0x95e <USB_Host_ProcessNextHostState+0x36>
+     95c:	0b c1       	rjmp	.+534    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+     95e:	13 c0       	rjmp	.+38     	; 0x986 <USB_Host_ProcessNextHostState+0x5e>
+     960:	84 30       	cpi	r24, 0x04	; 4
+     962:	c9 f1       	breq	.+114    	; 0x9d6 <USB_Host_ProcessNextHostState+0xae>
+     964:	85 30       	cpi	r24, 0x05	; 5
+     966:	09 f0       	breq	.+2      	; 0x96a <USB_Host_ProcessNextHostState+0x42>
+     968:	05 c1       	rjmp	.+522    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+     96a:	60 c0       	rjmp	.+192    	; 0xa2c <USB_Host_ProcessNextHostState+0x104>
+     96c:	88 30       	cpi	r24, 0x08	; 8
+     96e:	09 f4       	brne	.+2      	; 0x972 <USB_Host_ProcessNextHostState+0x4a>
+     970:	a0 c0       	rjmp	.+320    	; 0xab2 <USB_Host_ProcessNextHostState+0x18a>
+     972:	88 30       	cpi	r24, 0x08	; 8
+     974:	08 f4       	brcc	.+2      	; 0x978 <USB_Host_ProcessNextHostState+0x50>
+     976:	8f c0       	rjmp	.+286    	; 0xa96 <USB_Host_ProcessNextHostState+0x16e>
+     978:	89 30       	cpi	r24, 0x09	; 9
+     97a:	09 f4       	brne	.+2      	; 0x97e <USB_Host_ProcessNextHostState+0x56>
+     97c:	b9 c0       	rjmp	.+370    	; 0xaf0 <USB_Host_ProcessNextHostState+0x1c8>
+     97e:	8a 30       	cpi	r24, 0x0A	; 10
+     980:	09 f0       	breq	.+2      	; 0x984 <USB_Host_ProcessNextHostState+0x5c>
+     982:	f8 c0       	rjmp	.+496    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+     984:	de c0       	rjmp	.+444    	; 0xb42 <USB_Host_ProcessNextHostState+0x21a>
+	{
+		case HOST_STATE_WaitForDevice:
+			if (WaitMSRemaining)
+     986:	00 91 20 01 	lds	r16, 0x0120
+     98a:	10 91 21 01 	lds	r17, 0x0121
+     98e:	01 15       	cp	r16, r1
+     990:	11 05       	cpc	r17, r1
+     992:	09 f4       	brne	.+2      	; 0x996 <USB_Host_ProcessNextHostState+0x6e>
+     994:	ef c0       	rjmp	.+478    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+			{
+				if ((SubErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
+     996:	81 e0       	ldi	r24, 0x01	; 1
+     998:	72 df       	rcall	.-284    	; 0x87e <USB_Host_WaitMS>
+     99a:	68 2f       	mov	r22, r24
+     99c:	88 23       	and	r24, r24
+     99e:	31 f0       	breq	.+12     	; 0x9ac <USB_Host_ProcessNextHostState+0x84>
+				{
+					USB_HostState = PostWaitState;
+     9a0:	80 91 1f 01 	lds	r24, 0x011F
+     9a4:	80 93 2b 01 	sts	0x012B, r24
+					ErrorCode     = HOST_ENUMERROR_WaitStage;
+     9a8:	81 e0       	ldi	r24, 0x01	; 1
+					break;
+     9aa:	e0 c0       	rjmp	.+448    	; 0xb6c <USB_Host_ProcessNextHostState+0x244>
+				}
+
+				if (!(--WaitMSRemaining))
+     9ac:	01 50       	subi	r16, 0x01	; 1
+     9ae:	10 40       	sbci	r17, 0x00	; 0
+     9b0:	10 93 21 01 	sts	0x0121, r17
+     9b4:	00 93 20 01 	sts	0x0120, r16
+     9b8:	01 15       	cp	r16, r1
+     9ba:	11 05       	cpc	r17, r1
+     9bc:	09 f0       	breq	.+2      	; 0x9c0 <USB_Host_ProcessNextHostState+0x98>
+     9be:	da c0       	rjmp	.+436    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+				  USB_HostState = PostWaitState;
+     9c0:	80 91 1f 01 	lds	r24, 0x011F
+     9c4:	c3 c0       	rjmp	.+390    	; 0xb4c <USB_Host_ProcessNextHostState+0x224>
+			}
+
+			break;
+		case HOST_STATE_Powered:
+			WaitMSRemaining = HOST_DEVICE_SETTLE_DELAY_MS;
+     9c6:	88 ee       	ldi	r24, 0xE8	; 232
+     9c8:	93 e0       	ldi	r25, 0x03	; 3
+     9ca:	90 93 21 01 	sts	0x0121, r25
+     9ce:	80 93 20 01 	sts	0x0120, r24
+
+			USB_HostState = HOST_STATE_Powered_WaitForDeviceSettle;
+     9d2:	84 e0       	ldi	r24, 0x04	; 4
+     9d4:	bb c0       	rjmp	.+374    	; 0xb4c <USB_Host_ProcessNextHostState+0x224>
+			break;
+		case HOST_STATE_Powered_WaitForDeviceSettle:
+			if (WaitMSRemaining--)
+     9d6:	80 91 20 01 	lds	r24, 0x0120
+     9da:	90 91 21 01 	lds	r25, 0x0121
+     9de:	9c 01       	movw	r18, r24
+     9e0:	21 50       	subi	r18, 0x01	; 1
+     9e2:	30 40       	sbci	r19, 0x00	; 0
+     9e4:	30 93 21 01 	sts	0x0121, r19
+     9e8:	20 93 20 01 	sts	0x0120, r18
+     9ec:	00 97       	sbiw	r24, 0x00	; 0
+     9ee:	39 f0       	breq	.+14     	; 0x9fe <USB_Host_ProcessNextHostState+0xd6>
+     9f0:	8f ec       	ldi	r24, 0xCF	; 207
+     9f2:	97 e0       	ldi	r25, 0x07	; 7
+     9f4:	01 97       	sbiw	r24, 0x01	; 1
+     9f6:	f1 f7       	brne	.-4      	; 0x9f4 <USB_Host_ProcessNextHostState+0xcc>
+     9f8:	00 c0       	rjmp	.+0      	; 0x9fa <USB_Host_ProcessNextHostState+0xd2>
+     9fa:	00 00       	nop
+     9fc:	bb c0       	rjmp	.+374    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+			}
+
+			static inline void USB_Host_VBUS_Manual_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Manual_Off(void)
+			{
+				PORTE  &= ~(1 << 7);
+     9fe:	77 98       	cbi	0x0e, 7	; 14
+
+			#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+			static inline void USB_OTGPAD_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_OTGPAD_On(void)
+			{
+				USBCON  |=  (1 << OTGPADE);
+     a00:	80 91 d8 00 	lds	r24, 0x00D8
+     a04:	80 61       	ori	r24, 0x10	; 16
+     a06:	80 93 d8 00 	sts	0x00D8, r24
+			}
+
+			static inline void USB_Host_VBUS_Auto_Enable(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Auto_Enable(void)
+			{
+				OTGCON &= ~(1 << VBUSHWC);
+     a0a:	80 91 dd 00 	lds	r24, 0x00DD
+     a0e:	8b 7f       	andi	r24, 0xFB	; 251
+     a10:	80 93 dd 00 	sts	0x00DD, r24
+				UHWCON |=  (1 << UVCONE);
+     a14:	80 91 d7 00 	lds	r24, 0x00D7
+     a18:	80 61       	ori	r24, 0x10	; 16
+     a1a:	80 93 d7 00 	sts	0x00D7, r24
+			}
+
+			static inline void USB_Host_VBUS_Auto_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Auto_On(void)
+			{
+				OTGCON |=  (1 << VBUSREQ);
+     a1e:	80 91 dd 00 	lds	r24, 0x00DD
+     a22:	82 60       	ori	r24, 0x02	; 2
+     a24:	80 93 dd 00 	sts	0x00DD, r24
+
+				USB_OTGPAD_On();
+				USB_Host_VBUS_Auto_Enable();
+				USB_Host_VBUS_Auto_On();
+
+				USB_HostState = HOST_STATE_Powered_WaitForConnect;
+     a28:	85 e0       	ldi	r24, 0x05	; 5
+     a2a:	90 c0       	rjmp	.+288    	; 0xb4c <USB_Host_ProcessNextHostState+0x224>
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHINT  & (1 << HSOFI));
+					case USB_INT_DCONNI:
+						return (UHINT  & (1 << DCONNI));
+     a2c:	80 91 9f 00 	lds	r24, 0x009F
+			}
+
+			break;
+		case HOST_STATE_Powered_WaitForConnect:
+			if (USB_INT_HasOccurred(USB_INT_DCONNI))
+     a30:	80 ff       	sbrs	r24, 0
+     a32:	a0 c0       	rjmp	.+320    	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+						break;
+					case USB_INT_DCONNI:
+						UHINT  &= ~(1 << DCONNI);
+     a34:	80 91 9f 00 	lds	r24, 0x009F
+     a38:	8e 7f       	andi	r24, 0xFE	; 254
+     a3a:	80 93 9f 00 	sts	0x009F, r24
+						break;
+					case USB_INT_DDISCI:
+						UHINT  &= ~(1 << DDISCI);
+     a3e:	80 91 9f 00 	lds	r24, 0x009F
+     a42:	8d 7f       	andi	r24, 0xFD	; 253
+     a44:	80 93 9f 00 	sts	0x009F, r24
+						break;
+					case USB_INT_BCERRI:
+						OTGINT &= ~(1 << BCERRI);
+						break;
+					case USB_INT_VBERRI:
+						OTGINT &= ~(1 << VBERRI);
+     a48:	80 91 df 00 	lds	r24, 0x00DF
+     a4c:	8d 7f       	andi	r24, 0xFD	; 253
+     a4e:	80 93 df 00 	sts	0x00DF, r24
+						break;
+					case USB_INT_BCERRI:
+						OTGIEN |= (1 << BCERRE);
+						break;
+					case USB_INT_VBERRI:
+						OTGIEN |= (1 << VBERRE);
+     a52:	80 91 de 00 	lds	r24, 0x00DE
+     a56:	82 60       	ori	r24, 0x02	; 2
+     a58:	80 93 de 00 	sts	0x00DE, r24
+			 *  host and attached device may occur.
+			 */
+			static inline void USB_Host_ResumeBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_ResumeBus(void)
+			{
+				UHCON |=  (1 << SOFEN);
+     a5c:	80 91 9e 00 	lds	r24, 0x009E
+     a60:	81 60       	ori	r24, 0x01	; 1
+     a62:	80 93 9e 00 	sts	0x009E, r24
+
+				USB_INT_Clear(USB_INT_VBERRI);
+				USB_INT_Enable(USB_INT_VBERRI);
+
+				USB_Host_ResumeBus();
+				Pipe_ClearPipes();
+     a66:	26 d1       	rcall	.+588    	; 0xcb4 <Pipe_ClearPipes>
+
+				HOST_TASK_NONBLOCK_WAIT(100, HOST_STATE_Powered_DoReset);
+     a68:	81 e0       	ldi	r24, 0x01	; 1
+     a6a:	80 93 2b 01 	sts	0x012B, r24
+     a6e:	84 e6       	ldi	r24, 0x64	; 100
+     a70:	90 e0       	ldi	r25, 0x00	; 0
+     a72:	90 93 21 01 	sts	0x0121, r25
+     a76:	80 93 20 01 	sts	0x0120, r24
+     a7a:	86 e0       	ldi	r24, 0x06	; 6
+     a7c:	5f c0       	rjmp	.+190    	; 0xb3c <USB_Host_ProcessNextHostState+0x214>
+			}
+
+			break;
+		case HOST_STATE_Powered_DoReset:
+			USB_Host_ResetDevice();
+     a7e:	ab de       	rcall	.-682    	; 0x7d6 <USB_Host_ResetDevice>
+
+			HOST_TASK_NONBLOCK_WAIT(200, HOST_STATE_Powered_ConfigPipe);
+     a80:	81 e0       	ldi	r24, 0x01	; 1
+     a82:	80 93 2b 01 	sts	0x012B, r24
+     a86:	88 ec       	ldi	r24, 0xC8	; 200
+     a88:	90 e0       	ldi	r25, 0x00	; 0
+     a8a:	90 93 21 01 	sts	0x0121, r25
+     a8e:	80 93 20 01 	sts	0x0120, r24
+     a92:	87 e0       	ldi	r24, 0x07	; 7
+     a94:	53 c0       	rjmp	.+166    	; 0xb3c <USB_Host_ProcessNextHostState+0x214>
+			break;
+		case HOST_STATE_Powered_ConfigPipe:
+			Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
+     a96:	80 e0       	ldi	r24, 0x00	; 0
+     a98:	60 e0       	ldi	r22, 0x00	; 0
+     a9a:	40 e0       	ldi	r20, 0x00	; 0
+     a9c:	20 e0       	ldi	r18, 0x00	; 0
+     a9e:	00 e4       	ldi	r16, 0x40	; 64
+     aa0:	10 e0       	ldi	r17, 0x00	; 0
+     aa2:	ee 24       	eor	r14, r14
+     aa4:	a0 d0       	rcall	.+320    	; 0xbe6 <Pipe_ConfigurePipe>
+			 *  \return Boolean \c true if the selected pipe is configured, \c false otherwise.
+			 */
+			static inline bool Pipe_IsConfigured(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsConfigured(void)
+			{
+				return ((UPSTAX & (1 << CFGOK)) ? true : false);
+     aa6:	80 91 ac 00 	lds	r24, 0x00AC
+							   PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
+							   PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE);
+
+			if (!(Pipe_IsConfigured()))
+     aaa:	87 ff       	sbrs	r24, 7
+     aac:	5b c0       	rjmp	.+182    	; 0xb64 <USB_Host_ProcessNextHostState+0x23c>
+				ErrorCode    = HOST_ENUMERROR_PipeConfigError;
+				SubErrorCode = 0;
+				break;
+			}
+
+			USB_HostState = HOST_STATE_Default;
+     aae:	88 e0       	ldi	r24, 0x08	; 8
+     ab0:	4d c0       	rjmp	.+154    	; 0xb4c <USB_Host_ProcessNextHostState+0x224>
+			break;
+		case HOST_STATE_Default:
+			USB_ControlRequest = (USB_Request_Header_t)
+     ab2:	a3 e2       	ldi	r26, 0x23	; 35
+     ab4:	b1 e0       	ldi	r27, 0x01	; 1
+     ab6:	e3 e1       	ldi	r30, 0x13	; 19
+     ab8:	f1 e0       	ldi	r31, 0x01	; 1
+     aba:	88 e0       	ldi	r24, 0x08	; 8
+     abc:	01 90       	ld	r0, Z+
+     abe:	0d 92       	st	X+, r0
+     ac0:	81 50       	subi	r24, 0x01	; 1
+     ac2:	e1 f7       	brne	.-8      	; 0xabc <USB_Host_ProcessNextHostState+0x194>
+					.wLength       = 8,
+				};
+
+			uint8_t DataBuffer[8];
+
+			if ((SubErrorCode = USB_Host_SendControlRequest(DataBuffer)) != HOST_SENDCONTROL_Successful)
+     ac4:	ce 01       	movw	r24, r28
+     ac6:	01 96       	adiw	r24, 0x01	; 1
+     ac8:	dc d2       	rcall	.+1464   	; 0x1082 <USB_Host_SendControlRequest>
+     aca:	68 2f       	mov	r22, r24
+     acc:	88 23       	and	r24, r24
+     ace:	09 f0       	breq	.+2      	; 0xad2 <USB_Host_ProcessNextHostState+0x1aa>
+     ad0:	4c c0       	rjmp	.+152    	; 0xb6a <USB_Host_ProcessNextHostState+0x242>
+			{
+				ErrorCode = HOST_ENUMERROR_ControlError;
+				break;
+			}
+
+			USB_ControlPipeSize = DataBuffer[offsetof(USB_Descriptor_Device_t, Endpoint0Size)];
+     ad2:	88 85       	ldd	r24, Y+8	; 0x08
+     ad4:	80 93 1b 01 	sts	0x011B, r24
+
+			USB_Host_ResetDevice();
+     ad8:	7e de       	rcall	.-772    	; 0x7d6 <USB_Host_ResetDevice>
+
+			HOST_TASK_NONBLOCK_WAIT(200, HOST_STATE_Default_PostReset);
+     ada:	81 e0       	ldi	r24, 0x01	; 1
+     adc:	80 93 2b 01 	sts	0x012B, r24
+     ae0:	88 ec       	ldi	r24, 0xC8	; 200
+     ae2:	90 e0       	ldi	r25, 0x00	; 0
+     ae4:	90 93 21 01 	sts	0x0121, r25
+     ae8:	80 93 20 01 	sts	0x0120, r24
+     aec:	89 e0       	ldi	r24, 0x09	; 9
+     aee:	26 c0       	rjmp	.+76     	; 0xb3c <USB_Host_ProcessNextHostState+0x214>
+			break;
+		case HOST_STATE_Default_PostReset:
+			Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
+     af0:	00 91 1b 01 	lds	r16, 0x011B
+     af4:	80 e0       	ldi	r24, 0x00	; 0
+     af6:	60 e0       	ldi	r22, 0x00	; 0
+     af8:	40 e0       	ldi	r20, 0x00	; 0
+     afa:	20 e0       	ldi	r18, 0x00	; 0
+     afc:	10 e0       	ldi	r17, 0x00	; 0
+     afe:	ee 24       	eor	r14, r14
+     b00:	72 d0       	rcall	.+228    	; 0xbe6 <Pipe_ConfigurePipe>
+     b02:	80 91 ac 00 	lds	r24, 0x00AC
+			                   PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
+			                   USB_ControlPipeSize, PIPE_BANK_SINGLE);
+
+			if (!(Pipe_IsConfigured()))
+     b06:	87 ff       	sbrs	r24, 7
+     b08:	2d c0       	rjmp	.+90     	; 0xb64 <USB_Host_ProcessNextHostState+0x23c>
+				ErrorCode    = HOST_ENUMERROR_PipeConfigError;
+				SubErrorCode = 0;
+				break;
+			}
+
+			USB_ControlRequest = (USB_Request_Header_t)
+     b0a:	a3 e2       	ldi	r26, 0x23	; 35
+     b0c:	b1 e0       	ldi	r27, 0x01	; 1
+     b0e:	eb e0       	ldi	r30, 0x0B	; 11
+     b10:	f1 e0       	ldi	r31, 0x01	; 1
+     b12:	88 e0       	ldi	r24, 0x08	; 8
+     b14:	01 90       	ld	r0, Z+
+     b16:	0d 92       	st	X+, r0
+     b18:	81 50       	subi	r24, 0x01	; 1
+     b1a:	e1 f7       	brne	.-8      	; 0xb14 <USB_Host_ProcessNextHostState+0x1ec>
+					.wValue        = USB_HOST_DEVICEADDRESS,
+					.wIndex        = 0,
+					.wLength       = 0,
+				};
+
+			if ((SubErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)
+     b1c:	80 e0       	ldi	r24, 0x00	; 0
+     b1e:	90 e0       	ldi	r25, 0x00	; 0
+     b20:	b0 d2       	rcall	.+1376   	; 0x1082 <USB_Host_SendControlRequest>
+     b22:	68 2f       	mov	r22, r24
+     b24:	88 23       	and	r24, r24
+     b26:	09 f5       	brne	.+66     	; 0xb6a <USB_Host_ProcessNextHostState+0x242>
+			{
+				ErrorCode = HOST_ENUMERROR_ControlError;
+				break;
+			}
+
+			HOST_TASK_NONBLOCK_WAIT(100, HOST_STATE_Default_PostAddressSet);
+     b28:	81 e0       	ldi	r24, 0x01	; 1
+     b2a:	80 93 2b 01 	sts	0x012B, r24
+     b2e:	84 e6       	ldi	r24, 0x64	; 100
+     b30:	90 e0       	ldi	r25, 0x00	; 0
+     b32:	90 93 21 01 	sts	0x0121, r25
+     b36:	80 93 20 01 	sts	0x0120, r24
+     b3a:	8a e0       	ldi	r24, 0x0A	; 10
+     b3c:	80 93 1f 01 	sts	0x011F, r24
+			break;
+     b40:	19 c0       	rjmp	.+50     	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+			}
+
+			static inline void USB_Host_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_SetDeviceAddress(const uint8_t Address)
+			{
+				UHADDR  =  (Address & 0x7F);
+     b42:	81 e0       	ldi	r24, 0x01	; 1
+     b44:	80 93 a1 00 	sts	0x00A1, r24
+		case HOST_STATE_Default_PostAddressSet:
+			USB_Host_SetDeviceAddress(USB_HOST_DEVICEADDRESS);
+
+			EVENT_USB_Host_DeviceEnumerationComplete();
+     b48:	24 dc       	rcall	.-1976   	; 0x392 <EVENT_USB_Host_DeviceEnumerationComplete>
+			USB_HostState = HOST_STATE_Addressed;
+     b4a:	8b e0       	ldi	r24, 0x0B	; 11
+     b4c:	80 93 2b 01 	sts	0x012B, r24
+			break;
+     b50:	11 c0       	rjmp	.+34     	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+	}
+
+	if ((ErrorCode != HOST_ENUMERROR_NoError) && (USB_HostState != HOST_STATE_Unattached))
+	{
+		EVENT_USB_Host_DeviceEnumerationFailed(ErrorCode, SubErrorCode);
+     b52:	40 dc       	rcall	.-1920   	; 0x3d4 <EVENT_USB_Host_DeviceEnumerationFailed>
+			}
+
+			static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Auto_Off(void)
+			{
+				OTGCON |=  (1 << VBUSRQC);
+     b54:	80 91 dd 00 	lds	r24, 0x00DD
+     b58:	81 60       	ori	r24, 0x01	; 1
+     b5a:	80 93 dd 00 	sts	0x00DD, r24
+
+		USB_Host_VBUS_Auto_Off();
+
+		EVENT_USB_Host_DeviceUnattached();
+     b5e:	14 dc       	rcall	.-2008   	; 0x388 <EVENT_USB_Host_DeviceUnattached>
+
+		USB_ResetInterface();
+     b60:	d5 d0       	rcall	.+426    	; 0xd0c <USB_ResetInterface>
+     b62:	08 c0       	rjmp	.+16     	; 0xb74 <USB_Host_ProcessNextHostState+0x24c>
+			                   USB_ControlPipeSize, PIPE_BANK_SINGLE);
+
+			if (!(Pipe_IsConfigured()))
+			{
+				ErrorCode    = HOST_ENUMERROR_PipeConfigError;
+				SubErrorCode = 0;
+     b64:	60 e0       	ldi	r22, 0x00	; 0
+			                   PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
+			                   USB_ControlPipeSize, PIPE_BANK_SINGLE);
+
+			if (!(Pipe_IsConfigured()))
+			{
+				ErrorCode    = HOST_ENUMERROR_PipeConfigError;
+     b66:	84 e0       	ldi	r24, 0x04	; 4
+     b68:	01 c0       	rjmp	.+2      	; 0xb6c <USB_Host_ProcessNextHostState+0x244>
+					.wLength       = 0,
+				};
+
+			if ((SubErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)
+			{
+				ErrorCode = HOST_ENUMERROR_ControlError;
+     b6a:	83 e0       	ldi	r24, 0x03	; 3
+			EVENT_USB_Host_DeviceEnumerationComplete();
+			USB_HostState = HOST_STATE_Addressed;
+			break;
+	}
+
+	if ((ErrorCode != HOST_ENUMERROR_NoError) && (USB_HostState != HOST_STATE_Unattached))
+     b6c:	90 91 2b 01 	lds	r25, 0x012B
+     b70:	92 30       	cpi	r25, 0x02	; 2
+     b72:	79 f7       	brne	.-34     	; 0xb52 <USB_Host_ProcessNextHostState+0x22a>
+
+		EVENT_USB_Host_DeviceUnattached();
+
+		USB_ResetInterface();
+	}
+}
+     b74:	28 96       	adiw	r28, 0x08	; 8
+     b76:	0f b6       	in	r0, 0x3f	; 63
+     b78:	f8 94       	cli
+     b7a:	de bf       	out	0x3e, r29	; 62
+     b7c:	0f be       	out	0x3f, r0	; 63
+     b7e:	cd bf       	out	0x3d, r28	; 61
+     b80:	cf 91       	pop	r28
+     b82:	df 91       	pop	r29
+     b84:	1f 91       	pop	r17
+     b86:	0f 91       	pop	r16
+     b88:	ef 90       	pop	r14
+     b8a:	08 95       	ret
+
+00000b8c <USB_Host_SetDeviceConfiguration>:
+	USB_INT_Enable(USB_INT_DDISCI);
+}
+
+uint8_t USB_Host_SetDeviceConfiguration(const uint8_t ConfigNumber)
+{
+	USB_ControlRequest = (USB_Request_Header_t)
+     b8c:	10 92 23 01 	sts	0x0123, r1
+     b90:	99 e0       	ldi	r25, 0x09	; 9
+     b92:	90 93 24 01 	sts	0x0124, r25
+     b96:	80 93 25 01 	sts	0x0125, r24
+     b9a:	10 92 26 01 	sts	0x0126, r1
+     b9e:	10 92 28 01 	sts	0x0128, r1
+     ba2:	10 92 27 01 	sts	0x0127, r1
+     ba6:	10 92 2a 01 	sts	0x012A, r1
+     baa:	10 92 29 01 	sts	0x0129, r1
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     bae:	10 92 a7 00 	sts	0x00A7, r1
+			.wLength       = 0,
+		};
+
+	Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+	return USB_Host_SendControlRequest(NULL);
+     bb2:	80 e0       	ldi	r24, 0x00	; 0
+     bb4:	90 e0       	ldi	r25, 0x00	; 0
+}
+     bb6:	65 c2       	rjmp	.+1226   	; 0x1082 <USB_Host_SendControlRequest>
+
+00000bb8 <USB_Host_SetInterfaceAltSetting>:
+}
+
+uint8_t USB_Host_SetInterfaceAltSetting(const uint8_t InterfaceNum,
+                                        const uint8_t AltSetting)
+{
+	USB_ControlRequest = (USB_Request_Header_t)
+     bb8:	e3 e2       	ldi	r30, 0x23	; 35
+     bba:	f1 e0       	ldi	r31, 0x01	; 1
+     bbc:	91 e0       	ldi	r25, 0x01	; 1
+     bbe:	90 93 23 01 	sts	0x0123, r25
+     bc2:	9b e0       	ldi	r25, 0x0B	; 11
+     bc4:	90 93 24 01 	sts	0x0124, r25
+     bc8:	60 93 25 01 	sts	0x0125, r22
+     bcc:	13 82       	std	Z+3, r1	; 0x03
+     bce:	80 93 27 01 	sts	0x0127, r24
+     bd2:	15 82       	std	Z+5, r1	; 0x05
+     bd4:	10 92 2a 01 	sts	0x012A, r1
+     bd8:	10 92 29 01 	sts	0x0129, r1
+     bdc:	10 92 a7 00 	sts	0x00A7, r1
+			.wLength       = 0,
+		};
+
+	Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+	return USB_Host_SendControlRequest(NULL);
+     be0:	80 e0       	ldi	r24, 0x00	; 0
+     be2:	90 e0       	ldi	r25, 0x00	; 0
+}
+     be4:	4e c2       	rjmp	.+1180   	; 0x1082 <USB_Host_SendControlRequest>
+
+00000be6 <Pipe_ConfigurePipe>:
+                        const uint8_t Type,
+                        const uint8_t Token,
+                        const uint8_t EndpointNumber,
+                        const uint16_t Size,
+                        const uint8_t Banks)
+{
+     be6:	ef 92       	push	r14
+     be8:	0f 93       	push	r16
+     bea:	1f 93       	push	r17
+     bec:	5e 2d       	mov	r21, r14
+
+		Pipe_SelectPipe(PNum);
+		
+		if (PNum == Number)
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+     bee:	62 95       	swap	r22
+     bf0:	66 0f       	add	r22, r22
+     bf2:	66 0f       	add	r22, r22
+     bf4:	60 7c       	andi	r22, 0xC0	; 192
+     bf6:	64 2b       	or	r22, r20
+     bf8:	2f 70       	andi	r18, 0x0F	; 15
+     bfa:	62 2b       	or	r22, r18
+
+	Pipe_SetInfiniteINRequests();
+
+	return Pipe_IsConfigured();
+#else	
+	for (uint8_t PNum = Number; PNum < PIPE_TOTAL_PIPES; PNum++)
+     bfc:	98 2f       	mov	r25, r24
+		Pipe_SelectPipe(PNum);
+		
+		if (PNum == Number)
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+     bfe:	52 60       	ori	r21, 0x02	; 2
+
+	Pipe_SetInfiniteINRequests();
+
+	return Pipe_IsConfigured();
+#else	
+	for (uint8_t PNum = Number; PNum < PIPE_TOTAL_PIPES; PNum++)
+     c00:	4d c0       	rjmp	.+154    	; 0xc9c <Pipe_ConfigurePipe+0xb6>
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     c02:	90 93 a7 00 	sts	0x00A7, r25
+		uint8_t UPINRQXTemp;
+		uint8_t UPIENXTemp;
+
+		Pipe_SelectPipe(PNum);
+		
+		if (PNum == Number)
+     c06:	98 17       	cp	r25, r24
+     c08:	b1 f4       	brne	.+44     	; 0xc36 <Pipe_ConfigurePipe+0x50>
+     c0a:	28 e0       	ldi	r18, 0x08	; 8
+     c0c:	30 e0       	ldi	r19, 0x00	; 0
+     c0e:	40 e0       	ldi	r20, 0x00	; 0
+     c10:	03 c0       	rjmp	.+6      	; 0xc18 <Pipe_ConfigurePipe+0x32>
+				uint8_t  MaskVal    = 0;
+				uint16_t CheckBytes = 8;
+
+				while ((CheckBytes < Bytes) && (CheckBytes < PIPE_MAX_SIZE))
+				{
+					MaskVal++;
+     c12:	4f 5f       	subi	r20, 0xFF	; 255
+					CheckBytes <<= 1;
+     c14:	22 0f       	add	r18, r18
+     c16:	33 1f       	adc	r19, r19
+			static inline uint8_t Pipe_BytesToEPSizeMask(const uint16_t Bytes)
+			{
+				uint8_t  MaskVal    = 0;
+				uint16_t CheckBytes = 8;
+
+				while ((CheckBytes < Bytes) && (CheckBytes < PIPE_MAX_SIZE))
+     c18:	20 17       	cp	r18, r16
+     c1a:	31 07       	cpc	r19, r17
+     c1c:	10 f4       	brcc	.+4      	; 0xc22 <Pipe_ConfigurePipe+0x3c>
+     c1e:	45 30       	cpi	r20, 0x05	; 5
+     c20:	c1 f7       	brne	.-16     	; 0xc12 <Pipe_ConfigurePipe+0x2c>
+				{
+					MaskVal++;
+					CheckBytes <<= 1;
+				}
+
+				return (MaskVal << EPSIZE0);
+     c22:	24 2f       	mov	r18, r20
+     c24:	22 95       	swap	r18
+     c26:	20 7f       	andi	r18, 0xF0	; 240
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+     c28:	25 2b       	or	r18, r21
+
+		Pipe_SelectPipe(PNum);
+		
+		if (PNum == Number)
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+     c2a:	a6 2f       	mov	r26, r22
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+			UPCFG2XTemp = 0;
+			UPCONXTemp  = ((1 << PEN) | (1 << INMODE));
+			UPINRQXTemp = 0;
+			UPIENXTemp  = 0;
+     c2c:	40 e0       	ldi	r20, 0x00	; 0
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+			UPCFG2XTemp = 0;
+			UPCONXTemp  = ((1 << PEN) | (1 << INMODE));
+			UPINRQXTemp = 0;
+     c2e:	70 e0       	ldi	r23, 0x00	; 0
+		if (PNum == Number)
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+			UPCFG2XTemp = 0;
+			UPCONXTemp  = ((1 << PEN) | (1 << INMODE));
+     c30:	e1 e2       	ldi	r30, 0x21	; 33
+		
+		if (PNum == Number)
+		{
+			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+			UPCFG2XTemp = 0;
+     c32:	f0 e0       	ldi	r31, 0x00	; 0
+     c34:	0c c0       	rjmp	.+24     	; 0xc4e <Pipe_ConfigurePipe+0x68>
+			UPINRQXTemp = 0;
+			UPIENXTemp  = 0;
+		}
+		else
+		{
+			UPCFG0XTemp = UPCFG0X;
+     c36:	a0 91 aa 00 	lds	r26, 0x00AA
+			UPCFG1XTemp = UPCFG1X;
+     c3a:	20 91 ab 00 	lds	r18, 0x00AB
+			UPCFG2XTemp = UPCFG2X;
+     c3e:	f0 91 ad 00 	lds	r31, 0x00AD
+			UPCONXTemp  = UPCONX;
+     c42:	e0 91 a9 00 	lds	r30, 0x00A9
+			UPINRQXTemp = UPINRQX;
+     c46:	70 91 a5 00 	lds	r23, 0x00A5
+			UPIENXTemp  = UPIENX;
+     c4a:	40 91 ae 00 	lds	r20, 0x00AE
+
+			/** Configures the currently selected pipe to allow for an unlimited number of IN requests. */
+			static inline void Pipe_SetInfiniteINRequests(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetInfiniteINRequests(void)
+			{
+				UPCONX |= (1 << INMODE);
+     c4e:	30 91 a9 00 	lds	r19, 0x00A9
+     c52:	30 62       	ori	r19, 0x20	; 32
+     c54:	30 93 a9 00 	sts	0x00A9, r19
+		}
+
+		Pipe_SetInfiniteINRequests();
+	
+		if (!(UPCFG1XTemp & (1 << ALLOC)))
+     c58:	21 ff       	sbrs	r18, 1
+     c5a:	1f c0       	rjmp	.+62     	; 0xc9a <Pipe_ConfigurePipe+0xb4>
+			 *  from an attached device.
+			 */
+			static inline void Pipe_DisablePipe(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_DisablePipe(void)
+			{
+				UPCONX &= ~(1 << PEN);
+     c5c:	30 91 a9 00 	lds	r19, 0x00A9
+     c60:	3e 7f       	andi	r19, 0xFE	; 254
+     c62:	30 93 a9 00 	sts	0x00A9, r19
+		  continue;
+		  
+		Pipe_DisablePipe();
+		UPCFG1X &= (1 << ALLOC);
+     c66:	30 91 ab 00 	lds	r19, 0x00AB
+     c6a:	32 70       	andi	r19, 0x02	; 2
+     c6c:	30 93 ab 00 	sts	0x00AB, r19
+			 *  \pre The currently selected pipe must first be configured properly via \ref Pipe_ConfigurePipe().
+			 */
+			static inline void Pipe_EnablePipe(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_EnablePipe(void)
+			{
+				UPCONX |= (1 << PEN);
+     c70:	30 91 a9 00 	lds	r19, 0x00A9
+     c74:	31 60       	ori	r19, 0x01	; 1
+     c76:	30 93 a9 00 	sts	0x00A9, r19
+
+		Pipe_EnablePipe();
+		UPCFG0X = UPCFG0XTemp;
+     c7a:	a0 93 aa 00 	sts	0x00AA, r26
+		UPCFG1X = UPCFG1XTemp;
+     c7e:	20 93 ab 00 	sts	0x00AB, r18
+		UPCFG2X = UPCFG2XTemp;
+     c82:	f0 93 ad 00 	sts	0x00AD, r31
+		UPCONX  = UPCONXTemp;
+     c86:	e0 93 a9 00 	sts	0x00A9, r30
+		UPINRQX = UPINRQXTemp;
+     c8a:	70 93 a5 00 	sts	0x00A5, r23
+		UPIENX  = UPIENXTemp;
+     c8e:	40 93 ae 00 	sts	0x00AE, r20
+			 *  \return Boolean \c true if the selected pipe is configured, \c false otherwise.
+			 */
+			static inline bool Pipe_IsConfigured(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsConfigured(void)
+			{
+				return ((UPSTAX & (1 << CFGOK)) ? true : false);
+     c92:	20 91 ac 00 	lds	r18, 0x00AC
+
+		if (!(Pipe_IsConfigured()))
+     c96:	27 ff       	sbrs	r18, 7
+     c98:	08 c0       	rjmp	.+16     	; 0xcaa <Pipe_ConfigurePipe+0xc4>
+
+	Pipe_SetInfiniteINRequests();
+
+	return Pipe_IsConfigured();
+#else	
+	for (uint8_t PNum = Number; PNum < PIPE_TOTAL_PIPES; PNum++)
+     c9a:	9f 5f       	subi	r25, 0xFF	; 255
+     c9c:	97 30       	cpi	r25, 0x07	; 7
+     c9e:	08 f4       	brcc	.+2      	; 0xca2 <Pipe_ConfigurePipe+0xbc>
+     ca0:	b0 cf       	rjmp	.-160    	; 0xc02 <Pipe_ConfigurePipe+0x1c>
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+     ca2:	80 93 a7 00 	sts	0x00A7, r24
+		if (!(Pipe_IsConfigured()))
+		  return false;		
+	}
+		
+	Pipe_SelectPipe(Number);	
+	return true;
+     ca6:	81 e0       	ldi	r24, 0x01	; 1
+     ca8:	01 c0       	rjmp	.+2      	; 0xcac <Pipe_ConfigurePipe+0xc6>
+		UPCONX  = UPCONXTemp;
+		UPINRQX = UPINRQXTemp;
+		UPIENX  = UPIENXTemp;
+
+		if (!(Pipe_IsConfigured()))
+		  return false;		
+     caa:	80 e0       	ldi	r24, 0x00	; 0
+	}
+		
+	Pipe_SelectPipe(Number);	
+	return true;
+#endif
+}
+     cac:	1f 91       	pop	r17
+     cae:	0f 91       	pop	r16
+     cb0:	ef 90       	pop	r14
+     cb2:	08 95       	ret
+
+00000cb4 <Pipe_ClearPipes>:
+
+void Pipe_ClearPipes(void)
+{
+	UPINT = 0;
+     cb4:	10 92 f8 00 	sts	0x00F8, r1
+
+	for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
+     cb8:	80 e0       	ldi	r24, 0x00	; 0
+     cba:	80 93 a7 00 	sts	0x00A7, r24
+	{
+		Pipe_SelectPipe(PNum);
+		UPIENX  = 0;
+     cbe:	10 92 ae 00 	sts	0x00AE, r1
+		UPINTX  = 0;
+     cc2:	10 92 a6 00 	sts	0x00A6, r1
+		UPCFG1X = 0;
+     cc6:	10 92 ab 00 	sts	0x00AB, r1
+			 *  from an attached device.
+			 */
+			static inline void Pipe_DisablePipe(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_DisablePipe(void)
+			{
+				UPCONX &= ~(1 << PEN);
+     cca:	90 91 a9 00 	lds	r25, 0x00A9
+     cce:	9e 7f       	andi	r25, 0xFE	; 254
+     cd0:	90 93 a9 00 	sts	0x00A9, r25
+
+void Pipe_ClearPipes(void)
+{
+	UPINT = 0;
+
+	for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
+     cd4:	8f 5f       	subi	r24, 0xFF	; 255
+     cd6:	87 30       	cpi	r24, 0x07	; 7
+     cd8:	81 f7       	brne	.-32     	; 0xcba <Pipe_ClearPipes+0x6>
+		UPIENX  = 0;
+		UPINTX  = 0;
+		UPCFG1X = 0;
+		Pipe_DisablePipe();
+	}
+}
+     cda:	08 95       	ret
+
+00000cdc <USB_Disable>:
+	USB_ResetInterface();
+}
+
+void USB_Disable(void)
+{
+	USB_INT_DisableAllInterrupts();
+     cdc:	6e d0       	rcall	.+220    	; 0xdba <USB_INT_DisableAllInterrupts>
+	USB_INT_ClearAllInterrupts();
+     cde:	75 d0       	rcall	.+234    	; 0xdca <USB_INT_ClearAllInterrupts>
+			 *  enumerating the device once attached until \ref USB_Attach() is called.
+			 */
+			static inline void USB_Detach(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Detach(void)
+			{
+				UDCON  |=  (1 << DETACH);
+     ce0:	e0 ee       	ldi	r30, 0xE0	; 224
+     ce2:	f0 e0       	ldi	r31, 0x00	; 0
+     ce4:	80 81       	ld	r24, Z
+     ce6:	81 60       	ori	r24, 0x01	; 1
+     ce8:	80 83       	st	Z, r24
+			}
+
+			static inline void USB_Controller_Disable(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Controller_Disable(void)
+			{
+				USBCON  &= ~(1 << USBE);
+     cea:	e8 ed       	ldi	r30, 0xD8	; 216
+     cec:	f0 e0       	ldi	r31, 0x00	; 0
+     cee:	80 81       	ld	r24, Z
+     cf0:	8f 77       	andi	r24, 0x7F	; 127
+     cf2:	80 83       	st	Z, r24
+			}
+
+			static inline void USB_PLL_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_PLL_Off(void)
+			{
+				PLLCSR  = 0;
+     cf4:	19 bc       	out	0x29, r1	; 41
+
+			static inline void USB_REG_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_REG_Off(void)
+			{
+			#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+				UHWCON  &= ~(1 << UVREGE);
+     cf6:	a7 ed       	ldi	r26, 0xD7	; 215
+     cf8:	b0 e0       	ldi	r27, 0x00	; 0
+     cfa:	8c 91       	ld	r24, X
+     cfc:	8e 7f       	andi	r24, 0xFE	; 254
+     cfe:	8c 93       	st	X, r24
+			}
+
+			static inline void USB_OTGPAD_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_OTGPAD_Off(void)
+			{
+				USBCON  &= ~(1 << OTGPADE);
+     d00:	80 81       	ld	r24, Z
+     d02:	8f 7e       	andi	r24, 0xEF	; 239
+     d04:	80 83       	st	Z, r24
+
+	#if defined(USB_CAN_BE_BOTH)
+	USB_CurrentMode = USB_MODE_None;
+	#endif
+
+	USB_IsInitialized = false;
+     d06:	10 92 22 01 	sts	0x0122, r1
+}
+     d0a:	08 95       	ret
+
+00000d0c <USB_ResetInterface>:
+{
+	#if defined(USB_CAN_BE_BOTH)
+	bool UIDModeSelectEnabled = ((UHWCON & (1 << UIDE)) != 0);
+	#endif
+
+	USB_INT_DisableAllInterrupts();
+     d0c:	56 d0       	rcall	.+172    	; 0xdba <USB_INT_DisableAllInterrupts>
+	USB_INT_ClearAllInterrupts();
+     d0e:	5d d0       	rcall	.+186    	; 0xdca <USB_INT_ClearAllInterrupts>
+			}
+
+			static inline void USB_Controller_Reset(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Controller_Reset(void)
+			{
+				const uint8_t Temp = USBCON;
+     d10:	80 91 d8 00 	lds	r24, 0x00D8
+
+				USBCON = (Temp & ~(1 << USBE));
+     d14:	98 2f       	mov	r25, r24
+     d16:	9f 77       	andi	r25, 0x7F	; 127
+     d18:	90 93 d8 00 	sts	0x00D8, r25
+				USBCON = (Temp |  (1 << USBE));
+     d1c:	80 68       	ori	r24, 0x80	; 128
+     d1e:	80 93 d8 00 	sts	0x00D8, r24
+			}
+
+			static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_CLK_Unfreeze(void)
+			{
+				USBCON  &= ~(1 << FRZCLK);
+     d22:	80 91 d8 00 	lds	r24, 0x00D8
+     d26:	8f 7d       	andi	r24, 0xDF	; 223
+     d28:	80 93 d8 00 	sts	0x00D8, r24
+		#endif
+	}
+	else if (USB_CurrentMode == USB_MODE_Host)
+	{
+		#if defined(USB_CAN_BE_HOST)
+		UHWCON &= ~(1 << UIMOD);
+     d2c:	80 91 d7 00 	lds	r24, 0x00D7
+     d30:	8f 77       	andi	r24, 0x7F	; 127
+     d32:	80 93 d7 00 	sts	0x00D7, r24
+
+		/* Inline Functions: */
+			static inline void USB_PLL_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_PLL_On(void)
+			{
+				PLLCSR  = USB_PLL_PSC;
+     d36:	8c e0       	ldi	r24, 0x0C	; 12
+     d38:	89 bd       	out	0x29, r24	; 41
+				PLLCSR |= (1 << PLLE);
+     d3a:	89 b5       	in	r24, 0x29	; 41
+     d3c:	82 60       	ori	r24, 0x02	; 2
+     d3e:	89 bd       	out	0x29, r24	; 41
+
+		if (!(USB_Options & USB_OPT_MANUAL_PLL))
+		{
+			#if defined(USB_CAN_BE_HOST)
+			USB_PLL_On();
+			while (!(USB_PLL_IsReady()));		
+     d40:	09 b4       	in	r0, 0x29	; 41
+     d42:	00 fe       	sbrs	r0, 0
+     d44:	fd cf       	rjmp	.-6      	; 0xd40 <USB_ResetInterface+0x34>
+#endif
+
+#if defined(USB_CAN_BE_HOST)
+static void USB_Init_Host(void)
+{
+	USB_HostState       = HOST_STATE_Unattached;
+     d46:	82 e0       	ldi	r24, 0x02	; 2
+     d48:	80 93 2b 01 	sts	0x012B, r24
+	USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;
+     d4c:	80 e4       	ldi	r24, 0x40	; 64
+     d4e:	80 93 1b 01 	sts	0x011B, r24
+	#if !defined(__DOXYGEN__)
+		/* Macros: */
+			static inline void USB_Host_HostMode_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_HostMode_On(void)
+			{
+				USBCON |=  (1 << HOST);
+     d52:	80 91 d8 00 	lds	r24, 0x00D8
+     d56:	80 64       	ori	r24, 0x40	; 64
+     d58:	80 93 d8 00 	sts	0x00D8, r24
+			}
+
+			static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Auto_Off(void)
+			{
+				OTGCON |=  (1 << VBUSRQC);
+     d5c:	80 91 dd 00 	lds	r24, 0x00DD
+     d60:	81 60       	ori	r24, 0x01	; 1
+     d62:	80 93 dd 00 	sts	0x00DD, r24
+			}
+
+			static inline void USB_Host_VBUS_Manual_Enable(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Manual_Enable(void)
+			{
+				OTGCON |=  (1 << VBUSHWC);
+     d66:	80 91 dd 00 	lds	r24, 0x00DD
+     d6a:	84 60       	ori	r24, 0x04	; 4
+     d6c:	80 93 dd 00 	sts	0x00DD, r24
+				UHWCON &= ~(1 << UVCONE);
+     d70:	80 91 d7 00 	lds	r24, 0x00D7
+     d74:	8f 7e       	andi	r24, 0xEF	; 239
+     d76:	80 93 d7 00 	sts	0x00D7, r24
+
+				DDRE   |=  (1 << 7);
+     d7a:	6f 9a       	sbi	0x0d, 7	; 13
+			}
+
+			static inline void USB_Host_VBUS_Manual_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Manual_On(void)
+			{
+				PORTE  |=  (1 << 7);
+     d7c:	77 9a       	sbi	0x0e, 7	; 14
+						break;
+					case USB_INT_VBERRI:
+						OTGIEN |= (1 << VBERRE);
+						break;
+					case USB_INT_SRPI:
+						OTGIEN |= (1 << SRPE);						
+     d7e:	80 91 de 00 	lds	r24, 0x00DE
+     d82:	81 60       	ori	r24, 0x01	; 1
+     d84:	80 93 de 00 	sts	0x00DE, r24
+						break;
+					case USB_INT_RSTI:
+						UHIEN  |= (1 << RSTE);
+						break;
+					case USB_INT_BCERRI:
+						OTGIEN |= (1 << BCERRE);
+     d88:	80 91 de 00 	lds	r24, 0x00DE
+     d8c:	84 60       	ori	r24, 0x04	; 4
+     d8e:	80 93 de 00 	sts	0x00DE, r24
+			 *  register and despite the datasheet making no mention of its requirement in host mode.
+			 */
+			static inline void USB_Attach(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Attach(void)
+			{
+				UDCON  &= ~(1 << DETACH);
+     d92:	80 91 e0 00 	lds	r24, 0x00E0
+     d96:	8e 7f       	andi	r24, 0xFE	; 254
+     d98:	80 93 e0 00 	sts	0x00E0, r24
+
+			#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+			static inline void USB_OTGPAD_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_OTGPAD_On(void)
+			{
+				USBCON  |=  (1 << OTGPADE);
+     d9c:	80 91 d8 00 	lds	r24, 0x00D8
+     da0:	80 61       	ori	r24, 0x10	; 16
+     da2:	80 93 d8 00 	sts	0x00D8, r24
+	}
+
+	#if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
+	USB_OTGPAD_On();
+	#endif
+}
+     da6:	08 95       	ret
+
+00000da8 <USB_Init>:
+
+			static inline void USB_REG_On(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_REG_On(void)
+			{
+			#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+				UHWCON  |=  (1 << UVREGE);
+     da8:	e7 ed       	ldi	r30, 0xD7	; 215
+     daa:	f0 e0       	ldi	r31, 0x00	; 0
+     dac:	80 81       	ld	r24, Z
+     dae:	81 60       	ori	r24, 0x01	; 1
+     db0:	80 83       	st	Z, r24
+		UHWCON &= ~(1 << UIDE);
+		USB_CurrentMode = Mode;
+	}
+	#endif
+
+	USB_IsInitialized = true;
+     db2:	81 e0       	ldi	r24, 0x01	; 1
+     db4:	80 93 22 01 	sts	0x0122, r24
+
+	USB_ResetInterface();
+}
+     db8:	a9 cf       	rjmp	.-174    	; 0xd0c <USB_ResetInterface>
+
+00000dba <USB_INT_DisableAllInterrupts>:
+#include "../USBInterrupt.h"
+
+void USB_INT_DisableAllInterrupts(void)
+{
+	#if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+	USBCON &= ~((1 << VBUSTE) | (1 << IDTE));
+     dba:	e8 ed       	ldi	r30, 0xD8	; 216
+     dbc:	f0 e0       	ldi	r31, 0x00	; 0
+     dbe:	80 81       	ld	r24, Z
+     dc0:	8c 7f       	andi	r24, 0xFC	; 252
+     dc2:	80 83       	st	Z, r24
+	#if defined(USB_CAN_BE_BOTH)
+	OTGIEN  = 0;
+	#endif
+
+	#if defined(USB_CAN_BE_HOST)
+	UHIEN   = 0;
+     dc4:	10 92 a0 00 	sts	0x00A0, r1
+	#endif
+
+	#if defined(USB_CAN_BE_DEVICE)
+	UDIEN   = 0;
+	#endif
+}
+     dc8:	08 95       	ret
+
+00000dca <USB_INT_ClearAllInterrupts>:
+
+void USB_INT_ClearAllInterrupts(void)
+{
+	#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
+	USBINT = 0;
+     dca:	10 92 da 00 	sts	0x00DA, r1
+	#if defined(USB_CAN_BE_BOTH)
+	OTGINT = 0;
+	#endif
+
+	#if defined(USB_CAN_BE_HOST)
+	UHINT  = 0;
+     dce:	10 92 9f 00 	sts	0x009F, r1
+	#endif
+
+	#if defined(USB_CAN_BE_DEVICE)
+	UDINT  = 0;
+	#endif
+}
+     dd2:	08 95       	ret
+
+00000dd4 <__vector_10>:
+
+ISR(USB_GEN_vect, ISR_BLOCK)
+{
+     dd4:	1f 92       	push	r1
+     dd6:	0f 92       	push	r0
+     dd8:	0f b6       	in	r0, 0x3f	; 63
+     dda:	0f 92       	push	r0
+     ddc:	0b b6       	in	r0, 0x3b	; 59
+     dde:	0f 92       	push	r0
+     de0:	11 24       	eor	r1, r1
+     de2:	2f 93       	push	r18
+     de4:	3f 93       	push	r19
+     de6:	4f 93       	push	r20
+     de8:	5f 93       	push	r21
+     dea:	6f 93       	push	r22
+     dec:	7f 93       	push	r23
+     dee:	8f 93       	push	r24
+     df0:	9f 93       	push	r25
+     df2:	af 93       	push	r26
+     df4:	bf 93       	push	r27
+     df6:	ef 93       	push	r30
+     df8:	ff 93       	push	r31
+					case USB_INT_RXSTPI:
+						return (UEINTX & (1 << RXSTPI));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHINT  & (1 << HSOFI));
+     dfa:	80 91 9f 00 	lds	r24, 0x009F
+	}
+	#endif
+
+	#if defined(USB_CAN_BE_HOST)
+	#if !defined(NO_SOF_EVENTS)
+	if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
+     dfe:	85 ff       	sbrs	r24, 5
+     e00:	0a c0       	rjmp	.+20     	; 0xe16 <__vector_10+0x42>
+					case USB_INT_RXSTPI:
+						return (UEIENX & (1 << RXSTPE));
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						return (UHIEN  & (1 << HSOFE));
+     e02:	80 91 a0 00 	lds	r24, 0x00A0
+     e06:	85 ff       	sbrs	r24, 5
+     e08:	06 c0       	rjmp	.+12     	; 0xe16 <__vector_10+0x42>
+						UEINTX &= ~(1 << RXSTPI);
+						break;
+					#endif
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+     e0a:	80 91 9f 00 	lds	r24, 0x009F
+     e0e:	8f 7d       	andi	r24, 0xDF	; 223
+     e10:	80 93 9f 00 	sts	0x009F, r24
+	{
+		USB_INT_Clear(USB_INT_HSOFI);
+
+		EVENT_USB_Host_StartOfFrame();
+     e14:	0c d1       	rcall	.+536    	; 0x102e <USB_Event_Stub>
+					case USB_INT_HSOFI:
+						return (UHINT  & (1 << HSOFI));
+					case USB_INT_DCONNI:
+						return (UHINT  & (1 << DCONNI));
+					case USB_INT_DDISCI:
+						return (UHINT  & (1 << DDISCI));
+     e16:	80 91 9f 00 	lds	r24, 0x009F
+	}
+	#endif
+
+	if (USB_INT_HasOccurred(USB_INT_DDISCI) && USB_INT_IsEnabled(USB_INT_DDISCI))
+     e1a:	81 ff       	sbrs	r24, 1
+     e1c:	15 c0       	rjmp	.+42     	; 0xe48 <__vector_10+0x74>
+					case USB_INT_HSOFI:
+						return (UHIEN  & (1 << HSOFE));
+					case USB_INT_DCONNI:
+						return (UHIEN  & (1 << DCONNE));
+					case USB_INT_DDISCI:
+						return (UHIEN  & (1 << DDISCE));
+     e1e:	80 91 a0 00 	lds	r24, 0x00A0
+     e22:	81 ff       	sbrs	r24, 1
+     e24:	11 c0       	rjmp	.+34     	; 0xe48 <__vector_10+0x74>
+						break;
+					case USB_INT_DCONNI:
+						UHINT  &= ~(1 << DCONNI);
+						break;
+					case USB_INT_DDISCI:
+						UHINT  &= ~(1 << DDISCI);
+     e26:	80 91 9f 00 	lds	r24, 0x009F
+     e2a:	8d 7f       	andi	r24, 0xFD	; 253
+     e2c:	80 93 9f 00 	sts	0x009F, r24
+					#if defined(USB_CAN_BE_HOST)
+					case USB_INT_HSOFI:
+						UHINT  &= ~(1 << HSOFI);
+						break;
+					case USB_INT_DCONNI:
+						UHINT  &= ~(1 << DCONNI);
+     e30:	80 91 9f 00 	lds	r24, 0x009F
+     e34:	8e 7f       	andi	r24, 0xFE	; 254
+     e36:	80 93 9f 00 	sts	0x009F, r24
+						break;
+					case USB_INT_DCONNI:
+						UHIEN  &= ~(1 << DCONNE);
+						break;
+					case USB_INT_DDISCI:
+						UHIEN  &= ~(1 << DDISCE);
+     e3a:	80 91 a0 00 	lds	r24, 0x00A0
+     e3e:	8d 7f       	andi	r24, 0xFD	; 253
+     e40:	80 93 a0 00 	sts	0x00A0, r24
+	{
+		USB_INT_Clear(USB_INT_DDISCI);
+		USB_INT_Clear(USB_INT_DCONNI);
+		USB_INT_Disable(USB_INT_DDISCI);
+
+		EVENT_USB_Host_DeviceUnattached();
+     e44:	a1 da       	rcall	.-2750   	; 0x388 <EVENT_USB_Host_DeviceUnattached>
+
+		USB_ResetInterface();
+     e46:	62 df       	rcall	.-316    	; 0xd0c <USB_ResetInterface>
+					case USB_INT_RSTI:
+						return (UHINT  & (1 << RSTI));
+					case USB_INT_BCERRI:
+						return (OTGINT & (1 << BCERRI));
+					case USB_INT_VBERRI:
+						return (OTGINT & (1 << VBERRI));
+     e48:	80 91 df 00 	lds	r24, 0x00DF
+	}
+
+	if (USB_INT_HasOccurred(USB_INT_VBERRI) && USB_INT_IsEnabled(USB_INT_VBERRI))
+     e4c:	81 ff       	sbrs	r24, 1
+     e4e:	15 c0       	rjmp	.+42     	; 0xe7a <__vector_10+0xa6>
+					case USB_INT_RSTI:
+						return (UHIEN  & (1 << RSTE));
+					case USB_INT_BCERRI:
+						return (OTGIEN & (1 << BCERRE));
+					case USB_INT_VBERRI:
+						return (OTGIEN & (1 << VBERRE));
+     e50:	80 91 de 00 	lds	r24, 0x00DE
+     e54:	81 ff       	sbrs	r24, 1
+     e56:	11 c0       	rjmp	.+34     	; 0xe7a <__vector_10+0xa6>
+						break;
+					case USB_INT_BCERRI:
+						OTGINT &= ~(1 << BCERRI);
+						break;
+					case USB_INT_VBERRI:
+						OTGINT &= ~(1 << VBERRI);
+     e58:	80 91 df 00 	lds	r24, 0x00DF
+     e5c:	8d 7f       	andi	r24, 0xFD	; 253
+     e5e:	80 93 df 00 	sts	0x00DF, r24
+			}
+
+			static inline void USB_Host_VBUS_Manual_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Manual_Off(void)
+			{
+				PORTE  &= ~(1 << 7);
+     e62:	77 98       	cbi	0x0e, 7	; 14
+			}
+
+			static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_VBUS_Auto_Off(void)
+			{
+				OTGCON |=  (1 << VBUSRQC);
+     e64:	80 91 dd 00 	lds	r24, 0x00DD
+     e68:	81 60       	ori	r24, 0x01	; 1
+     e6a:	80 93 dd 00 	sts	0x00DD, r24
+		USB_INT_Clear(USB_INT_VBERRI);
+
+		USB_Host_VBUS_Manual_Off();
+		USB_Host_VBUS_Auto_Off();
+
+		EVENT_USB_Host_HostError(HOST_ERROR_VBusVoltageDip);
+     e6e:	80 e0       	ldi	r24, 0x00	; 0
+     e70:	92 da       	rcall	.-2780   	; 0x396 <EVENT_USB_Host_HostError>
+		EVENT_USB_Host_DeviceUnattached();
+     e72:	8a da       	rcall	.-2796   	; 0x388 <EVENT_USB_Host_DeviceUnattached>
+
+		USB_HostState = HOST_STATE_Unattached;
+     e74:	82 e0       	ldi	r24, 0x02	; 2
+     e76:	80 93 2b 01 	sts	0x012B, r24
+					case USB_INT_BCERRI:
+						return (OTGINT & (1 << BCERRI));
+					case USB_INT_VBERRI:
+						return (OTGINT & (1 << VBERRI));
+					case USB_INT_SRPI:
+						return (OTGINT & (1 << SRPI));
+     e7a:	80 91 df 00 	lds	r24, 0x00DF
+	}
+
+	if (USB_INT_HasOccurred(USB_INT_SRPI) && USB_INT_IsEnabled(USB_INT_SRPI))
+     e7e:	80 ff       	sbrs	r24, 0
+     e80:	17 c0       	rjmp	.+46     	; 0xeb0 <__vector_10+0xdc>
+					case USB_INT_BCERRI:
+						return (OTGIEN & (1 << BCERRE));
+					case USB_INT_VBERRI:
+						return (OTGIEN & (1 << VBERRE));
+					case USB_INT_SRPI:
+						return (OTGIEN & (1 << SRPE));
+     e82:	80 91 de 00 	lds	r24, 0x00DE
+     e86:	80 ff       	sbrs	r24, 0
+     e88:	13 c0       	rjmp	.+38     	; 0xeb0 <__vector_10+0xdc>
+						break;
+					case USB_INT_VBERRI:
+						OTGINT &= ~(1 << VBERRI);
+						break;
+					case USB_INT_SRPI:
+						OTGINT &= ~(1 << SRPI);
+     e8a:	80 91 df 00 	lds	r24, 0x00DF
+     e8e:	8e 7f       	andi	r24, 0xFE	; 254
+     e90:	80 93 df 00 	sts	0x00DF, r24
+						break;
+					case USB_INT_VBERRI:
+						OTGIEN &= ~(1 << VBERRE);
+						break;
+					case USB_INT_SRPI:
+						OTGIEN &= ~(1 << SRPE);						
+     e94:	80 91 de 00 	lds	r24, 0x00DE
+     e98:	8e 7f       	andi	r24, 0xFE	; 254
+     e9a:	80 93 de 00 	sts	0x00DE, r24
+	{
+		USB_INT_Clear(USB_INT_SRPI);
+		USB_INT_Disable(USB_INT_SRPI);
+
+		EVENT_USB_Host_DeviceAttached();
+     e9e:	6f da       	rcall	.-2850   	; 0x37e <EVENT_USB_Host_DeviceAttached>
+						break;
+					case USB_INT_DCONNI:
+						UHIEN  |= (1 << DCONNE);
+						break;
+					case USB_INT_DDISCI:
+						UHIEN  |= (1 << DDISCE);
+     ea0:	80 91 a0 00 	lds	r24, 0x00A0
+     ea4:	82 60       	ori	r24, 0x02	; 2
+     ea6:	80 93 a0 00 	sts	0x00A0, r24
+
+		USB_INT_Enable(USB_INT_DDISCI);
+
+		USB_HostState = HOST_STATE_Powered;
+     eaa:	83 e0       	ldi	r24, 0x03	; 3
+     eac:	80 93 2b 01 	sts	0x012B, r24
+					case USB_INT_DDISCI:
+						return (UHINT  & (1 << DDISCI));
+					case USB_INT_RSTI:
+						return (UHINT  & (1 << RSTI));
+					case USB_INT_BCERRI:
+						return (OTGINT & (1 << BCERRI));
+     eb0:	80 91 df 00 	lds	r24, 0x00DF
+	}
+
+	if (USB_INT_HasOccurred(USB_INT_BCERRI) && USB_INT_IsEnabled(USB_INT_BCERRI))
+     eb4:	82 ff       	sbrs	r24, 2
+     eb6:	0e c0       	rjmp	.+28     	; 0xed4 <__vector_10+0x100>
+					case USB_INT_DDISCI:
+						return (UHIEN  & (1 << DDISCE));
+					case USB_INT_RSTI:
+						return (UHIEN  & (1 << RSTE));
+					case USB_INT_BCERRI:
+						return (OTGIEN & (1 << BCERRE));
+     eb8:	80 91 de 00 	lds	r24, 0x00DE
+     ebc:	82 ff       	sbrs	r24, 2
+     ebe:	0a c0       	rjmp	.+20     	; 0xed4 <__vector_10+0x100>
+						break;
+					case USB_INT_RSTI:
+						UHINT  &= ~(1 << RSTI);
+						break;
+					case USB_INT_BCERRI:
+						OTGINT &= ~(1 << BCERRI);
+     ec0:	80 91 df 00 	lds	r24, 0x00DF
+     ec4:	8b 7f       	andi	r24, 0xFB	; 251
+     ec6:	80 93 df 00 	sts	0x00DF, r24
+	{
+		USB_INT_Clear(USB_INT_BCERRI);
+
+		EVENT_USB_Host_DeviceEnumerationFailed(HOST_ENUMERROR_NoDeviceDetected, 0);
+     eca:	82 e0       	ldi	r24, 0x02	; 2
+     ecc:	60 e0       	ldi	r22, 0x00	; 0
+     ece:	82 da       	rcall	.-2812   	; 0x3d4 <EVENT_USB_Host_DeviceEnumerationFailed>
+		EVENT_USB_Host_DeviceUnattached();
+     ed0:	5b da       	rcall	.-2890   	; 0x388 <EVENT_USB_Host_DeviceUnattached>
+
+		USB_ResetInterface();
+     ed2:	1c df       	rcall	.-456    	; 0xd0c <USB_ResetInterface>
+		USB_ResetInterface();
+
+		EVENT_USB_UIDChange();
+	}
+	#endif
+}
+     ed4:	ff 91       	pop	r31
+     ed6:	ef 91       	pop	r30
+     ed8:	bf 91       	pop	r27
+     eda:	af 91       	pop	r26
+     edc:	9f 91       	pop	r25
+     ede:	8f 91       	pop	r24
+     ee0:	7f 91       	pop	r23
+     ee2:	6f 91       	pop	r22
+     ee4:	5f 91       	pop	r21
+     ee6:	4f 91       	pop	r20
+     ee8:	3f 91       	pop	r19
+     eea:	2f 91       	pop	r18
+     eec:	0f 90       	pop	r0
+     eee:	0b be       	out	0x3b, r0	; 59
+     ef0:	0f 90       	pop	r0
+     ef2:	0f be       	out	0x3f, r0	; 63
+     ef4:	0f 90       	pop	r0
+     ef6:	1f 90       	pop	r1
+     ef8:	18 95       	reti
+
+00000efa <USB_Host_GetDeviceConfigDescriptor>:
+#if defined(USB_CAN_BE_HOST)
+uint8_t USB_Host_GetDeviceConfigDescriptor(const uint8_t ConfigNumber,
+                                           uint16_t* const ConfigSizePtr,
+                                           void* const BufferPtr,
+                                           const uint16_t BufferSize)
+{
+     efa:	cf 92       	push	r12
+     efc:	df 92       	push	r13
+     efe:	ef 92       	push	r14
+     f00:	ff 92       	push	r15
+     f02:	0f 93       	push	r16
+     f04:	1f 93       	push	r17
+     f06:	df 93       	push	r29
+     f08:	cf 93       	push	r28
+     f0a:	cd b7       	in	r28, 0x3d	; 61
+     f0c:	de b7       	in	r29, 0x3e	; 62
+     f0e:	29 97       	sbiw	r28, 0x09	; 9
+     f10:	0f b6       	in	r0, 0x3f	; 63
+     f12:	f8 94       	cli
+     f14:	de bf       	out	0x3e, r29	; 62
+     f16:	0f be       	out	0x3f, r0	; 63
+     f18:	cd bf       	out	0x3d, r28	; 61
+     f1a:	6b 01       	movw	r12, r22
+     f1c:	8a 01       	movw	r16, r20
+     f1e:	79 01       	movw	r14, r18
+	uint8_t ErrorCode;
+	uint8_t ConfigHeader[sizeof(USB_Descriptor_Configuration_Header_t)];
+
+	USB_ControlRequest = (USB_Request_Header_t)
+     f20:	90 e8       	ldi	r25, 0x80	; 128
+     f22:	90 93 23 01 	sts	0x0123, r25
+     f26:	96 e0       	ldi	r25, 0x06	; 6
+     f28:	90 93 24 01 	sts	0x0124, r25
+		{
+			.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),
+			.bRequest      = REQ_GetDescriptor,
+			.wValue        = ((DTYPE_Configuration << 8) | (ConfigNumber - 1)),
+     f2c:	90 e0       	ldi	r25, 0x00	; 0
+     f2e:	01 97       	sbiw	r24, 0x01	; 1
+     f30:	92 60       	ori	r25, 0x02	; 2
+                                           const uint16_t BufferSize)
+{
+	uint8_t ErrorCode;
+	uint8_t ConfigHeader[sizeof(USB_Descriptor_Configuration_Header_t)];
+
+	USB_ControlRequest = (USB_Request_Header_t)
+     f32:	90 93 26 01 	sts	0x0126, r25
+     f36:	80 93 25 01 	sts	0x0125, r24
+     f3a:	10 92 28 01 	sts	0x0128, r1
+     f3e:	10 92 27 01 	sts	0x0127, r1
+     f42:	89 e0       	ldi	r24, 0x09	; 9
+     f44:	90 e0       	ldi	r25, 0x00	; 0
+     f46:	90 93 2a 01 	sts	0x012A, r25
+     f4a:	80 93 29 01 	sts	0x0129, r24
+     f4e:	10 92 a7 00 	sts	0x00A7, r1
+			.wLength       = sizeof(USB_Descriptor_Configuration_Header_t),
+		};
+
+	Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+	if ((ErrorCode = USB_Host_SendControlRequest(ConfigHeader)) != HOST_SENDCONTROL_Successful)
+     f52:	ce 01       	movw	r24, r28
+     f54:	01 96       	adiw	r24, 0x01	; 1
+     f56:	95 d0       	rcall	.+298    	; 0x1082 <USB_Host_SendControlRequest>
+     f58:	88 23       	and	r24, r24
+     f5a:	b9 f4       	brne	.+46     	; 0xf8a <USB_Host_GetDeviceConfigDescriptor+0x90>
+	  return ErrorCode;
+
+	*ConfigSizePtr = DESCRIPTOR_PCAST(ConfigHeader, USB_Descriptor_Configuration_Header_t)->TotalConfigurationSize;
+     f5c:	8b 81       	ldd	r24, Y+3	; 0x03
+     f5e:	9c 81       	ldd	r25, Y+4	; 0x04
+     f60:	f6 01       	movw	r30, r12
+     f62:	91 83       	std	Z+1, r25	; 0x01
+     f64:	80 83       	st	Z, r24
+
+	if (*ConfigSizePtr > BufferSize)
+     f66:	e8 16       	cp	r14, r24
+     f68:	f9 06       	cpc	r15, r25
+     f6a:	70 f0       	brcs	.+28     	; 0xf88 <USB_Host_GetDeviceConfigDescriptor+0x8e>
+	  return HOST_GETCONFIG_BuffOverflow;
+
+	USB_ControlRequest.wLength = *ConfigSizePtr;
+     f6c:	90 93 2a 01 	sts	0x012A, r25
+     f70:	80 93 29 01 	sts	0x0129, r24
+
+	if ((ErrorCode = USB_Host_SendControlRequest(BufferPtr)) != HOST_SENDCONTROL_Successful)
+     f74:	c8 01       	movw	r24, r16
+     f76:	85 d0       	rcall	.+266    	; 0x1082 <USB_Host_SendControlRequest>
+     f78:	88 23       	and	r24, r24
+     f7a:	39 f4       	brne	.+14     	; 0xf8a <USB_Host_GetDeviceConfigDescriptor+0x90>
+	  return ErrorCode;
+
+	if (DESCRIPTOR_TYPE(BufferPtr) != DTYPE_Configuration)
+     f7c:	f8 01       	movw	r30, r16
+     f7e:	91 81       	ldd	r25, Z+1	; 0x01
+     f80:	92 30       	cpi	r25, 0x02	; 2
+     f82:	19 f0       	breq	.+6      	; 0xf8a <USB_Host_GetDeviceConfigDescriptor+0x90>
+	  return HOST_GETCONFIG_InvalidData;
+     f84:	86 e0       	ldi	r24, 0x06	; 6
+     f86:	01 c0       	rjmp	.+2      	; 0xf8a <USB_Host_GetDeviceConfigDescriptor+0x90>
+	  return ErrorCode;
+
+	*ConfigSizePtr = DESCRIPTOR_PCAST(ConfigHeader, USB_Descriptor_Configuration_Header_t)->TotalConfigurationSize;
+
+	if (*ConfigSizePtr > BufferSize)
+	  return HOST_GETCONFIG_BuffOverflow;
+     f88:	85 e0       	ldi	r24, 0x05	; 5
+
+	if (DESCRIPTOR_TYPE(BufferPtr) != DTYPE_Configuration)
+	  return HOST_GETCONFIG_InvalidData;
+
+	return HOST_GETCONFIG_Successful;
+}
+     f8a:	29 96       	adiw	r28, 0x09	; 9
+     f8c:	0f b6       	in	r0, 0x3f	; 63
+     f8e:	f8 94       	cli
+     f90:	de bf       	out	0x3e, r29	; 62
+     f92:	0f be       	out	0x3f, r0	; 63
+     f94:	cd bf       	out	0x3d, r28	; 61
+     f96:	cf 91       	pop	r28
+     f98:	df 91       	pop	r29
+     f9a:	1f 91       	pop	r17
+     f9c:	0f 91       	pop	r16
+     f9e:	ff 90       	pop	r15
+     fa0:	ef 90       	pop	r14
+     fa2:	df 90       	pop	r13
+     fa4:	cf 90       	pop	r12
+     fa6:	08 95       	ret
+
+00000fa8 <USB_GetNextDescriptorComp>:
+}
+
+uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem,
+                                  void** const CurrConfigLoc,
+                                  const ConfigComparatorPtr_t const ComparatorRoutine)
+{
+     fa8:	af 92       	push	r10
+     faa:	bf 92       	push	r11
+     fac:	cf 92       	push	r12
+     fae:	df 92       	push	r13
+     fb0:	ef 92       	push	r14
+     fb2:	ff 92       	push	r15
+     fb4:	0f 93       	push	r16
+     fb6:	1f 93       	push	r17
+     fb8:	cf 93       	push	r28
+     fba:	df 93       	push	r29
+     fbc:	8c 01       	movw	r16, r24
+     fbe:	eb 01       	movw	r28, r22
+     fc0:	6a 01       	movw	r12, r20
+	uint8_t ErrorCode;
+
+	while (*BytesRem)
+     fc2:	23 c0       	rjmp	.+70     	; 0x100a <USB_GetNextDescriptorComp+0x62>
+	{
+		uint8_t* PrevDescLoc  = *CurrConfigLoc;
+     fc4:	e8 81       	ld	r30, Y
+     fc6:	f9 81       	ldd	r31, Y+1	; 0x01
+     fc8:	5f 01       	movw	r10, r30
+			static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,
+			                                         void** CurrConfigLoc) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+			static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,
+			                                         void** CurrConfigLoc)
+			{
+				uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;
+     fca:	20 81       	ld	r18, Z
+     fcc:	30 e0       	ldi	r19, 0x00	; 0
+     fce:	c7 01       	movw	r24, r14
+     fd0:	2e 15       	cp	r18, r14
+     fd2:	3f 05       	cpc	r19, r15
+     fd4:	08 f4       	brcc	.+2      	; 0xfd8 <USB_GetNextDescriptorComp+0x30>
+     fd6:	c9 01       	movw	r24, r18
+				
+				if (*BytesRem < CurrDescriptorSize)
+				  CurrDescriptorSize = *BytesRem;
+
+				*CurrConfigLoc  = (void*)((uintptr_t)*CurrConfigLoc + CurrDescriptorSize);
+     fd8:	e8 0f       	add	r30, r24
+     fda:	f9 1f       	adc	r31, r25
+     fdc:	f9 83       	std	Y+1, r31	; 0x01
+     fde:	e8 83       	st	Y, r30
+				*BytesRem      -= CurrDescriptorSize;
+     fe0:	f8 01       	movw	r30, r16
+     fe2:	20 81       	ld	r18, Z
+     fe4:	31 81       	ldd	r19, Z+1	; 0x01
+     fe6:	28 1b       	sub	r18, r24
+     fe8:	39 0b       	sbc	r19, r25
+     fea:	31 83       	std	Z+1, r19	; 0x01
+     fec:	20 83       	st	Z, r18
+		uint16_t PrevBytesRem = *BytesRem;
+
+		USB_GetNextDescriptor(BytesRem, CurrConfigLoc);
+
+		if ((ErrorCode = ComparatorRoutine(*CurrConfigLoc)) != DESCRIPTOR_SEARCH_NotFound)
+     fee:	88 81       	ld	r24, Y
+     ff0:	99 81       	ldd	r25, Y+1	; 0x01
+     ff2:	f6 01       	movw	r30, r12
+     ff4:	09 95       	icall
+     ff6:	82 30       	cpi	r24, 0x02	; 2
+     ff8:	41 f0       	breq	.+16     	; 0x100a <USB_GetNextDescriptorComp+0x62>
+		{
+			if (ErrorCode == DESCRIPTOR_SEARCH_Fail)
+     ffa:	81 30       	cpi	r24, 0x01	; 1
+     ffc:	69 f4       	brne	.+26     	; 0x1018 <USB_GetNextDescriptorComp+0x70>
+			{
+				*CurrConfigLoc = PrevDescLoc;
+     ffe:	a8 82       	st	Y, r10
+    1000:	b9 82       	std	Y+1, r11	; 0x01
+				*BytesRem      = PrevBytesRem;
+    1002:	f8 01       	movw	r30, r16
+    1004:	f1 82       	std	Z+1, r15	; 0x01
+    1006:	e0 82       	st	Z, r14
+    1008:	07 c0       	rjmp	.+14     	; 0x1018 <USB_GetNextDescriptorComp+0x70>
+                                  void** const CurrConfigLoc,
+                                  const ConfigComparatorPtr_t const ComparatorRoutine)
+{
+	uint8_t ErrorCode;
+
+	while (*BytesRem)
+    100a:	f8 01       	movw	r30, r16
+    100c:	e0 80       	ld	r14, Z
+    100e:	f1 80       	ldd	r15, Z+1	; 0x01
+    1010:	e1 14       	cp	r14, r1
+    1012:	f1 04       	cpc	r15, r1
+    1014:	b9 f6       	brne	.-82     	; 0xfc4 <USB_GetNextDescriptorComp+0x1c>
+
+			return ErrorCode;
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_COMP_EndOfDescriptor;
+    1016:	82 e0       	ldi	r24, 0x02	; 2
+}
+    1018:	df 91       	pop	r29
+    101a:	cf 91       	pop	r28
+    101c:	1f 91       	pop	r17
+    101e:	0f 91       	pop	r16
+    1020:	ff 90       	pop	r15
+    1022:	ef 90       	pop	r14
+    1024:	df 90       	pop	r13
+    1026:	cf 90       	pop	r12
+    1028:	bf 90       	pop	r11
+    102a:	af 90       	pop	r10
+    102c:	08 95       	ret
+
+0000102e <USB_Event_Stub>:
+#include "Events.h"
+
+void USB_Event_Stub(void)
+{
+
+}
+    102e:	08 95       	ret
+
+00001030 <USB_Host_WaitForIOS>:
+
+	return ReturnStatus;
+}
+
+static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType)
+{
+    1030:	1f 93       	push	r17
+    1032:	cf 93       	push	r28
+    1034:	df 93       	push	r29
+    1036:	18 2f       	mov	r17, r24
+	#if (USB_HOST_TIMEOUT_MS < 0xFF)
+	uint8_t  TimeoutCounter = USB_HOST_TIMEOUT_MS;
+	#else
+	uint16_t TimeoutCounter = USB_HOST_TIMEOUT_MS;
+    1038:	c8 ee       	ldi	r28, 0xE8	; 232
+    103a:	d3 e0       	ldi	r29, 0x03	; 3
+	#endif
+
+	while (!(((WaitType == USB_HOST_WAITFOR_SetupSent)  && Pipe_IsSETUPSent())  ||
+    103c:	07 c0       	rjmp	.+14     	; 0x104c <USB_Host_WaitForIOS+0x1c>
+	         ((WaitType == USB_HOST_WAITFOR_InReceived) && Pipe_IsINReceived()) ||
+	         ((WaitType == USB_HOST_WAITFOR_OutReady)   && Pipe_IsOUTReady())))
+	{
+		uint8_t ErrorCode;
+
+		if ((ErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
+    103e:	81 e0       	ldi	r24, 0x01	; 1
+    1040:	1e dc       	rcall	.-1988   	; 0x87e <USB_Host_WaitMS>
+    1042:	88 23       	and	r24, r24
+    1044:	d1 f4       	brne	.+52     	; 0x107a <USB_Host_WaitForIOS+0x4a>
+		  return ErrorCode;
+
+		if (!(TimeoutCounter--))
+    1046:	20 97       	sbiw	r28, 0x00	; 0
+    1048:	b9 f0       	breq	.+46     	; 0x1078 <USB_Host_WaitForIOS+0x48>
+    104a:	21 97       	sbiw	r28, 0x01	; 1
+	uint8_t  TimeoutCounter = USB_HOST_TIMEOUT_MS;
+	#else
+	uint16_t TimeoutCounter = USB_HOST_TIMEOUT_MS;
+	#endif
+
+	while (!(((WaitType == USB_HOST_WAITFOR_SetupSent)  && Pipe_IsSETUPSent())  ||
+    104c:	11 23       	and	r17, r17
+    104e:	29 f4       	brne	.+10     	; 0x105a <USB_Host_WaitForIOS+0x2a>
+			 *  \return Boolean \c true if the current pipe is ready for a SETUP packet, \c false otherwise.
+			 */
+			static inline bool Pipe_IsSETUPSent(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsSETUPSent(void)
+			{
+				return ((UPINTX & (1 << TXSTPI)) ? true : false);
+    1050:	80 91 a6 00 	lds	r24, 0x00A6
+    1054:	83 ff       	sbrs	r24, 3
+    1056:	f3 cf       	rjmp	.-26     	; 0x103e <USB_Host_WaitForIOS+0xe>
+    1058:	0d c0       	rjmp	.+26     	; 0x1074 <USB_Host_WaitForIOS+0x44>
+    105a:	11 30       	cpi	r17, 0x01	; 1
+    105c:	29 f4       	brne	.+10     	; 0x1068 <USB_Host_WaitForIOS+0x38>
+			 *  \return Boolean \c true if the current pipe has received an IN packet, \c false otherwise.
+			 */
+			static inline bool Pipe_IsINReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsINReceived(void)
+			{
+				return ((UPINTX & (1 << RXINI)) ? true : false);
+    105e:	80 91 a6 00 	lds	r24, 0x00A6
+	         ((WaitType == USB_HOST_WAITFOR_InReceived) && Pipe_IsINReceived()) ||
+    1062:	80 ff       	sbrs	r24, 0
+    1064:	ec cf       	rjmp	.-40     	; 0x103e <USB_Host_WaitForIOS+0xe>
+    1066:	06 c0       	rjmp	.+12     	; 0x1074 <USB_Host_WaitForIOS+0x44>
+	uint8_t  TimeoutCounter = USB_HOST_TIMEOUT_MS;
+	#else
+	uint16_t TimeoutCounter = USB_HOST_TIMEOUT_MS;
+	#endif
+
+	while (!(((WaitType == USB_HOST_WAITFOR_SetupSent)  && Pipe_IsSETUPSent())  ||
+    1068:	12 30       	cpi	r17, 0x02	; 2
+    106a:	49 f7       	brne	.-46     	; 0x103e <USB_Host_WaitForIOS+0xe>
+			 *  \return Boolean \c true if the current pipe is ready for an OUT packet, \c false otherwise.
+			 */
+			static inline bool Pipe_IsOUTReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Pipe_IsOUTReady(void)
+			{
+				return ((UPINTX & (1 << TXOUTI)) ? true : false);
+    106c:	80 91 a6 00 	lds	r24, 0x00A6
+	         ((WaitType == USB_HOST_WAITFOR_InReceived) && Pipe_IsINReceived()) ||
+	         ((WaitType == USB_HOST_WAITFOR_OutReady)   && Pipe_IsOUTReady())))
+    1070:	82 ff       	sbrs	r24, 2
+    1072:	e5 cf       	rjmp	.-54     	; 0x103e <USB_Host_WaitForIOS+0xe>
+
+		if (!(TimeoutCounter--))
+		  return HOST_SENDCONTROL_SoftwareTimeOut;
+	}
+
+	return HOST_SENDCONTROL_Successful;
+    1074:	80 e0       	ldi	r24, 0x00	; 0
+    1076:	01 c0       	rjmp	.+2      	; 0x107a <USB_Host_WaitForIOS+0x4a>
+
+		if ((ErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
+		  return ErrorCode;
+
+		if (!(TimeoutCounter--))
+		  return HOST_SENDCONTROL_SoftwareTimeOut;
+    1078:	84 e0       	ldi	r24, 0x04	; 4
+	}
+
+	return HOST_SENDCONTROL_Successful;
+}
+    107a:	df 91       	pop	r29
+    107c:	cf 91       	pop	r28
+    107e:	1f 91       	pop	r17
+    1080:	08 95       	ret
+
+00001082 <USB_Host_SendControlRequest>:
+
+#define  __INCLUDE_FROM_HOSTSTDREQ_C
+#include "HostStandardReq.h"
+
+uint8_t USB_Host_SendControlRequest(void* const BufferPtr)
+{
+    1082:	ef 92       	push	r14
+    1084:	ff 92       	push	r15
+    1086:	0f 93       	push	r16
+    1088:	1f 93       	push	r17
+    108a:	cf 93       	push	r28
+    108c:	df 93       	push	r29
+    108e:	8c 01       	movw	r16, r24
+			 *  \return Boolean \c true if the bus is currently suspended, \c false otherwise.
+			 */
+			static inline bool USB_Host_IsBusSuspended(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool USB_Host_IsBusSuspended(void)
+			{
+				return ((UHCON & (1 << SOFEN)) ? false : true);
+    1090:	e0 90 9e 00 	lds	r14, 0x009E
+    1094:	ff 24       	eor	r15, r15
+    1096:	81 e0       	ldi	r24, 0x01	; 1
+    1098:	e8 22       	and	r14, r24
+    109a:	ff 24       	eor	r15, r15
+	uint8_t* DataStream   = (uint8_t*)BufferPtr;
+	bool     BusSuspended = USB_Host_IsBusSuspended();
+	uint8_t  ReturnStatus = HOST_SENDCONTROL_Successful;
+	uint16_t DataLen      = USB_ControlRequest.wLength;
+    109c:	c0 91 29 01 	lds	r28, 0x0129
+    10a0:	d0 91 2a 01 	lds	r29, 0x012A
+			 *  host and attached device may occur.
+			 */
+			static inline void USB_Host_ResumeBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_ResumeBus(void)
+			{
+				UHCON |=  (1 << SOFEN);
+    10a4:	80 91 9e 00 	lds	r24, 0x009E
+    10a8:	81 60       	ori	r24, 0x01	; 1
+    10aa:	80 93 9e 00 	sts	0x009E, r24
+
+	USB_Host_ResumeBus();
+
+	if ((ReturnStatus = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
+    10ae:	81 e0       	ldi	r24, 0x01	; 1
+    10b0:	e6 db       	rcall	.-2100   	; 0x87e <USB_Host_WaitMS>
+    10b2:	88 23       	and	r24, r24
+    10b4:	09 f0       	breq	.+2      	; 0x10b8 <USB_Host_SendControlRequest+0x36>
+    10b6:	e2 c0       	rjmp	.+452    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+			 *  \param[in] Token  New pipe token to set the selected pipe to, as a \c PIPE_TOKEN_* mask.
+			 */
+			static inline void Pipe_SetPipeToken(const uint8_t Token) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetPipeToken(const uint8_t Token)
+			{
+				UPCFG0X = ((UPCFG0X & ~(0x03 << PTOKEN0)) | Token);
+    10b8:	80 91 aa 00 	lds	r24, 0x00AA
+    10bc:	8f 7c       	andi	r24, 0xCF	; 207
+    10be:	80 93 aa 00 	sts	0x00AA, r24
+
+			/** Clears the error flags for the currently selected pipe. */
+			static inline void Pipe_ClearError(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearError(void)
+			{
+				UPERRX = 0;
+    10c2:	10 92 f5 00 	sts	0x00F5, r1
+				UPINTX &= ~(1 << PERRI);
+    10c6:	80 91 a6 00 	lds	r24, 0x00A6
+    10ca:	8f 7e       	andi	r24, 0xEF	; 239
+    10cc:	80 93 a6 00 	sts	0x00A6, r24
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+    10d0:	80 91 a9 00 	lds	r24, 0x00A9
+    10d4:	8f 7b       	andi	r24, 0xBF	; 191
+    10d6:	80 93 a9 00 	sts	0x00A9, r24
+	Pipe_SetPipeToken(PIPE_TOKEN_SETUP);
+	Pipe_ClearError();
+
+	Pipe_Unfreeze();
+
+	Pipe_Write_8(USB_ControlRequest.bmRequestType);
+    10da:	80 91 23 01 	lds	r24, 0x0123
+			 *  \param[in] Data  Data to write into the the currently selected pipe's FIFO buffer.
+			 */
+			static inline void Pipe_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Write_8(const uint8_t Data)
+			{
+				UPDATX = Data;
+    10de:	80 93 af 00 	sts	0x00AF, r24
+	Pipe_Write_8(USB_ControlRequest.bRequest);
+    10e2:	80 91 24 01 	lds	r24, 0x0124
+    10e6:	80 93 af 00 	sts	0x00AF, r24
+	Pipe_Write_16_LE(USB_ControlRequest.wValue);
+    10ea:	90 91 25 01 	lds	r25, 0x0125
+    10ee:	80 91 26 01 	lds	r24, 0x0126
+			 *  \param[in] Data  Data to write to the currently selected pipe's FIFO buffer.
+			 */
+			static inline void Pipe_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Write_16_LE(const uint16_t Data)
+			{
+				UPDATX = (Data & 0xFF);
+    10f2:	90 93 af 00 	sts	0x00AF, r25
+				UPDATX = (Data >> 8);
+    10f6:	80 93 af 00 	sts	0x00AF, r24
+	Pipe_Write_16_LE(USB_ControlRequest.wIndex);
+    10fa:	90 91 27 01 	lds	r25, 0x0127
+    10fe:	80 91 28 01 	lds	r24, 0x0128
+			 *  \param[in] Data  Data to write to the currently selected pipe's FIFO buffer.
+			 */
+			static inline void Pipe_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Write_16_LE(const uint16_t Data)
+			{
+				UPDATX = (Data & 0xFF);
+    1102:	90 93 af 00 	sts	0x00AF, r25
+				UPDATX = (Data >> 8);
+    1106:	80 93 af 00 	sts	0x00AF, r24
+	Pipe_Write_16_LE(USB_ControlRequest.wLength);
+    110a:	90 91 29 01 	lds	r25, 0x0129
+    110e:	80 91 2a 01 	lds	r24, 0x012A
+			 *  \param[in] Data  Data to write to the currently selected pipe's FIFO buffer.
+			 */
+			static inline void Pipe_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Write_16_LE(const uint16_t Data)
+			{
+				UPDATX = (Data & 0xFF);
+    1112:	90 93 af 00 	sts	0x00AF, r25
+				UPDATX = (Data >> 8);
+    1116:	80 93 af 00 	sts	0x00AF, r24
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearSETUP(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearSETUP(void)
+			{
+				UPINTX &= ~((1 << TXSTPI) | (1 << FIFOCON));
+    111a:	80 91 a6 00 	lds	r24, 0x00A6
+    111e:	87 77       	andi	r24, 0x77	; 119
+    1120:	80 93 a6 00 	sts	0x00A6, r24
+
+	Pipe_ClearSETUP();
+
+	if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_SetupSent)) != HOST_SENDCONTROL_Successful)
+    1124:	80 e0       	ldi	r24, 0x00	; 0
+    1126:	84 df       	rcall	.-248    	; 0x1030 <USB_Host_WaitForIOS>
+    1128:	88 23       	and	r24, r24
+    112a:	09 f0       	breq	.+2      	; 0x112e <USB_Host_SendControlRequest+0xac>
+    112c:	a7 c0       	rjmp	.+334    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+
+			/** Freezes the selected pipe, preventing it from communicating with an attached device. */
+			static inline void Pipe_Freeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Freeze(void)
+			{
+				UPCONX |= (1 << PFREEZE);
+    112e:	80 91 a9 00 	lds	r24, 0x00A9
+    1132:	80 64       	ori	r24, 0x40	; 64
+    1134:	80 93 a9 00 	sts	0x00A9, r24
+	  goto End_Of_Control_Send;
+
+	Pipe_Freeze();
+
+	if ((ReturnStatus = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
+    1138:	81 e0       	ldi	r24, 0x01	; 1
+    113a:	a1 db       	rcall	.-2238   	; 0x87e <USB_Host_WaitMS>
+    113c:	88 23       	and	r24, r24
+    113e:	09 f0       	breq	.+2      	; 0x1142 <USB_Host_SendControlRequest+0xc0>
+    1140:	9d c0       	rjmp	.+314    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+	  goto End_Of_Control_Send;
+
+	if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_DIRECTION) == REQDIR_DEVICETOHOST)
+    1142:	80 91 23 01 	lds	r24, 0x0123
+    1146:	87 ff       	sbrs	r24, 7
+    1148:	4f c0       	rjmp	.+158    	; 0x11e8 <USB_Host_SendControlRequest+0x166>
+			 *  \param[in] Token  New pipe token to set the selected pipe to, as a \c PIPE_TOKEN_* mask.
+			 */
+			static inline void Pipe_SetPipeToken(const uint8_t Token) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetPipeToken(const uint8_t Token)
+			{
+				UPCFG0X = ((UPCFG0X & ~(0x03 << PTOKEN0)) | Token);
+    114a:	80 91 aa 00 	lds	r24, 0x00AA
+    114e:	8f 7c       	andi	r24, 0xCF	; 207
+    1150:	80 61       	ori	r24, 0x10	; 16
+    1152:	80 93 aa 00 	sts	0x00AA, r24
+	{
+		Pipe_SetPipeToken(PIPE_TOKEN_IN);
+
+		if (DataStream != NULL)
+    1156:	01 15       	cp	r16, r1
+    1158:	11 05       	cpc	r17, r1
+    115a:	61 f5       	brne	.+88     	; 0x11b4 <USB_Host_SendControlRequest+0x132>
+    115c:	2d c0       	rjmp	.+90     	; 0x11b8 <USB_Host_SendControlRequest+0x136>
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+    115e:	80 91 a9 00 	lds	r24, 0x00A9
+    1162:	8f 7b       	andi	r24, 0xBF	; 191
+    1164:	80 93 a9 00 	sts	0x00A9, r24
+		{
+			while (DataLen)
+			{
+				Pipe_Unfreeze();
+
+				if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)) != HOST_SENDCONTROL_Successful)
+    1168:	81 e0       	ldi	r24, 0x01	; 1
+    116a:	62 df       	rcall	.-316    	; 0x1030 <USB_Host_WaitForIOS>
+    116c:	88 23       	and	r24, r24
+    116e:	09 f0       	breq	.+2      	; 0x1172 <USB_Host_SendControlRequest+0xf0>
+    1170:	85 c0       	rjmp	.+266    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+			 *  \return Total number of bytes in the currently selected pipe's FIFO buffer.
+			 */
+			static inline uint16_t Pipe_BytesInPipe(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint16_t Pipe_BytesInPipe(void)
+			{
+				return UPBCX;
+    1172:	80 91 f6 00 	lds	r24, 0x00F6
+    1176:	90 91 f7 00 	lds	r25, 0x00F7
+				  goto End_Of_Control_Send;
+
+				if (!(Pipe_BytesInPipe()))
+    117a:	00 97       	sbiw	r24, 0x00	; 0
+    117c:	49 f4       	brne	.+18     	; 0x1190 <USB_Host_SendControlRequest+0x10e>
+				  DataLen = 0;
+    117e:	c0 e0       	ldi	r28, 0x00	; 0
+    1180:	d0 e0       	ldi	r29, 0x00	; 0
+    1182:	06 c0       	rjmp	.+12     	; 0x1190 <USB_Host_SendControlRequest+0x10e>
+			 *  \return Next byte in the currently selected pipe's FIFO buffer.
+			 */
+			static inline uint8_t Pipe_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint8_t Pipe_Read_8(void)
+			{
+				return UPDATX;
+    1184:	80 91 af 00 	lds	r24, 0x00AF
+
+				while (Pipe_BytesInPipe() && DataLen)
+				{
+					*(DataStream++) = Pipe_Read_8();
+    1188:	f8 01       	movw	r30, r16
+    118a:	81 93       	st	Z+, r24
+    118c:	8f 01       	movw	r16, r30
+					DataLen--;
+    118e:	21 97       	sbiw	r28, 0x01	; 1
+			 *  \return Total number of bytes in the currently selected pipe's FIFO buffer.
+			 */
+			static inline uint16_t Pipe_BytesInPipe(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint16_t Pipe_BytesInPipe(void)
+			{
+				return UPBCX;
+    1190:	80 91 f6 00 	lds	r24, 0x00F6
+    1194:	90 91 f7 00 	lds	r25, 0x00F7
+				  goto End_Of_Control_Send;
+
+				if (!(Pipe_BytesInPipe()))
+				  DataLen = 0;
+
+				while (Pipe_BytesInPipe() && DataLen)
+    1198:	00 97       	sbiw	r24, 0x00	; 0
+    119a:	11 f0       	breq	.+4      	; 0x11a0 <USB_Host_SendControlRequest+0x11e>
+    119c:	20 97       	sbiw	r28, 0x00	; 0
+    119e:	91 f7       	brne	.-28     	; 0x1184 <USB_Host_SendControlRequest+0x102>
+
+			/** Freezes the selected pipe, preventing it from communicating with an attached device. */
+			static inline void Pipe_Freeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Freeze(void)
+			{
+				UPCONX |= (1 << PFREEZE);
+    11a0:	80 91 a9 00 	lds	r24, 0x00A9
+    11a4:	80 64       	ori	r24, 0x40	; 64
+    11a6:	80 93 a9 00 	sts	0x00A9, r24
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearIN(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearIN(void)
+			{
+				UPINTX &= ~((1 << RXINI) | (1 << FIFOCON));
+    11aa:	80 91 a6 00 	lds	r24, 0x00A6
+    11ae:	8e 77       	andi	r24, 0x7E	; 126
+    11b0:	80 93 a6 00 	sts	0x00A6, r24
+	{
+		Pipe_SetPipeToken(PIPE_TOKEN_IN);
+
+		if (DataStream != NULL)
+		{
+			while (DataLen)
+    11b4:	20 97       	sbiw	r28, 0x00	; 0
+    11b6:	99 f6       	brne	.-90     	; 0x115e <USB_Host_SendControlRequest+0xdc>
+			 *  \param[in] Token  New pipe token to set the selected pipe to, as a \c PIPE_TOKEN_* mask.
+			 */
+			static inline void Pipe_SetPipeToken(const uint8_t Token) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetPipeToken(const uint8_t Token)
+			{
+				UPCFG0X = ((UPCFG0X & ~(0x03 << PTOKEN0)) | Token);
+    11b8:	80 91 aa 00 	lds	r24, 0x00AA
+    11bc:	8f 7c       	andi	r24, 0xCF	; 207
+    11be:	80 62       	ori	r24, 0x20	; 32
+    11c0:	80 93 aa 00 	sts	0x00AA, r24
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+    11c4:	80 91 a9 00 	lds	r24, 0x00A9
+    11c8:	8f 7b       	andi	r24, 0xBF	; 191
+    11ca:	80 93 a9 00 	sts	0x00A9, r24
+		}
+
+		Pipe_SetPipeToken(PIPE_TOKEN_OUT);
+		Pipe_Unfreeze();
+
+		if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
+    11ce:	82 e0       	ldi	r24, 0x02	; 2
+    11d0:	2f df       	rcall	.-418    	; 0x1030 <USB_Host_WaitForIOS>
+    11d2:	88 23       	and	r24, r24
+    11d4:	09 f0       	breq	.+2      	; 0x11d8 <USB_Host_SendControlRequest+0x156>
+    11d6:	52 c0       	rjmp	.+164    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearOUT(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearOUT(void)
+			{
+				UPINTX &= ~((1 << TXOUTI) | (1 << FIFOCON));
+    11d8:	80 91 a6 00 	lds	r24, 0x00A6
+    11dc:	8b 77       	andi	r24, 0x7B	; 123
+    11de:	80 93 a6 00 	sts	0x00A6, r24
+		  goto End_Of_Control_Send;
+
+		Pipe_ClearOUT();
+
+		if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
+    11e2:	82 e0       	ldi	r24, 0x02	; 2
+    11e4:	25 df       	rcall	.-438    	; 0x1030 <USB_Host_WaitForIOS>
+    11e6:	4a c0       	rjmp	.+148    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+		  goto End_Of_Control_Send;
+	}
+	else
+	{
+		if (DataStream != NULL)
+    11e8:	01 15       	cp	r16, r1
+    11ea:	11 05       	cpc	r17, r1
+    11ec:	99 f1       	breq	.+102    	; 0x1254 <USB_Host_SendControlRequest+0x1d2>
+			 *  \param[in] Token  New pipe token to set the selected pipe to, as a \c PIPE_TOKEN_* mask.
+			 */
+			static inline void Pipe_SetPipeToken(const uint8_t Token) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetPipeToken(const uint8_t Token)
+			{
+				UPCFG0X = ((UPCFG0X & ~(0x03 << PTOKEN0)) | Token);
+    11ee:	80 91 aa 00 	lds	r24, 0x00AA
+    11f2:	8f 7c       	andi	r24, 0xCF	; 207
+    11f4:	80 62       	ori	r24, 0x20	; 32
+    11f6:	80 93 aa 00 	sts	0x00AA, r24
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+    11fa:	80 91 a9 00 	lds	r24, 0x00A9
+    11fe:	8f 7b       	andi	r24, 0xBF	; 191
+    1200:	80 93 a9 00 	sts	0x00A9, r24
+		{
+			Pipe_SetPipeToken(PIPE_TOKEN_OUT);
+			Pipe_Unfreeze();
+
+			while (DataLen)
+    1204:	1c c0       	rjmp	.+56     	; 0x123e <USB_Host_SendControlRequest+0x1bc>
+			{
+				if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
+    1206:	82 e0       	ldi	r24, 0x02	; 2
+    1208:	13 df       	rcall	.-474    	; 0x1030 <USB_Host_WaitForIOS>
+    120a:	88 23       	and	r24, r24
+    120c:	b9 f5       	brne	.+110    	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+    120e:	f8 01       	movw	r30, r16
+    1210:	06 c0       	rjmp	.+12     	; 0x121e <USB_Host_SendControlRequest+0x19c>
+				  goto End_Of_Control_Send;
+
+				while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize))
+				{
+					Pipe_Write_8(*(DataStream++));
+    1212:	81 91       	ld	r24, Z+
+    1214:	8f 01       	movw	r16, r30
+			 *  \param[in] Data  Data to write into the the currently selected pipe's FIFO buffer.
+			 */
+			static inline void Pipe_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Write_8(const uint8_t Data)
+			{
+				UPDATX = Data;
+    1216:	80 93 af 00 	sts	0x00AF, r24
+					DataLen--;
+    121a:	21 97       	sbiw	r28, 0x01	; 1
+			while (DataLen)
+			{
+				if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
+				  goto End_Of_Control_Send;
+
+				while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize))
+    121c:	59 f0       	breq	.+22     	; 0x1234 <USB_Host_SendControlRequest+0x1b2>
+    121e:	8f 01       	movw	r16, r30
+			 *  \return Total number of bytes in the currently selected pipe's FIFO buffer.
+			 */
+			static inline uint16_t Pipe_BytesInPipe(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint16_t Pipe_BytesInPipe(void)
+			{
+				return UPBCX;
+    1220:	20 91 f6 00 	lds	r18, 0x00F6
+    1224:	30 91 f7 00 	lds	r19, 0x00F7
+    1228:	80 91 1b 01 	lds	r24, 0x011B
+    122c:	90 e0       	ldi	r25, 0x00	; 0
+    122e:	28 17       	cp	r18, r24
+    1230:	39 07       	cpc	r19, r25
+    1232:	78 f3       	brcs	.-34     	; 0x1212 <USB_Host_SendControlRequest+0x190>
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearOUT(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearOUT(void)
+			{
+				UPINTX &= ~((1 << TXOUTI) | (1 << FIFOCON));
+    1234:	80 91 a6 00 	lds	r24, 0x00A6
+    1238:	8b 77       	andi	r24, 0x7B	; 123
+    123a:	80 93 a6 00 	sts	0x00A6, r24
+		if (DataStream != NULL)
+		{
+			Pipe_SetPipeToken(PIPE_TOKEN_OUT);
+			Pipe_Unfreeze();
+
+			while (DataLen)
+    123e:	20 97       	sbiw	r28, 0x00	; 0
+    1240:	11 f7       	brne	.-60     	; 0x1206 <USB_Host_SendControlRequest+0x184>
+				}
+
+				Pipe_ClearOUT();
+			}
+
+			if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
+    1242:	82 e0       	ldi	r24, 0x02	; 2
+    1244:	f5 de       	rcall	.-534    	; 0x1030 <USB_Host_WaitForIOS>
+    1246:	88 23       	and	r24, r24
+    1248:	c9 f4       	brne	.+50     	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+
+			/** Freezes the selected pipe, preventing it from communicating with an attached device. */
+			static inline void Pipe_Freeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Freeze(void)
+			{
+				UPCONX |= (1 << PFREEZE);
+    124a:	80 91 a9 00 	lds	r24, 0x00A9
+    124e:	80 64       	ori	r24, 0x40	; 64
+    1250:	80 93 a9 00 	sts	0x00A9, r24
+			 *  \param[in] Token  New pipe token to set the selected pipe to, as a \c PIPE_TOKEN_* mask.
+			 */
+			static inline void Pipe_SetPipeToken(const uint8_t Token) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SetPipeToken(const uint8_t Token)
+			{
+				UPCFG0X = ((UPCFG0X & ~(0x03 << PTOKEN0)) | Token);
+    1254:	80 91 aa 00 	lds	r24, 0x00AA
+    1258:	8f 7c       	andi	r24, 0xCF	; 207
+    125a:	80 61       	ori	r24, 0x10	; 16
+    125c:	80 93 aa 00 	sts	0x00AA, r24
+
+			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
+			static inline void Pipe_Unfreeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Unfreeze(void)
+			{
+				UPCONX &= ~(1 << PFREEZE);
+    1260:	80 91 a9 00 	lds	r24, 0x00A9
+    1264:	8f 7b       	andi	r24, 0xBF	; 191
+    1266:	80 93 a9 00 	sts	0x00A9, r24
+		}
+
+		Pipe_SetPipeToken(PIPE_TOKEN_IN);
+		Pipe_Unfreeze();
+
+		if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)) != HOST_SENDCONTROL_Successful)
+    126a:	81 e0       	ldi	r24, 0x01	; 1
+    126c:	e1 de       	rcall	.-574    	; 0x1030 <USB_Host_WaitForIOS>
+    126e:	88 23       	and	r24, r24
+    1270:	29 f4       	brne	.+10     	; 0x127c <USB_Host_SendControlRequest+0x1fa>
+			 *  \ingroup Group_PipePacketManagement_AVR8
+			 */
+			static inline void Pipe_ClearIN(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ClearIN(void)
+			{
+				UPINTX &= ~((1 << RXINI) | (1 << FIFOCON));
+    1272:	90 91 a6 00 	lds	r25, 0x00A6
+    1276:	9e 77       	andi	r25, 0x7E	; 126
+    1278:	90 93 a6 00 	sts	0x00A6, r25
+
+			/** Freezes the selected pipe, preventing it from communicating with an attached device. */
+			static inline void Pipe_Freeze(void) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_Freeze(void)
+			{
+				UPCONX |= (1 << PFREEZE);
+    127c:	90 91 a9 00 	lds	r25, 0x00A9
+    1280:	90 64       	ori	r25, 0x40	; 64
+    1282:	90 93 a9 00 	sts	0x00A9, r25
+	}
+
+End_Of_Control_Send:
+	Pipe_Freeze();
+
+	if (BusSuspended)
+    1286:	e1 14       	cp	r14, r1
+    1288:	f1 04       	cpc	r15, r1
+    128a:	29 f4       	brne	.+10     	; 0x1296 <USB_Host_SendControlRequest+0x214>
+			 *  messages to the device.
+			 */
+			static inline void USB_Host_SuspendBus(void) ATTR_ALWAYS_INLINE;
+			static inline void USB_Host_SuspendBus(void)
+			{
+				UHCON &= ~(1 << SOFEN);
+    128c:	90 91 9e 00 	lds	r25, 0x009E
+    1290:	9e 7f       	andi	r25, 0xFE	; 254
+    1292:	90 93 9e 00 	sts	0x009E, r25
+			 *  \param[in] PipeNumber  Index of the pipe to reset.
+			 */
+			static inline void Pipe_ResetPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_ResetPipe(const uint8_t PipeNumber)
+			{
+				UPRST = (1 << PipeNumber);
+    1296:	91 e0       	ldi	r25, 0x01	; 1
+    1298:	90 93 a8 00 	sts	0x00A8, r25
+				UPRST = 0;
+    129c:	10 92 a8 00 	sts	0x00A8, r1
+	  USB_Host_SuspendBus();
+
+	Pipe_ResetPipe(PIPE_CONTROLPIPE);
+
+	return ReturnStatus;
+}
+    12a0:	df 91       	pop	r29
+    12a2:	cf 91       	pop	r28
+    12a4:	1f 91       	pop	r17
+    12a6:	0f 91       	pop	r16
+    12a8:	ff 90       	pop	r15
+    12aa:	ef 90       	pop	r14
+    12ac:	08 95       	ret
+
+000012ae <USB_USBTask>:
+#if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR)
+volatile uint8_t     USB_DeviceState;
+#endif
+
+void USB_USBTask(void)
+{
+    12ae:	1f 93       	push	r17
+    12b0:	cf 93       	push	r28
+    12b2:	df 93       	push	r29
+			 *  \return Index of the currently selected pipe.
+			 */
+			static inline uint8_t Pipe_GetCurrentPipe(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline uint8_t Pipe_GetCurrentPipe(void)
+			{
+				return (UPNUM & PIPE_PIPENUM_MASK);
+    12b4:	c7 ea       	ldi	r28, 0xA7	; 167
+    12b6:	d0 e0       	ldi	r29, 0x00	; 0
+    12b8:	18 81       	ld	r17, Y
+    12ba:	17 70       	andi	r17, 0x07	; 7
+			 *  \param[in] PipeNumber  Index of the pipe to select.
+			 */
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber) ATTR_ALWAYS_INLINE;
+			static inline void Pipe_SelectPipe(const uint8_t PipeNumber)
+			{
+				UPNUM = PipeNumber;
+    12bc:	18 82       	st	Y, r1
+{
+	uint8_t PrevPipe = Pipe_GetCurrentPipe();
+
+	Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+	USB_Host_ProcessNextHostState();
+    12be:	34 db       	rcall	.-2456   	; 0x928 <USB_Host_ProcessNextHostState>
+    12c0:	18 83       	st	Y, r17
+		if (USB_CurrentMode == USB_MODE_Device)
+		  USB_DeviceTask();
+		else if (USB_CurrentMode == USB_MODE_Host)
+		  USB_HostTask();
+	#endif
+}
+    12c2:	df 91       	pop	r29
+    12c4:	cf 91       	pop	r28
+    12c6:	1f 91       	pop	r17
+    12c8:	08 95       	ret
+
+000012ca <Serial_putchar>:
+			 *  \param[in] DataByte  Byte to transmit through the USART.
+			 */
+			static inline void Serial_SendByte(const char DataByte) ATTR_ALWAYS_INLINE;
+			static inline void Serial_SendByte(const char DataByte)
+			{
+				while (!(UCSR1A & (1 << UDRE1)));
+    12ca:	90 91 c8 00 	lds	r25, 0x00C8
+    12ce:	95 ff       	sbrs	r25, 5
+    12d0:	fc cf       	rjmp	.-8      	; 0x12ca <Serial_putchar>
+				UDR1 = DataByte;
+    12d2:	80 93 ce 00 	sts	0x00CE, r24
+{
+	(void)Stream;
+
+	Serial_SendByte(DataByte);
+	return 0;
+}
+    12d6:	80 e0       	ldi	r24, 0x00	; 0
+    12d8:	90 e0       	ldi	r25, 0x00	; 0
+    12da:	08 95       	ret
+
+000012dc <Serial_getchar>:
+			 *  \return Boolean \c true if a character has been received, \c false otherwise.
+			 */
+			static inline bool Serial_IsCharReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+			static inline bool Serial_IsCharReceived(void)
+			{
+				return ((UCSR1A & (1 << RXC1)) ? true : false);
+    12dc:	80 91 c8 00 	lds	r24, 0x00C8
+
+int Serial_getchar(FILE *Stream)
+{
+	(void)Stream;
+
+	if (!(Serial_IsCharReceived()))
+    12e0:	87 ff       	sbrs	r24, 7
+    12e2:	08 c0       	rjmp	.+16     	; 0x12f4 <Serial_getchar+0x18>
+    12e4:	80 91 c8 00 	lds	r24, 0x00C8
+			 *  \return Next byte received from the USART, or a negative value if no byte has been received.
+			 */
+			static inline int16_t Serial_ReceiveByte(void) ATTR_ALWAYS_INLINE;
+			static inline int16_t Serial_ReceiveByte(void)
+			{
+				if (!(Serial_IsCharReceived()))
+    12e8:	87 ff       	sbrs	r24, 7
+    12ea:	07 c0       	rjmp	.+14     	; 0x12fa <Serial_getchar+0x1e>
+				  return -1;
+				
+				return UDR1;
+    12ec:	20 91 ce 00 	lds	r18, 0x00CE
+    12f0:	30 e0       	ldi	r19, 0x00	; 0
+    12f2:	05 c0       	rjmp	.+10     	; 0x12fe <Serial_getchar+0x22>
+	  return _FDEV_EOF;
+    12f4:	2e ef       	ldi	r18, 0xFE	; 254
+    12f6:	3f ef       	ldi	r19, 0xFF	; 255
+    12f8:	02 c0       	rjmp	.+4      	; 0x12fe <Serial_getchar+0x22>
+			 */
+			static inline int16_t Serial_ReceiveByte(void) ATTR_ALWAYS_INLINE;
+			static inline int16_t Serial_ReceiveByte(void)
+			{
+				if (!(Serial_IsCharReceived()))
+				  return -1;
+    12fa:	2f ef       	ldi	r18, 0xFF	; 255
+    12fc:	3f ef       	ldi	r19, 0xFF	; 255
+
+	return Serial_ReceiveByte();
+}
+    12fe:	c9 01       	movw	r24, r18
+    1300:	08 95       	ret
+
+00001302 <printf_P>:
+    1302:	df 93       	push	r29
+    1304:	cf 93       	push	r28
+    1306:	cd b7       	in	r28, 0x3d	; 61
+    1308:	de b7       	in	r29, 0x3e	; 62
+    130a:	fe 01       	movw	r30, r28
+    130c:	35 96       	adiw	r30, 0x05	; 5
+    130e:	61 91       	ld	r22, Z+
+    1310:	71 91       	ld	r23, Z+
+    1312:	80 91 3c 01 	lds	r24, 0x013C
+    1316:	90 91 3d 01 	lds	r25, 0x013D
+    131a:	dc 01       	movw	r26, r24
+    131c:	13 96       	adiw	r26, 0x03	; 3
+    131e:	2c 91       	ld	r18, X
+    1320:	13 97       	sbiw	r26, 0x03	; 3
+    1322:	28 60       	ori	r18, 0x08	; 8
+    1324:	13 96       	adiw	r26, 0x03	; 3
+    1326:	2c 93       	st	X, r18
+    1328:	af 01       	movw	r20, r30
+    132a:	42 d0       	rcall	.+132    	; 0x13b0 <vfprintf>
+    132c:	e0 91 3c 01 	lds	r30, 0x013C
+    1330:	f0 91 3d 01 	lds	r31, 0x013D
+    1334:	23 81       	ldd	r18, Z+3	; 0x03
+    1336:	27 7f       	andi	r18, 0xF7	; 247
+    1338:	23 83       	std	Z+3, r18	; 0x03
+    133a:	cf 91       	pop	r28
+    133c:	df 91       	pop	r29
+    133e:	08 95       	ret
+
+00001340 <puts_P>:
+    1340:	ef 92       	push	r14
+    1342:	ff 92       	push	r15
+    1344:	0f 93       	push	r16
+    1346:	1f 93       	push	r17
+    1348:	cf 93       	push	r28
+    134a:	df 93       	push	r29
+    134c:	8c 01       	movw	r16, r24
+    134e:	e0 91 3c 01 	lds	r30, 0x013C
+    1352:	f0 91 3d 01 	lds	r31, 0x013D
+    1356:	83 81       	ldd	r24, Z+3	; 0x03
+    1358:	81 ff       	sbrs	r24, 1
+    135a:	20 c0       	rjmp	.+64     	; 0x139c <puts_P+0x5c>
+    135c:	c0 e0       	ldi	r28, 0x00	; 0
+    135e:	d0 e0       	ldi	r29, 0x00	; 0
+    1360:	0c c0       	rjmp	.+24     	; 0x137a <puts_P+0x3a>
+    1362:	db 01       	movw	r26, r22
+    1364:	18 96       	adiw	r26, 0x08	; 8
+    1366:	ed 91       	ld	r30, X+
+    1368:	fc 91       	ld	r31, X
+    136a:	19 97       	sbiw	r26, 0x09	; 9
+    136c:	09 95       	icall
+    136e:	00 97       	sbiw	r24, 0x00	; 0
+    1370:	11 f0       	breq	.+4      	; 0x1376 <puts_P+0x36>
+    1372:	cf ef       	ldi	r28, 0xFF	; 255
+    1374:	df ef       	ldi	r29, 0xFF	; 255
+    1376:	0f 5f       	subi	r16, 0xFF	; 255
+    1378:	1f 4f       	sbci	r17, 0xFF	; 255
+    137a:	f8 01       	movw	r30, r16
+    137c:	84 91       	lpm	r24, Z+
+    137e:	60 91 3c 01 	lds	r22, 0x013C
+    1382:	70 91 3d 01 	lds	r23, 0x013D
+    1386:	88 23       	and	r24, r24
+    1388:	61 f7       	brne	.-40     	; 0x1362 <puts_P+0x22>
+    138a:	db 01       	movw	r26, r22
+    138c:	18 96       	adiw	r26, 0x08	; 8
+    138e:	ed 91       	ld	r30, X+
+    1390:	fc 91       	ld	r31, X
+    1392:	19 97       	sbiw	r26, 0x09	; 9
+    1394:	8a e0       	ldi	r24, 0x0A	; 10
+    1396:	09 95       	icall
+    1398:	00 97       	sbiw	r24, 0x00	; 0
+    139a:	11 f0       	breq	.+4      	; 0x13a0 <puts_P+0x60>
+    139c:	cf ef       	ldi	r28, 0xFF	; 255
+    139e:	df ef       	ldi	r29, 0xFF	; 255
+    13a0:	ce 01       	movw	r24, r28
+    13a2:	df 91       	pop	r29
+    13a4:	cf 91       	pop	r28
+    13a6:	1f 91       	pop	r17
+    13a8:	0f 91       	pop	r16
+    13aa:	ff 90       	pop	r15
+    13ac:	ef 90       	pop	r14
+    13ae:	08 95       	ret
+
+000013b0 <vfprintf>:
+    13b0:	2f 92       	push	r2
+    13b2:	3f 92       	push	r3
+    13b4:	4f 92       	push	r4
+    13b6:	5f 92       	push	r5
+    13b8:	6f 92       	push	r6
+    13ba:	7f 92       	push	r7
+    13bc:	8f 92       	push	r8
+    13be:	9f 92       	push	r9
+    13c0:	af 92       	push	r10
+    13c2:	bf 92       	push	r11
+    13c4:	cf 92       	push	r12
+    13c6:	df 92       	push	r13
+    13c8:	ef 92       	push	r14
+    13ca:	ff 92       	push	r15
+    13cc:	0f 93       	push	r16
+    13ce:	1f 93       	push	r17
+    13d0:	df 93       	push	r29
+    13d2:	cf 93       	push	r28
+    13d4:	cd b7       	in	r28, 0x3d	; 61
+    13d6:	de b7       	in	r29, 0x3e	; 62
+    13d8:	2c 97       	sbiw	r28, 0x0c	; 12
+    13da:	0f b6       	in	r0, 0x3f	; 63
+    13dc:	f8 94       	cli
+    13de:	de bf       	out	0x3e, r29	; 62
+    13e0:	0f be       	out	0x3f, r0	; 63
+    13e2:	cd bf       	out	0x3d, r28	; 61
+    13e4:	6c 01       	movw	r12, r24
+    13e6:	1b 01       	movw	r2, r22
+    13e8:	8a 01       	movw	r16, r20
+    13ea:	fc 01       	movw	r30, r24
+    13ec:	17 82       	std	Z+7, r1	; 0x07
+    13ee:	16 82       	std	Z+6, r1	; 0x06
+    13f0:	83 81       	ldd	r24, Z+3	; 0x03
+    13f2:	81 ff       	sbrs	r24, 1
+    13f4:	c4 c1       	rjmp	.+904    	; 0x177e <vfprintf+0x3ce>
+    13f6:	2e 01       	movw	r4, r28
+    13f8:	08 94       	sec
+    13fa:	41 1c       	adc	r4, r1
+    13fc:	51 1c       	adc	r5, r1
+    13fe:	f6 01       	movw	r30, r12
+    1400:	93 81       	ldd	r25, Z+3	; 0x03
+    1402:	f1 01       	movw	r30, r2
+    1404:	93 fd       	sbrc	r25, 3
+    1406:	85 91       	lpm	r24, Z+
+    1408:	93 ff       	sbrs	r25, 3
+    140a:	81 91       	ld	r24, Z+
+    140c:	1f 01       	movw	r2, r30
+    140e:	88 23       	and	r24, r24
+    1410:	09 f4       	brne	.+2      	; 0x1414 <vfprintf+0x64>
+    1412:	b1 c1       	rjmp	.+866    	; 0x1776 <vfprintf+0x3c6>
+    1414:	85 32       	cpi	r24, 0x25	; 37
+    1416:	39 f4       	brne	.+14     	; 0x1426 <vfprintf+0x76>
+    1418:	93 fd       	sbrc	r25, 3
+    141a:	85 91       	lpm	r24, Z+
+    141c:	93 ff       	sbrs	r25, 3
+    141e:	81 91       	ld	r24, Z+
+    1420:	1f 01       	movw	r2, r30
+    1422:	85 32       	cpi	r24, 0x25	; 37
+    1424:	21 f4       	brne	.+8      	; 0x142e <vfprintf+0x7e>
+    1426:	90 e0       	ldi	r25, 0x00	; 0
+    1428:	b6 01       	movw	r22, r12
+    142a:	db d1       	rcall	.+950    	; 0x17e2 <fputc>
+    142c:	e8 cf       	rjmp	.-48     	; 0x13fe <vfprintf+0x4e>
+    142e:	ee 24       	eor	r14, r14
+    1430:	ff 24       	eor	r15, r15
+    1432:	20 e0       	ldi	r18, 0x00	; 0
+    1434:	20 32       	cpi	r18, 0x20	; 32
+    1436:	b0 f4       	brcc	.+44     	; 0x1464 <vfprintf+0xb4>
+    1438:	8b 32       	cpi	r24, 0x2B	; 43
+    143a:	69 f0       	breq	.+26     	; 0x1456 <vfprintf+0xa6>
+    143c:	8c 32       	cpi	r24, 0x2C	; 44
+    143e:	28 f4       	brcc	.+10     	; 0x144a <vfprintf+0x9a>
+    1440:	80 32       	cpi	r24, 0x20	; 32
+    1442:	51 f0       	breq	.+20     	; 0x1458 <vfprintf+0xa8>
+    1444:	83 32       	cpi	r24, 0x23	; 35
+    1446:	71 f4       	brne	.+28     	; 0x1464 <vfprintf+0xb4>
+    1448:	0b c0       	rjmp	.+22     	; 0x1460 <vfprintf+0xb0>
+    144a:	8d 32       	cpi	r24, 0x2D	; 45
+    144c:	39 f0       	breq	.+14     	; 0x145c <vfprintf+0xac>
+    144e:	80 33       	cpi	r24, 0x30	; 48
+    1450:	49 f4       	brne	.+18     	; 0x1464 <vfprintf+0xb4>
+    1452:	21 60       	ori	r18, 0x01	; 1
+    1454:	2c c0       	rjmp	.+88     	; 0x14ae <vfprintf+0xfe>
+    1456:	22 60       	ori	r18, 0x02	; 2
+    1458:	24 60       	ori	r18, 0x04	; 4
+    145a:	29 c0       	rjmp	.+82     	; 0x14ae <vfprintf+0xfe>
+    145c:	28 60       	ori	r18, 0x08	; 8
+    145e:	27 c0       	rjmp	.+78     	; 0x14ae <vfprintf+0xfe>
+    1460:	20 61       	ori	r18, 0x10	; 16
+    1462:	25 c0       	rjmp	.+74     	; 0x14ae <vfprintf+0xfe>
+    1464:	27 fd       	sbrc	r18, 7
+    1466:	2c c0       	rjmp	.+88     	; 0x14c0 <vfprintf+0x110>
+    1468:	38 2f       	mov	r19, r24
+    146a:	30 53       	subi	r19, 0x30	; 48
+    146c:	3a 30       	cpi	r19, 0x0A	; 10
+    146e:	98 f4       	brcc	.+38     	; 0x1496 <vfprintf+0xe6>
+    1470:	26 ff       	sbrs	r18, 6
+    1472:	08 c0       	rjmp	.+16     	; 0x1484 <vfprintf+0xd4>
+    1474:	8e 2d       	mov	r24, r14
+    1476:	88 0f       	add	r24, r24
+    1478:	e8 2e       	mov	r14, r24
+    147a:	ee 0c       	add	r14, r14
+    147c:	ee 0c       	add	r14, r14
+    147e:	e8 0e       	add	r14, r24
+    1480:	e3 0e       	add	r14, r19
+    1482:	15 c0       	rjmp	.+42     	; 0x14ae <vfprintf+0xfe>
+    1484:	8f 2d       	mov	r24, r15
+    1486:	88 0f       	add	r24, r24
+    1488:	f8 2e       	mov	r15, r24
+    148a:	ff 0c       	add	r15, r15
+    148c:	ff 0c       	add	r15, r15
+    148e:	f8 0e       	add	r15, r24
+    1490:	f3 0e       	add	r15, r19
+    1492:	20 62       	ori	r18, 0x20	; 32
+    1494:	0c c0       	rjmp	.+24     	; 0x14ae <vfprintf+0xfe>
+    1496:	8e 32       	cpi	r24, 0x2E	; 46
+    1498:	21 f4       	brne	.+8      	; 0x14a2 <vfprintf+0xf2>
+    149a:	26 fd       	sbrc	r18, 6
+    149c:	6c c1       	rjmp	.+728    	; 0x1776 <vfprintf+0x3c6>
+    149e:	20 64       	ori	r18, 0x40	; 64
+    14a0:	06 c0       	rjmp	.+12     	; 0x14ae <vfprintf+0xfe>
+    14a2:	8c 36       	cpi	r24, 0x6C	; 108
+    14a4:	11 f4       	brne	.+4      	; 0x14aa <vfprintf+0xfa>
+    14a6:	20 68       	ori	r18, 0x80	; 128
+    14a8:	02 c0       	rjmp	.+4      	; 0x14ae <vfprintf+0xfe>
+    14aa:	88 36       	cpi	r24, 0x68	; 104
+    14ac:	49 f4       	brne	.+18     	; 0x14c0 <vfprintf+0x110>
+    14ae:	f1 01       	movw	r30, r2
+    14b0:	93 fd       	sbrc	r25, 3
+    14b2:	85 91       	lpm	r24, Z+
+    14b4:	93 ff       	sbrs	r25, 3
+    14b6:	81 91       	ld	r24, Z+
+    14b8:	1f 01       	movw	r2, r30
+    14ba:	88 23       	and	r24, r24
+    14bc:	09 f0       	breq	.+2      	; 0x14c0 <vfprintf+0x110>
+    14be:	ba cf       	rjmp	.-140    	; 0x1434 <vfprintf+0x84>
+    14c0:	98 2f       	mov	r25, r24
+    14c2:	95 54       	subi	r25, 0x45	; 69
+    14c4:	93 30       	cpi	r25, 0x03	; 3
+    14c6:	18 f0       	brcs	.+6      	; 0x14ce <vfprintf+0x11e>
+    14c8:	90 52       	subi	r25, 0x20	; 32
+    14ca:	93 30       	cpi	r25, 0x03	; 3
+    14cc:	28 f4       	brcc	.+10     	; 0x14d8 <vfprintf+0x128>
+    14ce:	0c 5f       	subi	r16, 0xFC	; 252
+    14d0:	1f 4f       	sbci	r17, 0xFF	; 255
+    14d2:	ff e3       	ldi	r31, 0x3F	; 63
+    14d4:	f9 83       	std	Y+1, r31	; 0x01
+    14d6:	0d c0       	rjmp	.+26     	; 0x14f2 <vfprintf+0x142>
+    14d8:	83 36       	cpi	r24, 0x63	; 99
+    14da:	31 f0       	breq	.+12     	; 0x14e8 <vfprintf+0x138>
+    14dc:	83 37       	cpi	r24, 0x73	; 115
+    14de:	71 f0       	breq	.+28     	; 0x14fc <vfprintf+0x14c>
+    14e0:	83 35       	cpi	r24, 0x53	; 83
+    14e2:	09 f0       	breq	.+2      	; 0x14e6 <vfprintf+0x136>
+    14e4:	5c c0       	rjmp	.+184    	; 0x159e <vfprintf+0x1ee>
+    14e6:	21 c0       	rjmp	.+66     	; 0x152a <vfprintf+0x17a>
+    14e8:	f8 01       	movw	r30, r16
+    14ea:	80 81       	ld	r24, Z
+    14ec:	89 83       	std	Y+1, r24	; 0x01
+    14ee:	0e 5f       	subi	r16, 0xFE	; 254
+    14f0:	1f 4f       	sbci	r17, 0xFF	; 255
+    14f2:	42 01       	movw	r8, r4
+    14f4:	71 e0       	ldi	r23, 0x01	; 1
+    14f6:	a7 2e       	mov	r10, r23
+    14f8:	b1 2c       	mov	r11, r1
+    14fa:	15 c0       	rjmp	.+42     	; 0x1526 <vfprintf+0x176>
+    14fc:	62 e0       	ldi	r22, 0x02	; 2
+    14fe:	66 2e       	mov	r6, r22
+    1500:	71 2c       	mov	r7, r1
+    1502:	60 0e       	add	r6, r16
+    1504:	71 1e       	adc	r7, r17
+    1506:	f8 01       	movw	r30, r16
+    1508:	80 80       	ld	r8, Z
+    150a:	91 80       	ldd	r9, Z+1	; 0x01
+    150c:	26 ff       	sbrs	r18, 6
+    150e:	03 c0       	rjmp	.+6      	; 0x1516 <vfprintf+0x166>
+    1510:	6e 2d       	mov	r22, r14
+    1512:	70 e0       	ldi	r23, 0x00	; 0
+    1514:	02 c0       	rjmp	.+4      	; 0x151a <vfprintf+0x16a>
+    1516:	6f ef       	ldi	r22, 0xFF	; 255
+    1518:	7f ef       	ldi	r23, 0xFF	; 255
+    151a:	c4 01       	movw	r24, r8
+    151c:	2c 87       	std	Y+12, r18	; 0x0c
+    151e:	56 d1       	rcall	.+684    	; 0x17cc <strnlen>
+    1520:	5c 01       	movw	r10, r24
+    1522:	83 01       	movw	r16, r6
+    1524:	2c 85       	ldd	r18, Y+12	; 0x0c
+    1526:	2f 77       	andi	r18, 0x7F	; 127
+    1528:	16 c0       	rjmp	.+44     	; 0x1556 <vfprintf+0x1a6>
+    152a:	52 e0       	ldi	r21, 0x02	; 2
+    152c:	65 2e       	mov	r6, r21
+    152e:	71 2c       	mov	r7, r1
+    1530:	60 0e       	add	r6, r16
+    1532:	71 1e       	adc	r7, r17
+    1534:	f8 01       	movw	r30, r16
+    1536:	80 80       	ld	r8, Z
+    1538:	91 80       	ldd	r9, Z+1	; 0x01
+    153a:	26 ff       	sbrs	r18, 6
+    153c:	03 c0       	rjmp	.+6      	; 0x1544 <vfprintf+0x194>
+    153e:	6e 2d       	mov	r22, r14
+    1540:	70 e0       	ldi	r23, 0x00	; 0
+    1542:	02 c0       	rjmp	.+4      	; 0x1548 <vfprintf+0x198>
+    1544:	6f ef       	ldi	r22, 0xFF	; 255
+    1546:	7f ef       	ldi	r23, 0xFF	; 255
+    1548:	c4 01       	movw	r24, r8
+    154a:	2c 87       	std	Y+12, r18	; 0x0c
+    154c:	34 d1       	rcall	.+616    	; 0x17b6 <strnlen_P>
+    154e:	5c 01       	movw	r10, r24
+    1550:	2c 85       	ldd	r18, Y+12	; 0x0c
+    1552:	20 68       	ori	r18, 0x80	; 128
+    1554:	83 01       	movw	r16, r6
+    1556:	23 fd       	sbrc	r18, 3
+    1558:	1e c0       	rjmp	.+60     	; 0x1596 <vfprintf+0x1e6>
+    155a:	07 c0       	rjmp	.+14     	; 0x156a <vfprintf+0x1ba>
+    155c:	80 e2       	ldi	r24, 0x20	; 32
+    155e:	90 e0       	ldi	r25, 0x00	; 0
+    1560:	b6 01       	movw	r22, r12
+    1562:	2c 87       	std	Y+12, r18	; 0x0c
+    1564:	3e d1       	rcall	.+636    	; 0x17e2 <fputc>
+    1566:	fa 94       	dec	r15
+    1568:	2c 85       	ldd	r18, Y+12	; 0x0c
+    156a:	8f 2d       	mov	r24, r15
+    156c:	90 e0       	ldi	r25, 0x00	; 0
+    156e:	a8 16       	cp	r10, r24
+    1570:	b9 06       	cpc	r11, r25
+    1572:	a0 f3       	brcs	.-24     	; 0x155c <vfprintf+0x1ac>
+    1574:	10 c0       	rjmp	.+32     	; 0x1596 <vfprintf+0x1e6>
+    1576:	f4 01       	movw	r30, r8
+    1578:	27 fd       	sbrc	r18, 7
+    157a:	85 91       	lpm	r24, Z+
+    157c:	27 ff       	sbrs	r18, 7
+    157e:	81 91       	ld	r24, Z+
+    1580:	4f 01       	movw	r8, r30
+    1582:	90 e0       	ldi	r25, 0x00	; 0
+    1584:	b6 01       	movw	r22, r12
+    1586:	2c 87       	std	Y+12, r18	; 0x0c
+    1588:	2c d1       	rcall	.+600    	; 0x17e2 <fputc>
+    158a:	2c 85       	ldd	r18, Y+12	; 0x0c
+    158c:	f1 10       	cpse	r15, r1
+    158e:	fa 94       	dec	r15
+    1590:	08 94       	sec
+    1592:	a1 08       	sbc	r10, r1
+    1594:	b1 08       	sbc	r11, r1
+    1596:	a1 14       	cp	r10, r1
+    1598:	b1 04       	cpc	r11, r1
+    159a:	69 f7       	brne	.-38     	; 0x1576 <vfprintf+0x1c6>
+    159c:	e9 c0       	rjmp	.+466    	; 0x1770 <vfprintf+0x3c0>
+    159e:	84 36       	cpi	r24, 0x64	; 100
+    15a0:	11 f0       	breq	.+4      	; 0x15a6 <vfprintf+0x1f6>
+    15a2:	89 36       	cpi	r24, 0x69	; 105
+    15a4:	41 f5       	brne	.+80     	; 0x15f6 <vfprintf+0x246>
+    15a6:	27 ff       	sbrs	r18, 7
+    15a8:	08 c0       	rjmp	.+16     	; 0x15ba <vfprintf+0x20a>
+    15aa:	f8 01       	movw	r30, r16
+    15ac:	60 81       	ld	r22, Z
+    15ae:	71 81       	ldd	r23, Z+1	; 0x01
+    15b0:	82 81       	ldd	r24, Z+2	; 0x02
+    15b2:	93 81       	ldd	r25, Z+3	; 0x03
+    15b4:	0c 5f       	subi	r16, 0xFC	; 252
+    15b6:	1f 4f       	sbci	r17, 0xFF	; 255
+    15b8:	09 c0       	rjmp	.+18     	; 0x15cc <vfprintf+0x21c>
+    15ba:	f8 01       	movw	r30, r16
+    15bc:	60 81       	ld	r22, Z
+    15be:	71 81       	ldd	r23, Z+1	; 0x01
+    15c0:	88 27       	eor	r24, r24
+    15c2:	77 fd       	sbrc	r23, 7
+    15c4:	80 95       	com	r24
+    15c6:	98 2f       	mov	r25, r24
+    15c8:	0e 5f       	subi	r16, 0xFE	; 254
+    15ca:	1f 4f       	sbci	r17, 0xFF	; 255
+    15cc:	4f e6       	ldi	r20, 0x6F	; 111
+    15ce:	b4 2e       	mov	r11, r20
+    15d0:	b2 22       	and	r11, r18
+    15d2:	97 ff       	sbrs	r25, 7
+    15d4:	09 c0       	rjmp	.+18     	; 0x15e8 <vfprintf+0x238>
+    15d6:	90 95       	com	r25
+    15d8:	80 95       	com	r24
+    15da:	70 95       	com	r23
+    15dc:	61 95       	neg	r22
+    15de:	7f 4f       	sbci	r23, 0xFF	; 255
+    15e0:	8f 4f       	sbci	r24, 0xFF	; 255
+    15e2:	9f 4f       	sbci	r25, 0xFF	; 255
+    15e4:	f0 e8       	ldi	r31, 0x80	; 128
+    15e6:	bf 2a       	or	r11, r31
+    15e8:	a2 01       	movw	r20, r4
+    15ea:	2a e0       	ldi	r18, 0x0A	; 10
+    15ec:	30 e0       	ldi	r19, 0x00	; 0
+    15ee:	25 d1       	rcall	.+586    	; 0x183a <__ultoa_invert>
+    15f0:	78 2e       	mov	r7, r24
+    15f2:	74 18       	sub	r7, r4
+    15f4:	44 c0       	rjmp	.+136    	; 0x167e <vfprintf+0x2ce>
+    15f6:	85 37       	cpi	r24, 0x75	; 117
+    15f8:	31 f4       	brne	.+12     	; 0x1606 <vfprintf+0x256>
+    15fa:	3f ee       	ldi	r19, 0xEF	; 239
+    15fc:	b3 2e       	mov	r11, r19
+    15fe:	b2 22       	and	r11, r18
+    1600:	2a e0       	ldi	r18, 0x0A	; 10
+    1602:	30 e0       	ldi	r19, 0x00	; 0
+    1604:	25 c0       	rjmp	.+74     	; 0x1650 <vfprintf+0x2a0>
+    1606:	99 ef       	ldi	r25, 0xF9	; 249
+    1608:	b9 2e       	mov	r11, r25
+    160a:	b2 22       	and	r11, r18
+    160c:	8f 36       	cpi	r24, 0x6F	; 111
+    160e:	c1 f0       	breq	.+48     	; 0x1640 <vfprintf+0x290>
+    1610:	80 37       	cpi	r24, 0x70	; 112
+    1612:	20 f4       	brcc	.+8      	; 0x161c <vfprintf+0x26c>
+    1614:	88 35       	cpi	r24, 0x58	; 88
+    1616:	09 f0       	breq	.+2      	; 0x161a <vfprintf+0x26a>
+    1618:	ae c0       	rjmp	.+348    	; 0x1776 <vfprintf+0x3c6>
+    161a:	0d c0       	rjmp	.+26     	; 0x1636 <vfprintf+0x286>
+    161c:	80 37       	cpi	r24, 0x70	; 112
+    161e:	21 f0       	breq	.+8      	; 0x1628 <vfprintf+0x278>
+    1620:	88 37       	cpi	r24, 0x78	; 120
+    1622:	09 f0       	breq	.+2      	; 0x1626 <vfprintf+0x276>
+    1624:	a8 c0       	rjmp	.+336    	; 0x1776 <vfprintf+0x3c6>
+    1626:	02 c0       	rjmp	.+4      	; 0x162c <vfprintf+0x27c>
+    1628:	20 e1       	ldi	r18, 0x10	; 16
+    162a:	b2 2a       	or	r11, r18
+    162c:	b4 fe       	sbrs	r11, 4
+    162e:	0b c0       	rjmp	.+22     	; 0x1646 <vfprintf+0x296>
+    1630:	84 e0       	ldi	r24, 0x04	; 4
+    1632:	b8 2a       	or	r11, r24
+    1634:	08 c0       	rjmp	.+16     	; 0x1646 <vfprintf+0x296>
+    1636:	b4 fe       	sbrs	r11, 4
+    1638:	09 c0       	rjmp	.+18     	; 0x164c <vfprintf+0x29c>
+    163a:	e6 e0       	ldi	r30, 0x06	; 6
+    163c:	be 2a       	or	r11, r30
+    163e:	06 c0       	rjmp	.+12     	; 0x164c <vfprintf+0x29c>
+    1640:	28 e0       	ldi	r18, 0x08	; 8
+    1642:	30 e0       	ldi	r19, 0x00	; 0
+    1644:	05 c0       	rjmp	.+10     	; 0x1650 <vfprintf+0x2a0>
+    1646:	20 e1       	ldi	r18, 0x10	; 16
+    1648:	30 e0       	ldi	r19, 0x00	; 0
+    164a:	02 c0       	rjmp	.+4      	; 0x1650 <vfprintf+0x2a0>
+    164c:	20 e1       	ldi	r18, 0x10	; 16
+    164e:	32 e0       	ldi	r19, 0x02	; 2
+    1650:	b7 fe       	sbrs	r11, 7
+    1652:	08 c0       	rjmp	.+16     	; 0x1664 <vfprintf+0x2b4>
+    1654:	f8 01       	movw	r30, r16
+    1656:	60 81       	ld	r22, Z
+    1658:	71 81       	ldd	r23, Z+1	; 0x01
+    165a:	82 81       	ldd	r24, Z+2	; 0x02
+    165c:	93 81       	ldd	r25, Z+3	; 0x03
+    165e:	0c 5f       	subi	r16, 0xFC	; 252
+    1660:	1f 4f       	sbci	r17, 0xFF	; 255
+    1662:	07 c0       	rjmp	.+14     	; 0x1672 <vfprintf+0x2c2>
+    1664:	f8 01       	movw	r30, r16
+    1666:	60 81       	ld	r22, Z
+    1668:	71 81       	ldd	r23, Z+1	; 0x01
+    166a:	80 e0       	ldi	r24, 0x00	; 0
+    166c:	90 e0       	ldi	r25, 0x00	; 0
+    166e:	0e 5f       	subi	r16, 0xFE	; 254
+    1670:	1f 4f       	sbci	r17, 0xFF	; 255
+    1672:	a2 01       	movw	r20, r4
+    1674:	e2 d0       	rcall	.+452    	; 0x183a <__ultoa_invert>
+    1676:	78 2e       	mov	r7, r24
+    1678:	74 18       	sub	r7, r4
+    167a:	ff e7       	ldi	r31, 0x7F	; 127
+    167c:	bf 22       	and	r11, r31
+    167e:	b6 fe       	sbrs	r11, 6
+    1680:	0b c0       	rjmp	.+22     	; 0x1698 <vfprintf+0x2e8>
+    1682:	2e ef       	ldi	r18, 0xFE	; 254
+    1684:	b2 22       	and	r11, r18
+    1686:	7e 14       	cp	r7, r14
+    1688:	38 f4       	brcc	.+14     	; 0x1698 <vfprintf+0x2e8>
+    168a:	b4 fe       	sbrs	r11, 4
+    168c:	07 c0       	rjmp	.+14     	; 0x169c <vfprintf+0x2ec>
+    168e:	b2 fc       	sbrc	r11, 2
+    1690:	05 c0       	rjmp	.+10     	; 0x169c <vfprintf+0x2ec>
+    1692:	8f ee       	ldi	r24, 0xEF	; 239
+    1694:	b8 22       	and	r11, r24
+    1696:	02 c0       	rjmp	.+4      	; 0x169c <vfprintf+0x2ec>
+    1698:	a7 2c       	mov	r10, r7
+    169a:	01 c0       	rjmp	.+2      	; 0x169e <vfprintf+0x2ee>
+    169c:	ae 2c       	mov	r10, r14
+    169e:	8b 2d       	mov	r24, r11
+    16a0:	90 e0       	ldi	r25, 0x00	; 0
+    16a2:	b4 fe       	sbrs	r11, 4
+    16a4:	0d c0       	rjmp	.+26     	; 0x16c0 <vfprintf+0x310>
+    16a6:	fe 01       	movw	r30, r28
+    16a8:	e7 0d       	add	r30, r7
+    16aa:	f1 1d       	adc	r31, r1
+    16ac:	20 81       	ld	r18, Z
+    16ae:	20 33       	cpi	r18, 0x30	; 48
+    16b0:	19 f4       	brne	.+6      	; 0x16b8 <vfprintf+0x308>
+    16b2:	e9 ee       	ldi	r30, 0xE9	; 233
+    16b4:	be 22       	and	r11, r30
+    16b6:	09 c0       	rjmp	.+18     	; 0x16ca <vfprintf+0x31a>
+    16b8:	a3 94       	inc	r10
+    16ba:	b2 fe       	sbrs	r11, 2
+    16bc:	06 c0       	rjmp	.+12     	; 0x16ca <vfprintf+0x31a>
+    16be:	04 c0       	rjmp	.+8      	; 0x16c8 <vfprintf+0x318>
+    16c0:	86 78       	andi	r24, 0x86	; 134
+    16c2:	90 70       	andi	r25, 0x00	; 0
+    16c4:	00 97       	sbiw	r24, 0x00	; 0
+    16c6:	09 f0       	breq	.+2      	; 0x16ca <vfprintf+0x31a>
+    16c8:	a3 94       	inc	r10
+    16ca:	8b 2c       	mov	r8, r11
+    16cc:	99 24       	eor	r9, r9
+    16ce:	b3 fc       	sbrc	r11, 3
+    16d0:	13 c0       	rjmp	.+38     	; 0x16f8 <vfprintf+0x348>
+    16d2:	b0 fe       	sbrs	r11, 0
+    16d4:	0e c0       	rjmp	.+28     	; 0x16f2 <vfprintf+0x342>
+    16d6:	af 14       	cp	r10, r15
+    16d8:	28 f4       	brcc	.+10     	; 0x16e4 <vfprintf+0x334>
+    16da:	e7 2c       	mov	r14, r7
+    16dc:	ef 0c       	add	r14, r15
+    16de:	ea 18       	sub	r14, r10
+    16e0:	af 2c       	mov	r10, r15
+    16e2:	07 c0       	rjmp	.+14     	; 0x16f2 <vfprintf+0x342>
+    16e4:	e7 2c       	mov	r14, r7
+    16e6:	05 c0       	rjmp	.+10     	; 0x16f2 <vfprintf+0x342>
+    16e8:	80 e2       	ldi	r24, 0x20	; 32
+    16ea:	90 e0       	ldi	r25, 0x00	; 0
+    16ec:	b6 01       	movw	r22, r12
+    16ee:	79 d0       	rcall	.+242    	; 0x17e2 <fputc>
+    16f0:	a3 94       	inc	r10
+    16f2:	af 14       	cp	r10, r15
+    16f4:	c8 f3       	brcs	.-14     	; 0x16e8 <vfprintf+0x338>
+    16f6:	04 c0       	rjmp	.+8      	; 0x1700 <vfprintf+0x350>
+    16f8:	af 14       	cp	r10, r15
+    16fa:	10 f4       	brcc	.+4      	; 0x1700 <vfprintf+0x350>
+    16fc:	fa 18       	sub	r15, r10
+    16fe:	01 c0       	rjmp	.+2      	; 0x1702 <vfprintf+0x352>
+    1700:	ff 24       	eor	r15, r15
+    1702:	84 fe       	sbrs	r8, 4
+    1704:	0e c0       	rjmp	.+28     	; 0x1722 <vfprintf+0x372>
+    1706:	80 e3       	ldi	r24, 0x30	; 48
+    1708:	90 e0       	ldi	r25, 0x00	; 0
+    170a:	b6 01       	movw	r22, r12
+    170c:	6a d0       	rcall	.+212    	; 0x17e2 <fputc>
+    170e:	82 fe       	sbrs	r8, 2
+    1710:	1d c0       	rjmp	.+58     	; 0x174c <vfprintf+0x39c>
+    1712:	81 fe       	sbrs	r8, 1
+    1714:	03 c0       	rjmp	.+6      	; 0x171c <vfprintf+0x36c>
+    1716:	88 e5       	ldi	r24, 0x58	; 88
+    1718:	90 e0       	ldi	r25, 0x00	; 0
+    171a:	10 c0       	rjmp	.+32     	; 0x173c <vfprintf+0x38c>
+    171c:	88 e7       	ldi	r24, 0x78	; 120
+    171e:	90 e0       	ldi	r25, 0x00	; 0
+    1720:	0d c0       	rjmp	.+26     	; 0x173c <vfprintf+0x38c>
+    1722:	c4 01       	movw	r24, r8
+    1724:	86 78       	andi	r24, 0x86	; 134
+    1726:	90 70       	andi	r25, 0x00	; 0
+    1728:	00 97       	sbiw	r24, 0x00	; 0
+    172a:	81 f0       	breq	.+32     	; 0x174c <vfprintf+0x39c>
+    172c:	81 fc       	sbrc	r8, 1
+    172e:	02 c0       	rjmp	.+4      	; 0x1734 <vfprintf+0x384>
+    1730:	80 e2       	ldi	r24, 0x20	; 32
+    1732:	01 c0       	rjmp	.+2      	; 0x1736 <vfprintf+0x386>
+    1734:	8b e2       	ldi	r24, 0x2B	; 43
+    1736:	b7 fc       	sbrc	r11, 7
+    1738:	8d e2       	ldi	r24, 0x2D	; 45
+    173a:	90 e0       	ldi	r25, 0x00	; 0
+    173c:	b6 01       	movw	r22, r12
+    173e:	51 d0       	rcall	.+162    	; 0x17e2 <fputc>
+    1740:	05 c0       	rjmp	.+10     	; 0x174c <vfprintf+0x39c>
+    1742:	80 e3       	ldi	r24, 0x30	; 48
+    1744:	90 e0       	ldi	r25, 0x00	; 0
+    1746:	b6 01       	movw	r22, r12
+    1748:	4c d0       	rcall	.+152    	; 0x17e2 <fputc>
+    174a:	ea 94       	dec	r14
+    174c:	7e 14       	cp	r7, r14
+    174e:	c8 f3       	brcs	.-14     	; 0x1742 <vfprintf+0x392>
+    1750:	7a 94       	dec	r7
+    1752:	f2 01       	movw	r30, r4
+    1754:	e7 0d       	add	r30, r7
+    1756:	f1 1d       	adc	r31, r1
+    1758:	80 81       	ld	r24, Z
+    175a:	90 e0       	ldi	r25, 0x00	; 0
+    175c:	b6 01       	movw	r22, r12
+    175e:	41 d0       	rcall	.+130    	; 0x17e2 <fputc>
+    1760:	77 20       	and	r7, r7
+    1762:	b1 f7       	brne	.-20     	; 0x1750 <vfprintf+0x3a0>
+    1764:	05 c0       	rjmp	.+10     	; 0x1770 <vfprintf+0x3c0>
+    1766:	80 e2       	ldi	r24, 0x20	; 32
+    1768:	90 e0       	ldi	r25, 0x00	; 0
+    176a:	b6 01       	movw	r22, r12
+    176c:	3a d0       	rcall	.+116    	; 0x17e2 <fputc>
+    176e:	fa 94       	dec	r15
+    1770:	ff 20       	and	r15, r15
+    1772:	c9 f7       	brne	.-14     	; 0x1766 <vfprintf+0x3b6>
+    1774:	44 ce       	rjmp	.-888    	; 0x13fe <vfprintf+0x4e>
+    1776:	f6 01       	movw	r30, r12
+    1778:	26 81       	ldd	r18, Z+6	; 0x06
+    177a:	37 81       	ldd	r19, Z+7	; 0x07
+    177c:	02 c0       	rjmp	.+4      	; 0x1782 <vfprintf+0x3d2>
+    177e:	2f ef       	ldi	r18, 0xFF	; 255
+    1780:	3f ef       	ldi	r19, 0xFF	; 255
+    1782:	c9 01       	movw	r24, r18
+    1784:	2c 96       	adiw	r28, 0x0c	; 12
+    1786:	0f b6       	in	r0, 0x3f	; 63
+    1788:	f8 94       	cli
+    178a:	de bf       	out	0x3e, r29	; 62
+    178c:	0f be       	out	0x3f, r0	; 63
+    178e:	cd bf       	out	0x3d, r28	; 61
+    1790:	cf 91       	pop	r28
+    1792:	df 91       	pop	r29
+    1794:	1f 91       	pop	r17
+    1796:	0f 91       	pop	r16
+    1798:	ff 90       	pop	r15
+    179a:	ef 90       	pop	r14
+    179c:	df 90       	pop	r13
+    179e:	cf 90       	pop	r12
+    17a0:	bf 90       	pop	r11
+    17a2:	af 90       	pop	r10
+    17a4:	9f 90       	pop	r9
+    17a6:	8f 90       	pop	r8
+    17a8:	7f 90       	pop	r7
+    17aa:	6f 90       	pop	r6
+    17ac:	5f 90       	pop	r5
+    17ae:	4f 90       	pop	r4
+    17b0:	3f 90       	pop	r3
+    17b2:	2f 90       	pop	r2
+    17b4:	08 95       	ret
+
+000017b6 <strnlen_P>:
+    17b6:	fc 01       	movw	r30, r24
+    17b8:	05 90       	lpm	r0, Z+
+    17ba:	61 50       	subi	r22, 0x01	; 1
+    17bc:	70 40       	sbci	r23, 0x00	; 0
+    17be:	01 10       	cpse	r0, r1
+    17c0:	d8 f7       	brcc	.-10     	; 0x17b8 <strnlen_P+0x2>
+    17c2:	80 95       	com	r24
+    17c4:	90 95       	com	r25
+    17c6:	8e 0f       	add	r24, r30
+    17c8:	9f 1f       	adc	r25, r31
+    17ca:	08 95       	ret
+
+000017cc <strnlen>:
+    17cc:	fc 01       	movw	r30, r24
+    17ce:	61 50       	subi	r22, 0x01	; 1
+    17d0:	70 40       	sbci	r23, 0x00	; 0
+    17d2:	01 90       	ld	r0, Z+
+    17d4:	01 10       	cpse	r0, r1
+    17d6:	d8 f7       	brcc	.-10     	; 0x17ce <strnlen+0x2>
+    17d8:	80 95       	com	r24
+    17da:	90 95       	com	r25
+    17dc:	8e 0f       	add	r24, r30
+    17de:	9f 1f       	adc	r25, r31
+    17e0:	08 95       	ret
+
+000017e2 <fputc>:
+    17e2:	0f 93       	push	r16
+    17e4:	1f 93       	push	r17
+    17e6:	cf 93       	push	r28
+    17e8:	df 93       	push	r29
+    17ea:	8c 01       	movw	r16, r24
+    17ec:	eb 01       	movw	r28, r22
+    17ee:	8b 81       	ldd	r24, Y+3	; 0x03
+    17f0:	81 ff       	sbrs	r24, 1
+    17f2:	1b c0       	rjmp	.+54     	; 0x182a <fputc+0x48>
+    17f4:	82 ff       	sbrs	r24, 2
+    17f6:	0d c0       	rjmp	.+26     	; 0x1812 <fputc+0x30>
+    17f8:	2e 81       	ldd	r18, Y+6	; 0x06
+    17fa:	3f 81       	ldd	r19, Y+7	; 0x07
+    17fc:	8c 81       	ldd	r24, Y+4	; 0x04
+    17fe:	9d 81       	ldd	r25, Y+5	; 0x05
+    1800:	28 17       	cp	r18, r24
+    1802:	39 07       	cpc	r19, r25
+    1804:	64 f4       	brge	.+24     	; 0x181e <fputc+0x3c>
+    1806:	e8 81       	ld	r30, Y
+    1808:	f9 81       	ldd	r31, Y+1	; 0x01
+    180a:	01 93       	st	Z+, r16
+    180c:	f9 83       	std	Y+1, r31	; 0x01
+    180e:	e8 83       	st	Y, r30
+    1810:	06 c0       	rjmp	.+12     	; 0x181e <fputc+0x3c>
+    1812:	e8 85       	ldd	r30, Y+8	; 0x08
+    1814:	f9 85       	ldd	r31, Y+9	; 0x09
+    1816:	80 2f       	mov	r24, r16
+    1818:	09 95       	icall
+    181a:	00 97       	sbiw	r24, 0x00	; 0
+    181c:	31 f4       	brne	.+12     	; 0x182a <fputc+0x48>
+    181e:	8e 81       	ldd	r24, Y+6	; 0x06
+    1820:	9f 81       	ldd	r25, Y+7	; 0x07
+    1822:	01 96       	adiw	r24, 0x01	; 1
+    1824:	9f 83       	std	Y+7, r25	; 0x07
+    1826:	8e 83       	std	Y+6, r24	; 0x06
+    1828:	02 c0       	rjmp	.+4      	; 0x182e <fputc+0x4c>
+    182a:	0f ef       	ldi	r16, 0xFF	; 255
+    182c:	1f ef       	ldi	r17, 0xFF	; 255
+    182e:	c8 01       	movw	r24, r16
+    1830:	df 91       	pop	r29
+    1832:	cf 91       	pop	r28
+    1834:	1f 91       	pop	r17
+    1836:	0f 91       	pop	r16
+    1838:	08 95       	ret
+
+0000183a <__ultoa_invert>:
+    183a:	fa 01       	movw	r30, r20
+    183c:	aa 27       	eor	r26, r26
+    183e:	28 30       	cpi	r18, 0x08	; 8
+    1840:	51 f1       	breq	.+84     	; 0x1896 <__ultoa_invert+0x5c>
+    1842:	20 31       	cpi	r18, 0x10	; 16
+    1844:	81 f1       	breq	.+96     	; 0x18a6 <__ultoa_invert+0x6c>
+    1846:	e8 94       	clt
+    1848:	6f 93       	push	r22
+    184a:	6e 7f       	andi	r22, 0xFE	; 254
+    184c:	6e 5f       	subi	r22, 0xFE	; 254
+    184e:	7f 4f       	sbci	r23, 0xFF	; 255
+    1850:	8f 4f       	sbci	r24, 0xFF	; 255
+    1852:	9f 4f       	sbci	r25, 0xFF	; 255
+    1854:	af 4f       	sbci	r26, 0xFF	; 255
+    1856:	b1 e0       	ldi	r27, 0x01	; 1
+    1858:	3e d0       	rcall	.+124    	; 0x18d6 <__ultoa_invert+0x9c>
+    185a:	b4 e0       	ldi	r27, 0x04	; 4
+    185c:	3c d0       	rcall	.+120    	; 0x18d6 <__ultoa_invert+0x9c>
+    185e:	67 0f       	add	r22, r23
+    1860:	78 1f       	adc	r23, r24
+    1862:	89 1f       	adc	r24, r25
+    1864:	9a 1f       	adc	r25, r26
+    1866:	a1 1d       	adc	r26, r1
+    1868:	68 0f       	add	r22, r24
+    186a:	79 1f       	adc	r23, r25
+    186c:	8a 1f       	adc	r24, r26
+    186e:	91 1d       	adc	r25, r1
+    1870:	a1 1d       	adc	r26, r1
+    1872:	6a 0f       	add	r22, r26
+    1874:	71 1d       	adc	r23, r1
+    1876:	81 1d       	adc	r24, r1
+    1878:	91 1d       	adc	r25, r1
+    187a:	a1 1d       	adc	r26, r1
+    187c:	20 d0       	rcall	.+64     	; 0x18be <__ultoa_invert+0x84>
+    187e:	09 f4       	brne	.+2      	; 0x1882 <__ultoa_invert+0x48>
+    1880:	68 94       	set
+    1882:	3f 91       	pop	r19
+    1884:	2a e0       	ldi	r18, 0x0A	; 10
+    1886:	26 9f       	mul	r18, r22
+    1888:	11 24       	eor	r1, r1
+    188a:	30 19       	sub	r19, r0
+    188c:	30 5d       	subi	r19, 0xD0	; 208
+    188e:	31 93       	st	Z+, r19
+    1890:	de f6       	brtc	.-74     	; 0x1848 <__ultoa_invert+0xe>
+    1892:	cf 01       	movw	r24, r30
+    1894:	08 95       	ret
+    1896:	46 2f       	mov	r20, r22
+    1898:	47 70       	andi	r20, 0x07	; 7
+    189a:	40 5d       	subi	r20, 0xD0	; 208
+    189c:	41 93       	st	Z+, r20
+    189e:	b3 e0       	ldi	r27, 0x03	; 3
+    18a0:	0f d0       	rcall	.+30     	; 0x18c0 <__ultoa_invert+0x86>
+    18a2:	c9 f7       	brne	.-14     	; 0x1896 <__ultoa_invert+0x5c>
+    18a4:	f6 cf       	rjmp	.-20     	; 0x1892 <__ultoa_invert+0x58>
+    18a6:	46 2f       	mov	r20, r22
+    18a8:	4f 70       	andi	r20, 0x0F	; 15
+    18aa:	40 5d       	subi	r20, 0xD0	; 208
+    18ac:	4a 33       	cpi	r20, 0x3A	; 58
+    18ae:	18 f0       	brcs	.+6      	; 0x18b6 <__ultoa_invert+0x7c>
+    18b0:	49 5d       	subi	r20, 0xD9	; 217
+    18b2:	31 fd       	sbrc	r19, 1
+    18b4:	40 52       	subi	r20, 0x20	; 32
+    18b6:	41 93       	st	Z+, r20
+    18b8:	02 d0       	rcall	.+4      	; 0x18be <__ultoa_invert+0x84>
+    18ba:	a9 f7       	brne	.-22     	; 0x18a6 <__ultoa_invert+0x6c>
+    18bc:	ea cf       	rjmp	.-44     	; 0x1892 <__ultoa_invert+0x58>
+    18be:	b4 e0       	ldi	r27, 0x04	; 4
+    18c0:	a6 95       	lsr	r26
+    18c2:	97 95       	ror	r25
+    18c4:	87 95       	ror	r24
+    18c6:	77 95       	ror	r23
+    18c8:	67 95       	ror	r22
+    18ca:	ba 95       	dec	r27
+    18cc:	c9 f7       	brne	.-14     	; 0x18c0 <__ultoa_invert+0x86>
+    18ce:	00 97       	sbiw	r24, 0x00	; 0
+    18d0:	61 05       	cpc	r22, r1
+    18d2:	71 05       	cpc	r23, r1
+    18d4:	08 95       	ret
+    18d6:	9b 01       	movw	r18, r22
+    18d8:	ac 01       	movw	r20, r24
+    18da:	0a 2e       	mov	r0, r26
+    18dc:	06 94       	lsr	r0
+    18de:	57 95       	ror	r21
+    18e0:	47 95       	ror	r20
+    18e2:	37 95       	ror	r19
+    18e4:	27 95       	ror	r18
+    18e6:	ba 95       	dec	r27
+    18e8:	c9 f7       	brne	.-14     	; 0x18dc <__ultoa_invert+0xa2>
+    18ea:	62 0f       	add	r22, r18
+    18ec:	73 1f       	adc	r23, r19
+    18ee:	84 1f       	adc	r24, r20
+    18f0:	95 1f       	adc	r25, r21
+    18f2:	a0 1d       	adc	r26, r0
+    18f4:	08 95       	ret
+
+000018f6 <_exit>:
+    18f6:	f8 94       	cli
+
+000018f8 <__stop_program>:
+    18f8:	ff cf       	rjmp	.-2      	; 0x18f8 <__stop_program>
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lst b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lst
new file mode 100644
index 000000000..c99fb0e1d
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.lst
@@ -0,0 +1,853 @@
+   1               		.file	"AudioInputHost.c"
+   2               	__SREG__ = 0x3f
+   3               	__SP_H__ = 0x3e
+   4               	__SP_L__ = 0x3d
+   5               	__CCP__ = 0x34
+   6               	__tmp_reg__ = 0
+   7               	__zero_reg__ = 1
+  15               	.Ltext0:
+  16               		.section	.text.LEDs_SetAllLEDs,"ax",@progbits
+  18               	LEDs_SetAllLEDs:
+  19               	.LFB127:
+  20               	.LSM0:
+  21               	.LVL0:
+  22               	/* prologue: function */
+  23               	/* frame size = 0 */
+  24               	/* stack size = 0 */
+  25               	.L__stack_usage = 0
+  26               	.LSM1:
+  27 0000 9BB1      		in r25,43-32
+  28 0002 9F70      		andi r25,lo8(15)
+  29 0004 982B      		or r25,r24
+  30 0006 9BB9      		out 43-32,r25
+  31               	/* epilogue start */
+  32               	.LSM2:
+  33 0008 0895      		ret
+  34               	.LFE127:
+  36               		.section	.text.SetupHardware,"ax",@progbits
+  37               	.global	SetupHardware
+  39               	SetupHardware:
+  40               	.LFB132:
+  41               	.LSM3:
+  42               	/* prologue: function */
+  43               	/* frame size = 0 */
+  44               	/* stack size = 0 */
+  45               	.L__stack_usage = 0
+  46               	.LSM4:
+  47 0000 84B7      		in r24,84-32
+  48 0002 877F      		andi r24,lo8(-9)
+  49 0004 84BF      		out 84-32,r24
+  50               	.LSM5:
+  51 0006 28E1      		ldi r18,lo8(24)
+  52               	/* #APP */
+  53               	 ;  63 "AudioInputHost.c" 1
+  54 0008 0FB6      		in __tmp_reg__, __SREG__
+  55 000a F894      		cli
+  56 000c 2093 6000 		sts 96, r18
+  57 0010 1092 6000 		sts 96, __zero_reg__
+  58 0014 0FBE      		out __SREG__,__tmp_reg__
+  59               		
+  60               	 ;  0 "" 2
+  61               	.LVL1:
+  62               	/* #NOAPP */
+  63               	.LBB39:
+  64               	.LBB40:
+  65               	.LSM6:
+  66 0016 90E0      		ldi r25,lo8(0)
+  67 0018 80E8      		ldi r24,lo8(-128)
+  68               	/* #APP */
+  69               	 ;  1614 "c:\program files (x86)\atmel\avr studio 5.0\extensions\application\avr toolchain\bin\../l
+  70 001a 0FB6      		in __tmp_reg__,__SREG__
+  71 001c F894      		cli
+  72 001e 8093 6100 		sts 97, r24
+  73 0022 9093 6100 		sts 97, r25
+  74 0026 0FBE      		out __SREG__, __tmp_reg__
+  75               	 ;  0 "" 2
+  76               	.LVL2:
+  77               	/* #NOAPP */
+  78               	.LBE40:
+  79               	.LBE39:
+  80               	.LBB41:
+  81               	.LBB42:
+  82               	.LSM7:
+  83 0028 83E3      		ldi r24,lo8(51)
+  84 002a 90E0      		ldi r25,hi8(51)
+  85 002c 9093 CD00 		sts 204+1,r25
+  86 0030 8093 CC00 		sts 204,r24
+  87               	.LSM8:
+  88 0034 86E0      		ldi r24,lo8(6)
+  89 0036 8093 CA00 		sts 202,r24
+  90               	.LSM9:
+  91 003a 1092 C800 		sts 200,__zero_reg__
+  92               	.LSM10:
+  93 003e 2093 C900 		sts 201,r18
+  94               	.LSM11:
+  95 0042 539A      		sbi 42-32,3
+  96               	.LSM12:
+  97 0044 5A9A      		sbi 43-32,2
+  98               	.LBE42:
+  99               	.LBE41:
+ 100               	.LBB43:
+ 101               	.LBB44:
+ 102               	.LSM13:
+ 103 0046 8AB1      		in r24,42-32
+ 104 0048 806F      		ori r24,lo8(-16)
+ 105 004a 8AB9      		out 42-32,r24
+ 106               	.LSM14:
+ 107 004c 8BB1      		in r24,43-32
+ 108 004e 8F70      		andi r24,lo8(15)
+ 109 0050 8BB9      		out 43-32,r24
+ 110               	.LBE44:
+ 111               	.LBE43:
+ 112               	.LSM15:
+ 113 0052 0E94 0000 		call USB_Init
+ 114               	.LVL3:
+ 115               	.LBB45:
+ 116               	.LBB46:
+ 117               	.LSM16:
+ 118 0056 E0E0      		ldi r30,lo8(USARTSerialStream)
+ 119 0058 F0E0      		ldi r31,hi8(USARTSerialStream)
+ 120 005a F093 0000 		sts __iob+1,r31
+ 121 005e E093 0000 		sts __iob,r30
+ 122               	.LSM17:
+ 123 0062 F093 0000 		sts __iob+2+1,r31
+ 124 0066 E093 0000 		sts __iob+2,r30
+ 125               	.LSM18:
+ 126 006a 8EE0      		ldi r24,lo8(14)
+ 127 006c DF01      		movw r26,r30
+ 128 006e 1D92      		st X+,__zero_reg__
+ 129 0070 8A95      	        dec r24
+ 130 0072 01F4      		brne .-6
+ 131 0074 83E0      		ldi r24,lo8(3)
+ 132 0076 8093 0000 		sts USARTSerialStream+3,r24
+ 133 007a 80E0      		ldi r24,lo8(gs(Serial_putchar))
+ 134 007c 90E0      		ldi r25,hi8(gs(Serial_putchar))
+ 135 007e 9093 0000 		sts USARTSerialStream+8+1,r25
+ 136 0082 8093 0000 		sts USARTSerialStream+8,r24
+ 137 0086 80E0      		ldi r24,lo8(gs(Serial_getchar))
+ 138 0088 90E0      		ldi r25,hi8(gs(Serial_getchar))
+ 139 008a 9093 0000 		sts USARTSerialStream+10+1,r25
+ 140 008e 8093 0000 		sts USARTSerialStream+10,r24
+ 141               	/* epilogue start */
+ 142               	.LBE46:
+ 143               	.LBE45:
+ 144               	.LSM19:
+ 145 0092 0895      		ret
+ 146               	.LFE132:
+ 148               		.section	.text.EVENT_USB_Host_DeviceAttached,"ax",@progbits
+ 149               	.global	EVENT_USB_Host_DeviceAttached
+ 151               	EVENT_USB_Host_DeviceAttached:
+ 152               	.LFB133:
+ 153               	.LSM20:
+ 154               	/* prologue: function */
+ 155               	/* frame size = 0 */
+ 156               	/* stack size = 0 */
+ 157               	.L__stack_usage = 0
+ 158               	.LSM21:
+ 159 0000 80E0      		ldi r24,lo8(__c.3897)
+ 160 0002 90E0      		ldi r25,hi8(__c.3897)
+ 161 0004 0E94 0000 		call puts_P
+ 162               	.LSM22:
+ 163 0008 80EA      		ldi r24,lo8(-96)
+ 164 000a 0E94 0000 		call LEDs_SetAllLEDs
+ 165               	/* epilogue start */
+ 166               	.LSM23:
+ 167 000e 0895      		ret
+ 168               	.LFE133:
+ 170               		.section	.text.EVENT_USB_Host_DeviceUnattached,"ax",@progbits
+ 171               	.global	EVENT_USB_Host_DeviceUnattached
+ 173               	EVENT_USB_Host_DeviceUnattached:
+ 174               	.LFB134:
+ 175               	.LSM24:
+ 176               	/* prologue: function */
+ 177               	/* frame size = 0 */
+ 178               	/* stack size = 0 */
+ 179               	.L__stack_usage = 0
+ 180               	.LSM25:
+ 181 0000 80E0      		ldi r24,lo8(__c.3902)
+ 182 0002 90E0      		ldi r25,hi8(__c.3902)
+ 183 0004 0E94 0000 		call puts_P
+ 184               	.LSM26:
+ 185 0008 80E1      		ldi r24,lo8(16)
+ 186 000a 0E94 0000 		call LEDs_SetAllLEDs
+ 187               	/* epilogue start */
+ 188               	.LSM27:
+ 189 000e 0895      		ret
+ 190               	.LFE134:
+ 192               		.section	.text.EVENT_USB_Host_DeviceEnumerationComplete,"ax",@progbits
+ 193               	.global	EVENT_USB_Host_DeviceEnumerationComplete
+ 195               	EVENT_USB_Host_DeviceEnumerationComplete:
+ 196               	.LFB135:
+ 197               	.LSM28:
+ 198               	/* prologue: function */
+ 199               	/* frame size = 0 */
+ 200               	/* stack size = 0 */
+ 201               	.L__stack_usage = 0
+ 202               	.LSM29:
+ 203 0000 80E6      		ldi r24,lo8(96)
+ 204 0002 0E94 0000 		call LEDs_SetAllLEDs
+ 205               	/* epilogue start */
+ 206               	.LSM30:
+ 207 0006 0895      		ret
+ 208               	.LFE135:
+ 210               		.section	.text.EVENT_USB_Host_HostError,"ax",@progbits
+ 211               	.global	EVENT_USB_Host_HostError
+ 213               	EVENT_USB_Host_HostError:
+ 214               	.LFB136:
+ 215               	.LSM31:
+ 216               	.LVL4:
+ 217 0000 DF93      		push r29
+ 218 0002 CF93      		push r28
+ 219 0004 0F92      		push __tmp_reg__
+ 220 0006 CDB7      		in r28,__SP_L__
+ 221 0008 DEB7      		in r29,__SP_H__
+ 222               	/* prologue: function */
+ 223               	/* frame size = 1 */
+ 224               	/* stack size = 3 */
+ 225               	.L__stack_usage = 3
+ 226               	.LSM32:
+ 227 000a 8983      		std Y+1,r24
+ 228 000c 0E94 0000 		call USB_Disable
+ 229               	.LVL5:
+ 230               	.LSM33:
+ 231 0010 00D0      		rcall .
+ 232 0012 00D0      		rcall .
+ 233 0014 EDB7      		in r30,__SP_L__
+ 234 0016 FEB7      		in r31,__SP_H__
+ 235 0018 3196      		adiw r30,1
+ 236 001a 20E0      		ldi r18,lo8(__c.3910)
+ 237 001c 30E0      		ldi r19,hi8(__c.3910)
+ 238 001e ADB7      		in r26,__SP_L__
+ 239 0020 BEB7      		in r27,__SP_H__
+ 240 0022 1296      		adiw r26,1+1
+ 241 0024 3C93      		st X,r19
+ 242 0026 2E93      		st -X,r18
+ 243 0028 1197      		sbiw r26,1
+ 244 002a 8981      		ldd r24,Y+1
+ 245 002c 8283      		std Z+2,r24
+ 246 002e 1382      		std Z+3,__zero_reg__
+ 247 0030 0E94 0000 		call printf_P
+ 248               	.LSM34:
+ 249 0034 0F90      		pop __tmp_reg__
+ 250 0036 0F90      		pop __tmp_reg__
+ 251 0038 0F90      		pop __tmp_reg__
+ 252 003a 0F90      		pop __tmp_reg__
+ 253 003c 80E9      		ldi r24,lo8(-112)
+ 254 003e 0E94 0000 		call LEDs_SetAllLEDs
+ 255               	.L7:
+ 256 0042 00C0      		rjmp .L7
+ 257               	.LFE136:
+ 259               		.section	.text.EVENT_USB_Host_DeviceEnumerationFailed,"ax",@progbits
+ 260               	.global	EVENT_USB_Host_DeviceEnumerationFailed
+ 262               	EVENT_USB_Host_DeviceEnumerationFailed:
+ 263               	.LFB137:
+ 264               	.LSM35:
+ 265               	.LVL6:
+ 266               	/* prologue: function */
+ 267               	/* frame size = 0 */
+ 268               	/* stack size = 0 */
+ 269               	.L__stack_usage = 0
+ 270               	.LSM36:
+ 271 0000 9091 0000 		lds r25,USB_HostState
+ 272 0004 2DB7      		in r18,__SP_L__
+ 273 0006 3EB7      		in r19,__SP_H__
+ 274 0008 2850      		subi r18,lo8(-(-8))
+ 275 000a 3040      		sbci r19,hi8(-(-8))
+ 276 000c 0FB6      		in __tmp_reg__,__SREG__
+ 277 000e F894      		cli
+ 278 0010 3EBF      		out __SP_H__,r19
+ 279 0012 0FBE      		out __SREG__,__tmp_reg__
+ 280 0014 2DBF      		out __SP_L__,r18
+ 281 0016 EDB7      		in r30,__SP_L__
+ 282 0018 FEB7      		in r31,__SP_H__
+ 283 001a 3196      		adiw r30,1
+ 284 001c 20E0      		ldi r18,lo8(__c.3917)
+ 285 001e 30E0      		ldi r19,hi8(__c.3917)
+ 286 0020 ADB7      		in r26,__SP_L__
+ 287 0022 BEB7      		in r27,__SP_H__
+ 288 0024 1296      		adiw r26,1+1
+ 289 0026 3C93      		st X,r19
+ 290 0028 2E93      		st -X,r18
+ 291 002a 1197      		sbiw r26,1
+ 292 002c 8283      		std Z+2,r24
+ 293 002e 1382      		std Z+3,__zero_reg__
+ 294 0030 6483      		std Z+4,r22
+ 295 0032 1582      		std Z+5,__zero_reg__
+ 296 0034 9683      		std Z+6,r25
+ 297 0036 1782      		std Z+7,__zero_reg__
+ 298 0038 0E94 0000 		call printf_P
+ 299               	.LVL7:
+ 300               	.LSM37:
+ 301 003c 2DB7      		in r18,__SP_L__
+ 302 003e 3EB7      		in r19,__SP_H__
+ 303 0040 285F      		subi r18,lo8(-(8))
+ 304 0042 3F4F      		sbci r19,hi8(-(8))
+ 305 0044 0FB6      		in __tmp_reg__,__SREG__
+ 306 0046 F894      		cli
+ 307 0048 3EBF      		out __SP_H__,r19
+ 308 004a 0FBE      		out __SREG__,__tmp_reg__
+ 309 004c 2DBF      		out __SP_L__,r18
+ 310 004e 80E9      		ldi r24,lo8(-112)
+ 311 0050 0E94 0000 		call LEDs_SetAllLEDs
+ 312               	/* epilogue start */
+ 313               	.LSM38:
+ 314 0054 0895      		ret
+ 315               	.LFE137:
+ 317               		.section	.text.Audio_Task,"ax",@progbits
+ 318               	.global	Audio_Task
+ 320               	Audio_Task:
+ 321               	.LFB138:
+ 322               	.LSM39:
+ 323 0000 1F93      		push r17
+ 324 0002 DF93      		push r29
+ 325 0004 CF93      		push r28
+ 326 0006 00D0      		rcall .
+ 327 0008 0F92      		push __tmp_reg__
+ 328 000a CDB7      		in r28,__SP_L__
+ 329 000c DEB7      		in r29,__SP_H__
+ 330               	/* prologue: function */
+ 331               	/* frame size = 3 */
+ 332               	/* stack size = 6 */
+ 333               	.L__stack_usage = 6
+ 334               	.LSM40:
+ 335 000e 8091 0000 		lds r24,USB_HostState
+ 336 0012 8B30      		cpi r24,lo8(11)
+ 337 0014 01F0      		breq .+2
+ 338 0016 00C0      		rjmp .L9
+ 339               	.LBB47:
+ 340               	.LSM41:
+ 341 0018 80E0      		ldi r24,lo8(__c.3924)
+ 342 001a 90E0      		ldi r25,hi8(__c.3924)
+ 343 001c 0E94 0000 		call puts_P
+ 344               	.LSM42:
+ 345 0020 0E94 0000 		call ProcessConfigurationDescriptor
+ 346 0024 182F      		mov r17,r24
+ 347               	.LVL8:
+ 348 0026 8823      		tst r24
+ 349 0028 01F0      		breq .L12
+ 350               	.LSM43:
+ 351 002a 8130      		cpi r24,lo8(1)
+ 352 002c 01F4      		brne .L13
+ 353               	.LSM44:
+ 354 002e 80E0      		ldi r24,lo8(__c.3926)
+ 355 0030 90E0      		ldi r25,hi8(__c.3926)
+ 356               	.LVL9:
+ 357 0032 00C0      		rjmp .L20
+ 358               	.L13:
+ 359               	.LSM45:
+ 360 0034 80E0      		ldi r24,lo8(__c.3928)
+ 361 0036 90E0      		ldi r25,hi8(__c.3928)
+ 362               	.L20:
+ 363 0038 0E94 0000 		call puts_P
+ 364               	.LSM46:
+ 365 003c 00D0      		rcall .
+ 366 003e 00D0      		rcall .
+ 367 0040 EDB7      		in r30,__SP_L__
+ 368 0042 FEB7      		in r31,__SP_H__
+ 369 0044 3196      		adiw r30,1
+ 370 0046 20E0      		ldi r18,lo8(__c.3930)
+ 371 0048 30E0      		ldi r19,hi8(__c.3930)
+ 372 004a ADB7      		in r26,__SP_L__
+ 373 004c BEB7      		in r27,__SP_H__
+ 374 004e 1296      		adiw r26,1+1
+ 375 0050 3C93      		st X,r19
+ 376 0052 2E93      		st -X,r18
+ 377 0054 1197      		sbiw r26,1
+ 378 0056 1283      		std Z+2,r17
+ 379               	.LVL10:
+ 380               	.L22:
+ 381 0058 1382      		std Z+3,__zero_reg__
+ 382 005a 0E94 0000 		call printf_P
+ 383               	.LSM47:
+ 384 005e 0F90      		pop __tmp_reg__
+ 385 0060 0F90      		pop __tmp_reg__
+ 386 0062 0F90      		pop __tmp_reg__
+ 387 0064 0F90      		pop __tmp_reg__
+ 388 0066 00C0      		rjmp .L21
+ 389               	.LVL11:
+ 390               	.L12:
+ 391               	.LSM48:
+ 392 0068 81E0      		ldi r24,lo8(1)
+ 393 006a 0E94 0000 		call USB_Host_SetDeviceConfiguration
+ 394               	.LVL12:
+ 395 006e 8823      		tst r24
+ 396 0070 01F0      		breq .L15
+ 397               	.LSM49:
+ 398 0072 00D0      		rcall .
+ 399 0074 00D0      		rcall .
+ 400 0076 EDB7      		in r30,__SP_L__
+ 401 0078 FEB7      		in r31,__SP_H__
+ 402 007a 3196      		adiw r30,1
+ 403 007c 20E0      		ldi r18,lo8(__c.3933)
+ 404 007e 30E0      		ldi r19,hi8(__c.3933)
+ 405 0080 00C0      		rjmp .L23
+ 406               	.L15:
+ 407               	.LSM50:
+ 408 0082 8091 0000 		lds r24,StreamingInterfaceIndex
+ 409               	.LVL13:
+ 410 0086 6091 0000 		lds r22,StreamingInterfaceAltSetting
+ 411 008a 0E94 0000 		call USB_Host_SetInterfaceAltSetting
+ 412               	.LVL14:
+ 413 008e 8823      		tst r24
+ 414 0090 01F0      		breq .L16
+ 415               	.LSM51:
+ 416 0092 00D0      		rcall .
+ 417 0094 00D0      		rcall .
+ 418 0096 EDB7      		in r30,__SP_L__
+ 419 0098 FEB7      		in r31,__SP_H__
+ 420 009a 3196      		adiw r30,1
+ 421 009c 20E0      		ldi r18,lo8(__c.3935)
+ 422 009e 30E0      		ldi r19,hi8(__c.3935)
+ 423               	.L23:
+ 424 00a0 ADB7      		in r26,__SP_L__
+ 425 00a2 BEB7      		in r27,__SP_H__
+ 426 00a4 1296      		adiw r26,1+1
+ 427 00a6 3C93      		st X,r19
+ 428 00a8 2E93      		st -X,r18
+ 429 00aa 1197      		sbiw r26,1
+ 430 00ac 8283      		std Z+2,r24
+ 431 00ae 00C0      		rjmp .L22
+ 432               	.L16:
+ 433               	.LSM52:
+ 434 00b0 2091 0000 		lds r18,StreamingEndpointAddress
+ 435 00b4 82E2      		ldi r24,lo8(34)
+ 436               	.LVL15:
+ 437 00b6 8093 0000 		sts USB_ControlRequest,r24
+ 438 00ba 81E0      		ldi r24,lo8(1)
+ 439 00bc 8093 0000 		sts USB_ControlRequest+1,r24
+ 440 00c0 80E0      		ldi r24,lo8(256)
+ 441 00c2 91E0      		ldi r25,hi8(256)
+ 442 00c4 9093 0000 		sts USB_ControlRequest+2+1,r25
+ 443 00c8 8093 0000 		sts USB_ControlRequest+2,r24
+ 444 00cc 2093 0000 		sts USB_ControlRequest+4,r18
+ 445 00d0 1092 0000 		sts USB_ControlRequest+5,__zero_reg__
+ 446 00d4 83E0      		ldi r24,lo8(3)
+ 447 00d6 90E0      		ldi r25,hi8(3)
+ 448 00d8 9093 0000 		sts USB_ControlRequest+6+1,r25
+ 449 00dc 8093 0000 		sts USB_ControlRequest+6,r24
+ 450               	.LSM53:
+ 451 00e0 DE01      		movw r26,r28
+ 452 00e2 1196      		adiw r26,1
+ 453 00e4 E0E0      		ldi r30,lo8(C.5.5024)
+ 454 00e6 F0E0      		ldi r31,hi8(C.5.5024)
+ 455 00e8 83E0      		ldi r24,lo8(3)
+ 456               	.L17:
+ 457 00ea 0190      		ld r0,Z+
+ 458 00ec 0D92      		st X+,r0
+ 459 00ee 8150      		subi r24,lo8(-(-1))
+ 460 00f0 01F4      		brne .L17
+ 461               	.LVL16:
+ 462               	.LBB48:
+ 463               	.LBB49:
+ 464               	.LSM54:
+ 465 00f2 1092 A700 		sts 167,__zero_reg__
+ 466               	.LBE49:
+ 467               	.LBE48:
+ 468               	.LSM55:
+ 469 00f6 CE01      		movw r24,r28
+ 470 00f8 0196      		adiw r24,1
+ 471 00fa 0E94 0000 		call USB_Host_SendControlRequest
+ 472               	.LVL17:
+ 473 00fe 8823      		tst r24
+ 474 0100 01F0      		breq .L18
+ 475               	.LVL18:
+ 476               	.L21:
+ 477               	.LSM56:
+ 478 0102 80E9      		ldi r24,lo8(-112)
+ 479 0104 0E94 0000 		call LEDs_SetAllLEDs
+ 480               	.LSM57:
+ 481 0108 1092 0000 		sts USB_HostState,__zero_reg__
+ 482               	.LSM58:
+ 483 010c 00C0      		rjmp .L9
+ 484               	.LVL19:
+ 485               	.L18:
+ 486               	.LSM59:
+ 487 010e 82E0      		ldi r24,lo8(2)
+ 488               	.LVL20:
+ 489 0110 8093 6E00 		sts 110,r24
+ 490               	.LSM60:
+ 491 0114 9CE7      		ldi r25,lo8(124)
+ 492 0116 97BD      		out 71-32,r25
+ 493               	.LSM61:
+ 494 0118 84BD      		out 68-32,r24
+ 495               	.LSM62:
+ 496 011a 85BD      		out 69-32,r24
+ 497               	.LSM63:
+ 498 011c 3E9A      		sbi 39-32,6
+ 499               	.LSM64:
+ 500 011e 81EF      		ldi r24,lo8(-15)
+ 501 0120 8093 9000 		sts 144,r24
+ 502               	.LSM65:
+ 503 0124 89E0      		ldi r24,lo8(9)
+ 504 0126 8093 9100 		sts 145,r24
+ 505               	.LSM66:
+ 506 012a 80E0      		ldi r24,lo8(__c.3939)
+ 507 012c 90E0      		ldi r25,hi8(__c.3939)
+ 508 012e 0E94 0000 		call puts_P
+ 509               	.LSM67:
+ 510 0132 8CE0      		ldi r24,lo8(12)
+ 511 0134 8093 0000 		sts USB_HostState,r24
+ 512               	.LVL21:
+ 513               	.L9:
+ 514               	/* epilogue start */
+ 515               	.LBE47:
+ 516               	.LSM68:
+ 517 0138 0F90      		pop __tmp_reg__
+ 518 013a 0F90      		pop __tmp_reg__
+ 519 013c 0F90      		pop __tmp_reg__
+ 520 013e CF91      		pop r28
+ 521 0140 DF91      		pop r29
+ 522 0142 1F91      		pop r17
+ 523 0144 0895      		ret
+ 524               	.LFE138:
+ 526               		.section	.text.main,"ax",@progbits
+ 527               	.global	main
+ 529               	main:
+ 530               	.LFB131:
+ 531               	.LSM69:
+ 532               	/* prologue: function */
+ 533               	/* frame size = 0 */
+ 534               	/* stack size = 0 */
+ 535               	.L__stack_usage = 0
+ 536               	.LSM70:
+ 537 0000 0E94 0000 		call SetupHardware
+ 538               	.LSM71:
+ 539 0004 80E0      		ldi r24,lo8(__c.3888)
+ 540 0006 90E0      		ldi r25,hi8(__c.3888)
+ 541 0008 0E94 0000 		call puts_P
+ 542               	.LSM72:
+ 543 000c 80E1      		ldi r24,lo8(16)
+ 544 000e 0E94 0000 		call LEDs_SetAllLEDs
+ 545               	.LSM73:
+ 546               	/* #APP */
+ 547               	 ;  49 "AudioInputHost.c" 1
+ 548 0012 7894      		sei
+ 549               	 ;  0 "" 2
+ 550               	/* #NOAPP */
+ 551               	.L25:
+ 552               	.LSM74:
+ 553 0014 0E94 0000 		call Audio_Task
+ 554               	.LSM75:
+ 555 0018 0E94 0000 		call USB_USBTask
+ 556 001c 00C0      		rjmp .L25
+ 557               	.LFE131:
+ 559               		.section	.text.__vector_21,"ax",@progbits
+ 560               	.global	__vector_21
+ 562               	__vector_21:
+ 563               	.LFB139:
+ 564               	.LSM76:
+ 565 0000 1F92      		push __zero_reg__
+ 566 0002 0F92      		push r0
+ 567 0004 0FB6      		in r0,__SREG__
+ 568 0006 0F92      		push r0
+ 569 0008 0BB6      		in r0,91-32
+ 570 000a 0F92      		push r0
+ 571 000c 1124      		clr __zero_reg__
+ 572 000e 1F93      		push r17
+ 573 0010 2F93      		push r18
+ 574 0012 3F93      		push r19
+ 575 0014 4F93      		push r20
+ 576 0016 5F93      		push r21
+ 577 0018 6F93      		push r22
+ 578 001a 7F93      		push r23
+ 579 001c 8F93      		push r24
+ 580 001e 9F93      		push r25
+ 581 0020 AF93      		push r26
+ 582 0022 BF93      		push r27
+ 583 0024 EF93      		push r30
+ 584 0026 FF93      		push r31
+ 585               	/* prologue: Signal */
+ 586               	/* frame size = 0 */
+ 587               	/* stack size = 17 */
+ 588               	.L__stack_usage = 17
+ 589               	.LBB50:
+ 590               	.LBB51:
+ 591               	.LSM77:
+ 592 0028 1091 A700 		lds r17,167
+ 593 002c 1770      		andi r17,lo8(7)
+ 594               	.LVL22:
+ 595               	.LBE51:
+ 596               	.LBE50:
+ 597               	.LBB52:
+ 598               	.LBB53:
+ 599               	.LSM78:
+ 600 002e 81E0      		ldi r24,lo8(1)
+ 601 0030 8093 A700 		sts 167,r24
+ 602               	.LBE53:
+ 603               	.LBE52:
+ 604               	.LBB54:
+ 605               	.LBB55:
+ 606               	.LSM79:
+ 607 0034 8091 A900 		lds r24,169
+ 608 0038 8F7B      		andi r24,lo8(-65)
+ 609 003a 8093 A900 		sts 169,r24
+ 610               	.LBE55:
+ 611               	.LBE54:
+ 612               	.LBB56:
+ 613               	.LBB57:
+ 614               	.LSM80:
+ 615 003e 8091 A600 		lds r24,166
+ 616               	.LBE57:
+ 617               	.LBE56:
+ 618               	.LSM81:
+ 619 0042 80FF      		sbrs r24,0
+ 620 0044 00C0      		rjmp .L27
+ 621               	.LBB58:
+ 622               	.LBB59:
+ 623               	.LBB60:
+ 624               	.LSM82:
+ 625 0046 8091 AF00 		lds r24,175
+ 626               	.LSM83:
+ 627 004a 4091 AF00 		lds r20,175
+ 628               	.LVL23:
+ 629               	.LBE60:
+ 630               	.LBE59:
+ 631               	.LBB61:
+ 632               	.LBB62:
+ 633               	.LSM84:
+ 634 004e 8091 A600 		lds r24,166
+ 635               	.LBE62:
+ 636               	.LBE61:
+ 637               	.LSM85:
+ 638 0052 85FD      		sbrc r24,5
+ 639 0054 00C0      		rjmp .L28
+ 640               	.LBB63:
+ 641               	.LBB64:
+ 642               	.LSM86:
+ 643 0056 8091 A600 		lds r24,166
+ 644 005a 8E77      		andi r24,lo8(126)
+ 645 005c 8093 A600 		sts 166,r24
+ 646               	.L28:
+ 647               	.LBE64:
+ 648               	.LBE63:
+ 649               	.LSM87:
+ 650 0060 842F      		mov r24,r20
+ 651 0062 9927      		clr r25
+ 652 0064 87FD      		sbrc r24,7
+ 653 0066 9095      		com r25
+ 654 0068 20E8      		ldi r18,lo8(128)
+ 655 006a 30E0      		ldi r19,hi8(128)
+ 656 006c 8227      		eor r24,r18
+ 657 006e 9327      		eor r25,r19
+ 658 0070 9093 9900 		sts 152+1,r25
+ 659 0074 8093 9800 		sts 152,r24
+ 660               	.LVL24:
+ 661               	.LSM88:
+ 662 0078 4131      		cpi r20,lo8(17)
+ 663 007a 04F4      		brge .L30
+ 664               	.LSM89:
+ 665 007c 4930      		cpi r20,lo8(9)
+ 666 007e 04F4      		brge .L31
+ 667               	.LSM90:
+ 668 0080 4530      		cpi r20,lo8(5)
+ 669 0082 04F4      		brge .L32
+ 670               	.LSM91:
+ 671 0084 4330      		cpi r20,lo8(3)
+ 672 0086 04F4      		brge .L33
+ 673               	.LSM92:
+ 674 0088 80E0      		ldi r24,lo8(0)
+ 675 008a 00C0      		rjmp .L29
+ 676               	.L30:
+ 677               	.LSM93:
+ 678 008c 80EF      		ldi r24,lo8(-16)
+ 679 008e 00C0      		rjmp .L29
+ 680               	.L31:
+ 681               	.LSM94:
+ 682 0090 80EB      		ldi r24,lo8(-80)
+ 683 0092 00C0      		rjmp .L29
+ 684               	.L32:
+ 685               	.LSM95:
+ 686 0094 80E3      		ldi r24,lo8(48)
+ 687 0096 00C0      		rjmp .L29
+ 688               	.L33:
+ 689               	.LSM96:
+ 690 0098 80E1      		ldi r24,lo8(16)
+ 691               	.L29:
+ 692               	.LVL25:
+ 693               	.LSM97:
+ 694 009a 0E94 0000 		call LEDs_SetAllLEDs
+ 695               	.LVL26:
+ 696               	.L27:
+ 697               	.LBE58:
+ 698               	.LBB65:
+ 699               	.LBB66:
+ 700               	.LSM98:
+ 701 009e 8091 A900 		lds r24,169
+ 702 00a2 8064      		ori r24,lo8(64)
+ 703 00a4 8093 A900 		sts 169,r24
+ 704               	.LVL27:
+ 705               	.LBE66:
+ 706               	.LBE65:
+ 707               	.LBB67:
+ 708               	.LBB68:
+ 709               	.LSM99:
+ 710 00a8 1093 A700 		sts 167,r17
+ 711               	/* epilogue start */
+ 712               	.LBE68:
+ 713               	.LBE67:
+ 714               	.LSM100:
+ 715 00ac FF91      		pop r31
+ 716 00ae EF91      		pop r30
+ 717 00b0 BF91      		pop r27
+ 718 00b2 AF91      		pop r26
+ 719 00b4 9F91      		pop r25
+ 720 00b6 8F91      		pop r24
+ 721 00b8 7F91      		pop r23
+ 722 00ba 6F91      		pop r22
+ 723 00bc 5F91      		pop r21
+ 724 00be 4F91      		pop r20
+ 725 00c0 3F91      		pop r19
+ 726 00c2 2F91      		pop r18
+ 727 00c4 1F91      		pop r17
+ 728               	.LVL28:
+ 729 00c6 0F90      		pop r0
+ 730 00c8 0BBE      		out 91-32,r0
+ 731 00ca 0F90      		pop r0
+ 732 00cc 0FBE      		out __SREG__,r0
+ 733 00ce 0F90      		pop r0
+ 734 00d0 1F90      		pop __zero_reg__
+ 735 00d2 1895      		reti
+ 736               	.LFE139:
+ 738               		.section	.progmem.data,"a",@progbits
+ 741               	__c.3939:
+ 742 0000 4D69 6372 		.string	"Microphone Enumerated.\r\n"
+ 742      6F70 686F 
+ 742      6E65 2045 
+ 742      6E75 6D65 
+ 742      7261 7465 
+ 745               	__c.3935:
+ 746 0019 1B5B 3331 		.ascii	"\033[31mCould not set alt"
+ 746      6D43 6F75 
+ 746      6C64 206E 
+ 746      6F74 2073 
+ 746      6574 2061 
+ 747 002f 6572 6E61 		.string	"ernative streaming interface setting.\r\n -- Error Code: %d\r\n\033[37m"
+ 747      7469 7665 
+ 747      2073 7472 
+ 747      6561 6D69 
+ 747      6E67 2069 
+ 750               	__c.3933:
+ 751 0070 1B5B      		.ascii	"\033["
+ 752 0072 3331 6D43 		.string	"31mControl Error (Set Configuration).\r\n -- Error Code: %d\r\n\033[37m"
+ 752      6F6E 7472 
+ 752      6F6C 2045 
+ 752      7272 6F72 
+ 752      2028 5365 
+ 755               	__c.3930:
+ 756 00b3 202D 2D20 		.string	" -- Error Code: %d\r\n\033[37m"
+ 756      4572 726F 
+ 756      7220 436F 
+ 756      6465 3A20 
+ 756      2564 0D0A 
+ 759               	__c.3928:
+ 760 00cd 1B5B 3331 		.string	"\033[31mInvalid Device.\r\n"
+ 760      6D49 6E76 
+ 760      616C 6964 
+ 760      2044 6576 
+ 760      6963 652E 
+ 763               	__c.3926:
+ 764 00e4 1B5B 3331 		.string	"\033[31mControl Error (Get Configuration).\r\n"
+ 764      6D43 6F6E 
+ 764      7472 6F6C 
+ 764      2045 7272 
+ 764      6F72 2028 
+ 767               	__c.3924:
+ 768 010e 4765 7474 		.string	"Getting Config Data.\r\n"
+ 768      696E 6720 
+ 768      436F 6E66 
+ 768      6967 2044 
+ 768      6174 612E 
+ 769               		.data
+ 772               	C.5.5024:
+ 773 0000 80        		.byte	-128
+ 774 0001 BB        		.byte	-69
+ 775 0002 00        		.byte	0
+ 776               		.section	.progmem.data
+ 779               	__c.3917:
+ 780 0125 1B5B 3331 		.ascii	"\033[31mDev Enum Error\r\n"
+ 780      6D44 6576 
+ 780      2045 6E75 
+ 780      6D20 4572 
+ 780      726F 720D 
+ 781 013a 202D 2D20 		.string	" -- Error Code %d\r\n -- Sub Error Code %d\r\n -- In State %d\r\n\033[37m"
+ 781      4572 726F 
+ 781      7220 436F 
+ 781      6465 2025 
+ 781      640D 0A20 
+ 784               	__c.3910:
+ 785 017b 1B5B 3331 		.string	"\033[31mHost Mode Error\r\n -- Error Code %d\r\n\033[37m"
+ 785      6D48 6F73 
+ 785      7420 4D6F 
+ 785      6465 2045 
+ 785      7272 6F72 
+ 788               	__c.3902:
+ 789 01aa 1B5B 3332 		.string	"\033[32mDevice Unattached.\r\n\033[37m"
+ 789      6D44 6576 
+ 789      6963 6520 
+ 789      556E 6174 
+ 789      7461 6368 
+ 792               	__c.3897:
+ 793 01c9 1B5B 3332 		.string	"\033[32mDevice Attached.\r\n\033[37m"
+ 793      6D44 6576 
+ 793      6963 6520 
+ 793      4174 7461 
+ 793      6368 6564 
+ 796               	__c.3888:
+ 797 01e6 1B5B 3336 		.string	"\033[36mAudio Host Demo running.\r\n\033[37m"
+ 797      6D41 7564 
+ 797      696F 2048 
+ 797      6F73 7420 
+ 797      4465 6D6F 
+ 894               	.Letext0:
+DEFINED SYMBOLS
+                            *ABS*:00000000 AudioInputHost.c
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:2      *ABS*:0000003f __SREG__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:3      *ABS*:0000003e __SP_H__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:4      *ABS*:0000003d __SP_L__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:5      *ABS*:00000034 __CCP__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:6      *ABS*:00000000 __tmp_reg__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:7      *ABS*:00000001 __zero_reg__
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:18     .text.LEDs_SetAllLEDs:00000000 LEDs_SetAllLEDs
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:39     .text.SetupHardware:00000000 SetupHardware
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:151    .text.EVENT_USB_Host_DeviceAttached:00000000 EVENT_USB_Host_DeviceAttached
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:792    .progmem.data:000001c9 __c.3897
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:173    .text.EVENT_USB_Host_DeviceUnattached:00000000 EVENT_USB_Host_DeviceUnattached
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:788    .progmem.data:000001aa __c.3902
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:195    .text.EVENT_USB_Host_DeviceEnumerationComplete:00000000 EVENT_USB_Host_DeviceEnumerationComplete
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:213    .text.EVENT_USB_Host_HostError:00000000 EVENT_USB_Host_HostError
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:784    .progmem.data:0000017b __c.3910
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:262    .text.EVENT_USB_Host_DeviceEnumerationFailed:00000000 EVENT_USB_Host_DeviceEnumerationFailed
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:779    .progmem.data:00000125 __c.3917
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:320    .text.Audio_Task:00000000 Audio_Task
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:767    .progmem.data:0000010e __c.3924
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:763    .progmem.data:000000e4 __c.3926
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:759    .progmem.data:000000cd __c.3928
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:755    .progmem.data:000000b3 __c.3930
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:750    .progmem.data:00000070 __c.3933
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:745    .progmem.data:00000019 __c.3935
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:772    .data:00000000 C.5.5024
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:741    .progmem.data:00000000 __c.3939
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:529    .text.main:00000000 main
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:796    .progmem.data:000001e6 __c.3888
+C:\Users\Dean\AppData\Local\Temp\ccMWbd5S.s:562    .text.__vector_21:00000000 __vector_21
+
+UNDEFINED SYMBOLS
+USB_Init
+USARTSerialStream
+__iob
+Serial_putchar
+Serial_getchar
+puts_P
+USB_Disable
+printf_P
+USB_HostState
+ProcessConfigurationDescriptor
+USB_Host_SetDeviceConfiguration
+StreamingInterfaceIndex
+StreamingInterfaceAltSetting
+USB_Host_SetInterfaceAltSetting
+StreamingEndpointAddress
+USB_ControlRequest
+USB_Host_SendControlRequest
+USB_USBTask
+__do_copy_data
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.map b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.map
new file mode 100644
index 000000000..189341a7d
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.map
@@ -0,0 +1,1169 @@
+Archive member included because of file (symbol)
+
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o (exit)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+                              AudioInputHost.o (__do_copy_data)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+                              ConfigDescriptor.o (__do_clear_bss)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+                              AudioInputHost.o (__iob)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+                              AudioInputHost.o (printf_P)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+                              AudioInputHost.o (puts_P)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o) (vfprintf)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o (__eerd_byte_usb1287)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o (__eeupd_byte_usb1287)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen_P)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (fputc)
+c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (__ultoa_invert)
+
+Allocating common symbols
+Common symbol       size              file
+
+USB_IsInitialized   0x1               ../../../../LUFA/Drivers/USB/Core/USBTask.o
+USARTSerialStream   0xe               ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+USB_ControlRequest  0x8               ../../../../LUFA/Drivers/USB/Core/USBTask.o
+USB_HostState       0x1               ../../../../LUFA/Drivers/USB/Core/USBTask.o
+__iob               0x6               c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+
+Discarded input sections
+
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+ .text          0x00000000        0x0 AudioInputHost.o
+ .bss           0x00000000        0x0 AudioInputHost.o
+ .text          0x00000000        0x0 ConfigDescriptor.o
+ .data          0x00000000        0x0 ConfigDescriptor.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .text.USB_Host_GetDeviceDescriptor
+                0x00000000       0x1c ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .text.USB_Host_GetDeviceStringDescriptor
+                0x00000000       0x34 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .text.USB_Host_ClearPipeStall
+                0x00000000       0x32 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .text.Pipe_IsEndpointBound
+                0x00000000       0x5c ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .text.Pipe_WaitUntilReady
+                0x00000000       0x5e ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Discard_Stream
+                0x00000000       0x9a ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Null_Stream
+                0x00000000       0x9e ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_Stream_LE
+                0x00000000       0xca ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_Stream_BE
+                0x00000000       0xba ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Read_Stream_LE
+                0x00000000       0xca ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Read_Stream_BE
+                0x00000000       0xba ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_PStream_LE
+                0x00000000       0xce ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_PStream_BE
+                0x00000000       0xba ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_EStream_LE
+                0x00000000       0xd0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Write_EStream_BE
+                0x00000000       0xbc ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Read_EStream_LE
+                0x00000000       0xce ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text.Pipe_Read_EStream_BE
+                0x00000000       0xbe ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .text.USB_GetNextDescriptorOfType
+                0x00000000       0x4c ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .text.USB_GetNextDescriptorOfTypeBefore
+                0x00000000       0x56 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .text.USB_GetNextDescriptorOfTypeAfter
+                0x00000000       0x34 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .text.USB_ProcessHIDReport
+                0x00000000      0x766 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .text.USB_GetHIDReportItemInfo
+                0x00000000       0xb6 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .text.USB_SetHIDReportItemInfo
+                0x00000000       0xc2 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .text.USB_GetHIDReportSize
+                0x00000000       0x58 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .text          0x00000000        0x0 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .data          0x00000000        0x0 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .bss           0x00000000        0x0 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .text.Serial_getchar_Blocking
+                0x00000000       0x20 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .text.Serial_SendString_P
+                0x00000000       0x1a ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .text.Serial_SendString
+                0x00000000       0x1c ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .text.Serial_SendData
+                0x00000000       0x1e ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+ .text.libgcc   0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc   0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+ .text.libgcc   0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+ .text.avr-libc
+                0x00000000       0x10 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+ .text.avr-libc
+                0x00000000       0x24 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .text          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ .data          0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ .bss           0x00000000        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x00000000         0x00020000         xr
+data             0x00800100         0x0000ff00         rw !x
+eeprom           0x00810000         0x00010000         rw !x
+fuse             0x00820000         0x00000400         rw !x
+lock             0x00830000         0x00000400         rw !x
+signature        0x00840000         0x00000400         rw !x
+*default*        0x00000000         0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+LOAD AudioInputHost.o
+LOAD ConfigDescriptor.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+LOAD ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+LOAD ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+LOAD ../../../../LUFA/Drivers/USB/Core/Events.o
+LOAD ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+LOAD ../../../../LUFA/Drivers/USB/Core/USBTask.o
+LOAD ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+LOAD ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+LOAD c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libm.a
+LOAD c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a
+LOAD c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a
+LOAD c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x00000000     0x18fa
+ *(.vectors)
+ .vectors       0x00000000       0x98 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+                0x00000000                __vector_default
+                0x00000000                __vectors
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data  0x00000098      0x20b AudioInputHost.o
+                0x000002a4                . = ALIGN (0x2)
+ *fill*         0x000002a3        0x1 00
+                0x000002a4                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x000002a4        0x0 linker stubs
+ *(.trampolines*)
+                0x000002a4                __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x000002a4                __ctors_start = .
+ *(.ctors)
+                0x000002a4                __ctors_end = .
+                0x000002a4                __dtors_start = .
+ *(.dtors)
+                0x000002a4                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x000002a4        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+                0x000002a4                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x000002a4        0xc c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x000002b0       0x1a c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+                0x000002b0                __do_copy_data
+ .init4         0x000002ca       0x10 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+                0x000002ca                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x000002da        0x6 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+ *(.init9)
+ *(.text)
+ .text          0x000002e0        0x2 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+                0x000002e0                __vector_22
+                0x000002e0                __vector_28
+                0x000002e0                __vector_1
+                0x000002e0                __vector_32
+                0x000002e0                __vector_34
+                0x000002e0                __vector_24
+                0x000002e0                __vector_12
+                0x000002e0                __bad_interrupt
+                0x000002e0                __vector_6
+                0x000002e0                __vector_31
+                0x000002e0                __vector_35
+                0x000002e0                __vector_3
+                0x000002e0                __vector_23
+                0x000002e0                __vector_30
+                0x000002e0                __vector_25
+                0x000002e0                __vector_11
+                0x000002e0                __vector_13
+                0x000002e0                __vector_17
+                0x000002e0                __vector_19
+                0x000002e0                __vector_7
+                0x000002e0                __vector_27
+                0x000002e0                __vector_5
+                0x000002e0                __vector_33
+                0x000002e0                __vector_37
+                0x000002e0                __vector_4
+                0x000002e0                __vector_9
+                0x000002e0                __vector_2
+                0x000002e0                __vector_15
+                0x000002e0                __vector_36
+                0x000002e0                __vector_29
+                0x000002e0                __vector_8
+                0x000002e0                __vector_26
+                0x000002e0                __vector_14
+                0x000002e0                __vector_16
+                0x000002e0                __vector_18
+                0x000002e0                __vector_20
+                0x000002e2                . = ALIGN (0x2)
+ *(.text.*)
+ .text.LEDs_SetAllLEDs
+                0x000002e2        0xa AudioInputHost.o
+ .text.SetupHardware
+                0x000002ec       0x92 AudioInputHost.o
+                0x000002ec                SetupHardware
+ .text.EVENT_USB_Host_DeviceAttached
+                0x0000037e        0xa AudioInputHost.o
+                0x0000037e                EVENT_USB_Host_DeviceAttached
+ .text.EVENT_USB_Host_DeviceUnattached
+                0x00000388        0xa AudioInputHost.o
+                0x00000388                EVENT_USB_Host_DeviceUnattached
+ .text.EVENT_USB_Host_DeviceEnumerationComplete
+                0x00000392        0x4 AudioInputHost.o
+                0x00000392                EVENT_USB_Host_DeviceEnumerationComplete
+ .text.EVENT_USB_Host_HostError
+                0x00000396       0x3e AudioInputHost.o
+                0x00000396                EVENT_USB_Host_HostError
+ .text.EVENT_USB_Host_DeviceEnumerationFailed
+                0x000003d4       0x50 AudioInputHost.o
+                0x000003d4                EVENT_USB_Host_DeviceEnumerationFailed
+ .text.Audio_Task
+                0x00000424      0x134 AudioInputHost.o
+                0x00000424                Audio_Task
+ .text.main     0x00000558       0x14 AudioInputHost.o
+                0x00000558                main
+ .text.__vector_21
+                0x0000056c       0xd2 AudioInputHost.o
+                0x0000056c                __vector_21
+ .text.DComp_NextAudioControlInterface
+                0x0000063e       0x22 ConfigDescriptor.o
+                0x0000063e                DComp_NextAudioControlInterface
+ .text.DComp_NextAudioStreamInterface
+                0x00000660       0x22 ConfigDescriptor.o
+                0x00000660                DComp_NextAudioStreamInterface
+ .text.DComp_NextAudioInterfaceDataEndpoint
+                0x00000682       0x22 ConfigDescriptor.o
+                0x00000682                DComp_NextAudioInterfaceDataEndpoint
+ .text.ProcessConfigurationDescriptor
+                0x000006a4      0x132 ConfigDescriptor.o
+                0x000006a4                ProcessConfigurationDescriptor
+ .text.USB_Host_ResetDevice
+                0x000007d6       0xa8 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .text.USB_Host_WaitMS
+                0x0000087e       0xaa ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                0x0000087e                USB_Host_WaitMS
+ .text.USB_Host_ProcessNextHostState
+                0x00000928      0x264 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                0x00000928                USB_Host_ProcessNextHostState
+ .text.USB_Host_SetDeviceConfiguration
+                0x00000b8c       0x2c ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                0x00000b8c                USB_Host_SetDeviceConfiguration
+ .text.USB_Host_SetInterfaceAltSetting
+                0x00000bb8       0x2e ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                0x00000bb8                USB_Host_SetInterfaceAltSetting
+ .text.Pipe_ConfigurePipe
+                0x00000be6       0xce ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                0x00000be6                Pipe_ConfigurePipe
+ .text.Pipe_ClearPipes
+                0x00000cb4       0x28 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                0x00000cb4                Pipe_ClearPipes
+ .text.USB_Disable
+                0x00000cdc       0x30 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                0x00000cdc                USB_Disable
+ .text.USB_ResetInterface
+                0x00000d0c       0x9c ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                0x00000d0c                USB_ResetInterface
+ .text.USB_Init
+                0x00000da8       0x12 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                0x00000da8                USB_Init
+ .text.USB_INT_DisableAllInterrupts
+                0x00000dba       0x10 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x00000dba                USB_INT_DisableAllInterrupts
+ .text.USB_INT_ClearAllInterrupts
+                0x00000dca        0xa ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x00000dca                USB_INT_ClearAllInterrupts
+ .text.__vector_10
+                0x00000dd4      0x126 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x00000dd4                __vector_10
+ .text.USB_Host_GetDeviceConfigDescriptor
+                0x00000efa       0xae ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                0x00000efa                USB_Host_GetDeviceConfigDescriptor
+ .text.USB_GetNextDescriptorComp
+                0x00000fa8       0x86 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                0x00000fa8                USB_GetNextDescriptorComp
+ .text.USB_Event_Stub
+                0x0000102e        0x2 ../../../../LUFA/Drivers/USB/Core/Events.o
+                0x0000102e                EVENT_USB_Host_StartOfFrame
+                0x0000102e                USB_Event_Stub
+ .text.USB_Host_WaitForIOS
+                0x00001030       0x52 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .text.USB_Host_SendControlRequest
+                0x00001082      0x22c ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+                0x00001082                USB_Host_SendControlRequest
+ .text.USB_USBTask
+                0x000012ae       0x1c ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                0x000012ae                USB_USBTask
+ .text.Serial_putchar
+                0x000012ca       0x12 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                0x000012ca                Serial_putchar
+ .text.Serial_getchar
+                0x000012dc       0x26 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                0x000012dc                Serial_getchar
+ .text.avr-libc
+                0x00001302       0x3e c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+                0x00001302                printf_P
+ .text.avr-libc
+                0x00001340       0x70 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+                0x00001340                puts_P
+ .text.avr-libc
+                0x000013b0      0x406 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+                0x000013b0                vfprintf
+ .text.avr-libc
+                0x000017b6       0x16 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+                0x000017b6                strnlen_P
+ .text.avr-libc
+                0x000017cc       0x16 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+                0x000017cc                strnlen
+ .text.avr-libc
+                0x000017e2       0x58 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+                0x000017e2                fputc
+ .text.avr-libc
+                0x0000183a       0xbc c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+                0x0000183a                __ultoa_invert
+                0x000018f6                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x000018f6        0x0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+                0x000018f6                _exit
+                0x000018f6                exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x000018f6        0x4 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+ *(.fini0)
+                0x000018fa                _etext = .
+
+.data           0x00800100       0x1c load address 0x000018fa
+                0x00800100                PROVIDE (__data_start, .)
+ *(.data)
+ .data          0x00800100        0x3 AudioInputHost.o
+ .data          0x00800103       0x18 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .data          0x0080011b        0x1 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                0x0080011b                USB_ControlPipeSize
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+                0x0080011c                . = ALIGN (0x2)
+                0x0080011c                _edata = .
+                0x0080011c                PROVIDE (__data_end, .)
+
+.bss            0x0080011c       0x24
+                0x0080011c                PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss           0x0080011c        0x3 ConfigDescriptor.o
+                0x0080011c                StreamingInterfaceIndex
+                0x0080011d                StreamingInterfaceAltSetting
+                0x0080011e                StreamingEndpointAddress
+ .bss           0x0080011f        0x3 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ *(.bss*)
+ *(COMMON)
+ COMMON         0x00800122        0xa ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                0x00800122                USB_IsInitialized
+                0x00800123                USB_ControlRequest
+                0x0080012b                USB_HostState
+ COMMON         0x0080012c        0xe ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                0x0080012c                USARTSerialStream
+ COMMON         0x0080013a        0x6 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+                0x0080013a                __iob
+                0x00800140                PROVIDE (__bss_end, .)
+                0x000018fa                __data_load_start = LOADADDR (.data)
+                0x00001916                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x00800140        0x0
+                0x00800140                PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                0x00800140                PROVIDE (__noinit_end, .)
+                0x00800140                _end = .
+                0x00800140                PROVIDE (__heap_start, .)
+
+.eeprom         0x00810000        0x0
+ *(.eeprom*)
+                0x00810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab           0x00000000      0xe28
+ *(.stab)
+ .stab          0x00000000      0x6cc c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+ .stab          0x000006cc       0x90 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+                                 0x9c (size before relaxing)
+ .stab          0x0000075c      0x114 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+                                0x120 (size before relaxing)
+ .stab          0x00000870       0x9c c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+                                 0xa8 (size before relaxing)
+ .stab          0x0000090c       0x9c c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+                                 0xa8 (size before relaxing)
+ .stab          0x000009a8      0x480 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+                                0x48c (size before relaxing)
+
+.stabstr        0x00000000      0x26b
+ *(.stabstr)
+ .stabstr       0x00000000      0x26b c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges  0x00000000      0x3b0
+ *(.debug_aranges)
+ .debug_aranges
+                0x00000000       0x68 AudioInputHost.o
+ .debug_aranges
+                0x00000068       0x38 ConfigDescriptor.o
+ .debug_aranges
+                0x000000a0       0x58 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_aranges
+                0x000000f8       0x38 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_aranges
+                0x00000130       0x30 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_aranges
+                0x00000160       0x30 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_aranges
+                0x00000190       0x78 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_aranges
+                0x00000208       0x40 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_aranges
+                0x00000248       0x20 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_aranges
+                0x00000268       0x28 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_aranges
+                0x00000290       0x20 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_aranges
+                0x000002b0       0x38 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_aranges
+                0x000002e8       0x48 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_aranges
+                0x00000330       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_aranges
+                0x00000350       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_aranges
+                0x00000370       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_aranges
+                0x00000390       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_pubnames
+                0x00000000      0x89a
+ *(.debug_pubnames)
+ .debug_pubnames
+                0x00000000      0x107 AudioInputHost.o
+ .debug_pubnames
+                0x00000107       0xff ConfigDescriptor.o
+ .debug_pubnames
+                0x00000206       0xf4 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_pubnames
+                0x000002fa       0x86 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_pubnames
+                0x00000380       0x46 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_pubnames
+                0x000003c6       0x62 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_pubnames
+                0x00000428      0x13b ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_pubnames
+                0x00000563       0xc2 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_pubnames
+                0x00000625       0x25 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_pubnames
+                0x0000064a       0x32 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_pubnames
+                0x0000067c       0x61 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_pubnames
+                0x000006dd       0x7e ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_pubnames
+                0x0000075b       0xac ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_pubnames
+                0x00000807       0x1c c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .debug_pubnames
+                0x00000823       0x1f c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_pubnames
+                0x00000842       0x1d c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_pubnames
+                0x0000085f       0x1f c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_pubnames
+                0x0000087e       0x1c c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_info     0x00000000     0x56c7
+ *(.debug_info)
+ .debug_info    0x00000000      0x81f AudioInputHost.o
+ .debug_info    0x0000081f      0x5dd ConfigDescriptor.o
+ .debug_info    0x00000dfc        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_info    0x00000dfc        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_info    0x00000dfc      0xc19 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_info    0x00001a15      0x5b1 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_info    0x00001fc6      0x409 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_info    0x000023cf      0x495 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_info    0x00002864        0x0 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_info    0x00002864      0xac6 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_info    0x0000332a      0x642 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_info    0x0000396c        0x0 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_info    0x0000396c       0x85 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_info    0x000039f1      0x62a ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_info    0x0000401b      0x1e8 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_info    0x00004203      0x6f9 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_info    0x000048fc      0x413 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_info    0x00004d0f      0x14f c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .debug_info    0x00004e5e      0x1c6 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_info    0x00005024      0x1ec c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_info    0x00005210      0x350 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_info    0x00005560      0x167 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev   0x00000000     0x1b65
+ *(.debug_abbrev)
+ .debug_abbrev  0x00000000      0x334 AudioInputHost.o
+ .debug_abbrev  0x00000334      0x185 ConfigDescriptor.o
+ .debug_abbrev  0x000004b9        0x1 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_abbrev  0x000004ba        0x1 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_abbrev  0x000004bb      0x2f6 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_abbrev  0x000007b1      0x1d9 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_abbrev  0x0000098a      0x14d ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_abbrev  0x00000ad7      0x12a ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_abbrev  0x00000c01        0x1 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_abbrev  0x00000c02      0x164 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_abbrev  0x00000d66      0x1ca ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_abbrev  0x00000f30        0x1 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_abbrev  0x00000f31       0x41 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_abbrev  0x00000f72      0x1ea ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_abbrev  0x0000115c      0x11a ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_abbrev  0x00001276      0x1ec ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_abbrev  0x00001462      0x1d1 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_abbrev  0x00001633       0xc5 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .debug_abbrev  0x000016f8      0x11c c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_abbrev  0x00001814      0x119 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_abbrev  0x0000192d      0x15f c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_abbrev  0x00001a8c       0xd9 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_line     0x00000000     0x53bf
+ *(.debug_line)
+ .debug_line    0x00000000      0x725 AudioInputHost.o
+ .debug_line    0x00000725      0x3df ConfigDescriptor.o
+ .debug_line    0x00000b04       0x24 ../../../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_line    0x00000b28       0x24 ../../../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_line    0x00000b4c      0xa69 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_line    0x000015b5      0x5f9 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_line    0x00001bae      0x3f1 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_line    0x00001f9f      0x464 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_line    0x00002403       0x24 ../../../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_line    0x00002427      0xcf7 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_line    0x0000311e      0x3e3 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_line    0x00003501       0x24 ../../../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_line    0x00003525       0x86 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_line    0x000035ab      0x5f5 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_line    0x00003ba0      0x1e4 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_line    0x00003d84      0x7b0 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_line    0x00004534      0x326 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_line    0x0000485a       0xe5 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .debug_line    0x0000493f      0x1a4 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_line    0x00004ae3      0x142 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_line    0x00004c25      0x659 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_line    0x0000527e      0x141 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_frame    0x00000000      0x540
+ *(.debug_frame)
+ .debug_frame   0x00000000       0xb0 AudioInputHost.o
+ .debug_frame   0x000000b0       0x50 ConfigDescriptor.o
+ .debug_frame   0x00000100       0x90 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_frame   0x00000190       0x50 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_frame   0x000001e0       0x40 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_frame   0x00000220       0x40 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_frame   0x00000260       0xd0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_frame   0x00000330       0x60 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_frame   0x00000390       0x20 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_frame   0x000003b0       0x30 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_frame   0x000003e0       0x20 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_frame   0x00000400       0x50 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_frame   0x00000450       0x70 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_frame   0x000004c0       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_frame   0x000004e0       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_frame   0x00000500       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_frame   0x00000520       0x20 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_str      0x00000000     0x26bf
+ *(.debug_str)
+ .debug_str     0x00000000      0x830 AudioInputHost.o
+                                0x8aa (size before relaxing)
+ .debug_str     0x00000830      0x53e ConfigDescriptor.o
+                                0x7d0 (size before relaxing)
+ .debug_str     0x00000d6e      0x6cc ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                0xbc8 (size before relaxing)
+ .debug_str     0x0000143a      0x269 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                0x5b7 (size before relaxing)
+ .debug_str     0x000016a3      0x16d ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                0x516 (size before relaxing)
+ .debug_str     0x00001810       0xaf ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                0x4f5 (size before relaxing)
+ .debug_str     0x000018bf      0x260 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+                                0x3a4 (size before relaxing)
+ .debug_str     0x00001b1f      0x234 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                                0x81e (size before relaxing)
+ .debug_str     0x00001d53       0x3a ../../../../LUFA/Drivers/USB/Core/Events.o
+                                0x11f (size before relaxing)
+ .debug_str     0x00001d8d      0x15b ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+                                0x519 (size before relaxing)
+ .debug_str     0x00001ee8       0x45 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                0x1ee (size before relaxing)
+ .debug_str     0x00001f2d      0x487 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+                                0x60d (size before relaxing)
+ .debug_str     0x000023b4       0xfd ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                                0x26d (size before relaxing)
+ .debug_str     0x000024b1       0x4b c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+                                 0xef (size before relaxing)
+ .debug_str     0x000024fc       0x7a c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+                                0x126 (size before relaxing)
+ .debug_str     0x00002576       0x55 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+                                0x120 (size before relaxing)
+ .debug_str     0x000025cb       0xa1 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+                                0x174 (size before relaxing)
+ .debug_str     0x0000266c       0x53 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+                                 0xf8 (size before relaxing)
+
+.debug_loc      0x00000000     0x3422
+ *(.debug_loc)
+ .debug_loc     0x00000000       0xff AudioInputHost.o
+ .debug_loc     0x000000ff      0x280 ConfigDescriptor.o
+ .debug_loc     0x0000037f      0x3de ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_loc     0x0000075d      0x400 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_loc     0x00000b5d       0x13 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_loc     0x00000b70      0x118 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_loc     0x00000c88      0xfe0 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_loc     0x00001c68      0x365 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_loc     0x00001fcd      0x2c5 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_loc     0x00002292       0x1f ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_loc     0x000022b1      0x832 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_loc     0x00002ae3      0x15e ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_loc     0x00002c41       0xe0 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_loc     0x00002d21      0x6b1 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_loc     0x000033d2       0x50 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(AudioInputHost.elf elf32-avr)
+LOAD linker stubs
+
+.debug_pubtypes
+                0x00000000      0xa86
+ .debug_pubtypes
+                0x00000000      0x117 AudioInputHost.o
+ .debug_pubtypes
+                0x00000117      0x179 ConfigDescriptor.o
+ .debug_pubtypes
+                0x00000290      0x146 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_pubtypes
+                0x000003d6       0x66 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_pubtypes
+                0x0000043c       0x59 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_pubtypes
+                0x00000495       0x88 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_pubtypes
+                0x0000051d       0x4b ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_pubtypes
+                0x00000568      0x17e ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_pubtypes
+                0x000006e6       0x12 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_pubtypes
+                0x000006f8       0xa0 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_pubtypes
+                0x00000798       0x44 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_pubtypes
+                0x000007dc      0x145 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_pubtypes
+                0x00000921       0x42 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_pubtypes
+                0x00000963       0x29 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+ .debug_pubtypes
+                0x0000098c       0x48 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_pubtypes
+                0x000009d4       0x36 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_pubtypes
+                0x00000a0a       0x53 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_pubtypes
+                0x00000a5d       0x29 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+.debug_ranges   0x00000000      0x490
+ .debug_ranges  0x00000000       0x58 AudioInputHost.o
+ .debug_ranges  0x00000058       0x58 ConfigDescriptor.o
+ .debug_ranges  0x000000b0       0x60 ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_ranges  0x00000110       0xb0 ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_ranges  0x000001c0       0x20 ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_ranges  0x000001e0       0x20 ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_ranges  0x00000200       0x68 ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_ranges  0x00000268       0x30 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+ .debug_ranges  0x00000298       0x10 ../../../../LUFA/Drivers/USB/Core/Events.o
+ .debug_ranges  0x000002a8       0x30 ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_ranges  0x000002d8       0x10 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_ranges  0x000002e8      0x100 ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_ranges  0x000003e8       0x50 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+ .debug_ranges  0x00000438       0x10 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+ .debug_ranges  0x00000448       0x10 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+ .debug_ranges  0x00000458       0x28 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .debug_ranges  0x00000480       0x10 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+
+Cross Reference Table
+
+Symbol                                            File
+Audio_Task                                        AudioInputHost.o
+CALLBACK_HIDParser_FilterHIDReportItem            ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+DComp_NextAudioControlInterface                   ConfigDescriptor.o
+DComp_NextAudioInterfaceDataEndpoint              ConfigDescriptor.o
+DComp_NextAudioStreamInterface                    ConfigDescriptor.o
+EVENT_USB_Host_DeviceAttached                     AudioInputHost.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+EVENT_USB_Host_DeviceEnumerationComplete          AudioInputHost.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+EVENT_USB_Host_DeviceEnumerationFailed            AudioInputHost.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+EVENT_USB_Host_DeviceUnattached                   AudioInputHost.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+EVENT_USB_Host_HostError                          AudioInputHost.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+EVENT_USB_Host_StartOfFrame                       ../../../../LUFA/Drivers/USB/Core/Events.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+Pipe_ClearPipes                                   ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+Pipe_ConfigurePipe                                ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  ConfigDescriptor.o
+Pipe_Discard_Stream                               ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_IsEndpointBound                              ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+Pipe_Null_Stream                                  ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Read_EStream_BE                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Read_EStream_LE                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Read_Stream_BE                               ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Read_Stream_LE                               ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_WaitUntilReady                               ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_EStream_BE                             ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_EStream_LE                             ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_PStream_BE                             ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_PStream_LE                             ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_Stream_BE                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+Pipe_Write_Stream_LE                              ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ProcessConfigurationDescriptor                    ConfigDescriptor.o
+                                                  AudioInputHost.o
+Serial_SendData                                   ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+Serial_SendString                                 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+Serial_SendString_P                               ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+Serial_getchar                                    ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                                                  AudioInputHost.o
+Serial_getchar_Blocking                           ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+Serial_putchar                                    ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                                                  AudioInputHost.o
+SetupHardware                                     AudioInputHost.o
+StreamingEndpointAddress                          ConfigDescriptor.o
+                                                  AudioInputHost.o
+StreamingInterfaceAltSetting                      ConfigDescriptor.o
+                                                  AudioInputHost.o
+StreamingInterfaceIndex                           ConfigDescriptor.o
+                                                  AudioInputHost.o
+USARTSerialStream                                 ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                                                  AudioInputHost.o
+USB_ControlPipeSize                               ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+USB_ControlRequest                                ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                                  ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+                                                  ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+USB_Disable                                       ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                                  AudioInputHost.o
+USB_Event_Stub                                    ../../../../LUFA/Drivers/USB/Core/Events.o
+USB_GetHIDReportItemInfo                          ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+USB_GetHIDReportSize                              ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+USB_GetNextDescriptorComp                         ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                                                  ConfigDescriptor.o
+USB_GetNextDescriptorOfType                       ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+USB_GetNextDescriptorOfTypeAfter                  ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+USB_GetNextDescriptorOfTypeBefore                 ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+USB_HostState                                     ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+USB_Host_ClearPipeStall                           ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+USB_Host_GetDeviceConfigDescriptor                ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                                                  ConfigDescriptor.o
+USB_Host_GetDeviceDescriptor                      ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+USB_Host_GetDeviceStringDescriptor                ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+USB_Host_ProcessNextHostState                     ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/USBTask.o
+USB_Host_SendControlRequest                       ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+                                                  ../../../../LUFA/Drivers/USB/Core/ConfigDescriptor.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+USB_Host_SetDeviceConfiguration                   ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+USB_Host_SetInterfaceAltSetting                   ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+USB_Host_WaitMS                                   ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/HostStandardReq.o
+USB_INT_ClearAllInterrupts                        ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+USB_INT_DisableAllInterrupts                      ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+USB_Init                                          ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                                  AudioInputHost.o
+USB_IsInitialized                                 ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+USB_ProcessHIDReport                              ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+USB_ResetInterface                                ../../../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+USB_SetHIDReportItemInfo                          ../../../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+USB_USBTask                                       ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+                                                  AudioInputHost.o
+__bad_interrupt                                   c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__bss_end                                         c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+__bss_start                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+__data_end                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+__data_load_start                                 c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+__data_start                                      c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+__do_clear_bss                                    c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_clear_bss.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+                                                  ../../../../LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/USBTask.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  ConfigDescriptor.o
+__do_copy_data                                    c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_copy_data.o)
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+                                                  AudioInputHost.o
+__eerd_byte_usb1287                               c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eerd_byte_at90usb1287.o)
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+__eeupd_byte_usb1287                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+                                                  ../../../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+__eeupd_r18_usb1287                               c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(eeupd_byte_at90usb1287.o)
+__heap_end                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__init                                            c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__iob                                             c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(iob.o)
+                                                  AudioInputHost.o
+__stack                                           c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__ultoa_invert                                    c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+__vector_1                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_10                                       ../../../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_11                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_12                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_13                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_14                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_15                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_16                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_17                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_18                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_19                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_2                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_20                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_21                                       AudioInputHost.o
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_22                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_23                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_24                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_25                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_26                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_27                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_28                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_29                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_3                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_30                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_31                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_32                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_33                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_34                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_35                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_36                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_37                                       c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_4                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_5                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_6                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_7                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_8                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_9                                        c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vector_default                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+__vectors                                         c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+_exit                                             c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+exit                                              c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr51\libgcc.a(_exit.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+fputc                                             c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(fputc.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+main                                              AudioInputHost.o
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51/crtusb1286.o
+printf_P                                          c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
+                                                  AudioInputHost.o
+puts_P                                            c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(puts_p.o)
+                                                  AudioInputHost.o
+strnlen                                           c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+strnlen_P                                         c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+vfprintf                                          c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+                                                  c:/program files (x86)/atmel/avr studio 5.0/extensions/application/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr51\libc.a(printf_p.o)
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.o b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.o
new file mode 100644
index 0000000000000000000000000000000000000000..f8bafd3d1332c63e8a1f0fc5386c44051f4d23da
GIT binary patch
literal 20140
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

literal 0
HcmV?d00001

diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym
new file mode 100644
index 000000000..498ebbca4
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym
@@ -0,0 +1,267 @@
+         U CALLBACK_HIDParser_FilterHIDReportItem
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 W __vector_default
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+00000098 t __c.3939
+000000b1 t __c.3935
+00000108 t __c.3933
+0000014b t __c.3930
+00000165 t __c.3928
+0000017c t __c.3926
+000001a6 t __c.3924
+000001bd t __c.3917
+00000213 t __c.3910
+00000242 t __c.3902
+00000261 t __c.3897
+0000027e t __c.3888
+000002a4 T __ctors_end
+000002a4 T __ctors_start
+000002a4 T __dtors_end
+000002a4 T __dtors_start
+000002a4 W __init
+000002a4 T __trampolines_end
+000002a4 T __trampolines_start
+000002b0 T __do_copy_data
+000002ca T __do_clear_bss
+000002d2 t .do_clear_bss_loop
+000002d4 t .do_clear_bss_start
+000002e0 T __bad_interrupt
+000002e0 W __vector_1
+000002e0 W __vector_11
+000002e0 W __vector_12
+000002e0 W __vector_13
+000002e0 W __vector_14
+000002e0 W __vector_15
+000002e0 W __vector_16
+000002e0 W __vector_17
+000002e0 W __vector_18
+000002e0 W __vector_19
+000002e0 W __vector_2
+000002e0 W __vector_20
+000002e0 W __vector_22
+000002e0 W __vector_23
+000002e0 W __vector_24
+000002e0 W __vector_25
+000002e0 W __vector_26
+000002e0 W __vector_27
+000002e0 W __vector_28
+000002e0 W __vector_29
+000002e0 W __vector_3
+000002e0 W __vector_30
+000002e0 W __vector_31
+000002e0 W __vector_32
+000002e0 W __vector_33
+000002e0 W __vector_34
+000002e0 W __vector_35
+000002e0 W __vector_36
+000002e0 W __vector_37
+000002e0 W __vector_4
+000002e0 W __vector_5
+000002e0 W __vector_6
+000002e0 W __vector_7
+000002e0 W __vector_8
+000002e0 W __vector_9
+000002e2 t LEDs_SetAllLEDs
+000002ec T SetupHardware
+0000037e T EVENT_USB_Host_DeviceAttached
+00000388 T EVENT_USB_Host_DeviceUnattached
+00000392 T EVENT_USB_Host_DeviceEnumerationComplete
+00000396 T EVENT_USB_Host_HostError
+000003d4 T EVENT_USB_Host_DeviceEnumerationFailed
+00000424 T Audio_Task
+00000558 T main
+0000056c T __vector_21
+0000063e T DComp_NextAudioControlInterface
+00000660 T DComp_NextAudioStreamInterface
+00000682 T DComp_NextAudioInterfaceDataEndpoint
+000006a4 T ProcessConfigurationDescriptor
+000007d6 t USB_Host_ResetDevice
+0000087e T USB_Host_WaitMS
+00000928 T USB_Host_ProcessNextHostState
+00000b8c T USB_Host_SetDeviceConfiguration
+00000bb8 T USB_Host_SetInterfaceAltSetting
+00000be6 T Pipe_ConfigurePipe
+00000cb4 T Pipe_ClearPipes
+00000cdc T USB_Disable
+00000d0c T USB_ResetInterface
+00000da8 T USB_Init
+00000dba T USB_INT_DisableAllInterrupts
+00000dca T USB_INT_ClearAllInterrupts
+00000dd4 T __vector_10
+00000efa T USB_Host_GetDeviceConfigDescriptor
+00000fa8 T USB_GetNextDescriptorComp
+0000102e W EVENT_USB_Host_StartOfFrame
+0000102e T USB_Event_Stub
+00001030 t USB_Host_WaitForIOS
+00001082 T USB_Host_SendControlRequest
+000012ae T USB_USBTask
+000012ca T Serial_putchar
+000012dc T Serial_getchar
+00001302 T printf_P
+00001340 T puts_P
+000013b0 T vfprintf
+000017b6 T strnlen_P
+000017cc T strnlen
+000017e2 T fputc
+0000183a T __ultoa_invert
+000018f6 T _exit
+000018f6 W exit
+000018f8 t __stop_program
+000018fa A __data_load_start
+000018fa T _etext
+00001916 A __data_load_end
+000020ff W __stack
+00800100 d C.5.5024
+00800100 D __data_start
+00800103 d C.0.3420
+0080010b d C.10.3637
+00800113 d C.7.3627
+0080011b D USB_ControlPipeSize
+0080011c B StreamingInterfaceIndex
+0080011c B __bss_start
+0080011c D __data_end
+0080011c D _edata
+0080011d B StreamingInterfaceAltSetting
+0080011e B StreamingEndpointAddress
+0080011f b PostWaitState.2492
+00800120 b WaitMSRemaining.2491
+00800122 B USB_IsInitialized
+00800123 B USB_ControlRequest
+0080012b B USB_HostState
+0080012c B USARTSerialStream
+0080013a B __iob
+00800140 B __bss_end
+00800140 N _end
+00810000 N __eeprom_end
diff --git a/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.c b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.c
new file mode 100644
index 000000000..d0ca91a08
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.c
@@ -0,0 +1,183 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  USB Device Configuration Descriptor processing routines, to determine the correct pipe configurations
+ *  needed to communication with an attached USB device. Descriptors are special  computer-readable structures
+ *  which the host requests upon device enumeration, to determine the device's capabilities and functions.
+ */
+
+#include "ConfigDescriptor.h"
+
+uint8_t StreamingInterfaceIndex      = 0;
+uint8_t StreamingInterfaceAltSetting = 0;
+uint8_t StreamingEndpointAddress     = 0;
+
+uint8_t ProcessConfigurationDescriptor(void)
+{
+	uint8_t  ConfigDescriptorData[512];
+	void*    CurrConfigLocation = ConfigDescriptorData;
+	uint16_t CurrConfigBytesRem;
+
+	USB_Descriptor_Interface_t* AudioControlInterface   = NULL;
+	USB_Descriptor_Interface_t* AudioStreamingInterface = NULL;
+	USB_Descriptor_Endpoint_t*  DataINEndpoint          = NULL;
+
+	/* Retrieve the entire configuration descriptor into the allocated buffer */
+	switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
+	{
+		case HOST_GETCONFIG_Successful:
+			break;
+		case HOST_GETCONFIG_InvalidData:
+			return InvalidConfigDataReturned;
+		case HOST_GETCONFIG_BuffOverflow:
+			return DescriptorTooLarge;
+		default:
+			return ControlError;
+	}
+
+	while (!(DataINEndpoint))
+	{
+		if (!(AudioControlInterface) ||
+		    USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+		                              DComp_NextAudioInterfaceDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
+		{
+			if (!(AudioControlInterface))
+			{
+				if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+											  DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)
+				{
+					/* Descriptor not found, error out */
+					return NoCompatibleInterfaceFound;
+				}
+
+				/* Save the interface in case we need to refer back to it later */
+				AudioControlInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);			
+			}
+		
+			if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+										  DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)
+			{
+				if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
+											  DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)
+				{
+					/* Descriptor not found, error out */
+					return NoCompatibleInterfaceFound;
+				}
+
+				/* Save the interface in case we need to refer back to it later */
+				AudioControlInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
+			}
+
+			/* Save the interface in case we need to refer back to it later */
+			AudioStreamingInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
+
+			/* Skip the remainder of the loop as we have not found an endpoint yet */
+			continue;
+		}
+
+		/* Retrieve the endpoint address from the endpoint descriptor */
+		USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
+
+		/* If the endpoint is a IN type endpoint */
+		if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+		  DataINEndpoint = EndpointData;
+	}
+
+	StreamingInterfaceIndex      = AudioStreamingInterface->InterfaceNumber;
+	StreamingInterfaceAltSetting = AudioStreamingInterface->AlternateSetting;
+	StreamingEndpointAddress     = DataINEndpoint->EndpointAddress;
+
+	/* Configure the HID data IN pipe */
+	Pipe_ConfigurePipe(AUDIO_DATA_IN_PIPE, EP_TYPE_ISOCHRONOUS, PIPE_TOKEN_IN,
+	                   DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, PIPE_BANK_DOUBLE);
+
+	/* Valid data found, return success */
+	return SuccessfulConfigRead;
+}
+
+uint8_t DComp_NextAudioControlInterface(void* CurrentDescriptor)
+{
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Interface)
+	{
+		USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+		    (Interface->SubClass == AUDIO_CSCP_ControlSubclass) &&
+		    (Interface->Protocol == AUDIO_CSCP_ControlProtocol))
+		{
+			return DESCRIPTOR_SEARCH_Found;
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+
+uint8_t DComp_NextAudioStreamInterface(void* CurrentDescriptor)
+{
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Interface)
+	{
+		USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
+
+		if ((Interface->Class    == AUDIO_CSCP_AudioClass) &&
+		    (Interface->SubClass == AUDIO_CSCP_AudioStreamingSubclass) &&
+		    (Interface->Protocol == AUDIO_CSCP_StreamingProtocol))
+		{
+			return DESCRIPTOR_SEARCH_Found;
+		}
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+
+uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
+{
+	USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
+
+	if (Header->Type == DTYPE_Endpoint)
+	{
+		USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t);
+
+		if ((Endpoint->Attributes & EP_TYPE_MASK) == EP_TYPE_ISOCHRONOUS)
+		  return DESCRIPTOR_SEARCH_Found;
+	}
+	else if (Header->Type == DTYPE_Interface)
+	{
+		return DESCRIPTOR_SEARCH_Fail;
+	}
+
+	return DESCRIPTOR_SEARCH_NotFound;
+}
+
diff --git a/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.h b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.h
new file mode 100644
index 000000000..4a1cf9093
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.h
@@ -0,0 +1,72 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Header file for ConfigDescriptor.c.
+ */
+
+#ifndef _CONFIGDESCRIPTOR_H_
+#define _CONFIGDESCRIPTOR_H_
+
+	/* Includes: */
+		#include <LUFA/Drivers/USB/USB.h>
+
+		#include "AudioInputHost.h"
+
+	/* Macros: */
+		/** Pipe number for the Audio data IN pipe. */
+		#define AUDIO_DATA_IN_PIPE          1
+
+	/* Enums: */
+		/** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */
+		enum KeyboardHost_GetConfigDescriptorDataCodes_t
+		{
+			SuccessfulConfigRead            = 0, /**< Configuration Descriptor was processed successfully */
+			ControlError                    = 1, /**< A control request to the device failed to complete successfully */
+			DescriptorTooLarge              = 2, /**< The device's Configuration Descriptor is too large to process */
+			InvalidConfigDataReturned       = 3, /**< The device returned an invalid Configuration Descriptor */
+			NoCompatibleInterfaceFound      = 4, /**< A compatible interface with the required endpoints was not found */
+		};
+
+	/* External Variables: */
+		extern uint8_t StreamingInterfaceIndex;
+		extern uint8_t StreamingInterfaceAltSetting;
+		extern uint8_t StreamingEndpointAddress;
+
+	/* Function Prototypes: */
+		uint8_t ProcessConfigurationDescriptor(void);
+
+		uint8_t DComp_NextAudioControlInterface(void* CurrentDescriptor);
+		uint8_t DComp_NextAudioStreamInterface(void* CurrentDescriptor);
+		uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor);
+
+#endif
+
diff --git a/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.lst b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.lst
new file mode 100644
index 000000000..9a6378629
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.lst
@@ -0,0 +1,400 @@
+   1               		.file	"ConfigDescriptor.c"
+   2               	__SREG__ = 0x3f
+   3               	__SP_H__ = 0x3e
+   4               	__SP_L__ = 0x3d
+   5               	__CCP__ = 0x34
+   6               	__tmp_reg__ = 0
+   7               	__zero_reg__ = 1
+  15               	.Ltext0:
+  16               		.section	.text.DComp_NextAudioControlInterface,"ax",@progbits
+  17               	.global	DComp_NextAudioControlInterface
+  19               	DComp_NextAudioControlInterface:
+  20               	.LFB132:
+  21               	.LSM0:
+  22               	.LVL0:
+  23               	/* prologue: function */
+  24               	/* frame size = 0 */
+  25               	/* stack size = 0 */
+  26               	.L__stack_usage = 0
+  27 0000 FC01      		movw r30,r24
+  28               	.LVL1:
+  29               	.LSM1:
+  30 0002 8181      		ldd r24,Z+1
+  31               	.LVL2:
+  32 0004 8430      		cpi r24,lo8(4)
+  33 0006 01F4      		brne .L5
+  34               	.LVL3:
+  35               	.LBB2:
+  36               	.LSM2:
+  37 0008 8581      		ldd r24,Z+5
+  38 000a 8130      		cpi r24,lo8(1)
+  39 000c 01F4      		brne .L5
+  40               	.LSM3:
+  41 000e 8681      		ldd r24,Z+6
+  42 0010 8130      		cpi r24,lo8(1)
+  43 0012 01F4      		brne .L5
+  44               	.LSM4:
+  45 0014 8781      		ldd r24,Z+7
+  46 0016 8823      		tst r24
+  47 0018 01F0      		breq .L6
+  48               	.LVL4:
+  49               	.L5:
+  50               	.LSM5:
+  51 001a 82E0      		ldi r24,lo8(2)
+  52 001c 0895      		ret
+  53               	.LVL5:
+  54               	.L6:
+  55               	.LSM6:
+  56 001e 80E0      		ldi r24,lo8(0)
+  57               	.LBE2:
+  58               	.LSM7:
+  59 0020 0895      		ret
+  60               	.LFE132:
+  62               		.section	.text.DComp_NextAudioStreamInterface,"ax",@progbits
+  63               	.global	DComp_NextAudioStreamInterface
+  65               	DComp_NextAudioStreamInterface:
+  66               	.LFB133:
+  67               	.LSM8:
+  68               	.LVL6:
+  69               	/* prologue: function */
+  70               	/* frame size = 0 */
+  71               	/* stack size = 0 */
+  72               	.L__stack_usage = 0
+  73 0000 FC01      		movw r30,r24
+  74               	.LVL7:
+  75               	.LSM9:
+  76 0002 8181      		ldd r24,Z+1
+  77               	.LVL8:
+  78 0004 8430      		cpi r24,lo8(4)
+  79 0006 01F4      		brne .L11
+  80               	.LVL9:
+  81               	.LBB3:
+  82               	.LSM10:
+  83 0008 8581      		ldd r24,Z+5
+  84 000a 8130      		cpi r24,lo8(1)
+  85 000c 01F4      		brne .L11
+  86               	.LSM11:
+  87 000e 8681      		ldd r24,Z+6
+  88 0010 8230      		cpi r24,lo8(2)
+  89 0012 01F4      		brne .L11
+  90               	.LSM12:
+  91 0014 8781      		ldd r24,Z+7
+  92 0016 8823      		tst r24
+  93 0018 01F0      		breq .L12
+  94               	.LVL10:
+  95               	.L11:
+  96               	.LSM13:
+  97 001a 82E0      		ldi r24,lo8(2)
+  98 001c 0895      		ret
+  99               	.LVL11:
+ 100               	.L12:
+ 101               	.LSM14:
+ 102 001e 80E0      		ldi r24,lo8(0)
+ 103               	.LBE3:
+ 104               	.LSM15:
+ 105 0020 0895      		ret
+ 106               	.LFE133:
+ 108               		.section	.text.DComp_NextAudioInterfaceDataEndpoint,"ax",@progbits
+ 109               	.global	DComp_NextAudioInterfaceDataEndpoint
+ 111               	DComp_NextAudioInterfaceDataEndpoint:
+ 112               	.LFB134:
+ 113               	.LSM16:
+ 114               	.LVL12:
+ 115               	/* prologue: function */
+ 116               	/* frame size = 0 */
+ 117               	/* stack size = 0 */
+ 118               	.L__stack_usage = 0
+ 119 0000 FC01      		movw r30,r24
+ 120               	.LVL13:
+ 121               	.LSM17:
+ 122 0002 8181      		ldd r24,Z+1
+ 123               	.LVL14:
+ 124 0004 8530      		cpi r24,lo8(5)
+ 125 0006 01F4      		brne .L14
+ 126               	.LVL15:
+ 127               	.LBB4:
+ 128               	.LSM18:
+ 129 0008 8381      		ldd r24,Z+3
+ 130 000a 8370      		andi r24,lo8(3)
+ 131 000c 8130      		cpi r24,lo8(1)
+ 132 000e 01F4      		brne .L18
+ 133 0010 00C0      		rjmp .L16
+ 134               	.LVL16:
+ 135               	.L14:
+ 136               	.LBE4:
+ 137               	.LSM19:
+ 138 0012 8430      		cpi r24,lo8(4)
+ 139 0014 01F0      		breq .L17
+ 140               	.L18:
+ 141               	.LSM20:
+ 142 0016 82E0      		ldi r24,lo8(2)
+ 143 0018 0895      		ret
+ 144               	.LVL17:
+ 145               	.L16:
+ 146               	.LBB5:
+ 147               	.LSM21:
+ 148 001a 80E0      		ldi r24,lo8(0)
+ 149 001c 0895      		ret
+ 150               	.LVL18:
+ 151               	.L17:
+ 152               	.LBE5:
+ 153               	.LSM22:
+ 154 001e 81E0      		ldi r24,lo8(1)
+ 155               	.LSM23:
+ 156 0020 0895      		ret
+ 157               	.LFE134:
+ 159               		.section	.text.ProcessConfigurationDescriptor,"ax",@progbits
+ 160               	.global	ProcessConfigurationDescriptor
+ 162               	ProcessConfigurationDescriptor:
+ 163               	.LFB131:
+ 164               	.LSM24:
+ 165 0000 AF92      		push r10
+ 166 0002 BF92      		push r11
+ 167 0004 CF92      		push r12
+ 168 0006 DF92      		push r13
+ 169 0008 EF92      		push r14
+ 170 000a FF92      		push r15
+ 171 000c 0F93      		push r16
+ 172 000e 1F93      		push r17
+ 173 0010 DF93      		push r29
+ 174 0012 CF93      		push r28
+ 175 0014 CDB7      		in r28,__SP_L__
+ 176 0016 DEB7      		in r29,__SP_H__
+ 177 0018 C450      		subi r28,lo8(-(-516))
+ 178 001a D240      		sbci r29,hi8(-(-516))
+ 179 001c 0FB6      		in __tmp_reg__,__SREG__
+ 180 001e F894      		cli
+ 181 0020 DEBF      		out __SP_H__,r29
+ 182 0022 0FBE      		out __SREG__,__tmp_reg__
+ 183 0024 CDBF      		out __SP_L__,r28
+ 184               	/* prologue: function */
+ 185               	/* frame size = 516 */
+ 186               	/* stack size = 526 */
+ 187               	.L__stack_usage = 526
+ 188               	.LSM25:
+ 189 0026 AE01      		movw r20,r28
+ 190 0028 4B5F      		subi r20,lo8(-(5))
+ 191 002a 5F4F      		sbci r21,hi8(-(5))
+ 192 002c 5A83      		std Y+2,r21
+ 193 002e 4983      		std Y+1,r20
+ 194               	.LVL19:
+ 195               	.LSM26:
+ 196 0030 23E0      		ldi r18,lo8(3)
+ 197 0032 E22E      		mov r14,r18
+ 198 0034 F12C      		mov r15,__zero_reg__
+ 199 0036 EC0E      		add r14,r28
+ 200 0038 FD1E      		adc r15,r29
+ 201 003a 81E0      		ldi r24,lo8(1)
+ 202 003c B701      		movw r22,r14
+ 203 003e 20E0      		ldi r18,lo8(512)
+ 204 0040 32E0      		ldi r19,hi8(512)
+ 205 0042 0E94 0000 		call USB_Host_GetDeviceConfigDescriptor
+ 206 0046 8530      		cpi r24,lo8(5)
+ 207 0048 01F4      		brne .+2
+ 208 004a 00C0      		rjmp .L31
+ 209 004c 8630      		cpi r24,lo8(6)
+ 210 004e 01F0      		breq .L23
+ 211 0050 8823      		tst r24
+ 212 0052 01F4      		brne .L34
+ 213 0054 00E0      		ldi r16,lo8(0)
+ 214 0056 10E0      		ldi r17,hi8(0)
+ 215 0058 CC24      		clr r12
+ 216 005a DD24      		clr r13
+ 217 005c 5701      		movw r10,r14
+ 218 005e 7E01      		movw r14,r28
+ 219 0060 0894      		sec
+ 220 0062 E11C      		adc r14,__zero_reg__
+ 221 0064 F11C      		adc r15,__zero_reg__
+ 222 0066 00C0      		rjmp .L24
+ 223               	.L23:
+ 224               	.LSM27:
+ 225 0068 83E0      		ldi r24,lo8(3)
+ 226 006a 00C0      		rjmp .L22
+ 227               	.L34:
+ 228               	.LSM28:
+ 229 006c 81E0      		ldi r24,lo8(1)
+ 230 006e 00C0      		rjmp .L22
+ 231               	.LVL20:
+ 232               	.L30:
+ 233               	.LSM29:
+ 234 0070 9C01      		movw r18,r24
+ 235 0072 032F      		mov r16,r19
+ 236 0074 182F      		mov r17,r24
+ 237               	.LVL21:
+ 238               	.L24:
+ 239               	.LBB6:
+ 240               	.LSM30:
+ 241 0076 C114      		cp r12,__zero_reg__
+ 242 0078 D104      		cpc r13,__zero_reg__
+ 243 007a 01F0      		breq .L25
+ 244               	.LSM31:
+ 245 007c C501      		movw r24,r10
+ 246 007e B701      		movw r22,r14
+ 247 0080 40E0      		ldi r20,lo8(gs(DComp_NextAudioInterfaceDataEndpoint))
+ 248 0082 50E0      		ldi r21,hi8(gs(DComp_NextAudioInterfaceDataEndpoint))
+ 249 0084 0E94 0000 		call USB_GetNextDescriptorComp
+ 250               	.LSM32:
+ 251 0088 8823      		tst r24
+ 252 008a 01F4      		brne .L26
+ 253 008c 00C0      		rjmp .L36
+ 254               	.L25:
+ 255               	.LSM33:
+ 256 008e C501      		movw r24,r10
+ 257 0090 B701      		movw r22,r14
+ 258 0092 40E0      		ldi r20,lo8(gs(DComp_NextAudioControlInterface))
+ 259 0094 50E0      		ldi r21,hi8(gs(DComp_NextAudioControlInterface))
+ 260 0096 0E94 0000 		call USB_GetNextDescriptorComp
+ 261 009a 8823      		tst r24
+ 262 009c 01F4      		brne .L33
+ 263               	.LSM34:
+ 264 009e C980      		ldd r12,Y+1
+ 265 00a0 DA80      		ldd r13,Y+2
+ 266               	.LVL22:
+ 267               	.L26:
+ 268               	.LSM35:
+ 269 00a2 C501      		movw r24,r10
+ 270 00a4 B701      		movw r22,r14
+ 271 00a6 40E0      		ldi r20,lo8(gs(DComp_NextAudioStreamInterface))
+ 272 00a8 50E0      		ldi r21,hi8(gs(DComp_NextAudioStreamInterface))
+ 273 00aa 0E94 0000 		call USB_GetNextDescriptorComp
+ 274 00ae 8823      		tst r24
+ 275 00b0 01F0      		breq .L28
+ 276               	.LSM36:
+ 277 00b2 C501      		movw r24,r10
+ 278 00b4 B701      		movw r22,r14
+ 279 00b6 40E0      		ldi r20,lo8(gs(DComp_NextAudioControlInterface))
+ 280 00b8 50E0      		ldi r21,hi8(gs(DComp_NextAudioControlInterface))
+ 281 00ba 0E94 0000 		call USB_GetNextDescriptorComp
+ 282 00be 8823      		tst r24
+ 283 00c0 01F4      		brne .L33
+ 284               	.LSM37:
+ 285 00c2 C980      		ldd r12,Y+1
+ 286 00c4 DA80      		ldd r13,Y+2
+ 287               	.LVL23:
+ 288               	.L28:
+ 289               	.LSM38:
+ 290 00c6 0981      		ldd r16,Y+1
+ 291 00c8 1A81      		ldd r17,Y+2
+ 292               	.LVL24:
+ 293               	.LSM39:
+ 294 00ca 00C0      		rjmp .L29
+ 295               	.LVL25:
+ 296               	.L36:
+ 297               	.LSM40:
+ 298 00cc E981      		ldd r30,Y+1
+ 299 00ce FA81      		ldd r31,Y+2
+ 300               	.LVL26:
+ 301               	.LSM41:
+ 302 00d0 8281      		ldd r24,Z+2
+ 303 00d2 87FF      		sbrs r24,7
+ 304 00d4 00C0      		rjmp .L29
+ 305               	.LSM42:
+ 306 00d6 902F      		mov r25,r16
+ 307 00d8 812F      		mov r24,r17
+ 308               	.LVL27:
+ 309               	.LBE6:
+ 310               	.LSM43:
+ 311 00da 3097      		sbiw r30,0
+ 312 00dc 01F0      		breq .L30
+ 313               	.LSM44:
+ 314 00de D801      		movw r26,r16
+ 315 00e0 1296      		adiw r26,2
+ 316 00e2 8C91      		ld r24,X
+ 317 00e4 1297      		sbiw r26,2
+ 318 00e6 8093 0000 		sts StreamingInterfaceIndex,r24
+ 319               	.LSM45:
+ 320 00ea 1396      		adiw r26,3
+ 321 00ec 8C91      		ld r24,X
+ 322 00ee 8093 0000 		sts StreamingInterfaceAltSetting,r24
+ 323               	.LSM46:
+ 324 00f2 2281      		ldd r18,Z+2
+ 325 00f4 2093 0000 		sts StreamingEndpointAddress,r18
+ 326               	.LSM47:
+ 327 00f8 0481      		ldd r16,Z+4
+ 328 00fa 1581      		ldd r17,Z+5
+ 329               	.LVL28:
+ 330 00fc 81E0      		ldi r24,lo8(1)
+ 331 00fe 61E0      		ldi r22,lo8(1)
+ 332 0100 40E1      		ldi r20,lo8(16)
+ 333 0102 94E0      		ldi r25,lo8(4)
+ 334 0104 E92E      		mov r14,r25
+ 335               	.LVL29:
+ 336 0106 0E94 0000 		call Pipe_ConfigurePipe
+ 337               	.LVL30:
+ 338               	.LSM48:
+ 339 010a 80E0      		ldi r24,lo8(0)
+ 340 010c 00C0      		rjmp .L22
+ 341               	.LVL31:
+ 342               	.L31:
+ 343               	.LSM49:
+ 344 010e 82E0      		ldi r24,lo8(2)
+ 345 0110 00C0      		rjmp .L22
+ 346               	.LVL32:
+ 347               	.L33:
+ 348               	.LBB7:
+ 349               	.LSM50:
+ 350 0112 84E0      		ldi r24,lo8(4)
+ 351               	.L22:
+ 352               	/* epilogue start */
+ 353               	.LBE7:
+ 354               	.LSM51:
+ 355 0114 CC5F      		subi r28,lo8(-(516))
+ 356 0116 DD4F      		sbci r29,hi8(-(516))
+ 357 0118 0FB6      		in __tmp_reg__,__SREG__
+ 358 011a F894      		cli
+ 359 011c DEBF      		out __SP_H__,r29
+ 360 011e 0FBE      		out __SREG__,__tmp_reg__
+ 361 0120 CDBF      		out __SP_L__,r28
+ 362 0122 CF91      		pop r28
+ 363 0124 DF91      		pop r29
+ 364 0126 1F91      		pop r17
+ 365 0128 0F91      		pop r16
+ 366 012a FF90      		pop r15
+ 367 012c EF90      		pop r14
+ 368 012e DF90      		pop r13
+ 369 0130 CF90      		pop r12
+ 370 0132 BF90      		pop r11
+ 371 0134 AF90      		pop r10
+ 372 0136 0895      		ret
+ 373               	.L29:
+ 374               	.LVL33:
+ 375               	.LSM52:
+ 376 0138 902F      		mov r25,r16
+ 377 013a 812F      		mov r24,r17
+ 378 013c 00C0      		rjmp .L30
+ 379               	.LFE131:
+ 381               	.global	StreamingInterfaceIndex
+ 382               	.global	StreamingInterfaceIndex
+ 383               		.section .bss
+ 386               	StreamingInterfaceIndex:
+ 387 0000 00        		.skip 1,0
+ 388               	.global	StreamingInterfaceAltSetting
+ 389               	.global	StreamingInterfaceAltSetting
+ 392               	StreamingInterfaceAltSetting:
+ 393 0001 00        		.skip 1,0
+ 394               	.global	StreamingEndpointAddress
+ 395               	.global	StreamingEndpointAddress
+ 398               	StreamingEndpointAddress:
+ 399 0002 00        		.skip 1,0
+ 448               	.Letext0:
+DEFINED SYMBOLS
+                            *ABS*:00000000 ConfigDescriptor.c
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:2      *ABS*:0000003f __SREG__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:3      *ABS*:0000003e __SP_H__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:4      *ABS*:0000003d __SP_L__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:5      *ABS*:00000034 __CCP__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:6      *ABS*:00000000 __tmp_reg__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:7      *ABS*:00000001 __zero_reg__
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:19     .text.DComp_NextAudioControlInterface:00000000 DComp_NextAudioControlInterface
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:65     .text.DComp_NextAudioStreamInterface:00000000 DComp_NextAudioStreamInterface
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:111    .text.DComp_NextAudioInterfaceDataEndpoint:00000000 DComp_NextAudioInterfaceDataEndpoint
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:162    .text.ProcessConfigurationDescriptor:00000000 ProcessConfigurationDescriptor
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:386    .bss:00000000 StreamingInterfaceIndex
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:392    .bss:00000001 StreamingInterfaceAltSetting
+C:\Users\Dean\AppData\Local\Temp\cc2CU2Sj.s:398    .bss:00000002 StreamingEndpointAddress
+
+UNDEFINED SYMBOLS
+USB_Host_GetDeviceConfigDescriptor
+USB_GetNextDescriptorComp
+Pipe_ConfigurePipe
+__do_clear_bss
diff --git a/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.o b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.o
new file mode 100644
index 0000000000000000000000000000000000000000..8c4ba0511b322f80d90efb38f013d7765d1f2096
GIT binary patch
literal 13752
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
aCOAOz1xP)(oDqPCBbPIvItFAfD69Y~$wCGI

literal 0
HcmV?d00001

diff --git a/Demos/Host/Incomplete/AudioInputHost/makefile b/Demos/Host/Incomplete/AudioInputHost/makefile
new file mode 100644
index 000000000..6febc161d
--- /dev/null
+++ b/Demos/Host/Incomplete/AudioInputHost/makefile
@@ -0,0 +1,714 @@
+# Hey Emacs, this is a -*- makefile -*-
+#----------------------------------------------------------------------------
+# WinAVR Makefile Template written by Eric B. Weddington, J�rg Wunsch, et al.
+#  >> Modified for use with the LUFA project. <<
+#
+# Released to the Public Domain
+#
+# Additional material for this makefile was written by:
+# Peter Fleury
+# Tim Henigan
+# Colin O'Flynn
+# Reiner Patommel
+# Markus Pfaff
+# Sander Pool
+# Frederik Rouleau
+# Carlos Lamas
+# Dean Camera
+# Opendous Inc.
+# Denver Gingerich
+#
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device, using avrdude.
+#                Please customize the avrdude settings below first!
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+#            have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+#             have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+#               (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+#                (must have Atmel FLIP installed).
+#
+# make doxygen = Generate DoxyGen documentation for the project (must have
+#                DoxyGen installed)
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+
+# MCU name
+MCU = at90usb1287
+
+
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
+# Target board (see library "Board Types" documentation, NONE for projects not requiring
+# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
+# "Board" inside the application directory.
+BOARD = USBKEY
+
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency in Hz. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+#
+#     This will be an integer division of F_USB below, as it is sourced by
+#     F_USB after it has run through any CPU prescalers. Note that this value
+#     does not *change* the processor frequency - it should merely be updated to
+#     reflect the processor speed set externally so that the code can use accurate
+#     software delays.
+F_CPU = 8000000
+
+
+# Input clock frequency.
+#     This will define a symbol, F_USB, in all source code files equal to the
+#     input clock frequency (before any prescaling is performed) in Hz. This value may
+#     differ from F_CPU if prescaling is used on the latter, and is required as the
+#     raw input clock is fed directly to the PLL sections of the AVR for high speed
+#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+#     at the end, this will be done automatically to create a 32-bit value in your
+#     source code.
+#
+#     If no clock division is performed on the input clock inside the AVR (via the
+#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+
+# Target file name (without extension).
+TARGET = AudioInputHost
+
+
+# Object files directory
+#     To put object files in current directory, use a dot (.), do NOT make
+#     this an empty or blank macro!
+OBJDIR = .
+
+
+# Path to the LUFA library
+LUFA_PATH = ../../../..
+
+
+# LUFA library compile-time options and predefined tokens
+LUFA_OPTS  = -D USB_HOST_ONLY
+LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
+# Create the LUFA source path variables by including the LUFA root makefile
+include $(LUFA_PATH)/LUFA/makefile
+
+
+# List C source files here. (C dependencies are automatically generated.)
+SRC = $(TARGET).c                                                 \
+	  ConfigDescriptor.c                                          \
+	  $(LUFA_SRC_USB)                                             \
+	  $(LUFA_SRC_SERIAL)
+
+
+# List C++ source files here. (C dependencies are automatically generated.)
+CPPSRC =
+
+
+# List Assembler source files here.
+#     Make them always end in a capital .S.  Files ending in a lowercase .s
+#     will not be considered source files but generated files (assembler
+#     output from the compiler), and will be deleted upon "make clean"!
+#     Even though the DOS/Win* filesystem matches both .s and .S the same,
+#     it will preserve the spelling of the filenames, and gcc itself does
+#     care about how the name is spelled on its command-line.
+ASRC =
+
+
+# Optimization level, can be [0, 1, 2, 3, s].
+#     0 = turn off optimization. s = optimize for size.
+#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+
+# Debugging format.
+#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
+#     AVR Studio 4.10 requires dwarf-2.
+#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
+DEBUG = dwarf-2
+
+
+# List any extra directories to look for include files here.
+#     Each directory must be seperated by a space.
+#     Use forward slashes for directory separators.
+#     For a directory that has spaces, enclose it in quotes.
+EXTRAINCDIRS = $(LUFA_PATH)/
+
+
+# Compiler flag to set the C Standard level.
+#     c89   = "ANSI" C
+#     gnu89 = c89 plus GCC extensions
+#     c99   = ISO C99 standard (not yet fully implemented)
+#     gnu99 = c99 plus GCC extensions
+CSTANDARD = -std=c99
+
+
+# Place -D or -U options here for C sources
+CDEFS  = -DF_CPU=$(F_CPU)UL
+CDEFS += -DF_USB=$(F_USB)UL
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
+CDEFS += $(LUFA_OPTS)
+
+
+# Place -D or -U options here for ASM sources
+ADEFS  = -DF_CPU=$(F_CPU)
+ADEFS += -DF_USB=$(F_USB)UL
+ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += $(LUFA_OPTS)
+
+# Place -D or -U options here for C++ sources
+CPPDEFS  = -DF_CPU=$(F_CPU)UL
+CPPDEFS += -DF_USB=$(F_USB)UL
+CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += $(LUFA_OPTS)
+#CPPDEFS += -D__STDC_LIMIT_MACROS
+#CPPDEFS += -D__STDC_CONSTANT_MACROS
+
+
+
+#---------------- Compiler Options C ----------------
+#  -g*:          generate debugging information
+#  -O*:          optimization level
+#  -f...:        tuning, see GCC manual and avr-libc documentation
+#  -Wall...:     warning level
+#  -Wa,...:      tell GCC to pass this to the assembler.
+#    -adhlns...: create assembler listing
+CFLAGS = -g$(DEBUG)
+CFLAGS += $(CDEFS)
+CFLAGS += -O$(OPT)
+CFLAGS += -funsigned-char
+CFLAGS += -funsigned-bitfields
+CFLAGS += -ffunction-sections
+CFLAGS += -fno-inline-small-functions
+CFLAGS += -fpack-struct
+CFLAGS += -fshort-enums
+CFLAGS += -fno-strict-aliasing
+CFLAGS += -Wall
+CFLAGS += -Wstrict-prototypes
+#CFLAGS += -mshort-calls
+#CFLAGS += -fno-unit-at-a-time
+#CFLAGS += -Wundef
+#CFLAGS += -Wunreachable-code
+#CFLAGS += -Wsign-compare
+CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
+CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
+CFLAGS += $(CSTANDARD)
+
+
+#---------------- Compiler Options C++ ----------------
+#  -g*:          generate debugging information
+#  -O*:          optimization level
+#  -f...:        tuning, see GCC manual and avr-libc documentation
+#  -Wall...:     warning level
+#  -Wa,...:      tell GCC to pass this to the assembler.
+#    -adhlns...: create assembler listing
+CPPFLAGS = -g$(DEBUG)
+CPPFLAGS += $(CPPDEFS)
+CPPFLAGS += -O$(OPT)
+CPPFLAGS += -funsigned-char
+CPPFLAGS += -funsigned-bitfields
+CPPFLAGS += -fpack-struct
+CPPFLAGS += -fshort-enums
+CPPFLAGS += -fno-exceptions
+CPPFLAGS += -Wall
+CPPFLAGS += -Wundef
+#CPPFLAGS += -mshort-calls
+#CPPFLAGS += -fno-unit-at-a-time
+#CPPFLAGS += -Wstrict-prototypes
+#CPPFLAGS += -Wunreachable-code
+#CPPFLAGS += -Wsign-compare
+CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
+CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
+#CPPFLAGS += $(CSTANDARD)
+
+
+#---------------- Assembler Options ----------------
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#  -adhlns:   create listing
+#  -gstabs:   have the assembler create line number information; note that
+#             for use in COFF files, additional information about filenames
+#             and function names needs to be present in the assembler source
+#             files -- see avr-libc docs [FIXME: not yet described there]
+#  -listing-cont-lines: Sets the maximum number of continuation lines of hex
+#       dump that will be displayed for a given single line of source input.
+ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
+
+
+#---------------- Library Options ----------------
+# Minimalistic printf version
+PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires MATH_LIB = -lm below)
+PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
+
+# If this is left blank, then it will use the Standard printf version.
+PRINTF_LIB =
+#PRINTF_LIB = $(PRINTF_LIB_MIN)
+#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
+
+
+# Minimalistic scanf version
+SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
+
+# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
+SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
+
+# If this is left blank, then it will use the Standard scanf version.
+SCANF_LIB =
+#SCANF_LIB = $(SCANF_LIB_MIN)
+#SCANF_LIB = $(SCANF_LIB_FLOAT)
+
+
+MATH_LIB = -lm
+
+
+# List any extra directories to look for libraries here.
+#     Each directory must be seperated by a space.
+#     Use forward slashes for directory separators.
+#     For a directory that has spaces, enclose it in quotes.
+EXTRALIBDIRS =
+
+
+
+#---------------- External Memory Options ----------------
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# used for variables (.data/.bss) and heap (malloc()).
+#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
+
+# 64 KB of external RAM, starting after internal RAM (ATmega128!),
+# only used for heap (malloc()).
+#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
+
+EXTMEMOPTS =
+
+
+
+#---------------- Linker Options ----------------
+#  -Wl,...:     tell GCC to pass this to linker.
+#    -Map:      create map file
+#    --cref:    add cross reference to  map file
+LDFLAGS  = -Wl,-Map=$(TARGET).map,--cref
+LDFLAGS += -Wl,--relax
+LDFLAGS += -Wl,--gc-sections
+LDFLAGS += $(EXTMEMOPTS)
+LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
+LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
+#LDFLAGS += -T linker_script.x
+
+
+
+#---------------- Programming Options (avrdude) ----------------
+
+# Programming hardware
+# Type: avrdude -c ?
+# to get a full listing.
+#
+AVRDUDE_PROGRAMMER = jtagmkII
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = usb
+
+AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
+AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
+AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
+
+
+
+#---------------- Debugging Options ----------------
+
+# For simulavr only - target MCU frequency.
+DEBUG_MFREQ = $(F_CPU)
+
+# Set the DEBUG_UI to either gdb or insight.
+# DEBUG_UI = gdb
+DEBUG_UI = insight
+
+# Set the debugging back-end to either avarice, simulavr.
+DEBUG_BACKEND = avarice
+#DEBUG_BACKEND = simulavr
+
+# GDB Init Filename.
+GDBINIT_FILE = __avr_gdbinit
+
+# When using avarice settings for the JTAG
+JTAG_DEV = /dev/com1
+
+# Debugging port used to communicate between GDB / avarice / simulavr.
+DEBUG_PORT = 4242
+
+# Debugging host used to communicate between GDB / avarice / simulavr, normally
+#     just set to localhost unless doing some sort of crazy debugging when
+#     avarice is running on a different computer.
+DEBUG_HOST = localhost
+
+
+
+#============================================================================
+
+
+# Define programs and commands.
+SHELL = sh
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+AR = avr-ar rcs
+NM = avr-nm
+AVRDUDE = avrdude
+REMOVE = rm -f
+REMOVEDIR = rm -rf
+COPY = cp
+WINSHELL = cmd
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = --------  end  --------
+MSG_SIZE_BEFORE = Size before:
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling C:
+MSG_COMPILING_CPP = Compiling C++:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+MSG_CREATING_LIBRARY = Creating library:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
+
+# Define all listing files.
+LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
+
+
+# Compiler flags to generate dependency files.
+GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
+
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
+ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+
+
+# Default target.
+all: begin gccversion sizebefore build sizeafter end
+
+# Change the build target to build a HEX file or a library.
+build: elf hex eep lss sym
+#build: lib
+
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex
+eep: $(TARGET).eep
+lss: $(TARGET).lss
+sym: $(TARGET).sym
+LIBNAME=lib$(TARGET).a
+lib: $(LIBNAME)
+
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+	@echo
+	@echo $(MSG_BEGIN)
+
+end:
+	@echo $(MSG_END)
+	@echo
+
+
+# Display size of file.
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf
+MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
+FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
+
+
+sizebefore:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
+	2>/dev/null; echo; fi
+
+sizeafter:
+	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
+	2>/dev/null; echo; fi
+
+
+
+# Display compiler version information.
+gccversion :
+	@$(CC) --version
+
+
+# Program the device.
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+flip: $(TARGET).hex
+	batchisp -hardware usb -device $(MCU) -operation erase f
+	batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program
+	batchisp -hardware usb -device $(MCU) -operation start reset 0
+
+dfu: $(TARGET).hex
+	dfu-programmer $(MCU) erase
+	dfu-programmer $(MCU) flash $(TARGET).hex
+	dfu-programmer $(MCU) reset
+
+flip-ee: $(TARGET).hex $(TARGET).eep
+	$(COPY) $(TARGET).eep $(TARGET)eep.hex
+	batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
+	batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program
+	batchisp -hardware usb -device $(MCU) -operation start reset 0
+	$(REMOVE) $(TARGET)eep.hex
+
+dfu-ee: $(TARGET).hex $(TARGET).eep
+	dfu-programmer $(MCU) eeprom-flash $(TARGET).eep
+	dfu-programmer $(MCU) reset
+
+
+# Generate avr-gdb config/init file which does the following:
+#     define the reset signal, load the target file, connect to target, and set
+#     a breakpoint at main().
+gdb-config:
+	@$(REMOVE) $(GDBINIT_FILE)
+	@echo define reset >> $(GDBINIT_FILE)
+	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
+	@echo end >> $(GDBINIT_FILE)
+	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
+	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
+ifeq ($(DEBUG_BACKEND),simulavr)
+	@echo load  >> $(GDBINIT_FILE)
+endif
+	@echo break main >> $(GDBINIT_FILE)
+
+debug: gdb-config $(TARGET).elf
+ifeq ($(DEBUG_BACKEND), avarice)
+	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
+	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
+	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
+	@$(WINSHELL) /c pause
+
+else
+	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
+	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
+endif
+	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
+COFFCONVERT = $(OBJCOPY) --debugging
+COFFCONVERT += --change-section-address .data-0x800000
+COFFCONVERT += --change-section-address .bss-0x800000
+COFFCONVERT += --change-section-address .noinit-0x800000
+COFFCONVERT += --change-section-address .eeprom-0x810000
+
+
+
+coff: $(TARGET).elf
+	@echo
+	@echo $(MSG_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+	@echo
+	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+	@echo
+	@echo $(MSG_FLASH) $@
+	$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@
+
+%.eep: %.elf
+	@echo
+	@echo $(MSG_EEPROM) $@
+	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+	@echo
+	@echo $(MSG_EXTENDED_LISTING) $@
+	$(OBJDUMP) -h -S -z $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+	@echo
+	@echo $(MSG_SYMBOL_TABLE) $@
+	$(NM) -n $< > $@
+
+
+
+# Create library from object files.
+.SECONDARY : $(TARGET).a
+.PRECIOUS : $(OBJ)
+%.a: $(OBJ)
+	@echo
+	@echo $(MSG_CREATING_LIBRARY) $@
+	$(AR) $@ $(OBJ)
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+	@echo
+	@echo $(MSG_LINKING) $@
+	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+$(OBJDIR)/%.o : %.c
+	@echo
+	@echo $(MSG_COMPILING) $<
+	$(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create object files from C++ source files.
+$(OBJDIR)/%.o : %.cpp
+	@echo
+	@echo $(MSG_COMPILING_CPP) $<
+	$(CC) -c $(ALL_CPPFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+	$(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C++ source files.
+%.s : %.cpp
+	$(CC) -S $(ALL_CPPFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+$(OBJDIR)/%.o : %.S
+	@echo
+	@echo $(MSG_ASSEMBLING) $<
+	$(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+
+# Create preprocessed source for use in sending a bug report.
+%.i : %.c
+	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
+
+
+# Target: clean project.
+clean: begin clean_list end
+
+clean_list :
+	@echo
+	@echo $(MSG_CLEANING)
+	$(REMOVE) $(TARGET).hex
+	$(REMOVE) $(TARGET).eep
+	$(REMOVE) $(TARGET).cof
+	$(REMOVE) $(TARGET).elf
+	$(REMOVE) $(TARGET).map
+	$(REMOVE) $(TARGET).sym
+	$(REMOVE) $(TARGET).lss
+	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
+	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
+	$(REMOVE) $(SRC:.c=.s)
+	$(REMOVE) $(SRC:.c=.d)
+	$(REMOVE) $(SRC:.c=.i)
+	$(REMOVEDIR) .dep
+
+doxygen:
+	@echo Generating Project Documentation...
+	@doxygen Doxygen.conf
+	@echo Documentation Generation Complete.
+
+clean_doxygen:
+	rm -rf Documentation
+
+# Create object files directory
+$(shell mkdir $(OBJDIR) 2>/dev/null)
+
+
+# Include the dependency files.
+-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion \
+build elf hex eep lss sym coff extcoff doxygen clean          \
+clean_list clean_doxygen program dfu flip flip-ee dfu-ee      \
+debug gdb-config
+
diff --git a/LUFA.pnproj b/LUFA.pnproj
index c2426bda7..8b0155b27 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="KeyboardMouseMultiReport"><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.aps"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.aps"></File></Folder><Folder name="VirtualSerialMassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\LUFA VirtualSerialMassStorage.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.aps"></File></Folder><Folder name="VirtualSerialMouse"><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.aps"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\LowLevel\VirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.aps"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder><Folder name="TestAndMeasurement"><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\makefile"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.aps"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h"></File></Folder><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\makefile"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.h"></File></Folder><Folder name="AndroidAccessoryHost"><File path="Demos\Host\Incomplete\AndroidAccessoryHost\AndroidAccessoryHost.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\AndroidAccessoryHost.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\makefile"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.aps"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Attributes.h"></File><File path="LUFA\Common\Architectures.h"></File><File path="LUFA\Common\Endianness.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="Core"><Folder name="AVR8"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\OTG_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.h"></File></Folder><Folder name="UC3"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.h"></File></Folder><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.h"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\Events.c"></File><File path="LUFA\Drivers\USB\Core\Events.h"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\Core\StdRequestType.h"></File><File path="LUFA\Drivers\USB\Core\USBMode.h"></File><File path="LUFA\Drivers\USB\Core\USBTask.c"></File><File path="LUFA\Drivers\USB\Core\USBTask.h"></File><File path="LUFA\Drivers\USB\Core\Device.h"></File><File path="LUFA\Drivers\USB\Core\Endpoint.h"></File><File path="LUFA\Drivers\USB\Core\Host.h"></File><File path="LUFA\Drivers\USB\Core\Pipe.h"></File><File path="LUFA\Drivers\USB\Core\USBController.h"></File><File path="LUFA\Drivers\USB\Core\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\Core\OTG.h"></File><File path="LUFA\Drivers\USB\Core\EndpointStream.h"></File><File path="LUFA\Drivers\USB\Core\PipeStream.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File><File path="LUFA\Drivers\Misc\RingBuffer.h"></File><File path="LUFA\Drivers\Misc\AT45DB321C.h"></File><File path="LUFA\Drivers\Misc\AT45DB642D.h"></File></Folder><Folder name="Board"><Folder name="AVR8"><Folder name="ADAFRUITU4"><File path="LUFA\Drivers\Board\AVR8\ADAFRUITU4\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\LEDs.h"></File></Folder><Folder name="BENITO"><File path="LUFA\Drivers\Board\AVR8\BENITO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BENITO\LEDs.h"></File></Folder><Folder name="BLACKCAT"><File path="LUFA\Drivers\Board\AVR8\BLACKCAT\LEDs.h"></File></Folder><Folder name="BUI"><File path="LUFA\Drivers\Board\AVR8\BUI\LEDs.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\LEDs.h"></File></Folder><Folder name="CULV3"><File path="LUFA\Drivers\Board\AVR8\CULV3\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\CULV3\LEDs.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\AVR8\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\LEDs.h"></File></Folder><Folder name="JMDBU2"><File path="LUFA\Drivers\Board\AVR8\JMDBU2\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\JMDBU2\LEDs.h"></File></Folder><Folder name="MAXIMUS"><File path="LUFA\Drivers\Board\AVR8\MAXIMUS\LEDs.h"></File></Folder><Folder name="MICROSIN162"><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\LEDs.h"></File></Folder><Folder name="MINIMUS"><File path="LUFA\Drivers\Board\AVR8\MINIMUS\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MINIMUS\LEDs.h"></File></Folder><Folder name="OLIMEX162"><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\LEDs.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\AVR8\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="SPARKFUN8U2"><File path="LUFA\Drivers\Board\AVR8\SPARKFUN8U2\LEDs.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\AVR8\STK525\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\LEDs.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\AVR8\STK526\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\LEDs.h"></File></Folder><Folder name="TEENSY"><File path="LUFA\Drivers\Board\AVR8\TEENSY\LEDs.h"></File></Folder><Folder name="UDIP"><File path="LUFA\Drivers\Board\AVR8\UDIP\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\UDIP\LEDs.h"></File></Folder><Folder name="UNO"><File path="LUFA\Drivers\Board\AVR8\UNO\LEDs.h"></File></Folder><Folder name="USBFOO"><File path="LUFA\Drivers\Board\AVR8\USBFOO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBFOO\LEDS.h"></File></Folder><Folder name="USBKEY"><File path="LUFA\Drivers\Board\AVR8\USBKEY\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\LEDs.h"></File></Folder><Folder name="USBTINYMKII"><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\AVR8\XPLAIN\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\XPLAIN\LEDs.h"></File></Folder></Folder><Folder name="UC3"><Folder name="EVK1101"><File path="LUFA\Drivers\Board\UC3\EVK1101\Buttons.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\Joystick.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\LEDs.h"></File></Folder></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVR8"><File path="LUFA\Drivers\Peripheral\AVR8\ADC_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SPI_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File></Folder></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File><File path="LUFA\ManPages\SoftwareBootloaderJump.txt"></File><File path="LUFA\ManPages\LicenseInfo.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><Folder name="CodeTemplates"><Folder name="DriverStubs"><File path="LUFA\CodeTemplates\DriverStubs\Buttons.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Joystick.h"></File><File path="LUFA\CodeTemplates\DriverStubs\LEDs.h"></File></Folder><File path="LUFA\CodeTemplates\makefile_template.avr8"></File><File path="LUFA\CodeTemplates\makefile_template.uc3"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\License.txt"></File></Folder><Folder name="Bootloaders"><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File><File path="Bootloaders\CDC\BootloaderCDC.aps"></File></Folder><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File><File path="Bootloaders\DFU\BootloaderDFU.aps"></File></Folder><Folder name="HID"><Folder name="HostLoaderApp"><File path="Bootloaders\HID\HostLoaderApp\gpl3.txt"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd"></File><File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c"></File></Folder><File path="Bootloaders\HID\Descriptors.c"></File><File path="Bootloaders\HID\Descriptors.h"></File><File path="Bootloaders\HID\makefile"></File><File path="Bootloaders\HID\BootloaderHID.txt"></File><File path="Bootloaders\HID\BootloaderHID.c"></File><File path="Bootloaders\HID\BootloaderHID.h"></File><File path="Bootloaders\HID\Doxygen.conf"></File><File path="Bootloaders\HID\BootloaderHID.aps"></File></Folder><File path="Bootloaders\makefile"></File></Folder><Folder name="Projects"><Folder name="AVRISP-MKII"><Folder name="Lib"><Folder name="ISP"><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h"></File></Folder><Folder name="XPROG"><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h"></File></Folder><File path="Projects\AVRISP-MKII\Lib\V2Protocol.c"></File><File path="Projects\AVRISP-MKII\Lib\V2Protocol.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h"></File></Folder><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.c"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.h"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.txt"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.aps"></File><File path="Projects\AVRISP-MKII\makefile.uc3"></File></Folder><Folder name="Benito"><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File><File path="Projects\Benito\Benito.aps"></File></Folder><Folder name="LEDNotifier"><Folder name="CPUUsageApp"><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx"></File><File path="Projects\LEDNotifier\CPUUsageApp\Program.cs"></File></Folder><Folder name="HotmailNotifierApp"><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs"></File></Folder><Folder name="LEDMixerApp"><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx"></File><File path="Projects\LEDNotifier\LEDMixerApp\Program.cs"></File></Folder><File path="Projects\LEDNotifier\Descriptors.c"></File><File path="Projects\LEDNotifier\Descriptors.h"></File><File path="Projects\LEDNotifier\Doxygen.conf"></File><File path="Projects\LEDNotifier\LEDNotifier.c"></File><File path="Projects\LEDNotifier\LEDNotifier.h"></File><File path="Projects\LEDNotifier\LEDNotifier.txt"></File><File path="Projects\LEDNotifier\LUFA LED Notifier.inf"></File><File path="Projects\LEDNotifier\makefile"></File><File path="Projects\LEDNotifier\LEDNotifier.aps"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\Magstripe.aps"></File></Folder><Folder name="MediaController"><File path="Projects\MediaController\Descriptors.c"></File><File path="Projects\MediaController\Descriptors.h"></File><File path="Projects\MediaController\Doxygen.conf"></File><File path="Projects\MediaController\makefile"></File><File path="Projects\MediaController\MediaController.c"></File><File path="Projects\MediaController\MediaController.h"></File><File path="Projects\MediaController\MediaController.txt"></File><File path="Projects\MediaController\MediaController.aps"></File></Folder><Folder name="MIDIToneGenerator"><File path="Projects\MIDIToneGenerator\Descriptors.c"></File><File path="Projects\MIDIToneGenerator\Descriptors.h"></File><File path="Projects\MIDIToneGenerator\makefile"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.aps"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File><File path="Projects\MissileLauncher\MissileLauncher.aps"></File></Folder><Folder name="RelayBoard"><File path="Projects\RelayBoard\Descriptors.c"></File><File path="Projects\RelayBoard\Descriptors.h"></File><File path="Projects\RelayBoard\Doxygen.conf"></File><File path="Projects\RelayBoard\makefile"></File><File path="Projects\RelayBoard\RelayBoard.c"></File><File path="Projects\RelayBoard\RelayBoard.h"></File><File path="Projects\RelayBoard\RelayBoard.txt"></File><File path="Projects\RelayBoard\RelayBoard.aps"></File></Folder><Folder name="TempDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TempDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TempDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TempDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TempDataLogger\Lib\DS1307.c"></File><File path="Projects\TempDataLogger\Lib\DS1307.h"></File><File path="Projects\TempDataLogger\Lib\SCSI.c"></File><File path="Projects\TempDataLogger\Lib\SCSI.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TempDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TempDataLogger\Descriptors.c"></File><File path="Projects\TempDataLogger\Descriptors.h"></File><File path="Projects\TempDataLogger\Doxygen.conf"></File><File path="Projects\TempDataLogger\makefile"></File><File path="Projects\TempDataLogger\TempDataLogger.c"></File><File path="Projects\TempDataLogger\TempDataLogger.h"></File><File path="Projects\TempDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TempDataLogger\TempDataLogger.aps"></File></Folder><Folder name="USBtoSerial"><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File><File path="Projects\USBtoSerial\USBtoSerial.aps"></File><File path="Projects\USBtoSerial\Descriptors.c"></File></Folder><Folder name="Webserver"><Folder name="Lib"><Folder name="uip"><File path="Projects\Webserver\Lib\uip\clock.c"></File><File path="Projects\Webserver\Lib\uip\clock.h"></File><File path="Projects\Webserver\Lib\uip\timer.c"></File><File path="Projects\Webserver\Lib\uip\timer.h"></File><File path="Projects\Webserver\Lib\uip\uip.c"></File><File path="Projects\Webserver\Lib\uip\uip.h"></File><File path="Projects\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Webserver\Lib\uip\uip-split.h"></File></Folder><Folder name="FATFs"><File path="Projects\Webserver\Lib\FATFs\diskio.c"></File><File path="Projects\Webserver\Lib\FATFs\diskio.h"></File><File path="Projects\Webserver\Lib\FATFs\ff.c"></File><File path="Projects\Webserver\Lib\FATFs\ff.h"></File><File path="Projects\Webserver\Lib\FATFs\ffconf.h"></File><File path="Projects\Webserver\Lib\FATFs\integer.h"></File></Folder><File path="Projects\Webserver\Lib\DataflashManager.c"></File><File path="Projects\Webserver\Lib\DataflashManager.h"></File><File path="Projects\Webserver\Lib\uIPManagement.c"></File><File path="Projects\Webserver\Lib\uIPManagement.h"></File><File path="Projects\Webserver\Lib\HTTPServerApp.c"></File><File path="Projects\Webserver\Lib\HTTPServerApp.h"></File><File path="Projects\Webserver\Lib\SCSI.c"></File><File path="Projects\Webserver\Lib\SCSI.h"></File><File path="Projects\Webserver\Lib\TELNETServerApp.c"></File><File path="Projects\Webserver\Lib\TELNETServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPClientApp.c"></File><File path="Projects\Webserver\Lib\DHCPClientApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.h"></File><File path="Projects\Webserver\Lib\DHCPServerApp.c"></File><File path="Projects\Webserver\Lib\DHCPServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.c"></File></Folder><File path="Projects\Webserver\makefile"></File><File path="Projects\Webserver\Webserver.c"></File><File path="Projects\Webserver\Webserver.h"></File><File path="Projects\Webserver\Doxygen.conf"></File><File path="Projects\Webserver\Webserver.txt"></File><File path="Projects\Webserver\Descriptors.c"></File><File path="Projects\Webserver\Descriptors.h"></File><File path="Projects\Webserver\USBHostMode.c"></File><File path="Projects\Webserver\USBHostMode.h"></File><File path="Projects\Webserver\USBDeviceMode.c"></File><File path="Projects\Webserver\USBDeviceMode.h"></File><File path="Projects\Webserver\Webserver.aps"></File><File path="Projects\Webserver\LUFA Webserver RNDIS.inf"></File></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.aps"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
+<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="KeyboardMouseMultiReport"><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.aps"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.aps"></File></Folder><Folder name="VirtualSerialMassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\LUFA VirtualSerialMassStorage.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.aps"></File></Folder><Folder name="VirtualSerialMouse"><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.aps"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\LowLevel\VirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.aps"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder><Folder name="TestAndMeasurement"><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\makefile"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.aps"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h"></File></Folder><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\makefile"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="AndroidAccessoryHost"><File path="Demos\Host\Incomplete\AndroidAccessoryHost\AndroidAccessoryHost.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\AndroidAccessoryHost.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\AndroidAccessoryHost\makefile"></File></Folder><Folder name="AudioInputHost"><File path="Demos\Host\Incomplete\AudioInputHost\AudioInputHost.c"></File><File path="Demos\Host\Incomplete\AudioInputHost\AudioInputHost.h"></File><File path="Demos\Host\Incomplete\AudioInputHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\AudioInputHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\AudioInputHost\makefile"></File></Folder><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.aps"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Attributes.h"></File><File path="LUFA\Common\Architectures.h"></File><File path="LUFA\Common\Endianness.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="Core"><Folder name="AVR8"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\OTG_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.h"></File></Folder><Folder name="UC3"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.h"></File></Folder><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.h"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\Events.c"></File><File path="LUFA\Drivers\USB\Core\Events.h"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\Core\StdRequestType.h"></File><File path="LUFA\Drivers\USB\Core\USBMode.h"></File><File path="LUFA\Drivers\USB\Core\USBTask.c"></File><File path="LUFA\Drivers\USB\Core\USBTask.h"></File><File path="LUFA\Drivers\USB\Core\Device.h"></File><File path="LUFA\Drivers\USB\Core\Endpoint.h"></File><File path="LUFA\Drivers\USB\Core\Host.h"></File><File path="LUFA\Drivers\USB\Core\Pipe.h"></File><File path="LUFA\Drivers\USB\Core\USBController.h"></File><File path="LUFA\Drivers\USB\Core\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\Core\OTG.h"></File><File path="LUFA\Drivers\USB\Core\EndpointStream.h"></File><File path="LUFA\Drivers\USB\Core\PipeStream.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File><File path="LUFA\Drivers\Misc\RingBuffer.h"></File><File path="LUFA\Drivers\Misc\AT45DB321C.h"></File><File path="LUFA\Drivers\Misc\AT45DB642D.h"></File></Folder><Folder name="Board"><Folder name="AVR8"><Folder name="ADAFRUITU4"><File path="LUFA\Drivers\Board\AVR8\ADAFRUITU4\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\LEDs.h"></File></Folder><Folder name="BENITO"><File path="LUFA\Drivers\Board\AVR8\BENITO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BENITO\LEDs.h"></File></Folder><Folder name="BLACKCAT"><File path="LUFA\Drivers\Board\AVR8\BLACKCAT\LEDs.h"></File></Folder><Folder name="BUI"><File path="LUFA\Drivers\Board\AVR8\BUI\LEDs.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\LEDs.h"></File></Folder><Folder name="CULV3"><File path="LUFA\Drivers\Board\AVR8\CULV3\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\CULV3\LEDs.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\AVR8\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\LEDs.h"></File></Folder><Folder name="JMDBU2"><File path="LUFA\Drivers\Board\AVR8\JMDBU2\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\JMDBU2\LEDs.h"></File></Folder><Folder name="MAXIMUS"><File path="LUFA\Drivers\Board\AVR8\MAXIMUS\LEDs.h"></File></Folder><Folder name="MICROSIN162"><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\LEDs.h"></File></Folder><Folder name="MINIMUS"><File path="LUFA\Drivers\Board\AVR8\MINIMUS\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MINIMUS\LEDs.h"></File></Folder><Folder name="OLIMEX162"><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\LEDs.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\AVR8\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="SPARKFUN8U2"><File path="LUFA\Drivers\Board\AVR8\SPARKFUN8U2\LEDs.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\AVR8\STK525\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\LEDs.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\AVR8\STK526\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\LEDs.h"></File></Folder><Folder name="TEENSY"><File path="LUFA\Drivers\Board\AVR8\TEENSY\LEDs.h"></File></Folder><Folder name="UDIP"><File path="LUFA\Drivers\Board\AVR8\UDIP\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\UDIP\LEDs.h"></File></Folder><Folder name="UNO"><File path="LUFA\Drivers\Board\AVR8\UNO\LEDs.h"></File></Folder><Folder name="USBFOO"><File path="LUFA\Drivers\Board\AVR8\USBFOO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBFOO\LEDS.h"></File></Folder><Folder name="USBKEY"><File path="LUFA\Drivers\Board\AVR8\USBKEY\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\LEDs.h"></File></Folder><Folder name="USBTINYMKII"><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\AVR8\XPLAIN\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\XPLAIN\LEDs.h"></File></Folder></Folder><Folder name="UC3"><Folder name="EVK1101"><File path="LUFA\Drivers\Board\UC3\EVK1101\Buttons.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\Joystick.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\LEDs.h"></File></Folder></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVR8"><File path="LUFA\Drivers\Peripheral\AVR8\ADC_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SPI_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File></Folder></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File><File path="LUFA\ManPages\SoftwareBootloaderJump.txt"></File><File path="LUFA\ManPages\LicenseInfo.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><Folder name="CodeTemplates"><Folder name="DriverStubs"><File path="LUFA\CodeTemplates\DriverStubs\Buttons.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Joystick.h"></File><File path="LUFA\CodeTemplates\DriverStubs\LEDs.h"></File></Folder><File path="LUFA\CodeTemplates\makefile_template.avr8"></File><File path="LUFA\CodeTemplates\makefile_template.uc3"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\License.txt"></File></Folder><Folder name="Bootloaders"><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File><File path="Bootloaders\CDC\BootloaderCDC.aps"></File></Folder><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File><File path="Bootloaders\DFU\BootloaderDFU.aps"></File></Folder><Folder name="HID"><Folder name="HostLoaderApp"><File path="Bootloaders\HID\HostLoaderApp\gpl3.txt"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd"></File><File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c"></File></Folder><File path="Bootloaders\HID\Descriptors.c"></File><File path="Bootloaders\HID\Descriptors.h"></File><File path="Bootloaders\HID\makefile"></File><File path="Bootloaders\HID\BootloaderHID.txt"></File><File path="Bootloaders\HID\BootloaderHID.c"></File><File path="Bootloaders\HID\BootloaderHID.h"></File><File path="Bootloaders\HID\Doxygen.conf"></File><File path="Bootloaders\HID\BootloaderHID.aps"></File></Folder><File path="Bootloaders\makefile"></File></Folder><Folder name="Projects"><Folder name="AVRISP-MKII"><Folder name="Lib"><Folder name="ISP"><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h"></File></Folder><Folder name="XPROG"><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h"></File></Folder><File path="Projects\AVRISP-MKII\Lib\V2Protocol.c"></File><File path="Projects\AVRISP-MKII\Lib\V2Protocol.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h"></File></Folder><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.c"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.h"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.txt"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.aps"></File><File path="Projects\AVRISP-MKII\makefile.uc3"></File></Folder><Folder name="Benito"><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File><File path="Projects\Benito\Benito.aps"></File></Folder><Folder name="LEDNotifier"><Folder name="CPUUsageApp"><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx"></File><File path="Projects\LEDNotifier\CPUUsageApp\Program.cs"></File></Folder><Folder name="HotmailNotifierApp"><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs"></File></Folder><Folder name="LEDMixerApp"><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx"></File><File path="Projects\LEDNotifier\LEDMixerApp\Program.cs"></File></Folder><File path="Projects\LEDNotifier\Descriptors.c"></File><File path="Projects\LEDNotifier\Descriptors.h"></File><File path="Projects\LEDNotifier\Doxygen.conf"></File><File path="Projects\LEDNotifier\LEDNotifier.c"></File><File path="Projects\LEDNotifier\LEDNotifier.h"></File><File path="Projects\LEDNotifier\LEDNotifier.txt"></File><File path="Projects\LEDNotifier\LUFA LED Notifier.inf"></File><File path="Projects\LEDNotifier\makefile"></File><File path="Projects\LEDNotifier\LEDNotifier.aps"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\Magstripe.aps"></File></Folder><Folder name="MediaController"><File path="Projects\MediaController\Descriptors.c"></File><File path="Projects\MediaController\Descriptors.h"></File><File path="Projects\MediaController\Doxygen.conf"></File><File path="Projects\MediaController\makefile"></File><File path="Projects\MediaController\MediaController.c"></File><File path="Projects\MediaController\MediaController.h"></File><File path="Projects\MediaController\MediaController.txt"></File><File path="Projects\MediaController\MediaController.aps"></File></Folder><Folder name="MIDIToneGenerator"><File path="Projects\MIDIToneGenerator\Descriptors.c"></File><File path="Projects\MIDIToneGenerator\Descriptors.h"></File><File path="Projects\MIDIToneGenerator\makefile"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.aps"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File><File path="Projects\MissileLauncher\MissileLauncher.aps"></File></Folder><Folder name="RelayBoard"><File path="Projects\RelayBoard\Descriptors.c"></File><File path="Projects\RelayBoard\Descriptors.h"></File><File path="Projects\RelayBoard\Doxygen.conf"></File><File path="Projects\RelayBoard\makefile"></File><File path="Projects\RelayBoard\RelayBoard.c"></File><File path="Projects\RelayBoard\RelayBoard.h"></File><File path="Projects\RelayBoard\RelayBoard.txt"></File><File path="Projects\RelayBoard\RelayBoard.aps"></File></Folder><Folder name="TempDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TempDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TempDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TempDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TempDataLogger\Lib\DS1307.c"></File><File path="Projects\TempDataLogger\Lib\DS1307.h"></File><File path="Projects\TempDataLogger\Lib\SCSI.c"></File><File path="Projects\TempDataLogger\Lib\SCSI.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TempDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TempDataLogger\Descriptors.c"></File><File path="Projects\TempDataLogger\Descriptors.h"></File><File path="Projects\TempDataLogger\Doxygen.conf"></File><File path="Projects\TempDataLogger\makefile"></File><File path="Projects\TempDataLogger\TempDataLogger.c"></File><File path="Projects\TempDataLogger\TempDataLogger.h"></File><File path="Projects\TempDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TempDataLogger\TempDataLogger.aps"></File></Folder><Folder name="USBtoSerial"><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File><File path="Projects\USBtoSerial\USBtoSerial.aps"></File><File path="Projects\USBtoSerial\Descriptors.c"></File></Folder><Folder name="Webserver"><Folder name="Lib"><Folder name="uip"><File path="Projects\Webserver\Lib\uip\clock.c"></File><File path="Projects\Webserver\Lib\uip\clock.h"></File><File path="Projects\Webserver\Lib\uip\timer.c"></File><File path="Projects\Webserver\Lib\uip\timer.h"></File><File path="Projects\Webserver\Lib\uip\uip.c"></File><File path="Projects\Webserver\Lib\uip\uip.h"></File><File path="Projects\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Webserver\Lib\uip\uip-split.h"></File></Folder><Folder name="FATFs"><File path="Projects\Webserver\Lib\FATFs\diskio.c"></File><File path="Projects\Webserver\Lib\FATFs\diskio.h"></File><File path="Projects\Webserver\Lib\FATFs\ff.c"></File><File path="Projects\Webserver\Lib\FATFs\ff.h"></File><File path="Projects\Webserver\Lib\FATFs\ffconf.h"></File><File path="Projects\Webserver\Lib\FATFs\integer.h"></File></Folder><File path="Projects\Webserver\Lib\DataflashManager.c"></File><File path="Projects\Webserver\Lib\DataflashManager.h"></File><File path="Projects\Webserver\Lib\uIPManagement.c"></File><File path="Projects\Webserver\Lib\uIPManagement.h"></File><File path="Projects\Webserver\Lib\HTTPServerApp.c"></File><File path="Projects\Webserver\Lib\HTTPServerApp.h"></File><File path="Projects\Webserver\Lib\SCSI.c"></File><File path="Projects\Webserver\Lib\SCSI.h"></File><File path="Projects\Webserver\Lib\TELNETServerApp.c"></File><File path="Projects\Webserver\Lib\TELNETServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPClientApp.c"></File><File path="Projects\Webserver\Lib\DHCPClientApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.h"></File><File path="Projects\Webserver\Lib\DHCPServerApp.c"></File><File path="Projects\Webserver\Lib\DHCPServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.c"></File></Folder><File path="Projects\Webserver\makefile"></File><File path="Projects\Webserver\Webserver.c"></File><File path="Projects\Webserver\Webserver.h"></File><File path="Projects\Webserver\Doxygen.conf"></File><File path="Projects\Webserver\Webserver.txt"></File><File path="Projects\Webserver\Descriptors.c"></File><File path="Projects\Webserver\Descriptors.h"></File><File path="Projects\Webserver\USBHostMode.c"></File><File path="Projects\Webserver\USBHostMode.h"></File><File path="Projects\Webserver\USBDeviceMode.c"></File><File path="Projects\Webserver\USBDeviceMode.h"></File><File path="Projects\Webserver\Webserver.aps"></File><File path="Projects\Webserver\LUFA Webserver RNDIS.inf"></File></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.aps"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index c838411f0..713c96f7c 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -204,7 +204,7 @@
 		 *
 		 *  \param[in] freq  Required audio sampling frequency in HZ
 		 */
-		#define AUDIO_SAMPLE_FREQ(freq)           {.Byte1 = (freq & 0x0000FF), .Byte2 = ((freq >> 8) & 0xFF), .Byte3 = ((freq >> 16) & 0xFF)}
+		#define AUDIO_SAMPLE_FREQ(freq)           {.Byte1 = ((uint32_t)freq & 0x0000FF), .Byte2 = (((uint32_t)freq >> 8) & 0xFF), .Byte3 = (((uint32_t)freq >> 16) & 0xFF)}
 
 		/** Mask for the attributes parameter of an Audio class-specific Endpoint descriptor, indicating that the endpoint
 		 *  accepts only filled endpoint packets of audio samples.
@@ -215,7 +215,7 @@
 		 *  will accept partially filled endpoint packets of audio samples.
 		 */
 		#define AUDIO_EP_ACCEPTS_SMALL_PACKETS    (0 << 7)
-
+		
 	/* Enums: */
 		/** Enum for possible Class, Subclass and Protocol values of device and interface descriptors relating to the Audio
 		 *  device class.
@@ -269,6 +269,22 @@
 			AUDIO_DSUBTYPE_CSEndpoint_General         = 0x01, /**< Audio class specific endpoint general descriptor. */
 		};
 
+		/** Enum for the Audio class specific control requests that can be issued by the USB bus host. */
+		enum Audio_ClassRequests_t
+		{
+			AUDIO_REQ_SetCurrent    = 0x01, /**< Audio class-specific request to set the current value of a parameter within the device. */
+			AUDIO_REQ_SetMinimum    = 0x02, /**< Audio class-specific request to set the minimum value of a parameter within the device. */
+			AUDIO_REQ_SetMaximum    = 0x03, /**< Audio class-specific request to set the maximum value of a parameter within the device. */
+			AUDIO_REQ_SetResolution = 0x04, /**< Audio class-specific request to set the resolution value of a parameter within the device. */
+			AUDIO_REQ_SetMemory     = 0x05, /**< Audio class-specific request to set the memory value of a parameter within the device. */
+			AUDIO_REQ_GetCurrent    = 0x81, /**< Audio class-specific request to get the current value of a parameter within the device. */
+			AUDIO_REQ_GetMinimum    = 0x82, /**< Audio class-specific request to get the minimum value of a parameter within the device. */
+			AUDIO_REQ_GetMaximum    = 0x83, /**< Audio class-specific request to get the maximum value of a parameter within the device. */
+			AUDIO_REQ_GetResolution = 0x84, /**< Audio class-specific request to get the resolution value of a parameter within the device. */
+			AUDIO_REQ_GetMemory     = 0x85, /**< Audio class-specific request to get the memory value of a parameter within the device. */
+			AUDIO_REQ_GetStatus     = 0xFF, /**< Audio class-specific request to get the device status. */
+		};
+
 	/* Type Defines: */
 		/** \brief Audio class-specific Input Terminal Descriptor (LUFA naming conventions).
 		 *
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.c b/LUFA/Drivers/USB/Class/Device/Audio.c
index f18db7456..8c5c9960d 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.c
+++ b/LUFA/Drivers/USB/Class/Device/Audio.c
@@ -57,6 +57,13 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
 			}
 
 			break;
+		case AUDIO_REQ_GetStatus:
+			if ((USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) ||
+			    (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT)))
+			{
+				Endpoint_ClearSETUP();
+				Endpoint_ClearStatusStage();
+			}
 	}
 }
 
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index f619983ec..4fe30411e 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -12,14 +12,16 @@
   *   - Added USE_LUFA_CONFIG_HEADER compile time option to include a LUFAConfig.h header in the user director for LUFA configuration
   *     tokens as an alternative to tokens defined in the project makefile
   *   - Added new USB_Host_SetInterfaceAltSetting() convenience function for the selection of an interface's alternative setting
+  *   - Added Audio class control request definitions
   *  - Library Applications:
+  *   - Added RNDIS device mode to the Webserver project
   *   - Added new MediaControl project
   *   - Added new incomplete AndroidAccessoryHost Host LowLevel demo
-  *   - Added RNDIS device mode to the Webserver project
+  *   - Added new incomplete AudioInputHost Host LowLevel demo
   *
   *  <b>Changed:</b>
   *  - Core:
-  *   - <i>None</i>
+  *   - Added support for the Audio class GET STATUS request so that it is correctly ACKed when sent by the host
   *  - Library Applications:
   *   - <i>None</i>
   *
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 4e16d3afa..154f86243 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -29,11 +29,10 @@
   *  - Demos/Projects
   *      -# Device/Host USB bridge
   *      -# Alternative (USB-IF endorsed) USB-CDC Ethernet Class
-  *      -# Finish Test and Measurement Class demo
-  *      -# Finish BluetoothHost demo
-  *      -# Finish SideShow demo
-  *      -# Finish StandaloneProgrammer project
-  *      -# Arduino Uno compatible USB-MIDI, USB-HID
+  *      -# Finish incomplete demos and projects
+  *      -# Add class driver support for Audio Host class
+  *      -# Add class driver support for Test and Measurement class
+  *      -# Fix up Audio class support - add support for mixers, etc., add support for GET/SET commands
   *  - Ports
   *      -# Atmel ARM7 series microcontrollers
   *      -# Other (commercial) C compilers
diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.c b/Projects/AVRISP-MKII/AVRISP-MKII.c
index 654ce5471..d774b1119 100644
--- a/Projects/AVRISP-MKII/AVRISP-MKII.c
+++ b/Projects/AVRISP-MKII/AVRISP-MKII.c
@@ -45,14 +45,14 @@ int main(void)
 	V2Protocol_Init();
 
 	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-	sei();
-
+	GlobalInterruptEnable();
+	
 	for (;;)
 	{
 		#if (BOARD == BOARD_USBTINYMKII)
-		/* On the USBTINY-MKII target, there is a secondary LED which indicates the current selected power
-		   mode - either VBUS, or sourced from the VTARGET pin of the programming connectors */
-		LEDs_ChangeLEDs(LEDMASK_VBUSPOWER, (PIND & (1 << 0)) ? 0 : LEDMASK_VBUSPOWER);
+			/* On the USBTINY-MKII board target, there is a secondary LED which indicates the current selected
+			   power mode - either VBUS, or sourced from the VTARGET pin of the programming connectors */
+			LEDs_ChangeLEDs(LEDS_LED3, (PIND & (1 << 0)) ? 0 : LEDS_LED3);
 		#endif
 
 		AVRISP_Task();
@@ -63,13 +63,35 @@ int main(void)
 /** Configures the board hardware and chip peripherals for the demo's functionality. */
 void SetupHardware(void)
 {
-	/* Disable watchdog if enabled by bootloader/fuses */
-	MCUSR &= ~(1 << WDRF);
-	wdt_disable();
-
-	/* Disable clock division */
-	clock_prescale_set(clock_div_1);
-
+	#if (ARCH == ARCH_AVR8)
+		/* Disable watchdog if enabled by bootloader/fuses */
+		MCUSR &= ~(1 << WDRF);
+		wdt_disable();
+
+		/* Disable clock division */
+		clock_prescale_set(clock_div_1);
+	#elif (ARCH == ARCH_UC3)
+		/* Select slow startup, external high frequency crystal attached to OSC0 */
+		AVR32_PM.OSCCTRL0.mode    = 7;
+		AVR32_PM.OSCCTRL0.startup = 6;
+		AVR32_PM.MCCTRL.osc0en    = true;
+		while (!(AVR32_PM.POSCSR.osc0rdy));
+
+		/* Switch CPU core to use OSC0 as the system clock */
+		AVR32_PM.MCCTRL.mcsel     = 1;
+
+		/* Start PLL1 to feed into the USB generic clock module */
+		AVR32_PM.PLL[1].pllmul    = (F_USB / F_CPU) ? (((F_USB / F_CPU) - 1) / 2) : 0;
+		AVR32_PM.PLL[1].plldiv    = 0;
+		AVR32_PM.PLL[1].pllosc    = 0;	
+		AVR32_PM.PLL[1].pllen     = true;
+		while (!(AVR32_PM.POSCSR.lock1));
+	
+		/* Configure interrupt management peripheral */
+//		INTC_Init();
+		INTC_RegisterGroupHandler(AVR32_USBB_IRQ, AVR32_INTC_INT0, USB_GEN_vect);	
+	#endif
+	
 	/* Hardware Initialization */
 	LEDs_Init();
 	USB_Init();
diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.h b/Projects/AVRISP-MKII/AVRISP-MKII.h
index 2650b4939..5a0d09111 100644
--- a/Projects/AVRISP-MKII/AVRISP-MKII.h
+++ b/Projects/AVRISP-MKII/AVRISP-MKII.h
@@ -37,11 +37,7 @@
 #define _AVRISP_H_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/wdt.h>
-		#include <avr/interrupt.h>
-		#include <avr/power.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Version.h>
 		#include <LUFA/Drivers/Board/LEDs.h>
 		#include <LUFA/Drivers/USB/USB.h>
@@ -50,6 +46,17 @@
 			#include <LUFA/Drivers/Peripheral/ADC.h>
 		#endif
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/wdt.h>
+			#include <avr/interrupt.h>
+			#include <avr/power.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>
+
+			#include <LUFA/Platform/UC3/INTC_UC3.h> // TODO: FIXME
+		#endif
+
 		#include "Descriptors.h"
 		#include "Lib/V2Protocol.h"
 
@@ -69,9 +76,6 @@
 		/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
 		#define LEDMASK_BUSY             (LEDS_LED1 | LEDS_LED2)
 
-		/** LED mask for the library LED driver, to indicate that the target is being powered by VBUS. */
-		#define LEDMASK_VBUSPOWER         LEDS_LED3
-
 	/* Function Prototypes: */
 		void SetupHardware(void);
 		void AVRISP_Task(void);
diff --git a/Projects/AVRISP-MKII/Descriptors.c b/Projects/AVRISP-MKII/Descriptors.c
index a84b75f38..9889820cf 100644
--- a/Projects/AVRISP-MKII/Descriptors.c
+++ b/Projects/AVRISP-MKII/Descriptors.c
@@ -53,8 +53,8 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 
 	.Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
 
-	.VendorID               = 0x03EB,
-	.ProductID              = 0x2104,
+	.VendorID               = CPU_TO_LE16(0x03EB),
+	.ProductID              = CPU_TO_LE16(0x2104),
 	.ReleaseNumber          = VERSION_BCD(02.00),
 
 	.ManufacturerStrIndex   = 0x01,
@@ -75,7 +75,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
 
-			.TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
+			.TotalConfigurationSize = CPU_TO_LE16(sizeof(USB_Descriptor_Configuration_t)),
 			.TotalInterfaces        = 1,
 
 			.ConfigurationNumber    = 1,
@@ -108,7 +108,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_IN | AVRISP_DATA_IN_EPNUM),
 			.Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-			.EndpointSize           = AVRISP_DATA_EPSIZE,
+			.EndpointSize           = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
 			.PollingIntervalMS      = 0x0A
 		},
 
@@ -118,7 +118,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_OUT | AVRISP_DATA_OUT_EPNUM),
 			.Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-			.EndpointSize           = AVRISP_DATA_EPSIZE,
+			.EndpointSize           = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
 			.PollingIntervalMS      = 0x0A
 		},
 };
@@ -142,7 +142,17 @@ const USB_Descriptor_String_t PROGMEM ManufacturerString =
 {
 	.Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
 
-	.UnicodeString          = L"Dean Camera"
+	.UnicodeString          = {CPU_TO_LE16('D'),
+	                           CPU_TO_LE16('e'), 
+	                           CPU_TO_LE16('a'), 
+	                           CPU_TO_LE16('n'), 
+	                           CPU_TO_LE16(' '), 
+	                           CPU_TO_LE16('C'), 
+	                           CPU_TO_LE16('a'), 
+	                           CPU_TO_LE16('m'), 
+	                           CPU_TO_LE16('e'), 
+	                           CPU_TO_LE16('r'), 
+	                           CPU_TO_LE16('a')}
 };
 
 /** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
@@ -153,7 +163,28 @@ const USB_Descriptor_String_t PROGMEM ProductString =
 {
 	.Header                 = {.Size = USB_STRING_LEN(22), .Type = DTYPE_String},
 
-	.UnicodeString          = L"LUFA AVRISP MkII Clone"
+	.UnicodeString          = {CPU_TO_LE16('L'), 
+	                           CPU_TO_LE16('U'), 
+	                           CPU_TO_LE16('F'), 
+	                           CPU_TO_LE16('A'), 
+	                           CPU_TO_LE16(' '), 
+	                           CPU_TO_LE16('A'), 
+	                           CPU_TO_LE16('V'), 
+	                           CPU_TO_LE16('R'), 
+	                           CPU_TO_LE16('I'), 
+	                           CPU_TO_LE16('S'), 
+	                           CPU_TO_LE16('P'), 
+	                           CPU_TO_LE16(' '), 
+	                           CPU_TO_LE16('M'), 
+	                           CPU_TO_LE16('k'), 
+	                           CPU_TO_LE16('I'), 
+	                           CPU_TO_LE16('I'), 
+	                           CPU_TO_LE16(' '), 
+	                           CPU_TO_LE16('C'), 
+	                           CPU_TO_LE16('l'), 
+	                           CPU_TO_LE16('o'), 
+	                           CPU_TO_LE16('n'), 
+	                           CPU_TO_LE16('e')}
 };
 
 /** Serial number string. This is a Unicode string containing the device's unique serial number, expressed as a
@@ -163,7 +194,19 @@ const USB_Descriptor_String_t PROGMEM SerialString =
 {
 	.Header                 = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
 
-	.UnicodeString          = L"0000A00128255"
+	.UnicodeString          = {CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('A'), 
+	                           CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('0'), 
+	                           CPU_TO_LE16('1'), 
+	                           CPU_TO_LE16('2'), 
+	                           CPU_TO_LE16('8'), 
+	                           CPU_TO_LE16('2'), 
+	                           CPU_TO_LE16('5'), 
+	                           CPU_TO_LE16('5')}
 };
 
 /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
diff --git a/Projects/AVRISP-MKII/Descriptors.h b/Projects/AVRISP-MKII/Descriptors.h
index ca68fd518..c831cffd6 100644
--- a/Projects/AVRISP-MKII/Descriptors.h
+++ b/Projects/AVRISP-MKII/Descriptors.h
@@ -37,11 +37,18 @@
 #define _DESCRIPTORS_H_
 
 	/* Includes: */
-		#include <avr/pgmspace.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Drivers/USB/USB.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/pgmspace.h>
+		#endif
+
 	/* Macros: */
+		#if (ARCH == ARCH_UC3) // TODO: FIXME
+			#define PROGMEM const
+		#endif
+	
 		#if !defined(LIBUSB_DRIVER_COMPAT)
 			/** Endpoint number of the AVRISP data OUT endpoint. */
 			#define AVRISP_DATA_OUT_EPNUM      2
@@ -70,7 +77,7 @@
 			USB_Descriptor_Interface_t               AVRISP_Interface;
 			USB_Descriptor_Endpoint_t                AVRISP_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
-		} USB_Descriptor_Configuration_t;
+		} ATTR_PACKED USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
 		uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
index ccd31f3d2..2e31c1819 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
@@ -52,7 +52,7 @@ void ISPProtocol_EnterISPMode(void)
 		uint8_t PollValue;
 		uint8_t PollIndex;
 		uint8_t EnterProgBytes[4];
-	} Enter_ISP_Params;
+	} ATTR_PACKED Enter_ISP_Params;
 
 	Endpoint_Read_Stream_LE(&Enter_ISP_Params, sizeof(Enter_ISP_Params), NULL);
 
@@ -107,7 +107,7 @@ void ISPProtocol_LeaveISPMode(void)
 	{
 		uint8_t PreDelayMS;
 		uint8_t PostDelayMS;
-	} Leave_ISP_Params;
+	} ATTR_PACKED Leave_ISP_Params;
 
 	Endpoint_Read_Stream_LE(&Leave_ISP_Params, sizeof(Leave_ISP_Params), NULL);
 
@@ -141,12 +141,12 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
 		uint8_t  ProgrammingCommands[3];
 		uint8_t  PollValue1;
 		uint8_t  PollValue2;
-		uint8_t  ProgData[256]; // Note, the Jungo driver has a very short ACK timeout period, need to buffer the
-	} Write_Memory_Params;      // whole page and ACK the packet as fast as possible to prevent it from aborting
+		uint8_t  ProgData[256];        // Note, the Jungo driver has a very short ACK timeout period, need to buffer the
+	} ATTR_PACKED Write_Memory_Params; // whole page and ACK the packet as fast as possible to prevent it from aborting
 
 	Endpoint_Read_Stream_LE(&Write_Memory_Params, (sizeof(Write_Memory_Params) -
 	                                               sizeof(Write_Memory_Params.ProgData)), NULL);
-	Write_Memory_Params.BytesToWrite = SwapEndian_16(Write_Memory_Params.BytesToWrite);
+	Write_Memory_Params.BytesToWrite = be16_to_cpu(Write_Memory_Params.BytesToWrite);
 	
 	if (Write_Memory_Params.BytesToWrite > sizeof(Write_Memory_Params.ProgData))
 	{
@@ -286,10 +286,10 @@ void ISPProtocol_ReadMemory(uint8_t V2Command)
 	{
 		uint16_t BytesToRead;
 		uint8_t  ReadMemoryCommand;
-	} Read_Memory_Params;
+	} ATTR_PACKED Read_Memory_Params;
 
 	Endpoint_Read_Stream_LE(&Read_Memory_Params, sizeof(Read_Memory_Params), NULL);
-	Read_Memory_Params.BytesToRead = SwapEndian_16(Read_Memory_Params.BytesToRead);
+	Read_Memory_Params.BytesToRead = be16_to_cpu(Read_Memory_Params.BytesToRead);
 	
 	Endpoint_ClearOUT();
 	Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM);
@@ -360,7 +360,7 @@ void ISPProtocol_ChipErase(void)
 		uint8_t EraseDelayMS;
 		uint8_t PollMethod;
 		uint8_t EraseCommandBytes[4];
-	} Erase_Chip_Params;
+	} ATTR_PACKED Erase_Chip_Params;
 
 	Endpoint_Read_Stream_LE(&Erase_Chip_Params, sizeof(Erase_Chip_Params), NULL);
 
@@ -396,7 +396,7 @@ void ISPProtocol_ReadFuseLockSigOSCCAL(uint8_t V2Command)
 	{
 		uint8_t RetByte;
 		uint8_t ReadCommandBytes[4];
-	} Read_FuseLockSigOSCCAL_Params;
+	} ATTR_PACKED Read_FuseLockSigOSCCAL_Params;
 
 	Endpoint_Read_Stream_LE(&Read_FuseLockSigOSCCAL_Params, sizeof(Read_FuseLockSigOSCCAL_Params), NULL);
 
@@ -427,7 +427,7 @@ void ISPProtocol_WriteFuseLock(uint8_t V2Command)
 	struct
 	{
 		uint8_t WriteCommandBytes[4];
-	} Write_FuseLockSig_Params;
+	} ATTR_PACKED Write_FuseLockSig_Params;
 
 	Endpoint_Read_Stream_LE(&Write_FuseLockSig_Params, sizeof(Write_FuseLockSig_Params), NULL);
 
@@ -454,7 +454,7 @@ void ISPProtocol_SPIMulti(void)
 		uint8_t RxBytes;
 		uint8_t RxStartAddr;
 		uint8_t TxData[255];
-	} SPI_Multi_Params;
+	} ATTR_PACKED SPI_Multi_Params;
 
 	Endpoint_Read_Stream_LE(&SPI_Multi_Params, (sizeof(SPI_Multi_Params) - sizeof(SPI_Multi_Params.TxData)), NULL);
 	Endpoint_Read_Stream_LE(&SPI_Multi_Params.TxData, SPI_Multi_Params.TxBytes, NULL);
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h
index 213ce5ce6..8b0861971 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h
@@ -37,10 +37,14 @@
 #define _ISP_PROTOCOL_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <util/delay.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Drivers/USB/USB.h>
+		
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
 
 		#include "../V2Protocol.h"
 
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
index 057aa7ad1..e183dee0f 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
@@ -37,12 +37,19 @@
 #define _ISP_TARGET_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/pgmspace.h>
-		#include <util/delay.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Drivers/USB/USB.h>
-		#include <LUFA/Drivers/Peripheral/SPI.h>
+		
+		#if defined(ENABLE_ISP_PROTOCOL) || defined(__DOXYGEN__)
+			#include <LUFA/Drivers/Peripheral/SPI.h> // TODO: FIXME
+		#endif
+		
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/pgmspace.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
 
 		#include "../V2ProtocolParams.h"
 
@@ -84,6 +91,7 @@
 		                                      const uint8_t ReadMemCommand);
 
 	/* Inline Functions: */
+		#if defined(ENABLE_ISP_PROTOCOL) || defined(__DOXYGEN__)
 		/** Sends a byte of ISP data to the attached target, using the appropriate SPI hardware or
 		 *  software routines depending on the selected ISP speed.
 		 *
@@ -124,6 +132,7 @@
 			else
 			  return ISPTarget_TransferSoftSPIByte(Byte);
 		}
+		#endif
 
 #endif
 
diff --git a/Projects/AVRISP-MKII/Lib/V2Protocol.c b/Projects/AVRISP-MKII/Lib/V2Protocol.c
index f763d6333..a955a95a8 100644
--- a/Projects/AVRISP-MKII/Lib/V2Protocol.c
+++ b/Projects/AVRISP-MKII/Lib/V2Protocol.c
@@ -42,13 +42,17 @@ uint32_t CurrentAddress;
 /** Flag to indicate that the next read/write operation must update the device's current extended FLASH address */
 bool MustLoadExtendedAddress;
 
+/** Command timeout expiration flag. */
+volatile bool TimeoutExpired;
 
+#if (ARCH == ARCH_AVR8) // TODO: FIXME
 /** ISR to manage timeouts whilst processing a V2Protocol command */
 ISR(WDT_vect, ISR_BLOCK)
 {
 	TimeoutExpired = true;
 	wdt_disable();
 }
+#endif
 
 /** Initialises the hardware and software associated with the V2 protocol command handling. */
 void V2Protocol_Init(void)
@@ -75,10 +79,12 @@ void V2Protocol_ProcessCommand(void)
 {
 	uint8_t V2Command = Endpoint_Read_8();
 
+	#if (ARCH == ARCH_AVR8) // TODO: FIXME
 	/* Start the watchdog with timeout interrupt enabled to manage the timeout */
 	TimeoutExpired = false;
 	wdt_enable(WDTO_1S);
 	WDTCSR |= (1 << WDIE);
+	#endif
 
 	switch (V2Command)
 	{
@@ -140,8 +146,10 @@ void V2Protocol_ProcessCommand(void)
 			break;
 	}
 
+	#if (ARCH == ARCH_AVR8) // TODO: FIXME
 	/* Disable the timeout management watchdog timer */
 	wdt_disable();
+	#endif
 
 	Endpoint_WaitUntilReady();
 	Endpoint_SelectEndpoint(AVRISP_DATA_OUT_EPNUM);
diff --git a/Projects/AVRISP-MKII/Lib/V2Protocol.h b/Projects/AVRISP-MKII/Lib/V2Protocol.h
index 8e9e6ff38..c2f0ee072 100644
--- a/Projects/AVRISP-MKII/Lib/V2Protocol.h
+++ b/Projects/AVRISP-MKII/Lib/V2Protocol.h
@@ -37,12 +37,17 @@
 #define _V2_PROTOCOL_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/interrupt.h>
-		#include <avr/wdt.h>
-	
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Drivers/USB/USB.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/interrupt.h>
+			#include <avr/wdt.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>
+		#endif
+		
 		#include "../Descriptors.h"
 		#include "V2ProtocolConstants.h"
 		#include "V2ProtocolParams.h"
@@ -69,15 +74,13 @@
 		/** Timeout period for each issued command from the host before it is aborted (in 10ms ticks). */
 		#define COMMAND_TIMEOUT_TICKS      100
 
-		/** Command timeout expiration flag, GPIOR for speed. */
-		#define TimeoutExpired             GPIOR1
-
 		/** MUX mask for the VTARGET ADC channel number. */
 		#define VTARGET_ADC_CHANNEL_MASK   ADC_GET_CHANNEL_MASK(VTARGET_ADC_CHANNEL)
 
 	/* External Variables: */
-		extern uint32_t CurrentAddress;
-		extern bool     MustLoadExtendedAddress;
+		extern uint32_t      CurrentAddress;
+		extern bool          MustLoadExtendedAddress;
+		extern volatile bool TimeoutExpired;
 
 	/* Function Prototypes: */
 		void V2Protocol_Init(void);
diff --git a/Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h b/Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h
index 716e5fadb..f4fad5eff 100644
--- a/Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h
+++ b/Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h
@@ -73,6 +73,7 @@
 		#define STATUS_CONN_FAIL_SCK        0x04
 		#define STATUS_TGT_NOT_DETECTED     0x10
 		#define STATUS_TGT_REVERSE_INSERTED 0x20
+		#define STATUS_ANSWER_CKSUM_ERROR 	0xB0
 
 		#define PARAM_BUILD_NUMBER_LOW      0x80
 		#define PARAM_BUILD_NUMBER_HIGH     0x81
diff --git a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
index 3c1a88130..6342d75b3 100644
--- a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
+++ b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
@@ -37,7 +37,7 @@
 #include "V2ProtocolParams.h"
 
 /* Non-Volatile Parameter Values for EEPROM storage */
-static uint8_t EEMEM EEPROM_Rest_Polarity = 0x00;
+static uint8_t EEMEM EEPROM_Reset_Polarity = 0x00;
 
 /* Volatile Parameter Values for RAM storage */
 static ParameterItem_t ParameterTable[] =
@@ -88,7 +88,7 @@ static ParameterItem_t ParameterTable[] =
 void V2Params_LoadNonVolatileParamValues(void)
 {
 	/* Target RESET line polarity is a non-volatile value, retrieve current parameter value from EEPROM */
-	V2Params_GetParamFromTable(PARAM_RESET_POLARITY)->ParamValue = eeprom_read_byte(&EEPROM_Rest_Polarity);
+	V2Params_GetParamFromTable(PARAM_RESET_POLARITY)->ParamValue = eeprom_read_byte(&EEPROM_Reset_Polarity);
 }
 
 /** Updates any parameter values that are sourced from hardware rather than explicitly set by the host, such as
@@ -163,7 +163,7 @@ void V2Params_SetParameterValue(const uint8_t ParamID,
 
 	/* The target RESET line polarity is a non-volatile parameter, save to EEPROM when changed */
 	if (ParamID == PARAM_RESET_POLARITY)
-	  eeprom_update_byte(&EEPROM_Rest_Polarity, Value);
+	  eeprom_update_byte(&EEPROM_Reset_Polarity, Value);
 }
 
 /** Retrieves a parameter entry (including ID, value and privileges) from the parameter table that matches the given
diff --git a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.h b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.h
index f4479d308..4ef091ce7 100644
--- a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.h
+++ b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.h
@@ -37,15 +37,20 @@
 #define _V2_PROTOCOL_PARAMS_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/eeprom.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Version.h>
 
 		#if defined(ADC)
 			#include <LUFA/Drivers/Peripheral/ADC.h>
 		#endif
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/eeprom.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>		
+		#endif
+
 		#include "V2Protocol.h"
 		#include "V2ProtocolConstants.h"
 		#include "ISP/ISPTarget.h"
@@ -59,6 +64,12 @@
 
 		/** Total number of parameters in the parameter table */
 		#define TABLE_PARAM_COUNT   (sizeof(ParameterTable) / sizeof(ParameterTable[0]))
+		
+		#if (ARCH == ARCH_UC3) // TODO: FIXME
+			#define EEMEM
+			#define eeprom_read_byte(x) *x
+			#define eeprom_update_byte(x,y) *x=y
+		#endif
 
 	/* Type Defines: */
 		/** Type define for a parameter table entry indicating a PC readable or writable device parameter. */
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h
index b2b37e916..089341592 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h
+++ b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h
@@ -37,12 +37,17 @@
 #define _TINY_NVM_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/interrupt.h>
-		#include <stdbool.h>
-
 		#include <LUFA/Common/Common.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/interrupt.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
+		
+		#include <stdbool.h>
+
 		#include "XPROGProtocol.h"
 		#include "XPROGTarget.h"
 
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h b/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h
index 48fa8eb96..11f79326b 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h
@@ -37,12 +37,17 @@
 #define _XMEGA_NVM_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/interrupt.h>
-		#include <stdbool.h>
-
 		#include <LUFA/Common/Common.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/interrupt.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
+		
+		#include <stdbool.h>
+
 		#include "XPROGProtocol.h"
 		#include "XPROGTarget.h"
 
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c
index 72cc53636..778a7df9b 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c
@@ -60,7 +60,7 @@ void XPROGProtocol_SetMode(void)
 	struct
 	{
 		uint8_t Protocol;
-	} SetMode_XPROG_Params;
+	} ATTR_PACKED SetMode_XPROG_Params;
 
 	Endpoint_Read_Stream_LE(&SetMode_XPROG_Params, sizeof(SetMode_XPROG_Params), NULL);
 
@@ -163,10 +163,10 @@ static void XPROGProtocol_Erase(void)
 	{
 		uint8_t  MemoryType;
 		uint32_t Address;
-	} Erase_XPROG_Params;
+	} ATTR_PACKED Erase_XPROG_Params;
 
 	Endpoint_Read_Stream_LE(&Erase_XPROG_Params, sizeof(Erase_XPROG_Params), NULL);
-	Erase_XPROG_Params.Address = SwapEndian_32(Erase_XPROG_Params.Address);
+	Erase_XPROG_Params.Address = be32_to_cpu(Erase_XPROG_Params.Address);
 
 	Endpoint_ClearOUT();
 	Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM);
@@ -242,12 +242,12 @@ static void XPROGProtocol_WriteMemory(void)
 		uint32_t Address;
 		uint16_t Length;
 		uint8_t  ProgData[256];
-	} WriteMemory_XPROG_Params;
+	} ATTR_PACKED WriteMemory_XPROG_Params;
 
 	Endpoint_Read_Stream_LE(&WriteMemory_XPROG_Params, (sizeof(WriteMemory_XPROG_Params) -
 	                                                    sizeof(WriteMemory_XPROG_Params).ProgData), NULL);
-	WriteMemory_XPROG_Params.Address = SwapEndian_32(WriteMemory_XPROG_Params.Address);
-	WriteMemory_XPROG_Params.Length  = SwapEndian_16(WriteMemory_XPROG_Params.Length);
+	WriteMemory_XPROG_Params.Address = be32_to_cpu(WriteMemory_XPROG_Params.Address);
+	WriteMemory_XPROG_Params.Length  = be16_to_cpu(WriteMemory_XPROG_Params.Length);
 	Endpoint_Read_Stream_LE(&WriteMemory_XPROG_Params.ProgData, WriteMemory_XPROG_Params.Length, NULL);
 
 	// The driver will terminate transfers that are a round multiple of the endpoint bank in size with a ZLP, need
@@ -335,11 +335,11 @@ static void XPROGProtocol_ReadMemory(void)
 		uint8_t  MemoryType;
 		uint32_t Address;
 		uint16_t Length;
-	} ReadMemory_XPROG_Params;
+	} ATTR_PACKED ReadMemory_XPROG_Params;
 
 	Endpoint_Read_Stream_LE(&ReadMemory_XPROG_Params, sizeof(ReadMemory_XPROG_Params), NULL);
-	ReadMemory_XPROG_Params.Address = SwapEndian_32(ReadMemory_XPROG_Params.Address);
-	ReadMemory_XPROG_Params.Length  = SwapEndian_16(ReadMemory_XPROG_Params.Length);
+	ReadMemory_XPROG_Params.Address = be32_to_cpu(ReadMemory_XPROG_Params.Address);
+	ReadMemory_XPROG_Params.Length  = be16_to_cpu(ReadMemory_XPROG_Params.Length);
 
 	Endpoint_ClearOUT();
 	Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM);
@@ -380,7 +380,7 @@ static void XPROGProtocol_ReadCRC(void)
 	struct
 	{
 		uint8_t CRCType;
-	} ReadCRC_XPROG_Params;
+	} ATTR_PACKED ReadCRC_XPROG_Params;
 
 	Endpoint_Read_Stream_LE(&ReadCRC_XPROG_Params, sizeof(ReadCRC_XPROG_Params), NULL);
 
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
index d637c79ea..9c7986e55 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
@@ -37,12 +37,18 @@
 #define _XPROG_PROTOCOL_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <util/delay.h>
-		#include <stdio.h>
-
+		#include <LUFA/Common/Common.h>
 		#include <LUFA/Drivers/USB/USB.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
+		
+		#include <stdbool.h>
+		#include <stdio.h>
+
 		#include "../V2Protocol.h"
 		#include "XMEGANVM.h"
 		#include "TINYNVM.h"
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
index 0a2dee73b..70e49f7c6 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
@@ -46,18 +46,22 @@ void XPROGTarget_EnableTargetPDI(void)
 {
 	IsSending = false;
 
-	/* Set Tx and XCK as outputs, Rx as input */
-	DDRD |=  (1 << 5) | (1 << 3);
-	DDRD &= ~(1 << 2);
-
-	/* Set DATA line high for at least 90ns to disable /RESET functionality */
-	PORTD |= (1 << 3);
-	_delay_us(1);
-
-	/* Set up the synchronous USART for XMEGA communications - 8 data bits, even parity, 2 stop bits */
-	UBRR1  = ((F_CPU / 2 / XPROG_HARDWARE_SPEED) - 1);
-	UCSR1B = (1 << TXEN1);
-	UCSR1C = (1 << UMSEL10) | (1 << UPM11) | (1 << USBS1) | (1 << UCSZ11) | (1 << UCSZ10) | (1 << UCPOL1);
+	#if (ARCH == ARCH_AVR8)
+		/* Set Tx and XCK as outputs, Rx as input */
+		DDRD |=  (1 << 5) | (1 << 3);
+		DDRD &= ~(1 << 2);
+
+		/* Set DATA line high for at least 90ns to disable /RESET functionality */
+		PORTD |= (1 << 3);
+		Delay_MS(1);
+
+		/* Set up the synchronous USART for XMEGA communications - 8 data bits, even parity, 2 stop bits */
+		UBRR1  = ((F_CPU / 2 / XPROG_HARDWARE_SPEED) - 1);
+		UCSR1B = (1 << TXEN1);
+		UCSR1C = (1 << UMSEL10) | (1 << UPM11) | (1 << USBS1) | (1 << UCSZ11) | (1 << UCSZ10) | (1 << UCPOL1);
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 
 	/* Send two IDLEs of 12 bits each to enable PDI interface (need at least 16 idle bits) */
 	XPROGTarget_SendIdle();
@@ -69,19 +73,23 @@ void XPROGTarget_EnableTargetTPI(void)
 {
 	IsSending = false;
 
-	/* Set /RESET line low for at least 400ns to enable TPI functionality */
-	AUX_LINE_DDR  |=  AUX_LINE_MASK;
-	AUX_LINE_PORT &= ~AUX_LINE_MASK;
-	_delay_us(1);
+	#if (ARCH == ARCH_AVR8)
+		/* Set /RESET line low for at least 400ns to enable TPI functionality */
+		AUX_LINE_DDR  |=  AUX_LINE_MASK;
+		AUX_LINE_PORT &= ~AUX_LINE_MASK;
+		Delay_MS(1);
 
-	/* Set Tx and XCK as outputs, Rx as input */
-	DDRD |=  (1 << 5) | (1 << 3);
-	DDRD &= ~(1 << 2);
+		/* Set Tx and XCK as outputs, Rx as input */
+		DDRD |=  (1 << 5) | (1 << 3);
+		DDRD &= ~(1 << 2);
 
-	/* Set up the synchronous USART for TINY communications - 8 data bits, even parity, 2 stop bits */
-	UBRR1  = ((F_CPU / 2 / XPROG_HARDWARE_SPEED) - 1);
-	UCSR1B = (1 << TXEN1);
-	UCSR1C = (1 << UMSEL10) | (1 << UPM11) | (1 << USBS1) | (1 << UCSZ11) | (1 << UCSZ10) | (1 << UCPOL1);
+		/* Set up the synchronous USART for TINY communications - 8 data bits, even parity, 2 stop bits */
+		UBRR1  = ((F_CPU / 2 / XPROG_HARDWARE_SPEED) - 1);
+		UCSR1B = (1 << TXEN1);
+		UCSR1C = (1 << UMSEL10) | (1 << UPM11) | (1 << USBS1) | (1 << UCSZ11) | (1 << UCSZ10) | (1 << UCPOL1);
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 
 	/* Send two IDLEs of 12 bits each to enable TPI interface (need at least 16 idle bits) */
 	XPROGTarget_SendIdle();
@@ -94,14 +102,18 @@ void XPROGTarget_DisableTargetPDI(void)
 	/* Switch to Rx mode to ensure that all pending transmissions are complete */
 	XPROGTarget_SetRxMode();
 
-	/* Turn off receiver and transmitter of the USART, clear settings */
-	UCSR1A  = ((1 << TXC1) | (1 << RXC1));
-	UCSR1B  = 0;
-	UCSR1C  = 0;
-
-	/* Tristate all pins */
-	DDRD  &= ~((1 << 5) | (1 << 3));
-	PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));
+	#if (ARCH == ARCH_AVR8)
+		/* Turn off receiver and transmitter of the USART, clear settings */
+		UCSR1A  = ((1 << TXC1) | (1 << RXC1));
+		UCSR1B  = 0;
+		UCSR1C  = 0;
+
+		/* Tristate all pins */
+		DDRD  &= ~((1 << 5) | (1 << 3));
+		PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 }
 
 /** Disables the target's TPI interface, exits programming mode and starts the target's application. */
@@ -110,18 +122,22 @@ void XPROGTarget_DisableTargetTPI(void)
 	/* Switch to Rx mode to ensure that all pending transmissions are complete */
 	XPROGTarget_SetRxMode();
 
-	/* Turn off receiver and transmitter of the USART, clear settings */
-	UCSR1A |= (1 << TXC1) | (1 << RXC1);
-	UCSR1B  = 0;
-	UCSR1C  = 0;
-
-	/* Set all USART lines as inputs, tristate */
-	DDRD  &= ~((1 << 5) | (1 << 3));
-	PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));
-	
-	/* Tristate target /RESET line */
-	AUX_LINE_DDR  &= ~AUX_LINE_MASK;
-	AUX_LINE_PORT &= ~AUX_LINE_MASK;
+	#if (ARCH == ARCH_AVR8)
+		/* Turn off receiver and transmitter of the USART, clear settings */
+		UCSR1A |= (1 << TXC1) | (1 << RXC1);
+		UCSR1B  = 0;
+		UCSR1C  = 0;
+
+		/* Set all USART lines as inputs, tristate */
+		DDRD  &= ~((1 << 5) | (1 << 3));
+		PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));
+		
+		/* Tristate target /RESET line */
+		AUX_LINE_DDR  &= ~AUX_LINE_MASK;
+		AUX_LINE_PORT &= ~AUX_LINE_MASK;
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 }
 
 /** Sends a byte via the USART.
@@ -134,10 +150,14 @@ void XPROGTarget_SendByte(const uint8_t Byte)
 	if (!(IsSending))
 	  XPROGTarget_SetTxMode();
 
-	/* Wait until there is space in the hardware Tx buffer before writing */
-	while (!(UCSR1A & (1 << UDRE1)));
-	UCSR1A |= (1 << TXC1);
-	UDR1    = Byte;
+	#if (ARCH == ARCH_AVR8)
+		/* Wait until there is space in the hardware Tx buffer before writing */
+		while (!(UCSR1A & (1 << UDRE1)));
+		UCSR1A |= (1 << TXC1);
+		UDR1    = Byte;
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 }
 
 /** Receives a byte via the software USART, blocking until data is received.
@@ -150,10 +170,15 @@ uint8_t XPROGTarget_ReceiveByte(void)
 	if (IsSending)
 	  XPROGTarget_SetRxMode();
 
-	/* Wait until a byte has been received before reading */
-	while (!(UCSR1A & (1 << RXC1)) && !(TimeoutExpired));
+	#if (ARCH == ARCH_AVR8)
+		/* Wait until a byte has been received before reading */
+		while (!(UCSR1A & (1 << RXC1)) && !(TimeoutExpired));
 
-	return UDR1;
+		return UDR1;
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+		return 0;
+	#endif
 }
 
 /** Sends an IDLE via the USART to the attached target, consisting of a full frame of idle bits. */
@@ -163,40 +188,52 @@ void XPROGTarget_SendIdle(void)
 	if (!(IsSending))
 	  XPROGTarget_SetTxMode();
 	
-	/* Need to do nothing for a full frame to send an IDLE */
-	for (uint8_t i = 0; i < BITS_IN_USART_FRAME; i++)
-	{
-		/* Wait for a full cycle of the clock */
-		while (PIND & (1 << 5));
-		while (!(PIND & (1 << 5)));
-	}
+	#if (ARCH == ARCH_AVR8)
+		/* Need to do nothing for a full frame to send an IDLE */
+		for (uint8_t i = 0; i < BITS_IN_USART_FRAME; i++)
+		{
+			/* Wait for a full cycle of the clock */
+			while (PIND & (1 << 5));
+			while (!(PIND & (1 << 5)));
+		}
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 }
 
 static void XPROGTarget_SetTxMode(void)
 {
-	/* Wait for a full cycle of the clock */
-	while (PIND & (1 << 5));
-	while (!(PIND & (1 << 5)));
+	#if (ARCH == ARCH_AVR8)
+		/* Wait for a full cycle of the clock */
+		while (PIND & (1 << 5));
+		while (!(PIND & (1 << 5)));
 
-	PORTD  |=  (1 << 3);
-	DDRD   |=  (1 << 3);
+		PORTD  |=  (1 << 3);
+		DDRD   |=  (1 << 3);
 
-	UCSR1B &= ~(1 << RXEN1);
-	UCSR1B |=  (1 << TXEN1);
+		UCSR1B &= ~(1 << RXEN1);
+		UCSR1B |=  (1 << TXEN1);
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 
 	IsSending = true;
 }
 
 static void XPROGTarget_SetRxMode(void)
 {
-	while (!(UCSR1A & (1 << TXC1)));
-	UCSR1A |=  (1 << TXC1);
-
-	UCSR1B &= ~(1 << TXEN1);
-	UCSR1B |=  (1 << RXEN1);
-
-	DDRD   &= ~(1 << 3);
-	PORTD  &= ~(1 << 3);
+	#if (ARCH == ARCH_AVR8)
+		while (!(UCSR1A & (1 << TXC1)));
+		UCSR1A |=  (1 << TXC1);
+
+		UCSR1B &= ~(1 << TXEN1);
+		UCSR1B |=  (1 << RXEN1);
+
+		DDRD   &= ~(1 << 3);
+		PORTD  &= ~(1 << 3);
+	#elif (ARCH == ARCH_UC3)
+		// TODO: FIXME
+	#endif
 
 	IsSending = false;
 }
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h
index ebc563933..e2194b3fe 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h
@@ -37,12 +37,15 @@
 #define _XPROG_TARGET_
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/interrupt.h>
-		#include <stdbool.h>
-
 		#include <LUFA/Common/Common.h>
 
+		#if (ARCH == ARCH_AVR8)
+			#include <avr/io.h>
+			#include <avr/interrupt.h>
+		#elif (ARCH == ARCH_UC3)
+			#include <avr32/io.h>			
+		#endif
+
 		#include "../V2Protocol.h"
 		#include "XPROGProtocol.h"
 
diff --git a/Projects/AVRISP-MKII/makefile b/Projects/AVRISP-MKII/makefile
index de1e225da..d9129237e 100644
--- a/Projects/AVRISP-MKII/makefile
+++ b/Projects/AVRISP-MKII/makefile
@@ -174,7 +174,7 @@ CPPSRC =
 #     Even though the DOS/Win* filesystem matches both .s and .S the same,
 #     it will preserve the spelling of the filenames, and gcc itself does
 #     care about how the name is spelled on its command-line.
-ASRC =
+ASRC = 
 
 
 # Optimization level, can be [0, 1, 2, 3, s].
-- 
GitLab