_ZNK4iter4impl10ChainMakerclIJRNSt3__16vectorIcNS3_9allocatorIcEEEES8_S8_EEEDaDpOT_:
  320|    495|  auto operator()(Containers&&... cs) const {
  321|    495|    return chain_impl(
  322|    495|        std::tuple<Containers...>{std::forward<Containers>(cs)...},
  323|    495|        std::index_sequence_for<Containers...>{});
  324|    495|  }
_ZNK4iter4impl10ChainMaker10chain_implINSt3__15tupleIJRNS3_6vectorIcNS3_9allocatorIcEEEES9_S9_EEEJLm0ELm1ELm2EEEENS0_7ChainedIT_JXspT0_EEEEOSC_NS3_16integer_sequenceImJXspT0_EEEE:
  313|    495|      TupleType&& containers, std::index_sequence<Is...>) const {
  314|    495|    return {std::move(containers)};
  315|    495|  }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEEC2EOS9_:
  106|    495|  Chained(TupType&& t) : tup_(std::move(t)) {}
_ZNK4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE5beginEv:
  182|    495|  Iterator<AsTupleOfConst<TupType>> begin() const {
  183|    495|    return {0, {get_begin(std::as_const(std::get<Is>(tup_)))...},
  184|    495|        {get_end(std::as_const(std::get<Is>(tup_)))...}};
  185|    495|  }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE8IteratorINS3_IJRKS7_SD_SD_EEEEC2EmONS3_IJNS2_11__wrap_iterIPKcEESJ_SJ_EEESL_:
  136|    990|        : index_{i}, iters_(std::move(iters)), ends_(std::move(ends)) {
  137|    990|      check_for_end_and_adjust();
  138|    990|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE8IteratorINS3_IJRKS7_SD_SD_EEEE24check_for_end_and_adjustEv:
  120|   128k|    void check_for_end_and_adjust() {
  121|   129k|      while (index_ < sizeof...(Is)
  ------------------
  |  Branch (121:14): [True: 128k, False: 990]
  ------------------
  122|   129k|             && !(IterData::neq_comparers[index_](iters_, ends_))) {
  ------------------
  |  Branch (122:17): [True: 1.48k, False: 127k]
  ------------------
  123|  1.48k|        ++index_;
  124|  1.48k|      }
  125|   128k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE23get_and_check_not_equalILm0EEEbRKNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEESN_:
   81|  42.9k|        const IterTupType& lhs, const IterTupType& rhs) {
   82|  42.9k|      return std::get<Idx>(lhs) != std::get<Idx>(rhs);
   83|  42.9k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE23get_and_check_not_equalILm1EEEbRKNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEESN_:
   81|  42.9k|        const IterTupType& lhs, const IterTupType& rhs) {
   82|  42.9k|      return std::get<Idx>(lhs) != std::get<Idx>(rhs);
   83|  42.9k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE23get_and_check_not_equalILm2EEEbRKNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEESN_:
   81|  42.9k|        const IterTupType& lhs, const IterTupType& rhs) {
   82|  42.9k|      return std::get<Idx>(lhs) != std::get<Idx>(rhs);
   83|  42.9k|    }
_ZNK4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE3endEv:
  187|    495|  Iterator<AsTupleOfConst<TupType>> end() const {
  188|    495|    return {sizeof...(Is), {get_end(std::as_const(std::get<Is>(tup_)))...},
  189|    495|        {get_end(std::as_const(std::get<Is>(tup_)))...}};
  190|    495|  }
_ZNK4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE8IteratorINS3_IJRKS7_SD_SD_EEEEneERKSF_:
  161|   127k|    bool operator!=(const Iterator& other) const {
  162|   127k|      return index_ != other.index_
  ------------------
  |  Branch (162:14): [True: 127k, False: 495]
  ------------------
  163|   127k|             || (index_ != sizeof...(Is)
  ------------------
  |  Branch (163:18): [True: 0, False: 495]
  ------------------
  164|    495|                    && IterData::neq_comparers[index_](iters_, other.iters_));
  ------------------
  |  Branch (164:24): [True: 0, False: 0]
  ------------------
  165|   127k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE8IteratorINS3_IJRKS7_SD_SD_EEEEdeEv:
  140|   127k|    decltype(auto) operator*() {
  141|   127k|      return IterData::derefers[index_](iters_);
  142|   127k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE13get_and_derefILm0EEERKcRNS3_IJNS2_11__wrap_iterIPSH_EESL_SL_EEE:
   65|  42.4k|    static DerefType get_and_deref(IterTupType& iters) {
   66|  42.4k|      return *std::get<Idx>(iters);
   67|  42.4k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE13get_and_derefILm1EEERKcRNS3_IJNS2_11__wrap_iterIPSH_EESL_SL_EEE:
   65|  42.4k|    static DerefType get_and_deref(IterTupType& iters) {
   66|  42.4k|      return *std::get<Idx>(iters);
   67|  42.4k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE13get_and_derefILm2EEERKcRNS3_IJNS2_11__wrap_iterIPSH_EESL_SL_EEE:
   65|  42.4k|    static DerefType get_and_deref(IterTupType& iters) {
   66|  42.4k|      return *std::get<Idx>(iters);
   67|  42.4k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE8IteratorINS3_IJRKS7_SD_SD_EEEEppEv:
  148|   127k|    Iterator& operator++() {
  149|   127k|      IterData::incrementers[index_](iters_);
  150|   127k|      check_for_end_and_adjust();
  151|   127k|      return *this;
  152|   127k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE17get_and_incrementILm0EEEvRNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEE:
   75|  42.4k|    static void get_and_increment(IterTupType& iters) {
   76|  42.4k|      ++std::get<Idx>(iters);
   77|  42.4k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE17get_and_incrementILm1EEEvRNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEE:
   75|  42.4k|    static void get_and_increment(IterTupType& iters) {
   76|  42.4k|      ++std::get<Idx>(iters);
   77|  42.4k|    }
_ZN4iter4impl7ChainedINSt3__15tupleIJRNS2_6vectorIcNS2_9allocatorIcEEEES8_S8_EEEJLm0ELm1ELm2EEE12IteratorDataINS3_IJRKS7_SD_SD_EEEE17get_and_incrementILm2EEEvRNS3_IJNS2_11__wrap_iterIPKcEESK_SK_EEE:
   75|  42.4k|    static void get_and_increment(IterTupType& iters) {
   76|  42.4k|      ++std::get<Idx>(iters);
   77|  42.4k|    }

_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEC2ES9_m:
   30|    495|      : container_(std::forward<Container>(container)), length_{length} {}
_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE5beginEv:
  136|    495|  Iterator<Container> begin() {
  137|    495|    return {container_, length_};
  138|    495|  }
_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE8IteratorIS9_EC2ES9_m:
   57|    990|        : container_p_{&container}, indices_{n} {
   58|    990|      if (n == 0) {
  ------------------
  |  Branch (58:11): [True: 495, False: 495]
  ------------------
   59|    495|        steps_ = COMPLETE;
   60|    495|        return;
   61|    495|      }
   62|    495|      size_t inc = 0;
   63|  1.72k|      for (auto& iter : indices_.get()) {
  ------------------
  |  Branch (63:23): [True: 1.72k, False: 318]
  ------------------
   64|  1.72k|        auto it = get_begin(*container_p_);
   65|  1.72k|        dumb_advance(it, get_end(*container_p_), inc);
   66|  1.72k|        if (it != get_end(*container_p_)) {
  ------------------
  |  Branch (66:13): [True: 1.54k, False: 177]
  ------------------
   67|  1.54k|          iter = it;
   68|  1.54k|          ++inc;
   69|  1.54k|        } else {
   70|    177|          steps_ = COMPLETE;
   71|    177|          break;
   72|    177|        }
   73|  1.72k|      }
   74|    495|    }
_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3endEv:
  140|    495|  Iterator<Container> end() {
  141|    495|    return {container_, 0};
  142|    495|  }
_ZNK4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE8IteratorIS9_EneIS9_EEbRKNSB_IT_EE:
  126|   288k|    bool operator!=(const Iterator<T>& other) const {
  127|   288k|      return !(*this == other);
  128|   288k|    }
_ZNK4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE8IteratorIS9_EeqIS9_EEbRKNSB_IT_EE:
  131|   288k|    bool operator==(const Iterator<T>& other) const {
  132|   288k|      return steps_ == other.steps_;
  133|   288k|    }
_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE8IteratorIS9_EppEv:
   84|   288k|    Iterator& operator++() {
   85|   312k|      for (auto iter = indices_.get().rbegin(); iter != indices_.get().rend();
  ------------------
  |  Branch (85:49): [True: 312k, False: 0]
  ------------------
   86|   312k|           ++iter) {
   87|   312k|        ++(*iter);
   88|       |
   89|       |        // what we have to check here is if the distance between
   90|       |        // the index and the end of indices_ is >= the distance
   91|       |        // between the item and end of item
   92|   312k|        auto dist = std::distance(indices_.get().rbegin(), iter);
   93|       |
   94|   312k|        if (!(dumb_next(*iter, dist) != get_end(*container_p_))) {
  ------------------
  |  Branch (94:13): [True: 24.1k, False: 288k]
  ------------------
   95|  24.1k|          if ((iter + 1) != indices_.get().rend()) {
  ------------------
  |  Branch (95:15): [True: 23.9k, False: 144]
  ------------------
   96|  23.9k|            size_t inc = 1;
   97|  33.5k|            for (auto down = iter; ; --down) {
   98|  33.5k|              (*down) = dumb_next(*(iter + 1), 1 + inc);
   99|  33.5k|              ++inc;
  100|  33.5k|              if (down == indices_.get().rbegin())
  ------------------
  |  Branch (100:19): [True: 23.9k, False: 9.51k]
  ------------------
  101|  23.9k|                break;
  102|  33.5k|            }
  103|  23.9k|          } else {
  104|    144|            steps_ = COMPLETE;
  105|    144|            break;
  106|    144|          }
  107|   288k|        } else {
  108|   288k|          break;
  109|   288k|        }
  110|       |        // we break because none of the rest of the items need
  111|       |        // to be incremented
  112|   312k|      }
  113|   288k|      if (steps_ != COMPLETE) {
  ------------------
  |  Branch (113:11): [True: 288k, False: 144]
  ------------------
  114|   288k|        ++steps_;
  115|   288k|      }
  116|   288k|      return *this;
  117|   288k|    }
_ZN4iter4impl10CombinatorIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE8IteratorIS9_EdeEv:
   76|   288k|    CombIteratorDeref<ContainerT>& operator*() {
   77|   288k|      return indices_;
   78|   288k|    }

_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE5beginEv:
  108|    990|  Iterator<Container, Selector> begin() {
  109|    990|    return {get_begin(container_), get_end(container_), get_begin(selectors_),
  110|    990|        get_end(selectors_)};
  111|    990|  }
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIS7_SA_EC2EONS2_11__wrap_iterIPiEESH_ONS2_14__bit_iteratorIS9_Lb0ELm0EEESK_:
   72|  1.48k|          selector_end_{std::move(sel_end)} {
   73|  1.48k|      skip_failures();
   74|  1.48k|    }
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIS7_SA_E13skip_failuresEv:
   51|  1.48k|    void skip_failures() {
   52|  1.48k|      while (sub_iter_ != sub_end_ && selector_iter_ != selector_end_
  ------------------
  |  Branch (52:14): [True: 990, False: 495]
  |  Branch (52:14): [True: 0, False: 1.48k]
  |  Branch (52:39): [True: 0, False: 990]
  ------------------
   53|  1.48k|             && !*selector_iter_) {
  ------------------
  |  Branch (53:17): [True: 0, False: 0]
  ------------------
   54|      0|        increment_iterators();
   55|      0|      }
   56|  1.48k|    }
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE3endEv:
  113|    495|  Iterator<Container, Selector> end() {
  114|    495|    return {get_end(container_), get_end(container_), get_end(selectors_),
  115|    495|        get_end(selectors_)};
  116|    495|  }
_ZNK4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE3endEv:
  125|    495|  Iterator<AsConst<Container>, AsConst<Selector>> end() const {
  126|    495|    return {get_end(std::as_const(container_)),
  127|    495|        get_end(std::as_const(container_)),
  128|    495|        get_end(std::as_const(selectors_)),
  129|    495|        get_end(std::as_const(selectors_))};
  130|    495|  }
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIRKS6_RKS9_EC2EONS2_11__wrap_iterIPKiEESM_ONS2_14__bit_iteratorIS9_Lb1ELm0EEESP_:
   72|    495|          selector_end_{std::move(sel_end)} {
   73|    495|      skip_failures();
   74|    495|    }
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIRKS6_RKS9_E13skip_failuresEv:
   51|    495|    void skip_failures() {
   52|    495|      while (sub_iter_ != sub_end_ && selector_iter_ != selector_end_
  ------------------
  |  Branch (52:14): [True: 0, False: 495]
  |  Branch (52:14): [True: 0, False: 495]
  |  Branch (52:39): [True: 0, False: 0]
  ------------------
   53|    495|             && !*selector_iter_) {
  ------------------
  |  Branch (53:17): [True: 0, False: 0]
  ------------------
   54|      0|        increment_iterators();
   55|      0|      }
   56|    495|    }
_ZN4iter8compressIRNSt3__16vectorIiNS1_9allocatorIiEEEERNS2_IbNS3_IbEEEEEENS_4impl10CompressedIT_T0_EEOSC_OSD_:
  135|    495|    Container&& container_, Selector&& selectors_) {
  136|    495|  return {
  137|    495|      std::forward<Container>(container_), std::forward<Selector>(selectors_)};
  138|    495|}
_ZN4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEEC2ES7_SA_:
   31|    495|        selectors_(std::forward<Selector>(in_selectors)) {}
_ZNK4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIS7_SA_EneIS7_SA_EEbRKNSC_IT_T0_EE:
   97|    495|    bool operator!=(const Iterator<T, U>& other) const {
   98|    495|      return sub_iter_ != other.sub_iter_
  ------------------
  |  Branch (98:14): [True: 495, False: 0]
  ------------------
   99|    495|             && selector_iter_ != other.selector_iter_;
  ------------------
  |  Branch (99:17): [True: 0, False: 495]
  ------------------
  100|    495|    }
_ZNK4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIS7_SA_EeqIRKS6_RKS9_EEbRKNSC_IT_T0_EE:
  103|    495|    bool operator==(const Iterator<T, U>& other) const {
  104|    495|      return !(*this != other);
  105|    495|    }
_ZNK4iter4impl10CompressedIRNSt3__16vectorIiNS2_9allocatorIiEEEERNS3_IbNS4_IbEEEEE8IteratorIS7_SA_EneIRKS6_RKS9_EEbRKNSC_IT_T0_EE:
   97|    495|    bool operator!=(const Iterator<T, U>& other) const {
   98|    495|      return sub_iter_ != other.sub_iter_
  ------------------
  |  Branch (98:14): [True: 495, False: 0]
  ------------------
   99|    495|             && selector_iter_ != other.selector_iter_;
  ------------------
  |  Branch (99:17): [True: 0, False: 495]
  ------------------
  100|    495|    }

_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEEC2ES7_:
   29|    495|      : container_(std::forward<Container>(container)) {}
_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE5beginEv:
   89|    495|  Iterator<Container> begin() {
   90|    495|    return {get_begin(container_), get_end(container_)};
   91|    495|  }
_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE8IteratorIS7_EC2EONS2_11__wrap_iterIPiEESE_:
   53|    990|          sub_end_{std::move(sub_end)} {}
_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE3endEv:
   93|    495|  Iterator<Container> end() {
   94|    495|    return {get_end(container_), get_end(container_)};
   95|    495|  }
_ZNK4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE8IteratorIS7_EneIS7_EEbRKNS9_IT_EE:
   79|   742k|    bool operator!=(const Iterator<T>& other) const {
   80|   742k|      return sub_iter_ != other.sub_iter_;
   81|   742k|    }
_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE8IteratorIS7_EppEv:
   63|   742k|    Iterator& operator++() {
   64|   742k|      ++sub_iter_;
   65|       |      // reset to beginning upon reaching the sub_end_
   66|   742k|      if (!(sub_iter_ != sub_end_)) {
  ------------------
  |  Branch (66:11): [True: 233k, False: 509k]
  ------------------
   67|   233k|        sub_iter_ = sub_begin_;
   68|   233k|      }
   69|   742k|      return *this;
   70|   742k|    }
_ZN4iter4impl6CyclerIRNSt3__16vectorIiNS2_9allocatorIiEEEEE8IteratorIS7_EdeEv:
   55|   742k|    iterator_deref<ContainerT> operator*() {
   56|   742k|      return *sub_iter_;
   57|   742k|    }

_Z11FuzzChainedPKhm:
   32|    495|void FuzzChained(const uint8_t *data, size_t size) {
   33|    495|  FuzzedDataProvider fdp(data, size);
   34|    495|  std::vector<char> v;
   35|  42.9k|  for (int i = 0; i < fdp.ConsumeIntegralInRange<int>(1, 1024); i++) {
  ------------------
  |  Branch (35:19): [True: 42.4k, False: 495]
  ------------------
   36|  42.4k|    v.push_back((char)fdp.ConsumeIntegral<char>());
   37|  42.4k|  }
   38|    495|  const auto ch = chain(v, v, v);
   39|    495|  std::vector<char> v2(std::begin(ch), std::end(ch));
   40|    495|}
_Z6lengthRKNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE:
   42|  16.9k|int length(const std::string &s) { return s.size(); }
_Z11FuzzGroupbyPKhm:
   44|    495|void FuzzGroupby(const uint8_t *data, size_t size) {
   45|    495|  FuzzedDataProvider fdp(data, size);
   46|    495|  std::vector<std::string> v;
   47|  12.5k|  for (int i = 0; i < fdp.ConsumeIntegralInRange<int>(1, 1024); i++) {
  ------------------
  |  Branch (47:19): [True: 12.0k, False: 495]
  ------------------
   48|  12.0k|    v.push_back(fdp.ConsumeRandomLengthString());
   49|  12.0k|  }
   50|  2.69k|  for (auto &&gb : groupby(v, length)) {
  ------------------
  |  Branch (50:18): [True: 2.69k, False: 495]
  ------------------
   51|  2.69k|  }
   52|    495|}
_Z9FuzzCyclePKhm:
   54|    495|void FuzzCycle(const uint8_t *data, size_t size) {
   55|    495|  FuzzedDataProvider fdp(data, size);
   56|    495|  std::vector<int> v;
   57|  33.9k|  for (int i = 0; i < fdp.ConsumeIntegralInRange<int>(1, 1024); i++) {
  ------------------
  |  Branch (57:19): [True: 33.4k, False: 495]
  ------------------
   58|  33.4k|    v.push_back(fdp.ConsumeIntegral<int>());
   59|  33.4k|  }
   60|    495|  auto ch = cycle(v);
   61|       |
   62|    495|  std::vector<int> o;
   63|    495|  size_t count = 0;
   64|   742k|  for (auto val : ch) {
  ------------------
  |  Branch (64:17): [True: 742k, False: 0]
  ------------------
   65|   742k|    o.push_back(val);
   66|   742k|    count++;
   67|   742k|    if (count > 1500) {
  ------------------
  |  Branch (67:9): [True: 495, False: 742k]
  ------------------
   68|    495|      break;
   69|    495|    }
   70|   742k|  }
   71|    495|}
_Z16FuzzCombinationsPKhm:
   73|    495|void FuzzCombinations(const uint8_t *data, size_t size) {
   74|    495|  FuzzedDataProvider fdp(data, size);
   75|    495|  std::string s = fdp.ConsumeRandomLengthString();
   76|    495|  std::vector<std::vector<char>> sc;
   77|    495|  size_t count = 0;
   78|   288k|  for (auto &&v : combinations(s, fdp.ConsumeIntegralInRange(1, 16))) {
  ------------------
  |  Branch (78:17): [True: 288k, False: 321]
  ------------------
   79|   288k|    sc.emplace_back(std::begin(v), std::end(v));
   80|   288k|    count++;
   81|   288k|    if (count > 1500) {
  ------------------
  |  Branch (81:9): [True: 174, False: 288k]
  ------------------
   82|    174|      break;
   83|    174|    }
   84|   288k|  }
   85|    495|}
_Z12FuzzCompressPKhm:
   87|    495|void FuzzCompress(const uint8_t *data, size_t size) {
   88|    495|  FuzzedDataProvider fdp(data, size);
   89|    495|  std::vector<int> ivec;
   90|    495|  std::vector<bool> bvec;
   91|  49.9k|  for (int i = 0; i < 100; i++) {
  ------------------
  |  Branch (91:19): [True: 49.5k, False: 495]
  ------------------
   92|  49.5k|    ivec.push_back(fdp.ConsumeIntegralInRange(1, 1000000));
   93|  49.5k|    ivec.push_back(fdp.ConsumeBool());
   94|  49.5k|  }
   95|    495|  auto c = compress(ivec, bvec);
   96|    495|  std::vector<int> v(std::begin(c), std::end(c));
   97|    495|  const auto &c2 = c;
   98|    495|  (void)(std::begin(c) == std::end(c2));
   99|    495|}
LLVMFuzzerTestOneInput:
  101|    495|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  102|    495|  FuzzChained(data, size);
  103|    495|  FuzzGroupby(data, size);
  104|    495|  FuzzCycle(data, size);
  105|    495|  FuzzCombinations(data, size);
  106|    495|  FuzzCompress(data, size);
  107|    495|  return 0;
  108|    495|}

_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_ED2Ev:
  101|    990|    ~Iterator() = default;
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_ED2Ev:
  197|  5.38k|    ~Group() {
  198|  5.38k|      if (!completed) {
  ------------------
  |  Branch (198:11): [True: 2.69k, False: 2.69k]
  ------------------
  199|  14.7k|        for (auto iter = begin(), end_it = end(); iter != end_it; ++iter) {
  ------------------
  |  Branch (199:51): [True: 12.0k, False: 2.69k]
  ------------------
  200|  12.0k|        }
  201|  2.69k|      }
  202|  5.38k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E5beginEv:
  263|  2.69k|    GroupIterator begin() {
  264|  2.69k|      return {this, key_};
  265|  2.69k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E13GroupIteratorC2EPSJ_Ri:
  229|  5.38k|          : key_{&key}, group_p_{group_p} {}
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E3endEv:
  267|  2.69k|    GroupIterator end() {
  268|  2.69k|      return {nullptr, key_};
  269|  2.69k|    }
_ZNK4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E13GroupIteratorneERKSK_:
  231|  14.7k|      bool operator!=(const GroupIterator& other) const {
  232|  14.7k|        return !(*this == other);
  233|  14.7k|      }
_ZNK4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E13GroupIteratoreqERKSK_:
  235|  14.7k|      bool operator==(const GroupIterator& other) const {
  236|  14.7k|        return group_p_ == other.group_p_;
  237|  14.7k|      }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E13GroupIteratorppEv:
  239|  12.0k|      GroupIterator& operator++() {
  240|  12.0k|        group_p_->owner_.increment_iterator();
  241|  12.0k|        if (!not_at_end()) {
  ------------------
  |  Branch (241:13): [True: 2.69k, False: 9.36k]
  ------------------
  242|  2.69k|          group_p_->completed = true;
  243|  2.69k|          group_p_ = nullptr;
  244|  2.69k|        }
  245|  12.0k|        return *this;
  246|  12.0k|      }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_E18increment_iteratorEv:
  140|  12.0k|    void increment_iterator() {
  141|  12.0k|      if (sub_iter_ != sub_end_) {
  ------------------
  |  Branch (141:11): [True: 12.0k, False: 0]
  ------------------
  142|  12.0k|        ++sub_iter_;
  143|  12.0k|        if (sub_iter_ != sub_end_) {
  ------------------
  |  Branch (143:13): [True: 11.5k, False: 495]
  ------------------
  144|  11.5k|          item_.reset(*sub_iter_);
  145|  11.5k|        }
  146|  12.0k|      }
  147|  12.0k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_E13GroupIterator10not_at_endEv:
  215|  12.0k|      bool not_at_end() {
  216|  12.0k|        return !group_p_->owner_.exhausted()
  ------------------
  |  Branch (216:16): [True: 11.5k, False: 495]
  ------------------
  217|  12.0k|               && group_p_->owner_.next_key() == *key_;
  ------------------
  |  Branch (217:19): [True: 9.36k, False: 2.19k]
  ------------------
  218|  12.0k|      }
_ZNK4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_E9exhaustedEv:
  149|  12.0k|    bool exhausted() const {
  150|  12.0k|      return !(sub_iter_ != sub_end_);
  151|  12.0k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_E8next_keyEv:
  161|  14.2k|    key_func_ret<ContainerT> next_key() {
  162|  14.2k|      return std::invoke(*key_func_, item_.get());
  163|  14.2k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EEC2ESC_SG_:
   38|    495|      : container_(std::forward<Container>(container)), key_func_(key_func) {}
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5beginEv:
  272|    495|  Iterator<Container> begin() {
  273|    495|    return {get_begin(container_), get_end(container_), key_func_};
  274|    495|  }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_EC2EONS2_11__wrap_iterIPS9_EESN_RSG_:
   77|    990|          key_func_(&key_func) {
   78|    990|      if (sub_iter_ != sub_end_) {
  ------------------
  |  Branch (78:11): [True: 495, False: 495]
  ------------------
   79|    495|        item_.reset(*sub_iter_);
   80|    495|      }
   81|    990|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE3endEv:
  276|    495|  Iterator<Container> end() {
  277|    495|    return {get_end(container_), get_end(container_), key_func_};
  278|    495|  }
_ZNK4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_EneISC_EEbRKNSI_IT_EE:
  131|  3.18k|    bool operator!=(const Iterator<T>& other) const {
  132|  3.18k|      return sub_iter_ != other.sub_iter_;
  133|  3.18k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_EppEv:
  116|  2.69k|    Iterator& operator++() {
  117|  2.69k|      if (!current_key_group_pair_) {
  ------------------
  |  Branch (117:11): [True: 0, False: 2.69k]
  ------------------
  118|      0|        set_key_group_pair();
  119|      0|      }
  120|  2.69k|      current_key_group_pair_.reset();
  121|  2.69k|      return *this;
  122|  2.69k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_E18set_key_group_pairEv:
  165|  2.69k|    void set_key_group_pair() {
  166|  2.69k|      if (!current_key_group_pair_) {
  ------------------
  |  Branch (166:11): [True: 2.69k, False: 0]
  ------------------
  167|  2.69k|        current_key_group_pair_.emplace(std::invoke(*key_func_, item_.get()),
  168|  2.69k|            Group<ContainerT>{*this, next_key()});
  169|  2.69k|      }
  170|  2.69k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_EC2EOSJ_:
  206|  2.69k|        : owner_(other.owner_), key_{other.key_}, completed{other.completed} {
  207|  2.69k|      other.completed = true;
  208|  2.69k|    }
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE5GroupISC_EC2ERNSH_8IteratorISC_EEi:
  194|  2.69k|        : owner_(owner), key_(key) {}
_ZN4iter4impl13GroupProducerIRNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEEPFiRKS9_EE8IteratorISC_EdeEv:
  106|  2.69k|    KeyGroupPair<ContainerT>& operator*() {
  107|  2.69k|      set_key_group_pair();
  108|  2.69k|      return *current_key_group_pair_;
  109|  2.69k|    }

_ZN4iter4impl15IterIterWrapperINSt3__16vectorINS2_11__wrap_iterIPcEENS2_9allocatorIS6_EEEEE5beginEv:
  212|   288k|      iterator begin() noexcept {
  213|   288k|        return {container.begin()};
  214|   288k|      }
_ZN4iter4impl16IteratorIteratorINSt3__111__wrap_iterIPNS3_IPcEEEEEC2ERKS7_:
   45|   577k|      IteratorIterator(const TopIter& it) : sub_iter{it} {}
_ZN4iter4impl15IterIterWrapperINSt3__16vectorINS2_11__wrap_iterIPcEENS2_9allocatorIS6_EEEEE3endEv:
  216|   288k|      iterator end() noexcept {
  217|   288k|        return {container.end()};
  218|   288k|      }
_ZN4iter4impl15IterIterWrapperINSt3__16vectorINS2_11__wrap_iterIPcEENS2_9allocatorIS6_EEEEEC2Em:
  181|    990|      explicit IterIterWrapper(size_type sz) : container(sz) {}
_ZN4iter4impl15IterIterWrapperINSt3__16vectorINS2_11__wrap_iterIPcEENS2_9allocatorIS6_EEEEE3getEv:
  263|   971k|      Container& get() noexcept {
  264|   971k|        return container;
  265|   971k|      }
_ZNK4iter4impl16IteratorIteratorINSt3__111__wrap_iterIPNS3_IPcEEEEEmiERKS8_:
  118|   288k|      Diff operator-(const IteratorIterator& rhs) const {
  119|   288k|        return this->sub_iter - rhs.sub_iter;
  120|   288k|      }
_ZNK4iter4impl16IteratorIteratorINSt3__111__wrap_iterIPNS3_IPcEEEEEneIS7_EEbRKNS1_IT_EE:
   57|  2.04M|      bool operator!=(const IteratorIterator<T>& other) const {
   58|  2.04M|        return this->sub_iter != other.sub_iter;
   59|  2.04M|      }
_ZNK4iter4impl16IteratorIteratorINSt3__111__wrap_iterIPNS3_IPcEEEEEdeEv:
   83|  1.75M|      auto operator*() const -> decltype(**sub_iter) {
   84|  1.75M|        return **this->sub_iter;
   85|  1.75M|      }
_ZN4iter4impl16IteratorIteratorINSt3__111__wrap_iterIPNS3_IPcEEEEEppEv:
   61|  1.75M|      IteratorIterator& operator++() {
   62|  1.75M|        ++this->sub_iter;
   63|  1.75M|        return *this;
   64|  1.75M|      }

_ZN4iter4impl9get_iters9get_beginIKNSt3__16vectorIcNS3_9allocatorIcEEEEEEDTcl14get_begin_implclsr3stdE7declvalIRT_EELi42EEESA_:
   49|  1.48k|      auto get_begin(T& t) -> decltype(get_begin_impl(std::declval<T&>(), 42)) {
   50|  1.48k|        return get_begin_impl(t, 42);
   51|  1.48k|      }
_ZN4iter4impl9get_iters14get_begin_implIKNSt3__16vectorIcNS3_9allocatorIcEEEENS3_11__wrap_iterIPKcEEEET0_RT_i:
   38|  1.48k|      I get_begin_impl(T& r, int) {
   39|  1.48k|        return r.begin();
   40|  1.48k|      }
_ZN4iter4impl9get_iters7get_endIKNSt3__16vectorIcNS3_9allocatorIcEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEESA_:
   72|  4.45k|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|  4.45k|        return get_end_impl(t, 42);
   74|  4.45k|      }
_ZN4iter4impl9get_iters12get_end_implIKNSt3__16vectorIcNS3_9allocatorIcEEEENS3_11__wrap_iterIPKcEEEET0_RT_i:
   61|  4.45k|      I get_end_impl(T& r, int) {
   62|  4.45k|        return r.end();
   63|  4.45k|      }
_ZN4iter4impl11DerefHolderIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE5resetES9_:
  341|  12.0k|      void reset(reference item) {
  342|  12.0k|        item_p_ = &item;
  343|  12.0k|      }
_ZN4iter4impl11DerefHolderIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv:
  331|  16.9k|      reference get() {
  332|  16.9k|        assert(item_p_);
  333|      0|        return *item_p_;
  334|  16.9k|      }
_ZN4iter4impl9get_iters9get_beginINSt3__16vectorIiNS3_9allocatorIiEEEEEEDTcl14get_begin_implclsr3stdE7declvalIRT_EELi42EEES9_:
   49|  1.48k|      auto get_begin(T& t) -> decltype(get_begin_impl(std::declval<T&>(), 42)) {
   50|  1.48k|        return get_begin_impl(t, 42);
   51|  1.48k|      }
_ZN4iter4impl9get_iters14get_begin_implINSt3__16vectorIiNS3_9allocatorIiEEEENS3_11__wrap_iterIPiEEEET0_RT_i:
   38|  1.48k|      I get_begin_impl(T& r, int) {
   39|  1.48k|        return r.begin();
   40|  1.48k|      }
_ZN4iter4impl9get_iters7get_endINSt3__16vectorIiNS3_9allocatorIiEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEES9_:
   72|  3.46k|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|  3.46k|        return get_end_impl(t, 42);
   74|  3.46k|      }
_ZN4iter4impl9get_iters12get_end_implINSt3__16vectorIiNS3_9allocatorIiEEEENS3_11__wrap_iterIPiEEEET0_RT_i:
   61|  3.46k|      I get_end_impl(T& r, int) {
   62|  3.46k|        return r.end();
   63|  3.46k|      }
_ZN4iter4impl9get_iters9get_beginINSt3__16vectorIbNS3_9allocatorIbEEEEEEDTcl14get_begin_implclsr3stdE7declvalIRT_EELi42EEES9_:
   49|    990|      auto get_begin(T& t) -> decltype(get_begin_impl(std::declval<T&>(), 42)) {
   50|    990|        return get_begin_impl(t, 42);
   51|    990|      }
_ZN4iter4impl9get_iters14get_begin_implINSt3__16vectorIbNS3_9allocatorIbEEEENS3_14__bit_iteratorIS7_Lb0ELm0EEEEET0_RT_i:
   38|    990|      I get_begin_impl(T& r, int) {
   39|    990|        return r.begin();
   40|    990|      }
_ZN4iter4impl9get_iters7get_endINSt3__16vectorIbNS3_9allocatorIbEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEES9_:
   72|  1.98k|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|  1.98k|        return get_end_impl(t, 42);
   74|  1.98k|      }
_ZN4iter4impl9get_iters12get_end_implINSt3__16vectorIbNS3_9allocatorIbEEEENS3_14__bit_iteratorIS7_Lb0ELm0EEEEET0_RT_i:
   61|  1.98k|      I get_end_impl(T& r, int) {
   62|  1.98k|        return r.end();
   63|  1.98k|      }
_ZN4iter4impl9get_iters7get_endIKNSt3__16vectorIiNS3_9allocatorIiEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEESA_:
   72|    990|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|    990|        return get_end_impl(t, 42);
   74|    990|      }
_ZN4iter4impl9get_iters12get_end_implIKNSt3__16vectorIiNS3_9allocatorIiEEEENS3_11__wrap_iterIPKiEEEET0_RT_i:
   61|    990|      I get_end_impl(T& r, int) {
   62|    990|        return r.end();
   63|    990|      }
_ZN4iter4impl9get_iters7get_endIKNSt3__16vectorIbNS3_9allocatorIbEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEESA_:
   72|    990|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|    990|        return get_end_impl(t, 42);
   74|    990|      }
_ZN4iter4impl9get_iters12get_end_implIKNSt3__16vectorIbNS3_9allocatorIbEEEENS3_14__bit_iteratorIS7_Lb1ELm0EEEEET0_RT_i:
   61|    990|      I get_end_impl(T& r, int) {
   62|    990|        return r.end();
   63|    990|      }
_ZNK4iter4impl28IterToolFnOptionalBindSecondINS0_13GroupProducerENS0_8IdentityEEclIRNSt3__16vectorINS6_12basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENSB_ISD_EEEEPFiRKSD_EEENS2_IT_T0_EEOSL_SM_:
  480|    495|      ItImpl<Container, T> operator()(Container&& container, T func) const {
  481|    495|        return {std::forward<Container>(container), std::move(func)};
  482|    495|      }
_ZN4iter4impl9get_iters9get_beginINSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEEEDTcl14get_begin_implclsr3stdE7declvalIRT_EELi42EEESE_:
   49|    495|      auto get_begin(T& t) -> decltype(get_begin_impl(std::declval<T&>(), 42)) {
   50|    495|        return get_begin_impl(t, 42);
   51|    495|      }
_ZN4iter4impl9get_iters14get_begin_implINSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEENS3_11__wrap_iterIPSA_EEEET0_RT_i:
   38|    495|      I get_begin_impl(T& r, int) {
   39|    495|        return r.begin();
   40|    495|      }
_ZN4iter4impl9get_iters7get_endINSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEESE_:
   72|  1.48k|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|  1.48k|        return get_end_impl(t, 42);
   74|  1.48k|      }
_ZN4iter4impl9get_iters12get_end_implINSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEENS3_11__wrap_iterIPSA_EEEET0_RT_i:
   61|  1.48k|      I get_end_impl(T& r, int) {
   62|  1.48k|        return r.end();
   63|  1.48k|      }
_ZN4iter4impl11DerefHolderIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEC2Ev:
  329|    990|      DerefHolder() = default;
_ZNK4iter4impl10IterToolFnINS0_6CyclerEEclIRNSt3__16vectorIiNS5_9allocatorIiEEEEJEEENS2_IT_EEOSB_DpT0_:
  366|    495|      ItImpl<T> operator()(T&& t, Ts... ts) const {
  367|    495|        return {std::forward<T>(t), std::move(ts)...};
  368|    495|      }
_ZNK4iter4impl25IterToolFnBindSizeTSecondINS0_10CombinatorEEclIRNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEvEENS2_IT_EEOSD_m:
  518|    495|      ItImpl<Container> operator()(Container&& container, Size sz) const {
  519|    495|        return {std::forward<Container>(container), sz};
  520|    495|      }
_ZN4iter4impl9get_iters9get_beginINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEDTcl14get_begin_implclsr3stdE7declvalIRT_EELi42EEESB_:
   49|  1.72k|      auto get_begin(T& t) -> decltype(get_begin_impl(std::declval<T&>(), 42)) {
   50|  1.72k|        return get_begin_impl(t, 42);
   51|  1.72k|      }
_ZN4iter4impl9get_iters14get_begin_implINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS3_11__wrap_iterIPcEEEET0_RT_i:
   38|  1.72k|      I get_begin_impl(T& r, int) {
   39|  1.72k|        return r.begin();
   40|  1.72k|      }
_ZN4iter4impl12dumb_advanceINSt3__111__wrap_iterIPcEES5_mEEvRT_RKT0_T1_:
  237|  1.72k|    void dumb_advance(Iter& iter, const EndIter& end, Distance distance) {
  238|  1.72k|      dumb_advance_impl(iter, end, distance, is_random_access_iter<Iter>{});
  239|  1.72k|    }
_ZN4iter4impl17dumb_advance_implINSt3__111__wrap_iterIPcEES5_mEEvRT_RKT0_T1_NS2_17integral_constantIbLb1EEE:
  227|  1.72k|        Iter& iter, const EndIter& end, Distance distance, std::true_type) {
  228|  1.72k|      if (static_cast<Distance>(end - iter) < distance) {
  ------------------
  |  Branch (228:11): [True: 0, False: 1.72k]
  ------------------
  229|      0|        iter = end;
  230|  1.72k|      } else {
  231|  1.72k|        iter += distance;
  232|  1.72k|      }
  233|  1.72k|    }
_ZN4iter4impl9get_iters7get_endINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEDTcl12get_end_implclsr3stdE7declvalIRT_EELi42EEESB_:
   72|   315k|      auto get_end(T& t) -> decltype(get_end_impl(std::declval<T&>(), 42)) {
   73|   315k|        return get_end_impl(t, 42);
   74|   315k|      }
_ZN4iter4impl9get_iters12get_end_implINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS3_11__wrap_iterIPcEEEET0_RT_i:
   61|   315k|      I get_end_impl(T& r, int) {
   62|   315k|        return r.end();
   63|   315k|      }
_ZN4iter4impl9dumb_nextINSt3__111__wrap_iterIPcEElEET_S6_T0_:
  242|   312k|    ForwardIt dumb_next(ForwardIt it, Distance distance = 1) {
  243|   312k|      dumb_advance_unsafe(it, distance);
  244|   312k|      return it;
  245|   312k|    }
_ZN4iter4impl19dumb_advance_unsafeINSt3__111__wrap_iterIPcEElEEvRT_T0_:
  211|   312k|    void dumb_advance_unsafe(InputIt& iter, Distance distance) {
  212|   345k|      for (Distance i(0); i < distance; ++i) {
  ------------------
  |  Branch (212:27): [True: 33.5k, False: 312k]
  ------------------
  213|  33.5k|        ++iter;
  214|  33.5k|      }
  215|   312k|    }
_ZN4iter4impl9dumb_nextINSt3__111__wrap_iterIPcEEmEET_S6_T0_:
  242|  33.5k|    ForwardIt dumb_next(ForwardIt it, Distance distance = 1) {
  243|  33.5k|      dumb_advance_unsafe(it, distance);
  244|  33.5k|      return it;
  245|  33.5k|    }
_ZN4iter4impl19dumb_advance_unsafeINSt3__111__wrap_iterIPcEEmEEvRT_T0_:
  211|  33.5k|    void dumb_advance_unsafe(InputIt& iter, Distance distance) {
  212|   116k|      for (Distance i(0); i < distance; ++i) {
  ------------------
  |  Branch (212:27): [True: 82.5k, False: 33.5k]
  ------------------
  213|  82.5k|        ++iter;
  214|  82.5k|      }
  215|  33.5k|    }

