diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c
index 7a5a0a6ea286959f1c23a507c56ef8c8ed0ac943..f62fcbec55f75d00c520d8a39f52570c1c890d7b 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 93ca370a8e8a02aae2c5a5a7e51c531b9fc5417f..22cfac4d9f5bda9242b1e562edd41e5f4e952af2 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 0000000000000000000000000000000000000000..7ac8f0015c738090abedb458d19c008f84d27ba0
--- /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 0000000000000000000000000000000000000000..1996e8fde5d7311bbef07a199045173b4bebb079
--- /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
Binary files /dev/null and b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.elf differ
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.h
new file mode 100644
index 0000000000000000000000000000000000000000..6a3b8502c5dced06850b0db49c5d6dd62d989136
--- /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 0000000000000000000000000000000000000000..2c962aabdae5b4217bb82d5a0183f23be5ee21e4
--- /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 0000000000000000000000000000000000000000..1529174033f3977e3a88d0626da098fcf8047a8d
--- /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 0000000000000000000000000000000000000000..c99fb0e1da2a796658e4d3ff68e45b9d8b40ddb4
--- /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 0000000000000000000000000000000000000000..189341a7d4ac3f21ebc4f072ab2f759ed2c3d19c
--- /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
Binary files /dev/null and b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.o differ
diff --git a/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym b/Demos/Host/Incomplete/AudioInputHost/AudioInputHost.sym
new file mode 100644
index 0000000000000000000000000000000000000000..498ebbca4bc907ced4071ce7f2c8ec0428acc105
--- /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 0000000000000000000000000000000000000000..d0ca91a08df3e8d21d386b08cd0bb6bccfa78329
--- /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 0000000000000000000000000000000000000000..4a1cf90935608e4db64756f15f86bd6071fc2981
--- /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 0000000000000000000000000000000000000000..9a637862946bfd38992bb59780cca750f2ef0261
--- /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
Binary files /dev/null and b/Demos/Host/Incomplete/AudioInputHost/ConfigDescriptor.o differ
diff --git a/Demos/Host/Incomplete/AudioInputHost/makefile b/Demos/Host/Incomplete/AudioInputHost/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6febc161d19df04d1bec647d647e6f69b8ad0dfc
--- /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 c2426bda71362cd662c1c92f85c8d4e86a756910..8b0155b272e4b50b817cd6eb8c460a18a2c95971 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 c838411f06fc2a6cfc85c40bb319bef321a32368..713c96f7c7289c7be764f563308f8a019c4caa41 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 f18db7456043064a12e08a2d1b72e37d716a8895..8c5c9960d5a62fa4bb02f50472f83fc732860e00 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 f619983ec1cf40a639951a8da47054c121db292b..4fe30411e028232a22523302e175160a71df79ef 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 4e16d3afa2f8abf46c592e4fc490a74162ad1ebc..154f86243d5f6222fd23995cd479ed7599eabea0 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 654ce54716dc99779516091b6a427823dcf79fc4..d774b111917c899d393680c1ead8522cf8e99e36 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 2650b4939b53a28ad7b049543b16a0dc7b1352d0..5a0d09111a3b6697154d45043246b9d2b43cf471 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 a84b75f380348fb79480bf9ca374e2fc3a0891e3..9889820cf38c3b21bdd2aeb2cc1e09742638bdef 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 ca68fd51876d3deaa00b932a8aecc02c421cd1b0..c831cffd62ce208d7d39f8aaa3212a965f88107f 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 ccd31f3d282777c2575fd31becce653ca3c7afd2..2e31c1819ade2a7f507240573d1057d4df62799a 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 213ce5ce69c958528f8904b3bbda492391b6e456..8b0861971162ce444d7ede33281447bbc7c87016 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 057aa7ad1798c091a49a73f0fbb4a8bd328c1051..e183dee0f961f32fa825b8706160bbe1223560cb 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 f763d6333b80032bba670943840812b9b5a64884..a955a95a8ec5b28bae56e079b7a98ee618a060a2 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 8e9e6ff38ff9e84deab193413b0d6deb2912afbe..c2f0ee072afd05ab085b5608bf867238956c3527 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 716e5fadbd89c57c48decb35c059d6e1d67aa89e..f4fad5effdc628ef96c01096c619f89a4a67034b 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 3c1a88130a0b98099893bc688ddc8f49fe2dff8a..6342d75b34ef8eb9f48339ef3b1ae0985818eb3e 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 f4479d308a39c0fbc956c36f895c2ac2fc37613f..4ef091ce77e0985042f69878284b9063e2f9761c 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 b2b37e9164c27099a08e4136dd0bee3044a11de7..0893415929118c04f38004174ceb581709907fee 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 48fa8eb96a3e117bc7ab8fa027120f0f37252fbb..11f79326b25e3aac090c3a215f288ac9a2bf3eca 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 72cc5363636cc31d525ed8ecb698c7aaf6070033..778a7df9bd0c87036edc624f4aac0e8862aa0837 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 d637c79ea9cfc61cd1e8bef8566b87c27fdf8fe0..9c7986e55ee9c14f1301aa60665f1c6c7cdd4ab0 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 0a2dee73b390fe2973865633398008a872218d5c..70e49f7c67949f20698f7aa9396f37005aed6dd0 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 ebc563933f41971e1c456e804468122ea8585d86..e2194b3fe5cf7bd93035446c67a9f359fd6d42c7 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 de1e225dac32f7e5363db10f9c5db84241c958d0..d9129237eb6994d108bdc6176b19f7a70f51055a 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].