+                               if (ParserData->UsingReportIDs)\r
+                               {\r
+                                       CurrReportIDInfo = NULL;\r
+\r
+                                       for (uint8_t i = 0; i < ParserData->TotalDeviceReports; i++)\r
+                                       {\r
+                                               if (ParserData->ReportIDSizes[i].ReportID == CurrStateTable->ReportID)\r
+                                               {\r
+                                                       CurrReportIDInfo = &ParserData->ReportIDSizes[i];\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                                       \r
+                                       if (CurrReportIDInfo == NULL)\r
+                                       {\r
+                                               if (ParserData->TotalDeviceReports == HID_MAX_REPORT_IDS)\r
+                                                 return HID_PARSE_InsufficientReportIDItems;\r
+                                       \r
+                                               CurrReportIDInfo = &ParserData->ReportIDSizes[ParserData->TotalDeviceReports++];\r
+                                               memset(CurrReportIDInfo, 0x00, sizeof(HID_ReportSizeInfo_t));\r
+                                       }\r
+                               }\r
+\r
+                               ParserData->UsingReportIDs = true;                              \r
+\r
+                               CurrReportIDInfo->ReportID = CurrStateTable->ReportID;\r