+               /* Function Prototypes: */\r
+                       /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,\r
+                        *  index and language ID. This function MUST be overridden in the user application (added with full, identical  \r
+                        *  prototype and name so that the library can call it to retrieve descriptor data.\r
+                        *\r
+                        *  \param[in] wValue  The type of the descriptor to retrieve in the upper byte, and the index in the \r
+                        *                     lower byte (when more than one descriptor of the given type exists, such as the\r
+                        *                     case of string descriptors). The type may be one of the standard types defined\r
+                        *                     in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.\r
+                        *  \param[in] wIndex  The language ID of the string to return if the wValue type indicates DTYPE_String,\r
+                        *                     otherwise zero for standard descriptors, or as defined in a class-specific\r
+                        *                     standards.\r
+                        *  \param[out] DescriptorAddress  Pointer to the descriptor in memory. This should be set by the routine to\r
+                        *                                 the address of the descriptor.\r
+                        *  \param[out] MemoryAddressSpace A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory\r
+                        *                                 space in which the descriptor is stored. This parameter does not exist when one\r
+                        *                                 of the USE_*_DESCRIPTORS compile time options is used.\r
+                        *\r
+                        *  \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.\r
+                        *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to\r
+                        *        allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the \r
+                        *        USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D\r
+                        *        switch.\r