LLVMFuzzerTestOneInput:
   18|     62|extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t *data, std::size_t size) {
   19|     62|    std::vector<std::uint8_t> working(data, data + size);
   20|     62|    std::sort(working.begin(), working.end());
   21|     62|    std::vector<std::uint8_t> results = working;
   22|     62|    std::vector<std::uint8_t>::iterator new_end = std::unique(results.begin(), results.end());
   23|     62|    std::vector<std::uint8_t>::iterator it; // scratch iterator
   24|       |
   25|       |    // Check the size of the unique'd sequence.
   26|       |    // it should only be zero if the input sequence was empty.
   27|     62|    if (results.begin() == new_end)
  ------------------
  |  Branch (27:9): [True: 0, False: 62]
  ------------------
   28|      0|        return working.size() == 0 ? 0 : 1;
  ------------------
  |  Branch (28:16): [True: 0, False: 0]
  ------------------
   29|       |
   30|       |    // 'results' is sorted
   31|     62|    if (!std::is_sorted(results.begin(), new_end))
  ------------------
  |  Branch (31:9): [True: 0, False: 62]
  ------------------
   32|      0|        return 2;
   33|       |
   34|       |    // All the elements in 'results' must be different
   35|     62|    it = results.begin();
   36|     62|    std::uint8_t prev_value = *it++;
   37|  2.28k|    for (; it != new_end; ++it) {
  ------------------
  |  Branch (37:12): [True: 2.22k, False: 62]
  ------------------
   38|  2.22k|        if (*it == prev_value)
  ------------------
  |  Branch (38:13): [True: 0, False: 2.22k]
  ------------------
   39|      0|            return 3;
   40|  2.22k|        prev_value = *it;
   41|  2.22k|    }
   42|       |
   43|       |    // Every element in 'results' must be in 'working'
   44|  2.34k|    for (it = results.begin(); it != new_end; ++it)
  ------------------
  |  Branch (44:32): [True: 2.28k, False: 62]
  ------------------
   45|  2.28k|        if (std::find(working.begin(), working.end(), *it) == working.end())
  ------------------
  |  Branch (45:13): [True: 0, False: 2.28k]
  ------------------
   46|      0|            return 4;
   47|       |
   48|       |    // Every element in 'working' must be in 'results'
   49|     62|    for (auto v : working)
  ------------------
  |  Branch (49:17): [True: 4.19M, False: 62]
  ------------------
   50|  4.19M|        if (std::find(results.begin(), new_end, v) == new_end)
  ------------------
  |  Branch (50:13): [True: 0, False: 4.19M]
  ------------------
   51|      0|            return 5;
   52|       |
   53|     62|    return 0;
   54|     62|}

